cours des bases de données

112
Université Mohamed premier Année universitaire 11/12 Faculté des sciences Filière SMI, S5 Département de Mathématiques et d’informatique Bases de données et Bases de données et systèmes d’information systèmes d’information Professeur : M. MOUSSI Professeur : M. MOUSSI 1 M. Moussi

Upload: yassine-kchiri

Post on 28-Dec-2014

6.055 views

Category:

Documents


4 download

DESCRIPTION

Cours des bases de données et analyse des systèmes SMI5 2011/2012 Mr M.MOUSSI

TRANSCRIPT

Page 1: Cours des bases de données

Université Mohamed premier Année universitaire 11/12 Faculté des sciences Filière SMI, S5 Département de Mathématiques et d’informatique

Bases de données et systèmes Bases de données et systèmes d’informationd’information

Professeur : M. MOUSSIProfesseur : M. MOUSSI

1M. Moussi

Page 2: Cours des bases de données

Plan du cours :

Partie I : Concepts généraux. Partie II : Bases de données relationnelles Partie III : initiation au Langage SQL.

2M. Moussi

Page 3: Cours des bases de données

Première partie :Concepts généraux.

3M. Moussi

Page 4: Cours des bases de données

Plan : Introduction. Définitions. composants liés à la gestion d’une base de

données. Fonctions fournies par un SGBD. Indépendance des données. Architecture d’un SGBD. Principe de fonctionnement d’un SGBD. Cycle de vie d’une base de données.

4M. Moussi

Page 5: Cours des bases de données

Introduction

Tout le monde utilise régulièrement les bases de données (manuelles ou automatisées).

Inconvénients de la gestion manuelle : La recherche d’information est lente, exemple :

gestion des informations d’un meuble… Les feuilles peuvent être perdues ou déchirées,

donc perte de l’historique. Moins de sécurité : n’importe qui peut accéder aux

informations. …etc.

5M. Moussi

Page 6: Cours des bases de données

Introduction Avantages de la gestion automatique :

Les travaux ennuyeux de maintenance manuelle des fichiers sont éliminés.

La réduction ou la suppression du volume du papier.

L’efficacité d’accès aux données. La gestion d’un historique. Exactitude : des informations précises et

réactualisées sont disponibles à tout moment. …etc.

6M. Moussi

Page 7: Cours des bases de données

Introduction Exemples d’applications :

– Application de gestion des enseignements :

Numéro étudiant

Nom étudiant

Prénom étudiant

Adresse

Date de naissance

Numéro module

Numéro enseignant

Salle

date

Heure début

Durée

Numéro étudiant

numéro module

Date inscription

Numéro module

Intitulé module

Volume horaire

semestre

Pré requis

Numéro enseignant

Nom enseignant

Prénom enseignant

adresse

Date de naissance

Module

Enseignant

Inscription

Enseignement

Etudiant

7M. Moussi

Page 8: Cours des bases de données

IntroductionApplication de gestion des commandes :

Code produit

Désignation

Prix unitaire

Numéro commande

Numéro fournisseur

Code produit

Quantité

Numéro fournisseur

Nom fournisseur

Adresse

Ville

Fournisseur Commande Produit

8M. Moussi

Page 9: Cours des bases de données

Introduction– Application de réservation de places d’avion :

Numéro passager

Nom passager

Prénom passager

Adresse

Numéro ligne

Ville départ

Ville arrivée

Nom ville

Nom aéroport

 

Type avion

Nombre de places

Numéro réservation

Numéro passager

Numéro vol

Date réservation

Avion

Réservation

Ville

Ligne

Passage

Numéro vol

Numéro ligne

Jour&Heure du vol

Type avion

Vol

9M. Moussi

Page 10: Cours des bases de données

Définitions :

Base de données  : Collection de données :

Persistantes. Opérationnelles. Enregistrées et utilisées par des systèmes

d’application (des programmes) d’une entreprise particulière.

10M. Moussi

Page 11: Cours des bases de données

Définitions :

Base de données  : Structurée indépendamment d’une quelconque

application. Cohérente. De redondance minimale. Peut être accessible simultanément par plusieurs

utilisateurs.

11M. Moussi

Page 12: Cours des bases de données

Définitions

Modèle de données : Est un Ensemble de concepts et de règles

d’utilisation de ces concepts qui permettent de décrire les données d’une BD et de modéliser leur structure.

Est un moyen de description du monde réel. Types de modèles de données principaux : Le

modèle hiérarchique, le modèle réseau, le modèle relationnel, le modèle objet.

12M. Moussi

Page 13: Cours des bases de données

Définitions Schéma d’une base de données :

Est un groupe d’objet d’une base de données (table, index, des contraintes…) qui sont unis et reliés entre eux.

C’est une description de la base de données obtenue en employant un modèle de données.

Exemple : schéma relationnel :Propriétaire du schéma

tables index procédures

contraintesvues

13M. Moussi

Page 14: Cours des bases de données

Définitions Système de gestion de base de données :

Est un système informatique (logiciel) permettant de maintenir des données et de les rendre disponible à la demande;

Tout SGBD appartient à une classe associée à un modèle de données.

14M. Moussi

Page 15: Cours des bases de données

Composants liés à la gestion d’une base de données 

Les données : Données intégrées : la BD peut être vue comme

une unification de plusieurs fichiers de données distincts, pas de redondance .

Exemple : Etudiant : NumEtudiant, nom, adresse, date de naissance…

Inscription : NumEtudiant, NumModule, DateInscription…

pour le nom d’un étudiant, il suffit de le chercher dans le fichier Etudiant.

15M. Moussi

Page 16: Cours des bases de données

Composants liés à la gestion d’une base de données

Données partagées : chaque donnée de la base peut être partagée par plusieurs utilisateurs qui peuvent accéder simultanément à cette donnée.

Exemple :

