Upload
maiaerik
View
9
Download
0
Embed Size (px)
DESCRIPTION
sgbd
Citation preview
Systmes de Gestion des bases de donnes (SGBD) Sbastien Larribe
Objectifs des SGBD
Structurer les donnes :
- permet dobtenir lintgration
- lindpendance logique des donnes (indpendantes des traitements affrents)
Apprendre modliser le monde rel sous la forme dun MCD (Modle Conceptuel de
Donnes) :
- Apprendre lire des MCD
- Apprendre faire des MCD
- Situer le MCD dans la dmarche globale de conception de BD (Base de Donnes)
Piloter, Organiser et conduire une dmarche de projet en tant que MCD
La modlisation comme processus de conception
- Au dpart il y a un problme ou un besoin dans le monde rel
- La voie de rsolution du problme passe par une bonne reprsentation du
problme (Boileau)
- Il faut donc souvent savoir reprsenter un problme, et savoir changer de systme
de reprsentation en fonction de la nature du problme.
- Modliser revient donc laborer une vue partielle plus ou moins abstraite, dune
ralit existante en vue daugmenter la comprhension quon a de la ralit
associe.
- Le modle est correct sil permet de rpondre aux questions quon se pose, de
rsoudre des problmes identifis.
- Le modle est oprationnel sil peut tre excut par une machine
- Un modle est une reprsentation explicite par un utilisateur de sa comprhension
dune situation, de lide quil se fait dune situation
- Cette reprsentation peut sexprimer sous divers langages (mathmatiques,
artistiques, symboliques )
La modlisation est le passage dune smantique du monde rel une smantique formelle reprsentant le monde rel. (Formel veut dire par exemple que 1+1=2, sans aucun sens derrire, que ce soit une tarte + une tarte ou un tudiant + un tudiant, cest pareil)
Le choix dune mthode de modlisation
La mthode est :
- Une faon de voir (une philosophie)
- Une dmarche (une technique)
- Des outils (un formalisme voire des normes de reprsentation ou dexpression du
problme et des solutions)
o MERISE, UML
SI de Gestion
Stockage important dinformations, traitements de consultation, mise jour des
informations, gestion de clientle, accs distant
SI de Calcul scientifique
Simulations, imagerie, stockage des informations ncessaires aux calculs
SI Temps rel
Ractivit forte du SI : aide au pilotage auto sur les avions, surveillance centrales nuclaires,
info en temps rel
3 Axes de modlisation
STRUCTUREL : dcrit la structure du SI, aspect statique du SI (modlisation des donnes)
FONCTIONNEL : traitements oprs par le SI (modlisation des traitements (flots de
donnes))
COMPORTEMENTAL : dcrit lvolution du SI au cours du temps, dynamique de SI
(modlisation du comportement (automates, rseaux de Ptri ..))
Systme dinformation manuel expression des besoins modle conceptuel modle logique modle physique systme dinformation automatis
Conception
- Modle conceptuel de donnes (EA (Entit-Association), UML)
- Modle logique de donnes (relationnel, objet, rseau, hirarchique)
- Modle physique de donnes (Oracle, MySQL, Access)
La modlisation comme rsultat du processus
- LE point charnire entre utilisateurs (schmas externes) et les informaticiens (MLD)
- Le MCD est formel
Il sagit de construire une spcification non-ambige des besoins. Il sagit de lever toute ambigit du langage naturel
- Il existe des outils pour traduire directement un MCD en MLD puis gnrer le code
de cration de la base de donnes Mais pas doutils pour faire un MCD
Le MCD manipule des types de donnes
Ensemble (abstrait) dobjets qui possdent des caractristiques similaires et manipulables
par des oprations identiques
- entiers, rels, boolens, voiture
- [classe]
- Elment effectif, rel, correspondant un type de donnes
- 1, 2, 3.14116, ma_voiture
- [occurrence, instance]
Donc toutes les donnes
Schma de BD
- Etudiant (numEtu, nom, ville)
- Module (numMod, titre, coeff)
- Inscription (numEtu, numModule)
Instance de BD
- Etudiant (166, Dupont, Tours)
- Etudiant (188, Durant, Orlans)
- Module (1, SGBD, 7)
- Inscription (166, 3)
Le dictionnaire de donnes dun SGBD contient
Les informations relatives aux schmas et aux droits de toutes les BD dun SGBD. Il prend la
forme dune BD qui contient des donnes sur les BD. On gre ainsi les donnes des bases
comme nimporte quelles autres donnes
- P.CHEN ( The entity-Relationship Model - Towards a Unified View of Data , ACM
Transactions on Database Systems, mars 1976, n1)
Le Modle Conceptuel de Donnes (MCD)
Principales caractristiques
- Une reprsentation graphique simple et naturelle.
- Une puissance dexpression leve pour un nombre de symboles raisonnables.
- Un outil de dialogue entre acteurs techniques ou non.
- Une formalisation
Une entit est un type dobjet du monde rel pourvu dune existence propre
Une entit, abstraite ou concrte, se distingue des autres entits (Ex : Un client, une
commande, un produit )
Chaque entit a des proprits ou attributs qui la dcrivent
Chaque attribut est associ un domaine de valeurs potentielles (Ex : numro dtudiant
cod sur 1 ou 2 octets ?)
Un attribut est lmentaire, il ne peut tre driv dautres attributs (Ex : ge VS
date_de_naissance)
Loccurrence dune entit est un lment particulier associ un lment du monde rel.
Une occurrence a UNE valeur dans le domaine pour chacun des attributs de lentit (et la
combinaison des valeurs est unique)
- Un attribut est atomique (cest--dire quil na quune valeur pour un lment
particulier. Ex : pour lentit *lve+ on prend llment Maurice, avec pour attribut
[nom] et [prnom]. Eh bien les attributs [nom] et [prnom] ne peuvent contenir
quune valeur chacun)
- Un attribut cl (qui sera unique et qui permettra didentifier un lment, on lappelle
par convention id )
Une interaction perue dans le rel entre 2 ou plusieurs entits est modlise par une
association
Qualifie par des attributs
Prend la forme doccurrences (Ex: Passation dun commande par un client)
Le degr (dimension) dune association caractris le nombre dentits y participant
La cardinalit maximale indique le nombre de fois maximum quune occurrence de lentit
participe aux occurrences de la relation (1 ou n)
Type dune association
1,1 --- 1,1 = 1,1
1,1 --- 0,1 = 1,1
1,1 --- 0,n = 1,n
Le type est lassociation des cardinalits maximales. Indispensable au MLD (Modle Logique
de Donnes)
Exemple de la gestion dune DVD thque
- Mise en place dun service de location dun DVD
Il faut mettre au point une application informatique permettant :
- de grer le stock de films
- aux clients de faire des recherches de films louer
Il faut identifier les utilisateurs et dcrire leurs besoins vis--vis du SI en langage naturel.
Pour la construction dun MCD, on passe par plusieurs tapes :
- Identifier des entits
- Identifier des associations
- Prciser les cardinalits
Ct Client :
- Venir louer un film pour une priode dtermine
- Pouvoir louer plusieurs films la fois
- Pouvoir choisir un film sur plusieurs critres
Ct Gestionnaire :
- Ne louer des DVD qu des clients enregistrs
- Suivre les locations (rappels)
- Faire du prospect clients
- Faire des nouvelles commandes (suggres par les clients)
- Pouvoir louer un film simultanment plusieurs clients
Des entits :
- Acteurs
- Films
- Ralisateurs
- Genres
- Exemplaires de Films
- Clients
Des associations :
- joue dans
- mis en scne
- est du
- copi en
- emprunte
Exemple du cabinet mdical :
Un cabinet mdical regroupe plusieurs mdecins :
- Un mdecin donne une consultation
- Un mdecin ne prend quun patient la fois
- Un patient assiste une consultation
- Une consultation donne lieu ou non une prescription de mdicaments
Identifier les utilisateurs et dcrire leurs besoins vis--vis du SI en langage naturel.
Construction du MCD :
- Identifier des entits
- Identifier des associations
- Prciser les cardinalits
Un mdecin :
- donne des consultations
o une date fixe
o un patient la fois
- Prescrit des mdicaments
o Imprativement via une ordonnance
o Imprativement lissue dune consultation
Un patient :
- Prend rendez-vous pour une consultation date fixe
- Assiste une consultation unique la fois
Les formes normales
Dans une base de donnes relationnelle, une forme normale dsigne un type de relation
particulier entre les entits.
Le but essentiel de la normalisation est d'viter les anomalies transactionnelles pouvant
dcouler d'une mauvaise modlisation des donnes et ainsi viter un certain nombre de
problmes potentiels tels que les anomalies de lecture, les anomalies d'criture, la
redondance des donnes et la contre-performance.
Une relation de premire forme normale (NF1) est une relation dont tous les attributs :
- contiennent une valeur atomique (les valeurs ne peuvent pas tre divises en
plusieurs sous-valeurs dpendant galement individuellement de la cl primaire)
- contiennent des valeurs non rptitives (le cas contraire consiste mettre une liste
dans un seul attribut).
- sont constants dans le temps (utiliser par exemple la date de naissance plutt que
l'ge).
Le non-respect des deux premires conditions de la NF1 rend la recherche parmi les donnes
plus lente parce qu'il faut analyser le contenu des attributs. La troisime condition quant
elle vite qu'on doive rgulirement mettre jour les donnes.
Une relation de deuxime forme normale (NF2) est une relation dont tous les attributs :
Respecte la deuxime forme normale, la relation respectant la premire forme normale et
dont :
- Tout attribut ne composant pas un identifiant ( id ) dpend d'un identifiant.
Le non-respect de la NF2 entraine une redondance des donnes qui encombrent alors
inutilement la mmoire et l'espace disque.
Une relation de troisime forme normale (NF3) est une relation dont tous les attributs :
Respecte la troisime forme normale, la relation respectant la seconde forme normale et
dont :
- Tout attribut ne composant pas un identifiant dpend directement d'un identifiant.
Le non-respect de la NF3 peut galement entrainer une redondance des donnes.
Le Modle Logique de Donnes (MLD)
Du ct du MLD, on va travailler en relationnel. Mais on pourrait aussi travailler en objet, le
travail en relationnel est juste plus facile aprs un passage en MCD Entit Association.
On va remplacer les entits et les associations par des tables reprsentant des relations.
La premire chose quon va faire cest transformer les entits :
- Les entits deviennent des relations ou tables
- Convertir les attributs en champs
- Typer les champs (Cette opration de typage de champs est trs importante car cela
va permettre de stocker les donnes dans des botes adaptes et permettra
aussi de raliser les bonnes oprations)
Les associations deviennent des relations (= table) ou un attribut dans une table
- Typer les associations (cardinalit maximum de chaque ct de lassociation)
Le cas du (0, 0), cela signifie quun auteur nest pas forcment connect un ouvrage (dans le cas dun journaliste et dun article par ex.)
Le cas des associations de type (1-n)
Lassociation va se transformer en un attribut dans une table.
Exemple :
Pour le MCD, on a :
Et pour le MLD :
Dans le MLD, num_auteur est la cl primaire de la table AUTEUR et NUM_AUTEUR est la cl
trangre de la table LIVRE. Ces cls primaire et trangre traduisent lassociation ECRIRE
dans le MLD. Ici au lieu de remettre toutes les infos de lauteur pour chaque livre, on lui
attribue une cl trangre afin de crer une jointure entre les tables AUTEUR et LIVRE afin
dviter la redondance.
Le cas du zro (0, 1) et (0, n)
Un ouvrage a t crit par 0 ou 1 auteur ?
Un auteur na crit aucun ou plusieurs ouvrages ?
Un ouvrage na t crit par aucun auteur : NULL autoris sur tbl_ouvrage.id_auteur (cest-
-dire sur id_auteur dans la table OUVRAGE )
____AUTEUR____
Num_auteur
Nom
Prnom
______LIVRE______
Num_livre
Titre
Date
___ECRIRE___ 1, n 1,1
1, n
______LIVRE______
Num_livre
Titre
Date
NUM_AUTEUR
____AUTEUR____
Num_auteur
Nom
Prnom
On doit autoriser le NULL ou pas au niveau du MPD et non pas du MLD (cest donc
linformaticien qui va sen occuper et pas nous). Cela permettra de ne pas perdre
dinformation. (Comme un livre sans auteur ou un auteur sans livre par ex)
Un auteur a crit 0 album :
- Dans quel ordre se font les saisies ?
- Post-traitement
Le cas du (1, 1)
Pas la peine de modliser le schma universel, puisque un auteur a crit un seul livre et un
livre a t crit par un seul auteur. Donc pas besoin de crer 2 tables relies par un attribut,
mais seulement une table, car il ny aura pas de redondance.
Le cas (n, n)
Pour ce cas, on cre une nouvelle table (dite associative) dans laquelle on met les cls de
chacune des tables. Ce sont des cls primaires composes.
Le cas du pas nimporte qui avec (0, n), (1, n) ou (n, n)
Un ouvrage est crit par un auteur prsent dans la table des auteurs :
- Mise en uvre dune intgrit rfrentielle
Lintgrit rfrentielle signifie que si on a une cl trangre dans une table, elle renvoie
forcment une cl primaire dans une autre table (ex de tout lheure avec LIVRE et
AUTEUR)
NB : Une option existe pour activer cette Intgrit Rfrentielle dans Publisher
Une relation dite universelle, est la relation vue du ct utilisateur. Cest--dire, la BDD avec ses redondances et ses dfauts (ex : table auteurs et table albums, avec des albums en double par ex)
Le Modle Physique de Donnes (MPD)
Cette tape consiste implmenter le modle dans le SGBD, c'est--dire le traduire dans un
langage de dfinition de donnes.
Le langage gnralement utilis pour ce type d'opration est le SQL.
Mthode de ralisation du MPD
1. Proposer un MCD en rapport avec les donnes fournies
2. En dduire un MLD
3. Mettre les donnes en compatibilit avec le MLD
4. Importer les donnes dans un SGBDR (Systme de Gestion de Base de Donnes
Relationnelle)
5. Vrifier ou mettre en uvre les proprits envisages dans le MCD ou le MLD
6. Mettre en uvre une IR (Intgrit Rfrentielle)
7. Tester de nouvelles saisies
8. Requtes
Les Requtes
Il y a trois grandes oprations dans lalgbre relationnel connatre absolument :
- La Restriction
- La Projection
- La Jointure
Restriction
La restriction est une opration qui slectionne un ensemble de lignes (n-uplets) d'une
relation, en fonction d'un critre de slection (prdicat ou expression logique de prdicats).
Le rsultat d'une restriction est une relation de mme schma que la relation initiale.
En SQL, les restrictions s'expriment l'aide de la clause WHERE suivie d'une condition
logique exprime l'aide d'oprateurs logiques (AND, OR, NOT), de comparateurs de chane
(IN, BETWEEN, LIKE), de comparateurs arithmtiques (=, !=, , >=, etc.)
Exemple :
gens
id nom prenom age
1 DUPOND MICHEL 40
2 MARTIN ROBERT 50
3 DURAND MARCEL 35
On a la table gens. On veut uniquement les entres (=lignes) des personnes ayant moins de
45 ans. La commande sera : SELECT * FROM gens WHERE age
Et le rsultat sera :
id nom prenom
1 DUPOND MICHEL
2 MARTIN ROBERT
3 DURAND MARCEL
Jointure
Une jointure est un produit cartsien de deux tables. On appelle quijointure une jointure
dont la qualification est une galit entre deux colonnes.
En SQL, l'expression d'une jointure se fait en prcisant le nom des colonnes des tables sur
lesquelles on fait la jointure, en dsignant les colonnes des diffrentes tables en crivant le
nom de la table, suivie d'un point puis du nom de la colonne. La clause WHERE permet de
prciser la qualification de la jointure.
Exemple :
gens
id nom prenom age
1 DUPOND MICHEL 40
2 MARTIN ROBERT 50
3 DURAND MARCEL 35
nationalite
nom pays
DUPOND France
MARTIN France
DURAND Belgique
On a la table gens et la table nationalite. On veut effectuer une jointure de telle sorte que
lon ait les noms, prnoms et nationalits de la totalit des gens de notre BD. La commande
sera alors :
SELECT gens.nom, gens.prenom, nationalite.pays FROM gens, nationalite WHERE gens.nom =
nationalite.nom ;
Le rsultat sera alors :
nom prenom pays
DUPOND MICHEL France
MARTIN ROBERT France
DURAND MARCEL Belgique
On voit bien quon a effectu une jointure entre nos deux tables.
Attention, il faut bien retenir quune requte ne stocke pas de donnes ! Elle ne sert qu les acheminer.
Le langage SQL (Structured Query Language) :
Objectif
Comprendre la structure du langage SQL pour tre un meilleur concepteur en envisageant
les possibilits de requtes
Ds quil y a une base de donnes, il y a du SQL.
Le SQL est donc le langage unique dinteraction avec une base de donnes :
- Utilisation des donnes avec les DML (Data Manipulation Language) Ct
client
- Administration avec le DDL (Data Definition Language) Ct administrateur
- Contrle daccs aux donnes avec le LCD (Langage de contrle de donnes)
Ct administrateur (autorisation en particulier)
Voil quelques exemples de commandes dans les 3 diffrents registres de langage SQL :
DML - Langage de manipulation des donnes (LMD) : SELECT, INSERT, UPDATE, DELETE
LDD - Langage de dfinition des donnes : CREATE, ALTER, DROP, RENAME, TRUNCATE
LCD - Langage de contrle des donnes (transactions) : COMMIT, ROLLBACK, SAVEPOINT,
GRANT, REVOKE
Le Langage de Manipulation des Donnes
Les 4 objectifs du DML :
- Lire le contenu des TABLES
- Insrer des LIGNES dans les TABLES
- Modifier des valeurs dans les TABLES
- Supprimer des LIGNES dans les TABLES
Les 4 verbes du DML
- SELECT pour lire
- INSERT pour insrer
- UPDATE pour modifier
- DELETE pour supprimer
Le langage SQL est un langage ensembliste et non-procdural.
Ensembliste : Un ordre traite un ensemble dinformation. Ce langage se doit dtre
ensembliste car si on commence excuter une commande SQL et que la procdure plante,
il ne FAUT PAS que juste quelques donnes soient modifies (ex : Modification du prix des
produits sur un site marchand et modification de la priode de vente si a plante, a ne
modifie que certains prix ou autre et cest le bordel).
Non-procdural : Dans un ordre, on dcrit ce que lon veut obtenir, pas comment cela doit
tre fait.
Syntaxe : SQL > UN_ORDRE PARAM1, PARAM2 ;
Exemple :
Dans cet exemple, lordre est SELECT FROM et les paramtres sont * (qui signifie
tout ) et emp qui dsigne une table.
Dans quoi est stocke linformation
- TABLE
- LIGNE
- COLONNE
- TYPE
MySQL est un systme de gestion de BDR, un serveur de BDR, open Source.
Utilisation de MySQL
Connexion au serveur
- On dmarre le service mysql
- On ouvre ensuite le shell, on change de disque (on passe de U:/ C:/) en tapant
C :
- On change de rpertoire avec la commande cd (pour change directory) et on
indique ensuite le chemin du dossier.
- On connecte ensuite mysql : mysql h localhost u user ( -h et -u
signifiants respectivement host et user ).
- On se connecte la base test : use test
Il faut savoir que chaque colonne a un type (integer, boolean, text, ) dfinissant son domaine (partiellement) en comprhension
Toutes les jointures ne sont pas des qui-jointures
- Permet de ramener les lignes correspondant aux critres de jointure, mme si elles
nont pas de correspondant