+ All Categories
Home > Documents > Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël...

Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël...

Date post: 28-Mar-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
41
Méthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III
Transcript
Page 1: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Méthodes de conception debases de données

Joël QuinquetonLicence Pro LIPAE, Université

Montpellier III

Page 2: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Les méthodes

• Concepts et outils : introduction à SQL• Compléments sur SQL : schéma , tri, calcul• Les méthodes:

– Construction– Modèle E/A (Entité Association)– Schéma conceptuel– Schéma SQL

• Etude de cas.• Dépendances fonctionnelles et formes normales

Page 3: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Modèle entité Association

• Entités: celles du monde que l’on veutreprésenter dans cette base

• Ont des attributs (informations)• Associations: relient des entités• Peuvent avoir des propriétés (attributs)

Page 4: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple 1

• Gérer un marché d’armement• 3 types d’objets:

– Fournisseurs– Produits– Livraisons

produits fournisseurslivraisons

Page 5: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple 2

• Gérer un club sportif (sport individuel)• 3 types d’objets:

– Adhérents– Compétitions– Résultats

adhérents compétitionsrésultats

Page 6: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple 3

• Gérer un parc automobile• 3 types d’objets:

– Conducteurs– Véhicules– Cartes grises

conducteurs véhiculesCarte grise

Page 7: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Cardinalités des relations

• Pour chaque entité-1: N1 entités-2• Pour chaque entité-2: N2 entités-1• On met le minimum (0 ou 1) et le

maximum (1 ou N)

Entité-1 Entité-2associationN1

N2

Page 8: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemples

produits fournisseurslivraisons

adhérents compétitionsrésultats

conducteur véhiculeCarte grise

1-N 1-N

1-N

1-1

0-N

0-N

Page 9: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple 1 (rappel)

• Gérer un marché d’armement• 3 types d’objets:

– Fournisseurs– Produits– Livraisons

produits fournisseurslivraisons

Page 10: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Modèle entité association

produits

fournisseurs

livraisons

1-N

1-N

nom

pays

prix

type

Page 11: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple de schéma

textetextenombreVilleNomN°

textenombreTypeN°

nombrenombrenombrePrixN° pièceN° four.

fournisseurs

produits

livraisons

Page 12: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple 1: tables

Avion15Cutter57Avion14TypeN°

57574610001546605715211001581550014815000141525057174100015152PrixN° pièceN° four.

fournisseurs

produits

livraisons

BagdadSaddam46MoscouPoutine259BahamasMeissier376ParisChirac81KaboulBen Laden174New YorkBush152VilleNomN°

Page 13: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Passage E/A vers relationnel

• Relation pour chaque Entité ouAssociation

• Différentes solutions selon la cardinalité– Pas besoin de relation pour une

association (1-1, 1-N) en général– Les entités peuvent être dans une même

relation en cas d’association (1-1,1-1)

Page 14: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Implémenter une base dedonnées

• création, suppression, modification:– de table– de ligne

• Identifiants• Contraintes référentielles• Colonnes obligatoires• Type des valeurs

Page 15: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Modèle entité association

produits

fournisseurs

livraisons

1-N

1-N

nom

pays

prix

type

Page 16: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple: relations

• Modèle relationnel:– Fournisseur(n°, nom, ville)– Produit(n°, type)– Livraison(n°four., n°pièce, prix)

• Les clés primaires et étrangères sontspécifiées

Page 17: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple: schéma SQL

textetextenombreVilleNomN°

textenombreTypeN°

nombrenombrenombrePrixN° pièceN° four.

fournisseurs

produits

livraisons

Page 18: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Création d’une table

• Create table fournisseurs (– Numero int(6),– Nom varchar(20),– Ville varchar(20)– ) primary key (numero);

Varchar(20)Varchar(20)Int(6)VilleNomNumero

fournisseurs

Page 19: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Remplissage d’une table• Insert into

fournisseurs values(152, ‘Bush’, ‘NewYork’);

• …BagdadSaddam46MoscouPoutine259BahamasMeissier376ParisChirac81KaboulBen Laden174New YorkBush152VilleNomN°

Page 20: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Effacement d’une table

• Drop fournisseurs;– Efface les tuples de la table– Détruit la structure de la table

• Delete * from fournisseurs;– Efface les tuples de la table

Page 21: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Mise à jour

• Update <table>– set<att=val>– where …

• Peut mettre à jour plusieurs tuples• Exemple:

– Update tab set att=att+1 where att > 10;

Page 22: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Implémentation d’une table

• Différents types de table (mySQL):– Classiques: ISAM, HEAP, MyISAM– Sécurisés: InnoDB, BDB

• Le schéma d’une table est stocké dansun fichier <nom>.frm

Page 23: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Tables MyISAM

• Index dans un fichier <nom>.MYI• Données dans un fichier <nom>.MYD• Différents types d’index: usuellement

ISAM– B-arbre– Taille du fichier Index: (lg_clé + 4)/0,67

pour chaque clé• Format statique ou dynamique

Page 24: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Format statique

