Vous êtes sur la page 1sur 10

III0903 - Système d’information des systèmes de production

Introduction aux bases de données relationnelles Diapositives de Cours O. DUBOIS

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Diapositives de Cours O. DUBOIS

Diapositives de Cours

O. DUBOIS

Généralités sur les bases de données

3
3

Données = faits enregistrables ayant une signification commune ex : noms, n° de tel., adresse de ses connaissances Base de données = ensemble cohérents de données liées entre elles Système de bases de données = système informatique dont le but est de maintenir des informations (données) et de les rendre disponibles à la demande Ses composants principaux sont les données, le matériel, le logiciel et les utilisateurs (ou les applications)

Système de Gestion de Bases de Données (SGBD)

= ensemble de logiciels permettant la création et la gestion de bases de données

= assure notamment les processus de définition, de

construction, de manipulation, de partage et de protection

des bases de données par et entre les utilisateurs= assure notamment les processus de définition , de construction , de manipulation, de partage et

Rôle du SGBD

5
5

Définition de la BD

= spécification des types de données, des structures et des contraintes Construction de la BD

= enregistrement des données sur un support de stockage contrôlé par le SGBD Manipulation de la BD

= actualisation ou interrogation de la BD

Cohérence des données

= veille au respect des contraintes d'intégrité définies dans la BD

interrogation de la BD Cohérence des données = veille au respect des contraintes d'intégrité définies dans

Généralités sur les bases de données

2
2

Introduction Modèles de données Rôle du SGBD Architecture d'une base de données

Rôle du SGBD Architecture d'une base de données Modèles de données 4 Un modèle de données

Modèles de données

4
4

Un modèle de données est un moyen d'expliquer la disposition logique des données et les relations entre les différents éléments de l'ensemble Différents modèles ont été imaginés ex: modèle hiérarchique, modèle réseau, L'un des modèles les plus utilisés est le modèle relationnel Seul le modèle relationnel sera étudié dans ce cours

des modèles les plus utilisés est le modèle relationnel Seul le modèle relationnel sera étudié dans

Rôle du SGBD

6
6

Partage de la BD = permet à différents utilisateurs et applications d'accéder simultanément à la BD Protection de la BD

– protection du système contre les pannes logicielles et matérielles

= résistance aux pannes

– protection sécuritaire contre les accès illicites ou malveillants

= sécurité des données

résistance aux pannes – protection sécuritaire contre les accès illicites ou malveilla nts = sécurité des

III0903 - Système d’information des systèmes de production

Architecture d'un SGBD

7
7

L'architecture de la plupart des SGBD comporte trois niveaux (ANSI/SPARC):

– Le niveau interne (ou niveau mémoire) niveau relatif à la mémoire physique

= niveau où les données sont enregistrées

– Le niveau externe (ou niveau logique utilisateur) niveau relatif aux utilisateurs

= niveau où les utilisateurs voient les données

– Le niveau conceptuel (ou niveau logique) niveau "intermédiaire" entre les deux précédents

les données – Le niveau conceptuel (ou niveau logique ) niveau "intermédiaire" entre les deux précédents

Architecture d'un SGBD

9
9

Le niveau externe est constitué de vues spécifiques aux différents utilisateurs alors que le niveau conceptuel s'intéresse à la vue commune à tous les utilisateurs

niveaux de modèle

Il n'existe qu'une seule vue interne

niveau d'implémentation

Le but de cette architecture est d'établir une séparation stricte entre les applications d'utilisateurs et la base de données physique

est d'établir une séparation stricte entre les applications d'utilisateurs et la base de données physique

Architecture client-serveur

11
11

Il est possible d'envisager deux types de systèmes :

Mono-utilisateur

= un seul utilisateur à la fois peut accéder à la base

Multi-utilisateur

= plusieurs utilisateurs peuvent accéder à la base en même

temps

– ceci implique de gérer les problèmes de cohérence des données (accès à une même donnée en même temps par plusieurs utilisateurs) et d'autorisation d'accès (privilèges)

– L'utilisateur ayant tous les privilèges est l'administrateur de la base de données

