72
1 C1 - Base de Données F. KOHLER

1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

Embed Size (px)

Citation preview

Page 1: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

1

C1 - Base de Données

F. KOHLER

Page 2: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

2

Le Modèle relationnel

• Basé sur le concept de relation• Formulé par EF Codd 1970• Chaque phénomène peut être décrit par une relation. Un

phénomène d'un type déterminé est un n-uplet (collection des valeurs qui permet de représenter un fait) de la relation.

• Vue utilisateur : une relation est un tableau. Un n-uplet est une ligne du tableau. Une base de données est un ensemble de tableau

• Les tableaux sont manipulables par des langages non procéduraux

Page 3: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

3

Généralités

• Base de données :– Références aux données elles mêmes

– -Système de gestion de base de données : SGBD• Matériel

– Serveur central unique / serveurs répartis

– Clients

• Logiciel– De développement

– Client

Page 4: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

4

Modèles de données

• Un modèle de données est un moyen d’expliquer la disposition logique des données et les relations entre les différentes parties de chaque éléments de l’ensemble.

• Représentation d’une entité : un tableau– Chaque colonne correspond à un champs (rubrique)

– Chaque ligne correspond à un individu

Nom Sexe Qualité D. Nais

SIM M Mr 10/02/01

Page 5: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

5

Architecture à 3 niveaux

• Interne – Stockage physique des données sur le matériel

• Niveau conceptuel– Définition logique de la base de données : représentation pour la communauté

concernée.– Le DDL (data definition language) permet de décrire les tables et de décrire les

champs de chaque table. Certains y ajoutent les droit d’accès ou de manipulation.– Le DML (data manipulation language) permet de manipuler les données

(remplissage de la base …)

• Le niveau externe – Concerne les utilisateurs en leur donnant des vues différentes (liste, fiche de

saisie…)

• Indépendance des données– Le système doit préserver l’indépendance des données à la fois physiquement

(augmentation de la taille des disques par exemple) et logiquement

Page 6: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

6

Modèle entité association

• Les données se rapportant à un même concept sont rassemblées dans une entité.

• Les entités sont reliées entre elles par des associations

• Exemple :– Dans une application de gestion de dossiers patients

on a les entités :• Patient• Médecin• Consultation

Patients

ConsultationReçoit

0n

1

A Médecins1m

k0

Donne

Page 7: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

7

Bases de données relationnelles

• SGBDR– Modèle le plus répandu– Repose dur l’algèbre relationnel

• SGBD Objet

• …

Page 8: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

8

Relation et schéma de relation

• Domaine : – Ensemble de valeurs que peut prendre une

variable– Exemple

• D1 ensemble des valeurs possible pour le sexe {M,F}

• D2 ensemble des tailles en cm possibles :– Ensemble continu de[30,230]

– Contrainte d’intégrité >30 et < 230

Page 9: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

9

Définition d'une relation

• Soit des ensembles D1, D2, ..., Dn– On définit une relation R sur les ensembles D1,

D2, ..., Dn comme une partie du produit cartésien des ensembles D1, D2, ..., Dn

– R (D1, D2, ..., Dn) D1 X D2 X ... X Dn– R est donc un ensemble de n-uplet (tulpe)

<d1,d2,...,dn> tels que d1 D1, d2 D2, dn Dn

Page 10: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

10

Relation et schéma de relation

• Nuplet (tulpe) – Est un élément d’une relation, noté (d1,d2,…dn)

– C’est une ligne

– Exemple• Relation Personne (nom, sexe, taille)

• ‘Dupond’, ‘M’, 185 est un N-uplet de la relation Personne

• Attribut– Est un identificateur de domaine

– Surnom donné à une colonne

Page 11: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

11

Définitions complémentaires• Degré de la relation

– C'est le nombre de constituants (Nbre de rubrique, Nbre de colonnes...)

• Cardinal de la relation– C'est le nombre de n-uplet de la relation (Nbre de fiches, Nbre

de lignes du tableau)

Page 12: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

12

Notion d'identifiant et de clef

• C'est un constituant ou un ensemble de constituant minimal qui détermine de façon univoque un n-uplet de la relation.

• Une relation peut comporter plusieurs identifiants.

• Une clef est un identifiant choisi notamment dans le cadre de son implication dans les associations (liens)

Page 13: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

13

Exemple de clé d’une relation

• Relation Médicament (N°AMM, DCI, Forme galénique)