• si aucun champ TEXT, BLOB ouVARCHAR

• Tous les tuples ont même longueur L(remplissage par des 0)

• Emplacement du nème tuple: n*L• Il est facile de reconstituer une table

corrompue

Page 25: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Format dynamique

• si champ(s) TEXT, BLOB ou VARCHAR• Bitmap pour chaque tuple décrivant les

champs vides (0 ou ‘’)• Chaine:

– longueur suivie des caractères– En cas de largeur excessive (update):

fragmentation (morceaux ≥ 20 octets)– Pénalité de 6 octets par lien de fragmentation

Page 26: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Espace disque

• Moins d’espace perdu, mais il est plus difficilede reconstituer une table corrompue

• Longueur moyenne:– 3 +– (nb col + 7) / 8 +– nb char +– taille des champs num +– longueur des chaines +– (nb de NULL + 7) / 8

Page 27: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Tables ISAM et Merge

• Type Merge = MRG_MyISAM• Table MyISAM fragmentée en plusieurs

tables de même schéma• Tables ISAM: périmé

– Index (B-arbre) dans <nom>.ism– Données dans <nom>.isd

Page 28: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Tables HEAP

• Résidant en mémoire• Utilisent des index hashés• Plutôt pour les tables temporaires• Il faut spécifier un nombre maxi de

tuples à la création de la table

Page 29: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Tables InnoDB

• Supportent les clés étrangères (qui doiventêtre des index)– [CONSTRAINT symbol]– FOREIGN KEY (index_col_name, ...)

REFERENCES table_name (index_col_name, ...)– [ON DELETE {CASCADE | SET NULL | NO

ACTION | RESTRICT}] [ON UPDATE {CASCADE| SET NULL | NO ACTION | RESTRICT}]

• Transactions sécurisées– Contrôle de concurrence– Transaction « commit »

Page 30: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Index dans les tables InnoDB

• Des B-arbres• Allocation par page de 16 kO

– Si on remplit la table dans l’ordre del’index: la page est remplie à 15/16

– Si on remplit dans un ordre aléatoire: pageremplie entre 1/2 et 15/16

– Si < 1/2, MySQL cherche à libérer la pageen contractant l’index

Page 31: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Tables BDB

• Type = Berkeley DB• Transactions réversibles (par le biais de

logfiles)• Ne fonctionne pas sur tous les OS

Page 32: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple de schéma

textetextenombrevillenomnum

textenombretypenum

nombrenum

nombrenombrenombreprixnpiecenfour

fournisseurs

produits

livraisons

Page 33: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Création des tables

• Tables sans clé étrangères:– Create table fournisseurs (num int(6), nom varchar(20), ville

varchar(20)) primary key (num);– Create table produits (num int(6), type varchar(20), primary

key (num);

• Dernière table:– Create table livraisons (num int(6), npiece int(6),

nfour int(6), prix int(10)– index quoi (npiece), index qui (nfour),– foreign key npiece references produits (num) on

delete set null– foreign key nfour references fournisseurs (num) on

delete set null) primary key (num);

Page 34: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple 1: tables

Avion15Cutter57Avion14TypeN°

57574610001546605715211001581550014815000141525057174100015152prixnpiècenfour.

fournisseurs

produits

livraisons

BagdadSaddam46MoscouPoutine259BahamasMeissier376ParisChirac81KaboulBen Laden174New YorkBush152villenomnum

Page 35: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Les index

• Manière de localiser une informationpar son contenu:– Nom =‘Chirac’?

• Exemples:– Répertoire, dictionnaire– B-arbre– Hash-coding

Page 36: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Dictionnaires

• Savoir si un nom figure dans un Carnetd’adresses contenant N adresses:– Index à 1 lettre: N/26 étapes en moyenne,

taille de l’index = 26– Index à 2 lettres: N/262 étapes, taille = 262

• Problème: les lettres les plus occupéessont aussi les plus demandées dans lesrequêtes

Page 37: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Arbres binaires

• Soit une listes de valeurs à indexer– Par exemple une liste de noms, ou de nombres– On la coupe en 2 parties de taille quasi égale– On retient l’élément du milieu, et les deux listes

des précédents et suivants– On recommence sur les sous listes

• Facile à mettre à jour• Temps d’accès logarithmique (si l’arbre est

« équilibré »)

Page 38: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Exemple

A, C, D, F, H, M, N, P, Z

A, C, D, F M, N, P, Z

H

Page 39: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

B-Arbre obtenuH

Z

P

M

N

D

F

C

A

Page 40: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Mise à jourH

Z

P

M

N

D

F

C

A

G

Page 41: Méthodes de conception de bases de donnéesMéthodes de conception de bases de données Joël Quinqueton Licence Pro LIPAE, Université Montpellier III

Hashage

• Basé sur les treillis N/pN• L’index est supposé représenté par un

nombre (ce peut être un codage)• L’élément est stocké à l’emplacement d’indice

égal à son reste dans la division par p• En cas de collision: liste auxiliaire ou autre

hashage• Préféré au B-arbre pour les tables résidant en

mémoire


Recommended