(privilèges) – L'utilisateur ayant tous les pri vilèges est l'administrateur d e la base de données
8 Architecture d'un SGBD Niveau externe (vue d'un utilisateur particulier) Niveau conceptuel (vue commune
8
Architecture d'un SGBD
Niveau externe
(vue d'un
utilisateur
particulier)
Niveau conceptuel
(vue commune à
tous les utilisateurs)
Niveau interne
(vue physique)
10 Architecture client-serveur A un niveau supérieur, un système de base de données peut être
10
Architecture client-serveur
A un niveau supérieur, un
système de base de données
peut être représenté par une
architecture client-serveur
2 types d'applications :
Utilisateurs
Clients
Application
– applications écrites par
l'utilisateur dans un langage
de programmation donné
Serveur
SGBD
– outils fournis avec le SGBD
pour assister l'utilisateur
Données
12 Système centralisé Anciens systèmes Le SGBD et les données se trouvent sur le même
12
Système centralisé
Anciens systèmes
Le SGBD et les données se
trouvent sur le même
ordinateur
Les utilisateurs accèdent à la
base de données par
l'intermédiaire de terminaux
Utilisateurs
SGBD

III0903 - Système d’information des systèmes de production

13 Systèmes distribués : un serveur, plusieurs clients Dans cette configuration, les clients se trouvent
13
Systèmes distribués :
un serveur, plusieurs clients
Dans cette
configuration, les
clients se trouvent sur
des machines
différentes de celle du
serveur
Un client n'accède
qu'à une seule base
de données
Clients
Réseau de
communication
Serveur
14 Systèmes distribués : Plusieurs serveurs, plusieurs clients Dans cette configuration, chaque machine peut agir
14
Systèmes distribués :
Plusieurs serveurs, plusieurs clients
Dans cette configuration,
chaque machine peut agir
comme un serveur pour
certains utilisateurs et
comme client pour d'autres
clients
clients
serveur
serveur
Réseau de
communication
clients
serveur

Concepts des bases de données relationnelles

Le modèle relationnel Table, ligne et colonne Rôles d'une colonne Structure et contenu d'une base de données Représentation graphique d'un schéma Modifications et contraintes d'intégrité Redondance d'information

– Définition de la dépendance fonctionnelle

– Procédure de normalisation par décomposition

d'information – Définition de la dépendance fonctionnelle – Procédure de normalisation par décomposition

Le modèle relationnel– Procédure de normalisation par décomposition 16 Le modèle de données relationnel a été

16
16

Le modèle de données relationnel a été introduit par E.C. Codd en 1970 C'est un modèle ensembliste fondé sur la théorie mathématique des relations Il est la base de nombreux systèmes de bases de données Un SGBD fondé sur le modèle de données relationnel s'appelle un Système de Gestion de Bases de Données Relationnel (SGBDR) Dans ce type de base de données, les informations sont représentées sous forme d'un ensemble de relations qui peuvent être vues comme des tables

les informations sont représentées sous forme d'un ensemble de relations qui peuvent être vues comme des

Table, ligne et colonne

Dans une base de données relationnelle, les données sont organisées sous forme d'une ou plusieurs tables (ou tableaux) à 2 dimensions Rq : Cette organisation tabulaire est purement logique Elle ne correspond pas à la structure des données sur le support physique Chaque table porte un nom unique et est constituée d'un certain nombre de colonnes (ou attributs) Chaque colonne doit disposer d'un nom et deux colonnes ne peuvent pas avoir le même nom Le nombre total de colonnes d'une table s'appelle le degré de la table

ne peuvent pas avoir le même nom Le nombre total de colonnes d'une table s'appelle le

Table, ligne et colonned'une table s'appelle le degré de la table 18 Les données de la table apparaissent comme

18
18

Les données de la table apparaissent comme un ensemble de lignes ou n-tuples n est le nombre d'attributs Toutes les lignes d'une table ont le même format et représentent des objets ou relations du monde réel Le nombre total de lignes présentes à un instant donné dans une table est appelé la cardinalité de la table Les termes champ et enregistrement sont utilisés respectivement comme synonymes des termes attribut et ligne

Les termes champ et enregistrement sont utilisés respectivement comme synonymes des termes attribut et ligne

III0903 - Système d’information des systèmes de production

19 Format général d'une table représentation sous forme de tableaux NOM de la table Noms
19
Format général d'une table
représentation sous forme de tableaux
NOM de la table
Noms
A 1
A 2
A 3
A n
des colonnes
a
a
a
11
12
a 13
1n
Valeurs
de lignes
a
a
a
i1
i2
a i3
in
représentation sous forme d'une relation
NOM(A 1 ,A 2 ,A 3 ,
,A
n )

Table, ligne et colonne

21
21

Une valeur de la table désigne l'intersection entre une ligne et une colonne Pour chaque colonne d'une table, il existe un ensemble de valeurs possibles appelé domaine Ainsi, le domaine désigne toutes les valeurs permises qui peuvent apparaître dans la colonne Le domaine peut indiquer le type et la longueur de la valeur

valeurs permises qui peuvent apparaître dans la colonne Le domaine peut indiquer le type et la
23 Exemple de table PERSONNEL Id Nom Prénom Département Salaire 1420472256987 Martin Nicolas Comptabilité
23
Exemple de table
PERSONNEL
Id
Nom
Prénom
Département
Salaire
1420472256987
Martin
Nicolas
Comptabilité
55000
1521275458231
Petit
Hervé
Marketing
33500
2621106365855
Chatelin
Sophie
Ressources humaines
40000
Chaque ligne de cette table décrit un membre du personnel
5 colonnes (ou attributs) : Id (n° identification), Nom, Prénom,
Département et Salaire
 le degré est de 5
3 lignes (ou tuples)
 la cardinalité est 3

Table, ligne et colonne

20
20

Le contenu d'une table à un moment donné est appelé instantané ou instance de la table En général, le nombre de colonnes est fixé lorsque la table est définie Le nombre de lignes peut varier au cours du temps Une table doit comporter au moins une colonne, mais pas forcément de ligne Une table sans ligne est qualifiée de table vide Le processus d'insertion de lignes, la première fois, dans une table est désigné par l'expression charger une table

d'insertion de lignes, la première fois, dans une table est désigné par l'expression charger une table
22
22

Table, ligne et colonne

En résumé, voici les conditions que vérifient une table :

La table a un nom unique Chaque colonne de la table comporte un nom unique L'ordre des colonnes dans la table est sans importance Toutes les lignes de la table ont le même format et le même nombre d'entrées Les valeurs de chaque colonne appartiennent au même domaine Chaque entrée de chaque ligne doit être une valeur unique L'ordre des lignes est sans importance Il n'y a pas deux lignes identiques dans toutes leurs entrées

unique L'ordre des lignes est sans importance Il n'y a pas deux lignes identiques dans toutes
24 Exemple de table CLIENT Nom Adresse Localité Compte HANSENNE 23, a. Dumont Poitiers 1250.00
24
Exemple de table
CLIENT
Nom
Adresse
Localité
Compte
HANSENNE
23, a. Dumont
Poitiers
1250.00
MERCIER
25, r. Lemaitre
Namur
-2300.00
TOUSSAINT
5, r. Godefroid
Poitiers
0.00
VANBIST
180, r. Florimont
Lille
720.00
GILLET
14, r. de l'Ete
Toulouse
8700.00
FERARD
65, r. du Tertre
Poitiers
350.00
AVRON
8, ch. de la Cure
Toulouse
-1700.00
NEUMAN
40, r. Bransart
Toulouse
0.00
Chaque ligne de cette table décrit un client
La 7ème ligne représente la relation suivante :
Il existe un client de nom AVRON, résidant 8, chaussée de la
Cure à Toulouse, et dont le compte
est débiteur de 1700

III0903 - Système d’information des systèmes de production

25 Exemple de base de données PIECE FOURNISSEUR NumP Type NumF NomF VilleF 14 BOULON
25
Exemple de base de données
PIECE
FOURNISSEUR
NumP
Type
NumF
NomF
VilleF
14
BOULON
152
MERCIER
Tours
57
ECROU
174
CHARLES
Nevers
15
BOULON
81
DUMONT
Paris
376
RENIER
Nevers
OFFRE
259
CHARLES
Liège
NumFL
NumPL
Prix
46
GARCIN
Paris
152
15
46.
174
57
32.
152
14
62.
81
14
65.
81
15
48.
152
57
34.
46
15
46.
46
57
32.

Rôles d'une colonne

27
27

Il est possible de distinguer 3 types de colonnes Les identifiants (ou clés candidates) Ce premier type de colonnes permet d'identifier une ligne Une telle colonne est appelé l'identifiant de la table

ex :

NumF pour FOURNISSEUR NumP pour PIECE

Ceci impose que les lignes de la table aient des valeurs distinctes d'identifiant

pour FOURNISSEUR NumP pour PIECE Ceci impose que les lignes de la table aient des valeurs

Rôles d'une colonne

29
29

Les informations complémentaires Ce type de colonne ne joue d'autre rôle que d'apporter une information sur l'entité

ex : NomF, VilleF, Type et Prix

de colonne ne joue d'autre rôle que d'apporter une information sur l'entité ex : NomF, VilleF,

Exemple de base de données

26
26

Les 3 tables constituent une base de données La table nommée FOURNISSEUR décrit les fournisseurs

dont elle spécifie le numéro (NumF), le nom (NomF), et la

ville de résidence (VilleF)

La table nommée PIECE décrit les pièces de rechange caractérisées par leur numéro (NumP) et leur type (Type) La table nommée OFFRE représente les offres des

fournisseurs pour les pièces qu'ils peuvent livrer. Ces offres

sont caractérisées par le numéro du fournisseur (NumFL)

pouvant effectuer la livraison, le numéro de la pièce livrable

(NumPL) et le Prix (Prix)

num éro du fournisseur (NumFL) pouvant effectuer la livraison, le numéro de la pièce livrable (NumPL)

Rôles d'une colonne

28
28

Les clés étrangères Le deuxième type de colonnes correspond à une copie de l'identifiant d'une autre table Elle est appelée clé étrangère (ou colonne de référence)

ex : OFFRE contient 2 clés étrangères :

– NumFL qui constitue une référence à une ligne de FOURNISSEUR

– NumPL qui est une référence à une ligne de PIECE

Grâce aux clés étrangères, il est possible de mettre en relation des lignes dans des tables distinctes

ligne de PIECE Grâce aux clés étrangères, il est possible de mettre en relation des lignes

Rôles d'une colonne

30
30

Il existe d'autres concepts concernant les colonnes Les identifiants et clés étrangères multicomposants L'identifiant d'une table peut être constitué de plusieurs colonnes Par voie de conséquence, une clé étrangère qui référence une table ayant un identifiant multicomposant est elle-même multicomposant

Exemple : on pourrait imposer que les colonnes {NumFL,NumPL} constituent l'identifiant de OFFRE Cela revient à dire que l'on n'enregistre qu'une seule offre par fournisseur pour une pièce donnée

OFFRE Cela revient à dire que l'on n'enregistre qu'une seule offre par fournisseur pour une pièce

III0903 - Système d’information des systèmes de production

Rôles d'une colonne

31
31

Les identifiants primaires (ou clés primaires) Une table peut contenir plusieurs identifiants Le plus représentatif est déclaré identifiant primaire, les autres étant les identifiants secondaires (ou clés secondaires) ex : population d'assurées sociaux peut être identifiée par Numéro-SS et Numéro-carte-identité Rq

– tout ensemble de colonnes qui comprend un identifiant est encore un identifiant ({NumF,NomF})

– un identifiant dont on ne peut retirer aucun composant sans qu'il perde sa qualité d'identifiant est appelé identifiant minimal

on ne peut retirer aucun composant sans qu'il perde sa qualité d'identifiant est appelé identifiant minimal
33 Rôles d'une colonne Colonnes facultatives et colonnes obligatoires Il est possible d'accepter que
33
Rôles d'une colonne
Colonnes facultatives et colonnes obligatoires
Il est possible d'accepter que certaines colonnes soient vides
pour une ligne. Ces colonnes sont déclarée comme
facultatives
A
l'inverse, lorsque la valeur d'une colonne est indispensable,
la
colonne est déclarée comme obligatoire
Remarque :
– les composants de tout identifiant primaire sont obligatoires
– la valeur null est souvent utilisée pour indiquer qu'une
valeur est inconnue
Exemple : une ligne de OFFRE peut ne pas comporter de
valeur pour Prix au moment de son insertion dans la base.
Par contre, on peut juger que le nom d'un fournisseur est
indispensable, NomF est une colonne obligatoire

Représentation graphique d'un schéma de BDR Exemple 1

35
35

Une table et ses colonnes peuvent être représentées par un cartouche contenant le nom de la table et celui de chaque colonne On veillera à disposer de manière contiguë les colonnes d'un même identifiant ou de chaque clé étrangère On soulignera d'un trait continu les noms des colonnes de l'identifiant primaire et d'un trait pointillé ceux de chaque identifiant secondaire Le nom d'une colonne facultative sera entouré de parenthèses Une clé étrangère multi-composant sera représentée par une accolade Une contrainte référentielle sera représentée par une flèche qui part du nom de la colonne de référence et qui pointe vers le cartouche de la table référencée

par une flèche qui part du nom de la colonne de référence et qui pointe vers

Rôles d'une colonne

Contrainte référentielle

32
32

Cette contrainte stipule que l'ensemble des valeurs d'une clé étrangère est, à tout instant, une partie de l'ensemble des valeurs de l'identifiant primaire de la table référencée Exemple : on peut imposer que

- toute valeur de NumPL dans OFFRE soit présente dans la colonne NumP de PIECE

- toute valeur de NumFL dans OFFRE soit présente dans la colonne NumF de FOURNISSEUR

il serait impossible d'ajouter la ligne (NumFL:93, NumPL:57, Prix:32) dans OFFRE à cause de la valeur 93 de NumFL qui n'existe pas comme valeur NumF de FOURNISSEUR

Prix:32) dans OFFRE à cause de la valeur 93 de NumFL qui n'existe pas comme valeur

