Bases de donnes - PowerPoint PPT Presentation

1 / 201
About This Presentation
Title:

Bases de donnes

Description:

SGBD (syst me de gestion de bases de donn es) permet aux utilisateurs de : ... Mod le d crit les donn es et leurs relations un niveau abstrait ... – PowerPoint PPT presentation

Number of Views:441
Avg rating:3.0/5.0
Slides: 202
Provided by: selmaou
Category:
Tags: abstrait | bases | donnes

less

Transcript and Presenter's Notes

Title: Bases de donnes


1
Bases de données
  • Nazha SELMAOUI

2
I. Aperçu de larchitecture de Bases de données
et des SGBD
  • SGBD (système de gestion de bases de données)
    permet aux utilisateurs de
  • définir, créer, maintenir une BD avec accès
    contrôlé aux données
  • BD ensemble cohérent de données liées entre
    elles
  • SGBD peut contenir
  • matériel, logiciels (utilitaires), données,
    utilisateurs, procédures
  • matériel constitué du système d informations
    (SI) pour disposer de la base de données et y
    accéder

3
1. Introduction aux SGBD
  • Matériel est constitué dun réseau avec un
    serveur central et des clients
  • serveur central contient physiquement la BD
  • clients sur PC sont des programmes qui
    interagissent avec le SGBD
  • Un SGBD peut être
  • mono-utilisateur serveur et clients sur un seul
    ordinateur (accès possible de plusieurs
    utilisateurs à différents moments)
  • multi-utilisateurs

4
1. Introduction aux SGBD
  • BD contient toutes les données nécessaires à
    lorganisation
  • Il est essentiel de séparer entre la
  • BD effective
  • programmes qui la gèrent
  • BD est conçue est chargé pour un public
    particulier et dans un but précis.
  • Chaque client peut disposer de différents niveaux
    daccès aux informations
  • modifier la structure, les données, seulement
    consulter

5
1. Introduction aux SGBD
  • Dans une application il est important de relever
    que seule une partie du monde réel peut être
    représentée par un SGBD
  • Objet entité élément significatif pour lequel
    on dispose dinformations
  • Les caractéristiques qui décrivent ou qualifie
    une entité sappellent ses attributs

6
1. Introduction aux SGBD
  • Exemple
  • BD relative à des étudiants
  • entité étudiant
  • attributs (nom, prénom, spécialité, diplôme,
    date de naissance, adresse, niveau de formation)
    on ne s intéresse pas aux amis vêtements etc.
  • ensemble des valeurs de chaque attribut domaine
  • Exemple
  • date de naissance ne doit pas être du XVIIIème
    siècle
  • formation ?Deust, Deug, Licence, Maîtrise, Dea,
    Doctorat

7
1. Introduction aux SGBD
  • Chaque utilisateur nécessite des possibilités
    logicielles différents
  • administrateur de la BD personne ou groupe en
    charge d implémenter le système de BD dans
    lorganisation. Possède tous les privilèges
    système autorisés par le SGBD. Assigne et
    supprime des niveaux daccès aux utilisateurs
  • utilisateurs finales personnes qui
    interagissent directement avec le système
  • répondent aux requêtes extérieurs
  • répondent aux questions de leur supérieurs
    hiérarchiques
  • autorisation de modifier ou seulement la
    possibilité d afficher les données
  • programmes dapplications (autre type
    d utilisateurs) interagissant avec la BD de
    manière différentes
  • accèdent aux données depuis des programmes de
    haut niveau (C, VB etc.)
  • programmeurs conçoivent des programmes qui
    accèdent aux données en les modifiant

8
1. Introduction aux SGBD
  • Ensemble des procédures contrôlant le
    comportement du système i.e. les pratiques
    suivies par les users pour obtenir des données
  • entrer de nouvelles données
  • maintenir
  • récupérer
  • Exemple dans un système de paie
  • comment les heures travaillées sont elles
    fournies à lopérateur?
  • comment elles sont introduites dans le système?
  • quand exactement sont générés les états
    mensuelles et à qui les envoyer?

9
Exercice
  • Indiquer quel type dutilisateur doit exécuter
    les fonctions suivantes
  • écrire un programme dapplication pour générer et
    imprimer les chèques
  • changer dans la base de données ladresse d un
    employé qui a déménagé
  • créer un nouveau compte d utilisateur pour un
    employé nouvellement embauché

10
Solution
  • Un programmeur d application ou une équipe de
    programmeurs vont concevoir et implémenter un tel
    programme d application
  • Un utilisateur final peut recueillir au téléphone
    les informations concernant un employé et accéder
    directement à la base de données pour les
    modifier. Toutefois, changer de telles
    informations à partir de communications
    téléphoniques peut générer des erreurs
    typographiques ou de mauvaise compréhension. Dans
    le but de vérifier si les mises à jour sont
    réalisées correctement, de nombreuses
    organisations exigent que les modifications
    soient demandées par écrit.
  • Cest ladministrateur de la BD ou son assistant
    qui doivent créer l identifiant du nouvel
    employé. Dans une petite organisation une seule
    personne peut se charger de la BD dans une grande
    les tâches sont partagées.

11
1.1. Données
  • Données sont le noyau du SGBD ensemble
    d informations nécessaires à lorganisme
  • Métadonnées information relatives à la BD
  • dictionnaire des données ou catalogue, il
    contient
  • informations sur les utilisateurs
  • les privilèges
  • la structure interne
  • Il est essentiel de gérer avec soins les données
    pour que les informations restent fiables, à jour
    et précises

12
1.1. Données
  • Base de données peut être centralisée ou
    distribuée (2 à 3 niveaux)

13
1.1. Données
  • Système peut être
  • mono-user serveur client sur un seul ordinateur
  • multi-user grande quantité de données
  • données intégrées
  • une seule informations enregistrées
  • accès à différentes parties de la BD
  • adresse se trouvant dans un seul endroit ?
    différents niveaux d accès ? privilèges
  • données partagées garantit que les users ne
    modifient pas en même temps les données
  • exemple
  • département de comptabilité et département
    d expéditions besoin de ladresse du client

14
1.2. Pourquoi avons-nous besoin d une Base de
données
  • Conserver correctement les données
  • précisions des données
  • actualisation
  • éviter incohérence, redondance ? contraintes
    dintégrité
  • Fournir laccès aux données
  • stockage et accès faciles et rapides
  • maintenance sans gêner laccès
  • Maintenir la sécurité des données
  • différents niveaux dautorisations
  • gérer laccès en même temps ? privilège
  • SGBD vs fichier

