La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Bases de Données – Sylvain Brandel – 1 Bases de Données Université Louis-Pasteur de Strasbourg Département d'informatique Sylvain BRANDEL Pôle API, Boulevard.

Présentations similaires


Présentation au sujet: "Bases de Données – Sylvain Brandel – 1 Bases de Données Université Louis-Pasteur de Strasbourg Département d'informatique Sylvain BRANDEL Pôle API, Boulevard."— Transcription de la présentation:

1 Bases de Données – Sylvain Brandel – 1 Bases de Données Université Louis-Pasteur de Strasbourg Département d'informatique Sylvain BRANDEL Pôle API, Boulevard Sébastien Brant ILLKIRCH bureau C 126 tél :

2 Bases de Données – Sylvain Brandel – 2 Chapitre 1 Bases de Données et Systèmes de Gestion de Bases de Données

3 Bases de Données – Sylvain Brandel – 3Chapitre 1. BD et SGBD Introduction Déf. Une BD est un ensemble de données modélisant les objets dune partie du monde réel et servant de support à une application informatique Ensemble –structuré –autorisant lextraction sélective dinformations Exemple de BD : annuaire Deux types d'opérations –manipulation –définition Tout ensemble de données ne justifie pas forcément une BD exemple : CDs audio Déf. Un SGBD est un logiciel permettant dinteragir avec une BD Exemples de SGBD : Access, Oracle, mySQL

4 Bases de Données – Sylvain Brandel – 4 Exemple : CDs audio Exemple : École MERISE Application non coordonnées Applications « touffues » Résultats différents des souhaits Analyse Chapitre 1. BD et SGBD Avant de penser BD, poser des questions, étudier, analyser les besoins Pourquoi MERISE ? Problèmes des grosses applications Principes de base : –méthode globale et intégrée –séparation données / traitements –3 niveaux de modélisation

5 Bases de Données – Sylvain Brandel – 5 Niveau conceptuel : MCD Entité : collection d'objets ayant des propriétés analogues et possédant un identifiant Exemple : CLASSE Association : Lien logique entre plusieurs entités Chapitre 1. BD et SGBD

6 Bases de Données – Sylvain Brandel – 6 Niveau conceptuel : MCT Événement : compte-rendu fait au SI que quelque chose s'est produit dans l'univers extérieur ou dans le SI Les événements peuvent être : –internes –externes Opération : actions accomplies par le SI en réaction à un (ou des) événement(s) Chapitre 1. BD et SGBD

7 Bases de Données – Sylvain Brandel – 7 Inconvénients de MERISE : - lourdeur - difficulté d'apprentissage Niveaux organisationnel et technique MLD : MCD repensé MOT : intégration de règles de gestion Exemples de règles d'organisation : –à chaque livraison, le magasinier contrôle la marchandise livrée –l'inventaire est effectué tous les ans les 29 et 30 décembre MPhD : implantation physique MOpT : contraintes techniques Chapitre 1. BD et SGBD

8 Bases de Données – Sylvain Brandel – 8 Bases de Données BD : Collection de représentation de la réalité sous forme de données inter-reliées Les précurseurs des BD : les systèmes de fichiers –informations communes redondance non gérée Redondance : –volume de données important –temps de saisie et de mise à jour manque de cohérence Cohérence : –être juste par rapport à une certaine réalité –respect des contraintes d'intégrité Centralisation : –BD : entité commune, centrale, à laquelle accèdent tous les utilisateurs Chapitre 1. BD et SGBD

9 Bases de Données – Sylvain Brandel – 9 SGBD SGBD : ensemble de logiciels permettant aux utilisateurs de manipuler efficacement des données dans une grande masse dinformation partagée avec dautres utilisateurs 1 ère Génération : fin des 60's –modèles hiérarchique et réseau 2 ème génération : fin des 70's –modèle relationnel 3 ème génération : fin des 80's –Extensions objet des systèmes relationnels 4 ème génération : 90's et actuellement –Internet et Web Chapitre 1. BD et SGBD

10 Bases de Données – Sylvain Brandel – Toutes les informations sur les données sont représentées au niveau logique et non physique (pas besoin dinformations sur la façon dont sont enregistrées physiquement les données). 2. Les données sont accessibles uniquement par la combinaison du nom de la table, de la clé primaire et du nom de la colonne (pas de chemin à donner). 3. Une valeur spéciale doit représenter labsence de valeur (NULL). 4. La description de la base de données doit être accessible comme les données ordinaires (un dictionnaire des données est enregistré dans la base). 5. Un langage doit permettre de définir les données, définir des vues (visions particulières de la base, enregistrées comme des relations), manipuler les données, définir des contraintes dintégrité, des autorisations de gérer des transactions. 6. On peut faire des mises à jour par les vues lorsque cest logiquement possible. 7. Le langage doit comporter des ordres effectuant linsertion, la mise à jour et la suppression des données (un seul ordre pour effectuer chacune de ces fonctions) 8. Indépendance des programmes vis-à-vis de limplantation physique des données. 9. Indépendance des programmes vis-à-vis de limplantation logique des données (si les informations manipulées par les programmes nont pas été modifiées ou supprimées). 10. Les contraintes dintégrité doivent pouvoir être définies dans le langage relationnel et enregistrées dans le dictionnaire des données. 11. Indépendance vis-à-vis de la répartition des données sur divers sites. 12. On ne peut jamais contourner les contraintes (dintégrité ou de sécurité) imposées par le langage du SGBD en utilisant un langage de plus bas niveau (par exemple le C). Les 12 règles de Codd Chapitre 1. BD et SGBD

11 Bases de Données – Sylvain Brandel – 11 Objectif : assurer- la sécurité des données - la confidentialité des données - lintégrité des données - de bonnes performances Objectifs des SGBD Un SGBD doit permettre décrire des applications indépendantes de limplantation physique des données Plusieurs utilisateurs peuvent accéder simultanément à la BD Chapitre 1. BD et SGBD

12 Bases de Données – Sylvain Brandel – 12 Une perte d'informations peut s'avérer fatale –la sécurité est primordiale Sécurité de fonctionnement Après un incident (matériel ou logiciel) : –redémarrer le système –remettre la BD dans un état cohérent Exemple de transaction : transfert dune somme dargent entre deux comptes dun client dune banque. – Validation : COMMIT – Annulation : ROLLBACK Archivage Journalisation Sécurité Chapitre 1. BD et SGBD

13 Bases de Données – Sylvain Brandel – 13 Mécanisme des verrous : interdire l'accès à une donnée pendant un temps minimal Risque : deadlock Sécurité Gestion de la concurrence d'accès Exemple : éditer un même fichier partagé Exemple : Mises à jour perdues. 2 personnes veulent modifier une quantité q en stock Transaction : - lire (q) - modifier (q) (valeur stockée dans un buffer) - écrire (q) (dans la BD) Chapitre 1. BD et SGBD

14 Bases de Données – Sylvain Brandel – 14 Lecture inconsistante ou lecture impropre Lecture non répétitive, ou non reproductible, ou incohérente - une transaction T2 lit une valeur donnée par une autre transaction T1 - ensuite la transaction T1 annule son affection de V la valeur lue par T2 est fausse Ne peut pas arriver si les modifications effectuées par une transaction ne sont visibles par les autres quaprès validation de la transaction - une transaction lit deux fois une même valeur et ne trouve pas deux fois le même résultat Blocage des données suffisamment longtemps pour éviter que les autres transactions ne puisse pas les modifier Sécurité Chapitre 1. BD et SGBD