Structure et contenu d'une base de données

34
34

Deux classes de composants dans une base de données :

– son schéma qui définit la structure de la base de données en terme de tables, de colonnes (avec le type de valeurs et le caractère obligatoire ou facultatif), d'identifiants primaires et secondaires et de contraintes référentielles

• Ce schéma est relativement stable dans le temps

• Il peut être représenté de différentes manières

– son contenu qui est généralement trop volumineux et trop susceptible d'évoluer pour être représenté

– son contenu qui est généralement trop volumineux et trop susceptible d'évoluer pour être représenté
36 Représentation graphique d'un schéma de BDR Exemple 1 FOURNISSEUR CATALOGUE NumF NomF VilleF Année
36
Représentation graphique d'un schéma de BDR
Exemple 1
FOURNISSEUR
CATALOGUE
NumF
NomF
VilleF
Année
Saison
Editeur
ARTICLE
NumArt
NumFL
Année
Saison
(Prix)

III0903 - Système d’information des systèmes de production

37 Représentation graphique d'un schéma de BDR Exemple 1 CLIENT NCli Nom (Prenom) Adresse Ville
37
Représentation graphique d'un schéma de BDR
Exemple 1
CLIENT
NCli
Nom
(Prenom)
Adresse
Ville
CP
(Cat)
Compte
COMMANDE
PRODUIT
NCom
NCli
DateCom
NPro
Libellé
Prix
QStock
DETAIL
NCom
NPro
QCom
39 Représentation graphique d'un schéma de BDR Exemple 2 CLIENT PRODUIT NCli NPro COMMANDE Nom
39
Représentation graphique d'un schéma de BDR
Exemple 2
CLIENT
PRODUIT
NCli
NPro
COMMANDE
Nom
Libelle
NCom
Prenom [0-1]
Prix
#NCli
Adresse
DETAIL
QStock
DateCom
CP
#NCom
Ville
#NPro
Cat [0-1]
QCom
Compte
41 Représentation graphique d'un schéma de BDR Exemple 3 CLIENT PRODUIT NCli NPro Nom Libelle
41
Représentation graphique d'un schéma de BDR
Exemple 3
CLIENT
PRODUIT
NCli
NPro
Nom
Libelle
Prenom[0-1]
Prix
COMMANDE
Adresse
QStock
Ncom
CP
id :NPro
NCli
Ville
DateCom
Cat[0-1]
DETAIL
id: NCom
Compte
NCom
ref: NCli
id: NCli
NPro
QCom
id: NCom
NPro
ref: NCom
ref: NPro

