Vous êtes sur la page 1sur 59

ENCG Knitra -- Gestion des bases de donnes

BASE DE DONNES
Plan: Chap. 1 - Notion de base de donnes; Chap. 2 - Base de donnes relationnelles; Chap. p 3 - Langage g g SQL

Prof. M. AIT KERROUM

6-oct.-13

Chap. 1 Notion de Bases de donnes


2

1 1. 2. 3. 4. 5. 6.

Plan de la leon: Introduction; Dfinition dune base de donnes et dun SGBD; Diffrents types de bases de donnes; Quelques SGBD existants; Objectifs et avantages des BD et SGBD; Les niveaux ANSI/SPARC. NS /S C

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Introduction
3

Introduction: Deux approches: - Approche Fichiers: donnes en fonction du traitement risque dincohrence; - Approche base de donnes:intgration des donnes dans un seul fichier/indpendance des traitements.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Dfinition dune BD et dun SGBD


4

Une BD: - Ensemble structur de donnes indpendant des traitements effectuer. - Reprsente le monde rel. - Interroge et mise jour par des utilisateurs.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Dfinition dune BD et dun SGBD


5

Un SGBD: - logiciel permettant un utilisateur dinteragir avec une BD. - Interface entre la BD et les programmes dapplications qui communiquent avec la BD.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Diffrents types de BD
6

Il existe quatre grands types de bases de donnes : -Les bases hirarchiques; -Les bases rseaux; -Les bases relationnelles; -Les bases objet.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle hirarchique
7

Appartient la deuxime gnration 1965 70 sappelle aussi, SGBD navigationnelle; Prsente les donnes sous forme dun arbre; Une donne peut rfrencer une autre donne dans une relation pre/fils; Lien entre enregistrements par des pointeurs

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle hirarchique
8

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle hirarchique
9

I Inconvnients i t :
Redondance

de donnes. Manipulation difficile de donnes htrognes.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle rseau
10

Appartient aussi la 2me gnration; Possibilit des liens entre enregistrements dans diffrents sens Avantage: rapidit

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle rseau
11

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle rseau
12

Un avantage par rapport aux SGBD hirarchique : la non redondance de donnes est assure. assure Inconvnients :
La

schma de la BD devient vite complexe quand la base de donnes est importante (combien de pointeurs grs ?). Modle trs rigide pour une exploitation future.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

13

Modle relationnel

3me gnration 1969- les donnes sont reprsentes dans des tables Manipulation suivant les rgles mathmatiques des ensembles

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Modle relationnel
14

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

15

Le modle Objet

Apparition entre 1990 - 1999 Les donnes sont reprsentes en tant quinstances de classes hirarchises

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Diffrents types de BD
16

Aujourdhui, le modle relationnel est le plus utilis il occupe environ 75%

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Quelques SGBD existants


17

Hirarchiques : IMS; Rseaux : IDS2, Socrate-Clio;

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Quelques SGBD existants


18

Bases relationnelles : Pour les petites BD: FileMaker Pro Access FoxPro 4e dimension MySQL MySQ Paradox

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Quelques SGBD existants


19

Bases relationnelles: Les grosses BD Oracle Informix Sybase ProsgreSQL DB2 Ingres (SQLServer)
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Quelques SGBD existants


20

Bases objet :

O2 Gemstone ObjectStore Jasmine

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

10

Objectifs et avantages
21

