6. CONCEPTION PHYSIQUE RELATIONNELLE

Slides:



Advertisements
Présentations similaires
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
Advertisements

Bases de données   J-L Hainaut III. Méthodologie des bases de données [long] 1. Méthodologie des BD5. Conception physique 2. Le modèle Entité-association6.
L’Intéroperabilité. Sommaire  Définition  Développer l’intéroperabilité  Les différents degrés d’opérabilité  La nécessité des normes  Sources.
Evaluation de requêtes Quelques résultats préliminaires 1 Amin Mesmoudi.
Université de Nantes CHORD Vincent Trève. Introduction ● Problématique – Comment accéder efficacement aux données réparties sur un système pair à pair?
Reformulation  L’AFPA promoteur du projet souhaite mettre en place une application WEB afin de remplacer une solution en Java. Pour ce projet 4 mandataires.
FORMATION PRODIGE Aspects techniques Chistophe BOCQUET (CPII/DOO)
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Utilisation du process marché  l ’objectif est d ’avoir un seul document de référence permettant de maîtriser chaque étape de la commande publique  ce.
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
SQL partie 1 Langage de Définition de Données. SQL est un langage de définition de données  SQL est un langage de définition de données (LDD), c'est-à-dire.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
ARCHITECTURE MULTITENANT CONTAINER DATABASE ET PLUGGABLE DATABASES Pr. A. MESRAR
Les Bases de données Définition Architecture d’un SGBD
La technologie des mémoires
La Compression de Données
Table passage en caisse
Les Bases de données Définition Architecture d’un SGBD
Structured Query Language
SNMP - Comment calculer l'utilisation de la Bande passante
AugerDb / SimDb Gestion des simulations Auger Java
Initiation aux bases de données et à la programmation événementielle
Généralité sur les bases de données
Javadoc et débogueur Semaine 03 Version A16.
Bddictionnairique Phase 1
Cyber-Sphinx Séance 2.
SQL LID – INTERROGATIN DES DONNEES
Documentation technique (Linux)
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
Manipulation D’Une Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Package R Markdown: Un outil pour générer des pages html avec R Studio
Programmation Android Bases De Données, SQL-lite
4. IMPLEMENTATION DES STRUCTURES DE DONNEES
9 Méthodes multidimentionnelles et représentation d'associations
Formation sur les bases de données relationnelles.
Prélude ERP 7 Présentation 19/09/2018 © Gérard Baglin,
Techniques du Data Mining
LOG770 Annexe A Éléments de probabilité
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2. CONCEPTS DES BASES DE DONNEES
Document d'accompagnement
Base de données relationnelle et requêtes SQL
L1 Technique informatique
5 Analyse avec Designer d'Oracle
Prélude 7 ERP Présentation 15/11/2018 © Gérard Baglin,
SIO SI3 : Exploitation des données
4 Méthodes multidimentionnelles et représentation d'associations
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
2. LE LANGAGE SQL DML (1) Version 2 - Janvier 2012
7 Contraintes d’intégrité en SQL
5 Introduction au modèle relationnel 5.1 Concepts de base
Semaine 3 Retour sur la semaine 2 Plan de séance
4. IMPLEMENTATION DES STRUCTURES DE DONNEES
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
Prélude ERP 7 Présentation 09/12/2018 © Gérard Baglin,
Bilan de projet pour [Nom du projet]
20 Données semi-structurées et XML
1. Méthodologie des bases de données
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
9 Méthodes multidimentionnelles et représentation d'associations
9 Méthodes multidimentionnelles et représentation d'associations
2. CONCEPTS DES BASES DE DONNEES
SQL Structured Query Language
Construire une séance de
INTELLIGENCE ARTIFICIELLE
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Transcription de la présentation:

6. CONCEPTION PHYSIQUE RELATIONNELLE Version 1 - Mars 2010 Corrections 5/11/2010 Support du chapitre 20, Conception physique d'une base de données relationnelle de l'ouvrage Bases de données, J-L Hainaut, Dunod 2009.

6. CONCEPTION PHYSIQUE RELATIONNELLE 6.1 Introduction 6.2 Choix des index 6.3 Technologie des index 6.4 Sélection des espaces de stockage 6.5 Exemple 6.6 Aide au développement d'un schéma physique Contenu

6.1 INTRODUCTION 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.1 INTRODUCTION

6.1 Introduction En (très) bref : 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.1 Introduction En (très) bref : La conception physique consiste à rendre un schéma logique conforme à un SGBD particulier et à lui ajouter les constructions physiques lui assurant de bonnes performances. Accessoirement : évaluation a priori des volumes et des principaux temps d'accès

