Cours SGBD 1 - Concepts et langages des Bases de Données Relationnelles

Page 1 sur 224Lecteur de document UniversityLib

Cours SGBD 1 - Concepts et langages des Bases de Données Relationnelles

Database Systems · lab

Voir tous les documents en bases de données

Cours SGBD 1

Concepts et langages des Bases de Données Relationnelles

SUPPORT DE COURS

IUT de Nice – Département INFORMATIQUE

IUT de Nice - Cours SGBD1

1

Plan

Chapitre 1

Introduction générale

Chapitre 2

Le modèle relationnel

Chapitre 3

Présentation des données

Chapitre 4

L’algèbre relationnelle

Chapitre 5

Le langage QBE

Chapitre 6

Le langage SQL

Chapitre 7

Gestion des transactions

Chapitre 8

Programmation avec VBA

Chapitre 9

Les objets dans Access

Chapitre 10

L’interface DAO

Chapitre 11

Le mode client serveur et ODBC

Chapitre 12

Automation et le modèle DCOM

IUT de Nice - Cours SGBD1

2

Chapitre 1

Introduction générale

I.

Notions intuitives

II.

Objectifs et avantages des SGBD

III.

L’architecture ANSI/SPARC

IV.

Notion de modélisation des données

V.

Survol des différents modèles de données

VI.

Bref historique, principaux SGBD commercialisés

IUT de Nice - Cours SGBD1

3

I Notions intuitives

• Base de données

ensemble structuré de données apparentées qui modélisent un univers réel

Une BD est faite pour enregistrer des faits, des opérations au sein d'un organisme (administration, banque, université, hôpital, ...)

Les BD ont une place essentielle dans l'informatique

• Système de Gestion de Base de Données (SGBD)

DATA BASE MANAGEMENT SYSTEM (DBMS)

système qui permet de gérer une BD partagée par plusieurs utilisateurs simultanément

IUT de Nice - Cours SGBD1

4

• Des fichiers aux Base de Données

Séparation des données et des programmes

FICHIER

BASE DE DONNEES

Les données des fichiers sont décrites dans les programmes

Les données de la BD sont décrites hors des programmes dans la base elle-même

Description fichier

Description fichier

Programmes

Description unique

Programmes

La multiplication des fichiers entraînait la redondance des données, ce qui rendait difficile les mises à jour.

D'où l'idée d'intégration et de partage des données

IUT de Nice - Cours SGBD1

5

II Objectifs et avantages des SGBD

Que doit permettre un SGBD ?

(cid:137) Décrire les données

indépendamment des applications (de manière intrinsèque)

⇒ langage de définition des données

DATA DEFINITION LANGUAGE (DDL)

(cid:137) Manipuler les données

interroger et mettre à jour les données sans préciser d'algorithme d'accès

dire QUOI sans dire COMMENT

langage de requêtes déclaratif ex.: quels sont les noms des produits de prix < 100F ?

⇒ langage de manipulation des données

DATA MANIPULATION LANGUAGE (DML)

IUT de Nice - Cours SGBD1

6

(cid:137) Contrôler les données

intégrité

vérification de contraintes d'intégrité ex.: le salaire doit être compris entre 400F et 20000F

confidentialité

contrôle des droits d'accès, autorisation

⇒ langage de contrôle des données

DATA CONTROL LANGUAGE (DCL)

IUT de Nice - Cours SGBD1

7

(cid:137) Partage

une BD est partagée entre plusieurs utilisateurs en même temps ⇒ contrôle des accès concurrents

notion de transaction

L'exécution d'une transaction doit préserver la cohérence de la BD

(cid:137) Sécurité

reprise après panne, journalisation

(cid:137) Performances d'accès

index (hashage, arbres balancés ...)

IUT de Nice - Cours SGBD1

8

(cid:137) Indépendance physique

Pouvoir modifier les structures de stockage ou les index sans que cela ait de répercussion au niveau des applications

Les disques, les méthodes d’accès, les modes de placement, le codage des données ne sont pas apparents

(cid:137) Indépendance logique

Permettre aux différentes applications d’avoir des vues différentes des mêmes données

Permettre au DBA de modifier le schéma logique sans que cela ait de répercussion au niveau des applications

IUT de Nice - Cours SGBD1

9

III L’architecture ANSI/SPARC

• proposition en 75 de l’ ANSI/SPARC

(Standard Planning And Requirement Comitte)

• 3 niveaux de représentation des données

EXTERNE

Vue 1

Vue 2

CONCEPTUEL

Schéma logique DICTIONNAIRE DE DONNEES

INTERNE

Schéma physique STRUCTURE DE DONNEES

SGBD Niveaux de représentation des données

IUT de Nice - Cours SGBD1

10

(cid:137) Le niveau externe

Le concept de vue permet d'obtenir l'indépendance logique

La modification du schéma logique n’entraîne pas la modification des applications (une modification des vues est cependant nécessaire)

Chaque vue correspond à la perception d’une partie des données, mais aussi des données qui peuvent être synthétisées à partir des informations représentées dans la BD (par ex. statistiques)