Représentation graphique d'un schéma de BDR Exemple 2

38
38

Une table est représentée par une boite à deux compartiments indiquant successivement le nom de la table et le nom de ses colonnes La clé primaire est soulignée d'un trait continu Les éventuelles clé secondaires sont soulignées d'un trait pointillé Les éventuelles clés étrangères sont préfixées par # Une colonne facultative est caractérisée par le symbole [0-1] qui indique qu’une ligne possède de 0 à 1 valeur pour cette

colonne

est caractérisée par le symbole [0-1] qui indique qu’une ligne possède de 0 à 1 valeur

Représentation graphique d'un schéma de BDR Exemple 3

40
40

Une table est représentée par une boite à trois compartiments indiquant successivement le nom de la table, le nom de ses colonnes et les contraintes d’intégrité Une colonne facultative est caractérisée par le symbole [0-1] qui indique qu’une ligne possède de 0 à 1 valeur pour cette colonne l’identifiant primaire est spécifié par la clause id: qui énumère ses composants ; en outre, ceux-ci sont soulignés dans le compartiment des colonnes Tout identifiant secondaire est spécifié par id’:

Une clé étrangère est spécifiée par une clause ref: qui énumère ses composants; de cette clause est issue une flèche qui pointe vers l’identifiant référencé Un groupe de colonnes qui forme à la fois un identifiant et une clé étrangère est simultanément noté id: (ou id’:) et ref