15
Exercice
  • Considérant la base de données dun
    câble-opérateur, contenant des noms
    d utilisateurs, des adresses, des catégories de
    services (abonnement minimal, abonnement à toutes
    les chaînes, paiement à l émission, etc.) et des
    informations de facturation. Indiquez pour chaque
    utilisateur un employé de facturation, une
    personne de la maintenance et un représentant du
    service commercial, à quels éléments cet
    utilisateur doit pouvoir accéder et auxquels il
    peut accéder en vue de procéder à des
    modifications

16
solution
17
Exercices
  • Décrivez comment un groupe médical comprenant 3
    médecins dans deux cabinets médicaux distincts
    conserve la base de ses patients si elle est
    centralisée. Comment peut-elle être modifiée pour
    en faire un système distribué?
  • Dressez une liste de toutes les bases de données
    où vous pensez que figurent votre nom et des
    informations financières vous concernant. Comment
    pouvez-vous vérifier lexactitude des données?

18
Solutions
  • Dans un système centralisé, toute la BD réside
    sur un serveur. Chaque machine cliente accède à
    la BD centrale pour disposer des informations sur
    les patients. Si le système central est hors
    service, il ne serait plus possible daccéder aux
    informations. Par contre dans un système
    distribué. Il y aura deux serveurs pour les
    patients du cabinet 1 et cabinet 2. Le SGBD se
    charge de trouver les informations sur chaque
    patient. Si l un tombe en panne lautre reste
    disponible.
  • Employeurs, établissement d enseignement,
    organisation religieuse, administrations ou
    établissements bancaires ou de crédit. Les lois
    exigent que vous ayez le droit de connaître et
    corriger les informations vous concernant.

19
2. Modèles de données
  • Un modèle de données est un moyen dexpliquer la
    disposition logique des données et les relations
    entre les différentes parties de chaque élément
    de lensemble. (maquette permettant aux personnes
    de conceptualiser plus facilement une idée
    abstraite)
  • modèles existant avant
  • tables à 2 dimensions
  • simple fichier texte (accès séquentiel)
  • sur gros système
  • hiérarchique (arborescence)
  • réseau avec des liens entre différents éléments,
    accès par des cheminements

20
2. Modèles de données
  • Aux années 70 (3ème génération)
  • SGBD relationnel développé par CODD, tables ou
    relations avec accès rapide et facile
  • Modèle orienté objet
  • en pratique une impasse
  • Retour au relationnel
  • évolution probable de tout SGBD relationnel
    (SGBDR)

21
Exercice
1. Étant le modèle de données suivant d une
entreprise de jardinerie, doit-il être
hiérarchique, réseau ou relationnel
2. Comment les mêmes données seraient-elles
organisées dans un SGBDR?
22
Solutions
  • 1. Ce doit être un modèle hiérarchique, car
    chaque niveau na quun nud qui pointe sur lui.
    Pour déterminer la quantité de lumière il faut
    connaître la plante ainsi de suite
  • 2.

23
3. Architecture du système de base de données
  • Séparation entre BD et ses langages ? au
    concept de lorganisation (schéma) d une BD

24
3.1. Schémas et langages
  • Modèle décrit les données et leurs relations à un
    niveau abstrait
  • Schéma de BD décrit lorganisation conceptuelle
    du SBD.
  • Définit pendant la conception au moyen dun
    langage de définition de données (DDL)
  • Lorganisation des données se définit à 2 niveaux
  • logique (lorganisation) est le modèle
    conceptuel de données
  • physique la façon dont les données sont
    stockées sur le disque

25
3.1. Schémas et langages
  • DDL permet au user de définir lorganisation des
    données au niveau logique
  • Le logiciel SGDB prend en charge lorganisation
    physique en correspondant le physique et logique
  • DDL permet de créer des tables et décrire les
    champs de chaque table (voir exemple ci-après)
  • Le remplissage dune base de données se fait par
    un langage de manipulation de données (DML)
  • SQL, ACCESS (interaction graphique cachant les
    opérations réalisées en back-ground)

26
3.1. Schémas et langages
  • Exemple pas dinformations sur lorganisation
    logique

27
Exercices
  • 1. Concevez un schéma possible pour un cabinet
    médical. Les médecins veulent un accès immédiat
    aux informations médicales du patient.
    Lopération de saisie doit être sûr que toutes
    les mutuelles ont été facturées et que chaque
    patient sest acquitté du solde
  • 2. Lutilisateur doit-il faire appel au DML ou au
    DDL pour accomplir chacune des tâches suivantes?
  • Changer ladresse d un client
  • définir une table dinventaire
  • entrer les renseignements sur un nouvel employé

28
Solution
1.
29
solution
  • 2.
  • a) Mettre à jour une adresse d un client et
    entrer des renseignements sur un nouveau client
    se réalise par le DML
  • b) définir une nouvelle table implique
    l utilisation du DDL. Créer la table et établir
    les attributs font partie de la définition des
    données.
  • c) Réponse a)

30
3.2. Architecture à 3 niveaux
  • Méthode acceptée en 75 et développée en 78 connue
    sous le nom darchitecture ANSI/SPARC (American
    National Standard Institute)
  • 3 niveaux
  • interne stockage physique (bits, SGBD sen
    charge)
  • conceptuel définition logique, modèle et schéma
    du point de vue conceptuel (concerne
    ladministrateur et son groupe)
  • externe concerne les utilisateurs

31
3.2. Architecture à 3 niveaux
32
3.2. Architecture à 3 niveaux
  • Exemple

33
3.3. Indépendance des données
  • Données différentes du SGBD
  • Au niveau physique les données doivent être
    indépendantes dun modèle particulier ou de
    larchitecture
  • Lorganisation aux 3 niveaux doit être modifiable
    sans interférer avec le niveau élevé

34
3.4. Regrouper les modules
  • Différents modules
  • Le SGBD offre une protection complète grâce au
    dictionnaire
  • des données
  • gestionnaire d exécution
  • de la BD
  • gestionnaire des données stockées
  • Le SGBD vérifie de façon cohérente au
    dictionnaire des données
  • que les accès sont légaux
  • traite ces commandes

35
3.4. Regrouper les modules
36
Exercice
  • Examiner lorganisation de lexemple médical.
    Quest-ce qui doit être la vue interne, la vue de
    la communauté et la vue externe de cette base de
    données?

37
Solution
  • Les tables et le contenu réel de chaque objet
    constituent la vue de la BD par la communauté.
    Elle contient des informations telles que
  • la vue interne doit être lemplacement physique
    de chaque élément sur le disque du serveur ainsi
    que le nombre doctets nécessités pour son
    stockage. La vue externe dépend de lutilisateur
    qui accède à la base de données. Le médecin veut
    voir lhistorique du patient, lemployé de la
    facturation souhaite voir les informations de
    facturation.

