Bases de Données Le modèle relationnel 2A-SI Généralités du « modèle relationnel » : 4 - Bases de Données 4.2 - Modèle relationnel Stéphane Vialle – Ex d’implantations : DB2, INFORMIX, INGRES, ORACLE, SYBASE, SQL-server – Repose sur l’algèbre relationnelle → possède des bases solides [email protected] http://www.metz.supelec.fr/~vialle Avec l’aide du cours de Y. Bourda – Concepts puissants et simples ! → succès ! Bases de Données Bases de Données Le modèle relationnel Le modèle relationnel Algèbre relationnelle : 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 » • Domaine : ens. de valeurs associées à un nom Nom : {val1 ; val2 ; ….} – 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 : • Relation : – Formalisé par CODD en 1970 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 : Sous-ensemble du produit cartésien, caractérisé par un nom : Ex : « Couleur_Marque_Etat » Couleur_Marque_Etat Jaune Peugeot Excellent Jaune Renault Jaune Bleu Renault Moyen Peugeot Mauvais Excellent Marque • Attribut : Colonne d’une relation caractérisée par un nom • Tuple : Ligne d’une relation « Les seules lignes qui ont un sens dans le cadre de mon problème » 1 Bases de Données Bases de Données Le modèle relationnel Le modèle relationnel Algèbre relationnelle : Algèbre relationnelle : Couleur Marque Etat • Schéma de relation : Nom de la relation, suivi de la liste des attributs avec leurs domaines (qui doivent être connus). • 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 » Ex : Couleur_Marque_Etat (Couleur,Marque,Etat) • 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 : • 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 : • 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 : • Produit Cartésien : (déjà vu) Opérandes : 2 relations Résultat : toutes les combinaisons possibles des tuples des opérandes CxE 2 Bases de Données Le modèle relationnel Bases de Données Le modèle relationnel Opérateurs relationnels : 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 • Restriction : Opérandes : 1 relation et une condition Résultat : la relation restante après suppression des tuples ne satisfaisant pas la condition Projection sur Couleurs et Marques Restriction à la condition « Couleurs = Jaune » Projection sur Couleurs 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 » 3