Dans une application de gestion de la scolarité, les utilisateurs du service d’examen et du service d’inscription peuvent accéder aux informations relatives à l’étudiant dans le fichier Etudiant.

16M. Moussi

Page 17: Cours des bases de données

Composants liés à la gestion d’une base de données

Le matériel : se compose des volumes de mémorisation pour le stockage des données, le processeur et la mémoire principale pour l’exécution du logiciel.

Le logiciel : c’est le SGBD, responsable de l’exécution de toutes les requêtes des utilisateurs pour accéder à la base de données et manipuler les données.

Exemple : Oracle, Informix, Sybase, Access, SQL Server…

17M. Moussi

Page 18: Cours des bases de données

Composants liés à la gestion d’une base de données

Les intervenants : L’administrateur de la BD : responsable sur le

contrôle les données : définit les types de données à Stocker dans la

base, délivre des autorisations d’accès à la BD, décide des stratégies de maintenance et de

manipulation de ces données.

18M. Moussi

Page 19: Cours des bases de données

Composants liés à la gestion d’une base de données

Le programmeur de l’application : développe l’application ( le programme) utilisée pour accéder à la base de données.

L’utilisateur final : accède à la base de données à travers une interface intégrée au logiciel ou bien une application.

19M. Moussi

Page 20: Cours des bases de données

Fonctions fournies par un SGBD 

Description des données : Description des objets (Etudiant, Enseignant,

module…), leurs attributs (NumEtudiant, Nom, Adresse…).

Description des liens ( un Etudiant est inscrit dans un module).

Description des contraintes éventuelles sur les objets, leurs attributs ou leurs liens.

À l’aide du langage de description de données (LDD).

20M. Moussi

Page 21: Cours des bases de données

Manipulation des données : Concerne les outils et les mécanismes qui

permettent de faire communiquer une BD et l’utilisateur.

Effectuer des opérations de recherche, d’insertion, de modification et de suppression sur cette base.

A l’aide du langage de manipulation de données

( LMD ).

21M. Moussi

Fonctions fournies par un SGBD 

Page 22: Cours des bases de données

Fonctions fournies par un SGBD

Assurer la cohérence des données : Soit une information représentée d’une façon

redondante dans la BD, la mise à jour de cette information dans un seul endroit rend la BD dans un état incohérent.

Une BD incohérente fournit des données incorrecte ou contradictoires.

Par l’élimination de la redondance ou bien son contrôle, le SGBD garantit la cohérence.

22M. Moussi

Page 23: Cours des bases de données

Fonctions fournies par un SGBD 

Exemple : deux étudiants avec les mêmes informations, si j’ai pas d’identifiant (numéro par exemple)?

Intégrité des données : Est relatif à la qualité de la valeur enregistrée,

celle-ci doit vérifier certains propriétés de façon à garantir l’exactitude et la cohérence des données. Ces propriétés sont appelées contraintes d’intégrité.

23M. Moussi

Page 24: Cours des bases de données

Fonctions fournies par un SGBD Exemples :

Chaque étudiant possède un numéro qui l’identifie. Un étudiant ne peut suivre que quatre module au

plus dans un semestre. Un étudiant ne peut pas être inscrit deux fois dans

un même module. On ne peut pas programmer deux cours pour le

même professeur dans le même créneau. On ne peut pas programmer deux cours dans la

même salle dans le même créneau. La durée d’une séance de cours ne peut excéder 3

heurs et ne peut être moins que 1Heure et ½.

24M. Moussi

Page 25: Cours des bases de données

Fonctions fournies par un SGBD

Fiabilité : Risque de perte d’informations à cause d’un

incident matériel ou logiciel : erreur de programmation, panne système, coupure du courant, le disque dur qui contient la base est endommagé, ...

Le SGBD doit offrir la possibilité de remettre la BD dans un état opérationnel.

La journalisation des opérations réalisées sur la base et leur ré-exécution automatique en cas de besoin.

25M. Moussi

Page 26: Cours des bases de données

Fonctions fournies par un SGBD

Les accès concurrents : Plusieurs utilisateurs peuvent accéder aux

données simultanément. Le SGBD doit gérer les conflits qui peuvent être

résultés de ces accès.

Exemple : Soient les deux opérations de mise à jour, notées OP1 et OP2, qui s’effectuent sur une même donnée V=100. On a deux cas :

26M. Moussi

Page 27: Cours des bases de données

Fonctions fournies par un SGBD

OP1 et OP2 sont séquentielles :

Après exécution séquentielle des deux OP1 et OP2, on obtient V =250.

OP1 OP2

XLire(V) YLire(V)

XX+50 YY+100

Ecrire(X, V) Ecrire(Y, V)

27M. Moussi

Page 28: Cours des bases de données

Fonctions fournies par un SGBD Exécution d’une manière concurrente :

Après exécution concurrente, on obtient V =200.

OP1 OP2

XLire(V)

XX+50

YLire(V)

Ecrire(X, V)

YY+100

Ecrire(Y, V)

28M. Moussi

Page 29: Cours des bases de données

Fonctions fournies par un SGBD

Conclusion :– la mise à jour de l’opération OP1 a écrasé celle de

l’opération OP2. Il y’a donc une perte de mise à jour.– Pour éviter ce genre de problème, la technique de

verrouillage est souvent utilisée lors d’accès en modification.

29M. Moussi

Page 30: Cours des bases de données

Fonctions fournies par un SGBD

Confidentialité : Toute information doit être protégée contre l’accès

des utilisateurs non autorisés soit en écriture ou en lecture.

La confidentialité est assurée par : Le biais de mot de passe et de gestion des droits

d’accès(par utilisateur ou par groupe). L’utilisation des sous-schéma.

30M. Moussi

Page 31: Cours des bases de données

Fonctions fournies par un SGBD

Exemple :

Dans l’application de la gestion des enseignements Les étudiants sont autorisés à lire les numéros des modules et les horaires de l’enseignement, mais ils ne sont pas autorisés à les modifier…