38
II. Concepts des BD relationnelle
39
1. SGBDR
  • Un SGBDR les informations sont représentées
    sous forme d un ensemble de relations, il se
    définit comme un ensemble de relations
  • Représentation des relations par des tables à 2
    dimensions satisfaisant certaine conditions
  • Vue logique table

40
1. SGBDR
  • Table se définit par
  • un nom unique,
  • nb de colonnes ou attributs,
  • chaque colonne porte un nom unique
  • nb de colonnes degré de la table
  • données représente une ligne (un n-uplet ou
    tuplet)
  • cardinalité nb de lignes à un moment donnée
  • champ attribut
  • enregistrement ligne

Nom de la table ou de la relation
41
1. SGBDR
  • Instance de la table contenu de la table à un
    moment particulier
  • table sans ligne table vide
  • Insérer des tuples charger une table
  • Dans chaque colonne les valeurs ? ensemble de
    valeurs possibles appelé domaine
    Dom(nom colonne)

42
2. Définition mathématique d une relation
  • R relation de n attributs R(A1, A2, , An)
  • Chaque attribut Ai, domaine Dom(Ai)Di
  • On définit le domaine DD1 xx Dn
  • Une relation r sur un schéma R sera définie par
    ces k tuples (t1,..,tk) de R sur D, avec
    tit(Ai)?Dom(Ai)

43
3. Schéma d'une relation
  • Représentation symbolique de la relation
  • Exemples
  • Produit (nProduit, nom, qtéEnStock)
  • LigneComm (ncommande,narticle, quantité)
  • Vehicule (nImmatriculation, modèle, nmoteur)

Attribut clé (souligné)
Attributs non clé
Nom de la relation
Clé composée de 2 attributs
2 clés potentielles
44
4. Clé candidate et clé primaire
  • Un attribut (ou un ensemble dattributs) dont
    deux occurrences différentes ne prennent jamais
    la même valeur
  • Il sagit donc dun identifiant des occurrences
  • Exemple dans une relation voiture, le numéro
    minéralogique est une clé
  • clé primaire (attribut souligné) joue le rôle de
    mécanisme d adressage de la relation, elle doit
    être unique, ou composée de plusieurs attributs

45
Exercice
  • Soit la table DEPT
  • Les lignes suivantes peuvent être insérer ou pas

46
5. Clés extérieures
  • Concept clé extérieure permet au SGBDR de
    maintenir la cohérence des lignes de deux
    relations ou des lignes de la même relation
  • Une clé est extérieure de la relation r1 par
    rapport à la relation r2 si cette clé est une clé
    primaire pour la relation r2.
  • Une clé extérieur peut être NULL

47
Exercice
  • Soit les tables suivantes
  • Département
  • Personnel
  • Dire si on peut insérer ces lignes dans la table
    Personnel

48
III. SQL
49
1. SQL
  • Standard de fait normalisé
  • pour la gestion des données (Langage de
    Manipulation de Données, LMD),
  • et aussi pour la gestion du schéma (Langage de
    Définition des Données, LDD)
  • 1. Gestion des données
  • Implante les opérateurs principaux de l'algèbre
    relationnelle
  • Fonctions ensemblistes et "spéciales"
  • 2. Gestion du schéma
  • Création, modification de tables, index...

50
2. Forme d'une requête SQL
  • Select Liste dattributs
  • From Noms de Relations
  • Where Conditions
  • Clause Where optionnelle, peut être multiple
  • Where agegt18 and sexe1
  • Résultat de la requête une relation
  • Aucune modification dans la base
  • la relation résultat n'est pas mémorisée dans la
    base
  • les relations initiales ne sont en aucun cas
    modifiées

51
3. Algèbre relationnelle
  • Elle définit des opérations sur les relations
  • Dans la plupart des systèmes relationnels, la
    réponse à une requête sobtient par lutilisation
    dun ou plusieurs opérateurs relationnels
  • Ces opérateurs sont définis par une algèbre
    relationnelle formalisée

52
4. Opérateurs relationnels
  • Deux grandes classes
  • Les opérateurs unaires portent sur une unique
    relation
  • sélection
  • complément
  • projection
  • Les opérateurs binaires portent sur deux
    relations
  • union
  • intersection
  • différence
  • division
  • plusieurs produits

53
Sélection (ou restriction)
  • Construire une relation contenant seulement les
    occurrences correspondant à un critère
  • (enlever des lignes)
  • La condition peut contenir plusieurs critères
  • Représentation algébrique
  • Représentation graphique

54
Sélection - Exemple
  •  Donnez les commandes passées après le mois
    dOctobre 

sdategtoctobre(commande)
select ncom, date, montant from commande where
date gt"octobre"
55
Projection
  • Construire une relation contenant seulement les
    attributs choisis
  • (enlever des colonnes)
  • Représentation algébrique
  • Représentation graphique

56
Projection - Exemple
pNom,Dpt(Etudiant)
select distinct nom, Dpt from Etudiant
Nom, Dpt
Dpt, _at_Dpt
select distinct Dpt, _at_Dpt from Etudiant
pDpt,_at_Dpt(Etudiant)
57
Complément
  • Construire une relation qui contient toutes les
    occurrences qui nexistent pas dans la relation
  • (exprime le FAUX)
  • Représentation graphique

58
Complément - Exemple
  • relation EnseigneA(professeur, élève)
  • Le complément relation " n'enseigne pas à"

C
59
Complément en SQL
  • Pas implanté dans la plupart des SGBD
  • D'où combinaison d'opérateurs relationnels
    (utilise d'autres présentés plus loin)
  • Reprenons la relation résultant de l'exemple sur
    l'opérateur complément, que nous appellerons R
  • 1) faire une projection sur l'attribut
    "professeur" et obtenir la relation R1
  • 2) faire une projection sur l'attribut "élève" et
    obtenir la relation R2
  • 3) faire le produit cartésien R1 ? R2
  • 4) faire la différence (R1 ? R2) - R

60
Union
  • Construire une relation contenant la fusion de
    deux relations
  • possible uniquement sur des relations ayant les
    mêmes attributs
  • Représentation algébrique
  • relation1 ? relation2
  • Représentation graphique

61
Union - Exemple
U
Ouvrier ?Cadre
select nEmploye, nom from Ouvrier Union select
nEmploye, nom from Cadre NB pas toujours
implanté!
62
Intersection
  • Fournit les occurrences présentes dans 2
    relations
  • possible uniquement sur des relations ayant les
    mêmes attributs
  • Représentation algébrique
  • relation1 ? relation2
  • Représentation graphique

63
Intersection - Exemple
  •  Donnez les numéros et noms des chefs de service
    qui sont ingénieurs .

