BDrelationnelles
BDrelationnelles
Bases de données
relationnelles.
des documents
des objets concrets ou abstraits
des relations entre ces objets
des règles de gestion
des procédures de travail
etc…
1
01/12/2022
Un formalisme de référence :
◦ Le modèle Entité-Association.
◦ Particulièrement adapté aux Base de Données
relationnelles.
Redondance interdite !
3
Dr. Mohamed Ali Zoghlami
4
Dr. Mohamed Ali Zoghlami
2
01/12/2022
4. Placer les propriétés dans les entités (selon la règle id -> prop)
7. Simplifier et contrôler 5
Dr. Mohamed Ali Zoghlami
3
01/12/2022
7
Dr. Mohamed Ali Zoghlami
Bon De Cde
8
Dr. Mohamed Ali Zoghlami
4
01/12/2022
9
Dr. Mohamed Ali Zoghlami
10
Dr. Mohamed Ali Zoghlami
5
01/12/2022
11
Dr. Mohamed Ali Zoghlami
Association binaire …
Association ternaire…
Enseignant
Classe
Association réflexive…
12
Dr. Mohamed Ali Zoghlami
6
01/12/2022
13
Dr. Mohamed Ali Zoghlami
14
Dr. Mohamed Ali Zoghlami
7
01/12/2022
Min 0, 1
Cardinalité mini = 0 : Certaines occurrences de l’entité
ne participe pas à l’association.
femme 0,? est_mère enfant
auteur
livre est_écrit
1,?
15
Dr. Mohamed Ali Zoghlami
Max 1, n
Cardinalité max =1 : Quand une occurrence de l’entité
participe à l’association, elle n’y participe au plus
qu’une seule fois.
femme
enfant ?,1 est_fils
16
Dr. Mohamed Ali Zoghlami
8
01/12/2022
17
Dr. Mohamed Ali Zoghlami
9
01/12/2022
Date
dateJour
Date …
21
Dr. Mohamed Ali Zoghlami
? ?
22
Dr. Mohamed Ali Zoghlami
10
01/12/2022
CIF
23
Dr. Mohamed Ali Zoghlami
24
Dr. Mohamed Ali Zoghlami
11
01/12/2022
25
Dr. Mohamed Ali Zoghlami
26
Dr. Mohamed Ali Zoghlami
12
01/12/2022
client
contrat code client
établit
N°contrat 0,n nom client
1,1
date contrat rue
date commande ville
date début location 1,n
0,n
concerne agence
comporte
1,n code agence
quantité louée raison sociale
0,1
exemplaire matériel matériel
Exemp_mat
code matériel code matériel
0,n
numéro exemplaire 0,n désignation matériel
état exemplaire prix unitaire
27
Dr. Mohamed Ali Zoghlami
ou
29
Dr. Mohamed Ali Zoghlami
13
01/12/2022
Matricule
Nom
Prénom
Adresse
CongéDeMaternité
serviceMilitaire
homme femme
service militaire congé matérnité
spécialisation
31
Dr. Mohamed Ali Zoghlami
14
01/12/2022
tiers
généralisation
matricule
raison social
adresse
client fournisseur
code client code fourniss
mode de paiement délais de livraison
32
Dr. Mohamed Ali Zoghlami
MCD…..Etudes de cas
Délégation de santé
Une délégation régionale de santé s’occupe de tous les hôpitaux de sa
région.
Chacun de ces hôpitaux est composé d’un certain nombre de services et
laboratoires et fait travailler un ensemble de médecins et d’infirmiers.
Les médecins peuvent avoir l’une des trois fonctions suivantes :
A chaque médecin praticien est affecté une équipe d’infirmiers qui doivent
s’occuper des patients dont le médecin a la charge.
Elaborer le MCD
33
Dr. Mohamed Ali Zoghlami
15
01/12/2022
MCD MLD
Entité devient Table
Association devient Table
ou se disparait
Propriété devient Attribut
36
Dr. Mohamed Ali Zoghlami
16
01/12/2022
17
01/12/2022
Solution 2:
La clé primaire de la table côté « 0,1 » migre, comme étant clé étrangère,
dans la table côté « 1,1 » .
41
Dr. Mohamed Ali Zoghlami
18
01/12/2022
Solution 1:
Solution 2:
Solution 3:
Solution 4:
42
Dr. Mohamed Ali Zoghlami
19
01/12/2022
Création d’une table relative à l’association dont la clé est celui de la table
issue de l’entité, possédant - sous un autre nom - l’identifiant de cette
entité comme simple attribut.
Le formalisme individuel est le suivant :
20
01/12/2022
concerne produit
commande 1,n 0,n code_prod
qté_cdée
num_cde désignation
date_cde
1,1 1,1
1,1
pris en charge
fait partie
passer
représentant
0,n code_rep
nom_rep
1,n
tél
1,n famille
rayon
client code_rayon code_famille
code_cli stocker nom_famille
surface 1,5
nom_cli 1,1
localisation
adresse
47
Dr. Mohamed Ali Zoghlami
21
01/12/2022
51
Dr. Mohamed Ali Zoghlami
22
01/12/2022
52
Dr. Mohamed Ali Zoghlami
La clé de la table fille n’a pas d’existence si elle n’est pas composée entre
autre de la clé de la table mère.
23
01/12/2022
Le schéma relationnel :
Enseignant(Matricule, nom, prénom, adresse)
Classe(CodeClasse, NomClasse, Discipline, Cycle)
Matière(CodeMatière, NomMatière, ChargeHoraire, Coef)
Enseigner(CodeClasse#, CodeMatière#, Matricule#)
54
Dr. Mohamed Ali Zoghlami
Le modèle relationnel
Introduction
le modèle relationnel est un modèle d'organisation
des données sous forme de Tables ou Relations
(Ensemble de valeurs).
24
01/12/2022
Le modèle relationnel
Les liens sémantiques existant entre les ensembles
sont réalisés par l'intermédiaire de clés étrangères
faisant elles-mêmes référence à des clés primaires
d'autres tables.
Exemple de relation
Nom de la relation Clé étrangère
attribut
Le modèle relationnel
Le modèle relationnel est le plus souvent décrit sous la
forme suivante, les clés primaires étant soulignées et les
clés étrangères marquées par un signe distinctif.
25
01/12/2022
Le Modèle relationnel
La normalisation
La normalisation est un processus de décomposition
d'une relation en plusieurs relations plus réduites.
Le Modèle relationnel
Normalisation : Dépendance fonctionnelle
26
01/12/2022
Le Modèle relationnel
Normalisation : Dépendance fonctionnelle
Exemple:
CodeProduit Couleur
NuméroCommande, CodeProduit QtéCdée
CodeProduit, Désignation Couleur
Le Modèle relationnel
Normalisation : Dépendance fonctionnelle
Exemple:
La DF NumBonCommande NomClient n’est pas
directe puisqu’il existe un 3ème attribut CodeClient tel
que :
NumBonCommande CodeClient
CodeClient NomClient 61
Dr. Mohamed Ali Zoghlami
27
01/12/2022
Le Modèle relationnel
Normalisation : Dépendance fonctionnelle
Exemple:
(Numéro coureur, Type de course) (Temps)
62
Dr. Mohamed Ali Zoghlami
Le Modèle relationnel
Normalisation : Dépendance fonctionnelle
1. X A1,A2,... ,An
2. et il n’existe pas Z ⊂ X tel que Z A1,A2,... ,An
65
Dr. Mohamed Ali Zoghlami
28
01/12/2022
Le Modèle relationnel
Normalisation : Formes normales
Formes normales :
Les formes normales peuvent être définies comme des
niveaux de qualité d'un modèle relationnel en
définissant les règles que celui-ci doit respecter.
Le Modèle relationnel
Normalisation : Formes normales
Formes normales :
Le processus de normalisation s'étale sur les formes
normales suivantes:
67
Dr. Mohamed Ali Zoghlami
29
01/12/2022
Le Modèle relationnel
Normalisation : Formes normales
Le Modèle relationnel
Normalisation : Formes normales
Exemple:
Soit la relation suivante:
ProduitCde(CodeProd,NumCde , Désignation, QtéCdée)
30
01/12/2022
Le Modèle relationnel
Normalisation : Formes normales
Après
Voitures(N°Immatriculation , Couleur, Modèle)
décomposition, Modeles(Modèle, Marque, Puissance)
on obtient : 70
Dr. Mohamed Ali Zoghlami
Le Modèle relationnel
Normalisation : Formes normales
Exemple d’incohérences de données
Avant décomposition
31
01/12/2022
Le Modèle relationnel
Normalisation : Formes normales
Exemple:
Soit la relation suivante:
Localisation(Ville, Rue, CodePostale)
Après
LocalisationVille(CodePostale, Ville)
décomposition, LocalisationRue(CodePostale, Rue)
on obtient : Dr. Mohamed Ali Zoghlami
72
Implémentation avec
SQL & PL/SQL
32
01/12/2022
33
01/12/2022
[constraint <nom_contrainte>]
{ [not]null | {unique | primary key
| { references NomTable (NomColonne)
[on delete cascade] }
| check (condition) }
[ ]: optionnelle.
|: ou.
34
01/12/2022
[constraint <nom_contrainte>]
{unique(col1[,col2,…]) | primary key(col1[,col2,…]) }
| {foreign key(col1[,col2,…])
references NomTable (col1[,col2,…] )
| [on delete cascade] }
| check (condition)
[ ]: optionnelle.
|: ou
Dr. Mohamed Ali Zoghlami 79
Null : la colonne peut contenir des valeur nulles. Si l’option not null est
spécifiée, la colonne doit avoir une valeur lors de l’insertion.
Primary key : vérifie que la colonne est utilisée comme clé primaire. Les
valeurs nulles sont interdites. Une indexe sera créée sur cette colonne.
Check : mot clé associé à une condition qui doit être vérifiée pour chaque
valeur inséré[Link]. Mohamed Ali Zoghlami 80
35
01/12/2022
36
01/12/2022
Exemple :
Create table myClient(codec, nomc, ca) as
Select codclt, nomclt, caclt from client
Where caclt > 1000 ;
Dr. Mohamed Ali Zoghlami 84
37
01/12/2022
38
01/12/2022
Ajout de colonne :
ALTER TABLE [<nom_user>.] <Table> ADD <def_col> ...
avec <def_col> :
nom_colonne[type_de_données] [DEFAULTexpr] ;
Ajout de contrainte :
ALTER TABLE [<nom_user>.] <Table>
ADD [CONSTRAINT nom_const] <type_const> ;
avec <type_const>
UNIQUE (col1[,col2 ...]) |
PRIMARY KEY(col1[,col2 ...]) |
FOREIGN KEY(col1[,col2 ...])
REFERENCES table((col1[,col2 ...]) ) |
CHECK (condition);
39
01/12/2022
AJOUT
- On peut ajouter une colonne de type NOT NULL, uniquement si la
table est vide.
- On ne peut ajouter une contrainte uniquement qu’au niveau table.
MODIFICATION
- On peut rétrécir une colonne uniquement si elle est vide.
- On peut passer une colonne de NULL autorisé à NOT NULL
uniquement si la colonne ne contient pas de valeur NULL
- On ne peut pas modifier une contrainte.
SUPPRESSION
- On peut supprimer une contrainte par son nom.
40
01/12/2022
Exemple :
Drop table myClient cascade constraints ;
H/D
41
01/12/2022
Syntaxe :
CREATE [OR REPLACE] VIEW nom_de_vue
[(alias_colonne1, alias_colonne2, ...)]
AS RequêteSelect;
94
Dr. Mohamed Ali Zoghlami
42
01/12/2022
Exemple :
Create index indClient on client (caclt asc) ;
Drop index indClient ; supprime l’index spécifié.
Dr. Mohamed Ali Zoghlami 95
Syntaxe :
Rename ancien_objet to nouv_objet ;
Exemple :
Rename myClient to client_tmp ;
43
01/12/2022
Remarque :
Vous pouvez interroger la vue système user_sequences pour
voir la structure de la séquence créée.
Les valeurs générées par une séquence peuvent être manipulées par
les pseudo-colonnes NEXTVAL et CURRVAL .
44
01/12/2022
99
Dr. Mohamed Ali Zoghlami
Remarques:
- [Public] : le synonyme est accessible par tous les utilisateurs.
- sert à référencier les objets sans indiquer leur base.
- un synonyme privé doit avoir un nom distinct dans le schéma d'un utilisateur.
- un synonyme public peut avoir le nom de l’objet dans son schéma.
100
Dr. Mohamed Ali Zoghlami
45
01/12/2022
Pour afficher les tables, les vues ,les synonymes et les séquences
appartenant à l’utilisateur
SELECT * FROM user_catalog;
46
01/12/2022
Exemple:
47
01/12/2022
Exemple:
Select nomclt, caclt from client;
Select * from commande;
48
01/12/2022
a) Condition de comparaison:
Dans ce cas la clause ‘where condition’ est
spécifiée. La syntaxe est la suivante:
Exemple:
49
01/12/2022
50
01/12/2022
IN: la condition est vraie si la comparaison est vrai pour une des
valeurs retournées.
51
01/12/2022
52
01/12/2022
Exemple:
53
01/12/2022
Exemple 3:
lister le montant total de chaque commande (on
suppose que la table commande ne contient pas
un champ Mntcde).
54
01/12/2022
Exemple:
55
01/12/2022
Update <nom_table>
Set {colonne={expr | (requête sql)}
| (colonne1, colonne2 [, colonne3])= (requête sql)}
[where condition];
|
Dr. Mohamed Ali Zoghlami 122
Update article
Set prixunit = prixunit * 1.1
Where qtestck = (select min(qtestck) from article);
56
01/12/2022
Syntaxe:
Exercices.
Quels sont les articles vendus : des plus vendus vers
les moins vendus (en qté).
57
01/12/2022
Exercices.
Lister les clients qui ont commandé tous les
articles.
Les fonctions
Les fonctions numériques.
ABS(n):
COS(n)
SIN(n)
POWER(m,n)
SQRT(n)
LN(n)
LOG(m,n)
MOD(m,n)
etc…..
58
01/12/2022
Les fonctions
Les fonctions de manipulation des chaines de caractères.
etc….
Les fonctions
Les fonctions de manipulation des dates.
etc….
59
01/12/2022
Les fonctions
Les fonctions de conversion.
Les fonctions
Les fonctions diverses.
NVL(Nombre1,Nombre2):retourne
Nombre1 s’il n’est pas nul ou Nombre2 si
non.
60
01/12/2022
La requête suivante:
Select codclt, nomclt, caclt from petits_client;
UNION
Select codclt, nomclt, caclt from grands_client;
61
01/12/2022
Select codart
From article
MINUS
Select distinct codart from lignecde;
62