6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.1 Introduction Conception physique Schéma logique relationnel Schéma physique Oracle 11g Efficacité Conformité à Oracle 11g Sémantique préservée spec. logiques traitements = liste de requêtes SQL avec leurs fréquences Mise en conformité physique : selon l'Administration Guide Constructions physiques :  choix des index  technologie des index  espaces de stockage  selon SGBD : clusters, clustering index, etc.

6.2 Choix des index 6.2 Choix des index On identifie 4 types de règles 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 6.2 Choix des index On identifie 4 types de règles 1. index induits par les structures logiques; 2. index induits par l'utilisation des données; 3. index à écarter 4. maintenance des index

 6.2 Choix des index 1. Index induits par les structures logiques 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 1. Index induits par les structures logiques Règle 1 On associe un index à chaque identifiant 

 6.2 Choix des index 1. Index induits par les structures logiques 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 1. Index induits par les structures logiques Règle 2 On associe un index à chaque clé étrangère 

1. Index induits par les structures logiques 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 1. Index induits par les structures logiques Règle 3 L'index associé à un identifiant est impératif lorsque le SGBD impose un index pour chaque identifiant Même si l'index est inutile pour les performances (selon règles 9 et 10). L'intégrité a priorité sur les performances !

 6.2 Choix des index 2. Index induits par l'utilisation des données 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Règle 4 On associe un index à chaque colonne (ou groupe de -) qui fait l'objet de comparaisons fréquentes dans des conditions d'égalités ou d'inclusion (in) select NCLI,NOM,ADRESSE from CLIENT where LOCALITE = :LOC; 

 6.2 Choix des index 2. Index induits par l'utilisation des données 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Règle 5 On associe un index à chaque colonne (ou groupe de -) servant fréquemment de critère d'intervalle select NCLI,NOM from CLIENT where CAT like :C||'%'; 

 6.2 Choix des index 2. Index induits par l'utilisation des données 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Règle 6 On associe un index à chaque colonne servant fréquemment de critère de groupement ou de tri select DATECOM, count(*) from COMMANDE group by DATECOM; 

Utilité d'un index : comment décider ? pas d'index sur LOCALITE 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? Q: select NCLI,NOM,ADRESSE from CLIENT where LOCALITE = :LOC; pas d'index sur LOCALITE accès séquentiel filtré index sur LOCALITE accès par l'index ? tq1 tq2

Utilité d'un index : comment décider ? 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? pas d'index : accès séquentiel filtré tq1 = Np x tls1

Utilité d'un index : comment décider ? 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? index : accès par l'index l'index possède Nc valeurs; chaque entrée référence Nrpc = Nr / Nc lignes sélectionnées chaque page contient mc = Nrpc / Np lignes sélectionnées 1. index secondaire sur fichier en vrac (lignes sélectionnées distribuées aléatoirement) tq2 = qc x tla1 ces lignes occupent qc = Np x (1 - e-mc) pages 2. index secondaire sur fichier ordonné (lignes sélectionnées dans pages consécutives) ces lignes occupent npic = Nrpc / Nrpp + 0,5 + 1 pages tq2 = npic x tls1

Utilité d'un index : comment décider ? 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? Exemple ?  select NCLI,NOM,ADRESSE from CLIENT where LOCALITE = :LOC; Nr = 500.000 Nloc = 5.000 Np = 25.000 tls1 = 0,184 msec tla1 = 12,300 msec

2. Index induits par l'utilisation des données 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? Exemple : accès séquentiel filtré tq1 = Np x tls1 = 25.000 x 0,184 = 4.600 msec = 4,6 sec

2. Index induits par l'utilisation des données 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? Exemple : accès par index sur fichier en vrac Nrploc = Nr / Nloc = 500.000 / 5.000 = 100 lignes par valeur de LOCALITE mloc = Nrploc / Np = 100 / 25.000 = 0,004 lignes sélectionnées par page qloc = Np x (1 - e-mloc) = 100 pages contenant des lignes sélectionnées tq2 = qloc x tla1 = 100 x 12,3 = 1.230 msec = 1,23 sec

2. Index induits par l'utilisation des données 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? Exemple : accès par index sur fichier trié Nrploc = Nr / Nloc = 500.000 / 5.000 = 100 lignes par valeur de LOCALITE npiloc = Nrploc / Nrpp + 0,5 + 1 = 100 / 16 + 0,5 + 1 = 7 pages contenant les 100 lignes tq2 = npiloc x tls1 = 7 x 0,184 = 1,288 msec = 0,0013 sec

Utilité d'un index : comment décider ? pas d'index sur LOCALITE 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 2. Index induits par l'utilisation des données Utilité d'un index : comment décider ? Q: select NCLI,NOM,ADRESSE from CLIENT where LOCALITE = :LOC; pas d'index sur LOCALITE index sur LOCALITE ? 4,6 sec 1,23 index sur LOCALITE