Ingénieur?ChefDeService
U
select nEmploye, nom from Ingenieur intersect se
lect nEmploye, nom from ChefDeService NB pas
toujours implanté!
64
Différence
  • Obtenir les occurrences de la relation1 qui
    nappartiennent pas à la relation2
  • Les deux relations doivent avoir les mêmes
    attributs. Cette opération nest pas commutative.
  • Représentation algébrique
  • Relation 1 - Relation 2
  • Représentation graphique

65
Différence - Exemple
  •  Donnez le nom des étudiants qui sont collés à
    au moins une U.V. 

-
select nomId, UV from Inscrit minus select
nomId, UV from Recus NB pas toujours implanté!
66
Remarque
  • Union, intersection et différence nécessitent
    d'avoir des relations qui possèdent les mêmes
    domaines, ce qui est peu courant dans la réalité.
  • On utilise fréquemment ces opérateurs après des
    projections gt permettent d'obtenir des relations
    ayant même domaine

67
Division
  • Déterminer les occurrences de la première
    relation qui sont associées à toutes les
    occurrences de la seconde.
  • Représentation algébrique
  • relation1 relation2
  • Représentation graphique

68
Division - Exemple
  •  Donnez le nom des professeurs qui enseignent
    conjointement aux élèves figurent dans la
    deuxième relation .

?
Pas de transcription SQL
69
Produits
  • Ces opérations consistent à former une relation
    contenant les attributs des deux relations
    opérantes.
  • Plusieurs produits
  • produit cartésien
  • thêta-produit
  • jointure naturelle
  • jointure extérieure
  • Semi-jointure

70
Produit cartésien
  • Le produit cartésien se construit en combinant
    toutes les possibilités de "liaison" des deux
    relations
  • Représentation algébrique
  • relation1 ? relation2
  • Représentation graphique

Relation résultante
relation1
relation2
71
Produit cartésien - Exemple
select from Livre, Présentation
72
Thêta-produit
  • Produit cartésien doublé dune sélection.
  • Ne retient que les occurrences qui vérifient une
    condition logique thêta ? ?, ?, , ?
  • Représentation algébrique
  • relation1 relation2
  • Représentation graphique

?
73
Thêta-produit - Exemple
  • Employés qui gagnent plus quun chef
  • 1 - produit cartésien
  • 2- sélection employé.salairegtchef.salaire

employé.salaire gt chef.salaire
Select Employé.nomId, Employé.salaire,
Chef.nomId, Chef.salaire from Employé, chef where
Employé.salairegtChef.salaire
74
Jointure naturelle
  • Thêta produit avec
  • Thêta est l'égalité
  • Et légalité porte sur des attributs identiques.
  • Représentation algébrique
  • relation1 relation2
  • Représentation graphique


75
Jointure naturelle - Exemple
  • Donnez le nom des employés et de leur service 
  • Rmq service  ventes  pas dans la jointure

Select Employe.n, Employe.nom, Employe.nservice
, Service.nom from Employe, Service where
Employe.nservice Service.n
nserviceN
76
Semi-jointure
  • Jointure faisant apparaître en totalité les
    occurrences de la première relation, mais
    seulement celles "liées" de la seconde
  • Opération non commutative
  • Représentation algébrique
  • relation1 relation2
  • Représentation graphique

Relation résultante
relation1
relation2
77
Semi-jointure - Exemple
Select Employe.n, Employe.nom, Bureau.N,
Bureau.bâtiment from Employe, Bureau where
Employe.nbureau Bureau.n() ou, selon le SGBD
Select Employe.n, Employe.nom, Bureau.N,
Bureau.bâtiment from Employe LEFT JOIN Bureau ON
Employe.nbureau Bureau.n
employé
bureau
78
Jointure extérieure
  • Jointure naturelle qui fait figurer les
    occurrences qui nont pas  dassociées  dans
    lautre relation.
  • On leur associe alors la valeur nulle (symbole
    ?).
  • Représentation algébrique
  • relation1 relation2
  • Représentation graphique


79
Jointure extérieure - Exemple
employé

bureau
80
Arbre syntaxique
  • Deux objectifs
  • Représentation graphique d'une requête complexe
  • décompose le traitement dune requête en étapes
    (interne au SGBD)
  • Utilise un arbre liant les différentes étapes
    unitaires de traitement d'une requête complexe

81
Arbre syntaxique - Exemple
  • Donnez les renseignements sur les sports
    pratiqués par les étudiants de IF
  • Etudiant (nom, prénom, Dpt, nsport)
  • Sport (nsport, libellé, horaires, prof)

82
SQL les plus par rapport à l'algèbre
  • Pour la modification des données
  • insertion
  • modification (mise à jour)
  • suppression
  • Pour la manipulation des données
  • valeur NULL
  • opérateurs arithmétiques - /
  • fonctions ensemblistes max min count sum avg
  • distinct
  • order by
  • group by et having
  • between
  • like

83
SQL modification des données
  • Chargement d'une nouvelle occurrence
  • Insert into Etudiant Values (265096582955569,
    "Dupont Anne", "4 Rue du Bois, 69001 Lyon")
  • Modification d'une occurrence
  • Update Etudiant
  • Set adresse "10 Rue de Pix, 69001 Lyon"
  • Where nom "Dupont Anne"
  • Suppression d'une occurrence
  • Delete From Etudiant
  • Where No-SS 265096582955569

84
SQL recherche des valeurs nulles
  • Is Not Null permet de vérifier si l'attribut
    est renseigné ou non pour une occurrence
  • "Donner les nSS et Nom des étudiants dont on ne
    connaît pas le domicile"
  • Select NSS-Et, Nom
  • From Etudiant
  • Where Adresse Is Null

85
SQL opérateurs arithmétiques et fonctions
ensemblistes
  • Opérateurs arithmétiques
  • addition
  • soustraction -
  • multiplication
  • division /
  • Fonctions ensemblistes
  • Max Fournit la valeur maximale
  • Min Fournit la valeur minimale
  • Count Fournit la cardinalité dun ensemble
  • Sum Somme de toutes les valeurs
  • Avg Moyenne de toutes les valeurs

86
SQL autres opérateurs
  • Distinct
  • élimine les valeurs dupliquées - select distinct
    nom from...
  • Order by
  • présente les résultats triés par ordre ascendant
    (Asc) par défaut ou descendant (Desc) -
    select... From... Where... order by nom desc
  • Group by
  • Partitionne la relation en parties distinctes sur
    un critère donné -select fromwhere group by
    couleur
  • Having
  • donne un critère de sélection sur chaque
    sous-groupe de la relation (sous-groupe défini
    par group by) - select fromwhere group by
    couleur having count(x)gt1
  • Between
  • donne un intervalle de valeurs - where age
    between 10 and 15
  • Like
  • donne une forme pour une chaîne de caractères -
    where nom like 'D'