Les principales fonctions dun SGBD: - Indpendance I d d donnes/programme d / (indpendance (i d d physique); - Indpendance logique; - Intgration des donnes sans redondance; - Partage de donnes; - Intgrit des donnes; - Scurit des donnes et confidentialit.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Indpendance physique
22

Ils ne sont pas apparents:


Les

disques, disques la machine, machine les mthodes d daccs accs, les modes de placement, les mthodes de tri, le codage des donnes.

Le SGBD offre une structure canonique permettant la reprsentation des donnes relles sans se soucier de laspect matriel du systme.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

11

Indpendance logique
23

Chaque groupe de travail doit pouvoir se concentrer sur ce qui lintresse uniquement. Il doit pouvoir arranger les donnes comme il le souhaite, mme si dautres utilisateurs ont une vue diffrente. Ladministrateur doit pouvoir faire voluer le systme dinformation sans remettre en cause lorganisation de chaque groupe de travail.
Exemple: Une base de donnes contient les informations suivantes :

vhicule(num-vhicule, marque, type, couleur) personne(num-CIN, nom, prnom) propritaire(num-CIN, num-vhicule, date-achat). Un groupe de travail ne sintressera s intressera quaux qu aux individus qui possdent une voiture :

individus(num-CIN, nom, prnom, num-vhicule). voiture(num-vhicule, type, marque, date-achat).

Un autre groupe ne sintressera quaux vhicules vendus une certaine date :


ENCG Knitra**Gestion des bases de donnes

6-oct.-13

NonNon -redondance des donnes


24

Le SGBD doit permettre dviter la duplication dinformations q qui i entraine entraine:


la

perte de place mmoire, demande des moyens humains importants pour saisir et maintenir jour plusieurs fois les mmes donnes.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

12

Cohrence des donnes


25

Cette cohrence est obtenue par la vrification des contraintes dintgrit. Une contrainte dintgrit est une contrainte sur les donnes de la base, qui doit toujours tre vrifie pour assurer la cohrence de cette base. Les systmes dinformation sont souvent remplis de telles contraintes ; le SGBD doit permettre une gestion automatique de ces contraintes dintgrit sur les donnes. Par exemple :

un identifiant doit toujours tre saisi ; le salaire doit tre positif ;

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Concurrence daccs aux donnes


26

Le SGBD doit permettre plusieurs personnes (ou applications) daccder simultanment aux donnes tout en conservant lintgrit de la base. Chacun doit avoir limpression quil est seul utiliser les donnes.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

13

Scurit des donnes


27

Les donnes doivent tre p protges g des accs non autoriss ou mal intentionns. Il doit exister des mcanismes permettant dautoriser, contrler et enlever des droits daccs certaines informations nimporte quel usager.

Par exemple, un chef de service pourra connatre les salaires des personnes quil dirige, mais pas de toute lentreprise.

Le systme doit aussi tolrer les pannes : si une panne pendant lexcution dune opration, le SGBD doit tre capable de revenir un tat t t d dans l lequel ll les donnes d sont t cohrentes. h t Il en va de mme en cas dchec dans un programme. Le SGBD doit pouvoir revenir un tat cohrent, ce qui est rendu possible par la gestion des transactions.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Manipulation possible par des non informaticiens


28

Le SGBD doit permettre dobtenir d obtenir les donnes par des langages non procduraux. On doit pouvoir dcrire ce que lon souhaite sans dcrire comment lobtenir.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

14

Accs efficace aux donnes


29

Les accs disque sont lents relativement laccs l accs la mmoire centrale. Il faut donc offrir les meilleurs algorithmes de recherche de donnes lutilisateur. Remarque.
Le

systme de gestion des fichiers y rpond parfois pour des monofichiers, Dans le cas dinter-croisements entre diffrents fichiers, cela devient beaucoup plus complexe.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Administration centralise des donnes


30

Le SGBD doit offrir, aux administrateurs des donnes, des outils de vrification de cohrence des donnes, de restructuration ventuelle de la base, de sauvegarde ou de rplication. Ladministration est centralise et est rserve un trs petit groupe de personnes pour des raisons videntes de scurit. Remarque: Ces points, caractrisant assez bien ce quest une base de donnes, sont rarement runis dans les SGBD actuels. Ils dt ill t l dtaillent les caractristiques t i ti pour obtenir bt i un SGBD parfait. f it

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

15

Les niveaux ANSI/SPARC


31

Architecture datant des annes 60; Dfinit des niveaux d'abstraction de larchitecture des systmes de gestion de bases de donnes

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Niveau interne (ou physique)


32

Dfinit la faon selon laquelle sont stockes les donnes et les mthodes pour y accder:
Les disques, fichiers hachs, arbres contenant la BD La reprsentation physique de valeurs de donnes

Rel, entier, texte, OLE Encodage Encodage


Le SGBD prend en charge ce niveau.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

16

Niveau conceptuel
33

Cest une abstraction aussi fidle que possible, de l'univers de l'entreprise, aprs modlisation et indpendamment de toute rfrence l l'utilisation utilisation et l l'implantation implantation en machine. machine Le modle conceptuel de donnes (MCD) permet le passage d'un concret inaccessible (l'univers rel) un abstrait manipulable : le schma conceptuel. Celui-ci peut donc tre considr comme la description du contenu de la base : c'est le rsultat d'un travail d'analyse et de conception d'un systme d'information automatis.

Ladministrateur de la BD est p probablement la personne p qui q va se charger de dfinir le schma conceptuel de la BD au moyen du LDD (Langage de Dfinition de Donnes )

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Niveau externe
34

comprend les "vues" vues spcifiques dfinies pour la manipulation des donnes. Il prend en compte les contraintes d'accs imposes par la nature des applications considrer (indpendamment des caractristiques techniques) et exprime les besoins en donnes des diffrents utilisateurs, ou applications.

concerne les utilisateurs finaux et les programmeurs dapplications


ENCG Knitra**Gestion des bases de donnes 6-oct.-13

17

Exercice
35

Indiquer

quel est lutilisateur qui doit excuter les fonctions suivantes p pour un systme y de paie p dune grande entreprise :
a) crire

un programme dapplication pour gnrer et imprimer les chques. dans la base de donnes ladresse dun employ qui a dmnag. Crer un nouveau compte dutilisateur pour un employ nouvellement embauch.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

b) Changer

c)

Solution de lexercice
36

a) Un b) Un c)

programmeur dapplication. utilisateur final de la BD.

Ladministrateur de la BD.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

18

Exercice
37

tant

donn le modle de donnes suivant dun jardin, doit-il tre hirarchique, rseau ou relationnel ?

Nom de la plante

Instructions d la de l plantation l t ti Luminosit ncessaire

Conditions Conditions de sol


6-oct.-13

Cot

ENCG Knitra**Gestion des bases de donnes

Solution de lexercice N 2
38

Ce

doit tre un modle hirarchique car il a un aspect arborescent.


Pour

dterminer la quantit de lumire ncessaire, il faut accder dabord au nom de la plante, puis aux conditions. serait difficile daccder aux instructions de plantation uniquement pour les plantes qui doivent tre plantes en plein soleil.

Il

Mais

le modle relationnel est aussi possible. La navigation se fait f par valeur.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

19

39

Chap. 2 Modle Relationnel


Pl Plan
Introduction Concepts

de base Algbre relationnelle Rgle de passage du MCD au MLD

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Motivation dun MLD


