bases de donnees et sgbd - miage.ups-tlse.fr · sgbd relationnels standard sql sgbd objet sgbd...

157
BASES DE DONNEES et SGBD Conception Structure Organisation Michel Tuffery

Upload: vuongkhue

Post on 11-Sep-2018

245 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

BASES DE DONNEES et SGBDConceptionStructure

OrganisationMichel Tuffery

Page 2: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Bases de Données

Système de Gestion de Bases de Données

Présentation

Page 3: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 3

Historique des Systèmes de Gestion de Bases de Données (SGBD)

SGBD

Langages1965 1975 1985 1995 2005

IMS IDMSSOCRATE

System R DB2 INGRESORACLE INFORMIX

O2 ONTOSORION

ORACLE INFORMIX(OR)

AssembleurFortranCobolPL1

Pascal C C++ JAVA

SGBD Propriétaires(hiérarchiquesou réseaux)

SGBD relationnelsStandardSQL

SGBDObjet

SGBDObjet-Relationnel

Page 4: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 4

BD et SGBD : Définitions

BDUne Base de Données est un ensemble structuréd’informations enregistrées mis à la disposition de manière sélective à un ensemble d’utilisateurs

SGBDUn Système de Gestion de Base de Données permet de gérer toutes les informations stockées (Description, Consultation, Adjonction, Modification, Suppression, Autorisations) en toute sécurité dans un contexte multi-utilisateurs.

Page 5: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 5

Objectifs des Bases de Données

• Centraliser l’information– Ensemble unique de stockage– Non redondance de l’information

• Centraliser les contrôles– Contraintes d’intégrité au sein de la BD– Modifications aisées des règles de gestion

• Rendre indépendant les données et les programmes– Modification de la structure des données sans toucher aux

traitements• Faciliter l’accès aux données

– Langage standard d’accès aux données : SQL

Page 6: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 6

Fonctions d’un SGBD

• Décrire l’information– Création des objets avec leurs contraintes– Modification des structures et des contraintes– Gestion de l’espace disque

• Partager l’information– Droits et devoirs des utilisateurs– Notion de rôles et de privilèges

• Assurer la Sécurité de l’information– Reprise après incident

• Respecter l’Intégrité de l’information– Transaction : annulation ou confirmation

• Autoriser la Confidentialité des informations– Tout le monde ne peut pas voir et faire n’importe quoi

Page 7: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 7

SGBD Hiérarchiques : définitions

• Applications liées au langage COBOL• Associations de type Père-Fils• Encapsulation des objets fils avec le père• Attributs en occurrence (tableaux)• Associations N-N possibles en dupliquant la base

Page 8: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 8

SGBD Hiérarchiques : présentation

ENSEIGNANTCodeEnsEnomEgrade

MATIERECodeMatMnomMcoeffMheures

1

N

Association 1-N

EMPLOYECodeEmpnomEmpSalaire

PROJETCodeProjetBudgetProj

1

N EMPLOYECodeEmpnomEmp

PROJETCodeProjet

N

1

Association N-N

(par duplication !)

Page 9: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 9

SGBD Hiérarchiques : Avantages et Inconvénients

• Compréhension aisée pour les développeurs COBOL avec les occurrences

• Accès rapide à tous les objets fils pour un père nommé

• Accès lent pour chercher le père d’un fils nommé• Pas de sécurité des données : la suppression

d’un père entraîne la suppression de ses fils

SGBD Réseaux

Page 10: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 10

SGBD réseaux : définitions

• Amélioration des SGBD hiérarchiques• Associations N-N autorisées• Parcours des données en réseau• Notion de

RECORDet de SET

FOURNISSEURCodeFournomFourVilleFour

VENDREPrixUnitaireQteDelaiMinimum

1

N

PIECECodePieceLibelleCouleur

N

1

RECORD

SET

FOUR-VEN PIECE-VEN

Page 11: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 11

SGBD réseaux : structure physique

Tête d’anneau (OWNER) MEMBER

RECORD Père

RECORDs Fils

Page 12: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 12

SGBD réseaux : avantages et inconvénients

• Avantages– Problèmes des ajouts, suppressions, modifications

résolus– Sécurité des données– Accès rapide à l’information

• Inconvénients– Langage navigationnel : parcours des SET– Gestion des pointeurs physique à la charge du SGBD

SGBD Relationnels

Page 13: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 13

SGBD Relationnels : présentation succincte

• Représentation des données sous forme tabulaire (tables)

• Plus de pointeurs physiques : clés étrangères pour relier les données des différentes tables

• Pas d’occurrences autorisées : attributs simples• Langage standardisé pour structurer et accéder

aux données : SQL• SGBD indépendants des constructeurs

Page 14: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 14

BD Relationnelle :structure et accès aux données

TlseSylvie300ParisMichel200TlseJean100

Etudiant

IdEtu Nom Adresse

8oracleOr3Langage CC5Bases de D.Bd

UVIdUV NomUV Valeur

CoursIdEtu IdUV Note

13Or30014Bd20012Bd3008Or10015C10012Bd100

SELECT u.nomuv, u.valeurc.noteFROM etudiant e, uv u,

cours cWHERE e.idetu=c.idetu

AND c.iduv=u.iduvAND e.nom=‘Jean’

Page 15: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Structure d’une BD et d’un SGBD

Concepts généraux

Exemple avec Oracle

Page 16: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 16

Le Dictionnaire des données :un rôle essentiel

• Centralise les contrôles– Contrôles simples ou statiques– Contrôles dynamiques (Si insee(1)=2 alors sit_mil=null)– Contrôles de références fils-père (code_dip étudiant)– Contrôles complexes (3 emprunts maximum)

• Centralise les déclarations d’attributs– Plusieurs types possibles (char, varchar, ….)– Longueurs dynamiques ( nom varchar(40))

• Lien entre programmes et données– indépendance données – traitements :– aucune action physique sur les données– aucune modification de programmes

• Enregistre de nombreuses informations– informations statistiques (valeurs max , min )– informations de taille d’attributs ,… optimisation

Page 17: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 17

Le Dictionnaire des données :Organisation générale

SGBD

Dictionnaire de Données

Base de Données

Page 18: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 18

Le Dictionnaire des données :Organisation avec Oracle

• Tablespace spécial (system)– Présenté sous forme de tables SQL :

SELECT * FROM USER_TABLES ;– Trois types d’objets : USER_, ALL_ et DBA_– Uniquement en mode lecture pour l’utilisateur

• Sauvegarde obligatoire , toujours en ligne• Utilisation

– Les renseignements nécessaires sont chargés en mémoire centrale

– Le système conserve en mémoire les informations pour l’utilisateur

Page 19: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 19

Les composants d’une base de données :Objets physiques (données)

• Les tables contenant les données• Les fichiers index (primaire ou

secondaire)• Les clusters contenant les mélanges de

tables• Les fichiers de reprise (Logs)• Les fichiers de contrôle• Le dictionnaire de données • Les Snapshots

Page 20: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 20

Les composants d’une base de données :Objets physiques (programmes)

• Les traitements stockées– Packages– Procédures– Fonctions