(cid:137) Le niveau conceptuel

il contient la description des données et des contraintes d’intégrité (Dictionnaire de Données)

le schéma logique découle d’une activité de modélisation

(cid:137) Le niveau interne

il correspond aux structures de stockage et aux moyens d’accés (index)

IUT de Nice - Cours SGBD1

11

Pour résumer :

Les fonctions des SGBD

• DEFINITION DES DONNEES

⇒ Langage de définition des données (DDL)

(conforme à un modèle de données)

• MANIPULATION DES DONNEES

Interrogation

Mise à jour

insertion, suppression, modification

⇒ Langage de manipulation des données (DML)

(langage de requête déclaratif)

• CONTRÔLE DES DONNEES

Contraintes d'intégrité

Contrôle des droits d'accès

Gestion de transactions

⇒ Langage de contrôle des données (DCL)

IUT de Nice - Cours SGBD1

12

IV Notion de modélisation des données

UNIVERS REEL

MODELE CONCEPTUEL MCD

SCHEMA LOGIQUE

Modèles sémantiques Orientés « conception » Entité-Association, Merise …

Modèles de BD Hiérarchique, Réseau Relationnel …

• Les modèles de BD sont souvent trop limités pour pouvoir représenter directement le monde réel

• Méthodologies de conception présentées en ACSI,

SGBD2

IUT de Nice - Cours SGBD1

13

Le modèle Entité-Association

EA en français, ER en anglais (pour Entity Relationship)

Formalisme retenu par l'ISO pour décrire l'aspect conceptuel des données à l’aide d’entités et d’associations

(cid:137) Le concept d’entité

Représentation d’un objet matériel ou immatériel

Par exemple un employé, un projet, un bulletin de paie

Nom de l’entité

Liste des propriétés

• Les entités peuvent être regroupées en types

d’entités

Par exemple, on peut considérer que tous les employés particuliers sont des instances du type d’entité générique EMPLOYE

Par exemple l’employé nommé DUPONT est une instance ou occurrence de l’entité EMPLOYE

IUT de Nice - Cours SGBD1

14

(cid:137) Les propriétés

données élémentaires relatives à une entité

Par exemple, un numéro d’employé, une date de début de projet

• on ne considère que les propriétés qui intéressent un

contexte particulier

• Les propriétés d’une entité sont également appelées des attributs, ou des caractéristiques de cette entité

(cid:137) L’identifiant

propriété ou groupe de propriétés qui sert à identifier une entité

L’ideintifiant d’une entité est choisi par l’analyste de façon à ce que deux occurrences de cette entité ne puissent pas avoir le même identifiant

Par exemple, le numéro d’employé sera l’identifiant de l’entité EMPLOYE

IUT de Nice - Cours SGBD1

15

(cid:137) Les associations

Représentation d’un lien entre deux entités ou plus

• une association peut avoir des propriétés particulières

Par exemple, la date d’emprunt d’un livre

adhérent

exemplaire

emprunter

date d’emprunt

IUT de Nice - Cours SGBD1

16

(cid:137) Les cardinalités

La cardinalité d’une association pour une entité constituante est constituée d’une borne minimale et d’une borne maximale :

• Minimale : nombre minimum de fois qu’une

occurrence de l’entité participe aux occurrences de l’association, généralement 0 ou 1

• Maximale : nombre maximum de fois qu’une

occurrence de l’entité participe aux occurrences de l’association, généralement 1 ou n

Par exemple :

adhérent

exemplaire

emprunter

0,3

date d’emprunt

0,1

• La cardinalité 0,3 indique qu’un adhérent peut être associé à 0, 1, 2 ou 3 livres, c’est à dire qu’il peut emprunter au maximun 3 livres.

• A l’inverse un livre peut être emprunté par un seul

adhérent, ou peut ne pas être emprunté.

IUT de Nice - Cours SGBD1

17

• Les cardinalités maximum sont nécessaires pour

concevoir le schéma de la base de données

• Les cardinalités minimums sont nécessaires pour

exprimer les contraintes d’intégrité

En notant uniquement les cardinalités maximum, on distingue 3 type de liens :

• Lien fonctionnel 1:n

• Lien hiérarchique n:1

• Lien maillé n:m

IUT de Nice - Cours SGBD1

18

Lien fonctionnel

1:n

A

1

B

n

Une instance de A ne peut être associée qu'à une seule instance de B

Par exemple :

employé

département

travaille

n

1

Un employé ne peut travailler que dans un seul département

IUT de Nice - Cours SGBD1

19

Lien hiérarchique n:1

A

B

n

1

Une instance de A peut être associée à plusieurs instances de B

Inverse d'un lien 1:n

département

employé

n

emploie

1

Un département emploie généralement plusieurs employés

IUT de Nice - Cours SGBD1

20

Lien maillé n:m

A

B

n

m

Une instance de A peut être associée à plusieurs instances de B et inversement

Par exemple :

employé

projet

n

participe

m

De ce schéma, on déduit qu’un employé peut participer à plusieurs projets.

IUT de Nice - Cours SGBD1

21

