Académique Documents
Professionnel Documents
Culture Documents
A. U. 2017-2018
Conception de BD
RK 2
I. Introduction
• Volume important de données (Banques, bibliothèques, … etc.)
– Problème : comment stocker et manipuler les données?
– Données → Bases de données (BD)
– Logiciel → Système de Gestion de bases de Données (SGBD)
• I.1. Bref Historique des SGBD?
– Années 1960s:
• Organisation classique en fichiers.
• 1ère génération de SGBD (hiérarchiques puis réseaux).
– Années 1970s:
• 2ème génération de SGBD – SGBD relationnels (commercialisés en
1980).
– Années 1980s:
• 3ème génération de SGBD – SGBD orientés objet
– Années 1990s:
• 4ème génération supportant le web et le multimédia
Conception de BD
RK 3
I. Introduction
• I.2. Pourquoi les BD?
– Pour pallier aux problèmes des systèmes traditionnels (systèmes de
fichiers):
• Redondance des données:
– Particularisation des fichiers en fonction des traitements.
• Insécurité des données:
– Accès non autorisés
– Abandon d’un ensemble d’opérations
• Incohérence des données:
– MAJ d’une partie des données redondantes
– Non respect des contraintes d’intégrités
Conception de BD
RK 4
Limites des systèmes de fichiers
Fichiers Applications
BP 2536
Facturation
BP 2536 Commercial
BP 2536
Prospects
Délais de mise à jour
Conception de BD
RK 5
Avec base de données
BP 2536 Facturation
Commercial
Prospects
Conception de BD
RK 6
Propriétés d’une BD
– Une BD permet de :
• Combiner toutes les données
• Centraliser les données
• Partager les données entre plusieurs traitements
– Limitation de la redondance des données
• Appliquer les MAJ qu’une seule fois
• respecter les contraintes d’intégrités (age d’une personne doit être
un nombre positif)
• Sécuriser les accès
• Abandonner facilement les opérations erronées non validées
• Résister aux pannes éventuelles
Conception de BD
RK 7
I.3. Qu’est ce qu’une BD?
Conception de BD
RK 8
I.4. Avantages des BDs
Conception de BD
RK 9
SGF v.s. SGBD
Figure prise du livre de Rob & Coronel, Database Systems: Design, Implementation, and Management, Sixth Edition
Conception de BD
RK 10
Vision simplifiée d’un SGBD
SGBD externe
SGBD interne
Terminaux
Conception de BD
RK 11
I.5. Architecture fonctionnelle type d’un SGBD
Conception de BD
RK 12
Architecture à niveaux Ansi/Sparc
Correspondance
externe/conceptuelle
Description
Niveau Conceptuel
Unique
Correspondance
Conceptuelle/physique
Conception de BD
RK 13
Avantage de la séparation en 3 niveaux
Conception de BD
RK 15
Architecture Fonctionnelle de Référence
Requête
Analyse syntaxique
ANALYSEUR Analyse sémantique
Gestion des schémas
Modification de requêtes
META-BASE TRADUCTEUR Contrôle d'intégrité
Contrôle d'autorisation
Ordonnancement
OPTIMISEUR Optimisation
Élaboration d'un plan
Exécution du plan
Plan d'Accès EXECUTEUR Méthodes d'accès
Contrôle de concurrence
Atomicité des transactions
BD
Conception de BD
RK 16
Types de SGBD
• SGBD Hiérarchique:
– Les données sont représentées dans la base sous forme de structure
arborescente.
• Manipulation des données (balayage ascendant/descendant).
– E. g. IMS-IBM
• SGBD réseau:
– Les données sont représentées dans la base sous forme d ’un graphe
quelconque.
– Les programmes:
• ne sont pas indépendants de la structure logique de la base
• doivent indiquer le chemin d’accès aux données
• utilisent un langage complexe pour travailler avec lers données.
Conception de BD
RK 17
Types de SGBD
• SGBD relationnel:
– fondé sur la théorie mathématique des relations;
– représentation très simple des données (tables);
– langage non procédural (déclaratif), puissant et simple d’emploi
– SQL est un standard parmi ces langages
– dominent le marché:
• Exemples : Oracle, DB2, SQLServer, Access, DBase, Paradox, … etc.
• SGBD Objet:
– enregistre les données sous forme d’objets
– E. g. O2
• … les « Data WareHousing »!
Conception de BD
RK 18
II. Les Systèmes de Fichiers et les SGBDs
Conception de BD
RK 19
II. 1. Introduction aux fichiers (1)
SGBD
Demande Enregistrement
d’enregistrement mémoire
mémoire retourné
Gestionnaire
de Fichiers
Demande Page
de page
mémoire
mémoire
retournée ?
Gestionnaire
de disque
Opération Données
d’entrée/sortie lues sur
sur disque le disque
BD
Conception de BD
RK 20
II. 1. Introduction aux fichiers (2)
• Fichier
Notion introduite dans les années 1950s afin de simplifier l’utilisation des
mémoires secondaires des ordinateurs, fournir des récipients de données plus
manipulables aux programmes.
• Système d’exploitation : contient un SGF standard.
• SGBD : deux niveaux indépendants (logique et physique)
Traiter et conserver des quantités importantes de données, et de partager ces
données entre plusieurs programmes.
En général, n’utilise pas le système de fichiers standard pour des raisons de
performance;
Basé au niveau interne des SGBD, complété par des méthodes d’accès
spécifiques.
offre d'autres fonctionnalités :
concurrence, reprise sur pannes, confidentialité…
Conception de BD
RK 21
II. 1. Introduction aux fichiers (3)
Données
Metabase
statistiques
Conception de BD
RK 22
II.3. Notions de base sur les fichiers et SGF (1)
• Fichier (file) = ensemble d'informations stockées sur une mémoire secondaire (MS),
structurées en enregistrements.
– Pourquoi sur MS? La mémoire centrale (MC) est limitée en taille, chère, et volatile
(à conserver toujours sous tension, sinon perte des informations).
– Les MS (disques, disquettes, ...) sont peu coûteuses, non volatiles et de grande
capacité. Mais elles ne sont pas accessibles par le processeur central des ordinateurs.
Il faut transférer l'information de la MS vers la MC pour pouvoir la traiter
• Problèmes:
– Les transferts entre MC et MS (appelés entrées-sorties ou E/S) sont lents
(millisecondes –10-3).
Conception de BD
RK 23
II.3. Notions de base sur les fichiers et SGF (2)
• Enregistrement (article, record) = élément d'un fichier, qui est l'unité logique de
transfert MC-MS, et l'unité de traitement des programmes exploitant ce fichier.
Unité de transfert avec la mémoire secondaire : Blocs (taille fixe)
Plusieurs blocs forment un segment
• Format des enregistrements du fichier = description de la liste des données (attributs,
champs, data items, attributes, fields) contenues dans chaque enregistrement.
Les champs sont de types élémentaires (entier, caractère, pointeur,…)(nom, âge,
adresse)
Exemple: format pour un fichier d'étudiants:
nom prénom n°carte datenaissance sexe adresse téléphone section année
15c 10c e8 date 1c 100c e8 15c e4
• RK
Conception de BD
24
II.3. Notions de base sur les fichiers et SGF (3)
• Fonctions d'un système de fichiers (SGF):
– Fonctions élémentaires (enregistrement)
• ajouter/insérer/chercher/mettre à jour/supprimer
– Fonctions globales (fichier):
• créer/détruire/lister/trier/copier/fusionner deux fichiers,...
– Gestion
• De la protection contre les pannes;
• de la confidentialité des fichiers;
• de la concurrence (partage simultané des fichiers).
• Les appels aux fonctions SGF sont effectués au moyen de requêtes dans un programme.
– Les requêtes permettent de modifier le contenu des fichiers
• Les SGBD permettent d'effectuer ce qu'offrent les SGF sous une autre forme, beaucoup
plus puissante (traitements plus globaux), ainsi que d'autres fonctions (gestion des
données et non d'enregistrements, liens entre fichiers, ...).
• Des produits à mi-chemin entre SGF et SGBD existent sur le marché (e. g. dBASE).
Conception de BD
RK 25
II.5. Organisations et méthodes d'accès
Conception de BD
RK 26
II.5.1 Organisation Séquentielle
• Consiste à mettre les enregistrements dans le fichier les uns après les autres selon leur
ordre d'arrivée (de création), sans mémoriser l'endroit où ils ont été écrits.
– Ne permet que l'accès séquentiel.
– Elle est efficace dans les cas où les traitements nécessitent de lire ou d'écrire tous les
(ou une grande partie des) enregistrements du fichier.
• Le blocage d’enregistrements:
– 1 bloc = n enregistrements
– Lorsque plusieurs enregistrements sont transférés ensemble lors d’un échange, on
dit qu’ils sont bloqués.
– Le facteur de blocage est le nombre n d’enregistrements par bloc.
• Calculé de manière à occuper au mieux les blocs physiques
• Dans l'organisation séquentielle sans blocage, chaque enregistrement occupe un bloc
physique et nécessite une E/S pour être lu ou écrit.
Conception de BD
RK 27
II.5.1 Organisation Séquentielle (suite)
• Fichier Séquentiel (interface)
– lire premier
– lire suivant
– écrire
– supprimer
• Avantages de l'organisation séquentielle avec blocage:
– excellente organisation pour l'accès séquentiel : 1/b E/S par
instruction en moyenne (on ne peut pas faire mieux)
– très bonne utilisation des MS
• Inconvénients:
– Impossibilité d'insérer ou de supprimer un article (sauf recopie de
tout le fichier)
– pas d'accès sélectif
Conception de BD
RK 28
II.5.2. Organisation Aléatoire (1)
– Les enregistrements ont des numéros relatifs (1, 2, 3, ...), appelés clés, qui est
leur numéro d'ordre dans le fichier.
• #enregistrement → adresse
• L'adresse relative dans le fichier de l'enregistrement de numéro i est :
(i-1)*longueur de l'enregistrement.
Conception de BD
RK 29
II.5.2. Organisation aléatoire (2)
Conception de BD
RK 30
Le Hachage
• Fichier à N enregistrements
• Table T de N pointeurs vers les blocs de données
• Fonction mathématique H
– H : domaine de la clé → [0..N-1]
– Un enregistrement de clé K se trouve dans le bloc pointé par T[H(K)]
• Accès direct au bloc
• Statique/dynamique (moins utilisé)
– Dynamique: selon le nombre d’enregistrements, la taille de T est 1, 2, 4, 8, …, 2N
• Gain de place
• Collision possible
0
1
Ki H(Ki)
2
3
T
Conception de BD
RK 31
Techniques de débordement de blocs
– bloc(s) suivant. Il faut alors noter la liste des blocs de débordement dans l'en-tête
du bloc, ou chaîner les enregistrements ayant débordé;
Conception de BD
RK 32
Organisation aléatoire (suite)
• Avantages:
– S'il n'y a pas de débordement, très bonnes performances: 1 E/S par lecture.
• Inconvénients:
Conception de BD
RK 33
II.5.3. Organisation indexées (1)
• Supposant qu’on a :
– Le fichier est trié suivant une clé
– Les enregistrements sont chaînés à l’aide de pointeurs
• Insertion
– Il y a de la place dans un même bloc que l’enregistrement précédent:
l’enregistrement à insérer est dans l'ordre de la clé
– dans un autre bloc en cas d'absence de place
• Suppression
– simple si on ne cherche pas à compacter
• Problèmes
1. Les mises à jour sont rapidement compliquées
2. Ne marche bien que si la taille du fichier est à peu près connue.
3. ACCESTROP LENTS INDEX (le plus courant)
Fichier de données + table d’index
Conception de BD
RK 34
Index
Insertion
• index dense : insérer la clé dans l’index si elle n'y est pas
• index non dense : pas de changement dans l'index si l'insertion est réalisée dans un
bloc existant. Sinon, insérer la première clé du nouveau bloc dans l’index.
Suppression
Conception de BD
RK 36
Index dense --Exemple
Fichier avec un index trié dense (i.e., toutes les clés existantes y sont répertoriées)
Conception de BD
RK 37
Index hiérarchisé --Exemple
Fichier avec un index hiérarchisé à deux niveaux; les blocs d'index contiennent 4 clés,
les blocs d'enregistrements 3 enregistrements. La recherche d'une clé coûte 2 E/S.
Index
Conception de BD
RK 38
Coût de recherche dans un index
Conception de BD
RK 39
Autres Index
✓ 1. Index primaire
Sur un attribut clé : un enregistrement au plus pour chaque valeur de la clé
• 2. Index secondaire
Sur un attribut non clé (en général dense)
• 3. Index croisé sur un ensemble d’attributs
Fichier inverse indexé sur tous ses attributs
• 4. Quand l’index grossit (e.g. index dense) → stocker l’index dans un
fichier
– On peut le trier et indexer lui-même.
– Dans chaque bloc, on note la clé la plus petite, et on construit une table.
– Le fichier d’index est stocké, comme les enregistrements, sur mémoire
secondaire, et il est découpé en blocs qui constituent l'unité de lecture et
d'écriture.
Idée des B-tree
Conception de BD
RK 40
Les index secondaires
• Objectif: permettre l'accès par plusieurs attributs (ou groupes d'attributs) différents
• Par exemple sur un fichier Etudiant, accéder par le numéro de carte, par le nom
• Pour chaque attribut (ou groupe d'attributs), appelé clé secondaire, on crée un index.
Conception de BD
RK 41
Index secondaire --Exemple
Conception de BD
RK 42
• Avantage des index secondaires:
– Plusieurs accès sélectifs selon des attributs différentes possibles, en plus des accès dus à
l'organisation de base du fichier.
• Inconvénients:
– Multiplier les index secondaires multiplie les E/S lors des mises à jour des fichiers.
• Il n'est intéressant de faire un index sur une clé que si:
– le nombre d'accès en lecture sur cette clé est très supérieur au nombre de mises à jour
(suppressions, insertions, modifications de l'attribut clé secondaire) d'enregistrements
– la valeur de la clé est stable (rarement modifiée)
– le "pouvoir sélectif", p, de la clé (nombre total de valeurs prises par la clé dans le
fichier) est supérieur au facteur de blocage des enregistrements. En effet, une
recherche séquentielle des enregistrements répondant au critère: attribut = valeur,
coûte: N/b E/S
• La même recherche via un index secondaire sur cet attribut coûte en moyenne: v
+ N/p E/S (v=nombre de niveaux de l'index)
• L'index est donc utile si: v + N/p < N/b et donc si: p>b .
Conception de BD
RK 43
La famille B-tree
• B-tree
– Utilisée dans la plupart des SGBD commercialisés.
– Hiérarchie des index sous forme d’arbre équilibré (implantation dynamique).
• Structure de données de B-tree d’ordre n:
– Nœud interne: stocke l’information de l’index
• p-1 valeurs de clés et p pointeurs vers les sous-arbres, ⎾n/2˥ ≤ p ≤ n.
• K1 < K2 <…< Kp < … < Kn-1
• Sauf le nœud racine contient au moins 1 clé et deux pointeurs.
Conception de BD
RK 44
La famille B-tree
• N.B.
– B-tree stocke aussi les pointeurs vers les enregistrements
Conception de BD
RK 45
Exemple de B-tree
B1 o 25 o 144 o
B2 o 9 o - o B3 o 64 o 100 o B4 o 196 o - o
B1 o 25 o - o B14 o 144 o - o
B14 o 25 o 81 o
APRES SUPPRESSION de 64
Conception de BD
RK 47
B-tree: Insertion
Conception de BD
RK 48
B-Tree: Suppression
Conception de BD
RK 49
Les méthodes d’accès --Résumé
Conception de BD
RK 50
Conclusion
• Contrairement au SGF, avec un SGBD:
– l’organisation interne des données est transparente
– les applications manipulent des structures de données logiques
indépendance logique/physique
• Chaque SGBD a son propre SGF avec ses caractéristiques:
– Les fichiers sont souvent de taille fixe
– des organisations et des accès appropriés
• méthode indexée (données + index avec clé): la plus courante
implantations différentes selon le SGBD
– Arbre-B les plus utilisés dans les SGBD
• Hachage statique très utilisé
Conception de BD
RK 51
III. Les principaux modèles de données
1. Introduction
2. Le modèle hiérarchique
3. Le modèle réseau
4. Le modèle Entité-Association
5. Le modèle relationnel
Conception de BD
RK 52
III.1 Introduction aux modèles de données
• La vue conceptuelle:
– la représentation de l’ensemble des informations contenues dans la base de
données.
– Vue globale de la BD
– Définie par un schéma conceptuel:
• le résultat de la modélisation de l’entreprise.
• écrit au moyen de LDD conceptuel
– Elle se fait indépendamment de toute référence aux représentations des champs
en mémoire, à l’indexage, aux pointeurs, … bref à l’implémentation en
machine.
Modélisation sémantique au problème de la conception de la base de données.
Conception de BD
RK 53
III.2. Modèle Hiérarchique
III.2.1 Principes
• Modèle hiérarchique (1960)
• Schéma de base arborescent dans lequel les relations entre les éléments d’un niveau à ceux
du niveau immédiatement inférieur sont de type un à « plusieurs ».
• Il permet une représentation approchée du réel au prix d’une redondance plus ou forte
des données.
• Il impose un chemin d’accès unique à chaque élément de données (depuis la racine).
• Inconvénient majeur: pas de séparation nette entre le niveau conceptuel (la
représentation du monde) et le niveau physique (c-à-d l’indépendance entre données et
traitements n’est pas réalisée).
Conception de BD
RK 54
III.2.1 Principes (suite)
nom.
Conception de BD
RK 55
III.2.2 Caractéristiques du modèle
• Permet aux type de segments d’être reliés par des relations parents-
enfants (1:n) Enseignant
1
n
Etudiant
Conception de BD
RK 56
III.2.3 Limitations du modèle
Conception de BD
RK 57
III.2.4 Avantages du modèle
• Le premier support d’IBM qui a introduit le premier système hiérarchique appelé IMS.
Conception de BD
RK 58
Exemple
Conception de BD
RK 59
Exemple
Conception de BD
RK 60
Ordre de visite dans l’arbre
1. Visite l’enregistrement
s’il n’a pas été visité
1
2. Sinon, visite l’enfant le
plus à gauche, non visité
3. Sinon, si aucun enfant, 2
grand-enfant, etc. 6 8 9
n’existe, revient à
l’enregistrement parent 3 4 5 7
Conception de BD
RK 61
III.2.5 Système IMS
SGBD disponible.
Conception de BD
RK 62
Architecture IMS (1)
Conception de BD
RK 63
Architecture IMS (2)
Zone entrée sortie Prog App1 Prog App2 Zone entrée sortie
PSB A PSB B
PCB A1 PCB A2 PCB B1 PCB B2
BD L BDL
BD P BDP
Organisation physique
des données et chemin d’accès
Supports de
stockage
Conception de BD
RK 64
Architecture IMS (3)
• Le transfert de données entre IMS et les programmes d’applications se fait par les
zones d’entrées/sorties
Conception de BD
RK 65
La base de données physique
• Toutes les occurrences d’un type de segment qui ont le même parent
sont appelées « jumeaux ».
Conception de BD
RK 66
Description de la BD physique
DBD NAME=PROFESSEURDB
SEGM NAME=PROFESSEUR, BYTE=25
FIELD NAME=(PROFNOM,SEQ),BYTES=15 START 1 ProfNom Specialité Annxp Professeur
FIELD NAME=SPECIALITE,BYTES=8 START 16
FIELD NAME=ANNXP,BYTES=2 START 24
SEGM NAME=UNIVERSITE, BYTE=40,PARENT=PROFESSEUR Université Étudiant
FIELD NAME=(UNIVNOM,SEQ),BYTES=15 START 1 UnivNom Adr EtudMat EtudNom AdrEt
FIELD NAME=ADRESSE,BYTES=25 START 16
SEGM NAME=ETUDIANT, BYTE=44 , PARENT=PROFESSEUR
FIELD NAME=(ETUDMAT,SEQ),BYTES=4 START 1
FIELD NAME=ETUDNOM,BYTES=15 START 5
FIELD NAME=ADRET,BYTES=1525 START 20 cours
SEGM NAME=COURS, BYTE=18,PARENT=ETUDIANT CourDes Semestre Niv
FIELD NAME=(COURSDES,M),BYTES=15 START 1
FIELD NAME=SEMESTRE,BYTES=1 START 16
FIELD NAME=NIV,BYTES=2 START 17
DBDGEN
FINISH
END
Conception de BD
RK 67
Les sous-schémas PCB et PSB
Conception de BD
RK 68
Exemple
PCB TYPE = DB, DBNAME = PROFESSEURDB, KEYLEN = 34
SENSEG NAME = PROFESSEUR, PROCOPT = G
SENSEG NAME = ETUDIANT, PARENT = PROFESSEUR, PROCOPT= I
SENSEG NAME = COURS, PARENT = ETUDIANT, PROCOPT = GIR
PSBGEN LANG = COBOL, PSBNAME = SOUSPROF.
Professeur
Étudiant
Cours
Conception de BD
RK 69
La manipulation des données: DL1
• Langage procédural d’accès aux données
Conception de BD
RK 70
Les commandes DL1
Recherche directe (1ère occurrence) GET UNIQUE (GU)
Recherche l’occurrence du segment suivant
celle mémorisée dans le PCB (parcours
GET NEXT (GN)
séquentiel de haut en bas puis de gauche à
droite)
Recherche à l’intérieur des descendants du
GET NEXT WITHIN PARENT (GNP)
segment courant
Mêmes opérations que les 3 premières GET HOLD UNIQUE (GHU)
commandes mais permet de garder le GET HOLD NEXT (GHN)
segment en mémoire GET HOLD NEXT WITHIN PARENT (GHNP)
Mise à jour d’un segment REPLACE (REPL)
Insertion d’un nouveau segment INSERT (ISRT)
Destruction d’un segment DELETE (DLET)
Conception de BD
RK 71
Les Méthodes d’accès aux données
• Les méthodes d’organisation des données utilisées par IMS:
– Organisation séquentielle hiérarchisée
• HSAM (Hierarchical Sequentiel Access Method)
– On accède séquentiellement aux segments, stockés selon l’ordre hiérarchique.
• HISAM (Hierarchical Idexed Sequentiel Access Method)
– Les segments-racines sont stockés dans un fichiers séquentiel indexé et pointe vers
leurs enfants auxquels on accède ensuite de façon séquentielle
– Organisation directe hiérarchisée
• HDAM (Hierarchical Direct Access Method)
– On accède aux segments racines par un algorithme d’adressage puis aux enfant par
une chaîne de pointeurs
» Chaîne enfant/jumeau
» Chaîne hiérarchique
• HIDAM (Hierarchical Idexed Direct Access Method)
– Les segments-racines sont stockés dans un fichier séquentiel indexé et pointent
vers leurs enfants qui sont reliés par une chaîne de pointeurs ( enfant/jumeau ou
hiérarchique)
Conception de BD
RK 72
III. 3. Le Modèle Réseau
III.3.1 Principe
• Le modèle réseau apporte plus de souplesse car il permet de créer des liens logiques
entre des faits ou objets différents.
• L’accès aux données n’est pas limité aux chemins descendants/ascendants du modèle
hiérarchique, peut se faire de plusieurs façons différentes pour une même donnée.
• Article (Record): collection d’atomes (champs) –type d’articles
• Lien (Set): type d’association orientée entre articles propriétaires vers n articles
membres.
Conception de BD
RK 73
III.3.2 Caractéristiques
• Les liens entre les articles sont de type 1:n et représentés par une flèche portant le nom
du lien.
• La différence majeure avec le modèle hiérarchique est la capacité du modèle réseau à
représenter les parents multiples d’un types d’articles.
• Exemple:
Compagnie Division
Pièces détachées
Employés
Conception de BD
RK 74
III.3.2 Caractéristiques (suite)
Conception de BD
RK 75
En conclusion ….
Conception de BD
RK 76
LDD CODASYL
• Spécificités
– Types d'article
• structure complexe
• Clé
– Attributs
• Simple/complexe
• Mono/Multivalué
– Types de Set
• Binaires
Conception de BD
RK 77
Schéma exemple
Conception de BD
RK 78
Type d'article:
RECORD Hôpital,
……..
02 nom-hôpital TYPE CHARACTER 25,
02 adresse,
03 numéro TYPE INTEGER,
03 rue TYPE CHARACTER 25,
03 code postal TYPE INTEGER,
03 ville TYPE CHARACTER 25,
02 budget-99 TYPE REAL,
……..
Conception de BD
RK 79
Attributs multivalués
RECORD consultation,
…….
02 prescription TYPE CHARACTER 30
OCCURS 10 TIMES,
RECORD service,
…….
02 nombre-infirmières TYPE INTEGER,
02 infirmière OCCURS nombre-infirmières TIMES,
03 nom TYPE CHARACTER 20,
03 qualification TYPE CHARACTER 50,
Conception de BD
RK 80
Placement des articles
• Le placement des occurrences d'articles se fait par type d'article, dans une zone
Conception de BD
RK 81
Placement direct
RECORD Hôpital,
LOCATION MODE IS CALC VIA nom-hôpital DUPLICATES
ARE NOT ALLOWED
WITHIN F-Hop,
……..
• Placement direct par fonction de hachage sur un attribut
(organisation aléatoire)
• Placement dans l'AREA spécifiée
Conception de BD
RK 82
Placement indirect-1
RECORD Service,
LOCATION MODE IS VIA constitué WITHIN F-Hop,
……..
• placement indirect par proximité avec l'occurrence
propriétaire dans le set "constitué"
• placement dans la même AREA que le propriétaire
Conception de BD
RK 83
Placement Indirect 2
RECORD Docteur,
LOCATION MODE IS VIA emploie WITHIN F-Doc,
……..
• placement indirect par homothétie avec l'occurrence
propriétaire dans le set "emploi"
• placement dans une autre AREA que le propriétaire
Conception de BD
RK 84
LDD
• Attributs
• [ { numéro nom-att TYPE IS INTEGER
REAL
CHARACTER nb [OCCURS nbx
TIMES] … } ]
Conception de BD
RK 85
RECORD NAME IS Hôpital, RECORD NAME IS Service,
LOCATION MODE IS CALC USING LOCATION MODE IS VIA constitué
nom-hôpital DUPLICATES WITHIN F-Hop,
NOT ALLOWED WITHIN F-Hop, 02 nom-service TYPE CHARACTER 20,
02 nombre-lits TYPE INTEGER,
02 nom-hôpital TYPE CHARACTER
25, 02 nom-chef TYPE CHARACTER 20,
02 nombre-infirmières TYPE INTEGER,
02 adresse,
02 infirmière OCCURS nombre-
03 numéro TYPE INTEGER, infirmières TIMES,
03 rue TYPE CHARACTER 25, 03 nom TYPE CHARACTER 20,
03 code postal TYPE INTEGER, 03 qualification TYPE CHARACTER 50,
03 ville TYPE CHARACTER 25, ……..
02 budget-99 TYPE REAL,
……..
Conception de BD
RK 86
RECORD NAME IS Docteur,
LOCATION MODE IS VIA emploie WITHIN F-Doc,
02 nom-docteur TYPE CHARACTER 20,
……..
RECORD NAME IS Malade,
LOCATION MODE IS CALC USING numéro-malade
WITHIN F-Mal,
02 numéro-malade TYPE CHARACTER 20,
02 nom-malade TYPE CHARACTER 20,
……..
RECORD NAME IS Consultation,
LOCATION MODE IS VIA passe WITHIN F-Mal,
02 date TYPE CHARACTER 8,
02 horaire TYPE CHARACTER 5,
02 prescription TYPE CHARACTER 30 OCCURS 10
TIMES,
……..
RK
Conception de BD
87
Placement
Conception de BD
RK 88
Type de Set
Conception de BD
RK 89
Syntaxe
Conception de BD
RK 91
LMD CODASYL:Navigationnel
RABTA
H. Militaire
Conception de BD
RK 94
Exemple d’évolution des pointeurs
Pointeurs:
• Ouverture de la base
• Chercher ‘H.Militaire’
• Ouverture Chirurgie pour Militaire
Conception de BD
RK 95
Programme utilisateur/SGBD
Conception de BD
RK 96
Accès sélectif aux articles d’organisation CALC
Conception de BD
RK 98
Balayage séquentiel des membres
d’un propriétaire
Exemple: Liste des consultations passées par le malade n° 130
N.B. : comme pour un type d ’article, on peut aussi effectuer un balayage arrière.
Conception de BD
RK 100
Remonter d ’un membre à son
propriétaire
• Exemple: Quels sont les médecins qui • Suite:
ont ordonné du xxx au malade 130; on GET docteur; Print docteur/* affiche le
veut les noms du médecin et de docteur*/
l’hôpital. FIND OWNER WITHIN emploie /*
positionne sur le service*/
Malade . Numéro-malade : = 130 FIND OWNER WITHIN constitué /*
FIND ANY Malade positionne sur l ’hôpital */
Consultation. Prescription : = xxx GET HOPITAL ; Print Hpital/* affiche
FIND consultation WITHIN CURRENT OF l’hôpital */
passe USING FIND DUPLICATE WITHIN CURRENT
prescription. OF passe USING prescription
Tant que SGBD-STATUS = "ok" faire Fin tant que
FIND OWNER WITHIN donne
/* positionne sur le docteur*/ Remarque: Pour pouvoir utiliser un FIND
sur un set (FIND….WITHIN nom-set),
il faut que le pointeur du set soit
initialisé.
Conception de BD
RK 101
Repositionnement sur un article
accédé auparavant
• Les instructions de lecture et de mise à jour (autres que celle d’insertion d ’un
nouvel article) travaillent toutes sur l ’article référencé par le pointeur
programme. Il arrive que certains traitements nécessitent de lire ou de mettre à
jour un article qui ne soit pas le dernier accédé, et donc pas l ’article courant
du programme. Pour pouvoir repositionner les pointeurs sur cet article,
Codasyl offre deux solutions:
"FIND CURRENT nom-type-article"
accède à l ’article référencé par le pointeur du type d ’article et (repositionne dons
les pointeurs programme et sets) ;
- mémorisation et mise à jour directement par le programme
utilisateur des pointeurs:
nom-variable:=CURRENT OF nom-type-article
/*met dans la variable (non accessible au programme) la
valeur du pointeur du type d ’article */
FIND nom-type-article BY DATABASEKEY nom-variable
/* accède à l ’article référencé par la valeur contenue dans la variable, et met donc
à jour les pointeurs programme, type d ’article et types de set */
Conception de BD
RK 102
Lire un article: GET
L ’instruction FIND positionne les pointeurs, mais ne lit pas! Les lectures se font
par l ’instruction: "GET nom-type-article" qui lit l ’article courant du
programme (le dernier accédé par un "FIND").
Conception de BD
RK 104
Rattacher (détacher) un article membre à son
propriétaire
Conception de BD
RK 105
Rattacher (détacher) un article membre à son
propriétaire
Conception de BD
RK 106
Supprimer un article : ERASE
ERASE nom-type-article:
supprime l ’article courant programme, et:
- si l ’article est membre dans un set, décroche cet article du set avant de supprimer l ’article,
- si l ’article est le propriétaire d ’un set non vide: problème !
Solution 1 :
Selon la clause RETENTION :
- Si le set a pour clause "RETENTION OPTIONAL" les Membres sont détachés,
- Si le set a pour clause "RETENTION MANDATORY« L ’instruction ERASE est refusée.
Solution 2 :
Une clause facultative est ajoutée à l ’instruction ERASE :
ERASE nom-type-article [ALL MEMBERS]
- Si la clause "ALL MEMBERS" est présente, l ’instruction ERASE est récursive : elle
détruit l ’article et tous ses articles membres et leurs articles membres et…..
- Si la clause "ALL MEMBERS" n ’est pas présente, et si l ’article à détruire est propriétaire
de set (s) non vide (s), l ’instruction ERASE est refusée.
Conception de BD
RK 107
Supprimer un article : ERASE
Conception de BD
RK 108
Modifier les valeurs des attributs
d’un article :MODIFY
Conception de BD
RK 109
Ouverture/fermeture de la BD et de
ses fichiers
Conception de BD
RK 110
LMD CODASYL
Conception de BD
RK 111
LMD Suite
Conception de BD
RK 112
LMD Suite
Conception de BD
RK 113
En conclusion ….
Conception de BD
RK 114
III.4. Le Modèle Entité/Association
• Encore appelé entité/relation (« entity/relationship »).
– A ne pas confondre avec modèle relationnel!
• Le modèle entité/association a été introduit par Chen en 1976.
– Un outil informel pour analyser les situations du monde réel (institutions,
entreprises, … etc.).
– L’information est représentée par 3 concepts primitifs :
• Entité: un être ou un objet (concret ou abstrait), qui existe et peut être
distingué d’un autre objet.
– Exemple : employé, personne, étudiant, voiture, …
• Attribut: la propriété décrivant une entité.
– Exemple: Numéro de carte d’identité, nom et prénom, age, …
• Association: la relation, ou ce qui permet de connecter deux entités ou plus.
– Exemple: Affectation (employé- département, …)
Conception de BD
RK 115
III.4. Modèle Entité / Association (suite)
• Type d’entité (TE): représentation abstraite d’un ensemble d’entités perçues comme
similaires, ayant les mêmes caractéristiques et le même comportement.
Conception de BD
RK 116
Ali Khaled
Jamel
Salem Kamel
modélisé par
Personne
Conception de BD
RK 117
III.4.1 Exemples d’associations
Mari
• Unaire: 1
Personne Marié
1 femme
Conception de BD
RK 118
III.4.1 Exemples d’associations (suite)
possède conduit
• Ternaires
Fournisseur Voiture
Conception de BD
RK 119
III.4.2. Diagramme Entité/Association
Conception de BD
RK 120
III.4.3. Types des associations
• Association binaire (A), reliant deux entités (E et F)
– de type 1:1 (un-à-un): si à une entité de E peut correspondre par l’association A au
plus une entité de F, et réciproquement.
– de type 1:n (un-à-plusieurs): si à une entité de E peut correspondre par l’association
A plusieurs entités de F mais à une entité de F au plus une entité de E
– de type n:m (plusiuers-à-plusieurs): si à une entité de E peut correspondre par
l’association A plusieurs entités de F et réciproquement.
N:m
Personne Possède Voiture
Conception de BD
RK 121
III.4.3. Types des associations --Cardinalité
N:m
Personne Possède Voiture
Nom Prénom
Date mariage
Conception de BD
RK 123
III.4.4. Attributs (suite)
• Simple (atomique) non décomposé de valeur atomique (jour)
• Composé: décomposé en d’autres attributs (valeurs composées)
Exemples: date (jour,mois,année), adresse ( rue,ville,codep)
• Mono-valué: une seule valeur par occurrence
Exemples: nom, date de naissance
• Multi-valué: plusieurs valeurs par occurrence
Exemples: prénoms, téléphones
• Obligatoire: une valeur au moins par occurrence
Exemples: noms, prénoms,
• Manquant/optionnel: peut ne pas prendre de valeur (inconnu!)
Exemples: salaire, téléphones
Conception de BD
RK 124
III.4.5. Identifiants des TE et TA
• ’’Il est fréquent de représenter initialement certaines associations par des attributs
Conception de BD
RK 126
Les Règles de validation
Conception de BD
RK 127
Conception de BD
RK 128
Exemple d’un hypermarché
(0:n)
NumE Employé (0:1) Chef
Fournisseur
(0:1) (0:n)
Salaire
NomF Adresse
emploi Livraison
Quantité
(0:n) (0:n)
(0:n)
(0:n) (0:n) Article
Rayon Vente
Conception de BD
RK 129
Exercice: VPC
Conception de BD
RK 130
Représentation multiple
Articles
Habillement
HI-FI
Alimentaire
P. Laitiers Plusieurs points de vues:
Fruits légumes • un article
viandes • un article alimentaire
• un produit laitier
Conception de BD
RK 131
Généralisation et Spécialisation
TE générique
Articles
Lien IS-A
Spécialisation Généralisation
Articles Articles Articles
Alimentaires habillement HI-FI
TE spécifique
Conception de BD
RK 132
Entité Faible
Conception de BD
RK 133
Exemple
• Prenons l'exemple d'un cinéma, et de ses salles. On peut considérer chaque
salle comme une entité, dotée d'attributs comme la capacité, l'équipement en
son Dolby, ou autre. Il est diffcilement imaginable de représenter une salle
sans qu'elle soit rattachée à son cinéma. C'est en effet au niveau du cinéma que
l'on va trouver quelques informations générales comme l'adresse ou le numéro
de téléphone.
• Il est possible de représenter le lien en un cinéma et ses salles par une
association classique. La cardinalité « 1..1 » force la participation d'une salle à
un lien d'association avec un et un seul cinéma. Cette représentation est
correcte, mais présente un inconvénient : on doit créer un identifiant artificiel
id pour le type d'entité Salle, et numéroter toutes les salles, indépendamment
du cinéma auquel elles sont rattachées.
• On peut considérer qu'il est beaucoup plus naturel de numéroter les salles par
un numéro interne à chaque cinéma. La clé d'identification d'une salle est alors
constituée de deux parties :
1. la clé de Cinéma, qui indique dans quel cinéma se trouve la salle ;
2. le numéro de la salle au sein du cinéma.
• En d'autres termes, l'entité salle ne dispose pas d'une identification absolue,
mais d'une identification relative à une autre entité. Bien entendu cela force la
salle a toujours être associée à un et un seul cinéma.
Conception de BD
RK 134
Exemple
Cinéma
1:n
1:1
Salle
Conception de BD
RK 135
III. 5. Le modèle relationnel
III.5.1. INTRODUCTION
• Le modèle relationnel a été proposé par E.F. Codd en 1970 (IBM SAN-JOSE).
• Il est souvent considéré comme le plus simple et le plus élégant des modèles.
Sa simplicité est due à une vision tabulaire des données très intuitive.
Conception de BD
RK 136
III. 5. 1. Introduction (suite)
• Les objectifs du modèle relationnel étaient différents de ceux des modèles réseau et
hiérarchique :
– Permettre un haut degré d'indépendance entre les applications (programmes,
interfaces) et la représentation interne des données (fichiers, chemins d'accès).
– Etablir une base solide pour traiter les problèmes de cohérence et de redondance
des données.
☺ LMD (ensembliste) déclaratif (non procédural):
spécifier ce que l'on souhaite obtenir sans dire comment l'obtenir (le SGBD est
responsable de la politique d'exécution des requêtes).
LDD intégré au LMD.
☺ Un Standard
Conception de BD
RK 137
III.5.2. Les modèles relationnels
Conception de BD
RK 138
Le Modèle Relationnel Formel – Concepts de Base
• Ensemble de concepts pour formaliser la description des objets du
monde réel.
Conception de BD
RK 139
Concepts de Base (2)
Etudiant
Schéma
N°Etud nom prénom ddn
Conception de BD
RK 140
Schéma relationnel, Domaine
• Une BD = un ensemble de relations.
• Un schéma d'une BD relationnelle (sert à décrire les relations):
un ensemble de schémas de relations : R1, R2, …, Rn
• Un schéma d'une relation = un ensemble d'attributs avec leurs domaines
R = (A1:D1, A2:D2, …, Ap:Dp)
ou, plus simplement, R = (A1,A2, …,Ap)
Attributs simples et monovalués
Un domaine D est un ensemble de valeurs caractérisé par un nom – type de
données.
Chaque valeur du domaine est atomique et donc indivisible.
Cette notion permet de définir les ensembles de départ. Un domaine peut être
défini en extension en donnant la liste des valeurs composantes ou en
compréhension en définissant une propriété caractéristique du domaine.
COULEUR = { jaune; vert; rouge; bleu; rose; orange; pourpre}
ABONNE = {Personne possédant une carte d'abonné valide pour l'année en cours
}
Conception de BD
RK 141
Relation
• Autre définition :
– Une relation R correspond au sous ensemble du produit cartésien de n domaines : R
D1 x D2 x D3 x … x Dn
– n : degré de la relation (nombre d’attributs)
– attribut : rôle joué par un domaine dans une relation.
• Exemple:
– Pilote (NumPil, NomPil, adr, sal)
– Avion (NumAv, AvNom, loc, cap)
– Vol (NumVol, NumPil, NumAv,Ville_dep,Ville_arr, Heure_dep, Heure_arr)
Conception de BD
RK 142
Exemple de relations
Etudiant N°Etud Nom Prénom Age
136 Tounsi Med 20
253 Ben Foulen Ali 19
101 Cherif Cherif 20
Conception de BD
RK 144
Clé Etrangère
• Groupe d’attributs devant apparaître comme clé primaire dans une autre relation
– Décrit les liens binaires entre les relations (TA)
• Les clés étrangères définissent les contraintes d’intégrité référentielles.
– Lors d'une insertion, la valeur des attributs doit exister dans la relation référencée
– Lors d'une suppression dans la relation référencée les tuples référençant doivent
disparaître.
• Exemple: la relation Suit contient les clés de Etudiant et Cours
– Suit traduit un TA entre Etudiant et Cours
– La valeur de N°Etud dans Suit est :
• celle de l'identifiant d'un tuple existant de Etudiant (intégrité référentielle)
• ou éventuellement nulle (si attribut facultatif)
– Même contrainte pour NomC de Suit
Conception de BD
RK 145
Exemple de Schéma
• Cours (NomC,Horaire,Prof)
• Suit (#N°Etud,#NomC)
• Clés etrangères
Conception de BD
RK 146
Diagramme des Liens
Conception de BD
RK 147
Contraintes d’intégrité (CI)
• Une contrainte d’intégrité est une propriété du schéma, invariante dans le temps.
– Chaque relation doit respecter les contraintes d’intégrité
• Il existe différents types de contraintes d'intégrité:
– Structurelles ou statiques (liées au modèle)
– Applicatives ou dynamiques (contraintes de cohérences liées à l’application)
• CI de domaine
– «toute valeur d’un attribut doit appartenir à son domaine de définition»
• CI de relation
– «toute valeur de clé primaire existe et est unique»
• CI de référence
– «Toute valeur de clé étrangère (CE) existe dans la clé primaire CP associée»
– la valeur d'attribut de la relation R doit apparaître comme valeur de clé dans une
autre relation S
Conception de BD
RK 148
Vérification de l'intégrité référentielle
• Automatiquement, par le SGBD
• Si un utilisateur veut entrer (INSERT) un tuple dans Suit avec un NomC qui n'existe pas
dans Cours
refus
• Si un utilisateur veut modifier (UPDATE) le nom du cours d'un tuple dans Suit avec un
NomC qui n'existe pas dans Cours
refus
• Si un utilisateur veut supprimer (DELETE) un tuple de Cours pour lequel il existe des
tuples dans Suit
refus?
Détruire les tuples de Suit correspondants ?
Mettre à NULL la valeur de NomC dans Suit ?
• Si un utilisateur veut mettre à jour (UPDATE) le nom d'un cours pour lequel il existe des
tuples dans Suit
refus?
Propager la mise à jour de NomC dans Suit ?
Conception de BD
RK 149
Contraintes de Modélisation (1)
• Les notions d'attribut multivalué ou complexe n'existent pas dans le modèle
relationnel. Il faut donc les modéliser autrement.
• Pour un attribut monovalué complexe, il faut choisir entre le composé ou les
composants.
• Pour un attribut multivalué, il faut créer une autre relation (ceci pour chaque attribut
multivalué).
• Représentation d'attribut monovalué complexe
– Soit pour Personne adresse : nom-rue , n° , ville , CP
– Solution 1: un attribut par composant :
• Personne (AVS, nom,…, nom-rue , n° , ville, CP)
• "Rue AbdelAziz Elaroui", "21", "Tunis", "1002"
• il est éventuellement possible de définir par ailleurs une vue restituant la
notion globale d'adresse
– Solution 2: un attribut adresse, de domaine : chaîne de caractères
• Personne (AVS, nom,…, adresse)
• "Rue AbdelAziz Elaroui, 21 Tunis 1002"
• le système ignore nom-rue, n°, ville et CP
Conception de BD
RK 150
Contraintes de Modélisation (2)
• Représentation d'attribut multivalué
• Exemple: mémoriser les différents prénoms des étudiants
• Mauvaise modélisation: plusieurs attributs
– Etudiant (N°Etud, nom, prénom1, prénom2,… )
– 136 BenFoulen Mohamed Slim
– 101 Ali Mohamed Salah
– 253 Tounsi Fatma Null
• Bonne modélisation : créer une relation supplémentaire
– Etudiant (N°Etud, nom)
– EtudPrénoms ( #N°Etud, prénom )
• 136 Mohamed
• 136 Slim
• 101 Mohamed
• 101 Salah
• 253 Fatma
• Clé étrangère: N°Etud référence Etudiant
Conception de BD
RK 151
Récapitulatif
• Un schéma relationnel se compose :
pour chaque relation de :
nom de la relation
définition
attributs + domaines
clé
éventuellement clé(s) étrangère(s)
contraintes d'intégrité associées
et des autres contraintes d'intégrité qui portent sur plusieurs
relations.
Conception de BD
RK 152
III.5.3. Problème de la redondance
• [En dehors des clés étrangères]
• ex. Soit la relation COMMANDE_PRODUIT.
Conception de BD
RK 153
III.5.3. Problème de la redondance (suite)
Conception de BD
RK 154
Normalisation (1)
• Objectifs de la normalisation :
Suppression des problèmes de mise à jour
Minimisation de l’espace de stockage (élimination des redondances)
La taille des fichiers normalisés croît de façon arithmétique alors que la taille
des fichiers non normalisés croît de façon géométrique.
• Les dépendances Fonctionnelles
Soient R(A1, A2 … An) un schéma de relation, X et Y des sous-ensembles de A1,
A2 …An
On dit que X détermine Y ou Y dépend fonctionnellement de X (X →Y) ssi il
existe une fonction qui à partir de toute valeur de X détermine une valeur unique
de Y
• Exemple
– PRODUIT (NumProd, Dési, PrixUni)
– NumProd →Dési, Dési →PrixUni
Conception de BD
RK 155
Définitions
Conception de BD
RK 156
Normalisation (2)
Conception de BD
RK 157
Normalisation (3)
• Objectifs
Conception de BD
RK 158
Première Forme Normale
• Définition
– Une relation est en 1ère forme normale si tout attribut contient une
valeur atomique (unique)
• Exemple
MARTIN Géomètre
Conception de BD
RK 159
Première Forme Normale -- Exemple
▪ Suppressions
NF Adr
▪ Mises à jours des tuples
Tél
▪ Décomposition
▪ Fournisseur1(NF,Adr,Tel)
▪ Catalogue(NF,NomProduit,Prix)
▪ Sans perte d’information, sans perte de DF
Conception de BD
RK 160
Deuxième Forme Normale
• Définition
– une relation est en 2ème forme normale ssi :
• elle est en 1ère forme
• tout attribut non clé ne dépend pas d'une partie de clé
• Schéma
R K1 K2 X Y
• Exemple :
– Fournisseur2(NF, Pays,Ville)
• Redondance
• Décomposition
– Fourn(NF, Ville) NF Ville Pays
– Géo(Ville, Pays)
– Sans perte d’information, sans
perte de DF.
Conception de BD
RK 162
Troisième Forme Normale
• Définition
– une relation est en 3ème forme normale ssi :
• elle est en 2ème forme
• tout attribut n'appartenant pas a une clé ne dépend pas d'un
autre attribut non clé
• Schéma
R K X Y Z
Conception de BD
RK 165
Plus loin que la troisième forme
normale :
Les 3 premières formes normales ont été proposées par E.F. Codd ("inventeur" du
modèle relationnel) en 1972. La forme normale dite de Boyce-Codd a été proposée
en 1974. Les 4ème (1977) et 5ème (1979) formes normales ont été proposées ensuite
par Fagin, mais elles ne concernent que des cas rares et très spécifiques.
Pourquoi et comment ?
Rappels
Conception de BD
RK 167
Normalisation : Exemple FNBC
Considérons la relation suivante: Cours (Matiere, Classe, Professeur)
complétée par les règles de gestion suivantes:
un professeur n'enseigne qu'une seule matière,
une classe n'a qu'un seul enseignant par matière
desquelles on déduit les DF suivantes:
Matière, Classe → Professeur
Professeur → Matière
Cette relation est en 3NF, néanmoins il est impossible d'enregistrer un
professeur sans classe affectée (puisque classe est une partie de la
clé primaire de la table Cours), et la disparition d'une classe peut
entraîner la disparition de professeur.
Ceci est du au fait qu'une DF n'ait pas comme origine une clé de la
relation. Conception de BD
RK 168
Normalisation : Exemple FNBC
Problème : une DF d'un attribut non clé vers
une partie de la clé
On pourrait alors décomposer la relation Cours
en 2 relations:
Spécialité (Professeur, Matière)
Enseignant (Classe, #Professeur)
Mais la première DF serait alors perdue…
Les deux relations sont en FNBC.
Conception de BD
RK 169
• Une relation en BCNF peut comporter des redondances
• "L'étudiant de numéro NUMETUD pratique le sport
SPORT et suit le COURS."
– Pas de DF
– CLE = {NUMETUD, SPORT, COURS}
– R est en 3FN et en BCNF
– Cependant R contient des redondances :
Conception de BD
RK 170
• La notion de dépendance fonctionnelle ne suffit à définir toutes
les dépendances entre les données.
<=> Pas de lien entre les cours suivis et les sports pratiqués.
Conception de BD
RK 172
4ème Forme Normale
Conception de BD
RK 174
Remarques :
• une DM est un cas particulier de DJ (dépend. de jointure) :
Conception de BD
RK 175
Cinquième Forme Normale :
Conception de BD
RK 176
Méthode de décomposition en 3ème forme
Conception de BD
RK 177
Comment concevoir un schéma
relationnel normalisé
Conception de BD
RK 178
III.5.4. Passage E/A → relationnel
Conception de BD
RK 179
Passage E/A en relationnel -- Exemple
• TE est représenté par une relation dans laquelle les attributs de l’entité
deviennent ceux de la relation
N°E
Etudiant NomE
Sexe Adresse
Conception de BD
RK 180
Passage E/A en relationnel -- Exemple (suite)
• Chaque TA est représenté par une relation dans laquelle les clés des TE participants et les
attributs de l’association deviennent ceux de la relation.
Titre
Cours Ncours
0:n
0:n
Prénom NEtud
Etudiants
Nom
• Obtenir(Ncours,Netud,Note,Année)
Modèle E/A Modèle Relationnel
Conception de BD
RK 181
Passage E/A en relationnel -- Exemple (suite)
• Pour les TE pour cardinalité max =1, on ne crée pas de relation mais ce
sont les clés des types entités qui interviennent qui seront ajoutés au TE
dont la cardinalité max=1.
Faculté
Département NDépart
0:n
appart
1:1
Prénom NEtud
Etudiants
Nom
Etudiants(NEtud,Nom,Prénom, NDépart,)
Conception de BD
RK 182
Bibliographies
Conception de BD
RK 183