• Les triggers ou déclencheurs– Mise à jour automatique de colonnes dérivées– Mise en œuvre de contraintes complexes– Génération automatique d’évènement

BD = Données + Programmes

Page 21: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 21

Les composants d’une base de données :Objets virtuels

• Les vues – Tables virtuelles– Schémas externes ou sous-schémas

• Les synonymes • Les database link

– Liens inter-bases• Les contraintes

Pas d’implémentation physique :

Activation à l’appel

Page 22: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 22

Notion de ‘base de données’ : Plusieurs ‘bases utilisateur’

• Notion de propriétaire (‘owner’) d’objets• Partage de la même base par plusieurs utilisateurs • L’utilisateur système : DBA système

– responsable de la ‘base’– sauvegarde et restauration – gestion des utilisateurs – gestion de l’espace disque – gestion des ressources système

• L’utilisateur propriétaire : DBA données – responsable de ses objets – délègue des droits sur ses objets à d’autres utilisateurs – gère ses propres sauvegardes

• L’utilisateur ’de base’ accède aux objets et aux actions autorisés

Page 23: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 23

Notion de ‘base de données’ : Notion de ‘rôle utilisateur’

• Le rôle DBA : équivalent du ‘root’ système• Le rôle RESOURCE : création et modification de

ressources (propriétaire)• Le rôle CONNECT : connexion à la base et

respect des privilèges reçus• Des rôles sur mesure :

– CREATE ROLE secr_scol ;– GRANT SELECT,INSERT ON etudiant TO secr_scol ;– GRANT SELECT,UPDATE(adr,tel) ON enseignant TO

secr_scol ;– GRANT secr_scol TO martine, simone ;

Page 24: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 24

Notion de ‘base de données’ : Instance

• 1 instance = 1 Base en mouvement• Plusieurs instances possibles sur une même machine (1

licence serveur)• Les composants d’une instance :

– un ensemble de process – un dictionnaire de données – autonomie complète (DBA)– liens possibles entre instances

• Pourquoi plusieurs instances ?– sécurisation de certaines bases– bases tests– répartition physique et administrative

Page 25: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 25

Base de Données en architectureClient-Serveur

• Le poste Client– Interface de présentation– Interface graphique

• Le Middleware– Drivers de communication

• Le Serveur– Base de données– Sécurité, Intégrité et Confidentialité

Page 26: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 26

Base de données en Client-ServeurLes composants du Client

Interface graphique extérieure

ODBC

SQL*Net

TCP/IP

Transport / Communication

Interface graphique de la base

Page 27: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 27

Base de données en Client-ServeurLes composants du Serveur

SGBD BD

Transport / Communication

TCP/IP

SQL*NET

Listener

Page 28: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 28

Bases de Données et Intranet

navigateur

Client léger Serveur Web

Serveur Applicatif

Serveur de Données

SGBDURL

HTML

HTTP

Pages.html

ObjetsMulti-média

Exécutiondu

programme

connexionrequêtes

résultats

Base de Données

Pages HTMLdynamiques

Page 29: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Conception d’une Base de Données

Le Diagramme de Classes UML

Page 30: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 30

Conception d’une BD : les niveaux

• conceptuel• logique• physique• externe

schémaphysique

schémaconceptuel

schémalogique

R1R2

Utilisateurs

Page 31: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 31

Conception d’une BD : les étapes

Monde Extérieur

Modélisation(UML)

Produits

idProdésignationpoids

Fournisseurs

idFourraisonSocialeadresse

FournirprixAchat

<< Association >>1 1* 1..*

Schéma Conceptuel : DC

Produits (IdPro, désignation, poids)

Fournir(IdPro, IdFour, PrixAchat)

Fournisseurs(IdFour, RaisonSociale, adresse)

Schéma Logique ou Relationnel

Règles depassage

Normalisation ?

Mise en œuvre

de la BD Schéma Physique

Page 32: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 32

Le Diagramme de Classes (DC) :concepts de base

• Classe– Ensemble d’objets concrets ou abstraits de même nature– Une classe est décrite par ses attributs, méthodes et

contraintes– Exemples : Etudiant, Employe, Produit, …

• Attribut– Propriété décrivant une classe– Valeur unique pour chaque classe– Exemple : nom, prenom, adresse , ….

• Identifiant– Attribut particulier permettant de repérer une occurrence – Exemple : idClient, idEtudiant, ….

• Association– Permet de relier une classe à une ou plusieurs autres–

Page 33: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 33

Le Diagramme de Classes :Notion d’Association

• Dimension d’une association– Nombre de classes entrant liées– Binaire : 2, Ternaire : 3, N-aire : n

• Nom d’une association– Verbe à l’infinitif : Appartenir, Fournir, …

• Multiplicité– Nombre minimum et maximum d’objets liés

1..*0..* ou *Multiplicité1..1 ou 10..1Unicité

ObligatoireOptionnelMinimum, Maximum

Page 34: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 34

Représentation des classes

ÉtudiantIneEtudiantNomEtudiantAdrEtudiant

Moyenne()Modules_obtenus()

Inscription_correcteNombre_inscrits_dip

Nom de la Classe

Attributs

Identifiant

Méthodes

Contraintes

ProcéduresStockées

Déclencheurs

Page 35: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 35

Associations de type Mère-Fille (1-N)

Diplome Etudiant

IdDipNomDipRespDip

IneEtudiantNomEtudiantAdrEtudiant*1

Un diplôme (classe mère) peut concerner aucun ou plusieurs étudiants (classe fille).

Un étudiant doit être inscrit à , au moins et au plus, un seul diplôme.

Inscrire

Page 36: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 36

Associations de type multiple (N-N)sans attributs

Etudiant Stage

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntrepriseRespStage

1..**

Choisir

Un étudiant doit choisir au moins un stage et peut en choisir plusieurs.

Un stage peut être choisi par aucun étudiant ou plusieurs.

Page 37: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 37

Associations de type multiple (N-N)avec attributs

Fournisseur Produit

IdFourNomFourAdrFour

IdProduitNomProduitQtéStock

* 1..*

Fournir

PrixDélaiLivraisonQuantitéMin

Classe d’association

Page 38: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 38

Associations de type multiple (N-N)N aires (N>2)

Fournisseur ProduitIdFourNomFourAdrFour

IdProduitNomProduitQtéStock

FournirPrixDélaiLivraisonQuantitéMin

Conditionnement

IdCondLibCond

1..*

*

*

Page 39: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 39

Associations de type symétrique (1-1)

Etudiant Stage

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntrepriseRespStageNote stage

10..1

Effectuer

Un étudiant effectue au moins un et un seul stage.

Un stage peut être effectué par aucun ou un seul étudiant.

(Une association de type 1-1 est souvent le résultat d’un éclatement de classe)

Page 40: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 40

Associations réflexives1-N réflexif

Enseignant

IdEnseignantNomEnseignantFonctionindice

Est responsable de

A pour responsable

*

0..1

Page 41: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 41

Associations réflexivesN-N réflexif

Produit

IdProduitLibelléProduitPrix

Est composé de

Entre dans la composition de

*

*

ComposerQuantité

Page 42: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 42

Assemblage de classes Reprise d’une classe d’association