31M. Moussi

Page 32: Cours des bases de données

Architecture d’un SGBD 

L’architecture d’un SGBD se compose de trois niveaux : interne, conceptuel et externe,et des liens entres ces niveaux.

Vueexterne A

Vueexterne B

Schémaconceptuel

Lien Externe/conceptuel A

Lien Externe/ conceptuel B

Lien Conceptuel/ interne

Niveau conceptuelNiveau externe

Niveau interne

Schéma interne

User A1User A2

User B1User B2User B3

Figure : Architecture d’un SGBD.

32M. Moussi

Page 33: Cours des bases de données

Architecture d’un SGBD

Le niveau interne ou physique : Est le niveau relatif à la mémoire physique. Il concerne la structure de stockage physique de la

base de données, notamment, les types de fichiers utilisés, caractéristiques des enregistrements (longueur, composants), ainsi que l’accès aux données par exemple à travers les tables et les indexes.

33M. Moussi

Page 34: Cours des bases de données

Architecture d’un SGBD Le niveau externe :

il s’agit du niveau où les utilisateurs interrogent la BD.

A ce niveau, à chaque utilisateur ou groupe d’utilisateurs, des vues sur tout ou sur une partie du schéma sont associées.

34M. Moussi

Page 35: Cours des bases de données

Architecture d’un SGBD

Le niveau conceptuel ou logique : présente d’une façon globale et abstraite la

structure des données (les regroupements des données, les liens entre les regroupements) et des règles de gestion et de fonctionnement.

En général, la vue conceptuelle est censée être une vue des données telles qu’elles sont réellement.

35M. Moussi

Page 36: Cours des bases de données

Architecture d’un SGBD

Les liens : Le lien conceptuel/interne : définit la

correspondance entre la vue conceptuel et la BD en mémoire, spécifie la représentation des enregistrements et des champs au niveau interne.

Pour garder l’invariance du schéma conceptuel, les modifications au niveau interne entraîne des modifications au niveau de ce lien.

36M. Moussi

Page 37: Cours des bases de données

Architecture d’un SGBD

Un lien externe/conceptuel  : définit la correspondance entre une vue externe

et la vue conceptuel.

37M. Moussi

Page 38: Cours des bases de données

Indépendance des données

Indépendance physique : Permet à l’administrateur de la BD d’être libre de

modifier la structure de mémorisation ou la technique d’accès, suite à un changement des besoins, sans avoir à modifier les applications existantes.

Exemple : des nouveaux types de données peuvent être introduits dans la BD, des nouveaux types de matériel de stockage disponibles, ou ajout d’une table d’index pour accélération.

38M. Moussi

Page 39: Cours des bases de données

Indépendance des données

Indépendance logique : Permet la modification du schéma conceptuel

sans avoir à modifier les programmes existants. Elle peut être définie comme la protection des

utilisateurs et des programmes contre tout changement de la structure logique de la BD.

L’administrateur doit pouvoir faire évoluer le système d’information sans remettre en cause la vue de chaque utilisateur ou groupe d’utilisateurs.

39M. Moussi

Page 40: Cours des bases de données

Indépendance des données

Exemple : Dans une BD contenant les informations suivantes :

Véhicule (numéro véhicule, marque, type, couleur)

Personne (CIN, nom, prénom)

Propriétaire (CIN, numéro véhicule, date achat)

  Un groupe d’utilisateur ne s'intéresse qu'aux personnes qui possèdent une voiture :

Personne (CIN, nom, prénom, numéro véhicule).

Un autre groupe d’utilisateurs ne s'intéresse qu'aux véhicules vendus à une certaine date :

Voiture (numéro véhicule, type, marque, date achat).

40M. Moussi

Page 41: Cours des bases de données

La suite des phases qui permet de construire le processus d’accès aux données est :

1. L’utilisateur émet une requête au moyen d’un langage de données, en général SQL.

2. Le SGBD intercepte la requête et effectue une analyse sémantique et syntaxique.

3. Traduction au niveau logique : le SGBD inspecte le schéma externe de cet utilisateur, le lien externe/conceptuel correspondant et le schéma logique.

4. Contrôle de confidentialité, concurrence…

Principe de fonctionnement d’un SGBD

41M. Moussi

Page 42: Cours des bases de données

Principe de fonctionnement d’un SGBD

5. Si la requête est acceptée, le SGBD effectue une optimisation et découpe la requête en sous-requêtes élémentaires et les transfère au niveau interne.

6. Traduction au niveau interne : le SGBD inspecte le lien conceptuel/interne correspondant et la définition de la structure mémoire.

7. Exécution des opérations nécessaires au niveau de la base de données mémoire.

42M. Moussi

Page 43: Cours des bases de données

Cycle de vie d’une base de données 

Les quatre phases suivantes présentent la vie d’une base de données.

Conception : consiste à construire le modèle conceptuel et le

convertir en modèle physique opérationnel. Comporte la définition et la description des

données, la création des structures des données, décrire les contraintes d’intégrité

Pour l’aspect physique, on peut indiquer l’ensemble des supports physiques pour le stockage des données.

43M. Moussi

Page 44: Cours des bases de données

Cycle de vie d’une base de données 

Implantation des données : Création de la BD, il s’agit de créer un ensemble

structuré. Le SGBD offre des moyens pour implanter

physiquement les données et décrire les liens qui les unissent.

Utilisation : la fiabilité d’une BD est de mettre à la disposition

des données à être utilisées. Le LMD permet l’utilisation.

44M. Moussi

Page 45: Cours des bases de données

Cycle de vie d’une base de données

Maintenance : une BD est modifiée tout au long de sa vie, par

l’ajout ou la suppression de table, de colonne ou d’index…, L’insertion et la suppression de données entraînent une fragmentation.