• N°AMM est une clé : deux lignes du tableau ne peuvent pas avoir le même numéro d’AMM

• Médicament(N°AMM, DCI, Forme galénique)

Page 14: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

14

Contraintes d’intégrité

• Est une assertion qui doit être vrai durant toute la vie de la base de donnée

• Une base de donnée est dite cohérente si toutes les contraintes d’intégrité sont vérifiées

• Type de contrainte d’intégrité– CI su un attribut, exple : contrainte de domaine– CI intrarelation, exple : prixTTC = (qte*prixunitaire*(1+tva))– CI interrelation, exple CI référentielle

Page 15: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

15

Schéma de relation• Définit une classe de relation par :

– n domaines D1, ... , Dn– n attributs A1, ... , An– Un nom de schéma de relation– Des contraintes d'intégrité

• Exemple : Fichier des voitures– Voiture(Imat,Marque,Type,Puis,Couleur)– Domaine(Imat) = Chaine de 8 caractères– Domaine(Marque) = [Renault, Ford, ...] : liste énumérée– Contrainte d'intégrité

• Absolue (0 < Puiss < 1200)• Relative ( Si Renault 3 < Puis < 16

– Le schéma relationnel d'une base de données est l'ensemble des schémas de relation

Page 16: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

16

Attention• Qu'est-ce qu'un attribut élémentaire

– Date de Naiss -> Jour N, Mois N, An N– Adresse (Nom, Adresse)– Adresse ( Nom, N° rue, CP, Ville)– Adresse (Nom, N°, Bis_ter, Type voie, Nom

Voie, CP, Cedex, Canton, Arrondissement, Ville, Pays)

• Conséquence => Possibilité des traitements• Le choix est fait en fonction des traitements qui

sont envisagés ou de la disponibilité assurée des constituants : – exemple date de Naissance : si on choisit un type « date » que fait-

on pour les patient dont le jour ou le mois de naissance sont inconnus ?

Page 17: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

17

Attention• Une information - Plusieurs représentations

– N° Téléphone 83 59 26 27• Chaîne de caractères• Un réel• Deux entiers• Un entier long• Date (Impossible)• Image

• Choix du type en fonction :– Des contraintes d'intégrité– Des possibilité de calcul– De l'efficacité des recherches– De la place disque

Page 18: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

18

Représentation interne• Schéma de relation

– Un fichier ou une table

• Attributs ou constituants– Les rubriques

• Domaines– Type de chaque rubrique

• Contrainte d'intégrité– Filtre de saisie– Procédure de validation

Page 19: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

19

Notion de tri

• Soit la table

• Tri selon un ou plusieurs attribut• Tri ascendant/descendant• Tri alphabétique / tri numérique• Résultat : table trié soit en remplacement soit

création d’une autre table

Nom Sexe AgeDupond 1 20Durand 2 30Albert 1 18Dupont 1 45Noémie 2 50Marcel 2 80

Nom Sexe AgeDupond 1 20Albert 1 18Dupont 1 45Durand 2 30Noémie 2 50Marcel 2 80

Tri sur le sexe

Page 20: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

20

Notion d'index

• Soit la table

• Possibilité d’index multiples sur une table• A la création de la table on précise les index

N° enr Nom Sexe Age1 Dupond 1 202 Durand 2 303 Albert 1 184 Dupont 1 455 Noémie 2 506 Marcel 2 80

Index sur le Nom

N° enr Nom3 Albert1 Dupond4 Dupont2 Durand6 Marcel5 Noémie

Page 21: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

21

Recherche

• Recherche séquentielle

• Recherche sur index

• Notion d'unicité : si un attribut est une clé, le tri sur cette clé permet de vérifier qu’une valeur de cet attribut n’existe qu’une seul fois

Page 22: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

22

Structure du langage MySQL

• Nombres– Entier 156– Décimal 250.25– Entier négatif - 258– Décimal négatif -11.5– Notation scientifique 1.77E+12

1770000000000

Page 23: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

23

Structure du langage MySQL

Chaînes de caractères« c »

« Paris »

« Il fait beau »

« D\’une apostrophe »

« \ » » et expressions régulières

Page 24: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

24

Structure du langage MySQL

Date et heure

Valeurs hexadécimales

Valeur NULL

Page 25: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

25

Structure du langage MySQL

Type de colonnesType numérique

TINYINT : 1 octet => -128 à +127 si UNSIGNED 0 à 255

SMALLINT : 2 octets => -32768 à + 32767 si UNSIGNED 0 à 65535

MEDIUMINT : 3 octets

INT : 4 octets

BIGINT : 8 octets

FLOAT : 4 octets

DOUBLE : 8 octets

DECIMAL cf DOUBLE

Page 26: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

26

Structure du langage MySQLType de colonnes

Chaînes de caractèresCHAR (M) [BINARY] : contient une chaîne de M (1 à 255) caractères (longueur fixe).

Insensible à la cassse sauf si BINARY est préciséVARCHAR (M) [BINARY] : contient une chaîne de longueur variable plus courte que M

(1 à 255). Insensible à la casse sauf si BINARYTINYBLOB : de 1 à 255 octets, sensible à la casseBLOB : de 1 à 65 535 octets, sensible à la casseMEDIUMBLOB : de 1 à 16 777 215 octets, sensible à la casseLONGBLOB : de 1 à 4 294 967 295 octets, sensible à la casseTINYTEXT : de 1 à 255 octets, insensible à la casseTEXT : de 1 à 65 535 octets, insensible à la casseMEDIUMTEXT : de 1 à 16 777 215 octets, insensible à la casse

LONGTEXT : de 1 à 4 294 967 295 octets, insensible à la casseENUM (« valeur 1», »valeur2 »….) : 1 à 65 535 valeurs, insensible à la casseSET(« valeur1 », »valeur2 »,….) : de 1 à 64 valeurs, insensible à la casse

Page 27: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

27

Structure du langage MySQL

Type de colonnesDate et heure

DATE: entre le 1er janvier 1000 et le 31 décembre 9999 (‘9999-12-31’)

DATETIME : date et heure ‘1000-01-01 00:00:00’ à ‘9999-12-31 23:59:59’

TIME : HH:MM:SS de –858:59:59 à 838:59:59

TIMESTAMP : timestamp unix en seconde depuis le 1er janvier 1970 0 heure à 2037

YEAR : Année entre 1901 et 2155

Page 28: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

28

Règles d'intégrité• Unicité de clé

– Dans la relation, l'attribut clé est souligné, il identifie de manière unique dans la table le n-uplet.

• Contrainte de référence– Si un même attribut apparaît dans une relation comme clé et

dans une autre comme non-clé, toute valeur de l'attribut non-clé doit exister dans l'attribut clé.

• Malade (NuMal, Nom, Prénom, D_Naiss)

• Consult(NuMal*, NuCons, Date)

• Contrainte d'entité– Les valeurs de tout attribut participant à une clé primaire

doivent être "non nulles" (valeur nulle = @)

Page 29: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

29

Vues relationnelles• Ce sont des tables virtuelles créées à partir de

tables réelles permettant d'avoir une vision particulière de la base de donnée. Elles sont entièrement gérées par le système.

• Malade(NuMal, Nom, Prénom, D_Naiss)• Consult(NuMal*, NuCons*, Date)• TTT (NuCons, NuTTT, Nom_Prod)• Créer vue Mal_Cons

– NuMal, Nom,Nom_Prod– Clés utilisées

• NuMal, NuCons

Page 30: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

30

Algèbre relationnel• Opérations de base

– Union– Différence– Produit cartésien– Projection– sélection– jointure

• Opérations déduites– Intersection– Division– Jointure naturelle– Jointure externe– Semi-jointure– Complément

Page 31: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

31

Union

• Soit 2 relations r(R) et s(S) avec des schémas compatibles l’union de ces 2 relations est l’ensemble de tous les tulpes qui sont actuellement présents dans r ou dans s.

• Il n’y a pas de tulpes doublon. Le schéma de la relation résultant de l’union est celui de la relation r.

• L’union est commutative.

Page 32: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

32

Intersection

• Soit 2 relations r(R) et s(S) avec des schémas compatibles l’intersection de ces 2 relations est l’ensemble de tous les tulpes qui sont actuellement présents dans r et dans s.

• L’intersection est commutative

Page 33: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

33

1 Dupont2 Albert3 Durant

Malades2 NuMal, Nom1 Dupont4 Albert3 Tartempion

Malade = Différence (Malades1, Malades2)

2 Albert3 Durant

DifférencesMalades1 NuMal, Nom Soit 2 relations r(R) et s(S) avec

des schémas compatibles la différence de ces 2 relations est l’ensemble de tous les tulpes qui sont actuellement présents dans r et ne se trouvent pas dans s.

La différence n’est pas commutative

Page 34: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

34

Projection

• Produit une relation réduite aux attributs mentionnés en opérandes (sélection de colonnes de la table, les lignes ayant même valeurs sont dédoublonnées)

• Malade (Nu, Nom)– 1 Dupon– 2 Dupon– 3 Albert

• R2 = Projection(Malade,Nom)– Dupon– Albert

Page 35: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

35

Produit cartésien• R1 (Num, Nom)

– 1 A– 2 B– 3 C

• R2 (Dte, Commande)– 10 L– 11 M

• R3 = R1 * R2– Num, Nom, Dte, Commande– 1 A 10 L– 1 A 11 M– 2 B 10 L– 2 B 11 M– 3 C 10 L– 3 C 11 L

Page 36: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

36

Sélection ou Restriction

• Produit une relation de même schéma et ayant pour occurrences les n-uplets vérifiant la condition exprimée (sélection de lignes répondant à une condition).

• R2=Select (Malade, Nom = Dupon)– 1 Dupon– 2 Dupon

Page 37: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

37

Jointure ou Join• Opération sur deux relations R1 et R2 qui produit une

relation ayant pour schéma la juxtaposition des relations opérandes et pour occurrences l'ensemble des n-uplets obtenus par concaténation des n-uplets de R1 et R2 vérifiant la condition entre les attributs de R1 et R2.

• Join peut être obtenu en combinant le produit cartésien des relations à joindre et d’une sélection utilisant l’expression de jointure comme expression de sélection– R3 = JOIN(R1,R2,Condition)

– R3 = SELECT(PROD(R1,R2),Condition)

Page 38: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

38

Equijointure ou jointure naturelle• Opérateur binaire qui associe 2 relations (qui ne sont pas forcément

différentes) sur (tous) leur(s) attribut(s) communs. La jointure est constituées de tous les tulpes résultant de la concaténation des tulpes de la première relation avec ceux de la seconde qui ont des valeurs identiques pour un ensembles communs d’attributs X.

• Exemple :

ID Nom Lieu100 Comptabilité Angers200 Marketing Nantes300 Ventes Angres

DépartementID NOM DEPT TITRE100 Duchemin Ventes Employé200 Portail Marketing Employé300 Hérisson Comptabilité Employé400 Lapelle Comptabilité Chef

Personnel

ID DEP NOM DEP LIEU ID PER NOM PER TITRE100 Comptabilité Angers 300 Hérison Employé100 Comptabilité Angers 400 Lapelle Chef200 Marketing Nantes 200 Portail Employé300 Ventes Angers 100 Duchemin Employé

DEPARTEMENT Equijointure PERSONNEL (NOM,DEP)

Page 39: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

39

Opérations déduites

• Division– Opération entre deux

relations ayant des attributs communs qui produit une relation R3 réduite aux attributs Ai appartenant à R1 mais n'appartenant pas à R2 et ayant comme occurrences des n-uplets qui concaténés à ceux de R2 donne un n-uplet de R1

N°LIVRE Genre AuteurL3 poésie HugoL1 poésie VerlaineL4 roman HugoL5 histoire Mallet

R1

R2Genrepoésieroman

N°LIVRE AuteurL3 HugoL4 Hugo

DIV(R1,R2)

Page 40: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

40

Opérations déduites• Complément

– Opération sur une relation R1, produit une relation R2 de même schéma ayant un ensemble d'occurrences constitué des n-uplets du produit cartésien entre les domaines des attributs de Ai de R1 n'appartenant pas R1. Les domaines de R1 doivent être finis.

• Jointure externe– Opération entre deux relations qui produit une relation R3 ayant pour

schéma l'union de ceux des relations opérandes et pour occurrences l'ensemble des n-uplets obtenus par jointure de R1 et R2 et ajout des n-uplets de R1 et R2 ne participant pas à la jointure avec des valeurs nulles pour les attributs de l'autre relation.

• Semi jointure– Opération entre deux relations R1 et R2 qui produit une relation de

même schéma que R1 ayant un ensemble d'occurrences formés des n-uplets de R1 participant à la jointure de R1 et R2.

Page 41: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

41

Propriétés des opérations relationnelles

• Commutativité des jointures, des unions, des intersections• Associativité des jointures, des unions, des intersections• Regroupement des sélections

– *• R = SELECT (SELECT(R1,Aj="a"), Ak = "b") • R = SELECT (R1,Aj="a" et Ak ="b")

– *• R = UNION (SELECT(R1,Aj="a"), SELECT(R1, Ak = "b"))• R = SELECT (R1,Aj="a" ou Ak ="b")

• Combinaisons des sélections et des projections• Combinaisons des sélections et des jointures• Combinaisons des projections et des jointures• Combinaisons des unions et des projections

Page 42: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

42

Exemple

• VIN (Nvin, Cru, Mill, Degré)

• BUV(NBuv, NomBuv, Prebuv, Adrbuv, Typebuv)

• Cons(Nvin*, Nbuv*, Date,Qté)

Quels sont les numéros des vins, les crus ainsi que les millésimes des vins consommés par les buveurs de Lyon dont la quantité est supérieure à 100 ?

R1 = Join(BUV,CONS)R2 = SELECT(R1,Adrbuv = "Lyon" et Qté > 100)R3 = JOIN (VIN, R2)RESULT = PROJECT(R3,Nvin,Cru,Mill)

ou

R1 = SELECT(BUV,Adrbuv = "Lyon")R2 = SELECT (CONS, Qté > 100)R3 = JOIN( R1, R2)R4 = PROJECT (R3, Nvin)R5 = PROJECT (Vin,NVin,CRU,Mill)RESULT = JOIN (R4,R5)

Page 43: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

43

Langage SQL

• Langage informatique standard dans les bases de données relationnelles.

• 1ére implémentation 1979• Langage déclaratif non procédural• 2 sous langages

– DDL– DML

• Soit interactif soit intégré : les instructions font alors partie d’un programme écrit dans un langage hôte (C++…)

Page 44: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

44

Conventions

• Les noms doivent comporter de 1 à 30 caractères (parfois 64). Les noms de base de données sont souvent limités à 8.

• Les noms doivent commencer par une lettre minuscule ou majuscule et comporter combinaison de lettre et chiffre et signe souligné

Page 45: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

45

Structure des instructions SQL

• Toute instruction SQL est une combinaison d’une ou plusieurs clauses.

• Les clauses sont introduites par des mots-clés

• Exemple :– SELECT nom, age, sexe FROM patient

WHERE sexe =‘M’ ORDER BY nom ASC, age DESC

Page 46: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

46

Création de table

• CREATE TABLE nom_table

(

Nom_col_1 Type_donnée_1 [contrainte]

Nom_col_2 Type_donnée_2 [contrainte]

…..

Nom_col_n Type_donnée_n [contrainte]

);

Page 47: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

47

Implication des contraintes

• A chaque foi qu’une contrainte est définie, on doit lui donner un nom. Elle est soit nommée par l’utilisateur soit nommée en interne par le SGBD (contrainte non nommée).

• Les contraintes non nommées ne doivent pas être précédée de la clause CONSTRAINT

• Conventions de suffixe pour les contraintes nommée :– PK : primary key– FK : foreign key (clé extérieur)– NN : Not NULL– U : unique

• PK implique NN et U

Page 48: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

48

Exemple

• CREATE TABLE Carte_etud(NOM VARCHAR2(40), NUM_Carte VARCHAR2(15) PRIMARY KEY,VALEUR_DEP NUMBER(4,2),NUM_PIN CHAR(12) UNIQUE,);

• CREATE TABLE Carte_etud(NOM VARCHAR2(40), NUM_Carte VARCHAR2(15) CONTAINT NUM_CARTE-PK

PRIMARY KEY,VALEUR_DEP NUMBER(4,2),NUM_PIN CHAR(12) UNIQUE,);

Page 49: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

49

Insertion d’enregistrements

• INSERT INTO nom_table (col_1, col_2,…., col_n) VALUES (val_1, val_2, ….., val_n);

• COMMIT; est la dernière commande qui permet de rendre permanent les changements dans la table.

Page 50: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

50

Suppression, modification d’enregistrement

• DELETE FROM nom-table WHERE condition;

• UPDATE nom_table SET col_1 = nouvelle valeur, col_2 = nouvelle valeur …. WHERE condition;

Page 51: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

51

Sélection, projection et jointure• SELECT col_1, col_2,…, col_nFROM table_1,…, table_n[WHERE condition][ORDER BY nom_col [ASC | DESC] [nom_col [ASC |

DESC] ];• Opérations avec SQL

– UNION : select * from tab_1 UNION select * FROM tab_2

– INTERSECT– MINUS

Page 52: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

52

Dépendances fonctionnelles

• Dans de nombreuses bases de données, le contrôle de la redondance et la préservation de la cohérence des données sont les plus importants auxquels est confronté le concepteur et l’administrateur.

• La redondance survient quand une information est stockée dans plusieurs endroits. Si ce contenu est modifié, il faut le modifier au niveau de chacune des copies. Si certaines, mais pas toutes les copies, sont modifiées les données sont incohérentes.

• Pour éviter ses écueils, cela passe par l’étude des dépendances fonctionnelles.

Page 53: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

53

Dépendances fonctionnelles

• Les contraintes se classent en deux groupes– Les contraintes sémantiques : dépendent de la signification ou de

la compréhension des attributs d’une relation• Dans une relation Personnel(Nom, Age, Salaire) aucun âge ou

salaire ne peut être négatif– Les contraintes d’accord ou de concordance ne dépendent pas

des valeurs particulières d’un attribut d’un tulpe mais du fait que les tulpes qui acceptent certains attributs acceptent ou non les valeurs de certains de leurs autres attributs

• Dans une relation Personnel (employé, âge, salaire, service, chef de service) si un employé ne travaille que dans un service et que chaque service n’a qu’un chef de service alors deux tulpes ayant la même valeur dans la colonne chef de service on doit avoir la même valeur dans service. On a une dépendance fonctionnelles

• Les dépendances fonctionnelles sont les plus importante contraintes de concordance ou d’agrément.

Page 54: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

54

Dépendances fonctionnelles

• Définition :– Soit une relation r(R) et deux ensemble des ses attributs A et B.

Les attributs s(A) détermine(nt) fonctionnellement le(s) attribut(s) de B relativement à R si et seulement si pour deux tulpes t1 et t2 de r, à chaque fois que t1(A) = t2(A) alors t1(B) = t2(B)

– On note A->B– A est appelé le déterminant, B est appelé la partie droite de la

dépendance fonctionnelle– A et B ne sont pas nécessaire des attributs uniques mais des

ensembles d’attributs. Si A est composé d’un seul attribut on parle de dépendance fonctionnelle simple

– A -#->B s’emploie pour indiquer que A ne détermine pas fonctionnellement B.

Page 55: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

55

Dépendance fonctionnelles (DF)

• Exemple :– La DF Continent->nom

n’est pas satisfaite– La DF Nom->Longueur

est satisfaite

• On ne peut déterminer un DF qu’en fonction du de la signification des attributs. Ils ne faut pas les déduire à partir du contenu courant d’une relation.

Page 56: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

56

Normalisation des relations• Ensemble de règles introduites dans le modèle dès son origine ayant pour but de

garantir à la base de données toute sa cohérence lors de manipulation comme l'insertion, la mise à jour, la suppression.

• La normalisation évite les redondances de données.• Six formes normales (FN) (les trois premières sont les plus importantes) numérotées

de 1 à 5 avec une variante pour la troisième.• Processus important dans la phase de conception. La normalisation permet de définir

des relations de telle sortes qu'elles soient l'image d'objets du monde réel en permettant une affectation correcte des attributs dans différentes tables. C'est un outil puissant pour la définition sémantique des relations.

• Le FN ont été sous forme de règles de construction dans la plupart des méthodes de conception comme MERISE, IDA, AXIAL, REMORA.

• Normaliser une relation c'est la représenter sous une forme canonique respectant certains critères assurant la définition sémantique de la structure de la BD et l'intégrité des données. Elles a comme conséquence la décomposition de la relation non normalisée en un certain nombre d'autres relations.

• Les FN sont dépendantes ainsi une relation ne peut être en 2 FN que si elle est en 1 FN. A contrario une relation en 5 FN l'est en 4, 3, 2, 1 FN.

Page 57: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

57

Dépendances

• Une dépendance est une contrainte exprimée dans une règle que doivent vérifier les données pour que la base soit dans un état cohérent par rapport à la réalité : une consultation médicale donnée concerne un patient et un seul. Un patient peut avoir plusieurs consultations.

• Dépendances fonctionnelles (DF) : Elles permettent de définir les formes normales de 1 à 3 avec sa variante (Boyce-Codd ou BCNF).

• Dépendances multivaluées (DM) : Elles permettent de définir la 4 FN.

• Dépendances de jointure (DJ) : Elles permettent de définir la 5 FN.

Page 58: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

58

Dépendances fonctionnelles (DF)

• Il existe une dépendance fonctionnelle entre deux attributs A et B d'une relation R si à toute valeur de A on ne peut associer à tout instant qu'une et une seule valeur de B.

• Définition formelle– R(X,Y,Z) schéma de relation avec Z éventuellement vide.

• X->Y : X détermine Y ou Y dépend fonctionnellement de X dans R si pour tout tulpe <x,y,z>, <x’,y’,z’) de R , x=x’ => y=y’

• A est l'attribut source et B est l'attribut but : A -> B– NuPatient -> Nom est une DF– Nom ->NuPatient n’est pas une DF

• Si un attribut (ou un groupe d'attributs) détermine par DF tous les autres attributs de la même relation, c'est une clé de la relation.

Page 59: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

59

Première forme normale

• Une relation est en première forme normale si :– Elle possède une clé

– Tous ses attributs sont atomiques : c'est à dire n'ayant à un instant donné qu'une seule valeur ou ne regroupant pas un ensemble de valeurs. Un attribut ne doit pas être lui même une relation.

• MALADE (NuMal, Nom, Caractéristiques, DteCons) 1 Dupond Masc,90Kg 10/10;20/10;30/11/93

• Caractéristiques n'est pas un attribut atomique

• DteCons n'est pas atomique car il regroupe plusieurs valeurs.

Page 60: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

60

Première forme normale

• R est en première forme normale (1NF) si :– Tout attribut hors clé dépend fonctionnellement de la

clé– Ou si :

• Elle possède une clé et tous ses attributs sont atomique, c’est-à-dire que tous les attributs sont monovalués, ce qui exclut les attributs dont les valeurs seraient des ensembles ou des listes.

– Exemple :• Patient (N°patient,Nom de famille, date de Naissance, sexe)

est 1NF• Patient((N°patient,Nom de famille, date de Naissance, sexe,

date de consultation) n’est pas 1NF

Page 61: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

61

Deuxième forme normale• Une relation est en deuxième FN si :

– Elle est en 1FN– Toutes les DF sont élémentaires par rapport à la clé : tout attribut hors clé ne

dépend pas d’une partie de la clé• ou encore si :

– pour toute variable n'appartenant pas à une clé de cette relation, chaque clé est minimale.

• TRAITEMENT (TypTT,NuMal,Salle)– Si salle dépend uniquement du type de traitement (Radiothérapie, Bloc

opératoire) indépendamment du NuMal, il existe une dépendance non élémentaire. La relation TRAITEMENT doit être éclatée en deux relations en 2 FN.

– R1(TypTT,NuMal)– R2(TypTT,Salle)

• Exercice– Mettre en deuxième forme normale

• Patient (N°patient, Date consultation, Nom)• Solution : Nom dépend d’une partie de la clé N°patient->Nom

Page 62: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

62

Deuxième forme normale

• Le 2NF permet d’éliminer certaines redondances– Patient (N°patient,Nom)

– Consultation (N°patient*,Date consultation, ordonnance)

• Mais il peut rester des redondances …

Redondance de l’attribut capacité

N°Avion Constructeur Type Capacité PropriétaireAH321 Boeing B747 C1 Ait AlgérieAF564 Airbus A320 C2 Air FranceBA777 Boeing B747 C1 British AW

Page 63: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

63

Troisième forme normale• Une relation est en troisième forme normale si :

– Elle est en 2 FN– Tout attribut hors clé est en DF directe par rapport à la clé.

• ou encore si:– R est en 2NF– Pour toutes variables n'appartenant pas à la clé de cette relation, il n'existe

pas un ensemble de variables hors clé qui soit une clé pour la variable considérée.

– TRAITEMENT(TypTT,NuRésa,NuMal,NomMal)• NuMal est une clé pour NomMal• R1(TypTT,NuRésa*)• R2(NuRésa,NuMal*)• R3(NuMal,Nom)

• Dans l’exemple précédant :– Constructeur et capacité ne font pas partie de la clé et dépendent de

l’attribut type on décompose en• Avion (N°avion,Type*,Propriétaire)• Modèle(Type, constructeur, capacité)

Page 64: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

64

Troisième forme normale

• La 3NF permet d’éliminer des redondances, dues à des dépendances transitives entre attributs mais elle ne suffit pas parfois à éliminer toutes les redondances :– Codepostal (Code, Ville, Rue)– Les DF sont Code->Ville et Ville,Rue -> Code– Cette relation est en 3NF puisque aucun attribut non clé ne

dépend d’une partie de la clé ou d’un attribut non clé mais il y a des redondances :

Code Ville Rue54505 Vandoeuvre Aiguillette54505 Vandoeuvre Gal Leclerc

Page 65: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

65

Forme de Boyce-Codd (BCNF)

• Une relation est en BCNF si :– Elle est en 3 FN– Tout attribut non clé de la relation n'est pas

source de DF vers une partie de la clé.• Ou

– Les seules DF élémentaires qu’elle comporte sont celle où une clé détermine un attribut.

• Dans l’exemple précédant :CodeVille (Code*, Ville)CodeRue (Code, Rue)Sont en BCNF, mais perte de la DF Ville,Rue ->Code

• Toute relation a une décomposition en BCNF sans perte d’information, par contre, une décomposition en BCNF ne préserve pas généralement les DF.

Page 66: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

66

Exemple

• Soient 2 représentation équivalentes– R0 (N°Commande, N°Client, Date, Nom, N°Repres, Zone)– Et– R11 (N°Commande, Dte, N°Cli*) en 3NF– R12 (N°Client, Nom, N°Repres*) en 3NF– R13 (N°Repres, Zone) en 3NF

• Si l’on a :– 10 représentants, 100 clients par représentants et 100 commandes par

clients.– La forme R0 conduit à 100*100*6 = 60 000 données– R11 à 100 * 100 * 3 = 30 000– R12 à 100 *10*3 = 3 000– R13 à 10 * 2 = 20– Soit 33 020 données

Page 67: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

67

Méthode de normalisation

• Il est souhaitable qu’un schéma relationnel ne comporte que des relations en 3NF ou BCNF.

• Des algorithmes de constructions permettent d’obtenir de tels schémas. Ils sont de eux catégories :– La méthode de décomposition :

• Elle se base sur la décomposition de relations en utilisant les DF entre les données. Cette méthode conduit à des relations en 3NF ou BCNF. Il y a 2 problèmes :

– Identification des DF et leurs exhaustivité– Le résultat dépend de l’ordre d’application des décompositions et peut

ne pas préserver les DF– La méthode synthétique

• Elle se base sur la représentation des DF en terme de graphes (graphe et leur couverture)

Page 68: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

68

Méthode synthétique

• Point de départ– L’ensemble de tous les attributs– L’ensemble des DF entre attributs qui sont représentées dans un

graphe avec comme nœud un attribut et comme arc une DF

• Ce qu’il faut faire– Trouver la couverture minimale du graphe c’est-à-dire éliminer

les circuits ainsi que les DF non élémentaires et non directes

• Résultat– Une collection de relation en 3NF. Chaque schéma est obtenu en

prenant comme :• Clé une source de DF• Attributs, les buts des DF correspondant

Page 69: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

69

Exemple• Service d’immatriculation de voitures dans une préfecture

– Soient les DF suivantes :• N°Immat -> Couleur, Type, Puissance, Marque• N°INSEE -> Nom, Prénom, Adresse• N°Immat -> N°INSEE• Type -> Marque, Puissance

– On crée le graphe :

N°INSEE N°Immat Type

Nom Prénom Adresse CouleurPuissance

MarqueOn supprime les transitivitésOn obtient :

Personne (N°INSEE, Nom, Prénom, Adresse)Voiture (N°Immat, Couleur, Type*, N°INSEE*)Types (Type, Puissance, Marque)

Page 70: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

70

Passage d’un schéma entité/association à un schéma relationnel

• Transformer le schéma E/A en une collection de relations quelconques

• Normaliser les relations soit par la méthode synthétique soit par la méthode de décomposition ou en cherchant la clé minimale parmi les attributs

Page 71: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

71

Dépendances multivaluées

• Il existe une dépendance multivaluée entre les attributs A, B et C d'une relation R si toute valeur de A on associe à tout instant plusieurs valeurs de B et C telles que :– Si il existe (a,b1,c1) et (a, b2, c2) alors il

existe (a, b1, c2) et (a, b1, c1)

• Elles mènent aux autres formes normales

Page 72: 1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par

72

Exercice

• Dans le cadre de la mise en place du PMSI, vous devez réaliser une base de données permettant pour chaque séjour d'un malade dans une unité médicale de traiter les éléments suivants : DteEnt, MEnt, DteSort,MSort,DP, 0 à n DS, 0 à m Actes, 0 à n Médecins TT)