L'algèbre relationnelle est une formulation mathématiques des base de données relationnelles que nous avons vu en SQL. Toutes les opérations que l'on a vu en SQL peuvent être écrites en algèbre relationnelle et réciproquement. Certaines fois la traduction sera évidente mais ce n'est pas toujours le cas.
Un "schéma" est un ensemble de noms d'"attributs" (ou de "champs"). On mentionne qu'un attribut est une clef primaire s'il est souligné. Les "domaines" des attributs sont les valeurs possibles que peuvent prendre cet attribut. En général on ne précise pas les domaines car on s'intéresse plus aux liens entre les relations.
Par exemple pour la table Clients SQL suivante :
| ID | Nom | Age |
|---|---|---|
| 1 | Alice | 20 |
| 2 | Bob | 19 |
| 3 | Camille | 19 |
où ID est la clef primaire de type INT, Nom est de type TEXT et Age de type INT. Le schéma est "Clients(ID,Nom,Age)".
Une "relation" est décrite par un schéma et par son contenu (ensemble des "lignes" ou "enregistrements" ou "n-uplets") qu'on appelle "extension".
La "taille" d'une relation est le nombre de lignes dans son extension.
Etant donné une relation R et une formule F (formée de combinaisons de comparaisons et de connecteurs logiques) on définit :
qui forme une nouvelle relation qui est l'ensemble des lignes de la relation qui satisfont la formule .
Remarque mnémotechnique : se lit "sigma" et correspond au "s" grec pour "sélection".
Son équivalent en langage SQL est WHERE.
désigne la relation "Clients" du paragraphe précédent.
Calculer la relation .
Calculer la relation .
Calculer la relation .
Etant donné une relation et un ensemble de champs on définit commen étant la restriction de la relation (et de ses données) aux champs de .
Remarque mnémotechnique : correspond au "p" grec pour "projection".
Son équivalent en langage SQL est SELECT.
désigne la relation "Clients" du paragraphe précédent.
Calculer la relation .
Calculer la relation .
Calculer la relation .
Etant donné deux relations et ayant le même schéma, on définit les trois opérations suivantes :
Les trois opérations précédentes crée chacune une relation ayant le même schéma que et .
On considère les relations suivantes : les clients ayant acheté un vélo
| ID | Nom | Age |
|---|---|---|
| 1 | Alice | 20 |
| 2 | Bob | 19 |
| 3 | Camille | 19 |
et les clients ayant acheté un trombone
| ID | Nom | Age |
|---|---|---|
| 3 | Camille | 19 |
| 4 | Jo | 20 |
| 5 | Cassiopée | 20 |
Calculer la relation . À quoi cela correspond t-il en langage courant ?
Calculer la relation . À quoi cela correspond t-il en langage courant ?
Calculer la relation . À quoi cela correspond t-il en langage courant ?
Pour et deux relations ayant même schéma, quel est la taille de en fonction de et ? Et pour et ?
Etant donné deux relations et (n'ayant pas forcément le même schéma) on définit la relation
Relation "Sandwichs" :
| ID | Sandwich | Prix |
|---|---|---|
| 1 | Végé | 3,5 |
| 2 | Panini | 4 |
| 3 | Muffuletta | 6,7 |
Relation "Sauces" :
| Sauce | Prix |
|---|---|
| Ketchup | 1,3 |
| Mystère | 1,6 |
Calculer le produit cartésien entre les relations et du paragraphe précédent.
De manière générale, pour deux relations et , quelle est la taille de en fonction de et de ?