• Certaines associations N-aires peuvent être transformées en plusieurs associations binaires

• On associe d’abord les deux classes les plus stables : stabilité du schéma

• La classe d’association se transforme en classe normale pour la troisième classe associée

• Merise parlait d’agrégation d’entités

Page 43: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 43

Reprise d’une classe d’associationAssociations de type 1-N et N-N

Joueur TournoiIdLicenceNomJoueurClassement

IdTournoiNomTournoiVilleDate

* *

ParticiperRésultat

AmendeIdAmendeMontant

* *Recevoir

Classesstables

Association N-Nsans attribut

PrixIdPrixMontant

Obtenir

0..1*Association 1-N

(La classe d’association ‘Participer’ est transformée en classe normale)

Page 44: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 44

Associations d’agrégation et de composition

EtudiantIneEtudiantNom

UVIdUVIntUV

InscrireNoteRésultat

* 1..8

En cas de suppression d’un étudiant : on supprime toutes ses inscriptions

On ne peut pas supprimer une UV ayant au moins un inscrit

Page 45: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 45

Généralisation et Spécialisation

PersonnelIdPersNomIndice

ChercheurSpécialitéLaboratoire

EnseignantSectionTitreHeuresCours

IngénieurGradeFonctionDomaine

Page 46: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Conception d’une Base de Données

Le Modèle Logique

Page 47: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 47

Conception d’une BD : les niveaux

• conceptuel• logique• physique• externe

schémaphysique

schémaconceptuel

schémalogique

R1R2

Utilisateurs

Page 48: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 48

Conception d’une BD : les étapes

Monde Extérieur

Modélisation(UML)

Produits

idProdésignationpoids

Fournisseurs

idFourraisonSocialeadresse

FournirprixAchat

<< Association >>1 1* 1..*

Schéma Conceptuel : DC

Produits (IdPro, désignation, poids)

Fournir(IdPro, IdFour, PrixAchat)

Fournisseurs(IdFour, RaisonSociale, adresse)

Schéma Logique ou Relationnel

Règles depassage

Normalisation ?

Mise en œuvre

de la BD Schéma Physique

Page 49: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 49

Schéma Logique : Schéma Relationnel Présentation

• Base théorique du langage SQL• Modèle basé sur les valeurs

– Di = {valeurs atomiques}• Attribut

– ai prenant sa valeur dans Di

• Relation– R[a1,..., an] définie sur les domaines D1, ..., Dn– R sous-ensemble du produit cartésien D1*D2*...*Dn

ETUDIANT (INE, NOM,ADRESSE)

INE = {100, 200, 300}NOM = {‘Sylvie’,’Patrick’}ADRESSE = {‘Toulouse’,’Montauban’}

Page 50: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 50

Schéma relationnelConcepts et Terminologie

• Relation : nom de la structure tabulaireregroupant les informations de même nature

• Tuple ou N-Uplet : ligne d’une relation• Attribut : nom du domaine • Clé primaire : attribut(s) permettant d’identifier

d’une manière unique une ligne • Clé étrangère : attribut(s) permettant d’identifier

d’une manière unique une ligne d’une autre relation (correspondant à une clé primaire)

• Clé candidate : attribut(s) pouvant se substituer àla clé primaire

Page 51: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 51

Schéma relationnelExemple

3Achats20

2Informatique10IdSer

SERVICE

NomSer NombreEmp

40010Thomas500

------10Claude400

------20Bernard300

40010Sylvie200

30020Michel100

EMPLOYE

IdEmp NomEmp IdSer IdEmp_Resp

Clés Primaires

Clés ÉtrangèresClé Candidate

Page 52: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 52

Schéma relationnelQuelques postulats

• Clé primaire– Obligatoire pour toutes les relations– Peut être composée de plusieurs attributs– Ne peut pas avoir de valeur indéfinie (NULL)

• Clé étrangère– Aucune ou plusieurs par relation– Peut être composée de plusieurs attributs– Contrainte d’Intégrité Référentielle

• Clé candidate– Accès rapide dans le schéma physique

Page 53: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 53

Passage du S. Conceptuel au S. RelationnelLes règles de passage

• Règle n°1 : Classes normales– Chaque classe devient une relation – L’identifiant de la classe devient la clé primaire de la relation

• Règle n°2 : Classes d’Associations 1-N (Mère-Fille)– Cette classe disparaît– La clé de la relation mère glisse dans la relation fille Clé

Étrangère• Règle n°3 : Classes d’Associations N-M (et n-aires)

– Cette classe devient une relation– La clé primaire est composée des clés associées (clé primaire

composée)• Règle n°4 : Classes d’Associations 1-1

– Cas particulier : expliqué plus loin• Règle n°5 : Généralisation et Spécialisation

– Expliqué plus loin

Page 54: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 54

Association 1-N : Exemple

Diplome Etudiant

IdDipNomDipRespDip

IneEtudiantNomEtudiantAdrEtudiant*1

Inscrire

DIPLÔME (IdDip, NomDip, RespDip)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant, IdDip#)

Page 55: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 55

Association N-N sans attribut : Exemple

Etudiant Stage

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntrepriseRespStage

1..**

Choisir

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

Page 56: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 56

Clé primaire composée : postulats

• Autant de composants que de classes associées (N-aires)

• Composée entièrement de clés étrangères• L’ordre des composants n’a pas d’importance

(pour le schéma relationnel)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

Page 57: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 57

Association N-N avec attributs : Exemple

Fournisseur Produit

IdFourNomFourAdrFour

IdProduitNomProduitQtéStock

* 1..*

Fournir

PrixDélaiLivQtéMin

FOURNISSEUR(IdFour, NomFour, AdrFour)

