Introduction aux bases de données
Une de données est un ensemble structuré de données, organisé pour permettre un accès, une gestion et une mise à jour efficaces.
Le modèle relationnel (Codd, 1970) organise les données sous forme de tables (ou relations).
Vocabulaire
- Relation (ou table) : ensemble de n-uplets (lignes) partageant le même schéma
- Attribut (ou colonne) : une propriété nommée avec un domaine (type)
- Schéma d'une relation : nom de la relation + liste des attributs et leurs domaines
- n-uplet (ou tuple) : une ligne de la table, un élément de la relation
- Clé primaire : attribut (ou ensemble d'attributs) identifiant de manière unique chaque n-uplet
- Clé étrangère : attribut faisant référence à la clé primaire d'une autre relation
Exemple
Considérons deux relations :
Etudiants
| id | nom | prenom | classe |
|----|-----|--------|--------|
| 1 | Dupont | Marie | MP |
| 2 | Martin | Lucas | PSI |
| 3 | Durand | Sophie | MP* |
Notes
| id_note | id_etudiant | matière | note |
|---------|-------------|---------|------|
| 1 | 1 | Maths | 16 |
| 2 | 1 | Info | 14 |
| 3 | 2 | Maths | 12 |
Ici, `id` est la clé primaire de Etudiants, et `id_etudiant` est une clé étrangère dans Notes référençant `Etudiants.id`.
Contraintes d'intégrité
Contrainte de domaine : les valeurs d'un attribut respectent son type
Contrainte de clé : unicité de la clé primaire
Contrainte référentielle : toute clé étrangère doit correspondre à une clé primaire existante
Contrainte NOT NULL : certains attributs ne peuvent pas être videsAlgèbre relationnelle
L'algèbre relationnelle fournit les opérations formelles sur les relations :
Opérations de base
- Sélection σcondition(R) : filtre les n-uplets vérifiant la condition
- Projection πA1,…,Ak(R) : ne garde que les attributs spécifiés
- Renommage ρA←B(R) : renomme un attribut
Opérations ensemblistes
- Union R∪S : n-uplets de R ou S (mêmes schémas)
- Intersection R∩S : n-uplets de R et S
- Différence R∖S : n-uplets de R n'étant pas dans S
Produit cartésien et jointure
- Produit cartésien R×S : toutes les combinaisons de n-uplets
- Jointure R⋈conditionS : produit cartésien filtré par une condition
Jointure naturelle : R⋈S joint sur les attributs de même nom.