colonnes qui forme à la fois un identifiant et une clé étrangère est simultanément noté id:
42 Représentation graphique d'un schéma de BDR Exemple 4 Sous Microsoft Access Document texte
42
Représentation graphique d'un schéma de BDR
Exemple 4
Sous Microsoft Access
Document texte

III0903 - Système d’information des systèmes de production

Modification et contraintes d'intégrité

43
43

Toute les opérations de modification des données doivent respecter les propriétés structurelles de la base = contraintes d'intégrité Contraintes d'unicité (identifiants)

– Création d'une ligne Il ne peut exister de ligne ayant la même valeur de l'identifiant

– Suppression d'une ligne Pas de contrainte

– Modification de l'identifiant Il ne peut exister de ligne ayant la nouvelle valeur de l'identifiant

contrainte – Modification de l'identifiant Il ne peut exister de ligne ayant la nouvelle valeur de

Modification et contraintes d'intégrité

45
45

– Création d'une ligne de CLIENT Pas de contrainte

– Suppression d'une ligne de CLIENT Il y a un problème si le client possède des commandes = des lignes de COMMANDE référencent la ligne de CLIENT à supprimer Il y a 3 comportements possibles

de CLIENT à supprimer Il y a 3 comportements possibles • Blocage = La suppression de

Blocage = La suppression de la ligne est refusée