87
SQL pour la gestion du schéma
  • Dictionnaire
  • contient la déclaration des relations et une
    description
  • est stocké sous forme d'une base de données
    métabase
  • Des instructions SQL spécifiques
  • déclaration du types des données
  • définition de contraintes
  • création/suppression/modification de relations
  • index et clusters
  • relations dérivées vues et photographies
  • contrôle d'accès

88
Types des données
  • Types de base
  • number
  • number(taillemax)
  • number (taillemax, nbdecimales) //taillemaxlt38
  • char(longueur) //longueurlt255
  • varchar2(longueur) //longueurlt2000
    (Oracle)
  • date //plusieurs formats dont JJ/MM/AA
  • Valeur NULL
  • élément non renseigné
  • Types nouveaux
  • Large OBject BLOB (binary LOB), CLOB
    (character LOB), CFILE(liste de pointeurs sur
    fichiers binaires)

89
Création d'une table - Exemple
  • Version de base
  • Create Table Etudiant
  • (
  • nSS-ET Number (14),
  • Nom Char (20),
  • Adresse Varchar2 (300)
  • )

90
Contraintes
  • Peuvent être mises sur la ligne de l'attribut
    concerné ou en fin d'instruction create
  • Not Null
  • l'attribut concerné doit toujours être renseigné
  • Primary Key
  • clé primaire de la relation (identifiant)
  • Unique
  • la valeur de l'attribut concerné est différente
    pour toutes les occurrences (cas de clés
    concurrentes)
  • References tab(att)
  • col prend ses valeurs parmi les valeurs de la clé
    att de la relation tab
  • et bien d'autres...

91
Contraintes nommées
  • Constraint nom_contrainte contrainte
  • ajoute des contraintes nommées sur les valeurs
  • Permet de les enlever / les réactiver par
    programmation
  • Alter table Disable / Enable Oracle
  • Set constraints Deferred / Immediate norme SQL2

92
Création d'une table - Exemple
  • Create Table Etudiant
  • (
  • nSS-ET Number (14) Not Null Primary Key,
  • Nom Char (20) Not Null,
  • Adresse Varchar2 (300),
  • Constraint Maj Check (Nomupper(Nom))
  • )

Contrainte non nommée Valeur
obligatoirement renseignée
Contrainte non nommée Clé de la relation
Contrainte nommée Maj nom en majuscule
93
Création d'une table - Exemple
  • Create Table Inscription (
  • NSS number(14) Not Null References
    Etudiant(nSS-ET),
  • NUV number(2) Not Null,
  • Foreign Key (NUV) References Unité-Valeur(NUV),
  • Constraint cle Primary key(NSS, NUV)
  • )

Contrainte non nommée, sur ligne indépendante
référence à une clé d'une autre table
Contrainte nommée cle Clé composée
94
Création d'une table - Exemple
  • Create Table Employe (
  • matr number(5) Primary Key,
  • nom Char(9) Unique,
  • dept number(2),
  • Check (Nomupper(Nom)),
  • Foreign Key(dept) References Departement(dept),
  • Check (dept In (10, 20, 30))
  • )

95
Création d'une table et remplissage en passant
  • Remplissage en passant
  • Create Table minidepartement (
  • cle number primary key,
  • data char(20))
  • as select dept, nom from Departement)
  • crée la table et la remplit en prenant les
    valeurs de 2 colonnes de la table Département

96
Modification et suppression d'une table
  • Ajouter une colonne à une table existante
  • Alter table Etudiant
  • add (NEtud number(5))
  • Modifier une colonne existante d'une table
  • Alter Table Etudiant
  • modify (Adresse Char(100))
  • Supprimer une table
  • Drop table Etudiant

97
Contrôle d'accès
  • But protection des données
  • Donner des privilèges à certains utilisateurs
  • lecture Select
  • insertion Insert
  • modification Update ou Update ltnom attributgt
  • Un utilisateur peut
  • donner un privilège à un autre,
  • en même temps l'autoriser à transmettre ce
    privilège
  • gt arbre des privilèges transmis
  • Les privilèges qu'un utilisateur donne sont un
    sous-ensemble de ses droits propres

98
Allocation et révocation de droits
  • Grant Select, Insert On Etudiant To André
  • donne à André le droit de sélectionner et
    dinsérer des lignes dans la relation Etudiant
  • Grant Select On Etudiant To André With Grant
    Option Identified By mot-de-passe
  • André pourra autoriser un autre utilisateur à
    lire la table Etudiant
  • Grant Select On Etudiant To Public
  • Tout utilisateur peut lire la table Etudiant

99
Exemple SQL (1/25)
  • Etudiant (NEt, Nom, Adresse)
  • UV (NUV, Titre, Responsable)
  • Enseignant (NEns, Nom, Grade, Salaire)
  • Inscrit (NEt, NUV)
  • Diplôme (NEt, NUV)
  • Enseigne (NEns, NUV)

100
Les occurrences de l'exemple (2/25)
101
Les occurrences de l'exemple (3/25)
102
Projection (4/25)
  • "Donnez les noms et adresses des étudiants"
  • Select nom, adresse // attributs projetés
  • From Etudiant
  • Les autres colonnes de la relation napparaîtront
    pas.

103
Sélection (5/25)
  • "Donnez tous les renseignements concernant les
    étudiants dont le nom est Dupont"
  • Select
  • From Etudiant
  • Where nom "Dupont"

104
Sélection projection (6/25)
  • Dans la grande majorité des cas, la projection et
    la sélection sont associées
  • "Donnez les noms des étudiants habitant Lyon"
  • Select nom
  • From Etudiant
  • Where adresse "Lyon"

105
Intersection (7/25)
  • "Quels sont les n et les noms des étudiants qui
    sont aussi enseignants ?"
  • (Fournir les n SS identiques)
  • (Select NEt, nom From Etudiant)
  • INTERSECT
  • (Select NEns, nom From Enseignant)

106
Différence (8/25)
  • "Liste des nSS des étudiants et des n UV quils
    ont échouées"
  • (Select From Inscrit)
  • MINUS
  • (Select From Diplôme)

107
Union (9/25)
  • "Liste des n des gens participant aux UV"
  • (Select nEt From Inscrit)
  • UNION
  • (Select nEns From Enseigne)

108
Produit cartésien (10/25)
  • Il suffit de citer les deux relations qui
    participent
  • Select From UV, Etudiant

109
Thêta-produit (11/25)
  • "Quels sont les étudiants responsables d'une
    UV?"
  • Select NEt, Nom, Adresse, NUV, Titre
  • From Etudiant, UV
  • Where NEt Responsable