Exemple de diagramme Entité Association

département

travaille

Publicité

n

1

est chef de

dirige

a pour chef

1

n

employé

n

participe

m

projet

IUT de Nice - Cours SGBD1

22

V Les différents modèles de données

• L'organisation des données au sein d'une BD a une

importance essentielle pour faciliter l'accès et la mise à jour des données

Hiérarchique Liens 1:N

Réseau Liens N:M

Relationnel Liens N:1

SGBDR

IUT de Nice - Cours SGBD1

23

• Les modèles hiérarchique et réseau sont issus du

modèle GRAPHE

• données organisées sous forme de graphe

•

langages d'accès navigationnels (adressage par liens de chaînage)

• on les appelle "modèles d'accès"

• Le modèle relationnel est fondé sur la notion

mathématique de RELATION

•

introduit par Codd (recherche IBM)

• données organisées en tables (adressage relatif)

• stratégie d'accès déterminée par le SGBD

IUT de Nice - Cours SGBD1

24

LE MODÈLE RÉSEAU

• Schéma logique représenté par un GRAPHE

noeud arc

: article (représente une entité) : lien hiérarchique 1:N

• Exemple de shéma réseau

CLIENT

PRODUIT

VENTE

Diagramme de Bachman

• Langage navigationnel pour manipuler les données

•

Implémentation d'un lien par une liste circulaire :

r

R

S

L

s1

s2

.....

sn

IUT de Nice - Cours SGBD1

25

• Exemple de schéma réseau :

CLIENTS

PRODUITS

x

y

p

q

r

x, p

x, q

y, p

y, r

x

y

p

q

r

Représentation d’une association N:M par 2 liens CODASYL

IUT de Nice - Cours SGBD1

26

LE MODÈLE HIÉRARCHIQUE

• Schéma logique représenté par un ARBRE

noeud arc

: segment (regroupement de données) : lien hiérarchique 1:N

• Exemple de shéma hiérarchique

CLIENT

PRODUIT

VENTE

CLIENT

PRODUIT

VENTE

• Choix possible entre plusieurs arborescences

(le segment racine est choisi en fonction de l'accès souhaité)

• Dissymétrie de traitement pour des requêtes symétriques

En prenant l'ex. précédent, considérer les 2 requêtes : Trouver les no de produits achetés par le client x a) b) Trouver les no de clients qui ont acheté le produit p Elles sont traitées différemment suivant le choix du segment racine (Client ou Produit)

• Adéquation du modèle pour décrire des organisations à structure arborescente (ce qui est fréquent en gestion)

IUT de Nice - Cours SGBD1

27

LE MODÈLE RELATIONNEL

• En 1970, CODD présente le modèle relationnel

• Schéma logique représenté par des RELATIONS

LE SCHÉMA RELATIONNEL

Le schéma relationnel est l'ensemble des RELATIONS qui modélisent le monde réel

• Les relations représentent les entités du monde réel

(comme des personnes, des objets, etc.) ou les associations entre ces entités

• Passage d'un schéma conceptuel E-A à un schéma

relationnel

- une entité est représentée par la relation :

nom_de_l'entité (liste des attributs de l'entité)

- une association M:N est représentée par la relation :

nom_de_l'association (

liste des identifiants des entités participantes, liste des attributs de l'association)

IUT de Nice - Cours SGBD1

28

• Ex . :

CLIENT (IdCli, nom, ville)

PRODUIT (IdPro, nom, prix, qstock)

VENTE (IdCli, IdPro, date, qte)

Représentation des données sous forme de tables :

CLIENT

PRODUIT

VENTE

IdCli X

Y

Z

IdPro P Q R S

IdCli X X X Y Y Z

Nom Smith

Jones

Blake

Nom Auto Moto Velo Pedalo

IdPro P Q R P Q Q

Ville Paris

Paris

Nice

Prix

Qstock

100 100 100 100

Date

Qte

10 10 10 10

1 2 3 4 5 6

LES AVANTAGES DU MODÈLE RELATIONNEL

IUT de Nice - Cours SGBD1

29

• SIMPLICITE DE PRÉSENTATION

- représentation sous forme de tables

• OPÉRATIONS RELATIONNELLES

- algèbre relationnelle

- langages assertionnels

•

INDEPENDANCE PHYSIQUE

- optimisation des accès

- stratégie d'accès déterminée par le système

•

INDEPENDANCE LOGIQUE

- concept de VUES

• MAINTIEN DE L’INTEGRITÉ

- contraintes d'intégrité définies au niveau du

schéma

IUT de Nice - Cours SGBD1

30

VI Bref historique, principaux systèmes

Années 60 Premiers développements des BD

fichiers reliés par des pointeurs

• • systèmes IDS 1 et IMS 1 précurseurs des SGBD

modernes

Années 70 Première génération de SGBD

• apparition des premiers SGBD • séparation de la description des données de la manipulation de celles-ci par les applications

• modéles hiérarchique et réseau CODASYL • • SGBD IDMS, IDS 2 et IMS 2

langages d'accès navigationnels

Années 80 Deuxième génération