La maintenance est ainsi importante pour garantir l’utilité et les performances d’une BD. Elle doit l’accompagner durant son existence.

S’occupe essentiellement de la façon dont les données sont stockées et du volume de données atteint après un certain temps d’utilisation.

45M. Moussi

Page 46: Cours des bases de données

Deuxième partie :Bases de données relationnelles.

46M. Moussi

Page 47: Cours des bases de données

Plan : Introduction. Principaux concepts du modèle relationnel. Contraintes d’intégrité. L’algèbre relationnelle ou langage algébrique. Normalisation.

47M. Moussi

Page 48: Cours des bases de données

Introduction

Proposé par Ted Codd en 1970. Son objectif essentiel l’accroissement de

l’indépendance des programmes vis-à-vis de la présentation des données.

Fondé sur la théorie mathématique des ensembles.

Exemples des SGBD relationnels : Oracle, Informix, Sybase, Dbase, Access, MySQL,…

48M. Moussi

Page 49: Cours des bases de données

Introduction

Trois aspects : Aspect structurel : l’utilisateur perçoit les données

comme des tables. Aspect intégrité : ces tables satisfont certains

contraintes d’intégrité. Aspect manipulation : les opérateurs dont dispose

l’utilisateur (par exemple, pour accéder aux données) génèrent de nouvelles tables à partir des tables existantes.

49M. Moussi

Page 50: Cours des bases de données

Introduction Trois opérations importantes : la restriction (ou

sélection), la projection et la jointure Exemples : soient les deux tables :

Etudiant

Num Nom Prénom Adresse Age

1 Ahmadi Ahmed Lazaret 25 19

2 Najjar Fatima Alkods 8 20

3 Hamadi mohamed Rue 1,21 18

Inscription

NumEtudiant NumModule Date inscription

1 25 15/09/2005

1 26 15/09/2005

3 27 15/09/2006

50M. Moussi

Page 51: Cours des bases de données

Introduction

Le résultat de restriction sur Etudiant où Age>18 est la relation :

Le résultat de la projection de Etudiant sur Num, Adresse est :

Num Nom Prénom Adresse Age

1 Ahmadi Ahmed Lazaret 25 19

2 Najjar Fatima Alkods 8 20

Num Adresse

1 Lazaret 25

2 Alkods 8

3 Rue 1,21

51M. Moussi

Page 52: Cours des bases de données

Introduction

Le résultat de jointure de Etudiant et Inscription sur Numéro étudiant est :

Num Nom Prénom Adresse Age NumModule Date inscription

1 Ahmadi Ahmed Lazaret 25 19 25 15/09/2009

1 Ahmadi Ahmed Lazaret 25 19 26 15/09/2009

3 Hamadi mohamed Rue 1,21 18 27 15/09/2010

52M. Moussi

Page 53: Cours des bases de données

Principaux concepts du modèle relationnel

Domaine : est un type de données, il est définit par un

ensemble de valeurs. Exemples :

Dnom : chaîne de caractères de longueur 30. Dnum : entiers compris entre 1 et 10000. Dcouleurs :{blanc, bleu, vert, jaune,

rouge } Dage : entiers compris entre 1 et 100. Ddate : [01 :31] / [01 :12] / [1920 :2011]

53M. Moussi

Page 54: Cours des bases de données

Principaux concepts du modèle relationnel

Relation : formellement, c’est un sous-ensemble du produit

cartésien d’une liste de domaines. Une relation n-aire sur les domaines D1, D2 ,…, Dn

est un sous-ensemble du produit cartésien

D1 D2 … Dn. Un élément appartenant à une telle relation sera

appelé n-uplet ou tuple ou occurrence. Il sera noté (d1, d2 ,…, dn ) où di Di i {1, …n}.

L’entier n est le degré, le nombre de n-uplets est la cardinalité de la relation.

54M. Moussi

Page 55: Cours des bases de données

Principaux concepts du modèle relationnel

Attribut : un attribut Ai de la relation est un identificateur

associé à un domaine Di.

On le désigne parfois par : nom de la relation.nom de l’attribut. les attributs Ai doivent être distincts.

Formellement, un tuple peut être définit comme un produit cartésien ( A1 : D1, A2 : D2 ,…, An : Dn). Une relation comme un ensemble paramétré par le tuple. Ai est une fonction qui associe à un tuple une valeur dans le domaine Di.

55M. Moussi

Page 56: Cours des bases de données

Principaux concepts du modèle relationnel

Un attribut peut ne pas être valué pour un tuple, on dit alors qu’il a une valeur nulle.

Les notions d’attribut multi-valué ou complexe n’existent pas dans le modèle relationnel. Il faut donc les modéliser autrement :

pour un attribut complexe, il faut choisir entre le composé ou les composants.

Pour un attribut multi-valué, il faut créer une autre relation.

56M. Moussi

Page 57: Cours des bases de données

Principaux concepts du modèle relationnel

Exemples :– Soit l’information Adresse : nom rue, N°, ville, code

postal. Par exemple, adresse prend la valeur :

Rue Med V, 2, Oujda, 60000. On a deux solutions :

Un attribut par composant :

Un seul attribut de domaine chaîne de caractères :

nom rue N° ville code postal

Rue Med V 2 Oujda 60000

Adresse

Rue Med V 2 Oujda 60000

57M. Moussi

Page 58: Cours des bases de données

Principaux concepts du modèle relationnel

– Mémoriser les différents cours suivis par les étudiants :

• L’utilisation de plusieurs attributs : cours1, cours2,… est incorrecte.

• Il faut créer une autre relation supplémentaire :

Numéro étudiant Cours

12 BD

13 BD

13 GL

20 LC

20 BD

58M. Moussi

Page 59: Cours des bases de données

Principaux concepts du modèle relationnel

Schéma de relation : un schéma de relation est le nom de la relation