110
Jointure naturelle (12/25)
  • "Donnez le nom des étudiants inscrits à lUV 10"
  • Select Nom
  • From Etudiant, Inscrit
  • Where Etudiant.NEt Inscrit.nEt
  • and NUV 10

Jonction des 2 relations
111
Jointure naturelle (13/25)
  • Autre formulation équivalente sous MySQL
  • Select nom
  • From Etudiant JOIN Inscrit
  • Where Etudiant.NEt Inscrit.NEt
  • and N UV10

Jonction des 2 relations
112
Jointure naturelle (14/25)
  • "Donnez le nom des étudiants inscrits dans l'UV
    dont le responsable a le n 70
  • Select Nom
  • From Etudiant, Inscrit, UV
  • Where Etudiant.NEt Inscrit.NEt
  • and Inscrit.NUV UV.NUV
  • and Responsable 70

113
Auto-jointure (15/25)
  • Quand les 2 relations n'en font qu'une
  • "Donnez les noms des assistants qui gagnent plus
    quun maître de conférence"
  • Select Y. nom
  • From Enseignant Y, Enseignant X
  • Where Y. salaire ? X. salaire
  • And Y. grade  "Assistant"
  • And X. grade "Maître de Conférence"

114
Semi-Jointure (16/25)
  • "Donner pour chaque UV, le nresponsable et la
    liste des nenseignants"
  • Select UV.NUV, Responsable, NEns
  • From UV, Enseigne
  • Where UV.NUV Enseigne.NUV ()

Semi-jointure
115
Fonctions ensemblistes (17/25)
  • "Salaire moyen des maîtres de conférences"
  • Select Avg (Salaire)
  • From Enseignant
  • Where Grade 'Maître de Conférence'

116
Fonctions ensemblistes (18/25)
  • "Donnez le nom des maîtres de conférences qui
    gagnent plus que la moyenne des salaires des
    enseignants"
  • Select Nom From Enseignant
  • Where Grade 'Maitre de Conference'
  • And Salaire gt (Select Avg(Salaire) From
    Enseignant)
  • NB sous Mysql, pas d'imbrication de select.
  • Mais variables
  • select _at_moySalavg(salaire) from Enseignant
  • select nom from Enseignant
  • where grade"Maitre de conf"
  • and salaire gt_at_moySal

117
Fonctions ensemblistes (19/25)
  • "Donnez le nombre dUV auxquelles est inscrit
    létudiant n 20"
  • Select Count (NUV)
  • From Inscription
  • Where NEt 20

118
Distinct (20/25)
  • "Combien y a-t-il de responsables dUV ?"
  • Select Count (Distinct (Responsable))
  • From UV

119
Order by (21/25)
  • "Noms des assistants par ordre alphabétique"
  • Select Nom
  • From Enseignant
  • Where Grade 'Assistant'
  • Order By Nom Asc

120
Group by (22/25)
  • "Donnez le salaire moyen des enseignants par
    grade"
  • Select Grade, Avg (Salaire)
  • From Enseignant
  • Group By Grade

121
Having (23/25)
  • "Donnez le NSS des enseignants responsables de
    plus de 1 UV"
  • Select Responsable From UV
  • Group By Responsable
  • Having Count (N UV) gt 1

122
Between (24/25)
  • "Donner les noms des enseignants dont le salaire
    est entre 10100 et 11100"
  • Select Nom
  • From Enseignant
  • Where Salaire Between 10100 And 11100

123
Like (25/25)
  • "Donnez les noms des étudiants dont le nom
    commence par D"
  • Select Nom
  • From Etudiant
  • Where Nom Like 'D'

124
IV. Dépendances fonctionnelles
125
1. Introduction
  • Contrôle de redondance et préservation de la
    cohérence des données
  • problème de stockage des données dans plusieurs
    endroits
  • contraintes imposées ? dépendances fonctionnelles
    (DF)
  • Contrainte exprimée par une règle que doivent
    vérifier les données pour que la base de données
    soit dans un état cohérent
  • contraintes sémantiques dépendent de la
    signification ou de la compréhension des
    attributs dune relation
  • contraintes daccord dépendent des valeurs
    particulières des attributs dun tuple

126
Exemple
  • Sémantiques
  • l attribut Age ne peut être une valeur négatif
  • daccord
  • dans la relation PERSONNEL, si on suppose que
    chaque employé ne travaille que dans un seul
    service et que chaque service admet un seul chef,
    alors deux tuples (employés) avec un même service
    ne peuvent avoir des chefs différents

127
2. Définition formelle de DF
  • Soit une relation R(A, B, )
  • On dit que le(s) attribut(s) A détermine(nt)
    fonctionnellement le(s) attribut(s) B
    relativement à R (on note A?B) ssi pour 2 tuples
    t1 et t2 de R alors t1(A)t2(A) ?t1(B)t2(B)

128
Dépendance fonctionnelle (DF)
  • Dans une relation, à une valeur d'une donnée, on
    associe une valeur au plus d'une autre donnée, à
    un instant considéré
  • Att1 ? Att2
  • il y a une DF entre Att1 et Att2
  • Att1 est la source de la DF, Att2 en est le but
  • Lorsqu'une valeur est associée à une autre par
    une DF, on ne peut pas introduire dans la base
    d'autre couple ayant la même valeur pour source
    sans supprimer le premier couple

129
DF - Exemple
  • Il y a une DF entre Client et Adresse
  • IdClient ? Adresse (Un client n'a qu'une seule
    adresse)
  • Si j'ai (Dupont, Lyon) dans la base, je ne peux
    introduire (Dupont, Nice) que si je supprime
    (Dupont, Lyon)

130
Algorithme de satisfaction
  • Soit une relation R et et une DF A?B
  • Triez les tuples de la relation R sur le(s)
    attribut(s) A
  • Vérifiez que les tuples avec des valeurs égales
    pour le(s) attribut(s) A ont aussi des valeurs
    égales pour le(s) attribut(s) B.
  • Si lun des deux tuples satisfait la condition 1
    mais pas la condition 2, la sortie de
    lalgorithme est Faux, sinon la sortie de
    lalgorithme est Vrai

131
Axiome de déduction des DF
  • Soit U, V, W, X des ensembles dattributs
  • Réflexivité
  • Si V ? U alors U ? V
  • Accroissement
  • Si V? U alors VW ? U et/ou V W ? UW
  • Transitivité
  • Si U ? V et V ? W alors U ? W
  • Union ou Additivité
  • Si U ? V et U ? W alors U ? VW
  • Pseudotransitivité
  • Si U ? V et V W ? X alors U W ? X
  • Projection ou Décomposition
  • Si U ? V W alors U ? V et U ? W

