Modèle relationnel

publicité
2A-SI
4 - Bases de Données
4.2 - Modèle relationnel
Stéphane Vialle
[email protected]
http://www.metz.supelec.fr/~vialle
Avec l’aide du cours de Y. Bourda
Bases de Données
Le modèle relationnel
Généralités du « modèle relationnel » :
– Formalisé par CODD en 1970
– Ex d’implantations : DB2, INFORMIX, INGRES,
ORACLE, SYBASE, SQL-server
– Repose sur l’algèbre relationnelle
→ possède des bases solides
– Concepts puissants et simples !
→ succès !
Bases de Données
Le modèle relationnel
Généralités du « modèle relationnel » :
– Les données sont organisées en tables 2D
• Une table 2D = une « relation »
• Une ligne = un n-uplet = un « tuple »
– Données manipulées uniquement par des opérateurs de
« l’algèbre relationnelle ».
– La cohérence de la base est imposée par des
« contraintes d’intégrité » :
- sur le modèle relationnel (voir slides suivantes)
- par la théorie de la normalisation (voir plus loin)
Ces contraintes d’intégrité évitent les incohérences lors de la
conception, de la manipulation et de la mise à jour de la base.
Bases de Données
Le modèle relationnel
Algèbre relationnelle :
• Domaine : ens. de valeurs associées à un nom
Nom : {val1 ; val2 ; ….}
Ex :
Couleur : {Jaune ; Bleu}
• Produit cartésien :
Couleur : {Jaune ; Bleu}
X
Marque : {Peugeot ; Renault}
X
Etat : {Excellent ; Moyen ; Mauvais}
Bases de Données
Le modèle relationnel
Algèbre relationnelle :
• Relation :
Sous-ensemble du produit cartésien,
caractérisé par un nom :
Ex : « Couleur_Marque_Etat »
Couleur_Marque_Etat
Jaune Peugeot Excellent
Jaune Renault Excellent
Jaune Renault Moyen
Bleu
Peugeot Mauvais
« Les seules lignes qui ont un sens
dans le cadre de mon problème »
Bases de Données
Le modèle relationnel
Algèbre relationnelle :
Marque
• Attribut :
Colonne d’une relation
caractérisée par un nom
• Tuple :
Ligne d’une relation
Bases de Données
Le modèle relationnel
Algèbre relationnelle :
Couleur Marque
• Schéma de relation :
Nom de la relation,
suivi de la liste des attributs
avec leurs domaines (qui
doivent être connus).
Ex : Couleur_Marque_Etat (Couleur,Marque,Etat)
Etat
Bases de Données
Le modèle relationnel
Algèbre relationnelle :
• Base de données relationnelle :
« BdD dont le schéma est un
ensemble de schémas de
relations et dont les
occurrences sont les tuples
de ces relations »
• SGBD : un logiciel supportant le
modèle relationnel, et qui
peut manipuler les données
avec des opérateurs
relationnels
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Rmq : Les opérandes = des relations, ou au moins une relation
Un résultat
= une relation
• Union :
Opérandes : 2 relations ayant le même schéma
Résultat
: relation avec les tuples de chaque opérande
(les doubles sont éliminés)
Union
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Intersection :
Opérandes : 2 relations ayant le même schéma
Résultat
: relation avec les tuples présents dans les
deux opérandes à la fois
Intersection
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Différence relationnelle :
Opérandes : 2 relations ayant le même schéma
Résultat
: les tuples de la première relation présent
seulement dans la première relation
CE_1 – CE2
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Produit Cartésien : (déjà vu)
Opérandes : 2 relations
Résultat
: toutes les combinaisons possibles des
tuples des opérandes
CxE
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Projection :
Opérandes : 1 relation et un ou des attributs
Résultat
: la relation restante après conservation des
colonnes des seuls attributs indiqués et
suppression des tuples devenus identiques
Projection sur Couleurs et Marques
Projection sur Couleurs
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Restriction :
Opérandes : 1 relation et une condition
Résultat
: la relation restante après suppression des
tuples ne satisfaisant pas la condition
Restriction à la condition « Couleurs = Jaune »
Bases de Données
Le modèle relationnel
Opérateurs relationnels :
• Jointure :
Opérandes : 2 relations et une condition portant sur un
argument de la 1ère relation et sur un
argument de la 2nd.
Résultat
: le produit cartésien suivi de l’élimination des
tuples (lignes) ne satisfaisant pas la condition
E . . D(Dep=Int)
Bases de Données
Le modèle relationnel
Langages des bases de données relationnelles :
• Objectifs :
• créer des données : définition de schémas de BdD
• interroger les données : application des opérateurs relationnels
• manipuler les données : maj – ajout – suppression de données
• contrôler les droits des utilisateurs sur les données
• 3 types de langages :
• langages algébriques basés sur l’algèbre relationnelle : SQL
• langages logiques (logique des prédicats) :
- basés sur le calcul relationnel des tuples …
- basés sur le calcul relationnel des domaines …
• Besoin d’enrichissement :
• les langages d’interrogation et manipulation de données ont une
puissance d’expression insuffisante pour les opérations complexes
• on les insère dans des langages traditionnels, ex : « C++ & SQL »
Téléchargement