FOURNIR (IdFour #, IdProduit#, Prix, DélaiLiv, QtéMin )

PRODUIT (IdProduit, NomProduit, QtéStock)

Page 58: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 58

Association de type N-aires : Exemple

Fournisseur ProduitIdFourNomFourAdrFour

IdProduitNomProduitQtéStock

FournirPrixDélaiLivQtéMin

Conditionnement

IdCondLibCond

1..*

*

*

Page 59: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 59

Association de type N-aires : Exemple

FOURNISSEUR(IdFour, NomFour, AdrFour)

PRODUIT (IdProduit, NomProduit, QtéStock)

CONDITIONNEMENT (IdCond, LibCond)

FOURNIR (IdFour #, IdProduit#, IdCond#,

Prix, DélaiLiv, QtéMin )

Page 60: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 60

Association 1-N réflexive : Exemple

Enseignant

IdEnsNomEnsFonction

Est responsable de

A pour responsable *

0..1

ENSEIGNANT (IdEns, NomEns, Fonction, IdEns_Resp#)

(nul autorisé)

Page 61: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 61

Association N-N réflexive : Exemple

Produit

IdProduitLibProduitPrix

Est composé de

Entre dans la composition de *

*

ComposerQté

PRODUIT (IdProduit, LibProduit, Prix)

COMPOSER (IdProduitComposé#, IdProduitComposant#, Qté)

Page 62: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 62

Reprise de classe d’association : Exemple

Joueur TournoiIdLicenceNomJoueurClassement

IdTournoiNomTournoiVilleDate

* *

ParticiperRésultat

AmendeIdAmendeMontant

* *Recevoir

PrixIdPrixMontant

Obtenir

0..1*

Page 63: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 63

Reprise de classe d’association : Exemple

JOUEUR (IdLicence, NomJoueur, Classement)

TOURNOI (IdTournoi, NomTournoi, Ville, date)

PARTICIPER (IdLicence#, IdTournoi#, Résultat, IdPrix#)

PRIX (IdPrix, Montant)

AMENDE (IdAmende, Montant)

RECEVOIR (IdAmende#,(IdLicence,IdTournoi)#)

(nul autorisé)

2 clés étrangères

Page 64: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 64

Associations de type symétrique (1-1)Règle N°4 : 3 cas possibles

C1 C2IdC1 IdC2

Association

1 1

C1 (IdC1, ……., IdC2#)

C2 (IdC2, ………..)

C1 (IdC1, …….)

C2 (IdC2, ……….., IdC1#)

C1 (IdC1, …….)

C2 (IdC2, ………..)

Association (IdC1#, IdC2#)

UNIQUE

Valeurs nulles autorisées ou passelon les valeursminimums

Dans le cas d’uneassociation optionnelle

Page 65: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 65

Associations de type 1-1 : Exemple

Etudiant Stage

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntreprise0..10..1

Effectuer

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

STAGE (IdStage, ThèmeStage, Entreprise)

EFFECTUER (IdStage#, IdEtudiant#)

UNIQUE

Page 66: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 66

Généralisation et Spécialisation : Règle N°5

• Chaque classe devient une relation• Une ‘super classe’ peut contenir un attribut de

spécialisation• Chaque relation de l’ensemble possède la même

clé primaire• La vraie spécialisation avec l’héritage

correspondant sera pris en charge avec les SGBD Objet-Relationnel

Page 67: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 67

Généralisation et Spécialisation : Exemple

PersonnelIdPersNomIndice

ChercheurSpécialitéLaboratoire

EnseignantSectionTitreHeuresCours

IngénieurGradeFonctionDomaine

Page 68: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 68

Généralisation et Spécialisation : Exemple

PERSONNEL (IdPers, Nom, Indice, TypePers)

INGENIEUR (IdPers, Grade, Fonction, Domaine)

ENSEIGNANT (IdPers, Section, Titre, HeuresCours)

CHERCHEUR (IdPers, Spécialité, laboratoire)

Attribut de Spécialisation

Page 69: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 69

Notion de Dépendance Fonctionnelle (DF)

• Objectifs des DF• Conception du Schéma Logique• Aide à la normalisation des relations

• Définition• Soit a et b deux attributs, b est fonctionnellement

dépendant de a si à toute valeur de a correspond au plus une valeur de b (notation : a→b)

• Exemples et contre exemple• IneEtudiant → NomEtudiant• IneEtudiant → AdrEtudiant• NomEtudiant → AdrEtudiant

Page 70: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 70

Qualité des dépendances fonctionnelles

• DF Élémentaire• a→b est une DF élémentaire si ∀ a’⊂a alors a’→b

n’est pas une DF• IdLicence, IdTournoi, IdPrix → Résultat

est une DF non élémentaire

• DF Directe• a→b est une DF directe si il n’existe pas b⊄c et c⊄a

tel que a→c et c→b• une DF non directe est déduite par transitivité

Page 71: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 71

Propriétés des dépendances fonctionnelles

• Réflexivité – a attribut de R ⇔ a→a est une DF

• Transitivité– Si a→b et b→c sont des DF ⇒ a→c est une DF

• Pseudo-transitivité – a→b et b,c→d DF ⇒ a,c→d DF

• Additivité (union) – a→b et a→c DF ⇔ a→b,c est une DF

• Décomposition– a→b,c DF ⇔ a→b et a→c DF

• Augmentation– a→b DF et ∀ c ⇒ a,c→b DF

Page 72: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 72

Fermeture et couverture minimaled’un graphe F (ensemble de DF)

• Fermeture• la fermeture de F est l’ensemble de toutes les DF

résultant de l’application des propriétés des DF (réflexivité...)

• Exemple : soit F={ a→b ;b→c}, F+ est composée de 21 DF en plus (a→a ; b→b ; a→c...)

• Couverture minimale• la couverture minimale est un ensemble minimal de

DF (élimination des DF redondantes)• Exemple : F = {a→b1 ;b→c2 ; c→d3 ;a→d4 ; c,f→g5 ;

a→b,c6 ;a,f→g7}, la couverture minimale de F est {a→b1 ;b→c2 ; c→d3 ; c,f→g5}

Page 73: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 73

Conception directe du Schéma logique :deux approches possibles

• Approche par Décomposition– Notion de Forme normale– Décomposition ou normalisation

• Approche par Synthèse– Étude des DF– Construction directe du schéma normalisé

Page 74: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 74

Approche par Décomposition :Normalisation

• Schéma• Ensemble de relations• Ensemble de DF

• Objectifs de la normalisation• Classification des relations• Minimiser la redondance d’informations• Préserver l’intégrité des informations

• Dénormalisation• Diminuer le nombre de relations• Réduire les futures jointures

Page 75: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 75

Approche par Décomposition :les formes normales

• 1e forme normale • Tous les attributs non clé sont en DF avec la clé • Pas d’attributs tableaux

• 2e forme normale• Déjà en 1e forme normale• Toutes les DF issues de la clé sont des DF élémentaires

• 3e forme normale• Déjà en 2e forme normale• Toutes les DF issues de la clé sont des DF directes

• 4e forme normale : test de validité du schéma• Déjà en 3e forme normale• Pas de DF à l’intérieur d’une clé

Page 76: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 76

Approche par Décomposition :Les étapes de décomposition

ETDIANT(Ine, nom, adresse, Matières(IdMat, LibMat, IdRespEns,

NomRespEns, Partiels(IdPar, LibPar, Note)))

ETUDIANT

Ine Nom Adresse Matières

IdMat LibMat IdRespEns NomRespEns Partiels

IdPar LibPar Note

(n)

(m)

(n)

(m)

Page 77: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 77

Approche par Décomposition :Les étapes de décomposition (suite)

ETDIANT(Ine, nom, adresse, Matières(IdMat, LibMat,

IdRespEns, NomRespEns, Partiels(IdPar, LibPar, Note)))(n)

(m)ONF

1NF

Élimination des attributs tableaux : éclatement des relations imbriquées

ETDIANT(Ine, nom, adresse)

MATIERES(Ine,IdMat, LibMat, IdRespEns, NomRespEns)

PARTIELS(Ine,IdMat,IdPar, LibPar, Note)

2NF

Élimination des DF non élémentaires

../

Page 78: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 78

Approche par Décomposition :Les étapes de décomposition (suite et fin)

2NF

ETDIANT(Ine, nom, adresse)

MATIERES(IdMat, LibMat, IdRespEns, NomRespEns)

COURS(Ine, IdMat)

PARTIELS(IdPar, LibPar, IdMat)

NOTES(Ine,IdPar, Note)

3NF

Élimination des DF non directes ou transitives

ETDIANT(Ine, nom, adresse)

MATIERES(IdMat, LibMat, IdRespEns#)

ENSEIGNANT(IdRespEns, NomRespEns)

COURS(Ine#, IdMat#)

PARTIELS(IdPar, LibPar, IdMat#)

NOTES(Ine#,IdPar#, Note)

4NF : OK

(IdMat est en occurrence avec Ine)

Page 79: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 79

Avantages de la Normalisation

• Non redondance de l’information– Pour une matière donnée, on n’enregistre pas toute

l’information sur son enseignant responsable• Mise à jour facilitée

– MAJ de l’intitulé d’un partiel : 1 fois• Accès identique à toutes les informations

– Jointures identiques• Sécurité de l’information assurée

– On n’attend pas les notes pour enregistrer les informations sur un partiel

Constructions d’une base à partir de fichiers existants

Page 80: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 80

Approche par Synthèse : Présentation

• Généralités• Concevoir ou modifier un schéma• Point de départ : F = {a→b1 ;b→c2, … }, résultat

schéma relationnel normalisé : R1[a, b, …]...• Étapes

• Construction de l’ensemble départ des DF• Suppression des DF redondantes déduites par

transitivité, union et décomposition• Regroupement des DF ayant même partie gauche

dans des sous ensembles, les DF de type x→y et y→x doivent être regroupés dans le même sous ensemble

Page 81: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 81

Approche par Synthèse :la démarche

• 1ére étape : suppression des DF redondantes– Déduite par transitivité, union, décomposition– Exemple : a→b1, b→c2, c→d3, a→d4 la dernière est

redondante• 2éme étape : regroupement des DF

– DF ayant même partie gauche sont regroupés dans des sous ensembles

– DF de type x→y et y→x doivent être regroupés dans le même sous ensemble

• 3éme étape : relations (3 NF) – Chaque sous ensemble devient une relation dont la clé

primaire est la partie gauche des DF du sous ensemble

Page 82: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 82

Approche par Synthèse :Exemple de mise en oeuvre

• Point de départ : – A = {a, b, c, d, e, f, g, h, j, k} – F = {a→b1 ; a→c2 ; a,b,h→e,g3 ; h→j4 ; j→k5 ; h→k6 ;

b→a7}• 1ére étape : suppression des DF redondantes

– 6 est redondante car elle peut être obtenue avec 4 et 5 par transitivité : h→j ; j→k donne h→k

– 1 et 3 permettent de simplifier 3 par pseudo-transitivitéa→b et a,b,h→e,g donne a,a,h→e,g a,a,h→e,g donne a,h→e,g3

Page 83: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 83

Approche par Synthèse :Exemple de mise en œuvre (suite)

• 2éme étape : regroupement des DF– même partie gauche E1 = {a→b1 ; a→c2} ; E2 = { a,h→e,g3} E3 = {h→j4} ; E4 = {j→k5} ; E5 = {b→a7}

– x→y et y→xE1 = {a→b1 ; a→c2 ; b→a7} et E5 = {b→a7}

• 3éme étape : relations (4 NF)– R1[a,b,c]– R2[a#,h#,e,g]– R3[h,j#]– R4[j,k]

Page 84: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

LangageRelationnel

Graphe deRequêtes

Page 85: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 85

Présentation

• Basé sur la théorie des ensembles– relations , opérateurs et opérandes– Opérateurs : relationnels, de test (<, >, = , …) et

booléens (ET, OU, NON)– Opérandes : constantes ou variables

• Recherche d’informations sur les relations par langage algébrique– Résultat d’une recherche : relation– Base du langage SQL

GRAPHE DES REQUETES

Page 86: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 86

Opérateurs relationnels

• Opérateurs unaires– Sélection– Projection

• Opérateurs binaires– Union– Intersection– Différence– Division– Produit Cartésien– jointure

Opérateurs ensemblistes

Page 87: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 87

Sélection

• Définition– Une sélection appliquée sur la relation R1[a1,...,an], selon

le prédicat p1 (condition) donne une relation R2[a1,...,an] ayant les n-uplets satisfaisant la condition

• Symbole utilisé

R1

R

Prédicat de Sélection

Page 88: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 88

Sélection : exemple

24Jérôme50023Laurent40011Corinne30023Michel20021Sylvie100

ETUDIANTIne Nom Groupe Année

ETUDIANT

R

Année = 2ET Groupe = 3

RIne Nom Groupe Année

23Laurent40023Michel200

Étudiants du groupe 3de deuxième année ?

Page 89: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 89

Projection

• Définition– la projection de la relation R1[a1,...,an] sur les attributs

ai,...,am (ai,...,am ⊂a1,...,an) est une relation R2[ai,...,am]– Pas de duplication des n-uplets résultats

• Symbole utilisé

R1

R

ai,...,am

Page 90: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 90

Projection : exemple

24Jérôme50023Laurent40011Corinne30023Michel20021Sylvie100

ETUDIANTIne Nom Groupe Année

Quelles sont les annéesexistantes ?

ETUDIANT

R

Année

R

21

Année

Page 91: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 91

Union

• Définition– Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de

même schéma , – Le résultat de l’union R contient les tuples de R1 et les

tuples de R2 qui n’appartiennent pas à R1 – Opérateur commutatif

• Symbole utilisé

R1 R2U

R1 R2

R

U

Page 92: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 92

Union : Exemple

CLIENTS_TOULOUSE (IdCli, nom, adresse)CLIENTS_BORDEAUX (IdClient, nomclient, chiffre)

CLIENTS_TOULOUSE CLIENTS_BORDEAUX

U

nom nomclient

R R (nom)

Contient l’ensemble des clients de l’entreprise

Page 93: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 93

Intersection

• Définition– Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de

même schéma – Le résultat de l’intersection R contient les tuples qui

appartiennent, à la fois, à R1 et R2 – Opérateur commutatif

• Symbole utiliséR1 R2

R

∩R1 R2∩

Page 94: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 94

Intersection : exemple

CLIENTS_TOULOUSE (IdCli, nom, adresse)CLIENTS_BORDEAUX (IdClient, nomclient, chiffre)

CLIENTS_TOULOUSE CLIENTS_BORDEAUX

nom nomclient

R R (nom)

Contient les clients de l’entreprise à la fois, de Toulouse et Bordeaux

Page 95: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 95

Différence

• Définition– Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de

même schéma , – Le résultat de la différence R contient les tuples de R1

qui n’appartiennent pas à R2– Opérateur non commutatif

• Symbole utilisé

R1 R2

R1 R2

R

Page 96: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 96

Différence : exemple

CLIENTS_TOULOUSE (IdCli, nom, adresse)CLIENTS_BORDEAUX (IdClient, nomclient, chiffre)

CLIENTS_TOULOUSE CLIENTS_BORDEAUX

nom nomclient

R R (nom)

Contient les clients de Toulouse qui ne sont pas à Bordeaux

Page 97: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 97

Division

• Définition– Soient R1[a1,...,an,b1,...,bn] et R2[b1,...,bn] deux relations telles

que la structure de R2 soit incluse dans la structure de R1– R = résultat de la division de R1 par R2– R est une relation de structure R[a1,...,an] qui contient les

tuples ti vérifiant :ti ∈ R (ti est un tuple de structure [a1,...,an])tj ∈ R2 (tj est un tuple de structure [b1,...,bn])ti,tj ∈ R1 (ti,tj est un tuple de structure [a1,...,an,b1,...,bn])

• Opérateur non commutatif• Sert à comparer un ensemble avec un autre ensemble (dit

de référence)

Page 98: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 98

Division (suite)

• Symbole utilisé

R1 R2

RR1 de schéma S1,S2R2 de schéma S2

R de schéma S1

Page 99: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 99

Division : exemple

blanc4P320dBM3noir4P318iBM2blanc2P316iBM1noir2P316iBM1

VEHICULE

Codev Nomv Portes Couleur

blancnoir

BICOLORE

Coloris

S1 S2

S2

Question : Quels sont les véhicules (Nomv) fabriquées en noir ET en blanc ?

Page 100: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 100

Division : exemple (suite)

VEHICULE BICOLORE

Nomv

R

316i

R

Nomv

Page 101: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 101

Produit cartésien

• Définition– Soient R1[a1,...,an] et R2[b1,...,bm] deux relations de schéma

différent, R = résultat du produit R1× R2– R est une relation de structure R3[a1,...,an,b1,...,bm] qui contient

les combinaisons des tuples de R1 et R2

• Opérateur commutatif

• Symbole utilisé

R1 R1

R

×

Page 102: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 102

Produit cartésien : exemple

Laurent300Michel200Sylvie100

ETUDIANT

Ine Nom

MathématiquesMATHAnalyseACSIBases de DonnéesBD

MATIERE

IdM NomM

Question : Créer la relation COURS (Ine, IdM) sachant que chaque étudiantsuit toutes les matières ?

Page 103: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 103

Produit cartésien : exemple (suite)

ETUDIANT MATIERE

×

Ine, IdM

COURS

COURSIne IdM

MATH300ACSI300BD300MATH200ACSI200BD200MATH100ACSI100BD100

Page 104: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 104

Jointure

• Définition– Soient R1[a1,...,an] et R2[b1,...,bm] deux relations, R =

jointure de ces relations avec un prédicat– R[a1,...,an,b1,...,bm] contient les tuples de R1 et de R2

résultant un produit cartésien vérifiant le prédicat• Opérateur fondamental (basé sur les valeurs)• Le prédicat contient une clause de jointure et

éventuellement d’autres conditions• Opérateur binaire commutatif

Page 105: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 105

Jointure (suite)

• Symbole utilisé

R1 R1

R

Prédicat

R1 de schéma S1R2 de schéma S2

R de schéma S1,S2

Page 106: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 106

Jointure : exemple

CLIENTS (IdCli, Nom, Adresse)OUVRAGES (IdOuv, Titre, Nbex)EMPRUNTS (IdCli#, IdOuv#, DateEmp)

Question : Nom et Adresse des clients ayant emprunté l’ouvrage ‘BD’ le ’10/10/2003’ ?

Page 107: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 107

Jointure : exemple (suite)

OUVRAGES

Titre = ‘BD’

idOuv

IdOuv= O.IdOuv ET DateEmp = ‘10/10/2003’

OUVRAGES O

idCli

IdCli=C.IdCli

CLIENTS C

Nom, Adresse

R

Page 108: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 108

Graphe des requêtes et SGBD

• Tous les SGBD R de type SQL mettent en œuvre un graphe de requêtes

• Oracle fournit une table (plan_table) montrant le schéma global

• Ce graphe permet d’optimiser les requêtes• Certains, comme SQL Server présentent ce

graphe sous forme graphique

Page 109: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 109

Exemple de graphe SQL Server

100 Michel Toulouse

200 Sylvie Toulouse

300 Laurent Toulouse

o1 BD

o2 SGBD

100 o1 2003-10-10

200 o1 2003-10-10

100 o2 2003-10-08

300 o2 2003-10-08

EMPRUNTCLIENT OUVRAGE

Question : Nom et Adresse des clients ayant emprunté l’ouvrage ‘BD’ le ’10/10/2003’ ?

SELECT c.nom,c.adresseFROM client c, emprunt e, ouvrage oWHERE o.titre=‘BD’AND o.idouv=e.idouv AND e.dateemp = ‘10/10/2003’ AND e.idcli=c.idcli

Michel Toulouse

Sylvie Toulouse

Page 110: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 110

Exemple de graphe SQL Server (suite)

Page 111: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 111

Exemple de graphe SQL Server (suite)

Page 112: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Le Modèle Physique des Données

Mise en œuvre d’une base de données

Page 113: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 113

Les 3 niveaux de Conception : termes utilisés

Clé étrangère

Clé étrangère

CléSecondaire

Clé Primaire

Clé Primaire

IdentifiantClé Primaire

ColonneAttributPropriétéRubrique

LigneTupleOccurrenceArticle

TableRelationClasseAssociation

Fichier

PhysiqueLogiqueConceptuelSGF

Page 114: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 114

Organisation physique des données

• Les données sont rangées dans des objets appelées ‘tables’

• L’ordre de création d’une table :CREATE TABLE employé …… ;

– crée la structure de la table dans le dictionnaire– nom et type de chaque colonne– les contraintes associées

• La table est associée à un ‘tablespace’• La table est crée avec des paramètres initiaux :

– paramètres de la commande ouparamètres du tablespace

Page 115: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 115

Organisation physique et logiquedes données

Logique (BD) Physique (OS)

Tables

Tablespace T1Fichier FT11

Tables

Tablespace T2

Fichier FT21

Fichier FT22

Tables

Page 116: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 116

Schéma conceptuel de la structure physique d’une base

Database Tablespace1 1..*

Extent1..*1

Fichier OS

Bloc

1..*1

1..*11..*1

Extent utiliséExtent Libre Segment1..* 11

1..*

Index Cluster Data Rollback Temporary

Page 117: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 117

Notion de Tablespace

• Unité logique de stockage des données• Un ou plusieurs fichiers• Peut être désactivé (OFF LINE) sauf celui

contenant le dictionnaire de données (système)• Allocation par défaut à l’utilisateur pour stocker

ses objets• Sauvegarde et restauration limitée • Distribution des informations sur plusieurs unités • Paramètres d’allocation par défaut pour les

données

Page 118: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 118

Tablespace système

• Créé à la création de la database• Contient :

– le dictionnaire de données– procédures, fonctions, packages et triggers– le rollback segment system– les tables des produits Oracle

• Peut contenir des données utilisateur(déconseillé)

• Sauvegarde obligatoire

Page 119: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 119

Gestion d’un Tablespace

• Création d’un tablespace

create tablespace stagiairedatafile ‘usr/oracle/dbs/tssta.ora/’size 10Mdefault storage

(initial 100Knext 10Kpctincrease 0minextents 1maxextents 100

)online ;

Page 120: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 120

Gestion d’un Tablespace (suite)

• Modification d’un tablespace

• Suppression d’un tablespace

alter tablespace nomadd datafile ‘spécification fichier’size taillerename datafile ancien_nom to nouveau_nomdefault storage (clauses storage)online

normal | temporary | immediate;

drop tablespace nomincluding contentscascade contraints ;

suppressiondessegments

Page 121: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 121

Notion de Segment

• Ensemble d’extensions logiques et de blocs physiques

• Plusieurs types de segments :– segments de données (table, index et cluster)– segment d’index– segment rollback– segment temporaire– segment de démarrage– segments libres

Page 122: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 122

Le segment de données : la table

• Création d’une table

• Suppression d’une table

create table nom(colonne1 type(longueur),colonne2 type(longueur),constraint nom_contrainte

type_contrainte,)pctfree valeur1pctused valeur2storage ( idem tablespace )tablespace nom_tablespacecluster nom_cluster(colonne);

%libre aux insertions

drop table nomcascade contraints ;

Page 123: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 123

Le segment de données : la tableLes contraintes

• Contraintes de tables– - unique– - primary key– - foreign key– - check

• Contraintes de colonnes- not null

• Mises à la création de la table– - dans le dictionnaire de données– - nom de contrainte

Page 124: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 124

Le segment de données : la tableLes contraintes (suite)

• Contraintes ajoutées

• Contraintes supprimées

• Contraintes désactivées

• Contraintes activées

alter table nomadd contraint nom_contraintetype_contrainte;

alter table nomdrop contraint nom_contrainte [cascade];

alter table nomdisable contraint nom_contrainte [cascade];

alter table nomenable contraint nom_contrainte[exceptions into nom_table_rejets];

Page 125: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 125

Modification de la structure une table

• Ajout d’une nouvelle colonne

• Modification d’une colonne

• Suppression d’une colonne : attention danger !

alter table nom add(colonne1 type(longueur),colonne2type(longueur)) ;

alter table nom modify(colonne1 type(longueur),colonne2 type(longueur)) ;

alter table nom drop column nom_colonne;

Page 126: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 126

Format d’un bloc de données

EN TETE DU BLOCListe des tables

(cluster)

Liste des lignes

ESPACELIBRE

DONNEES

I ème tablespace

J ème bloc

K ème ligne

ROWID (I, J, K)

Page 127: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 127

Le segment de données : le clusterPrincipe

• Assemblage de tables mère-fille• Dans chaque bloc : une ligne mère avec les lignes filles• La jointure est déjà faite physiquement

Bloc 1

Bloc 2

INFO, Informatique

COM, Commercial

100, Michel, Toulouse300, Sylvie, Blagnac

200, Laurent, Toulouse400, Thomas, Albi

SERVICE

EMPLOYE

Page 128: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 128

Cluster : création et utilisation

• Création du cluster

• Création de l’index

• Création des tables en cluster

create cluster personnel (no_ser number) size 10Kstorage (initial 100Knext 50K pctincrease 10);

create index ind_person cluster personnel;

create table service(………)cluster personnel(no_ser) ;create table employe(………)cluster personnel(no_ser) ;

Page 129: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 129

Le segment de données :Les index

• Index unique ou non• Optimisation des recherches• Unicité de la clé• Organisés en B-Arbre• Création d’un index

• Suppression d’un index

create [unique] index nom_fichieron nom_table (colonne1[,colonne2..])tablespace nom_ts storage (clauses) ;

drop index nom_fichier ;

Page 130: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 130

Le segment de rollback:Le rollback segment

• Fichier ‘image avant’ pour :– les lectures consistantes – l’annulation de la transaction – les reprises ‘à chaud’

• Premier rollback segment crée dans le tablespacesystem

• Il faut en créer au moins un autre • Nombre en fonction du débit transactionnel

– nombre de transactions simultanées / 4 (<50) – utilisation automatique par oracle

Page 131: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 131

Le segment de rollback:Le rollback segment (suite)

• On peut orienter une transaction vers un rollback segment particulier :

• Le système utilise les extents libres du tablespace• On peut orienter une transaction vers un rollback segment

particulier• Création d’un rollback segment

– le segment doit être actif :

set transaction use rollback segmentnom_rs ;

create rollback segment nom_rstablespace nom_tsstorages (clauses) ;

alter rollback segment nom_rsonline | offlinestorage (clauses) ;

Page 132: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 132

Le segment temporaire:Le temporary segment

• Utilisé si la mémoire n’est pas suffisante :– jointures– sous - interrogations– create index ..– select ..order by, distinct, group by, union, intersect,

minus

• Utilisé par défaut dans le tablespace courant• Possibilité de dédier un tablespace temporaire à

un utilisateur

Page 133: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Les fonctions assurées par un SGBD

SécuritéIntégrité

Confidentialité

Mise en œuvre avec Oracle

Page 134: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 134

Les fonctions essentielles d’une base de données

• Sécurité– Reprise après incident– Journalisation des transactions

• Intégrité– Problème des accès concurrents– Verrouillage des ressources– Interblocages : détection et résolution

• Confidentialité– Droits d’accès– Sous-schémas ou schémas externes

Page 135: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 135

Sécurité : notion de transaction

• Suite finie d’actions portant sur des objets

• Principe du « tout ou rien »– Toutes les actions doivent être exécutées correctement– Point de confirmation ou de validation

• Condition indispensable pour assurer la cohérence de la base de données

T = < [ Ai, Oi], i=1,n>

Page 136: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 136

Transaction : ACID

• Atomicité– Les opérations d’une transaction sont atomiques (tout

ou rien)• Cohérence

– Passage d’un état cohérent à un autre état cohérent• Isolation

– Degré total d’isolation entre deux transactions concurrentes

• Durabilité– Effets durables même en cas de panne (persistance)

Page 137: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 137

Sécurité : exemple de transaction

BD : état cohérentDEBUT TRANSACTION

FIN TRANSACTION

Lire livre ‘SGBD’ (nombre_disp = 50)

Ajouter dans emprunt (client/livre)

nombre_disp = nombre_disp –1 ;

Modifier dans livre (nombre_disp)Si problème ici ????

Page 138: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 138

Sécurité : les vies possibles d’une transaction

• Vie sans histoire– La transaction arrive sur la fin– Point de confirmation : commit

• Un assassinat– Arrêt par un événement extérieur– Arrêt par le sgbd lui même (dead lock)– Le système fait marche arrière (rollback) et annule les

actions déjà effectuées• Un suicide

– Arrêt et annulation par la transaction elle même (rollback)

Page 139: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 139

Sécurité : journalisation des transactions

• Principe général– Conservation de la trace des opérations sur la base

dans un fichier– Plusieurs copies physiquement séparées

• Les informations enregistrées– Utilisateur, date , …– Code de l’opération (insert, update, delete)– Ancienne valeur – nouvelle valeur– commit et rollback

• Les sauvegardes sont notées

Page 140: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 140

Sécurité : travail et sauvegarde

• Travail normal sur la base

• Sauvegarde

Transaction 1Update …Insert …Delete …

Transaction 2Update …Insert …Delete …

SGBD

BD

JOURNAL

SGBD

BD

JOURNAL

SAUVEGARDE

SGBD

Page 141: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 141

Sécurité : les reprises

• Reprise « à chaud »

• Reprise « à froid » : RECOVERY

BD

JOURNAL

SGBD

SAUVEGARDE(J-1)

JOURNAL(J)

RECOVERY

BD(J)

Page 142: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 142

Sécurité : reconstruction de la base ou « recovery »

• Lecture arrière du journal et conservation d’informations sur les transactions

• Exemples de reprises

temps

Transactions

sauvegarde

Panne

T5

T4

T1

T3

T2

Page 143: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 143

Intégrité : accès concurrents et partage des ressources

• Plusieurs transactions accèdent simultanément aux mêmes ressources

• Lecture des données mémoire locale• Calcul nouvelle valeur re-écriture ! !

Transaction 1 Transaction 2

Lire nb_places(10) Lire nb_places

(10)nb_places=-5

(5) nb_places=-3(7)

Update nb_places(5)

Update nb_places(7)

État incohérent

Page 144: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 144

Intégrité : problème des accès concurrents

• Une solution : l’exclusion mutuelle (verrouillage)

Transaction 1 Transaction 2

Lire nb_placesavec verrou

(10) Lire nb_placesAvec verrou

nb_places=-5(5) ATTENTE

Update nb_places

(5)

Lire nb_placesAvec verrou

(5)

Commit

File d’attente sur les verrous

1er arrivé 1er

servi

Page 145: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 145

Intégrité : problème du verrouillage des ressources

Transaction 1 Transaction 2

Lire vol1 avec verrou Lire vol2 avec

verrouTravail

Travail

Lire vol2 avec verrou

Lire vol1 avec verrouATTENTE

ATTENTE

INTERBLOCAGE

DEAD LOCK

Page 146: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 146

Intégrité : résolution des interblocagesMéthode préventive

• Toutes les ressources nécessaires à la transaction sont verrouillées au départ

• Problème : cas des transactions qui ne démarrent jamais !

• Méthode peu utilisée aujourd’hui

Page 147: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 147

Intégrité : méthode préventive

• Exemple de situation blocage

• Le système note l’attente de T3, arrête T4 et l’annule, lance T3 et reprend éventuellement T4

T1 T2 T3 T4

Verrou R1Verrou R2

VerrouR1, R3Travail

Travail

FIN FIN

Attente VerrouR2, R3

Travail

Page 148: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 148

Intégrité : méthode curative

• Le SGBD permet les interblocages et les transactions peuvent verrouiller à tout moment

• Détection de l’interblocage– Consultation (péroidique ou lors d’une attente) du graphe QAQ– Détection d’un cycle

• Résolution de l’interblocage– Arrêt et annulation de la transaction la « moins lourde »

(assassinat)– Poursuite et fin de l’autre, reprise éventuelle et fin de la

transaction annulée

T1 T2

T3 T4

Page 149: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 149

Confidentialité dans les bases de données

• Principe : « Tout le monde ne peut pas VOIR et FAIRE n’importe quoi »

• Restriction de la VISION– Utilisation de sous – schémas ou schémas externes– Objets virtuels : les vues

• Restriction des ACTIONS– Délégation de privilèges avec l’ordre GRANT– Rôles utilisateurs– Encapsulation des données

Page 150: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 150

Confidentialité : principe

Identification(nom, code)

Authentification(agorithme,

voix, carte,…)

Reconnaissance de l’utilisateur

EntréeUtilisateur

Affectation d’un Rôle

(sous-schéma)salaire

update oui

Autorisationsd’accès

Page 151: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 151

Gestion des accès concurrents avec Oracle :Lecture consistante au niveau ligne

• Même vision des données du début à la fin d’une interrogation

• Vue fixe ou « cliché » pour l’interrogation (utilisation des rollback segment)

• Exemple : montant des soldes des comptes de dépôt avec de nombreuses transactions de virement de comptes :

SELECT sum(solde) INTO somme FROM comptes ;

Page 152: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 152

Lecture consistante multi version

• Problème : plusieurs lectures consistantes• Oracle permet de conserver un cliché pour plusieurs lectures :

• SET TRANSACTION READ ONLY ;

• Exemple:

EXEC SQL set transaction read only ;

Lire code_uer

Tant_que code_uer # ‘fin’ Faire

EXEC SQL select count(*) INTO n

FROM etudiant WHERE uer= :code_uer ;

Afficher(n,’étudiants de’,code_uer)

Fin_tant_que

EXEC SQL commit ;

Les changements d’uerne sont pas « vus »durant les interrogations

Page 153: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 153

Points de confirmation implicites

• Dans les versions antérieures, Oracle exécutait un rollback complet de la transaction sitôt un problème rencontré

• Impossible de continuer la transaction• Aujourd’hui, Oracle pose des points de

confirmations implicites à chaque action : « statement level rollback »

• L’utilisateur peut donc choisir :– Effectuer lui même un rollback– Tenter de poursuivre la transaction

Page 154: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 154

Points de confirmation explicites

• Possibilité de poser des points de confirmation (pas de validation) explicitesEXEC SQL savepoint nom_save_point ;

• Possibilité de défaire jusqu’au point de confirmation • Exemple :

EXEC SQL insert into employe values(…) ;

EXEC SQL savepoint apres_insert ;

EXEC SQL delete from employe where … ;

IF %rowcount>50 THEN

EXEC SQL rollback to apres_insert ;

EXEC SQL commit ;

ELSE

EXEC SQL commit ;

END IF ;

Page 155: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 155

Modification en accès concurrent : modification sans verrouillage

• Modifications sans précaution : attention au problème des transactions concurrentes

• EXEC SQL update employe set salaire=salaire*1.1 where catégorie= :cat ;

– Lectures simultanées – Écritures avec écrasement (et verrouillage)

• Éviter dans un contexte transactionnel concurrent

Page 156: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 156

Modification en accès concurrent : modification avec verrouillage préventif

• Les lignes sélectionnées sont verrouillées préventivement

• Utilisation d’un cursor : le verrouillage est effectif à la fin de l’ouverture (sélection des lignes)

• EXEC SQL declare cursor c1 for select nom,salaire from employe where catégorie= :cat for update of salaire ;

• Les lignes sélectionnées sont chargées en SGA puis verrouillées

• EXEC SQL update employe set salaire=salaire*1.1 where current of c1 ;

Page 157: BASES DE DONNEES et SGBD - miage.ups-tlse.fr · SGBD relationnels Standard SQL SGBD Objet SGBD Objet-Relationnel. Michel Tuffery 4 BD et SGBD : Définitions BD Une Base de Données

Michel Tuffery 157

Les différents types de verrous

• Les verrous DDL (Data Dictionary Lokcs)– Le système interdit toute opération pendant une modification

structurelle– A l’inverse : le système interdit toute modification structurelle

si un utilisateur travaille sur la table• Trois types de verrous

– Exclusif : posé sur l’objet si aucun autre verrou (DDL ou DML) – Partagé : posé sur l’objet si l’un des ordres suivants est

utilisé : audit, noaudit, grant, revoke, comment, create table,create view, create synonym

– « Parsing » : posé chaque objet référencé dans un ordre SQL et utilisé pour déterminer si l’ordre SQL dans la zone de partage n’est pas obsolète (changement structure)