15 Bases de Données – Sylvain Brandel – 15 - une sélection de lignes récupère des lignes qui sont modifiées par une autre transaction et ne vérifient plus le critère de la sélection Blocage explicite des lignes en question - Les SGBD gèrent automatiquement les accès concurrents de plusieurs utilisateurs sur les mêmes lignes des tables Oracle assure une lecture consistante Sécurité Lignes fantômes Traitement des accès concurrents par le SGBD Chapitre 1. BD et SGBD

16 Bases de Données – Sylvain Brandel – 16 Contrôle de laccès à la base Contrôle de laccès aux données Droits sur les objets Gestion des droits d'accès Gestion des privilèges Vues Confidentialité Chapitre 1. BD et SGBD

17 Bases de Données – Sylvain Brandel – 17 Les commandes qui ne respectent pas ces contraintes sont automatiquement annulées - définition de la clé primaire dune table - clés étrangères dont les valeurs doivent exister dans une autre table - unicité des valeurs dune rubrique - fourchette pour les valeurs acceptables - … Intégrité Respect implicite des contraintes d'intégrité : Exemple : BD client / fournisseur / produit Chapitre 1. BD et SGBD

18 Bases de Données – Sylvain Brandel – 18 Problème des modèles relationnels : pas de stratégie d'accès aux données Solutions index clusters performances dégradées Performances Chapitre 1. BD et SGBD

19 Bases de Données – Sylvain Brandel – 19 LMDMenu Schéma externe A Schéma externe B Schéma conceptuel Langage hôte Schéma interne SGBD BD SE Utilisateur Niveau logique Niveau physique Architecture des SGBD Chapitre 1. BD et SGBD

20 Bases de Données – Sylvain Brandel – 20 Différentes approches : - liaison : schémas externes / schéma conceptuel - schéma externe = dérivation du schéma conceptuel - schéma conceptuel = synthèse des schémas externes Exemple : BD buveur / vin / cru - deux utilisateurs peuvent appeler une même variable sous deux noms différents - deux utilisateurs peuvent appeler deux variables différentes sous un même nom Les différents schémas Schéma conceptuel Chapitre 1. BD et SGBD

21 Bases de Données – Sylvain Brandel – 21 Il existe autant de visions externes que d'utilisateurs Mais les visions des différents utilisateurs vont se recouper (informations communes) Exemple : BD buveur / vin / cru Description de l'implantation physique Pris en charge par le système d'exploitation Les différents schémas Schémas externes Schéma interne Chapitre 1. BD et SGBD

22 Bases de Données – Sylvain Brandel – 22 - bon fonctionnement - création de la BD - déclaration d'un utilisateur - droits d'accès - modification des schémas externes - modification des chemins d'accès aux données - maintien des performances daccès aux données - sauvegardes et reprises après pannes - … - développement d'applications - droits sur ses applications - utilisation des applications - accès limité Les différents utilisateurs Administrateurs : Programmeur : Utilisateur final : Chapitre 1. BD et SGBD

23 Bases de Données – Sylvain Brandel – 23 LDD LMD définition de :- schéma conceptuel - schémas externes - données - liens - contraintes d'intégrité interrogation et mises à jour de la base de données instructions interactives : - outils en ligne - interfaces avec des outils de bureautique ou avec le web instructions insérées dans un langage de programmation : - langage hôte de 3 ème génération - langage hôte de 4 ème génération menus formulaires Les différents langages Chapitre 1. BD et SGBD

24 Bases de Données – Sylvain Brandel – 24 Exemple de fonctionnement d'un SGBD Le programme d'application, accédant à la BD via le schéma externe B, demande la lecture d'une donnée de la base Chapitre 1. BD et SGBD LMDMenu Schéma externe A Schéma externe B Schéma conceptuel Langage hôte Schéma interne SGBD BD SE Utilisateur Niveau logique Niveau physique

25 Bases de Données – Sylvain Brandel – 25 Réparer les dommages occasionnés par des pannes - logicielles - matérielles - réseau Attitude différente suivant que les fichiers ont été endommagés ou non Résistance aux pannes Sauvegardes Types de pannes Reprise après accident Chapitre 1. BD et SGBD

26 Bases de Données – Sylvain Brandel – 26 Redo log buffer Instance SGA LGWRDBWR Control files Data files Redo log files Database Password file Parameter file Archived log files CKPTARCH Database buffer cache Exemple d'implantation d'un SGBD : Oracle Architecture globale Chapitre 1. BD et SGBD

27 Bases de Données – Sylvain Brandel – 27 Fichiers de la base Images "avant" et "après" Images "avant" : fichiers systèmes, ou emplacement spécial de la base, contenant les informations nécessaires pour remettre la base dans un état antérieur à une modification Image "après" : fichiers système contenant les informations nécessaires pour refaire une modification à partir d'un état antérieur de la base Control files Data files Redo log files Database Password file Parameter file ALERT file Exemple d'implantation d'un SGBD : Oracle Chapitre 1. BD et SGBD

28 Bases de Données – Sylvain Brandel – 28 Exemple d'implantation d'un SGBD : Oracle Images "avant" et "après" DML Statement New image Table Old image Rollback segment Chapitre 1. BD et SGBD

29 Bases de Données – Sylvain Brandel – 29 La place disque réservée aux images "avant" et "après" est limitée : elle est recyclée pour enregistrer les dernières images Il peut être intéressant d'archiver sur des médias stables les images "après" pour les réutiliser en cas de panne On peut ainsi dérouler toutes les dernières actions effectuées par les utilisateurs depuis la dernière sauvegarde Les différents SGBD peuvent avoir des implantations très différentes sur certains points, en particulier sur la façon de traiter les accès concurrents Exemple d'implantation d'un SGBD : Oracle Archivage des images "après" Chapitre 1. BD et SGBD

30 Bases de Données – Sylvain Brandel – 30 Exemple d'implantation d'un SGBD : Oracle Processus clients – serveurs Oracle Server Server process User process User Client Server Chapitre 1. BD et SGBD

31 Bases de Données – Sylvain Brandel – 31 Exemple d'implantation d'un SGBD : Oracle Écriture des données dans la base DBWR Instance SGA Database buffer cache Shared pool Control files Data files Redo log files Database Chapitre 1. BD et SGBD

32 Bases de Données – Sylvain Brandel – 32 New image Table Image at statement commencement SELECT * FROM table; SELECT * FROM table; Exemple d'implantation d'un SGBD : Oracle Segments de rollback Chapitre 1. BD et SGBD

33 Bases de Données – Sylvain Brandel – 33 member Group 1 Group 2Group 3 Disk 1 Disk 2 Exemple d'implantation d'un SGBD : Oracle Fichiers redo log Chapitre 1. BD et SGBD

34 Bases de Données – Sylvain Brandel – 34 Chapitre 2 Le Modèle Relationnel

35 Bases de Données – Sylvain Brandel – 35 Relations Produit cartésien d'un ensemble de domaines D 1, D 2, … D n : ensemble des vecteurs (d 1, d 2, … d n ) où d i est une valeur de D i (1 i n) définition en "extension" : en donnant la liste des valeurs (ex : couleur-vins = {blanc, rouge, rosé} crus = {chablis, sylvaner} ) Domaine : ensemble de valeurs caractérisées par un nom définition en "intension" : en donnant une caractéristique (ex : caractères = chaînes de caractères de longueur fixe ou variable ) ex : couleurs-vins crus = blancchablis blancsylvaner rougechablis rougesylvaner roséchablis rosésylvaner Chapitre 2. Le Modèle Relationnel

36 Bases de Données – Sylvain Brandel – 36 Relations Colonne : sous-ensemble des valeurs d'un domaine Relation : sous-ensemble du produit cartésien d'une liste de domaines, caractérisé par un nom ex : un sous-ensemble de couleurs-vins crus = blancchablis blancsylvaner rougechablis roséchablis ex : domaine = ensemble des entiers, une colonne = couleurs-crus Chapitre 2. Le Modèle Relationnel