suivi de la liste des attributs avec leurs domaines, par exemple : Etudiant (Numéro étudiant : entier, nom : chaîne, Prénom : chaîne, Adresse : alphanumérique(30), age : entier).

59M. Moussi

Page 60: Cours des bases de données

Principaux concepts du modèle relationnel

Exemple :

Etudiant

Num Nom Prénom Adresse Age

1 Ahmadi Ahmed Lazaret 25 19

2 Najjar Fatima Alkods 8 20

3 Hamadi mohamed Rue 1,21 18

Entier chaîne alphanumérique Entier Domaines

Tuple Ou

Occurrence

Attributs

60M. Moussi

Page 61: Cours des bases de données

Principaux concepts du modèle relationnel

Identifiant d’une table : l’unicité de l’identification des n-uples est assurée

par la notion de clé de relation. L’identifiant c’est un ou une liste d’attributs

appartenant au schéma de la relation et dont les valeurs permettent de distinguer les n-uplets.

Une clé minimale, c'est-à-dire comportant un minimum d’attributs, est choisie comme identifiant et est appelé clé primaire, les autres étant appelés clés candidates.

61M. Moussi

Page 62: Cours des bases de données

Principaux concepts du modèle relationnel

Toute relation possède une clé primaire. L’unicité des tuples est une propriété de

l’ensemble dans le sens mathématique. L’attribut(s) présentant la clé primaire n’admet pas

de valeurs nulles. Dans le schéma d’une relation, on souligne la clé

primaire.

Exemple :

Le schéma de relation Etudiant est donnée comme suit :

Etudiant (Numéro étudiant , nom , Prénom , Adresse,age)

62M. Moussi

Page 63: Cours des bases de données

Principaux concepts du modèle relationnel

L’identifiant externe :  La clé étrangère est un attribut d’une relation et clé

primaire dans une autre relation référencée. Permet de vérifier automatiquement la présence

des données référencées dans des tables différentes.

Définit dans des tables enfant et assure qu’un enregistrement parent a été créé avant un enregistrement enfant et que l’enregistrement enfant sera supprimé avant l’enregistrement parent.

63M. Moussi

Page 64: Cours des bases de données

Principaux concepts du modèle relationnel

Exemple :Module(table parent)

NumModule intitulé volume horaire semestre

12 BD 70 S5

13 Arch 60 S5

14 Rés 70 S6

Inscription(table enfant)

numEtudiant numModule date inscription

1 12 09/11/10

2 14 08/01/11

4 12 09/11/11

1 14 08/01/11

clé étrangère

Référence une clé primaire

64M. Moussi

Page 65: Cours des bases de données

Principaux concepts du modèle relationnel

Schéma et base de données relationnels : Le schéma relationnel est constitué par l’ensemble

des schémas des relations avec les clés primaires, les clés étrangères (pour chaque relation) et éventuellement d’autres contraintes d’intégrité.

Une BD relationnelle est une collection des différentes relations du schéma relationnel, variables dans le temps. Chaque relation est vue comme un tableau dont les colonnes désignent les attributs et les lignes désignent les n-uplets.

65M. Moussi

Page 66: Cours des bases de données

Principaux concepts du modèle relationnel

Exemples de schéma :   Relation : Etudiant Attributs : Numéro étudiant : entier non nul

Nom étudiant : Dnom non nul Age : Dage

Identifiant : Numéro étudiant 

Relation : ModuleAttributs : Numéro module : entier non nul

Intitulé module : Dnom non nul Volume horaire : entier non nul

Semestre : enier non nul

Identifiant : Numéro module

66M. Moussi

Page 67: Cours des bases de données

Principaux concepts du modèle relationnel

  Relation : Inscription Attributs : Numéro étudiant : entier non nul

Numéro module : entier non nul Date inscription : Ddate.

Identifiants : Numéro étudiant+ Numéro module + Date inscription.   Identifiants externes :  Numéro étudiant

référence un étudiant. Numéro module

référence un module.  

67M. Moussi

Page 68: Cours des bases de données

Principaux concepts du modèle relationnel

  Relation : Enseignant

Attributs : Numéro enseignent : entier non nul

Nom enseignant : Dnom non nul Statut : Dnom non nul Tel : entier

Compte : entier non nul

Identifiants : Numéro enseignent Relation : Cours

Attributs : Nom cours : Dnom non nul Numéro enseignant : entier non nul Salle : entier non nul  Identifiant : Nom cours  Identifiants externes : Numéro enseignant référence un

enseignant.

68M. Moussi

Page 69: Cours des bases de données

Contraintes d’intégrité 

Un schéma de BD décrit les données ainsi que les contraintes que celles–ci doivent vérifier pour être considérées comme des données de qualité. Ces contraintes dites d’intégrité sont généralement des assertions qui doivent être vraies en des instants déterminés ou durant la vie de la base.

A chaque insertion, modification ou suppression les contraintes d’intégrité sont vérifiées automatiquement.

69M. Moussi

Page 70: Cours des bases de données

Contraintes d’intégrité 

Types de contraintes d’intégrité : Contraintes d’intégrité local : portent sur un

ensemble de tuples ou sur des attributs au sein d’une relation :

  Concerne un domaine (entier, réel, intervalle, liste de valeur…).

Impose q’un attribut ne puisse pas être sans valeur, c'est-à-dire non nul.

Spécifie une valeur par défaut pour un attribut.

70M. Moussi

Page 71: Cours des bases de données

Contraintes d’intégrité 

Spécifie un ensemble d’attribut constituant la clé primaire, sa valeur doit être unique et non nulle, c’est ce qu’on appelle l’intégrité d’entité.

Impose l’unicité de valeur d’un ensemble d’attributs constituant une clé autre que la clé primaire.

Les contraintes inter-relations : dites aussi contraintes de référence, elles impliquent plus qu’une relation :

71M. Moussi

Page 72: Cours des bases de données

Contraintes d’intégrité 