40

Un Modle Conceptuel de Donnes nest pas directement implantable car indpendant de tout choix technologique; Traduction ncessaire vers un Modle Logique de Donnes: Suit une approche spcifique de modlisation (hirarchique, objet, relationnelle, ) Utilise un langage formel de spcification de la structure logique des donnes.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

20

Origine du modle relationnel


41

Propos par Codd (Thse de doctorat) en 1970 Application de la thorie des relations la gestion de fichiers informatiques Le modle relationnel fournit un support mathmatique cohrent la manipulation de donnes : lalgbre relationnelle Modle dominant dans les offres commerciales de SGBD Oracle, DB2, Sybase, Ingres, Postgres, MySQL,

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Structures de donnes
42

Organisation des donnes en tables 2D Ch Chaque table bl est identifie id ifi par un nom unique i

Une table 2D = une relation Une colonne dune table = un attribut Une ligne dune table = un tuple Lalgbre relationnelle

Manipulation des donnes par des oprateurs


Cohrence des donnes gre par des rgles et normes(Vrifie surtout au niveau MCD)

Dpendances fonctionnelles Thorie de la normalisation


ENCG Knitra**Gestion des bases de donnes 6-oct.-13

21

Relation & attribut


43

Chaque

colonne dune table (Attribut), appartient un ensemble de valeurs p possibles appel pp son domaine. Le domaine dsigne toutes les valeurs permises qui peuvent apparatre dans la colonne. Si attrib est le nom dune colonne, alors Dom(attrib) dsigne le domaine de cette colonne. Toute valeur qui figure dans une colonne doit appartenir son domaine. domaine Un domaine se dfinit soit :

en extension : couleur_voiture = {bleu, vert, marron, noir, gris, rouge} en comprhension : ge_enfants = {x dans N tel que x <15}
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Relation & attribut


44

Soit lattribut Ai est une variable qui prend ses valeurs dans un domaine Di Soit U = {A1 , A2, ..., , An} Une relation(table) r dfinie sur U est un sous-ensemble du produit cartsien D1 D2 Dn

Soient deux ensembles P et Q, on appelle Produit cartsien de P et Q, l'ensemble not PQ , des couples (x, y) o x P et y Q. Exemple:

Professeurs={ Abbad, Saaidi, Moursi} t di t { Issam, tudiants= I Hamidi} H idi} tudiants Professeurs={ (Issam, Abbad) , (Issam,Saaidi) , (Issam, Moursi) , (Hamidi, Abbad) , (Hamidi, Saaidi) , (Hamidi, Moursi) }

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

22

Relation & attribut


45

Le schma de relation reprsente la structure invariante dune relation. Il est constitu du nom de la relation suivi de la liste des attributs et de leurs domaines associs
PRODUIT (NPRODUIT : entier, NOM : chane, QTE EN STOCK : entier>0)


Les attributs constituant la cl de r sont crits en premier dans le schma de relation et sont gnralement souligns. Une BD relationnelle est un ensemble de relations r1, r2,..., rm Cette reprsentation est purement logique et non physique : dans un SGBDR, les donnes sont logiquement perues sous forme de tables, mais elles ne le sont pas physiquement.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Relation & attribut


46

Le