Propagation en cascade = suppression de la ligne de CLIENT et de de toutes les lignes de COMMANDE qui la référencent

Indépendance Dans le cas ou la clé étrangère est constituée de colonnes facultatives, ses valeurs sont effacées Exemple : si NCli facultative = commandes sans client

Redondance d'information

47
47

= une même information est enregistrée plusieurs fois

Exemple de la table LIVRE Lorsqu'un livre existe en plusieurs exemplaires, les lignes décrivant ceux-ci reprennent les mêmes valeurs du titre, de l'auteur et du code ISBN inconvénients :

– la table occupe un espace excessif

– la modification d'un titre ou d'un auteur exigera la modification de toutes les lignes concernées (cohérence des données)

– la suppression du seul exemplaire d'un livre entraînera la perte des informations sur son titre et son auteur

– la suppression du seul exemplaire d'un livre entraînera la perte des informations sur son titre

Modification et contraintes d'intégrité

44
44

Contraintes référentielles (clés étrangères) Règles de modification complexes Exemple de la contrainte NCli pour les tables CLIENT et COMMANDE

– Création d'une ligne de COMMANDE La valeur de NCli doit être présente dans la colonne NCli de CLIENT

– Suppression d'une ligne de COMMANDE Sans restriction (en ce qui concerne CLIENT)