Permet de spécifier qu’un attribut ou ensemble d’attributs d’une relation ( apparaît comme clé étrangère) référence la clé primaire d’une autre relation.

Signifie qu’un tuple qui fait référence à un tuple d’une autre relation, doit faire référence à un tuple existant dans cette relation, c’est l’intégrité référentielle.

Exemple (voir le paragraphe précédent)

72M. Moussi

Page 73: Cours des bases de données

Contraintes d’intégrité 

Contraintes dynamiques : permettent d’exprimer le fait que les valeurs des données d’un état de la base dépendent de l’état ou d’un des états précédents.

Exemples : Le salaire d’un employé ne peut pas diminuer. Le nouvel age d’une personne doit être supérieur

à l’ancien. Le passage d’une valeur de l’attribut situation

matrimoniale d’une personne à une autre valeur ne doit pas permettre de retour à la valeur célibataire si celle-ci a été modifiée.

73M. Moussi

Page 74: Cours des bases de données

Contraintes d’intégrité 

Les contraintes temporelles : par exemple, Toutes les commandes de la semaine courante doivent avoir été facturées avant le premier jour ouvrable de la semaine suivante.

74M. Moussi

Page 75: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Projection : Signature : Relation liste d’attributs

Relation La projection d’une relation R(X,Y) sur Y( où X

désigne la liste des attributs de R ), notée Y(R) ou ProjY(R) est une relation S(Y),

S(Y) = { y | x tel que x, y R(X,Y) }.

La relation est constituée par les colonnes Y de la relation R.

75M. Moussi

Page 76: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple : La relation Genre_livre est le résultat de l’expression Genre(livre).

Relation livre Relation Genre_livre NumLivre Genre

L3 Poésie

L1 Poésie

L2 Roman

L4 Roman

Genre

Poésie

Roman

76M. Moussi

Page 77: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Sélection : Signature : Relation expression logique Relation La sélection permet de rechercher dans une relation

les n-uplets qui satisfont une propriété donnée sous la forme d’une expression logique. Elle est notée E R

ou Select(R, E), où E est l’expression de sélection. Le résultat est une relation de même schéma que la relation R et dont chaque n-uplet vérifie l’expression E, c'est-à-dire :

E R(X)= { x tel que x R(X) et E(X) }.

77M. Moussi

Page 78: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple : soit la relation Livre de l’exemple précédent,

– la sélection : (Genre=’poésie’) (Livre ) est la relation

appelée LivrePoésie: Relation LivrePoésie

– la sélection (Genre=’Roman’ et NumLivre L2 ) (Livre ) est la

relation appelée Roman.

Relation Roman.

NumLivre Genre

L3 Poésie

L1 Poésie

NumLivre Genre

L4 Roman

78M. Moussi

Page 79: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Produit cartésien : Signature : Relation Relation Relation. Soit R(X) et S(Y) deux relations où X et Y sont des

ensembles disjoints d’attributs.

Le produit cartésien de R(X) par S(Y) , noté R S, est constitué par l’ensemble des n-uplets obtenus en concaténant chaque n-uplet de R avec chaque

n-ulpet de S, c'est-à-dire :

R S = { z tel que x R, y S, z T tq X(z)= x et Y(z )=y }.

79M. Moussi

Page 80: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple : soit les deux relations suivantes :

Relation R Relation S

Le résultat du produit cartésien de R par S est la relation T donnée par :

Relation T

NumBib

B1

B2

NumLivre Genre

L3 Poésie

L1 Poésie

NumLivre Genre NumBib

L3 Poésie B1

L3 Poésie B2

L1 Poésie B1

L1 Poésie B2

80M. Moussi

Page 81: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

jointure : Signature : Relation Relation-expression Relation La -jointure de deux relations R(X) et S(Y) permet de

constituer une relation sur la base d’une -expression qui doit être vérifiée par des attributs communs, une -expression étant une expression logique construite à l’aide d’expressions de type Xi Yj, est l’un des

opérateurs de comparaison : <, >,, , , =. Cette opération peut se définir comme la composition du

produit cartésien et d’une sélection utilisant la

-expression, soit : (-expression) (R S).

81M. Moussi

Page 82: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple : soient les deux relations suivantes Relation livre Relation auteur

L’équi-jointure( est ‘=‘)sur livre.NumLivre=Auteur.NumLivre est :

Relation auteurlivre

NumLivre Genre

L3 Poésie

L1 Poésie

L2 Histoire

L4 Roman

NomAuteur NumLivre

Ahmed L3

Youssef L1

khaled L4

Mohammed L5

NumLivre Genre NomAuteur NumLivre

L3 Poésie Ahmed L3

L1 Poésie Youssef L1

L4 Roman khaled L4

82M. Moussi

Page 83: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Remarques :– La jointure naturelle de R et S (notée R*S ) est

l’équi-jointure de R et S sur les attributs ayant même nom dans R et S, suivie de la projection qui permet de conserver un seul de ces attributs égaux de même nom.

– La jointure se fait sur deux attributs qui représentent la même information même si ils ont des noms différents.

83M. Moussi

Page 84: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Union : Signature : Relation Relation Relation. L’union de deux relations R(X) et S(X) est une

relation T(X), l’ensemble de ses n-uplets est constitué par l’union des n-uplets de R et ceux de S, c'est-à-dire :

R S := T = {<x> tel que <x> R ou <x> S }.

84M. Moussi

Page 85: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple : soient les deux relations : Relation livre1 Relation livre2

Livre 1 Livre 2

NumLivre Genre

L3 Poésie

L1 Poésie

L2 Histoire

L4 Roman

NumLivre Genre

L3 Poésie

L1 Poésie

L5 Roman

NumLivre Genre

L3 Poésie

L1 Poésie

L2 Histoire

L4 Roman

L5 Roman

85M. Moussi

Page 86: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Intersection : Signature : Relation Relation Relation. L’intersection de deux relations R(X) et S(X) est

