420 likes | 544 Views
Introduction aux Bases de Données. DESS Droit et Systèmes d ’Information J.M. THEVENIN Bureau AR367 Polycopié réalisé par : J.M. THEVENIN, thevenin@univ-tlse1.fr C. HANACHI, hanachi@univ-tlse1.fr. Plan. 1. Notions de base. 2. Le modèle Entité-Association. 3. Le modèle relationnel.
E N D
Introduction aux Bases de Données DESSDroit et Systèmes d ’InformationJ.M. THEVENINBureau AR367Polycopié réalisé par :J.M. THEVENIN, thevenin@univ-tlse1.fr C. HANACHI, hanachi@univ-tlse1.fr
Plan 1. Notions de base. 2. Le modèle Entité-Association. 3. Le modèle relationnel. 4. Mise en Oeuvre d’une base de données avec ACCESS.
Chapitre INotions de Base PLAN1. Approche intuitive2. Définitions3. Les 3 fonctions d’un SGBD. 4. La description des données 5. La mise à jour et la restitution de données. 6. Le contrôle de la base de données. 7. Quelques SGBD du marché
Notions de base Approche intuitive • Définition Intuitive : Une base de données est un “pot” commun d’information, partagé par plusieurs utilisateurs. Ces informations peuvent être interrogées et mises à jour par l'intermédiaire d’un logiciel. Le plus souvent ces informations décrivent la structure et/ou l’activité d’une organisation et facilite la prise de décision. • Exemples d’applications basées sur une BD: • promotion, paye, arbre de Noël... basées sur la BD du personnel. • Amadeus(Avions), Socrate(SNCF). • L’annuaire Electronique. • Catalogue électronique de la Bibliothèque. • Guichets bancaires.
Notions de base Approche intuitive Le catalogue électronique de la Bibliothèque : • utilisation simultanée par les étudiants, le personnel de la BU, la direction de la BU. • fonction : recherche multi-critères d’ouvrage(Etudiant),prêt,relance (personnel de la BU), statistique sur les prêts (direction de la BU). • garantie : limite automatique du nombre d’ouvrages prêtés, vérification du droit d'accès, ...
Notions de base Définitions Définition 1 : “ Une Base de données est un ensemble structuré de données(1) enregistrées sur des supports accessibles par l’ordinateur(2) pour satisfaire simultanément plusieurs utilisateurs(3) de manière sélective(4) et en un temps opportun(5) ” (Adiba & Delobel). (1) Organisation et Description des objets et des liens entre ces objets à l’aide d’un Langage de Description des Données. (2) Stockage sur disque. (3) Partage de l’information, gestion des accès concurrents , facilité d’utilisation(à l’aide d’un Langage de Manipulation des Données). (4) Confidentialité, Sécurité. (5) Performance.
Notions de baseDéfinitions Définition 2 : “ Le logiciel qui permet d’interagir avec une BD est un Système de Gestion de Bases de Données (SGBD) ” (Adiba & Delobel, 82). A SGBD A B Application B C C Application BD
Notions de baseLes trois fonctions d’un S.G.B.D • La description des données (codification, structuration). • La manipulation et la restitution des données (insertion, mise à jour, interrogation). • Le contrôle (partage, intégrité, confidentialité, sécurité).
Notions de base La description des données Documents Groupe d’utilisateur I (GU 1) Interview Groupe d’utilisateur II(GU 2) ... Modélisation Schéma externe 1 pour GU1 Schéma externe 2 pour GU2 T T Schéma Conceptuel de Données Schéma Physique ... BD
Notions de baseLa mise à jour et la restitution des données • Mise en oeuvre à l’aide d’un Langage de Manipulation des Données (LMD). • Fonctions : • insérer des valeurs ; • mise à jour des valeurs ; • interrogation de la BD. • S.Q.L (Structured Query Language) : Langage standard et déclaratif.
Notions de baseLe contrôle de la Base de Données • Contrôle : • confidentialité • partage, concurrence • respect des Contraintes d’intégrité • sûreté de fonctionnement.
Notions de baseQuelques S.G.B.D (relationnels) du marché • Micro : • ACCESS • PARADOX • DBASE V • FOXPRO, ... • Gros Système : • DB2 • ORACLE • SQL server • SYBASE • INGRES ...
Notions de base Démarche enseignée Modélisation Entité-Association Documents Interview Schéma Conceptuel en Entité -Association Transformation en relationnel Schéma conceptuel en relationnel Passage en machine sous Access Base de Données Relationnelle manipulable en SQL
Chapitre 2Le modèle Entité-Association 1. Les concepts de base 2. Les associations 3. Les propriétés 4. Les cardinalités des rôles 5. Identification des occurences 6. Exemple 7. Expression des contraintes d'intégrité 8. Démarche de conception
Le modèle entité-associationLes concepts de base • Modèle, Langage, Formalisme. • Origine : Travaux de Chen(USA), Tardieu(France), en 74/75. • Succès dus à : • langage graphique • Intégré à des méthodes d’analyse (MERISE par ex.). • Concepts simples : • choses ->entités • liens entre les choses -> association • regroupement des choses de même nature : classes d’entités, classes d’associations.
FILMS CINEMA titre : texte durée : 30..300 version : (VO,VF) nationalité : texte Casting Les concepts de base Affiche diffuse est à l’affiche • 1..n 0..n 0..n a pour distribution ACTEURS 1..n joue dans
Concepts de base • Une entité C’est un objet, un événement, un lieu , une personne identifiable sans ambiguïté.Exemple : abc, utopia, Woody Allen, Emmanuelle Beart, Coups de feu sur Brodway. • Une association C’est un lien entre 2 ou plusieurs entités.Exemple : Woody Allen a mis en scène “Coups de feu sur Brodway” • Classe d’entités : C’est un regroupement d’entités de même nature. Exemple : Films, cinéma, metteurs en scène. • Classe d’Associations : C’est un lien entre 2 ou plusieurs classes d’entités.Exemple : Affiche(entre Cinéma et Films), Distribution(entre Films et Acteurs).
Les concepts de base • Propriété : unité d’information indécomposable désignée par un nom. Exemple : nom_acteur, titre, ... • Propriété d’une classe d’entités : caractéristique commune à chaque élément de la classe. • Domaine de valeur : ensemble de valeurs possibles d’une propriété. Exemple : numérique, montant, texte, (M,F), 0..17, ... • Identifiants : propriété ou groupe de propriétés dont la valeur identifie sans ambiguïté une entité ou une liaison d’une classe. • Rôle : sens d’une patte (relie une classe d’entité à une classe d’association). • Cardinalités d’une patte : constituées de deux nombres correspondant au maximum et minimum d'occurrences de l’association pouvant être associés à chaque occurrence de l’entité.
Les associations Différents types d’association : • Statique : interprétation. • Dynamique : affiche. • Variable dans le temps • Gestion d ’historiques • Binaire, ternaire, ... selon le nombre de classes d’entités associées à la classe d’association. • Réflexive (suite d’un film). Remarque : Il peut exister plusieurs classes d’association entre 2 mêmes entités.
Les propriétés Déterminent la structure d’une classe d’entités ou d’une classe d’associations (ex : tarif d’un film). • Définie par un nom et un domaine de valeurs • Choix du nom : unique, explicite. • Domaine de valeurs : détermine l’ensemble des valeurs possibles pour une propriété • énumérés : (M,F), (rouge, blanc, rosé). • intervalle : 0..120, • montant, date, texte, numérique. • ... • détermine les opérations possibles sur la propriété ainsi que les autres propriétés aux quelles elle est comparable
Les cardinalités des rôles • La cardinalité des rôles répond à la question : combien de fois une occurrence peut-elle jouer un rôle donné au maximumet au minimum ? • FacultatifObligatoire0,1 1,1 Unique0,n 1,n Multiple • typologie des cardinalités des liens ne tenant compte que des maximums • de type un à un (bijectif) 1,1 • un à plusieurs (hiérarchique) 1,n • plusieurs à plusieurs (Affiche entre Film et Cinéma) n,n
Identification des occurrences • Objectifs : chaque occurrence doit pouvoir être repérée de manière unique et sans ambiguïté, pour être distinguée de toutes les autres. • Pour une classe d’entités : • Propriété ou groupe de propriétés qui permet de repérer une occurrence de manière unique. On souligne l’identifiant. • Un seul identifiant. • On privilégie l’identifiant le plus court, le plus naturel (n° bon de commande, n° étudiant, ...). • On peut créer un identifiant artificiel par commodité • Identifiant non variable dans le temps. • Identifiant d’une association :implicite, obtenu en juxtaposant les identifiants des entités qui participent à la liaison.
Chapitre 3Le modèle Relationnel 1. Les concepts de base 2. Les tables 3. Les attributs 4. Les clés 5. Les clés étrangères 6. Traduction d ’une association 1,n 7. Traduction d ’une association n,n 8. Démarche de traduction
Le modèle relationnelLes concepts de base • Modèle, Langage, Théorie. • Origine : Travaux de Codd (USA), en 70. • Succès dus à : • Concepts simples : • entités, associations -> tables • identifiants d’entité ou d’association -> clés • liens entre entités et associations -> clés étrangères • Un modèle et un langage standard (SQL) • Une base théorique • théorie des ensembles • algèbre relationnelle
Les tables (relations) Représentation graphique d'une table : EMPLOYES • Nom de la table : EMPLOYES. • Schéma : 1ère ligne. • Tuple : chacune des autres lignes. • Attribut : une colonne • Clé de la relation : Matricule. • Clé étrangère : #NomService
Les tables (relations) Correspondance entité -> table : Nom entité -> Nom table Propriété -> Attribut Domaine -> Domaine Identifiant -> Clé Instance -> Tuple Correspondance association -> table : Nom association -> Nom table Propriété -> Attribut Domaine -> Domaine Identifiant -> Clé Lien entre 2 instance d’entité -> Tuple
Les tables (relations) Propriétés : 1. Une valeur de la clé désigne une ligne unique Ainsi, la valeur en question permet de retrouver cette ligne 2. Un nom d’attribut désigne une colonne 1 et 2 => l’ordre des ligne et des colonnes n’est pas significatif Remarque : si la clé d’une table est définie par un couple d’attributs, ses valeurs sont des couples.
Les attributs • La notion d’attribut en relationnel correspond à la notion de propriété en entité/association • Un attribut est défini par un nom et un domaine • Le domaine d’un attribut décrit les valeurs autorisées dans la colonne de cet attribut • Les valeurs d’un attribut sont atomiques : non décomposables • Contraintes supplémentaires : unicité, non nullité, clé, clé étrangère, valeur par défaut
Les clés • La clé d’une table est un attribut ou groupe d’attributs dont les valeurs identifient de façon unique une ligne de la table • Il est possible que plusieurs combinaisons d’attributs puissent être exploitées comme clé : • on choisit la combinaison la plus courte comme clé primaire • Les autres combinaisons sont des clés candidates • Il est parfois utile de créer une clé artificielle lorsque les clés candidates sont compliquées
Les clés étrangères EMPLOYES SERVICES Dans la table SERVICES NomService est une clé qui permet retrouver la ligne décrivant un service donné Dans la table EMPLOYES NomService* est une clé étrangère qui permet d’aller chercher dans la table SERVICE la description du service auquel appartient un employé donné
Les clés étrangères • Le terme clé étrangère signifie clé d’une autre table • La notion de clé étrangère est utilisée pour établir un lien entre deux tables • Soit une table A possédant un attribut b* définit comme clé étrangère provenant de la table B : • Chaque ligne de la table A possède une valeur pour la clé étrangère b*, permettant de retrouver une ligne de la table B • Chaque ligne de la table B possède une valeur pour la clé b qui peut apparaître dans 0 ou n lignes de la table A comme valeur de b* • b* établit un lien n-1 entre A et B • Les clés étrangères sont les seules redondances autorisées
Les clés étrangères Règles d’intégrité référentielle • Toute valeur saisie pour une clé étrangère doit être incluse dans l’ensemble des valeurs de la clé référencée • Toute valeur saisie dans une colonne b* doit exister dans la colonne b • Le non respect de cette règle entraîne que la table A référence des lignes n’existant pas dans la table B • Lorsque l’on supprime une ligne dans une table référencée, la valeur de clé supprimée doit avoir été préalablement supprimée des colonnes clé étrangères
FILMS REALISATEUR titre : texte durée : 30..300 version : (VO,VF) nationalité : texte Traduction d’une association 1-n Exemple de lien 1-n : • Chaque ligne de FILMS doit être reliée à 1 lignes de CINEMA • une ligne de CINEMA peut être reliée à n lignes de FILMS Traduction Films (titre, durée, version, nationalité, NR*, année) Réalisateur (NR, nomR, prénomR) Réaliser réalise NR : numérique nomR : texte PrénomR : texte est réalise 0..n • 1..1 Année : num
Traduction d’une association 1-n Toute association possédant une arrête de cardinalité 1,1 fusionne avec l’entité reliée à cette arrête • Pour fusionner une association avec une entité : • ajouter toutes les propriétés de l’association dans la table de l’entité • importer les clé des autres entités auxquelles l’association est reliée • déclarer les clés importées comme clés étrangères • Une association ne fusionne qu’une fois
FILMS CINEMA titre : texte durée : 30..300 version : (VO,VF) nationalité : texte Traduction d’une association n-n Exemple de lien n-n : • Chaque ligne de FILMS doit être reliée à n lignes de CINEMA • Chaque ligne de CINEMA doit être reliée à n lignes de FILMS Traduction Films (titre, durée, version, nationalité) Cinéma (NC, nomC, adresseC) Affiche (titre*, NC*, DD, DF) Affiche diffuse est à l’affiche NC : numérique nomC : texte AdresseC : texte • 1..n 0..n DD : date DF : date
Traduction d’une association n-n Pour traduire un lien m-n il faut créer une table intermédiaire • Du nom de l’association • Comportant toutes les propriétés de l’association • Comportant comme clés étrangères les clés des entités reliées • Dont la clé est l’union des clés étrangères et des attributs soulignés de l ’association
Démarche de traduction d’un schéma entité/ association • Etape 1 : Toute classe d’entités du diagramme entité/association est représentée par une table dans le schéma relationnel équivalent. La clé de cette table est l’identifiant de la classe d’entités correspondante. • Etape 2 : Toute classe d’associations 1,n (possédant une arrête de cardinalité 1,1 vers une entité Ei) fusionne avec la table de l’entité Ei. • Etape 3 : Toute classe d’associations n,n est transformée en table. La clé de cette table inclut tous les identifiants des entités participantes qui sont déclarés comme clé étrangère.