6.2 Choix des index 3. Index à écarter Règle 7 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 3. Index à écarter Règle 7 Un index est inutile pour les conditions d'inégalité, d'exclusion ou masque non préfixe select NPRO,LIBELLE from PRODUIT where NPRO not in (select NPRO from DETAIL); ne justifie pas (à lui seul) un index sur DETAIL.NPRO select NCLI,NOM from CLIENT where LOCALITE <> :L; ne justifie pas un index sur CLIENT.LOCALITE select NCLI,NOM from CLIENT where ADRESSE like '%'||:C||'%'; ne justifie pas un index sur CLIENT.ADRESSE

 6.2 Choix des index 3. Index à écarter Règle 8 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 3. Index à écarter Règle 8 Un index préfixe d'un autre est inutile lorsque le dictionnaire de valeurs du second est ordonné (= "index trié") 

 6.2 Choix des index 3. Index à écarter Règle 9 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 3. Index à écarter Règle 9 Un index non identifiant peut être inutile si son domaine de valeurs est très petit et si les lignes de la table ne sont pas ordonnées selon cet index 

 6.2 Choix des index 3. Index à écarter Règle 10 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 3. Index à écarter Règle 10 Un index non identifiant peut être inutile s'il est associé à une table de petite taille 

4. Maintenance d'un jeu d'index 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.2 Choix des index 4. Maintenance d'un jeu d'index Règle 11 Lors de l'exploitation, on surveillera le taux d'utilisation des index ainsi que les plans d'exécution élaborés par l’optimiseur du SGBD pour les requêtes les plus critiques

6.3 Technologie des index 6.3 Technologie des index 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.3 Technologie des index 6.3 Technologie des index Pour chaque index, choix de la technique d'implémentation : index primaire en séquentiel indexé (B-tree) index primaire en calculé (hashing) index secondaire, dictionnaire en séquentiel indexé index secondaire, dictionnaire en calculé autres Techniques de clustering = "index trié"

6.3 Technologie des index Règle 12 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.3 Technologie des index Règle 12 Les techniques basées sur un dictionnaire de valeurs ordonné (= "index trié") seront préférées lorsque l’accès par intervalle à de petites séquences d’enregistrements est fréquent. Lorsqu’en outre l’accès par intervalle risque de produire des séquences relativement longues ou lorsqu’un accès séquentiel ordonné est fréquent, alors on recommandera un index primaire en séquentiel indexé ou un index secondaire sur fichier ordonné (clustering index)

6.3 Technologie des index Règle 13 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.3 Technologie des index Règle 13 Les techniques basées sur une organisation séquentielle indexée (table et/ ou dictionnaire de valeurs) sont recommandées, 1. lorsque le volume de données croît de manière imprévisible, 2. lorsque le temps d’accès par index doit être uniforme pour tous les enregistrements 3. lorsque les réorganisations sont fréquentes. Dans les autres cas, les techniques calculées pourront être sélectionnées.

6.3 Technologie des index Règle 14 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.3 Technologie des index Règle 14 Les techniques basées sur une organisation calculée (table ou dictionnaire de valeurs) sont appropriées lorsque 1. le temps moyen d’accès par clé doit être très court 2. la place mémoire occupée sur disque et dans le tampon doit être minimale.

6.4 Sélection des espaces de stockage 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.4 Espaces de stockage 6.4 Sélection des espaces de stockage Règle 15 Deux tables appartenant au même cluster sont assignées au même espace Règle 16 Dans une grande base de données, s’il est possible d’identifier un ensemble de tables utilisées simultanément mais de manière sporadique, alors on envisagera de les stocker dans un ou plusieurs espaces qui leur sont exclusivement réservés.

6.5 Exemple 6.5 Exemple 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.5 Exemple 6.5 Exemple

6.5 Exemple - Schéma logique 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.5 Exemple - Schéma logique + contraintes

6.5 Exemple - Schéma physique 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.5 Exemple - Schéma physique Règles 1, 2 et 8 + contraintes

6.6 Aide au développement du schéma physique 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.6 Aide au développement du schéma physique 6.6 Aide au développement du schéma physique Règles 1, 2 et 8

6.6 Aide au développement du schéma physique 6.1 Introduction 6.5 Exemple 6.2 Choix des index 6.6 Aide au développement 6.3 Technologie des index 6.4 Espaces de stockage 6.6 Aide au développement du schéma physique 6.6 Aide au développement du schéma physique Règle 4

Fin du chapitre 6 Chapitre suivant : 7. Production du code