une relation T(X) constituée par les n-uplets présents à la fois dans R et dans S :

R S := T = {<x> tel que <x> R et <x> S }.

86M. Moussi

Page 87: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple :L’intersection des deux relations précédentes livre1 et

livre2 est la relation : Livre 1 Livre 2

NumLivre Genre

L3 Poésie

L1 Poésie

87M. Moussi

Page 88: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Différence : Signature : Relation Relation Relation. La différence entre deux relations R(X) et S(X)

est une relation T(X) constituée par les n-uplets présents dans R mais pas dans S :

R \ S := T = { <x> tel que <x> R et <x> S }

88M. Moussi

Page 89: Cours des bases de données

L’algèbre relationnelle ou langage algébrique 

Exemple :La différence des deux relations livre1 et livre2 est la

relation :

Livre 1 \ Livre 2 NumLivre Genre

L2 Histoire

L4 Roman

89M. Moussi

Page 90: Cours des bases de données

Normalisation

Introduction : La constitution de la liste d’attributs du schéma

doit refléter un phénomène du domaine d’application et, d’autre part, ne doit pas occasionner de redondance, avec toutes ses implications.

Les formes normales des relations et les mécanismes pour les construire permettent d’obtenir des relations non redondante.

Ces mécanismes sont fondés sur les notions de clés de relations et de dépendances entre données.

90M. Moussi

Page 91: Cours des bases de données

Normalisation

Exemple de mauvaise relation : Relation Produit

cette relation présente différentes difficultés de mise à jour :

codeProduit libellé PU Qté NumFournisseur Nom Adresse

P1 peinture 55 100 F451 Toto Oujda

P2 Poudre 62,4 200 FH215 Titi Casa

P3 huile 45 400 F214 Tintin oujda

91M. Moussi

Page 92: Cours des bases de données

Normalisation

Anomalie de suppression : si je supprime un produit, je doit supprimer tout le tuple, ce qui entraîne la perte des informations concernant le fournisseur.

Anomalie d’insertion : pour ajouter un nouveau fournisseur, il faut obligatoirement fournir des valeurs pour le code Produit et la quantité.

Anomalie de modification : si on souhaite changer l’adresse d’un fournisseur , il faut parcourir tous les tuples concernés (tous les produits qu’il fournit), si non on aura une incohérence.

92M. Moussi

Page 93: Cours des bases de données

Normalisation

Décomposition en trois relations non redondantes sans occasionner de perte d’information. Relation initiale :Produit (code Produit, libellé, PU, Qté, NumFournisseur,Nom,dresse)

Première décomposition :Relation Produit1(code Produit, libellé, PU)Relation Produit2(code Produit, NumFournisseur, Qté, Nom,Adresse)

Deuxième décomposition :Relation Produit1(code Produit, libellé, PU)Relation Produit21(code Produit, NumFournisseur, Qté)Relation Produit22(NumFournisseur, Nom, Adresse)

93M. Moussi

Page 94: Cours des bases de données

Normalisation Dépendances fonctionnelles (DFs) :

Définition : Soit R(X, Y, Z) un schéma de relation avec Z éventuellement vide. On dit que X détermine Y dans R, ou Y dépend fonctionnellement de X dans R, si pour tout tuple <x, y, z>, <x’,y’,z’> de R, x =x’ y =y’. On note X Y.

Exemple : Dans le schéma : Produit(code Produit, libellé, PU, Qté, NumFournisseur,

Nom, adresse), on a les dépendances fonctionnelles : code Produit libellé, PU ; NumFournisseur Nom, adresse; code Produit, NumFournisseur Qté.

94M. Moussi

Page 95: Cours des bases de données

Normalisation

Propriétés des DFs : Réflexivité : si Y X alors X Y. Augmentation : si X Y alors X Z Y Z. Transitivité : si X Y et Y Z alors X Z. Union : si X Y et X Z alors X Y Z. Pseudo-transitivité : si X Y et Y W Z.

alors X W Z. Décomposition : si X Y et Z Y alors X Z.

95M. Moussi

Page 96: Cours des bases de données

Normalisation

Typologie des DFs : X Y est triviale si Y X. X Y est élémentaire si pour tout X’ X, la DF

X’ Y n’est pas vrai. i.e., Y ne dépend d’une partie de X. Par exemple, codeProduit, libellé PU n’est pas élémentaire.

X Y est canonique si sa partie droite ne comporte qu’un seul attribut et un ensemble F de DFs est canonique si chacune de ses dépendances est canonique.

X Y est directe si elle est élémentaire et si Y ne dépend pas transitivement de X.

96M. Moussi

Page 97: Cours des bases de données

Normalisation

Graphe des DFs : Les DFs peuvent être présentées à l’aide d’un

graphe dont les nœuds sont les attributs impliqués dans les Dfs et les arcs sont les dépendances. Par exemple, T(A, B, C, D, E) avec les DFs : E A , E B,  E C  et C D :

E

A B C

D

97M. Moussi

Page 98: Cours des bases de données

Normalisation

Exemple : Produit (code Produit, libellé, PU, Qté, NumFournisseur, adresse),

on a les DFs :– NumFournisseur adresse ;

– code Produit libellé ;

– code Produit PU ;

– NumFournisseur , code Produit Qté ;

et le graphe DFS :

NumFournisseur code Produit

Adresse Qté PU libellé

98M. Moussi

Page 99: Cours des bases de données

Normalisation

DFs et identifiants : Un attribut ou une liste d’attributs X est une clé

pour la relation R(X,Y,Z) si X Y Z. X est une clé minimale si X Y Z est

élémentaire. Le graphe minimum des DFs permet de trouver

les identifiants de la table. L’identifiant d’une table est l’ensemble minimal

des nœuds du graphe minimum à partir desquels on peut atteindre tous les autres nœuds.

99M. Moussi

