2A-SI 4-4.2 - Modèle relationnel Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Avec l aide du cours de Y. Bourda 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! 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. 1
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} 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» Attribut : Colonne d une relation caractérisée par un nom Marque Tuple : Ligne d une relation 2
Schéma de relation : Nom de la relation, suivi de la liste des attributs avec leurs domaines (qui doivent être connus). Couleur Marque Etat Ex : Couleur_Marque_Etat (Couleur,Marque,Etat) 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 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 3
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 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 Produit Cartésien : (déjà vu) Opérandes : 2 relations Résultat : toutes les combinaisons possibles des tuples des opérandes C x E 4
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 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» 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) 5
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» 6