MBD BIT I Model Relationnel
MBD BIT I Model Relationnel
MBD BIT I Model Relationnel
Dr Frédéric Ouédraogo
Université de Koudougou
Plan
I. Généralité
II. Modèle relationnel et algèbre
relationnelle
III. Conception (MCD, MLD)
IV. Le langage SQL
V. PL/SQL
VI. Administration Oracle
I - Généralités
Définition de l'information
Une information est un élément qui permet de
compléter notre connaissance sur une
personne, un objet, un événement etc.
Exemple:
nom d'une personne (une information
concernant cette personne) ;
couleur d'une voiture.
I - Généralités
Comment les
donnée sont vues
par les utilisateurs
I - Généralités
Architecture ANSI/SPARC
Avantages:
• Indépendance physique (entre structure de
stockage et structure logique)
– Exemple: ajout d’index
• Indépendance logique (modifier le schéma
conceptuel sans modifier les programme
d’applications)
– Exemple ajout d’attribut
I - Généralités
modélisation des données
Définition.
Un modèle de données est un ensemble :
1. de concepts pour décrire
– Les données du monde réel
– Les liens entre les données
– La sémantique des données
2. d’opération pour manipuler les données.
modélisation des données
Modèle de conception :
• Entité-Association
• Diagramme de classe UML(Unified Modeling
Language )
Modèle d’implantation :
• Hiérarchique/réseau
• Relationnel
• Objet
• Relationnel- Objet
Modèle physique
• Mysql, PostgreSQL, Oracle, …
• Codasyl,…
I - Généralités
Microsoft Oracle
17% 48%
IBM
20%
II Le modèle relationnel
Introduction
II Le modèle relationnel
Introduction
• Modèle de référence +40 ans
• Simple et robuste
• Parfaitement maitrisé par l’industrie
II Le modèle relationnel
1 Concept
Notion de domaine
• Ensemble de valeurs
Définition des domaines
• Types de base : entier, réel, date
• Intervalle : [18-65]
• Valeurs : {‘marie’, ‘celibataire’, ‘divorcé’}
• Valeurs nulles : NULL
II Le modèle relationnel
1 Concept
Produit cartésien
Le PC de D1, D2,….Dn est l’ensemble des n-uplets
<v1,…,vn> tel que vi Di
Notation
D1xD2x….xDn
Exemple:
D1={“BD”, “POO”}
D2={“Pierre”, “Paul”}
II Le modèle relationnel
1 Concept
Relation
Un sous-ensemble du produit cartésien d’une
liste de domaine caractérisée par un nom
Exemle
D1 = codeUV
D2 = coord
D3 = entiers de 0 à 150
UV D1xD2xD3
II Le modèle relationnel
1 Concept
Attribut et tuple
• Plus simplement, une relation est un tableau à
deux dimensions
• Une ligne est un n-uplet ou tuple
• attribut est un nom associé à chaque colonne
afin de la repérer indépendamment de l'ordre
– Prend ses valeurs dans un domaine
II Le modèle relationnel
1 Concept
Clé
• Une clé est un groupe minimum d'attributs qui
détermine un n-uplet unique dans une relation
(à tout instant)
Exemple
• Clé de Étudiant ?
• Clé de UV ?
• Clé de Inscrit ?
II Le modèle relationnel
1 Concept
Clé
Contrainte d'intégrité
• Toute relation doit posséder une clé
renseignée (sans valeur inconnue)
II Le modèle relationnel
1 Concept
Schéma d’une relation
Le schéma d'une relation décrit :
• Son nom
• La liste des attributs qu'elle comporte et des
domaines associés
• La liste des attributs composant la clé (la clé est
soulignée)
Exemple
•Étudiant(num : entier, nom : chaîne, adresse :
chaîne, age : entier de 18 à 35)
II Le modèle relationnel
1 Concept
Schéma d’une relation
Intention vs. Extension
•Schéma de relation : intention de la relation
•Table : extension
•Schéma d'une BD relationnelle : ensemble des
schémas des relations
II Le modèle relationnel
1 Concept
Clé étrangère
Une clé étrangère est un groupe d'attributs qui
apparaît comme clé dans une autre relation
• R1(A1, A2, .... , Ap, Ap+1, ...., An)
• R2(B1, B2, ......, Bn)
Rôle
Les clés étrangères définissent des contraintes
d'intégrité référentielle entre relations
II Le modèle relationnel
1 Concept
Clé étrangère
• Mises à jour et clés étrangères Insertion : la
valeur des attributs doit exister dans la
relation référencée.
– Insertion de (4, ‘BD’, 15) dans Inscrit ?
•Suppression dans la relation référencée; les n-
uplets référençant doivent disparaître.
– Suppression de l’étudiant 2 dans Étudiant ?
II Algèbre relationnelle
Définition
2 types de langage associés au modèle
relationnel:
• Langages de Définition de données (LDD)
– Définition/mise à jour des schémas de relations
• Langages de manipulation de données (LMD)
– Intérogation, Op. de AR
– mise à jour (suppr. Insertion, modif.)
II Algèbre relationnelle
Exemple
Schéma de base de données
Etudiant(num,nom,adresse,age)
UV(codeUV,nbH,coord)
Inscrit(numEtudiant, codeUV,node)
II Algèbre relationnelle
Principes des Opérateurs
Tout résultat d’un opérateur est une relation
R -> Op -> R’
Opérateurs unaires et binaires
• Unaires: restriction (sélection), projection
• Binaires : union, intersection, produit
cartésien , jointure, divison.
II Algèbre relationnelle
Restriction
Permet de "sélectionner" des tuples
Réduit la taille de la relation verticalement
Contraintes
– Unaire
– Spécifier une condition
Notation
•Notation textuelle : T cond(R)
•Notation graphique :
II Algèbre relationnelle
Restriction
Exemple : Quelles sont les inscriptions au cours
Bases de Données ?
Etudiant(num,nom,adresse,age)
UV(codeUV,nbH,coord)
Inscrit(numEtudiant, codeUV,node)
Notation
• textuelle : T <- R S
• Graphique condition
II Algèbre relationnelle
jointure
II Algèbre relationnelle
jointure
II Algèbre relationnelle
Opérateur U (ensembliste)
But
• Permet de fusionner 2 relations
Contraintes
• Binaire
• Même schéma
Notation
• Notation textuelle : T <- R U S
• Notation graphique :
L’opérateur Union fait parti des plus
simples et moins utilisés.
II Algèbre relationnelle
Opérateur U (ensembliste)
• Quels sont les noms des personnes
(professeurs et étudiants) habilitées à entrer
sur le campus ?
• Utiliser la projection pour avoir les mêmes
attributs
II Algèbre relationnelle
Opérateur ∩ (ensembliste)
But
• Permet d’obtenir l’ensemble des tuples
appartenant à deux relations
Contraintes
• Binaire
• Même schéma
Notation
• Notation textuelle : T<- R ∩S
• Notation graphique :
II Algèbre relationnelle
Opérateur ∩ (ensembliste)
• Quels sont les noms portés par des
professeurs et des étudiants ?
II Algèbre relationnelle
Opérateur – (différence)
But
Obtenir l’ensemble des tuples d’une relation qui ne
figurent pas dans une autre
Contraintes
– Binaire
– Même schéma
– Non commutatif
Notation
– Notation textuelle : T = R -S
– Notation graphique :
II Algèbre relationnelle
Opérateur – (différence)
Quels sont les noms des étudiants qui NE sont
PAS des noms de professeurs ?
II Algèbre relationnelle
Synthèse
Exemple de requête
Base de donnée : Vins
• Vins(num, cru, annee, degre)
• Recoltes(nvin, nprod, quantite)
• Producteurs(num, nom, prenom, region)
• Clients(num, nom, prenom, ville)
• Commandes(ncde, date, ncli, nvin, qte)
• Livraisons(ncde, no_ordre, qteLivree)
Exemple de requête
Requête
• Temp = annee=1995 (Vins)
• Resultat = πnum(Temp)
oubien
• Resultat = πnum(annee=1995(Vins))
Démarche
1. Identifier les attributs impliqués:
2. Identifier les opérateurs relationnels dont on
aura besoin.
Exemple de requête
Requête
Quels sont les noms des producteurs de
Muscadet (cru)?
• Vins(num, cru, annee, degre) -> Cru
• Producteurs(num, nom, prenom, region) -
>nom des pruduction
• Recoltes(nvin, nprod, quantite) -> lien
Exemple de requête
Requête
Quels sont les noms des producteurs de
Muscadet (cru)?
Muscadet (restriction)
Noms (projection)
Lien(jointure)
πnom producteurs num=nprod Recoltes nvin=num
cru=muscadet(vins)
Exemple de requête
Requête
Quels sont les numéros des vins ne faisant l’objet
d’aucune commande.
Différence
II Algèbre relationnelle
Optimisation des requêtes
Requêtes
Noms et prénoms des clients habitant ouaga
ayant commandé du Mâcon 1995 avant le 01
janvier 2000
• Plusieurs réponses possibles
• Optimiser = choisir la meilleure combinaison
– Les bons opérateurs
– Dans le meilleur ordre
II Algèbre relationnelle
Optimisation des requêtes
Réponse 1
II Algèbre relationnelle
Optimisation des requêtes
Réponse 2 (ordre des jointures)
II Algèbre relationnelle
Optimisation des requêtes
Réponse 3
II Algèbre relationnelle
Optimisation des requêtes
Réponse 3
II Algèbre relationnelle
Optimisation des requêtes
Heuristique la plus employée
•Remonter les opérateurs unaires (restriction,
projection) => diminution de la taille des
relations
•Descendre les jointures
II Algèbre relationnelle
Optimisation des requêtes
Facteurs déterminants
•Ordre d'exécution des opérations algébriques
•Algorithme implantant de façon optimale les
opérations algébriques.
•Placement des données sur le disque
•Taille des relations intermédiaires
•Statistiques d’exécution de ces requêtes
….
Responsabilité du SGBD
II Algèbre relationnelle
Exercices
III – Conception
Exemple introductif
Cas du carnet d’adresses.
III – Conception
Introduction
1. Schémas normalisés
Un schéma normalisé présente des
caractéristiques formelles et des règles qui nous
indiquent plus précisément les liens qui
caractérisent les données.
La normalisation nous garantit l’absence de
défaut (notamment de redondance) tout en
préservant l’intégralité de l’information
représentée.
III – Conception
Introduction
1. Schémas normalisés
L’objectif de la normalisation est de construire
un schéma de base de données cohérent.
Un modèle relationnel normalisé doit respecté
certaines contraintes appelées formes
normales.
Les formes normales se basent sur les
dépendances fonctionnelles entre attributs.
III – Conception
Introduction
2. Dépendances fonctionnelles
Définition
Soit R une relation, A et S des attributs de R.
On dit que A dépend fonctionnellement de S,
(notée 𝑆 → 𝐴) Si une valeur de l’attribut de S
induit une unique valeur de A. Autrement dit
Si t1[S]=t2[S] alors t1[A] = t2[A]
Si je connais S alors je connais A
III – Conception
Introduction
2. Dépendances fonctionnelles
Exemple
Etudiant(num,nom,adresse,age)
num -> nom : est une dépendance
fonctionnelle.
nom -> num n’est pas une dépendance
fonctionnelle.
III – Conception
Introduction
2. Dépendances fonctionnelles
Transitivité
S->A et A-> T alors S -> T
Exemple
numCommande -> NumClient -> NomClient
On a alors NumCommande -> nomClient.
III – Conception
Introduction
2. Dépendances fonctionnelles
Définition
Une clé (d’une relation R) est un sous-ensemble
minimal C des attributs tel que tout attribut de R
dépend fonctionnellement de C.
III – Conception
Introduction
3. Normalisation
Première forme normale (1FN)
Une relation est en 1FN si tous ses attributs sont
atomiques (mono-valués c’est-à-dire une valeur
par ligne). Aucun attribut n’est décomposable en
plusieurs attributs.
Elle possède une clé identifiant de manière
unique chaque tuple.
III – Conception
Introduction
3. Normalisation
Première forme normale (1FN)
Employe(nom, diplôme)
III – Conception
3. Normalisation
Deuxième forme normale (2FN)
Une relation est en 2 FN si et seulement si:
• Elle est 1FN
• Tout attribut n’appartenant pas à la clé
primaire est en dépendance totale avec la clé
primaire (Cas de clé primaire composée de
plusieurs attributs)
III – Conception
3. Normalisation
Deuxième forme normale (2FN)
Exemple
Commande(numCde, refProd, designProd,
Quantité)
1FN = OK,
2FN = NON, car refProd designProd , pas
besoin de connaitre numCde.
Commande(numCde,RefProd,Quantité)
Produit(refProd, designProd)
III – Conception
3. Normalisation
Deuxième forme normale (2FN)
• Séparation des attributs concernés par la
dépendance dans une autre relation.
NomEntité
A - Le Modèle Conceptuel des Données (MCD)
1 Concepts de base pour le MCD
b-Association entre les entités
Une association représente une relation
générique qui existe entre deux (ou plusieurs)
entités.
Il est courant de nommer les associations en
utilisant des verbes.
A - Le Modèle Conceptuel des Données (MCD)
1 Concepts de base pour le MCD
b-Association entre les entités
Exemple : Un CLIENT passe une COMMANDE,
Une COMMANDE contient des PRODUITS.
A - Le Modèle Conceptuel des Données (MCD)
1 Concepts de base pour le MCD
c-Propriétés ou attributs d’une entité
• Un attribut est donnée élémentaire utilisée
pour décrire une entité ou une association.
• Un attribut recevra une valeur précise pour
chaque occurrence de l’entité ou de
l’association.
• Un ou plusieurs attributs peuvent jouer le
rôle d’identifiant de l’entité (cela deviendra la
clé d’une table au niveau MLD)
A - Le Modèle Conceptuel des Données (MCD)
1 Concepts de base pour le MCD
c-Propriétés d’une entité
L’identifiant d’une entité est une propriété ou un
ensemble de propriétés qui permettent de repérer
une occurrence de l’entité de façon unique.
Même principe
2-Passage du MCD au MLD
Traitement des associations
• Cas spécial de plusieurs associations entre 2
entités. Les règles générales s’appliquent.
2-Passage du MCD au MLD
Traitement des associations
Cas spécial de relations réflexives : les règles
générales s’appliquent.
Exercice
Proposer un MLDRelationnel pour chaque MCD
des exercices sur le MCD.
Exercice
Traduire en MLD Relationnel ce MCD