– Modification d'une valeur de NCLI d'une ligne de COMMANDE La nouvelle valeur de NCli de la ligne doit être présente dans la colonne NCli d'une ligne de CLIENT

de COMMANDE La nouvelle valeur de NCli de la ligne doit être présente dans la colonne
46 Modification et contraintes d'intégrité – Modification d'une valeur de NCLI d'une ligne de CLIENT
46
Modification et contraintes d'intégrité
– Modification d'une valeur de NCLI d'une ligne de CLIENT
2 cas possibles :
• si aucune ligne de COMMANDE ne référence cette
ligne de CLIENT  pas de restriction
• sinon, on retrouve les 3 comportements précédents
En résumé : l'impact d'une contrainte référentielle n'est pas
unique
Elle dépend de la réalité à représenter et de la politique de
gestion des données
Colonnes obligatoires
Lors des opérations de création et de modification de lignes,
ces colonnes devront recevoir une valeur
48 Redondance d'information Exemple de redondance d'information LIVRE Numero Titre Auteur ISBN DateAchat
48
Redondance d'information
Exemple de redondance d'information
LIVRE
Numero
Titre
Auteur
ISBN
DateAchat
Empl
1029
L'humanité perdue
Finkelkraut A.
2
02 033300 7
14/10/2005
F3
1030
L'humanité perdue
Finkelkraut A.
2
02 033300 7
14/10/2005
F3
1032
Mercure
Nothomb A.
2
253 14911 X
14/10/2005
G5
1045
Eva Luna
Allende I.
2
253 05354 6
22/2/2005
F3
1067
Mercure
Nothomb A.
2
253 14911 X
22/4/2005
G5
1022
Mercure
Nothomb A.
2
253 14911 X
3/10/2005
G6

III0903 - Système d’information des systèmes de production

Redondance d'information

49
49

Il est possible de résoudre le problème de redondance d'information en décomposant la table en plusieurs tables distinctes, en suivant une certaine procédure Cette procédure se nomme normalisation par décomposition Les tables issues de la décomposition sont dites normalisées Exemple : la table LIVRE peut être décomposée en 2 tables

distinctes

OUVRAGE qui contient la description des ouvrages (ISBN, Titre et Auteur)

EXEMPLAIRE qui décrit les exemplaires de ces ouvrages (Numero, ISBN, DateAchat et Empl)

(ISBN, Titre et Auteur) – EXEMPLAIRE qui décrit les exempl aires de ces ouvrages (Numero, ISBN,

Définition de la dépendance fonctionnelle

51
51

Soit une relation r(R) et deux ensembles de ses attributs A et B. Nous dirons que le(s) attribut(s) A détermine(nt) fonctionnellement le(s) attibut(s) B relativement à r, ce qui se note A → B, si et ssi pour deux tuples t1 et t2 de r, à chaque fois que t1(A)=t2(A) alors t1(B)=t2(B) c'est à dire, que si A détermine fonctionnellement B, alors, quand 2 lignes de la table ont des valeurs identiques dans la colonne A, leurs valeurs respectives dans la colonne B doivent l'être aussi Dans la notation A → B

A (partie gauche) est appelée déterminant

B (partie droite) est appelée déterminé

aussi Dans la notation A → B A (partie gauche) est appelée déterminant B (partie droite)

Procédure de normalisation par décomposition

53
53

La décomposition doit se faire selon une dépendance fonctionnelle (sinon, il y a perte de données) La table R peut être décomposée en

– une table S qui regroupe le déterminant et le déterminé de la dépendance

– une variante réduite de R de laquelle le déterminé a été retiré Généralisation : les colonnes A, B et C peuvent représenter des groupes de colonnes

le déterminé a été retiré Généralisation : les colonnes A, B et C peuvent représenter des

Redondance d'information

50
50

La redondance d'information s'explique par le fait que si deux lignes de la table LIVRE ont la même valeur d'ISBN, alors elles ont les mêmes valeurs de Titre et d'Auteur Cette propriété se nomme dépendance fonctionnelle et se note :

ISBN → Titre, Auteur (cette propriété spécifie une fonction au sens mathématique du terme) Une dépendance fonctionnelle est une contrainte entre deux ensembles d'attributs de la base de données

du terme) Une dépendance fonctionnelle est une contrainte entre deux ensembles d'attributs de la base de