37 Bases de Données – Sylvain Brandel – 37 Relations Tuples : ligne d'une relation correspondant à un enregistrement (appelé aussi n-uplet ou ligne) Attribut : colonne d'une relation caractérisée par un nom (pas forcément le même que le nom de domaine) ex : un tuple de couleurs-crus = (blanc, sylvaner) signification sémantique d'une colonne ex : attributs de couleurs-crus = couleur et cru Schéma de relation : nom de la relation suivi de la liste de ses attributs et de la définition de leurs domaines ex : couleurs-crus (couleur : charvar, cru : charvar) vins (nv : integer, cru : charvar, degré : float) Chapitre 2. Le Modèle Relationnel

38 Bases de Données – Sylvain Brandel – 38 Tables Propriétés d'une relation : nom unique dans l'ensemble des relations de la base nombre fixe de colonnes nombre variable de lignes F#NomVille F1 F2 F3 F4 F5 Smith Meyer Muller Ryan Martin Londres Strasbourg Londres Paris P# P1 P5 P18 Nom vis écrou 6 pans boulon F# F1 F3 F1 F5 P# P1 P18 P5 P18 ex : fournisseur piècefournit Une BD relationnelle est un ensemble de relations : relations de l'utilisateur (relations de tables) relations de catalogues (relations systèmes) Chapitre 2. Le Modèle Relationnel

39 Bases de Données – Sylvain Brandel – 39 Colonnes unicité du nom de l'attribut dans une relation (mais pas forcément dans la base) colonne = champ = attribut ex : fournisseur : F# fournit : F# L'attribut prend sa valeur dans un domaine ex : ville { Strasbourg, Paris, Londres, New-York} L'ordre des attributs n'a pas d'importance ex : fournisseur (F#, Nom, Ville) = fournisseur (Nom, F#, Ville) Le nombre d'attributs définit le degré de la relation Chapitre 2. Le Modèle Relationnel

40 Bases de Données – Sylvain Brandel – 40 Lignes Les lignes sont supposées toutes différentes ligne = n-uplet = tuple F#NomVille F1 F2 F1 F4 F5 Smith Meyer Smith Ryan Martin Londres Strasbourg Londres Paris ex : fournisseurINTERDIT L'ordre des lignes n'a pas d'importance P# P1 P5 P18 Nom vis écrou 6 pans boulon ex : pièce= pièce P# P1 P18 P5 Nom vis boulon écrou 6 pans Le nombre de n-uplets définit la cardinalité Chapitre 2. Le Modèle Relationnel

41 Bases de Données – Sylvain Brandel – 41 Catalogue Tables créées et gérées par le système : catalogue des relations catalogue des constituants catalogue des chemins d'accès catalogue des utilisateurs catalogue des droits d'accès etc. Les utilisateurs y accèdent uniquement en lecture Chapitre 2. Le Modèle Relationnel

42 Bases de Données – Sylvain Brandel – 42 Langages d'interrogation Trois théories mathématiques : algèbre relationnelle langage SQL (Oracle, mySQL, …) calcul relationnel des tuples langage QUEL (Ingres) calcul relationnel des domaines langage QBE (IBM) L'algèbre relationnelle est de loin la théorie la plus utilisée Chapitre 2. Le Modèle Relationnel

43 Bases de Données – Sylvain Brandel – 43 Algèbre relationnelle Opérations de base : opérations ensemblistes : - union - différence - produit cartésien opérations spécifiques : - projection - restriction - jointure Opérations dérivées : - intersection - division - complément - éclatement - jointure externe - semi-jointure Chapitre 2. Le Modèle Relationnel