degr dune table est le nombre de ses attributs. Exemple E l :L La table t bl Produit P d it (code ( d produit, d it libell lib ll du d produit, d it prix unitaire, quantit en stock).

Le degr de la table Produit est gale 4.

Les

domaines sont :

Dom(code produit) : un sous-ensemble des chanes de caractres dsignant le code dun produit. Dom(libell) : lensemble l ensemble des noms de tous les produits. produits Dom(prix unitaire) : un sous-ensemble de lensemble des nombres rels positifs. Dom(quantit en stock) : un sous ensemble de lensemble des nombres entiers positifs.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

23

Tuple & cl
47

u,v r,i ( 1,2,...,n)


Un tuple est une ligne dune relation Soit u un tuple de la relation r, on note u.Ai la valeur de l'attribut Ai du tuple u. Chaque tuple est distinct : une cl de la relation r est un ensemble minimal d'attributs K tels que les valeurs de ces attributs permettent de distinguer tout tuple des autres

siu.Ai = v.Ai

alors

u=v

K ( A1, A2,..., An )

u,cl v r, si u.K = v.K alors u = v La cl retenue est dite primaire La cl dune relation est utilise comme attribut dans une autre relation quand une association doit tre cre
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Tuple & cl
48

Les

lignes ou les tuples dune table sont galement nommes des enregistrements. Les enregistrements dune table ont le mme format et reprsentent des objets ou des relations du monde rel. Le nombre total des enregistrements prsents dans une table est appel la cardinalit de la table. Remarques q :
Le

degr dune table est fixe (ne change pas). La cardinalit dune table est dynamique : elle peut changer au cours du temps (par effet dajout ou de suppression denregistrements de la table).
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

24

Exemple de relations
49

Propritaires

numero
5 13 76 Vhiculs

nom
Madani Azzouz Daoud

prenom
Hossame Mohcine Ali

naissance
04-fvr-80 15-mai-76 29-nov

immatriculation
3452 9835 1234 9878 A B A A 13 72 2 4

BMW Renault Peugeot BMW

marque

13 76 5 76

proprietaire

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Relation: Rsum
50

Format

gnral dune table (reprsentation logique dune relation) : Attributs


Attrib1 Val11 Attrib2 Val12 Val22 ... ValM2 Attrib3 Val13 Val23 ... ValM3 Attrib4 Val14 Val24 ... ValM4 ... ... ... ... AttribN Val1N Val2N ... ValMN

Ligne

Val21 ... ValM1

Colonne
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

25

Rgles pour une relation


51

Une table forme de colonnes et de lignes, a un nom unique. Chaque colonne a un nom unique. unique Lordre des colonnes est sans aucune importance. Toutes les lignes ont le mme format et le mme nombre dentre. Les valeurs de chaque colonne appartiennent au mme domaine. Chaque entre dans chaque ligne doit tre une valeur unique. Lordre des lignes est sans importance du fait quelles sont identifies par leur le r conten contenu et non pas par le leur r position. position Il ny a pas deux lignes identiques dans toutes leurs entres.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls candidates et cl primaire


52

Exemple

dune table Vol :


D Dpart t A i Arrive Rabat Rabat H d H_dpart t 9:55 12:00 6:00 1:13 H H_arriv i 11:30 12:47 7:00 2:19 9:59 9:00

N Numro 1 2 3 4 5 6

Oujda Oujda

Marrakech Agadir Tanger Laayoune Tanger Fs

Casablanca 8:15 Rabat 8:00


6-oct.-13

ENCG Knitra**Gestion des bases de donnes

26

Cls candidates et cl primaire


53

La

notion de cl est un concept fondamental du modle relationnel p parce quelle q fournit le mcanisme de base pour rcuprer des tuples dans une table de la BD. On appelle cl candidate dune relation r sur le schma relationnel R, tout sous-ensemble K = {B1, B2, , Bj} de R (1 j < n) vrifiant les deux conditions suivantes :
Pour

deux tuples distincts t1 et t2 de r, il existe un attribut Bh de K tel que t1.Bh t2.Bh. Aucun sous-ensemble propre K de K ne satisfait la condition prcdente.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls candidates et cl primaire


54

La

premire condition est appele la proprit dunicit de la cl. Elle implique p q quil q ny y a pas p deux tuples p diffrents de r avoir des entres identiques dans tous les attributs de lensemble K. La deuxime condition sappelle la proprit de minimalit de la cl. Elle signifie quaucun lment de K ne peut tre limin sans perdre la proprit dunicit.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

27

Cls candidates et cl primaire


55

Exemple

: des cls candidates de la table Vols peuvent tre : p


{Numro}. {Dpart,

Arrive, H_dpart}.

Remarque

: une relation peut comporter plusieurs cls candidates. Lune delles est dsigne comme cl primaire. Les valeurs de la cl primaire permettent d didentifier identifier de manire univoque un tuple de la relation.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls candidates et cl primaire


56

Ds

quune cl primaire a t choisie, les autres cls candidates si elles existent sont appeles cls candidates, alternatives de la relation. Un SGBD nautorise quune cl primaire par table. La cl primaire peut tre atomique sil comporte un seul attribut ou compos sil contient au moins deux attributs. Exemple : la cl primaire {Numro} est atomique alors que {Dpart, {D t Arrive, A i H_dpart} H d t} est t compose.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

28

Cls candidates et cl primaire


57

Les

attributs de la cl primaire sont souligns pour les distinguer des autres attributs ne faisant pas partie de la cl. Exemple : le schma relationnel de la table se prsente ainsi :
Vol

{Numro, Dpart, Arrive, H_dpart, H_arriv} ou bien : Vol {Numro, Dpart, Arrive, H_dpart, H_arriv}.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls candidates et cl primaire


58

Les L

cls l primaires i i peuvent tre:


naturelles ou artificielles.

Dans

une table contenant des donnes descriptives sur les lments chimiques, par exemple, le poids atomique serait une cl primaire naturelle.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

29

Cls candidates et cl primaire


59

Il

faut noter que la plupart des cls primaires sont inventes (artificielles). Exemples :
Numro

dassurance sociale Numro de permis de conduire Numro de carte de crdit Numro de carte guichet CIN : code d didentit identit nationale CNE : code national dtudiant

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls candidates et cl primaire


60

Les

cls sont des lments trs importants dans la conception dune BD relationnelle, puisquelles forment la base pour reprsenter les relations entre les tables. Les cls sont les lments qui lient les tables entre elles.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

30

La valeur NULL
61

Dans une relation, la valeur NULL reprsente des donnes manquantes, inconnues ou des donnes inapplicables. La valeur NULL correspond une entre non renseigne (non saisie, non introduite, non obligatoire). La rgle prcdente signifie que la saisie des valeurs pour les attributs de la cl primaire est obligatoire. Un attribut nappartenant pas la cl primaire peut avoir la valeur NULL.

Attention : La valeur NULL nest pas gale 0 (zro) et ne reprsente aucune valeur particulire pour lordinateur.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

LES RGLES D'INTGRIT


62

Les rgles observer pour assurer la cohrence des donnes dans une ne base sont: sont
INTGRIT

DE DOMAINE INTGRIT DE RELATION INTGRIT DE RFRENCE

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

31

INTGRIT DE DOMAINE
63

Contrle des valeurs des attributs:


par exemple, l 4.000 4 000 salaire l i 20.000 20 000 liste de couleurs possibles [bleu, rouge, vert, jaune]

Contrle entre valeurs des attributs:


QTE-STOCK

QTE-COMMANDE

Contrle des oprateurs entre attributs

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

INTGRIT DE DOMAINE
64

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

32

Intgrit de la relation
65

Unicit de la cl primaire; A Aucun des d attributs tt ib t de d l la cl l primaire i i ne d doit it t tre NULL (du fait que la cl primaire identifie de manire unique les tuples dune relation).

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls trangres et Contrainte dIntgrit Rfrentielle


66

Le

concept de cl trangre (ou cl extrieure) permet g de au SGBDR de maintenir la cohrence des lignes deux relations ou des lignes de la mme relation. Dfinition : une cl trangre est un attribut appartenant une table qui existe aussi en tant que cl primaire dans une autre table. Une cl trangre dune table rfrence une cl primaire dune autre table.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

33

Cls trangres et CIR


67

Exemple

: Considrons C id les l deux d relations l ti :


Etablissement=

(Code Etablissement, Nom, Directeur) Employ= (Numro Employ, Nom employ, Prnom employ, Code Etablissement).
Lattribut

Code Etablissement dans la table Etablissement est la cl primaire. Cest une cl trangre dans la table Employ.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls trangres et CIR


68

Code Etablissement

Nom Etablissement

Directeur

1 2 3
Numro

3GTelecom PSoft Kanal


Nom Prnom

Ahmed Assou Yassine Adil Said Said


Code Etablissement

E t a b l i s s e m e n t

1000 1001 1002 1003

Baali El Madani Louakil Salhi

Hamadi Mounir Morad Fadoua

2 2 1 3
6-oct.-13

E m p l o y

ENCG Knitra**Gestion des bases de donnes

34

Cls trangres et CIR


69

C'est

ainsi que dans la table Employ la cl trangre Code Employ (faisant rfrence la cl primaire de mme nom dans la table Etablissement) traduit les deux rgles de gestion suivantes :
Un Un

Employ appartient un Etablissement. Etablissement est compose de plusieurs Employs.

Les

cls trangres traduisent donc des liens smantiques i entre plusieurs l i tables bl dune d BD. BD

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls trangres et CIR


70

Chaque

cl trangre est une rfrence la cl p primaire dune autre table. Dans la plupart des cas, il faut sassurer que ces rfrences sont cohrentes (non contradictoires). Les valeurs de cl trangre qui apparaissent dans une table doivent tre les mmes que celles de cl primaire dans la table connexe. Exemples dans le monde rel :
Une

commande doit provenir dun client.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

35

Cls trangres et CIR


71

Un

produit command doit tre quelque chose que nous gardons normalement en stock. g Un cours est assur par un professeur. Un tudiant doit avoir une note finale dans une matire de la filire qui est inscrit ltudiant.
Ces

contraintes sont appeles contraintes dintgrit rfrentielle (CIR). Les contraintes dintgrit g rfrentielle doivent tre supportes par le SGBD dune faon automatique.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls trangres et CIR


72

Un

SGBDR doit appliquer les rgles suivantes afin d dassurer les l CIR :
Ajout

: lors de lajout dune ligne contenant une valeur de cl trangre, le SGBD vrifie que cette valeur existe aussi comme valeur de cl primaire dans la table connexe. Suppression : lors de la suppression dune ligne, le SGBD vrifie quaucune cl trangre dans les tables connexes ne possde la mme valeur que la cl primaire de la ligne supprime.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

36

Cls trangres et CIR


73

Un

SGBDR doit appliquer les rgles suivantes afin dassurer les d l CIR (suite) ( it ) :
Mise

jour (ou modification) : lors de la mise jour dune valeur de cl primaire, le SGBD vrifie quaucune cl trangre dans les tables connexes na la mme valeur.

Dans

le premier cas, le SGBD rejettera simplement lajout dune ligne contenant une valeur cl trangre inconnue.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Cls trangres et CIR


74

Dans

les deux derniers cas, un concepteur de BD conserve habituellement un certain contrle sur la faon dont lapplication rfrentielle est applique. Lorsquune ligne contenant une cl primaire est supprime, le concepteur peut spcifier au SGBD de supprimer toutes les lignes des autres tables ayant des cls correspondantes ou de rgler toutes les cls t trangres correspondantes d t NULL NULL. Un choix similaire est possible lors de la modification dune valeur de cl primaire.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

37

Les relations entre tables


75

Dans

une BD, certaines tables sont en relation les unes avec les l autres. t Dans les BD relationnelles, les relations entre tables sont gnralement tablies par lintermdiaire de cls primaires et trangres. On rpartie les donnes dans des tables que lon relie pour rduire la redondance des donnes. p

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Les relations entre tables


76

Relation

un un : une ligne dune table A est en relation avec une seule ligne dune d une autre table B B. Relation un plusieurs : une ligne dune table A peut tre en relation avec plusieurs lignes dune autre table B.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

38

Les relations entre tables


77

Exemples
Un

de relations entre tables :

recteur dirige une universit :


Relation de type un un.

Un

propritaire possde plusieurs voitures, une voiture appartient un seul propritaire :


Relation de type un plusieurs.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Les relations entre tables


78

IDREC
1 2

NOM
Benjaloun Touimi

PRENOM
Wail Rahma

Table Recteur

IDUNIV 100 200

NOM Mohamed V Hassan II

VILLE Rabat Mohamdia

IDREC 1 2

Table Universit
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

39

Les relations entre tables


79

IDPROP
1 2 3

NOM
Razi Nafia Adili

PRENOM
Mohamed Mostafa Said

P Propritaire it i

MATRICULE 1234 A 1 7588 A 48 25254 D 13 25482 B 6

MODELE Peugeot 205 Renault 19 Fiat Uno Toyota

IDPROP 1 1 2 3
6-oct.-13

Voiture

ENCG Knitra**Gestion des bases de donnes

Exercice
80

Considrons

la table Dpartement et les lignes montres la suite. Expliquez si ces les lignes peuvent tre ou non insres dans cette table.
NOM Ventes Marketing R&D LIEU Rue FAR Rue Fs Bd Oqba Effectif 10 5 15 13 23
6-oct.-13

N dpartement 20 10 10 15

Informatique Anfa Comptabilit Agdal


ENCG Knitra**Gestion des bases de donnes

40

Solution de lexercice
81

10 15

R&D

Bd Oqba

15 13 23

Informatique Anfa Comptabilit Agdal

viole le principe dunicit de la cl primaire (la valeur 10 existe dj dans la table). Non : cette ligne ne peut pas tre insre, car elle viole i l la l contrainte i dintgrit di i de d la l cl l primaire i i (la (l cl primaire ne peut pas tre NULL).

Non : cette ligne ne peut pas tre insre, car elle

Oui : cette ligne peut tre insre sans problme, car


aucune contrainte nest viole.
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Normalisation
82

Lors de la conception dune BD, plusieurs possibilits de modlisation existent; La qualit dun modle dpend de plusieurs facteurs

quantit d'information stocker facilit d'expression des requtes prvention d'erreur de mise jour et d'incohrences

La normalisation dune BD implique le respect de critres de protection t ti de d lintgrit li t it des d d donnes Plusieurs formes normales(6) existent dont

1re, 2me, 3me sont largement suffisantes

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

41

La normalisation : exemple
83

Une entreprise de vente de bateaux qui souhaite constituer un systme d information relatif leur activit

Achats(IdClient, A h t (IdCli t NomClient, N Cli t PrnomClient, P Cli t AdresseClient, Ad Cli t ImmatriculationBateau, I t i l ti B t ModleBateau, LongueurBateau, DateAchat, MontantAchat)

Problmes potentiels

redondance de donnes :

une personne qui achte plusieurs bateaux une personne qui change d dadresse adresse un client potentiel ne peut tre enregistr dans la BD sil na pas encore achet de bateau lorsquun client vend son bateau, il est supprim du systme dinformation
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

incohrence suite une Mise jour :


anomalies lors dinsertion/suppression :


Comment normaliser ?
84

Dcomposition des relations jusqu ce que toutes respectent les 3 Formes Normales suivantes :
Premire
Une

Forme Normale

relation est dite en Premire Forme Normale si tous ses attributs sont atomiques ;
aucun des attributs ne doit tre une relation entre sousattributs pas de d colonnes l dans d une colonne l

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

42

Dpendance Fonctionnelle
85

Dfinition

Deux g groupes p dattributs X et Y de la relation R sont en Dpendance p Fonctionnelle si dans R, chaque valeur de X dtermine une et une seule valeur de Y

si je connais la valeur de X alors je connais la valeur de Y

une DF est une assertion sur toutes les extensions possibles dune relation et pas uniquement sur ses n-uplets actuels

Exemple : ensemble de DF pour une table

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Seconde Forme Normale


86

Condition

P Premire i F Forme N Normale l tous les attributs nappartenant pas la cl sont en dpendance fonctionnelle lmentaire avec la cl

ds quun attribut non-cl dpend dune partie de la cl, la relation nest pas en 2FN.

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

43

Seconde Forme Normale


87

Exemple

Prt_livre ( (numcli, numlivre, nomcli, adrcli, titre_livre, dateprt) p ) DF


numcli nomcli, adrcli num_livre titre_livre numcli, numlivre dateprt nomcli dpend uniquement de numcli et pas de numcli et de numlivre client (numcli, nomcli,adrcli) Livre (numklivre, titre_livre) prt (numcli, numlivre, dateprt)

Prt_livre n est pas en 2 FN car


dcomposition laide des DF


ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Troisime Forme Normale


88

Seconde Forme Normale (2FN) Aucun de ses attributs non-cls non cls dpend dun autre attribut non-cl non cl ;

il n existe pas de DF entre 2 attributs non-cls

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

44

Troisime Forme Normale


89

Exemple

ville(num ville nom_ville, ville(num_ville, nom ville num_dept, num dept nom_dept) nom dept) DF

num_ville nom_ville, num_dept, nom_dept num_dept nom_dept

ville nest pas en 3 FN car


nom_dept dpend de num_dept

dcomposition l laide aide des DF


ville(num_ville, nom_ville, num_dept) dept(num_dept, nom_dept)

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Normalisation: Inconvnients
90

Les inconvnients de la normalisation sont :


des d

temps d'accs d' potentiellement i ll plus l longs l si i les l requtes sont trop complexes (lectures plus lente) une plus grande fragilit des donnes tant donn la non redondance (lecture impossible) un manque de flexibilit au niveau de l'utilisation de l'espace l espace disque

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

45

Passage du MCD au MLD


91

chaque entit devient une table


colonnes l cl cl primaire occurrences n-uplets
attributs ib

Exemple
lves

num lve nom prnom pays

eleves (numeleve, nom, prenom, pays)

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

conversion des associations binaires (1)


92

Association ...,1 ...,N


exemple
recopie

de la cl de coles en tant que colonne de lves (cl trangre) migration des attributs de lassociation en tant que colonne de lves
lves

num lve 1,1 nom prnom pays

avoir pour cole

date embarquement date dbarquement

1,n

coles

num cole nom adresse ville

ecole(num_ecole, nom, adresse, ville) eleve( num_eleves, nom, prnom, pays,num_cole, date_embarquement, date dbarquement)
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

46

conversion des associations binaires (2)


93

Association ...,N ...,N


cration dune d une nouvelle table avec comme colonnes, colonnes les cls de Vhicule et de Propritaire cration de colonnes pour les attributs de lassociation 0,N
Possder

0,N
Vhicule

Propritaire

date dbut date fin

tables relationnelles correspondantes Propritaire(CIN), Vhicule(Immatricule), Possder(CIN, Immatricule, date_debut, date_fin, cause_fin), Cl de Possder???
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

conversion des associations binaires (3)


94

Cls primaires de tables relationnelles reprsentant des associations Association ...,N ...,N Remarques :

Il faut une cl primaire unique Les attributs cls primaires des entits associes font partie de la cl Pas toujours suffisant Exemple Si impossible de racheter le mme vhicule

Possder (CIN, Immatriculation, date_debut, date_fin) Possder (CIN, Immatricule, date_debut, date_fin)

Si possible de racheter le mme vhicule


ENCG Knitra**Gestion des bases de donnes

6-oct.-13

47

Exemple
95

Association ...,1 ...,1


homme

0,1

a pour poux

0,1 femme

tables relationnelles correspondantes homme ( numhomme numfemme), femme (numfemme) ou homme ( numhomme), femme (numfemme numhomme)

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Exemple
96

Fournisseur fno Est pass nom 1,N adresse ville

Produits pno Commandes Concerne design 1,1 cno 1,1 qute 1,N prix poids couleur

Les tables relationnelles correspondantes :


Produits(pno,design,prix,poids,couleur) Fournisseurs(fno,nom,adresse,ville) Commandes(cno, qute fno,pno)

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

48

conversion des associations N-aires (N >2)


97

professeur

1,N

enseigne 1,N
matire

1,N classe

cration dune nouvelle table avec comme colonnes, les cls


Professeur

(numprof) Classe (numcla) Matiere (nummat) Enseigne (numprof, numcla, nummat)


ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Conversion des associations rflexives


98

humain

0,N parents enfants

a pour enfants

0,N

Humain(num, nom, prnom) A_pour_enfants(num_parent,num_enfant)

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

49

Conversion des associations rflexives


99

humain

0,1 pre enfants

a pour pre

0,N

Humain(num, nom, prnom, num_pre) num pre)

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Algbre relationnelle
100

Motivation : Formuler des requtes pour interroger des donnes Dfinition:


Collection doprations formelles qui agissent sur des relations et produisent une relation en rsultat. Dans la plupart des systmes relationnels, la rponse une requte sobtient par lutilisation dun ou plusieurs oprateurs relationnels.

Deux types doprateurs:


Oprateurs unaires :

Slection, Projection, Complment

Oprateurs

binaires :
6-oct.-13

Union, Intersection, Diffrence, Produits, Jointures,


ENCG Knitra**Gestion des bases de donnes

50

Oprateurs relationnels unaires


101

Projection

Seule une partie des attributs est considre


Slection

Seule une partie des tuples est considre


Complment

(not R)

Tous les tuples possibles nexistant pas dans une relation sont construits

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Projection
102

La projection dune relation R sur un ensemble d ib (A1,, Ak) se note : (R ) dattributs


( A1,..., Ak )

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

51

Slection
103

La slection sur une relation R selon une condition C se note: C ( R )

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Slection
104

Oprateurs de comparaison
=,

, <, < >, > LIKE(comme)

, BETWEEN (entre), ( ) IN (d (dans), )

Combinaison de plusieurs conditions relies par des oprateurs logiques :


and,

or, not

Valeurs NULL

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

52

Oprateurs relationnels binaires


105

Union
La fusion de deux relations est considre

Diff Diffrence
Les tuples dune relation qui nexistent pas dans une seconde relation sont considrs

Produit cartsien
Toutes les combinaisons entre tuples de 2 relations sont considres

Intersection (note R I R ' )

Seuls les tuples prsents dans 2 relations sont considrs Produit cartsien suivi dune slection (Appel galement jointure)

Thta-produit p (not R C R ' ) (

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Union
106

Lunion de deux relations R et R se note : R U R'

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

53

Diffrence
107

La diffrence de deux relations R et R se note : R R'

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Produit cartsien
108

Le produit cartsien de deux relations R et R se note :

R R'

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

54

jointures
109

Jointure naturelle
Thta-produit dont la condition est une galit de valeurs entre des attributs de deux relations

Jointure extrieure
Jointure naturelle laquelle on ajoute les tuples de chaque relation nayant pas trouv de correspondance dans lautre

La jointure naturelle est l loprateur oprateur le plus utilis avec les slections et projections, car le plus intressant

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Jointure naturelle
110

La jointure naturelle de deux relations R et R selon une condition C se note :

R >< C R'

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

55

Combinaison doprateurs
111

La puissance de l'algbre relationnelle s'exprime dans la combinaison d doprateurs oprateurs permettant d'exprimer des requtes prcises.
Ex: on chercher limmatriculation des vhicules possds par la personne dont le nom est Allami

( {
immatriculation

proprietaire = numero

} (vehicule { nom=" Allami "} ( proprietaire)))

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Exercice Algbre relationnelle


112

Nom_imb Annakhil Firdaous

Adresse 22 Rue Azrou, Rabat 15 bd des Far, Fs

Nb tage 10 5

Ann e 2009 2000

Nomgrant Alami Dahbi

Nom Alami Atif Barhou m Dahbi

Ag e 54 39 58 65

Profession Architecte Mdecin Avocat Retrait

Table Immeuble Nom_imb Annakhil Annakhil Annakhil Firdaous Firdaous Firdaous No_app 1 2 10 5 10 11 Superficie 150 100 90 120 100 80 Etag e 10 1 9 2 5 3

Table Personne Nom_imb Annakhil Annakhil Firdaous Firdaous No_app 1 2 5 10 Nom_occ Alami Dahbi Atif Barhoum Anne_h 2009 2009 2001 2005

Table Appartement ENCG Knitra**Gestion des bases de donnes

Table Occupant 6-oct.-13

56

Exercice
113


Soit la base de donnes simplifie. Exprimer la signification et le rsultat rs ltat des req requtes tes s suivantes: i antes 1- ( Personne )
( nom
, Age

2- nom_imb(Immeuble); 3- nom_imb, No_app(superficie>100(Appartement)); 4- nom-occ(Nom_imb= Firdaous ET Anne_h>2001)(Occupant); 5- nom_imb, 5 (Appartement)); ppa e e )); nom imb No No_app app(No_app=Etage No app=Etage ( 6-nomgrant, Superficie (Immeuble ><Nom_ imb= Nom_ imb Appartemen ) 7-nom_occ, Anne_h, Superficie (Appartement ><

Nom_ imb= Nom_ imbNo_ app= No_ app

Occupant )

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

Exercice
Ecrire en algbre relationnelle les requtes:
114

1. Nom des immeubles ayant strictement plus de 8 tages. 2. Nom des personnes ayant emmnag avant 1994. 3. Nom des habitants dAnnakhil. 4. Nom des Architectes de plus de 25 ans. 5. Nom des immeubles ayant un appartement de plus de 150 m2. 6. Qui gre lappartement o habite Atif? 7. Dans quel immeuble habite un retrait? 8. Qui habite un appartement de moins de 70 m2? 9. Nom des personnes qui habitent au dernier tage de leur immeuble. 10. Profession du grant du Firdaous? 11. Age et profession des occupants de limmeuble gr par Alami? 12. Qui habite, dans un immeuble de plus de 10 tages et un appartement de plus de 100 m2?
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

57

Exercice: Correction
115

Ecrire en algbre relationnelle les requtes:


1. Nom des immeubles ayant strictement plus de 10 tages. nom_imb(Nb_etage>10(Immeuble)); 2. Nom des personnes ayant emmnag avant 1994. nom_occ(Anne_h<1994(Occupant)); 3. Qui habite Annakhil? nom_occ(Nom_imb=Annakhil (Occupant)); 4. Nom des Architectes de plus de 25 ans. nom(Profession=Architecte ^Age>25(Personne)); 5. Nom des immeubles ayant un appartement de plus de 150 m2. nom_imb(superficie>150(Appartement)); 6. Qui gre lappartement o habite Atif? nomgrant(Nom_occ= Atif (Im meuble ><Nom_ imb=Nom_ imbOccupant ))
ENCG Knitra**Gestion des bases de donnes 6-oct.-13

Exercice: Correction
116

7. Dans quel immeuble habite un retrait? nom_imb(Profession= Retrait ( nom_occ(Sperficie<70(

(Personne P >< > <Nom=Nom_ occOccupant O )) t


Nom _ imb = Nom _ imb ^ No _ app = No _ app

8. Qui habite un appartement de moins de 70 m2?


( Appartement >< Occupant ))

9. Nom des personnes qui habitent au dernier tage de leur immeuble. nom_occ(Nb_etage=No_etage(
(Appartement ><Nom_ imb= Nom_ imb (Immeuble ><Nom_ imb= Nom_ imbOccupant ))))

10. Profession du grant du Firdaous? Profession(Nom_imb= Firdaous ( (Personne ><Nom=Nomgrant Immeuble )) )) 11. Age et profession des occupants de limmeuble gr par Alami? Age, Profession(Nom_grant= Alami (
(Personne ><Nom= Nom_ occ (Immeuble ><Nom_ imb= Nom_ imbOccupant ))))

12. Qui habite, dans un immeuble de plus de 10 tages avec un appartement de plus de 100 m2? Age, Profession(Nb_etage>10 Et Superficie>100( (Occupant >< meuble >< Apparteme ))) Nom _imb =Nom _imb(Im Nom _imb =Nom _imb
ENCG Knitra**Gestion des bases de donnes 6-oct.-13


58

Exercice MCD MLD


117

lve

Groupe Pdagogique

no_etudiant nom prenom 1:1 appartient 0:N


Promotion

Num_g groupe p Nom 1:N 1:N suit Note 1:N


Unit Pdagogique

1:1 dirige

donne accs

0:N
Enseignant

Nom

Numro Nom

1:1 1:1

Num N Nom Prenom 0:N enseigne

ENCG Knitra**Gestion des bases de donnes

6-oct.-13

59

Vous aimerez peut-être aussi