Définition de la dépendance fonctionnelle

Deux propriétés importantes :

52
52

– Un identifiant d'une table est un déterminant de chacune des autres colonnes de la table

– Inversement, toute colonne, ou groupe de colonnes, qui est un déterminant pour chacune des autres colonnes de la table est un identifiant

Exemple :

Numero → Titre, Auteur, ISBN, DateAchat, Empl

pour chacune des autres colonnes de la table est un identifiant Exemple : Numero → Titre,
54 Procédure de normalisation par décomposition S B C R A B C  B
54
Procédure de normalisation
par décomposition
S
B C
R
A
B
C
B → C
R
A B

III0903 - Système d’information des systèmes de production

Procédure de normalisation par décomposition

55
55

Une table est normalisée si tout déterminant y est un identifiant A l'inverse, si une table est le siège d'une dépendance fonctionnelle anormale (le déterminant n'est pas un identifiant) alors cette table n'est pas normalisée et est susceptible de contenir des données redondantes Si une table contient plusieurs dépendances anormales, il faut la décomposer plusieurs fois

des données redondantes Si une table contient plusieurs dépendances anormales, il faut la décomposer plusieurs fois

Les structures physiques

57
57

A la forme tabulaire des données correspond sur le support une structure physique qui doit garantir de bonnes performances lors de l'exécution de requêtes Voici 3 exemples de ce type de structure :

– index

– espaces de stockage

– agrégat physique

de requêtes Voici 3 exemples de ce type de structure : – index – espaces de
56 Normalisation par décomposition OUVRAGE ISBN Titre Auteur 2 02 033300 7 L'humanité perdue Finkelkraut
56
Normalisation par décomposition
OUVRAGE
ISBN
Titre
Auteur
2
02 033300 7
L'humanité perdue
Finkelkraut A.
2
253 14911 X
Mercure
Nothomb A.
2
253 05354 6
Eva Luna
Allende I.
EXEMPLAIRE
Numero
ISBN
DateAchat
Empl
1029
2
02 033300 7
14/10/2005
F3
1030
2
02 033300 7
14/10/2005
F3
1032
2
253 14911 X
14/10/2005
G5
ISBN → Titre, Auteur
1045
2
253 05354 6
22/2/2005
F3
1067
2
253 14911 X
22/4/2005
G5
1022
2
253 14911 X
3/10/2005
G6

Les structures physiques

58
58

Un index sert à accélérer l'extraction des lignes compte tenu de certains critères de recherche Par exemple : permettre d'accéder aux lignes suivant un ordre (dé)croissant des valeurs d'une colonne N'importe quel attribut peut servir d'index Les tables sont rangés dans les espaces de stockage

(dbspace, tablespace,

(disque magnétique, CDROM,

) de la mémoire secondaire

)

Ces espaces sont généralement découpés en pages Un agrégat physique (ou cluster) est formé d'un ensemble de lignes souvent extraites simultanément lors de l'exécution des requêtes Cet agrégat est stocké de manière contiguë dans la mémoire secondaire (même page) réduction du temps d'accès

(même page)  réduction du temps d'accès Ex : lignes de COMMANDE et li gnes correspondantes

Ex : lignes de COMMANDE et lignes correspondantes de DETAIL