• modèle relationnel •

les SGBDR représentent l'essentiel du marché BD (aujourd'hui)

• architecture répartie client-serveur

Années 90 Troisième génération

• modèles de données plus riches • systèmes à objets

OBJECTSTORE, O2

IUT de Nice - Cours SGBD1

31

Principaux systèmes

• Oracle • DB2 (IBM) • Ingres • Informix • Sybase • SQL Server (Microsoft) • O2 • Gemstone

Sur micro :

• Access • Paradox • FoxPro • 4D • Windev

Sharewares :

• MySQL • MSQL • Postgres • InstantDB

IUT de Nice - Cours SGBD1

32

Chapitre 2

Le modèle relationnel

I. LES CONCEPTS

II. LES DÉPENDANCES FONCTIONNELLES

III. LES RÈGLES D'INTÉGRITÉ

IV. LES FORMES NORMALES

IUT de Nice - Cours SGBD1

33

I LES CONCEPTS

• LE DOMAINE

• LA RELATION

• LES N-UPLETS

• LES ATTRIBUTS

• LE SCHÉMA D’UNE RELATION

• LE SCHÉMA D’UNE BDR

• LA REPRÉSENTATION

IUT de Nice - Cours SGBD1

34

(cid:137) LE DOMAINE

ensemble de valeurs atomiques d'un certain type sémantique

Ex. :

NOM_VILLE = { Nice, Paris, Rome }

• les domaines sont les ensembles de valeurs possibles

dans lesquels sont puisées les données

• deux ensembles peuvent avoir les mêmes valeurs

bien que sémantiquement distincts

Ex. :

NUM_ELV = { 1, 2, … , 2000 } NUM_ANNEE = { 1, 2, … , 2000 }

IUT de Nice - Cours SGBD1

35

(cid:137) LA RELATION

sous ensemble du produit cartésien de plusieurs domaines

R ⊂ D1 × D2 × ... × Dn

D1, D2, ... , Dn sont les domaines de R n est le degré ou l’arité de R

Ex.:

Les domaines : NOM_ELV = { dupont, durant } PREN_ELV = { pierre, paul, jacques } DATE_NAISS = {Date entre 1/1/1990 et 31/12/2020} NOM_SPORT = { judo, tennis, foot }

La relation ELEVE ELEVE ⊂ NOM_ELV × PREN_ELV × DATE_NAISS ELEVE = { (dupont, pierre, 1/1/1992),

(durant, jacques, 2/2/1994)

}

La relation INSCRIPT INSCRIPT ⊂ NOM_ELV × NOM_SPORT INSCRIPT = { (dupont, judo), (dupont, foot),

(durant, judo)

}

IUT de Nice - Cours SGBD1

36

(cid:137) LES N-UPLETS

un élément d'une relation est un n-uplet de valeurs (tuple en anglais)

• un n-uplet représente un fait

Ex.:

« Dupont pierre est un élève né le 1 janvier1992 »

« dupont est inscrit au judo »

• DEFINITION PRÉDICATIVE D’UNE RELATION

Une relation peut être considérée comme un PRÉDICAT à n variables

θ(x, y, z) vrai ⇔ (x, y, z) ∈ R

Ex. :

est_inscrit (dupont, judo) ⇔ (dupont, judo) ∈ INSCRIPT

IUT de Nice - Cours SGBD1

37

(cid:137) LES ATTRIBUTS

Chaque composante d'une relation est un attribut

• Le nom donné à un attribut est porteur de sens

• Il est en général différent du nom de domaine

• Plusieurs attributs peuvent avoir le même domaine

Ex. : La relation TRAJET :

TRAJET ⊂ NOM_VILLE × NOM_VILLE

Dans laquelle la première composante représente la ville de départ VD, la deuxième composante la ville d’arrivée VA d’un trajet.

IUT de Nice - Cours SGBD1

38

(cid:137) LE SCHÉMA D’UNE RELATION

Le schéma d'une relation est défini par : - le nom de la relation - la liste de ses attributs

on note :

R (A1, A2, ... , An)

Ex.:

ELEVE (NOM, PRENOM, NAISS) INSCRIPT (NOM_ELV, SPORT) TRAJET (VD, VA)

• Extension et Intension

- L'extension d'une relation correspond à l'ensemble

de ses éléments (n-uplets)

→ le terme RELATION désigne une extension

- L'intention d'une relation correspond à sa

signification

→ le terme SCHÉMA DE RELATION désigne l'intention d'une relation

IUT de Nice - Cours SGBD1

39

(cid:137) LE SCHÉMA D’UNE BDR

Le schéma d'une base de données est défini par : - l'ensemble des schémas des relations qui la composent

Notez la différence entre :

•

•

le schéma de la BDR qui dit comment les données sont organisées dans la base

l'ensemble des n-uplets de chaque relation, qui représentent les données stockées dans la base

• Conception de Schéma Relationnel

- Problème :

Comment choisir un schéma approprié ?

- Méthodologies de conception

→ cours ACSI

→ cours SGBD 2

Publicité

IUT de Nice - Cours SGBD1