132
Formalisation de la clé d'une relation
  • Lorsque, dans une relation,
  • un attribut (ou un groupe dattributs)
  • est source de dépendances fonctionnelles
  • ayant respectivement pour but chacun des autres
    attributs de la relation,
  • cet attribut (ou ce groupe dattributs) est
    appelé
  • clé de la relation

133
Exercices
  • Soit FA ? B, C ? X, BX ? Z, déduisez que AC
    ?Z en appliquant les axiomes de déduction
  • Si AC ?Z on dira que F implique logiquement AC ?Z
    et on note par F AC?Z
  • Soit FA ? B, C ? D, avec C ? B montrer que F
    A ?D

134
Solutions
  • A?B et BX?Z alors AX?Z pseudotransitivité, AX?Z
    et C?X alors AC?Z (pseudotransitivité)
  • C ? B, alors B?C (réflexivité), A?B et B?C alors
    A?C (transitivité), de A?C et C?D alors A?D
    (transitivité), donc F A?D

135
DF élémentaire et directe
  • On dit quune DF est élémentaire si aucun
    sous-ensemble de la clé nest source de la
    dépendance fonctionnelle
  • A, B, C ? D est élémentaire
  • Si A, B -/? D A, C -/? D B, C -/? D
  • et A -/? D B -/? D C -/? D
  • A ? B est directe sil nexiste pas un autre
    attribut C tel que A ? C et C ? B

136
DF REDONDANTES
  • Une DF A ?B est dite redondante pour les DF F ssi
    A ?B peut découler de DF F-A ?B
  • Elles peuvent donc être éliminées
  • Comment déterminer les DF redondantes
  • Algorithme dappartenance

137
Algorithme dappartenance
  • Soit F ensemble de DF avec A?B?F
  • Poser GF-A?B, si G?? alors aller à létape 2,
    sinon arrêt de lalgorithme
  • Initialiser TA
  • Dans G, rechercher les DF X?Y où X ?T
  • Si X?Y existe ajouter Y à T TT?Y, si tous
    les attributs de B sont dans T alors arrêt de
    l algorithme (A?B est redondante), sinon
    supprimer X?Y de G et aller à l étape 3
  • si G? ou si aucune DF dans G na tous les
    attributs de son déterminant dans T, alors A ? B
    nest pas redondant
  • Si une DF A ? B est redondante dans F alors on
    peut la supprimer

138
Exercice
  • Soit FX ? YW, XW ? Z, Z ? Y, XY ? Z,
    déterminer si la DF XY ?Z est redondante dans F.

139
Fermeture dun ensemble de DF
  • Soit F un ensemble de DF dun schéma R
  • On définit F la fermeture de F i.e. FX?Y /
    FX ?Y, il satisfait les 2 conditions suivantes
  • F est le plus petit ensemble qui contient F et
    qui satisfait la propriété 2
  • Toute application des axiomes de déduction aux DF
    de F ne produit que des DF qui sont déjà dans F.

140
Exemple
  • FXY ?Z, déterminer F.
  • FX?X, Y?Y, Z?Z, XY?X, XY?XY, XZ?X, XZ ?Z, XZ
    ?XZ, YZ ?Y, YZ ?Z, YZ?YZ, XYZ ?XY, XYZ ?XZ, XYZ
    ?YZ, XYZ ?XYZ
  • appliquer les axiomes de déduction à tous les
    attributs pris isolément, appliquer les axiomes à
    toutes les combinaisons de deux attributs et
    faites aux DF de F, appliquer ensuite les axiomes
    à toutes les combinaisons de 3 attributs, ainsi
    de suite

141
Fermeture dun ensemble d attributs
  • Soit X un ensemble dattributs et F un ensemble
    de DF, la fermeture de lensemble des attributs X
    sous F, noté X est lensemble des attributs A
    qui peuvent découler de X en appliquant les
    axiomes de déduction aux DF de F.
  • intérêt
  • si Y?X alors F X ?Y

142
Algorithme de fermeture
  • Soit X ensemble des attributs et F ens. des DF
  • Initialiser GF
  • initialiser TX
  • dans G rechercher des DF X ?Y telles que tous les
    attributs du déterminant X soient des éléments de
    T, 2 cas
  • Si cette DF existe alors TT?Y, et retirer X ?Y
    de G. Aller à 3
  • Si G? ou pas de DF dans G avec tous les
    attributs de leurs déterminants comme éléments de
    T. Arrêt de lalgorithme
  • XT

143
Exercice
  • FA ?B, B ?C, BC ?D, DA ?B, chercher X où
    XA, Quelle est la signification de cet
    ensemble? Est-il vrai que A ?DA?

144
Couverture et équivalence dun ensemble de DF
  • Définitions
  • F et G sont équivalents et on note F?G ssi FG,
    on dit aussi que F couvre G et vice versa
  • Si G couvre F et si aucun sous-ensemble propre H
    de G nest tel que HG, nous dirons que G est
    une couverture non redondante de F.
  • Remarques
  • Il peut y avoir plusieurs couvertures non
    redondantes
  • problème de minimalité nest pas traité ici

145
Algorithme de couverture non redondante
  • Initialiser GF
  • tester la redondance de chaque DF de G au moyen
    de lalgorithme d appartenance jusqu à ce
    qu il ny a plus
  • G est une couverture non redondante de F.
  • Exemple trouver la couverture non redondante G
    pour FX ?YZ, ZW ?P, P ?Z, W ?XPQ, XYQ ?YW, WQ
    ?YZ.

146
Exercice
  • Trouver une couverture non redondante G de
    FX?YZ, ZW?P, P?Z, W?XPQ, XYQ?YW, WQ?YZ.

147
Attributs accessoires
  • Un attribut A1 est dit un attribut gauche
    accessoire dans A1A2?B1B2 par rapport à F dans la
    relation R ssi F?F-A1A2?B1B2?A2?B1B2
  • Un attribut B1 est dit un attribut droit
    accessoire dans A1A2?B1B2 par rapport à F dans la
    relation R ssi F?F-A1A2?B1B2?A1A2?B2
  • On ne considérera ici que la réduction gauche

148
Algorithme de réduction à gauche
  • Initialiser GF
  • Pour chaque DF A1A2...An?Y de G
  • Pour chaque Ai du déterminant de la DF
  • Si tous les attributs Y?A1..Ai-1Ai1An sous G
    alors supprimer Ai (gauche accessoire), sinon
    garder Ai
  • fin de létape 3
  • fin de létape 2
  • A la fin de lalgorithme G est la couverture à
    gauche de F

149
Exercice
  • Réduire lensemble FX?Z, XY?WP, XY?ZWQ, XZ?R
    en supprimant les attributs gauches accessoires.

