1. Méthodologie des bases de données Version 1 - 15 janvier 2010 corrigé le 2/2/2010 Support du chapitre 14, Méthodologie des bases de données de l'ouvrage Bases de données, J-L Hainaut, Dunod 2009.
1. Méthodologie des bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1. Méthodologie des bases de données 1.1 Introduction 1.2 Méthodes, processus et produits 1.3 Méthodes de développement d'une base de données 1.4 Les modèles de développement 1.5 Les processus d'ingénierie Contenu
1.1 INTRODUCTION 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 INTRODUCTION
Rappel aux impatients : 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Rappel aux impatients : On ne crée pas une base de données en écrivant directement du code SQL ! Une base de données de taille moyenne : comporte plusieurs centaines de tables, comporte plusieurs milliers de colonnes, Une base de données de grande taille comporte plusieurs milliers de tables, comporte plusieurs dizaines de milliers de colonnes, SAP repose sur une base de données de près de 30.000 tables, de près de 200.000 colonnes, cas un peu spécial : il s'agit d'une multibase
Exemple d'une BD de taille moyenne : 3 Suisses (St Brice) en 1999 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Exemple d'une BD de taille moyenne : 3 Suisses (St Brice) en 1999 Espaces de stockage : 382 Tables : 853 Colonnes : 11.500 Liste des objets (espaces, tables, colonnes, identifiants) : 251 pages Code SQL DDL standard (sans index) : 33.000 lignes ou 507 pages
1.1 Introduction Les 382 espaces de stockage 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Les 382 espaces de stockage schéma CLICOM
1.1 Introduction Les 853 tables (sans FK) 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Les 853 tables (sans FK) schéma CLICOM
1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction nécessité d'une approche disciplinée, structurée et basée sur des techniques et modèles rigoureux.
Principes généraux 1.1 Introduction Une base de données : 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Principes généraux Une base de données : constitue un modèle fidèle d'un domaine d'application : les données en représentent tous les aspects pertinents et eux seulement; est implantée sur un ordinateur; constitue une source de données efficace pour les utilisateurs et les programmes (persistence, robustesse, disponibilité, efficacité, sécurité, etc.) Une base de données doit donc être : correcte; opérationnelle; efficace
Le problème principal ? 1.1 Introduction 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Le problème principal Comment traduire les besoins exprimés par les utilisateurs en structures de données correctes, opérationnelles efficaces ? ?
Les besoins (ou exigences) Les structures de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Les utilisateurs Tous les agents (personnes, organismes, programmes d'application clients) impliqués dans la collecte, la production, la consultation, l'utilisation, la transmission, le traitement, la gestion des données. Les besoins (ou exigences) Ensemble des propriétés, caractéristiques et conditions que la base de données doit respecter pour satisfaire ses utilisateurs. besoins fonctionnels : contribuent à la fonction (au métier) des utilisateurs besoins non fonctionnels : contribuent à la qualité des services rendus aux utilisateurs Les structures de données Le(s) schéma(s) de la base de données
Le problème principal ? ? ? 1.1 Introduction 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Le problème principal Comment traduire les besoins exprimés par les utilisateurs en structures de données correctes, opérationnelles efficaces ? ? ? ?
Les structures de données sont correctes 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Les structures de données sont correctes Les schémas représentent les types de données nécessaires et suffisants pour satisfaire les besoins fonctionnels des utilisateurs. Cette représentation est simple, minimale, expressive, normalisée, etc. Les structures de données sont opérationnelles Elles sont conformes à une technologie disponible (p. ex. un SGBD) Les structures de données sont efficaces Elles induiront une occupation d'espace minimale, des temps d'accès minimaux, une robustesse et une disponibilité satisfaisantes, etc.
? 1.1 Introduction Développer une base de données, en deux mots ... 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.1 Introduction Développer une base de données, en deux mots ... Un ouvrage est une oeuvre littéraire publiée. Il est caractérisé par son numéro identifiant, son titre, son éditeur, sa date de première parution, ses mots-clés (10 au maximum), une brève note de présentation (ces notes sont en cours de constitution), le nom et le prénom de ses auteurs. A un ouvrage correspondent un certain nombre d'exemplaires, qui en sont la matérialisation physique. ... besoins des utilisateurs create database BIB create dbspace BIB_DATA; create table OUVRAGE ( NUMERO char(18) not null, TITRE varchar(60) not null, EDITEUR char(32) not null, DATE_1RE_PARUTION date not null, PRESENTATION varchar(255), primary key (NUMERO)) in BIB_DATA; . . . alter table EXEMPLAIRE add constraint FKDE foreign key (NUMERO)references OUVRAGE; create unique index IDOUVRAGE on OUVRAGE (NUMERO); ? code SQL DDL
1.2 METHODES, PROCESSUS ET PRODUITS 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.2 METHODES, PROCESSUS ET PRODUITS
1.2 Méthodes, processus et produits 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.2 Méthodes, processus et produits La construction d'un logiciel s'effectue en plusieurs étapes bien identifiées, chacune réalisant des objectifs bien précis. Chaque étape correspond à un processus. Un processus utilise des produits (documents, code, interviews, etc.) et fournit de nouveaux produits ou modifie des produits existants. Les résultats d'un processus doivent satisfaire des critères bien précis.
1.2 Méthodes, processus et produits 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.2 Méthodes, processus et produits P produits i j critères k Formellement : produits j = P(produits i; critères k) L'exécution du processus P transforme les produits en entrée produits i en produits en sortie produits j selon les critères critères k.
1.2 Méthodes, processus et produits 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.2 Méthodes, processus et produits Une méthode de conception de base de données est un processus dont l'exécution produit une base de données conforme aux besoins d'une communauté d'utilisateurs. Un processus élémentaire (une tâche) n'est pas détaillé. Un processus non élémentaire est constitué d'un enchaînement de (sous-) processus plus simples. Si cet enchaînement et les sous-processus sont formellement définis, le processus peut être automatisé. L'exécution d'un processus peut être manuel, assisté ou automatisée. Aide à l'exécution d'un processus : au moyen d'un atelier de génie logiciel ou AGL (génie logiciel = Computer-aided Software Engineering ou CASE)
1.3 METHODES DE DEVELOPPEMENT 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 METHODES DE DEVELOPPEMENT DE BASES DE DONNEES
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Un ouvrage est une oeuvre littéraire publiée. Il est caractérisé par son numéro identifiant, son titre, son éditeur, sa date de première parution, ses mots-clés (10 au maximum), une brève note de présentation (ces notes sont en cours de constitution), le nom et le prénom de ses auteurs. A un ouvrage correspondent un certain nombre d'exemplaires, qui en sont la matérialisation physique. ... besoins des utilisateurs Conception de base de données Conception de base de données create database BIB create dbspace BIB_DATA; create table OUVRAGE ( NUMERO char(18) not null, TITRE varchar(60) not null, EDITEUR char(32) not null, DATE_1RE_PARUTION date not null, PRESENTATION varchar(255), primary key (NUMERO)) in BIB_DATA; . . . alter table EXEMPLAIRE add constraint FKDE foreign key (NUMERO)references OUVRAGE; create unique index IDOUVRAGE on OUVRAGE (NUMERO); code SQL DDL
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données 1-1 0-N de 1-N écrit OUVRAGE Numéro Titre Editeur Date 1re parution Mot clé[0-10] Présentation[0-1] id: EXEMPLAIRE Num série Date acquisition Localisation Etage Rayon Travée Etat[0-1] de.OUVRAGE AUTEUR Nom Prénom schéma conceptuel Un ouvrage est une oeuvre littéraire publiée. Il est caractérisé par son numéro identifiant, son titre, son éditeur, sa date de première parution, ses mots-clés (10 au maximum), une brève note de présentation (ces notes sont en cours de constitution), le nom et le prénom de ses auteurs. A un ouvrage correspondent un certain nombre d'exemplaires, qui en sont la matérialisation physique. ... schéma logique (relationnel) Conception de base de données schéma physique (Oracle 11) create database BIB create dbspace BIB_DATA; create table OUVRAGE ( NUMERO char(18) not null, TITRE varchar(60) not null, EDITEUR char(32) not null, DATE_1RE_PARUTION date not null, PRESENTATION varchar(255), primary key (NUMERO)) in BIB_DATA; . . . alter table EXEMPLAIRE add constraint FKDE foreign key (NUMERO)references OUVRAGE; create unique index IDOUVRAGE on OUVRAGE (NUMERO);
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Méthode simplifiée (pour BD relationnelles) besoins des utilisateurs correction conformité au modèle relationnel efficacité Conception d'une base de données code SQL DDL
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Méthode simplifiée (pour BD relationnelles) besoins des utilisateurs Analyse conceptuelle correction schéma conceptuel correct Conception logique conformité au modèle relationnel Conception de base de données schéma logique correct + relationnel Conception physique efficacité schéma physique correct + relationnel + efficace code SQL DDL Codage
Méthode (un peu plus) détaillée 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Méthode (un peu plus) détaillée besoins des utilisateurs correction conformité au modèle efficacité etc. Conception d'une base de données schéma conceptuel code DDL schéma logique code additionnel schéma physique vues
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Méthode détaillée vues schéma logique physique conceptuel Analyse conceptuelle besoins des utilisateurs code DDL code additionnel Conception logique Conception physique Production de code Définition des vues sous-schémas conceptuels schémas dynamiques spec. logiques traitements SGBD efficacité etc. complet correct normalisé conformité au modèle correction
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Analyse conceptuelle Produit en entrée : besoins fonctionnels des utilisateurs Processus : construction d'un schéma qui exprime formellement et de manière abstraite les besoins fonctionnels des utilisateurs Produits en sortie : sous-schémas conceptuels; schéma conceptuel (global); diagrammes des traitements, etc. Critères : complétude, correction, normalisation Expression du schéma conceptuel : modèle Entité-association ou diagrammes de classes UML (faute de mieux)
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Remarque Pour maîtriser la complexité de l'analyse, le domaine d'application est décomposé en sous-systèmes. Chaque sous-système fait l'objet d'une analyse conceptuelle. On obtient ainsi des sous-schémas conceptuels. Le schéma conceptuel global s'obtient par l'intégration des sous-schémas conceptuels.
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Conception logique Produit en entrée : schéma conceptuel Processus : construit un schéma logique équivalent au schéma conceptuel et conforme à un modèle de base de données Produit en sortie : schéma logique de la base de données Critère : conformité au modèle logique choisi Expression du schéma conceptuel : modèle logique (exemple : SQL2, SQL3, XML, fichiers)
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Conception physique Produits en entrée : schéma logique besoins des traitements en accès Processus : construit un schéma physique équivalent au schéma logique, conforme aux spécificités d'un SGBD et satisfaisant des critères d'efficacité Produit en sortie : schéma physique selon un SGBD Critères : conformité aux spécificités du SGBD; efficacité en temps d'accès; efficacité en espace occupé; robustesse; disponibilité, etc.
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Définition des vues Produits en entrée : schéma logique; sous-schémas conceptuels Processus : dérive pour chaque sous-schéma conceptuel un ensemble équivalent de vues conformes au modèle logique Produit en sortie : collection de vues Critère : conformité au modèle logique
1.3 Méthodes de développement de bases de données 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.3 Méthodes de développement de bases de données Production du code Produits en entrée : schéma physique; vues Processus : produit le code DDL déclarant les structures de données; produit le code additionnel Produit en sortie : code Critères : conformité aux langages du SGBD; qualité du code le code d'une BD de la CE comprend 300.000 lignes le DDL est limité et ne peut pas tout exprimer
1.4 LES MODELES DE DEVELOPPEMENT 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.4 LES MODELES DE DEVELOPPEMENT
= processus traditionnel en cascade (modèle waterfall) 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.4 Les modèles de développement Méthode présentée comme un enchaînement linéaire de processus = processus traditionnel en cascade (modèle waterfall) Analyse conceptuelle Conception logique Conception physique Définition des vues Production de code
. . . 1.4 Les modèles de développement 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.4 Les modèles de développement Méthode en cascade généralement jugée rigide, lourde, peu adaptative, historique, voire obsolète. Bref, ringarde ! A l'opposé : les méthodes itératives (en spirale, agiles et autres XP) En réalité, les deux modèles sont complémentaires : schéma conceptuel (v1) logique (v1) physique (v1) code DDL (v1) Conception BD besoins utilisateurs (v1) schéma conceptuel (v2) logique (v2) physique (v2) code DDL (v2) Conception BD besoins utilisateurs (v2) schéma conceptuel (vj) logique (vj) physique (vj) code DDL (vj) Conception BD besoins utilisateurs (vj) . . .
1.5 LES PROCESSUS D'INGENIERIE 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.5 LES PROCESSUS D'INGENIERIE
1.5 Les processus d'ingénierie 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.5 Les processus d'ingénierie On a considéré le processus de construction d'une base de données. Le cycle de vie d'une base de données est beaucoup plus riche . . . conception : construction initiale des schémas rétro-ingénierie : reconstruction a posteriori des schémas d'une base de données non (ou mal) documentée maintenance : correction des erreurs dans les schémas évolution : modification de la sémantique des schémas intégration : fusion de deux bases de données refactoring : amélioration des schémas à sémantique inchangée migration : déplacement d'une base de données vers une autre plateforme technologique (p. ex. CODASYL vers SGBD relationnel) réutilisation : certaines parties sont réutilisées dans un autre contexte
1.5 Les processus d'ingénierie 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.5 Les processus d'ingénierie La base de données est un composant essentiel du système d'information. Système d'information (sens restreint) : Système fortement couplé constitué d’équipements (ordinateurs, serveurs, réseaux), de logiciels de base, de logiciels d’application et de données. Le SI a pour objectif de satisfaire les besoins en information d’une organisation dans ses activités de production et de gestion. Il assure principalement les tâches de collecte, de transmission, de présentation, de mémorisation et de traitement des données relatives à l’organisation et à son environnement. Système d'information (sens large) : sous-système partiellement automatisé de l’organisation qui inclut en outre les ressources humaines, comprenant les utilisateurs, les décideurs, le personnel informatique et les tiers de l’organisation.
1.5 Les processus d'ingénierie 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.5 Les processus d'ingénierie La base de données est un composant essentiel du système d'information mais il n'est pas le seul . . . . . . traitements (logiciels d'application), interfaces HM, architecture Ces composants sont en forte interaction : les programmes utilisent les données la BD satisfait les exigences des programmes les interfaces HM présentent les données aux utilisateurs (humains) les interfaces HM transmettent des données à la BD l'architecture de l'application concerne les données : distribution, coopération, nomadisme, duplication, synchronisation, transactions, etc.
1.5 Les processus d'ingénierie 1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement 1.5 Les processus d'ingénierie Il est donc naturel que les méthodes de conception de la BD des programmes de l'interface HM de l'architecture présentent des interactions. Malheureusement, les méthodes couvrant l'ensemble de ces aspects ne sont pas encore très répandues en pratique. Exemple : les diagrammes UML (classes, activités, de séquence, d'états) restent des spécifications indépendantes, à charge des concepteurs/développeurs de vérifier leur cohérence.
1.1 Introduction 1.5 Les processus d'ingénierie 1.2 Méthodes, processus et produits 1.3 Méthodes de développement de BD 1.4 Les modèles de développement La suite . . . 2. Le modèle Entité-association étendu (+ diagrammes de classes UML) 3. L'analyse conceptuelle 4. La conception logique relationnelle (+ 5. Conception logique relation.-objet) 6. La conception physique relationnelle 7. La production de code SQL DDL 8. Bonus : La rétro-ingénierie
2. Le modèle Entité-association étendu Fin du chapitre 1 Chapitre suivant : 2. Le modèle Entité-association étendu