Page 100: Cours des bases de données

Normalisation

Fermeture transitive : la fermeture transitive d’un ensemble F de DFs élémentaires est l’ensemble, noté F+, de DFs élémentaires obtenu en ajoutant à F les DFs élémentaires obtenues par transitivité.

Exemple : T(A, B, C, D, E), avec les DFS :

F = { E A, E B, E C,  C D}, F+ = F { E D }.

Deux ensembles de DFs sont dits équivalents s’ils ont la même fermeture transitive.

100M. Moussi

Page 101: Cours des bases de données

Normalisation

Couverture minimale : Ensemble F de DFs élémentaires vérifiant :

– Aucune dépendance dans F n’est redondante, i.e., pour toute DF f de F, F-f n’est pas équivalente à F

– Toute DF élémentaire des attributs est dans F+ En général, n’est pas unique. Est utile pour la décomposition sans perte

d’information. Exemple : l’ensemble des DFs F = { E A, E B, E C,  C D}, admet comme

couvertuture minimale, l‘ensemble : { E A, E B, E C,  C D},

101M. Moussi

Page 102: Cours des bases de données

Normalisation

Normalisation par décomposition : Notion de décomposition :

R(X, Y, Z) est décomposable selon (X, Y) et (X, Z) s’il existe R1 et R2 telles que R1=ProjX,Y(R),

R2= ProjX,Z(R) et R=R1*R2. i.e., R est la jointure

naturelle de R1 et de R2. La décomposition en sous-relations doit vérifier

deux critères fondamentaux :– être sans perte d’information et – préserve les dépendances fonctionnelles.

102M. Moussi

Page 103: Cours des bases de données

Normalisation

Décomposition sans perte d’information : Une décomposition est sans perte d’information

si la jointure naturelle des sous-relations donne exactement tous les tuples de la relation initiale.

Exemple : Relation R

avec les DFs :

A B,C ;

C D ;

D B.

A B C D

a 5 x 2

b 5 y 1

c 5 x 2

103M. Moussi

Page 104: Cours des bases de données

Normalisation

La relation R est décomposée en deux sous-relations R1(A, B) et R2(B, C, D) :

Relation R1 Relation R2

La jointure de R1 et R2 fournit 6 tuples alors que la relation R n’en possédait que 3.

B C D

5 x 2

5 y 1

A B

a 5

b 5

c 5

104M. Moussi

Page 105: Cours des bases de données

Normalisation

Théorème de décomposition : Si R(X, Y, Z) est une relation avec X Y. alors R(X, Y, Z) est décomposable sans perte d’information en R1(X,Y) et R2(X, Z), i.e., R est une jointure des deux relations R1 et R2.

105M. Moussi

Page 106: Cours des bases de données

Normalisation

Décomposition avec préservation des DFs : Décomposition d’une relation R en R1, R2,…Rn,

telle que F+ des DFs de R est la même que celle de l’union des DFs de R1,R2,…Rn.

Exemple : La décomposition de la relation R(A,B,C,D) précédente en R1(A, B, C) et R2(A,D) est sans perte d’information mais avec perte de DFs, D B ne peut pas se retrouver sur la projection des DFs initiales sur la décomposition.

106M. Moussi

Page 107: Cours des bases de données

Normalisation

Formes normales : Première forme normale : une relation est dite

en première forme normale (1FN), si :– chaque valeur de chaque attribut de chaque tuple

est une valeur simple et mono‑valué. Exemple : cours (numEtudiant, listcours ) n’est pas

en 1FN car l’attribut listcours n’est pas simple.

107M. Moussi

Page 108: Cours des bases de données

Normalisation

Deuxième forme normale : Une relation est dite en deuxième forme normale (2FN) si et seulement si :

– elle est en 1FN et– tout attribut n’appartenant pas à une clé ne dépend

pas d’une partie de la clé. Exemple :

Produit2(code Produit,NumFournisseur, Qté, Nom, adresse) n’est pas en 2FN, les attributs nom et adresse ne dépendent que du NumFournisseur.

108M. Moussi

Page 109: Cours des bases de données

Normalisation Troisième forme normale : une relation est en

troisième forme normale (3FN) si– elle est en 2FN et– si tout attribut ne fait pas partie d’une clé ne dépend

pas d’un attribut non clé.

Exemple : Enseignant (Nom, Bureau, Département, Discipline, TélBur)

Avec des règles de gestions qui se traduisent par les DFs suivantes:

– Département Discipline– Département, Bureau TélBur– TélBur Bureau, département,

N’est pas en 3FN.

109M. Moussi

Page 110: Cours des bases de données

Normalisation

Théorème : toute relation a au moins une décomposition en 3FN qui est sans perte d’information et qui préserve les DFs.

110M. Moussi

Page 111: Cours des bases de données

Normalisation

Algorithme de décomposition en 3FN :– Entrée : R(X) avec F est l’ensemble des DF.– Sortie : S = { R1, R2, …,Rn } avec Ri(Xi) en 3NF.

• étape 1 : Rechercher une couverture minimale CM(F) de F.

• étape 2 : Partitionner CM(F) en F1, F2, …, Fn tels que toutes les DFs d'un même groupe aient la même partie gauche.

• étape 3 : Construire les Ri(Xi) avec Xi constituée de l'union des attributs de Fi.

111M. Moussi

Page 112: Cours des bases de données

Normalisation

Exemple1 : soit la relation T(A, B, C, D, E), avec les DFS élémentaires suivantes : E A, E C,

A B et C D.

l‘algorithe précédent donne les trois relations :

T1(E, A, C), T2(A, B) et T3(C, D). Exemple 2 : soit la relation R(A, B, C,D, E), avec les

DFS élémentaires suivantes : A B, A C,

C, D E et B D. l‘algorithe donne les trois relations :

R1(A,B,C), R2(C,D,E) et R3(B,D)

112M. Moussi