40

(cid:137) LA REPRÉSENTATION

1 RELATION = 1 TABLE

U1

U2

U3

V1

V2

V3

W1

W2

W3

X1

X2

X3

Y1

Y2

Y3

1 ÉLÉMENT ou n-uplet = 1 LIGNE

LIGNE → 1 élément

U1

V1

W1

X1

Y1

∗ une relation est un ensemble ⇒ on ne peut pas avoir 2 lignes identiques

1 ATTRIBUT = 1 COLONNE

U1

U2

U3

↑ COLONNE 1 attribut ou propriété

IUT de Nice - Cours SGBD1

41

Exemples :

- La relation ELEVE

ELEVE :

élément →

NOM

dupont

durant

duval

PRENOM

NAISS

Pierre

Jacques

Paul

1/1/1992

2/2/1994

3/03/81

- La relation INSCRIPT

INSCRIPT :

NOM_ELV

SPORT

élément →

Dupont

Dupont

Durant

- La relation TRAJET

TRAJET :

élément →

VD

Nice

Paris

Rome

judo

foot

judo

VA

paris

rome

nice

IUT de Nice - Cours SGBD1

42

Fenêtre Création de Table d’Access

Affichage d’une table dans Access

Sélecteur d’enregistrement

Boutons de déplacement

IUT de Nice - Cours SGBD1

43

II LES DÉPENDANCES FONCTIONNELLES

(cid:137) Dépendance fonctionnelle

Soit R(A1, A2, ...., An) un schéma de relation Soit X et Y des sous ensembles de {A1,A2,...An) On dit que Y dépend fonctionnellement de X (X->Y) si à chaque valeur de X correspond une valeur unique de Y

on écrit :

X → Y

on dit que : X détermine Y

Ex.:

PRODUIT (no_prod, nom, prixUHT) no_prod → (nom, prixUHT)

NOTE (no_contrôle, no_élève, note) (no_contrôle, no_élève) → note

• une dépendance fonctionnelle est une propriété sémantique, elle correspond à une contrainte supposée toujours vrai du monde réel

D.F. élémentaire

D.F. X -> A mais A est un attribut unique non inclus dans X et il n’existe pas de X’ inclus dans X tel que X’ -> A

IUT de Nice - Cours SGBD1

44

(cid:137) La clé d’une relation