44 Bases de Données – Sylvain Brandel – 44 Union Opération binaire appliquée à deux relations de même schéma ex : fournisseur1 (F#, Nom, Ville), fournisseur2 (F#, Nom, Ville) F#NomVille F1 F2 F3 Smith Meyer Muller Londres Strasbourg F#NomVille F2 F4 Meyer Ryan Strasbourg Londres Chapitre 2. Le Modèle Relationnel

45 Bases de Données – Sylvain Brandel – 45 Différence Opération binaire appliquée à deux relations de même schéma ex : fournisseur1 (F#, Nom, Ville), fournisseur2 (F#, Nom, Ville) F#NomVille F1 F2 F3 Smith Meyer Muller Londres Strasbourg F#NomVille F2 F4 Meyer Ryan Strasbourg Londres Opérateur non commutatif Chapitre 2. Le Modèle Relationnel

46 Bases de Données – Sylvain Brandel – 46 Produit cartésien ex : R1(A,B), R2(C,D) R1 R2 R(A,B,C,D) ex : R (A,B), R (A,B) problème de nom en SQL on peut renommer les relations le temps de la requête Opération binaire appliquée à deux relations de schémas quelconques Chapitre 2. Le Modèle Relationnel

47 Bases de Données – Sylvain Brandel – 47 Produit cartésien ex : fournisseur1 (F#, Nom, Ville), pièce (P#, Nom) F#NomVille F1 F2 F3 Smith Meyer Muller Londres Strasbourg P# P1 P5 P18 Nom vis écrou 6 pans boulon Chapitre 2. Le Modèle Relationnel

48 Bases de Données – Sylvain Brandel – 48 Projection Opération unaire : sélection d'une ou plusieurs colonnes d'une relation F#NomVille F1 F2 F3 F4 F5 Smith Meyer Muller Ryan Martin Londres Strasbourg Londres Paris ex : fournisseur proj Ville (fournisseur) proj Nom, Ville (fournisseur) Chapitre 2. Le Modèle Relationnel

49 Bases de Données – Sylvain Brandel – 49 Restriction (ou sélection) Opération unaire : sélection d'une ou plusieurs lignes d'une relation R | E E : {=,,, } Formule atomique : Les formules atomiques peuvent être reliées par des connectivités- ET - OU - NON Chapitre 2. Le Modèle Relationnel

50 Bases de Données – Sylvain Brandel – 50 Restriction (ou sélection) F#NomVille F1 F2 F3 F4 F5 Smith Meyer Muller Ryan Martin Londres Strasbourg Londres Paris ex : fournisseur fournisseur | ville = "Londres" ex : stock(P#, Quantité-stock, Quantité-seuil) stock | quantité-stock < quantité-seuil Chapitre 2. Le Modèle Relationnel

51 Bases de Données – Sylvain Brandel – 51 Jointure Opération binaire : composition de deux relations à l'aide d'un critère de jointure F#NomVille F1 F2 F3 F4 F5 Smith Meyer Muller Ryan Martin Londres Strasbourg Londres Paris ex : fournisseur (F#, Nom, Ville), fournit(F#, P#) F# F1 F3 F2 F5 P# P1 P18 P5 P18 * Chapitre 2. Le Modèle Relationnel

52 Bases de Données – Sylvain Brandel – 52 Jointure La jointure peut être obtenue par sélection et projection du produit cartésien ex : fournisseur * fournit = proj F#, Nom, Ville, P# (fournisseur fournit | fournit.F# = fournisseur.F#) Le -produit est défini en remplaçant l'égalité par n'importe quel opérateur de l'ensemble le -produit est noté inéqui-jointure (la jointure est alors notée équi-jointure) Lorsque plusieurs attributs sont communs aux deux relations, la comparaison porte sur tous les attributs communs Chapitre 2. Le Modèle Relationnel

53 Bases de Données – Sylvain Brandel – 53 Intersection Opération binaire appliquée à deux relations de même schéma ex : fournisseur1 (F#, Nom, Ville), fournisseur2 (F#, Nom, Ville) F#NomVille F1 F2 F3 Smith Meyer Muller Londres Strasbourg F#NomVille F2 F4 Meyer Ryan Strasbourg Londres Opération redondante : elle peut être obtenue par combinaison d'opérateurs de base R1 R2 = R1 (R1 R2), ou bien R1 R2 = R2 (R2 R1). Chapitre 2. Le Modèle Relationnel

54 Bases de Données – Sylvain Brandel – 54 Division Opération binaire appliquée à deux relations de schémas quelconques D 1 (A 1,… A p, A p+1, … A n ) D 2 (A p+1, … A n ) = Q(A 1, … A p ) dont les tuples sont ceux qui concaténés à tout tuple de D 2 donnent un tuple de D 1 ex : NomVille Muller Meyer Martin Strasbourg Paris P# P1 P5 P18 P5 P18 Ville Strasbourg P# P18 P5 Chapitre 2. Le Modèle Relationnel

55 Bases de Données – Sylvain Brandel – 55 Complément Opération unaire ex : fournit (F#, P#) F# F1 F3 F2 F5 P# P1 P18 P5 P18 fournit Chapitre 2. Le Modèle Relationnel

56 Bases de Données – Sylvain Brandel – 56 Le langage SQL : interrogation Structured Query Language Requête : SELECT... (attributs sur lesquels on projette) FROM... (relation, ou produit cartésien) [WHERE...] (restriction, optionnel) Chapitre 2. Le Modèle Relationnel

57 Bases de Données – Sylvain Brandel – 57 Le langage SQL : interrogation Exemple fournisseur / pièce / fournit fournisseur(F#, Nom, ville) pièce(P#, Nom) fournit(F#, P#) proj Ville (fournisseur) proj Nom, Ville (fournisseur) fournisseur | Ville = "Londres" proj P# (fournisseur fournit | fournisseur.F# = fournit.F# et ville = Londres) Chapitre 2. Le Modèle Relationnel

58 Bases de Données – Sylvain Brandel – 58 Le langage SQL : interrogation Exemple joueur / rencontre / gain joueur(nom, prénom, âge, pays) rencontre(nrencontre, gagnant, perdant, lieu-tournoi, date, score) gains(nom-joueur, lieu-tournoi, date, prime, sponsor) 1. Nom et âge des joueurs américains, autres que 'Connors', âgés de plus de 30 ans 2. Les pays des joueurs de 20 ans (sauf France) 3. Nom et âge des joueurs ayant participé à Roland Garros en Nom et âge des joueurs ayant participé, en 95, aux tournois de Roland Garros et Wimbledon 5. Nom des joueurs ayant perdu toutes leurs rencontres Chapitre 2. Le Modèle Relationnel

59 Bases de Données – Sylvain Brandel – 59 Le langage SQL : création de table CREATE TABLE ( | ) + : chaîne de caractères simple (ex. etudiant), ou composé (un nom de schéma suivi d'un nom de table, ex. crous.etudiant) = [ ] [ ] : - chaînes de caractères de longueur fixe : CHAR (size), où size est facultatif (omis : taille = 1, max = 255) - chaînes de caractères de longueur variable : - VAR CHAR 2 (size), où size est obligatoire (max = 2000) - LONG, sans préciser de taille (on peut y mettre des valeurs jusqu'à 2 Go), mais avec restrictions : - un seul champ de type LONG par relation - contrainte d'intégrité : uniquement NULL ou NOT NULL pour ce champ (NULL = on ne peut rien y mettre) - index interdits - ne peut pas apparaître dans certaines parties d'une commande SQL (WHERE, GROUP BY, DISTINCT...) - numérique (entier positif, négatif, virgule fixe ou flottante) : NUMBER(p,s), où : - p = précision : nombre total de chiffres (1 p 38), facultatif - s = scale : nombre de chiffres à droite de la virgule (s > 0), facultatif ; si s < 0, alors arrondi à gauche de la virgule - NUMBER(p) : s = 0 entiers - NUMBER : p = 38 et s indéfini nombres à virgule flottante - par compatibilité, on peut utiliser NUMERIC, DECIMAL, INTEGER, INT, SMALLINT, FLOAT, REAL, DOUBLE PRECISION - dates : DATE, toutes les dates valides comprises entre le 1 er janvier 4712 av. JC et le 31 décembre 4712 ap. JC. Format : centenaire + année + mois + jour + heure + min + sec Chapitre 2. Le Modèle Relationnel

60 Bases de Données – Sylvain Brandel – 60 Le langage SQL : création de table : DEFAULT val, où val est la valeur que l'on donne à l'attribut lorsque l'utilisateur n'en fournit pas Restriction : - cohérence de type - ne peut pas contenir de référence à une autre colonne - ne peut pas contenir de date non complètement spécifiée : permet de spécifier différentes CI portant sur un seul attribut, y compris les contraintes référentielles : - valeur null impossible : NOT NULL - unicité de l'attribut : UNIQUE ou PRIMARY KEY - contrainte référentielle : REFERENCES [ ] (le second argument est optionnel s'il est identique à la colonne référençante) - contrainte générale : CHECK, la condition pouvant être exprimée avec : -, {=, <>,,>=} - prédicat d'intervalle : BETWEEN AND - prédicat de comparaison de texte : LIKE - test de nullité : NULL - test d'appartenance : IN : peuvent porter sur plusieurs attributs : - contrainte d'unicité : UNIQUE ( ) + - contrainte référentielle : [FOREIGN KEY ( ) + ] REFERENCES [( ) + ] - contrainte générale : CHECK Chapitre 2. Le Modèle Relationnel

61 Bases de Données – Sylvain Brandel – 61 Le langage SQL : création de table Exemples : CREATE TABLE prix (age NUMBER (2) PRIMARY KEY, tarif CHAR (2) DEFAULT 'T1', CHECK (age > 25) ) ; CREATE TABLE etudiant (net NUMBER (2), nom VAR CHAR 2 (30), age NUMBER (2) [ REFERENCES prix [ (age) ] ], adresse VAR CHAR 2 (60), PRIMARY KEY (net), [ FOREIGN KEY (age) REFERENCES prix [ (age) ] ] ) ; Chapitre 2. Le Modèle Relationnel

62 Bases de Données – Sylvain Brandel – 62 Le langage SQL : insertion de données INSERT INTO [ ( ) + ] { VALUES ( ) + | } INSERT INTO etudiant (net, nom, age, adresse) VALUES (1, Meyer, 28, Strasbourg) ; Exemples : INSERT INTO prix VALUES SELECT DISTINCT age FROM etudiant WHERE... ; Remarque : si toutes les colonnes ne sont pas précisées, les manquantes sont remplies avec NULL Chapitre 2. Le Modèle Relationnel

63 Bases de Données – Sylvain Brandel – 63 Le langage SQL : suppression de données DELETE FROM [ WHERE { | CURRENT OF } ] DELETE FROM etudiant WHERE nom LIKE Meyer OR age > 36 ; Exemples : DELETE FROM prix ; Remarque : le second exemple élimine toute la table Chapitre 2. Le Modèle Relationnel

64 Bases de Données – Sylvain Brandel – 64 Le langage SQL : mises à jour UPDATE SET { = { | NULL } } + WHERE { | CURRENT OF } UPDATE prix SET tarif = 'T12' WHERE age = 30 ; Exemples : UPDATE etudiant SET age = age + 1 WHERE nom = Meyer ; Remarque : seuls les n-uplets vérifiant la condition (optionnelle) sont mis à jour Chapitre 2. Le Modèle Relationnel

65 Bases de Données – Sylvain Brandel – 65 Dépendances fonctionnelles Contraintes d'intégrités très fortes Soit R une relation dont les attributs sont U = {u 1, u 2,..., u n } et X U, Y U u R, v R, proj X (R | u) = proj X (R | v) proj Y (R | u) = proj Y (R | v) Y dépend fonctionnellement de X, ou X détermine Y, si : Chapitre 2. Le Modèle Relationnel

66 Bases de Données – Sylvain Brandel – 66 Dépendances fonctionnelles : exemples n-ch type ABAABCABAABC nb-lits douche oui non oui non DF ? DF ? Chapitre 2. Le Modèle Relationnel

67 Bases de Données – Sylvain Brandel – 67 Règles d'inférence Réflexivité Augmentation Transitivité Union Pseudo-transitivité Décomposition Chapitre 2. Le Modèle Relationnel

68 Bases de Données – Sylvain Brandel – 68 Ajout / Suppression d'attributs Supposons G1, G2 D1, D2 VRAIE - Ajout d'attributs à gauche : - Ajout d'attributs à droite : - Suppressions d'attributs à gauche : - Suppression d'attributs à droite : Chapitre 2. Le Modèle Relationnel

69 Bases de Données – Sylvain Brandel – 69 Choix des DF à retenir Ne pas trop simplifier par transitivité X Y Y Z il vaut mieux garder les deux premières X Z Autre simplification G1 X il vaut mieux garder la première G1, G2 X Chapitre 2. Le Modèle Relationnel

70 Bases de Données – Sylvain Brandel – 70 Fermeture Ensemble des DF obtenues à partir de toutes les décompositions possibles des DF de F F 1 + DF (obtenue par application d'une règle) F 2 F 2 + DF (obtenue par application d'une règle) F 3 … F n + DF (obtenue par application d'une règle) F n+1 Lorsqu'il n'est plus possible de trouver de nouvelle DF F + = F n Chapitre 2. Le Modèle Relationnel

71 Bases de Données – Sylvain Brandel – 71 Couverture Ensemble minimal de DF suffisant à retrouver F Méthode : on enlève une DF et on essaye de la retrouver à partir des DF restantes Exemple : Q S T R R, S P T, Q P P, R S F = { } Chapitre 2. Le Modèle Relationnel

72 Bases de Données – Sylvain Brandel – 72 DF élémentaires, clés Y pleinement dépendant de X s'il n'existe pas de sous-ensemble strict X' de X tel que X' X Une clé est un ensemble minimal d'attributs qui détermine tous les autres Chapitre 2. Le Modèle Relationnel

73 Bases de Données – Sylvain Brandel – 73 Passage DF – schéma relationnel nom de l'attributtypedescriptif nomchaînenom de l'hôtel (unique dans une région donnée) catégorieentiernombre d'étoiles de l'hôtel nb-chambresentiernombre total de chambres pour un hôtel donné num-chambreentiernuméro de chambre typeentiertype de chambre prixréelprix d'une chambre nbre-litsentiernombre de lits douchebooléenvrai si la chambre comporte une douche privée baignoirebooléenvrai si la chambre comporte une baignoire privée WCbooléenvrai si la chambre comporte des WC privés lib-divchaînelibellé des divertissements proposés par l'hôtel gratuitbooléenindique si un divertissement proposé par un hôtel est gratuit ou payant saison{'H','B'}H : haute saison, B : basse saison Le type de chambre détermine les commodités offertes : nombre de lits, présence de douche, de baignoire, de WC indépendants. Le prix d'une chambre dépend du type de la chambre. Ainsi, dans un hôtel donné, toutes les chambres de même type auront le même prix. Cette hypothèse n'est pas vraie pour deux hôtels différents. Le prix d'une chambre dépend également de la saison : haute ou basse Chapitre 2. Le Modèle Relationnel

74 Bases de Données – Sylvain Brandel – 74 Passage DF – schéma relationnel 1. Les dépendances fonctionnelles suivantes sont-elles correctes ? 1.nom catégorie, nb-chambres 2.num-chambre type 3.type prix 4.type nbre-lits 5.type, prix douche, baignoire, WC 6.nom, catégorie nb-chambres 7.nom, num-chambre type, douche, baignoire, WC 8.nom, gratuit lib-div 9.catégorie, lib-div gratuit 10.nom, saison, type nbre-lits 2. Déterminer la fermeture 3. Déterminer la couverture 4. Transformation en modèle relationnel Chapitre 2. Le Modèle Relationnel

75 Bases de Données – Sylvain Brandel – 75 Normalisation Exemple : base étudiants net : numéro d'étudiant nom âge adresse tarif : tarif CROUS {T 1, T 2, T 3 } selon l'âge de l'étudiant matière enseignant : enseignant responsable de la matière moyenne : moyenne dans une matière donnée ETUDIANT net nom, âge, adresse matière enseignant net, matière moyenne âge tarif DF : clé ? vérifier qu'aucun attribut ne manque Chapitre 2. Le Modèle Relationnel

76 Bases de Données – Sylvain Brandel – 76 Pourquoi normaliser Redondance et anomalies : Insertion, suppression Redondance Mise à jour Effet de bord netnomâgeadressetarifmatièreenseignantmoyenne Meyer Muller Strasbourg Brumath T1T1T2T1T1T2 UV1 UV2 UV3 Brandel Tellier Agnus NULL Pour y remédier formes normales Chapitre 2. Le Modèle Relationnel

77 Bases de Données – Sylvain Brandel – 77 1 ère Forme normale (1FN) Exemple : netadresse numéroruevilleCP nom INTERDIT Soit mise à plat : netnuméroruevilleCPnom Soit nouvelle relation : netadresseruevilleCPnom 1212 id-adr 1212 et Chapitre 2. Le Modèle Relationnel

78 Bases de Données – Sylvain Brandel – 78 1 ère Forme normale (1FN) Si on a un ensemble (tous les éléments distincts), on duplique : Si on a une liste (différent d'un ensemble car l'ordre a une importance et on peut avoir plusieurs fois la même valeur), il faut rajouter un attribut : netmatièrenote 1UV1{12, 11, 16} netmatièrenote UV netnote 1UV1{12, 11, 12} netmatièrenote UV ordre matière Chapitre 2. Le Modèle Relationnel

79 Bases de Données – Sylvain Brandel – 79 1 ère Forme normale (1FN) Exemple : base étudiants ETUDIANT En 1FN ? Remarque :l'atomicité d'un domaine dépend du niveau de décomposition Chapitre 2. Le Modèle Relationnel

80 Bases de Données – Sylvain Brandel – 80 2 ème Forme normale (2FN) Une relation est en 2FN si : - elle est en 1FN - aucun attribut n'est dépendant d'une partie seulement de la clé Exemple typique de relation NON en 2FN : XYZWR : parce que Y W on décompose en :R1 R2 Chapitre 2. Le Modèle Relationnel

81 Bases de Données – Sylvain Brandel – 81 2 ème Forme normale (2FN) Exemple : base étudiants ETUDIANT En 1FN ? OUI La clé est le couple net, matière net, matière nompleine ? net, matière âgepleine ? net, matière adressepleine ? net, matière tarifpleine ? net, matière enseignantpleine ? net, matière moyennepleine ? En 2FN ? NON Chapitre 2. Le Modèle Relationnel

82 Bases de Données – Sylvain Brandel – 82 2 ème Forme normale (2FN) on découpe d'après les DF : net nom, âge, adresse, tarif matière enseignant net, matière moyenne ETUDIANT ENSEIGNEMENT NOTE En 2FN ? OUI netmatièrenomâge adressetarifenseignantmoyenne Chapitre 2. Le Modèle Relationnel

83 Bases de Données – Sylvain Brandel – 83 2 ème Forme normale (2FN) Remarque :si on supprime une moyenne, on ne perd plus d'étudiant Par contre, il faut fixer une Contrainte d'Intégrité référentielle (CI réf) exprimant que si on supprime un étudiant, il faut que la moyenne disparaisse aussi : CI réf : proj net (NOTE) proj net (ETUDIANT) proj matière (NOTE) proj matière (ENSEIGNEMENT) Chapitre 2. Le Modèle Relationnel

84 Bases de Données – Sylvain Brandel – 84 3 ème Forme normale (3FN) Une relation est en 3FN si : - elle est en 2FN - tous les attributs n'appartenant pas à une clé sont directement dépendants d'une clé Exemple typique de relation NON en 3FN : XYZWR : parce que Y W on décompose en :R1 R2 Chapitre 2. Le Modèle Relationnel

85 Bases de Données – Sylvain Brandel – 85 3 ème Forme normale (3FN) Exemple : base étudiants ETUDIANT ENSEIGNEMENT NOTE En 2FN ? OUI ETUDIANT en 3FN ? NON parce que net âge tarif on découpe en ETUDIANT PRIX ENSEIGNEMENT en 3FN ? OUI NOTE en 3FN ? OUI Chapitre 2. Le Modèle Relationnel

86 Bases de Données – Sylvain Brandel – 86 3 ème Forme normale (3FN) Le schéma devient alors : ETUDIANT PRIX ENSEIGNEMENT NOTE En 3FN ? OUI CI réf à ajouter pour éviter des redondances en cas de suppression dans la relation ETUDIANT : CI réf : proj âge (PRIX) proj âge (ETUDIANT) Chapitre 2. Le Modèle Relationnel

87 Bases de Données – Sylvain Brandel – 87 Forme normale de Boyce-Codd (FNBC) Une relation est en FNBC s'il n'y a pas d'autres DF que K A, où - K est la clé - A est un attribut non clé Exemple typique de relation NON en FNBC : XYZWR : parce que W Y on décompose en :R1 R2 Chapitre 2. Le Modèle Relationnel

88 Bases de Données – Sylvain Brandel – 88 Forme normale de Boyce-Codd (FNBC) Exemple : base étudiants En FNBC ? OUI ETUDIANT PRIX ENSEIGNEMENT NOTE LOCALISATION Exemple : base vins cru, pays région cru, pays qualité région pays DF : Chapitre 2. Le Modèle Relationnel

89 Bases de Données – Sylvain Brandel – 89 Forme normale de Boyce-Codd (FNBC) En 2FN ? OUI parce que le cru ne détermine pas la région En FNBC ? crupaysrégionqualité NON parce que région pays on décompose : CRUS REGION cru, pays qualité région pays DF : La décomposition est sans perte malgré la perte d'une DF Chapitre 2. Le Modèle Relationnel

90 Bases de Données – Sylvain Brandel – 90 4 ème Forme normale (4FN) Exemple netcourssport BD Algo escalade tennis escalade tennis VTT clé : net, cours, sport Redondances, mais pas de DF permettant de les supprimer 4FN : COURS SPORT Chapitre 2. Le Modèle Relationnel

91 Bases de Données – Sylvain Brandel – 91 5 ème Forme normale (5FN) Exemple clé : buveur, cru, producteur Redondances, mais pas de DF ni de DM permettant de les supprimer 5FN : buveur Meyer Brandel cru Edel Gewurtz Edel producteur Claude André buveur Meyer Brandel cru Edel Gewurtz Edel producteur Claude André buveur Meyer Brandel cru Edel Gewurtz producteur Claude André Chapitre 2. Le Modèle Relationnel

92 Bases de Données – Sylvain Brandel – 92 Exemples de décomposition R Quelle est la décomposition en 3FN dans les trois cas : 1. F = {A B, B C } 2. F = {A B, C} 3. F = { } Chapitre 2. Le Modèle Relationnel

93 Bases de Données – Sylvain Brandel – 93 Exemples de décomposition Quelle est la décomposition en 3FN ? GITES F 0 = {nom catégorie, nbre-chambres nom, num-chambre type type nb-lits, douche, baignoire, WC nom, lib-div gratuit nom, type, saison prix } Chapitre 2. Le Modèle Relationnel

94 Bases de Données – Sylvain Brandel – 94 Insertion – suppression Emploi de n-uplets, sans précision sur son mode d'obtention (entrée au clavier + vérification) Couple pré-condition – post-condition : - pré-condition : doit être vérifiée pour avoir le droit d'exécuter l'opération - post-condition : le résultat de l'opération doit la vérifier L'ordre d'insertion / suppression dans les relations est important Vérifier qu'il n'y a pas de situation d'interblocage : par exemple insérer avant un net peut permettre d'insérer autre chose Chapitre 2. Le Modèle Relationnel

95 Bases de Données – Sylvain Brandel – 95 Insertion – suppression DF = {net nom, âge, adresse matière enseignant net, matière moyenne âge tarif } CI réf :proj net (NOTE) proj net (ETUDIANT) proj matière (NOTE) proj matière (ENSEIGNEMENT) proj âge (PRIX) proj âge (ETUDIANT) Exemple : base étudiant ETUDIANT PRIX ENSEIGNEMENT NOTE Attributs : net, nom, âge, adresse, tarif, matière, enseignant, moyenne Chapitre 2. Le Modèle Relationnel

96 Bases de Données – Sylvain Brandel – 96 Insertion – suppression Insertion dans PRIX On cherche à insérer un n-uplet n dans PRIX - pré-condition : n.âge proj âge (PRIX) - post-condition : PRIX = PRIX {n} Suppression dans PRIX On cherche à supprimer un n-uplet n de PRIX - pré-condition : n.âge proj âge (ETUDIANT) - post-condition : PRIX = PRIX - {n} Suppression en cascade : - pré-condition : VRAI - post-condition : - PRIX = PRIX - {n} - ETUDIANT = ETUDIANT – (ETUDIANT | âge = n.âge) - NOTE = NOTE – (NOTE | net proj net (ETUDIANT | âge = n.âge)) Chapitre 2. Le Modèle Relationnel

97 Bases de Données – Sylvain Brandel – 97 Insertion – suppression Insertion d'un n-uplet n dans ETUDIANT : - pré-condition : - n.net proj net (ETUDIANT) - n.âge proj âge (PRIX) - post-condition : ETUDIANT = ETUDIANT {n} Suppression dans ETUDIANT : - pré-condition : n.net proj net (NOTE) - post-condition : ETUDIANT = ETUDIANT – {n} Suppression en cascade : - pré-condition : VRAI - post-condition : - ETUDIANT = ETUDIANT – {n} - NOTE = NOTE - (NOTE | net = n.net) Chapitre 2. Le Modèle Relationnel

98 Bases de Données – Sylvain Brandel – 98 Insertion – suppression Insertion d'un n-uplet n dans NOTE : - pré-condition : - (n.net, n.matière) proj net, matière (NOTE) (différent de (n.net proj net (NOTE) et n.matière) proj matière (NOTE)) - n.net proj net (ETUDIANT) - n.matière proj matière (ENSEIGNEMENT) - post-condition : NOTE = NOTE {n} Suppression dans NOTE : - pré-condition : VRAI (ne vient pas de suppression en cascade mais de l'absence de conditions) - post-condition : NOTE = NOTE - {n} Chapitre 2. Le Modèle Relationnel

99 Bases de Données – Sylvain Brandel – 99 Chapitre 3 Le Modèle Entités / Associations

100 Bases de Données – Sylvain Brandel – 100 Entité Entité = individu dans MERISE classe (ou type) d'entité : une classe regroupe toutes les entités de même nature Exemple : M. Meyer, département de vente d'une entreprise... M. Meyer est UNE entité Entité = objet concret ou abstrait qui peut être distinctement identifié dans l'esprit du concepteur et qui présente un intérêt particulier Exemple : M. Meyer classe Personne (M. Meyer est une occurrence de la classe Personne) Exemple : M. Meyer possède une 205 Chapitre 3. Le Modèle Entités / Associations

101 Bases de Données – Sylvain Brandel – 101 Association Association = relation dans MERISE Classe (ou type) d'association = ensemble des associations ayant même sémantique, définies sur un même type d'entités Association = relation entre une ou plusieurs entités Un type d'association ne peut pas être directement relié avec un autre type d'association : INTERDIT (sauf extension agrégation) Chapitre 3. Le Modèle Entités / Associations

102 Bases de Données – Sylvain Brandel – 102 Association Un type d'entité de peut être relié à un autre type d'entité que par un lien d'association : INTERDIT Il n'y a pas de restriction sur le nombre de types d'associations entre types d'entités : Chapitre 3. Le Modèle Entités / Associations

103 Bases de Données – Sylvain Brandel – 103 Cardinalité et fonctionnalité Cardinalité min et max reportées sur la graphique : Personne Possède Voiture a,b c,d a = nombre min d'occurrences de B liées à l'occurrence de A par A - B ( {0,1}) b = nombre max d'occurrences de B liées à l'occurrence de A par A - B ( {1,n}) c = nombre min d'occurrences de A liées à l'occurrence de B par A - B ( {0,1}) d = nombre max d'occurrences de A liées à l'occurrence de B par A - B ( {1,n}) Remarque : selon les auteurs, les couples (a,b) et (c,d) peuvent être représentés sur une liaison ou sur l'autre Chapitre 3. Le Modèle Entités / Associations

104 Bases de Données – Sylvain Brandel – 104 Cardinalité et fonctionnalité cardinalité : couple (a,b) ou (c,d). 4 alternatives pour les deux couples (a,b) et (c,d) : 0,1 - 0,n - 1,1 - 1,n Pas d'autre choix possible. fonctionnalité : couple (b,d). 3 alternatives : n - n m Dimension (ou ordre ou degré) du type d'association = nombre de types d'entités distinctes qui interviennent dans le type d'association. relation unaire (dimension = 1) : femme mari Personne marié à Personne marié à Chapitre 3. Le Modèle Entités / Associations

105 Bases de Données – Sylvain Brandel – 105 Cardinalité et fonctionnalité relation binaire (dimension = 2) : relation ternaire (dimension = 3) : …relation n-aire (dimension = n) : Chapitre 3. Le Modèle Entités / Associations

106 Bases de Données – Sylvain Brandel – 106 Cardinalité et fonctionnalité Problèmes quand il y a plus de deux types d'entités : Les cardinalités peuvent varier selon les questions que l'on se pose : Chapitre 3. Le Modèle Entités / Associations

107 Bases de Données – Sylvain Brandel – 107 Attribut Attribut = propriété dans MERISE Attribut = propriété d'un type d'entité ou d'association Personne id nom âge adresse Autre notation : - id - nom - âge - adresse Personne Attribut : - valeurs simples, pas de structure, pas d'ensemble - valeurs facultatives ou obligatoires Attribut : - soit des identifiants : clés, soulignés dans la représentation graphique - soit des descripteurs : tous les autres Chapitre 3. Le Modèle Entités / Associations

108 Bases de Données – Sylvain Brandel – 108 Attribut Attributs du type d'association : clés de chacun des types d'entités de l'association + des attributs propres à l'association Produit Id-fourn Nom Ligne catalogue Prix 0,n Fournisseur Id-produit Désignation Clé de l'association : a priori, elle est constituée de toutes les clés de l'ensemble des clés des entités qui interviennent dans l'association Exemple : la clé de ligne catalogue est (Id-fourn, Id-produit) En pratique, ce n'est pas toujours le cas : Produit 0,1 Le prix ne dépend que du numéro de produit Chapitre 3. Le Modèle Entités / Associations

109 Bases de Données – Sylvain Brandel – 109 Attribut Matière Id-élève Nom … Inscrit Note 0,n Elève Id-matière Libellé … inscrit n'autorise pas d'avoir plusieurs notes pour un étudiant donné dans une matière donnée analyser la cause de la répétitivité et introduire un type d'entités pour la traduire inscrit, on peut à présent avoir plusieurs notes par élève (une par date). Chapitre 3. Le Modèle Entités / Associations

110 Bases de Données – Sylvain Brandel – 110 Attribut Il existe des exemples où cela ne fonctionne pas : Prison Id-bandit Nom … Séjour prison Date début Date fin 0,n Bandit Id-prison … Date 1,ndébut Chapitre 3. Le Modèle Entités / Associations

111 Bases de Données – Sylvain Brandel – 111 Normalisation L'attribut est affecté au type d'entités ou d'associations qu'il décrit le plus directement : Voiture Date de naissance Possède Date d'achat Personne Date de 1 ère imat Les trois dates sont très différentes Choix entité / attribut : Bureau Id-emp Nom … Occupe Surface 0,10,n Employé Id-bureau Surface Id-emp Nom No_bureau Surface Employé OU Si plusieurs employés par bureau Si un seul employé par bureau Le choix dépend de l'importance du bureau Chapitre 3. Le Modèle Entités / Associations

112 Bases de Données – Sylvain Brandel – 112 Normalisation Un type d'entité qui ne comporte qu'un identifiant peut être traité comme un attribut, à condition qu'il n'intervienne pas dans un nouveau type d'association et qu'il ne génère pas d'attribut à valeur multiple : Il faut toujours vérifier si les associations de degré supérieur à deux ne peuvent pas être rapportées à plusieurs associations de degré inférieur Un type d'association peut être éliminé s'il est la composition de deux types d'associations qui, par des cardinalités (0,1) ou (1,1), expriment la même réalité Lieu Affectation Station ski Situation Hôtel 1,11,n Chambre 1,1 1,n1,1 INTERDIT Chapitre 3. Le Modèle Entités / Associations

113 Bases de Données – Sylvain Brandel – 113 Modèle E/A modèle relationnel Voiture Id-pers Nom Possède Date d'achat Personne Immatriculation Type 0,n0,1 Exemple voitures Chapitre 3. Le Modèle Entités / Associations

114 Bases de Données – Sylvain Brandel – 114 ETUDIANT PRIX ENSEIGNEMENT NOTE Modèle E/A modèle relationnel Exemple étudiants Solution 1 : Chapitre 3. Le Modèle Entités / Associations

115 Bases de Données – Sylvain Brandel – 115 ETUDIANT PRIX ENSEIGNEMENT NOTE Modèle E/A modèle relationnel Solution 2 : Chapitre 3. Le Modèle Entités / Associations

116 Bases de Données – Sylvain Brandel – 116 Modèle E/A modèle relationnel Exemple employés SERVICE EMPLOYE PROJET PARTICIPE Chapitre 3. Le Modèle Entités / Associations

117 Bases de Données – Sylvain Brandel – 117 Généralisation / spécialisation Généralisation : regrouper les différents types d'entité en faisant abstraction de leurs différences Spécialisation : mise en évidence des particularités des sous-types Personne id nom Homme service militaire Femme nom jeune fille Chapitre 3. Le Modèle Entités / Associations

118 Bases de Données – Sylvain Brandel – 118 Généralisation / spécialisation Il peut y avoir N niveaux d'abstraction : Véhicule Terrestre Diesel Aérien Essence AtmosphériqueCompresséCarburationInjection DieselEssence Chapitre 3. Le Modèle Entités / Associations

119 Bases de Données – Sylvain Brandel – 119 Généralisation / spécialisation Sur N critères : Personne HommeFemmeMajeurMineur Association à tous les niveaux : Employé ProgrammeurChef de projetSecrétaire Travaille DirigeDisposeVoiture BerlineMonospace Chapitre 3. Le Modèle Entités / Associations

120 Bases de Données – Sylvain Brandel – 120 Modèle étendu : MERISE 2 Intégration d'informations supplémentaires dans le modèle E/A : - partition (+) : disjonction + couverture (l'un ou l'autre) - totalité (T) : disjonction + couverture (l'un ou l'autre ou les deux, mais pas autre chose) - exclusion ( ) : disjonction + couverture (l'un ou l'autre ou autre chose, mais pas les deux) Fait appel aux notions de : - couverture : ensemble recouvrant tous les éléments - Disjonction : pas d'éléments commun à deux sous-ensembles Partition : + Totalité : T Exclusion : Représentation graphique : Chapitre 3. Le Modèle Entités / Associations

121 Bases de Données – Sylvain Brandel – 121 Modèle étendu : MERISE 2 Personne Homme Femme Voiture DieselTurbo Partition :Totalité : Diesel Essence Voiture (GPL) Exclusion : Chapitre 3. Le Modèle Entités / Associations

122 Bases de Données – Sylvain Brandel – 122 Modèle étendu : MERISE 2 + Personne Id-pers Nom Chanteur Voix Musicien Instrument Exemple Chapitre 3. Le Modèle Entités / Associations

123 Bases de Données – Sylvain Brandel – 123 Modèle étendu : MERISE 2 une relation personne partition :voix NULL XOR instrument NULL totalité :voix NULL OR instrument NULL exclusion :voix = NULL OU instrument = NULL autre possibilité : personne partition :type {C,M} type = C ET voix NULL ET instrument = NULL type = M ET voix = NULL ET instrument NULL totalité : type {C,M,D} exclusion : type {C,M,NULL} type = C ET voix NULL ET instrument = NULL type = M ET voix = NULL ET instrument NULL Expression des contraintes d'intégrité référentielles : Chapitre 3. Le Modèle Entités / Associations

124 Bases de Données – Sylvain Brandel – 124 Modèle étendu : MERISE 2 trois relations partition :C3 (C1 et C2 non nécessaires) totalité :C4 (C1 et C2 non nécessaires) exclusion :C1 ET C2 ET C3 autre possibilité : partition : type {C,M} proj id-pers (chanteur) proj id-pers (personne | type = C) proj id-pers (musicien) proj id-pers (personne | type = M) totalité :type {C,M,D} exclusion : type {C,M,NULL} proj id-pers (chanteur) $ proj id-pers (personne | type {C,D}) proj id-pers (musicien) proj id-pers (personne | type {M,D}) personne chanteur musicien C1 : proj id-pers (chanteur) proj id-pers (personne) C2 : proj id-pers (musicien) proj id-pers (personne) C3 : proj id-pers (musicien) proj id-pers (chanteur) = C4 : proj id-pers (musicien) proj id-pers (chanteur) = proj id-pers (personne) personne chanteur musicien Chapitre 3. Le Modèle Entités / Associations

125 Bases de Données – Sylvain Brandel – 125 Chapitre 4 Utilisation d'un SGBD : mySQL Apache PHP PHPmyAdmin

126 Bases de Données – Sylvain Brandel – 126 Présentation Serveur HTTP robuste très couramment utilisé Apache SGBD robuste pauvre en fonctionnalités mySQL Générateur de pages web dynamiques ("remplace" javascript) très couramment utilisé simple (syntaxe proche du C) PHP Interface PHP pour utiliser et administrer mySQL très intuitif puissant PHPmyAdmin gratuit robuste multi plate-formes Chapitre 4. Exemple de SGBD

127 Bases de Données – Sylvain Brandel – 127 EasyPHP Le plus simple à installer EasyPHP 1.6 (16/04/02) : - apache php mysql phpmyadmin les versions les plus récentes du moment Télécharger le fichier : easyphp1-6_setup.exe (10,3 Mo) Installer avec toutes les options par défaut Distribution Windows, testée pour : - Win9x / Me - NT / 2K (à voir pour XP) Par défaut, tout est installé dans c:\Program Files\EasyPHP\ Chapitre 4. Exemple de SGBD

128 Bases de Données – Sylvain Brandel – 128 Protection de mySQL Impératif de protéger l'accès à mySQL Protection des répertoires fournie par Apache Créer un fichier.htaccess avec un éditeur : AuthName "Acces BD" AuthType Basic AuthUserFile "c:\Program Files\EasyPHP\phpmyadmin\.passwd" AuthGroupFile None require valid-user Créer un fichier.passwd avec l'utilitaire Apache htpasswd (dans une fenêtre invite de commande) : c:\>cd Program Files\EasyPHP\apache\bin c:\Program Files\EasyPHP\apache\bin>htpasswd –c.passwd brandel Automatically using MD5 format on Windows. New password: ******** Re-type new password: ******** Adding password for user brandel Placer les fichiers.htaccess et.passwd dans c:\Program Files\EasyPHP\phpmyadmin Chapitre 4. Exemple de SGBD

129 Bases de Données – Sylvain Brandel – 129 Utilisation de Apache / PHP Le point d'entrée du site WEB est dans : c:\Program Files\EasyPHP\www Ce répertoire contient un fichier index.php exécuté lorsqu'on tape dans la zone URL d'un navigateur (IE par ex.) Créer un fichier saluer.php : un titre un vrai !

Votre prénom ? Placer ce fichier dans c:\Program Files\EasyPHP\www Exécution par l'URL Chapitre 4. Exemple de SGBD

130 Bases de Données – Sylvain Brandel – 130 Utilisation de mySQL (au moins) 3 méthodes : - PHPmyAdmin - mysql - PHP PHPmyAdmin Accessible avec un navigateur : - soit directement à l'URL - soit interactivement depuis (si le fichier index.php original a été remis dans c:\Program Files\EasyPHP\www ) Possibilités : - créer des bases, des objets, des utilisateurs… - manipuler des données - exporter des requêtes - … Chapitre 4. Exemple de SGBD

131 Bases de Données – Sylvain Brandel – 131 Utilisation de mySQL mysql Interpréteur SQL en ligne (genre sqlplus) dans une fenêtre invite de commande L'utilitaire mysql se trouve dans c:\Program Files\EasyPHP\mysql\bin Pour accéder aux objets d'une base : mysql> connect mysql mysql> describe columns_priv; nom d'une base (mysql = base "système") nom d'une table Chapitre 4. Exemple de SGBD

132 Bases de Données – Sylvain Brandel – 132 Utilisation de mySQL PHP Langage de programmation servant à générer des pages HTML dynamiques (interfacées avec mySQL) ou statiques Exemple 1 : Test de mySQL Chapitre 4. Exemple de SGBD

133 Bases de Données – Sylvain Brandel – 133 Utilisation de mySQL PHP Exemple 2 : Test de mySQL titre, artiste: $row->artiste, date: $row->date \n"; } else { echo " erreur dans l'exécution de la requête "; echo " message d'erreur de mysql : ".mysql_error($link); } ?> Chapitre 4. Exemple de SGBD


Télécharger ppt "Bases de Données – Sylvain Brandel – 1 Bases de Données Université Louis-Pasteur de Strasbourg Département d'informatique Sylvain BRANDEL Pôle API, Boulevard."

Présentations similaires


Annonces Google