Bases de données : Présentation générale et Méthode de Conception
Support de Formation
Bases de données :
Présentation générale et Méthode de conception
Chapitre 1 Généralités sur les bases de données_____________________________
Chapitre 2 Objectifs de l'approche SGBD__________________________________
2.1 Intégration et corrélation__________________________________________
2.2 Flexibilité ou indépendance________________________________________
2.3 Disponibilité_____________________________________________________
2.4 Sécurité_________________________________________________________
Chapitre 3 Architecture fonctionnelle d'un SGBD : ANSI-SPARC_____________
3.1 Niveau conceptuel_______________________________________________
3.2 Niveau externe__________________________________________________
3.3 Niveau interne ou Physique________________________________________
Chapitre 4 Fonctionnement d'un SGBD___________________________________
4.1 Chronologie des opérations dans l’interrogation d’un SGDB______________
4.2 Les langages d'un SGBD__________________________________________
Chapitre 5 Rôle de l'administrateur de la base______________________________
Chapitre 6 Principaux modèles logiques___________________________________
6.1 Le modèle hiérarchique___________________________________________
6.2 Le modèle en réseau______________________________________________
6.3 Le modèle relationnel_____________________________________________
Chapitre 7 Conception de bases de données________________________________
7.1 Les Formes normales_____________________________________________
7.2 Démarche de conception__________________________________________
7.3 Les phases de la conception avec un symbolisme de type « MERISE »________
Chapitre 8 Exercices__________________________________________________
Définition et Historique
- chaque nouvelle application créait alors ses propres fichiers de données et ses propres programmes ;
- le concept de base de données va à l'encontre de cette façon de procéder : il permet la centralisation, la coordination, l'intégration et la diffusion de l'information archivée.
des SGBD :
Toute manipulation de fichier exige trois niveaux d’intervention, et trois couches logicielles :
- Gestion du support physique : disques durs, disquette, streamers…
?Pilote d’entrées-sorties(Driver)
- Gestion des structures internes des fichiers, et des méthodes d’accès : ouverture, fermeture, lecture, écriture…
?Système de gestion de fichiers (SGF)
- Gestion des contenus : calculs, tests, affichages
?Programmes applicatifs
Applications Système d'exploitation Matériel
Niveau Niveau
logique physique
- définir des "bases de données", et des relations entre les éléments de chaque base ;
- spécifier le traitement de ces données : interrogations, mises à jour, calculs, extractions
Dans les systèmes classiques, chaque application gère ses données dans ses propres "fichiers", d’où
- La même donnée peut appartenir à plusieurs applications, induisant une déperdition de stockage.
- Toute modification de cette donnée est à enregistrer plusieurs fois : si cette mise à jour multiple n'est pas effectuée correctement, les données deviennent incohérentes.
- Le coût de la mise à jour augmente du fait de la multiplication des entrées-sorties physiques.
- Les nouvelles applications entraînent des duplications supplémentaires de données.
- Leur intégration avec les applicatifs en exploitation entraîne des modifications importantes.
- indépendance physique: tout changement de support, de méthode d'accès reste transparent au niveau de l'utilisateur.
- indépendance logique : les programmes d'application sont rendus transparents à une modification dans l'organisation logique globale, par la définition de sous-schémas couvrant les besoins spécifiques en données.
- indépendance vis-à-vis des stratégies d'accès : l'utilisateur n'a plus à prendre en charge l'écriture des procédures d'accès aux données. Il n'a donc pas à intégrer les modifications tendant à optimiser les chemins d'accès (ex: création d'index).
- la confidentialité, ou protection contre l'accès non autorisé ou la modification illégale des données.
- puissance de représentation : aspects structurels, contraintes existant dans l'univers réel.
- stabilité et flexibilité : l'ajout d'une nouvelle donnée ou d'une nouvelle contrainte ne doit pas entraîner de changement important dans le schéma.
- simplicité de compréhension : nombre d'éléments réduit, dissociation claire des différents concepts.
- base formelle : la définition du schéma doit s'appuyer sur une méthode rigoureuse, mathématique, pour éviter toute ambiguïté d'interprétation et pour garantir la fiabilité des données.
- Une entité peut être définie comme une personne, un objet, un lieu, un statut, un événement qui ont une existence dans le monde réel. C'est un objet concret ou abstrait, possédant un certain nombre de caractéristiques spécifiques (exemple : le produit x coûte y francs).
- Généralement, les entités du monde réel se manifestent à travers des faits élémentaires.
- Certains faits faisant intervenir plusieurs entités, il apparaît la notion d'association. Une association (ou lien) est un ensemble de deux ou plusieurs entités, chacune d'elles jouant un rôle particulier.
Exemple : le fait que la "voiture x" appartienne à la "personne y" est une association entre les entités "voiture " et "personne".
- les liens fonctionnels notés N : 1
On a un lien fonctionnel N:1 de A vers B si toute occurrence de A détermine au plus une occurrence de B, et si à toute occurrence de B, correspond un nombre quelconque d’occurrences de A.
Exemple : dans une compagnie aérienne, connaissant le numéro d'un vol, on en déduit d'une manière unique la destination, mais plusieurs vols peuvent avoir la même destination.
Numéros Vols Destinations
- les liens hiérarchiques notés 1 : N.
Exemple : la polygamie est un lien 1 : N de "homme" vers "femme".
- les liens maillés notés N : M.
On a un lien maillé de A vers B s'il n'existe aucune restriction sur le nombre d'occurrences de A et B intervenant dans le lien.
Exemple : dans un lycée donné, un enseignant peut dispenser des cours dans plusieurs matières différentes ; de la même façon, une matière peut être dispensée par plusieurs enseignants.
Un programme d'application A émet une demande de lecture de données au SGBD sur une des bases :
- leur utilisation par les utilisateurs ou les programmeurs d'application.
Langage de Description de Données : LDD
Langage de Manipulation de Données : LMD
L'utilisation d'une BDD suppose un grand nombre d'utilisateurs, souvent non informaticiens, ayant des tâches et des besoins variés auxquels le LMD doit pouvoir répondre. Le SGBD fournit deux niveaux d’accès :
évite le recours à des langages généraux de programmation. Il doit avoir une syntaxe souple, si possible graphique, être accessible aux non-spécialistes et permettre la formulation de demandes utilisant des critères variés et combinés.
pour les traitements réguliers, le SGBD doit fournir une interface permettant l'utilisation de la base à l'aide des langages procéduraux (COBOL, Pascal, C/C++….), en incorporant les requêtes dans des programmes classiques.
dans les SGBD hiérarchiques ou réseaux. Les requêtes du langage décrivent les chemins d'accès aux différentes données, celles-ci étant généralement chaînées entre elles.
- description de la structure de la base : schéma interne, conceptuel, sous-schémas externes.
- organisation du stockage physique
- manipulation des informations : sélection, extraction, mise à jour…
- protection des données : pour personnaliser les accès à la base, il faut identifier l'utilisateur (code et mot de passe) et vérifier qu'il est autorisé à effectuer les traitements demandés (contrôle des droits d'accès).
- sécurité, restauration : possibilité de reconstituer la base dans un état satisfaisant après tout incident
- optimisation des ressources, tenue d’un journal de tous les événements : le logiciel doit fournir des statistiques précises sur l'état de la base et permettre des réorganisations physiques périodiques qui éviteront la dégradation des performances globales du système.
- intégrité des données : cohérence des informations les unes par rapport aux autres
- intervenir en tant que conseil lors de l'étape conceptuelle de l'analyse : responsabilité de gestion des données
- décider des techniques d'accès et de l'implantation physique
- gérer les diverses autorisations d'accès
- définir les stratégies de reprise en cas d'incident
- suivre régulièrement les performances du système et réaliser en conséquence les modifications ou évolutions qui s'imposent.
Les trois principaux modèles sont, dans l'ordre chronologique de leur arrivée sur le marché, le modèle hiérarchique, le modèle réseau (ou navigationnel), le modèle relationnel.
- Forte dépendance entre la description de la structure des données et la manière dont celles-ci sont enregistrées sur le support physique.
- Les éléments de base du modèle sont des enregistrements logiques reliés entre eux pour constituer un arbre ordonné.
- Les entités (ou segments) constituent les noeuds, celui de plus haut niveau portant le nom de racine ; les branches (pointeurs logiques entre entités) constituent les liens. Chaque segment est une collection d'objets appelés champs (ou fields).
- Chaque segment a obligatoirement un père (sauf la racine), et peut avoir plusieurs fils.
- rigueur des structures et des chemins d'accès
- simplicité relative de l'implémentation
- adéquation parfaite du modèle à une entreprise à structure arborescente.
- les accès se font uniquement depuis la racine
- la structure interdit les liens N:M, ne permettant que le lien 1:N. La représentation d'autres relations impose de ce fait une redondance de l'information.
Exemple : comment représenter dans ce modèle, un parc de véhicules et un ensemble de chauffeurs, chaque chauffeur pouvant conduire plusieurs véhicules, et un véhicule pouvant être conduit par plusieurs chauffeurs ?
- les "anomalies" que l'on constate lors des opérations de mise à jour (insertion, destruction, modification) : l'élimination d'un noeud entraîne l'élimination de tous les segments de niveau inférieur qui lui sont rattachés (risque de perdre des données uniques)
- pas d'interface utilisateur simple.
- un enregistrement d'un ensemble de données A est associé à une série d'enregistrements (ou records) d'un autre ensemble de données B. On constitue ainsi des SET, ou COSET, structure fondamentale du modèle en réseau
- le lien entre les enregistrements de A et ceux de B est 1:N
- le COSET comporte un type d'enregistrement "propriétaire" (l'enregistrement de A est dit OWNER) et un type d'enregistrement "membre" (les enregistrements de B sont MEMBER).
- aucune restriction dans la conception : un type de "record" peut à la fois être propriétaire et membre de plusieurs sets
- représentation naturelle des liens maillés N:M
- pas d'anomalies pour les opérations de stockage
- commercialisation importante des systèmes correspondants (DMS, IDMS, TOTAL, IDS II, SOCRATE ),
MAIS
- pas d'indépendance par rapport aux stratégies d'accès
- procéduralité importante des langages de manipulation ; l'utilisateur doit "naviguer" dans le réseau logique constitué par les enregistrements et les chaînes de pointeurs.
Exemple: représentation d'une table du personnel
Matricule | Nom | poste | Salaire | N° dept |
350 | Durand | Employé | 8000 | 320 |
780 | Dupond | Cadre | 15000 | 870 |
320 | Veillon | PDG | 25000 | 400 |
490 | Martin | Cadre | 15000 | 320 |
Caractéristiques du modèle
1ère forme normale
Une relation est dite en première forme normale si chaque attribut possède une seule valeur (ce qui exclut les groupes), et si elle admet une clé primaire.
Exemple:
L'exemple porte sur un ensemble de données concernant des tests de types différents, effectués sur les éléments matériel d'un système de production :
R ( libellé matériel, code marque, libellé marque, type de test, date du test, résultat du test) n'est pas en 1ère forme normale car aucun attribut ne peut être clé primaire : le libellé matériel peut être identique pour plusieurs éléments.
R (code matériel, libellé matériel, code marque, libellé marque, code type de test, libellé du test, date du test, résultat du test)
n'est pas en 1ère forme normale car on peut faire plusieurs tests sur un même matériel, ce qui exige de répéter les informations "code type de test", "libellé du test", "date du test", "résultat du test", dans un même nuple.
La relation doit être éclatée en deux, pour être exprimée en 1ère forme normale :
R-MATERIEL (code matériel, libellé matériel, code marque, libellé marque)
R-TEST (code matériel, code type, libellé test, date du test, résultat du test)
Les deux relations ne comportent que des attributs sans répétition. Dans R_TEST, la clé primaire est composée de "code matériel" et "code type" : un type de test peut concerner plusieurs matériels, un matériel peut être testé plusieurs fois, mais chaque matériel ne subit qu’une fois un type de test donné.
2ème forme normale
Une relation est dite en deuxième forme normale si elle est en première forme normale, et si tout attribut n'appartenant pas à la clé primaire ne dépend pas que d'une partie de cette clé.
R-TEST(code matériel, code type, libellé test, date du test, résultat du test)
La relation doit éclatée en deux, pour être exprimée en deuxième forme normale :
R-TEST (code matériel, code type, date du test, résultat du test)
R-TYPETEST (code type, libellé test)
3ème forme normale
Une relation est dite en troisième forme normale si elle est en deuxième forme normale, et si toutes les dépendances fonctionnelles issues de la clé primaire sont directes
R-MATERIEL(code matériel, libellé matériel, code marque, libellé marque)
La dépendance entre "code matériel" et "libellé marque" n'est pas directe, "libellé marque" est en dépendance fonctionnelle directe avec le "code marque".
La relation doit être éclatée en deux, pour être exprimée en troisième forme normale :
R-MATERIEL(code matériel, libellé matériel, code marque)
R-MARQUE(code marque, libellé marque)
Le schéma conceptuel final de la base de données est donc :
R-MATERIEL (code matériel, libellé matériel, code marque)
R-MARQUE (code marque, libellé marque)
R-TYPETEST (code type, libellé test)
R-TEST (code matériel, code type, date du test, résultat du test)
Commentaires:
Concevoir une base de données relationnelle, c'est établir pour le système d'information étudié, les relations entités et les relations associations en troisième forme normale.
1ère étape :
Etablir les schémas externes, c'est-à-dire lister les données nécessaires à chaque utilisateur de la future base.
2ème étape :
Dictionnaire de données du système d'informations relatif aux tests sur les matériels de production :
code matériel, libellé matériel
code marque,libellé marque
code type de test, libellé du test, date du test, résultat du test
3ème étape :
Etablir les contraintes d'intégrité fonctionnelle (ou dépendances fonctionnelles) entre attributs.
AttributsEn dépendance fonctionnelle avec
code matériel
libellé matérielcode matériel
code marque
libellé marquecode marque
code type de test
libellé du testcode type de test
date du testcode matériel + type de test
résultat du testcode matériel + type de test
4ème étape :
En déduire les relations "entités" et les relations "associations avec attributs" :
Entités:Matériel, Marque, Type de test
Association avec attributs: Test
5ème étape :
Etablir les relations "associations sans d'attributs" en considérant deux cas :
- Il existe un lien fonctionnel N : 1 entre les entités : la clé primaire de l'entité mère devient clé étrangère dans l'entité fille
Exemple: matériel-marque. L’entité "Matériel" dépend (est fille) de l’entité "Marque" : la clé étrangère "code marque" dans "Matériel" pointe sur la clé primaire "code marque" dans "Marque" .
- Le lien entre les deux entités est de type N:M : il faut créer une nouvelle relation association sans attributs, qui contient seulement les clés primaires des deux relations associées.
6ème étape:
Représenter le schéma de la base
7ème étape:
S'assurer que les relations sont en troisième forme normale.
Présentation
M.C.D
-L’association«est emprunté le»contient la propriété«Date»
-Cardinalité :Un livre peut être emprunté 0 ou une fois(min = 0, max = 1 dans la notation Merise).Un adhérent peut emprunter de 0 à N livres(min= 0, max= N)
?lien fonctionnelN: 1 dans lanotation ANSI-SPARC
M.L.D
Règle: les propriétés de l’association glissent du côté 0-1, la flèche pointe vers le côté 0,n
Dans latableLivres, on ajoute la date de l’emprunt, et une flèche vers l’adhérent emprunteur
MPD
Objet1 (Prop1.1, Prop1.2, PropR.1, Prop2.1)
Objet2 (Prop2.1)
Règle : une clé étrangère Prop2.1 pointant sur objet2.Prop2.1 est ajoutée à objet1
Livres(Titre, Auteur, Date, Nom)
Adherents(Nom)
Dans la relation Livres, on ajoute la clé étrangère «Nom»,pointant sur «»
N
M.C.D
-L’association"écrit"contient la propriété"Date"(de parution)
-Cardinalité de la relation:Un auteur peut écrire de 1 à n livres. Un livre peut avoir de 1 à m auteurs =>lien mailléN: Mdans lanotation ANSI-SPARC
M.L.D
Règle: l’association devient une nouvelle table et les flèches pointent vers les tables liées
On crée une nouvelle table « écrit », avec la propriété « Date », et des liens vers les clés des entités « Auteurs » et « Livres »
MPD
Objet1 (Prop1.1, Prop1.2)
R1(Prop1.1, Prop2.1, PropR.1)
Objet2 (Prop2.1)
Règle: la relation devient une table dont la clé est la concaténation des clés des deux objets liés.
Exemple:
Livres(Ident, Titre)
Ecrit (Nom, Ident, Date)
Auteurs(Nom, Prénom)
récapitulatif
MCD
MLD
MPD
Client (N°Client, NomClient, PrenomClient).
Commande (N°Commande, DateCommande, MontantCommande, N°Client).
SeComposeDe (N°Commande, N°Article, Qte, TauxTva).
Article (N°Article, DesignationArticle, PUArticle).
MCD
MLD
MPD
Enseigne (NomProf, Matiere).
Profs (NomProf, PrenomProf, AgeProf, SalaireProf).
Cours (NomProf, Matiere, N°Salle, DateCours, HeureCours).
Salles (N°Salle, DesignationSalle)
Règle : une relation ternaire devient une table dont la clé est la concaténation des clés des trois objets liés.
Trouvez les formes normales des relations suivantes (exercices indépendants) :
R1 (N° client, n° produit, quantité commandée, nom produit)
R2 (N° commande, n° produit, quantité commandée)
Dans chaque commande émise, on commande certaines quantités de plusieurs produits. Un même produit peut être commandé dans plusieurs bordereaux de commandes
R3 (N° client, nom client, nom représentant)
Un client peut être suivi par plusieurs représentants de l’entreprise. Pour simplifier, on supposera que les noms des représentant sont uniques, et qu’un représentant ne démarche qu’un seul client.
R4 (N° produit, nom produit, n° atelier, nom chef d'atelier)
Chaque produit est fabriqué dans un seul atelier. Il n’y a bien sûr qu’un chef par atelier !
R5 (N° produit, n° fournisseur, nom fournisseur)
ENONCE 2
- un auteur est classé dans une seule spécialité
- un livre appartient ou non à une collection. S'il appartient à une collection, il ne peut appartenir qu'à une seule collection.
- les droits d'auteur sont calculés sur le nombre d'exemplaires vendus dans l'année.
Relevé des droits d'auteur
Année 1995
Auteur n° 73
Monsieur Dupont Jean
3 rue des alouettes
25 BESANCON
N° SS 1520373265005 Spécialité: Mathématiques
Taxe (5%) : 570 F
NET A PAYER 11970 F
Une troupe théatrale se produit dans le monde entier. L'équipe établit régulièrement le document décrit plus loin. Elle vous demande de l'analyser en vue d'une informatisation.
Un grand garage se propose d'informatiser son système de gestion en introduisant une base de données pour l'établissement des factures.Voici l'image du document facture:
- Une entrée d'un véhicule reçoit un numéro d'intervention ;
- Chaque intervention est formée d'une suite d'opérations ;
- Chaque opération correspond à un travail codifié et affecté d'un coût standard défini par le garage.
- Pour une opération donnée sur un véhicule donné, un seul ouvrier intervient.
APIAI Champs/Marne (origine Dijon) page 1