attribut (ou groupe minimum d'attributs) qui détermine tous les autres

Ex.:

PRODUIT (no_prod, nom, prixUHT) no_prod → (nom, prixUHT) no_prod est une clé

• Une clé détermine un n-uplet de façon unique

• Pour trouver la clé d'une relation, il faut examiner attentivement les hypothèses sur le monde réel

• Une relation peut posséder plusieurs clés, on les

appelle clés candidates

Ex.: dans la relation PRODUIT, nom est une clé candidate (à condition qu'il n'y ait jamais 2 produits de même nom)

IUT de Nice - Cours SGBD1

45

(cid:137) Clé primaire

choix d'une clé parmi les clés candidates

(cid:137) Clé étrangère ou clé secondaire

attribut (ou groupe d'attributs) qui fait référence à la clé primaire d'une autre relation

Ex.:

CATEG (no_cat, design, tva)

PRODUIT(no_prod, nom, marque, no_cat, prixUHT)

no_cat dans PRODUIT est une clé étrangère

CLÉ ÉTRANGÈRE = CLÉ PRIMAIRE dans une autre relation

IUT de Nice - Cours SGBD1

46

III LES RÈGLES D'INTÉGRITÉ

Les règles d'intégrité sont les assertions qui doivent être vérifiées par les données contenues dans une base

Le modèle relationnel impose les contraintes structurelles suivantes :

(cid:137) INTÉGRITÉ DE DOMAINE

(cid:137) INTÉGRITÉ DE CLÉ

(cid:137) INTÉGRITÉ RÉFÉRENCIELLE

• La gestion automatique des contraintes d’intégrité est l’un des outils les plus importants d’une base de données.

• Elle justifie à elle seule l’usage d’un SGBD.

IUT de Nice - Cours SGBD1

47

(cid:137) INTÉGRITÉ DE DOMAINE

Les valeurs d'une colonne de relation doivent appartenir au domaine correspondant

• contrôle des valeurs des attributs

• contrôle entre valeurs des attributs

IUT de Nice - Cours SGBD1

48

(cid:137) INTÉGRITÉ DE CLÉ

Les valeurs de clés primaires doivent être : - uniques - non NULL

• Unicité de clé

• Unicité des n-uplets

• Valeur NULL

valeur conventionnelle pour représenter une information inconnue

• dans toute extension possible d'une relation, il ne peut exister 2 n-uplets ayant même valeur pour les attributs clés

sinon 2 clés identiques détermineraient 2 lignes identiques (d'après la définition d’une clé), ce qui est absurde

IUT de Nice - Cours SGBD1

49

(cid:137) INTÉGRITÉ RÉFÉRENCIELLE

Les valeurs de clés étrangères sont 'NULL' ou sont des valeurs de la clé primaire auxquelles elles font référence

• Relations dépendantes

• LES DÉPENDANCES :

Liaisons de un à plusieurs exprimées par des attributs particuliers: clés étrangères ou clés secondaires

IUT de Nice - Cours SGBD1

50

Les contraintes de référence ont un impact important pour les opérations de mises à jour, elles permettent d’éviter les anomalies de mises à jour

Exemple :

CLIENT (no_client, nom, adresse) ACHAT (no_produit, no_client, date, qte)

Clé étrangère no_client dans ACHAT

• insertion tuple no_client = X dans ACHAT

(cid:214) vérification si X existe dans CLIENT

• suppression tuple no_client = X dans CLIENT

(cid:214) soit interdire si X existe dans ACHAT

(cid:214) soit supprimer en cascade tuple X dans ACHAT

(cid:214) soit modifier en cascade X = NULL dans ACHAT

• modification tuple no_client = X en X’ dans CLIENT

(cid:214) soit interdire si X existe dans ACHAT

(cid:214) soit modifier en cascade X en X’ dans ACHAT

IUT de Nice - Cours SGBD1

51

Paramétrage des Relations dans Access

• IdPro de Vente est une clé étrangère qui fait référence

à la clé primaire de Produit

• Appliquer l’intégrité référentielle signifie que l’on ne

pourra pas avoir, à aucun moment, une ligne de Vente avec un code produit IdPro inexistant dans la table Produit.

• Une valeur de clé étrangère peut être Null

IUT de Nice - Cours SGBD1

52

IV LES FORMES NORMALES

(cid:137) La théorie de la normalisation

• elle met en évidence les relations "indésirables"

• elle définit les critères des relations "désirables"

appelées formes normales

• Propriétés indésirables des relations

- Redondances

- Valeurs NULL

• elle définit le processus de normalisation permettant de décomposer une relation non normalisée en un ensemble équivalent de relations normalisées

IUT de Nice - Cours SGBD1

53

(cid:137) La décomposition

Objectif:

- décomposer les relations du schéma relationnel

sans perte d’informations

- obtenir des relations canoniques ou de base du

monde réel

- aboutir au schéma relationnel normalisé

• Le schéma de départ est le schéma universel de la

base

• Par raffinement successifs ont obtient des sous

relations sans perte d’informations et qui ne seront pas affectées lors des mises à jour (non redondance)

(cid:137) Les formes normales

5 FN, les critères sont de plus en plus restrictifs

FNj ⇒ FNi ( j > i )

• Notion intuitive de FN

une « bonne relation » peut être considérée comme une fonction de la clé primaire vers les attributs restants

IUT de Nice - Cours SGBD1

54

(cid:137) 1ère Forme Normale 1FN

Une relation est en 1FN si tout attribut est atomique (non décomposable)

Contre-exemple

ELEVE (no_elv, nom, prenom, liste_notes)

Un attribut ne peut pas être un ensemble de valeurs

Décomposition

ELEVE (no_elv, nom, prenom)

NOTE (no_elv, no_matiere, note)

IUT de Nice - Cours SGBD1

55

(cid:137) 2ème Forme Normale 2FN

Une relation est en 2FN si - elle est en 1FN - si tout attribut n’appartenant pas à la clé ne dépend

pas d’une partie de la clé

• C’est la phase d’identification des clés

• Cette étape évite certaines redondances

• Tout attribut doit dépendre fonctionnellement de la

totalité de la clé

Contre-exemple

une relation en 1FN qui n'est pas en 2FN

COMMANDE (date, no_cli, no_pro, qte, prixUHT)

elle n'est pas en 2FN car la clé = (date, no_cli, no_pro), et le prixUHT ne dépend que de no_pro

Décomposition

COMMANDE (date, no_cli, no_pro, qte) PRODUIT (no_pro, prixUHT)

IUT de Nice - Cours SGBD1

56

(cid:137) 3ème Forme Normale 3FN

Une relation est en 3FN si - elle est en 2FN - si tout attribut n’appartenant pas à la clé ne dépend

pas d’un attribut non clé

Ceci correspond à la non transitivité des D.F. ce qui évite les redondances.

En 3FN une relation préserve les D.F. et est sans perte.

Contre-exemple

une relation en 2FN qui n'est pas en 3FN

VOITURE (matricule, marque, modèle, puissance)

on vérifie qu'elle est en 2FN ; elle n'est pas en 3FN car la clé = matricule, et la puissance dépend de (marque, modèle)

Décomposition

VOITURE (matricule, marque, modèle)

MODELE (marque, modèle, puissance)

IUT de Nice - Cours SGBD1

57

(cid:137) 3ème Forme Normale de BOYCE-CODD BCNF

Une relation est en BCFN : - elle est en 1FN et - ssi les seules D.F. élémentaires sont celles dans lesquelles une clé détermine un attribut

• BCNF signifie que l'on ne peut pas avoir un attribut

(ou groupe d'attributs) déterminant un autre attribut et distinct de la clé

• Ceci évite les redondances dans l’extension de la

relation: mêmes valeurs pour certains attributs de n- uplets différents

• BCNF est plus fin que FN3 : BCNF ⇒ FN3

Contre-exemple

une relation en 3FN qui n'est pas BCNF

CODEPOSTAL (ville, rue, code)

on vérifie qu'elle est FN3, elle n'est pas BCNF car la clé = (ville, rue) (ou (code, ville) ou (code, rue)), et code → ville

IUT de Nice - Cours SGBD1

58

Chapitre 3

Présentation des données

Une fois la base et les tables créées, il faut pouvoir les exploiter.

L’utilisateur final aura besoin de visualiser et saisir des données,d’effectuer des calculs et d’imprimer des résultats.

La réponse à ces problèmes de présentation des données est fournie par :

• les formulaires

destinés à être affichés à l’écran

• les états

destinés à être imprimés.

IUT de Nice - Cours SGBD1

59

I Les formulaires

2 types de formulaires :

• de présentation des données

Ils permettent de saisir, ou modifier les données d’une ou plusieurs tables sous une forme visuellement agréable

• de distribution

ils ne sont attachés à aucune table, et servent uniquement de page de menu pour orienter l’utilisateur vers d’autres formulaires ou états

IUT de Nice - Cours SGBD1

60

Formulaire rudimentaire

Fenêtre Conception de Formulaire d’Access

IUT de Nice - Cours SGBD1

61

Formulaire avec sous-formulaire

Permet d’afficher les données de deux tables qui sont en relation l’une avec l’autre.

• Le formulaire principal affiche les données de la

table principale

• Le sous formulaire affiche les données de la

table liée

Publicité

Si l’utilisateur change d’enregistrement principal, le sous formulaire est automatiquement mis à jour.

IUT de Nice - Cours SGBD1

62

Création d’un formulaire de présentation

1) Définir la propriété Source de données (table ou

requête)

Cliquer ici avec le bouton droit, puis sélectionner Propriétés

Boîte des propriétés du formulaire

• Sélectionner l’onglet Données

• Définir la propriété Source (table ou requête)

IUT de Nice - Cours SGBD1

63

2) Insérer dans le formulaire les Zones de texte liées aux champs de la Source de données

a) Sélectionner l’outil Zone de texte

b) Insérer la Zone de texte avec son Etiquette associée