150
Couverture canonique
  • Pour un ensemble de DF F, une couverture
    canonique Fc est un ensemble de DF où les
    conditions suivantes sont simultanément
    satisfaites
  • Chaque dépendance de Fc est simple (côté droit de
    la DF ne contient quun seul attribut)
  • Fc est réduit à gauche
  • Fc nest pas redondant

151
Exercice
  • Soit FX?Z, XY?WP, XY?ZWQ, XZ?R, trouver une
    couverture canonique Fc.

152
Le processus de normalisation
153
Introduction
  • La normalisation est un processus réversible dans
    lequel un ensemble de relations est remplacé par
    des groupes successifs de relations dont la
    structure est progressivement plus simple et plus
    régulière.
  • Dire qu une relation est dans une forme normale
    particulière est une indication des conditions
    qu une table doit remplire (ensemble de
    critères)
  • réversible dans le sens où on retrouve les
    relations originelles sans perte dinformations.

154
Introduction
  • Dans le processus de normalisation les groupes
    de relations se restreignent de plus en plus
  • aux types de DF quils peuvent satisfaire
  • aux anomalies de données quils peuvent
    rencontrer.
  • Les objectifs du processus de normalisation sont
  • permettre la représentation de toute relation
  • obtenir des algorithmes relationnels dextraction
    puissants (opérateurs relationnels)
  • éviter les relations danomalies indésirables
    pour linsertion la mise à jour et la suppression
  • réduire la nécessité de restructuration

155
Introduction
  • Les règles de bonne forme des relations
  • déclinées selon 5 formes normales
  • la FNn1 rajoute des contraintes à la FNn
  • déduites de dépendances entre les attributs des
    relations

1FN
E.F. Codd propose 3 formes normales 1FN, 2FN,
3FN. Il existe la forme normale de Boyce-Codd FNBC
2FN
3FN
FNB
156
Nécessité de la normalisation
  • Seule clé possible (IdClient, IdProduit)
  • Relation correcte pour le SGBD mais qui va
    engendrer de nombreux problèmes de maintenance et
    des anomalies

157
Nécessité de la normalisation (suite)
  • Adresse client répétée autant de fois que de
    produits commandés
  • mise à jour adresse nécessite plusieurs
    modifications
  • ou anomalies car plusieurs adresses pour le même
    client
  • Si un client annule ses commandes, alors on perd
    son nom et son adresse
  • Cette relation est coûteuse en place mémoire
    (répétitions!)

158
Relation normalisée
  • Une relation est dite normalisée si
  • Un même attribut de cette relation nest pas
    représenté plusieurs fois
  • et
  • un attribut nest pas décomposable en dautres
    attributs
  • il nest donc pas lui-même une relation

159
Relation non normalisée - Exemple
160
Première forme normale
  • Toute relation normalisée est en 1FN
  • Commande (NCli, NArt, NomCli, NomArt)
  • Problème de la 1FN
  • Seules des DF NCli, NArt ? NomCli et NCli,
    NArt ? NomArt sont prises en compte
  • On peut donc introduire des anomalies (insertion,
    suppression, mise à jour) comme
  • ?23, A5, JEAN, CHAISE?
  • ?23, A6, CAROLINE, TABLE?
  • ?26, A5, CHRISTINE, TABLE?

161
Inconvénient de la 1FN
  • Ne permet pas de mettre en évidence toutes les DF
  • Il faudrait décomposer la relation initiale en 3
    relations
  • Client (NClient, nom client)
  • Article (NArticle, nom article)
  • Commande (N Article, N client)

162
2eme forme normale
  • Une relation est en 2FN si
  • elle est en 1FN
  • toutes les DF issues de la clé sont élémentaires.

A B C D
A D
A B C
Converti en
163
2eme forme normale
  • Client (NCli, NomCli, NRepr, NomRepr)
  • Problème de la 2FN
  • La DF NRepr ? NomRepr n'est pas prise en compte
  • On peut donc introduire des anomalies comme
    ?92, MARLENE, R15, LOULOU?
  • ?156, PHILIPPE, R15, BABETTE?

164
Inconvénient de la 2FN
  • Ne permet pas de mettre en évidence les DF
    directes
  • Il faudrait décomposer cette relation en deux
    autres relations
  • Client (NCli, NomCli, NRepr)
  • Représentant (NRepr, NomRepr)

165
3eme forme normale
  • Une relation est en troisième forme normale si
  • elle est en 2FN
  • toutes les DF issues de la clé sont directes
  • Lorsquune relation est en 3 FN
  • Aucune DF nest issue dun sous-ensemble de la
    clé
  • Aucune DF nest issue dun attribut non clé vers
    un autre attribut non clé.
  • Client (NCli, NomCli, AdresseCli)
  • LigneCommande(NComm, NArt, qté)

166
3eme forme normale
A B C
A B
B C
Converti en
167
FN de Boyce-Codd (F.N.B.C.)
  • Cest une forme spécifique de la 3FN
  • Une relation en 3FN peut encore présenter
    certaines anomalies
  • lorsquun attribut non clé de la relation est
    source dune DF ayant pour but une partie (un
    sous-ensemble) de la clé
  • Une relation est en FNBC si
  • elle est en 3FN
  • la source de chaque DF existant entre les
    attributs de la relation est clé de la relation
  • LA FNBC est la forme normale la plus élaborée
    fondée sur les dépendances fonctionnelles

168
Exemple
FABRICANT
  • 2 clés candidates (ID, No-article) et
    (Nom,No-article)
  • relation en 3FN mais pas en FNBC (pb de mise à
    jour)
  • décomposition en
  • FABRICANT(ID, Nom)
  • FABRICANT-PIECE(ID,No-article, Quantité)
  • ou
  • FABRICANT(ID, Nom)
  • FABRICANT-PIECE(Nom,No-article, Quantité)

169
Exemple de 3FN non FNBC
  • Dans un lycée, on a relevé que
  • Pour une matière donnée et un élève donné, on a
    une note annuelle Elève, Matière ? Note
  • Pour une matière donnée et un élève donné, on a
    un professeur Elève, Matière ? Professeur
  • Un professeur enseigne une seule matière
    Professeur ? Matière
  • Résultat (Elève, Matière, Professeur, Note)
  • Cette relation est en 3FN mais pas en FNBC

170
Exemple de 3FN non FNBC
  • On ne peut pas traduire le fait quun professeur
    est associé à une unique matière.
  • Il est donc possible davoir dans la base
  • ?TOTO, MATH, DUPONT?
  • ?JOJO, ANGLAIS, DUPONT?
  • alors quune contrainte est violée.

171
Exemple de 3FN non FNBC
Write a Comment
User Comments (0)
About PowerShow.com