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 »