c) Définir la propriété Source contrôle de la Zone de texte

Pour afficher la fenêtre des propriétés d’un contrôle, cliquer dessus avec le bouton droit de la souris

IUT de Nice - Cours SGBD1

64

II Les états

Un état permet d’imprimer des enregistrements, en les groupant et en effectuant des totaux et des sous totaux.

En-tête d’état

→ Etat du Stock

En-tête de page → EEEnnntttrrreeeppprrriiissseee MMMIIICCCRRROOO

En-tête de groupe → Catégorie :

O

Détail

IdPro Désignation Ps Imac Aptiva

→ 10 20 30

Marque Ibm Apple Ibm

Pied de groupe → Sous totaux :

…

Pied de page

→ Jeudi 12 février 1998

Pied d’état

→ Total général :

Qstock 10 20 10

40

Page 1 sur 1

200

IUT de Nice - Cours SGBD1

65

Création d’un état

1) Définir la propriété Source de données (table ou

requête)

Cliquer ici avec le bouton droit, puis sélectionner Propriétés

IUT de Nice - Cours SGBD1

66

2) Définir Trier et grouper

IUT de Nice - Cours SGBD1

67

3) Placer les champs dans les différentes section

de l’état

IUT de Nice - Cours SGBD1

68

Chapitre 4

L’algèbre relationnelle

I. Les opérations

II. Le langage algébrique

IUT de Nice - Cours SGBD1

69

I Les opérations

L’Algèbre relationnelle est une collection d’opérations

(cid:137) OPÉRATIONS

- opérandes : 1 ou 2 relations

- résultat : une relation

(cid:137) DEUX TYPES D’OPÉRATIONS

(cid:206) OPÉRATIONS ENSEMBLISTES

UNION INTERSECTION DIFFÉRENCE

(cid:206) OPÉRATIONS SPÉCIFIQUES

PROJECTION RESTRICTION JOINTURE DIVISION

IUT de Nice - Cours SGBD1

70

(cid:137) UNION

L'union de deux relations R1 et R2 de même schéma est une relation R3 de schéma identique qui a pour n-uplets les n-uplets de R1 et/ou R2

On notera :

R3 = R1 ∪ R2

R1

A

B

∪

R2

A

0 2

1 3

B

1 5

0 4

R3 = R1 ∪ R2

R3

A

B

1 3 5

0 2 4

IUT de Nice - Cours SGBD1

71

(cid:137) INTERSECTION

L’intersection entre deux relations R1 et R2 de même schéma est une relation R3 de schéma identique ayant pour n-uplets les n-uplets communs à R1 et R2

On notera :

R3 = R1 ∩ R2

R1

A

B

∩

R2

A

0 2

1 3

B

1 5

0 4

R3 = R1 ∩ R2

R3

A

B

0

1

IUT de Nice - Cours SGBD1

72

(cid:137) DIFFÉRENCE

La différence entre deux relations R1 et R2 de même schéma est une relation R3 de schéma identique ayant pour n-uplets les n-uplets de R1 n'appartenant pas à R2

On notera :

R3 = R1 − R2

R1

A

B

−

0 2

1 3

R2

A

B

1 5

0 4

R3 = R1 − R2

R3

A

B

2

3

IUT de Nice - Cours SGBD1

73

(cid:137) PROJECTION

La projection d'une relation R1 est la relation R2 obtenue en supprimant les attributs de R1 non mentionnés puis en éliminant éventuellement les n- uplets identiques

On notera :

R2 = πR1 (Ai, Aj, ... , Am)

la projection d'une relation R1 sur les attributs Ai, Aj, … , Am

(cid:206) La projection permet d’éliminer des attributs d’une

relation

• Elle correspond à un découpage vertical :

A1

A2

A3

A4

IUT de Nice - Cours SGBD1

74

Requête 1 :

« Quels sont les références et les prix des produits ? »

PRODUIT (IdPro, Nom, Marque, Prix)

IdPro

P Q R S

Nom

PS1 Mac PS2 Word

Marque

IBM Apple IBM Microsoft

Prix

1000 2000 3000 4000

πPRODUIT (IdPro, Prix)

IdPro

Prix

P Q R S

1000 2000 3000 4000

IUT de Nice - Cours SGBD1

75

Requête 2 :

« Quelles sont les marques des produits ? »

PRODUIT (IdPro, Nom, Marque, Prix)

IdPro

P Q R S

Nom

PS1 Mac PS2 Word

Marque

IBM Apple IBM Microsoft

Prix

1000 2000 3000 4000

πPRODUIT (Marque)

Marque

IBM Apple Microsoft

Notez l’élimination des doublons..

IUT de Nice - Cours SGBD1

76

(cid:137) RESTRICTION

La restriction d'une relation R1 est une relation R2 de même schéma n'ayant que les n-uplets de R1 répondant à la condition énoncée

On notera :

R2 = σR1 (condition)

la restriction d'une relation R1 suivant le critère "condition"

où "condition" est une relation d'égalité ou d'inégalité entre 2 attributs ou entre un attribut et une valeur

(cid:206) La restriction permet d'extraire les n-uplets qui

satisfont une condition

• Elle correspond à un découpage horizontal :

A1

A2

A3

A4

IUT de Nice - Cours SGBD1

77

Requête 3 :

« Quelles sont les produits de marque ‘IBM’ ? »

PRODUIT (IdPro, Nom, Marque, Prix)

IdPro Nom

P Q R S

PS1 Mac PS2 Word

Marque

IBM Apple IBM Microsoft

Prix

1000 2000 3000 4000

σPRODUIT (Marque = ’IBM’)

IdPro Nom

Marque

Prix

P R

PS1 PS2

IBM IBM

1000 3000

IUT de Nice - Cours SGBD1

78

(cid:137) JOINTURE

La jointure de deux relations R1 et R2 est une relation R3 dont les n-uplets sont obtenus en concaténant les n- uplets de R1 avec ceux de R2 et en ne gardant que ceux qui vérifient la condition de liaison

On notera :

R3 = R1 × R2 (condition)

la jointure de R1 avec R2 suivant le critère condition

• Le schéma de la relation résultat de la jointure est la concaténation des schémas des opérandes (s'il y a des attributs de même nom, il faut les renommer)

• Les n-uplets de R1 × R2 (condition) sont tous les

couples (u1,u2) d'un n-uplet de R1 avec un n-uplet de R2 qui satisfont "condition"

• La jointure de deux relations R1 et R2 est le produit cartésien des deux relations suivi d'une restriction

• La condition de liaison doit être du type :

<attribut1> :: <attribut2>

où : attribut1 ∈ 1ère relation et attribut2 ∈ 2ème relation

:: est un opérateur de comparaison (égalité ou inégalité)

IUT de Nice - Cours SGBD1

79

(cid:206) La jointure permet de composer 2 relations à l'aide

d'un critère de liaison

R1(A, B, C)

A

B

C

A1 A2 A3 A4

B1 B2 B3 B4

10 10 20 30

R1 × R2 (R1.C = R2.U)

R2(U, V)

U

V

10 20 30

V1 V2 V3

A

B

C

U

V

A1 A1 A3 A4

B1 B2 B3 B4

10 10 20 30

10 10 20 30

V1 V1 V2 V3

IUT de Nice - Cours SGBD1

80

(cid:137) Jointure naturelle

Jointure où l'opérateur de comparaison est l'égalité dans le résultat on fusionne les 2 colonnes dont les valeurs sont égales

(cid:206) La jointure permet d'enrichir une relation

Requête 5 :

« Donnez pour chaque vente la référence du produit, sa désignation, son prix, le numéro de client, la date et la quantité vendue »

VENTE As V

PRODUIT As P

IdCli

IdPro Date Qte

IdPro Désignation Prix

X Y Z

P Q P

1/1/98 2/1/98 3/1/98

1 1 1

Publicité

P Q<