Bases de Données Avancées

Documents pareils
Bases de données relationnelles

Information utiles. webpage : Google+ : digiusto/

Bases de Données Avancées

Rappel sur les bases de données

Conception des bases de données : Modèle Entité-Association

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Présentation du module Base de données spatio-temporelles

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Bases de données Cours 1 : Généralités sur les bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Introduction aux Bases de Données

UML et les Bases de Données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données relationnelles et leurs systèmes de Gestion

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Modélisation des données

Bases de données avancées Introduction

Modélisation de bases de données : Le modèle relationnel

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Les bases de données

IFT3030 Base de données. Chapitre 1 Introduction

CREATION WEB DYNAMIQUE

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données Relationnelles. Le Modèle Relationnel

TP3 : Creation de tables 1 seance

SQL Historique

Base de Données et Langage SQL

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Application web de gestion de comptes en banques

Introduction au Système de Gestion de Base de Données et aux Base de Données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Cours Bases de données

Introduction aux Bases de Données

Systèmes d information et bases de données (niveau 1)

CHAPITRE 1 ARCHITECTURE

Bases de données cours 1

I4 : Bases de Données

Bases de Données. Plan

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

TP Contraintes - Triggers

Bases de données relationnelles : Introduction

Table des matières. Avant-propos

Bases de données - Modèle relationnel

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 1 Généralités sur les bases de données

Bases de données. Chapitre 1. Introduction

Le langage SQL (première partie) c Olivier Caron

Devoir Data WareHouse

MERISE. Modélisation de Systèmes d Information. Pierre Gérard. DUT Informatique 2ème année 2004/2005. IUT de Villetaneuse - Université de Paris 13

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

Le Langage SQL version Oracle

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Bases de données et sites WEB

Bases de données relationnelles & SQL

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

et les Systèmes Multidimensionnels

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

CATALOGUE FORMATIONS DOMAINE Bases de données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Compétences Business Objects

INTRODUCTION AUX BASES de DONNEES

Les bases de données Page 1 / 8

Master Exploration Informatique des données DataWareHouse

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

1 Introduction et installation

Mercredi 15 Janvier 2014

Administration des bases de données. Jean-Yves Antoine

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Vincent Augusto

Introduction à la B.I. Avec SQL Server 2008

Création et Gestion des tables

Principes de la conception des bases de données

Notes de cours : bases de données distribuées et repliquées

Cours de bases de données. Philippe Rigaux

Bases de données Outils de gestion

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Olivier Mondet

Bases de Données Avancées

Le Langage De Description De Données(LDD)

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

16H Cours / 18H TD / 20H TP

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Conception d une base de données

Introduction aux bases de données

CESI Bases de données

Modèle Entité/Association

Transcription:

1/62 Bases de Données Avancées Introduction & Rappel Conception et Modélisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny cedex Tél. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55 thierry.hamon@univ-paris13.fr http://www-limbio.smbh.univ-paris13.fr/membres/hamon/bda-20112012 INFO2 BDA

2/62 Introduction Sources des transparents M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud V. Mogbil, LIPN, Université Paris Nord J. Ullman http://infolab.stanford.edu/~ullman/ C. Rouveirol, LIPN, Université Paris Nord F. Boufares, LIPN, Université Paris Nord

3/62 Introduction Présentation du cours Présentation du cours Objectif du cours (12 séances de 1h30) : Des Bases de Données aux Entrepôts de Données Exploitation Intelligente des Données Travaux Pratiques (12 séances de 1h30) : Mise en œuvre de concepts vus en cours (PL/SQL, UML SQL2/3, intégrité des données, etc.)

4/62 Introduction Présentation du cours Programme des enseignements Rappels de SQL Méta-Modélisation, Formalismes utilisés (ER, EER, UML,...) Expression & Cohérence des contraintes (SQL2/3, PL/SQL, OCL,...) Implantation de Bases de Données Relationnel-étendu, Orienté Objet (de UML à SQL2/3, JDBC, Java, PL/SQL J...) Optimisation de Requêtes, Evaluation de Requêtes Architecture de SGBD, Administration de BD Autres (Bases de Données, Entrepôts de données, XML) Gros volumes de données / Entrepôts de données / Données MultiDimensionnelles Données Homogènes & Hétérogènes, Données Réparties/Web, Données de type documents,...

5/62 Introduction Présentation du cours Des bases de données aux Entrepôts de données

6/62 Introduction Historique Historique Générations de SGBD Volume de données Type de données Indépendance physique Portabilité SGBD 3 Avancés 1980 1990 2000 SGBD4/5 Avancés 2004/5 2010 SGBD 2 Relationnels 1970 1980 1990 SGBD 1 Hiérarchies, Réseaux 1960 1970 1980 Puissance Performance Cohérence

7/62 Introduction Historique Historique Exemples de SGBD SGBD4/5 Volume de données Type de données Indépendance physique Portabilité SGBD 1 COADSYL, SOCRATE,... SGBD 2 ORACLE 5/6 INGRES, DB2,... SGBD 3 ORACLE 7/8, INGRES, DB2, Sybase, Verssant Enjin (O2), ObjectStore, Orlent, MySQL, PostGreSQL, SQLServer, ACCESS,... Puissance ORACLE 9i, 10g, 11 DB2,... XML,... Bases de données Entrepôts de données Intégration de Données Performances Cohérence

8/62 Introduction Historique Historique Applications BD, ED, FD Volume de données Type de données Fouille de données (Analyse du comportement des clients, etc.) Entrepôts de données (grosses masses de données) Intégration de plusieurs systèmes d information nationaux et internationnaux) (milliers de tables de quelques millions de lignes) > 100 Go Applications : Gestion des risques, Analyse des ventes (100 tables de quelques millions de lignes) 2 Go Applications : Paie, Marketing, Financière (50 tables de quelques milliers de lignes) 50 Mo Bases de Données Entrepôts de Données Intégration de Données Performance

9/62 Introduction Historique Historique Applications BD, ED, FD Volume de données Type de données Entrepôts de données (OLTP : < 10 secondes) (OLAP < 1 heure) ( MV : agrégation,...) (Batch : Quotidien ou mensuel < 1h) Grosse volumétrie : travail d optimisation et suivi des activités du DWh nécéssaire Par expérience, certains traitements ne se terminent pas au bout de quelques jours Nécessité de modifications techniques et fonctionnelles Applications : Gestion des risques, Analyse des ventes (Batch : < 1 heure) Applications : Paie, Marketing, Financière (OLTP: quelques secondes) (Batch : < 1 heure) Bases de Données Entrepôts de Données Intégration de Données Performance

10/62 Introduction Historique Historique Structure et type de données Volume de données Type de données Indépendance physique Portabilité Relations Relationnelle & objet Structure de données TABULAIRE Type de données COMPLEXE Hiérarchique & Réseau Structure de données en RESEAU Structure HIERARCHIQUE des données Puissance Performance Cohérence

11/62 Rappels de SQL Commandes SQL Plusieurs sortes de commandes SQL parmi lesquelles : LDD (langage de définition de données), LMD (langage de manipulation des données) c est-à-dire du LMJ (langage de mise à jour) et du LID (langage d interrogation des données), LCD (langage de contrôle des données).

12/62 Rappels de SQL Le Langage de Définition de Données : LDD Le Langage de Définition de Données (LDD) Ensemble de commandes qui définit une base de données et les objets qui la composent la définition d un objet inclut sa création: CREATE sa modification ALTER sa suppression DROP

13/62 Rappels de SQL Le langage de manipulation de données : LMD Le langage de manipulation de données : LMD Ensemble de commandes qui permet la consultation et la mise à jour des objets créés par le langage de définition de données Consultation : SELECT La mise à jour inclut : l insertion de nouvelles données : INSERT la modification de données existantes : UPDATE la suppression de données existantes : DELETE

14/62 Rappels de SQL Le langage de manipulation de données : LMD Le langage de manipulation de données : LMD Exemple SELECT < l i s t e champ ( s)> FROM < l i s t e n o m t a b l e ( s)> [WHERE c o n d i t i o n ( s ) ] [ o p t i o n s ] ; INSERT INTO <nom table > [( < l i s t e champ ( s ) >)] VALUES (< l i s t e v a l e u r s >); UPDATE <nom table > SET <champ> = <e x p r e s s i o n > [WHERE < l i s t e c o n d i t i o n ( s)> ] ; DELETE FROM <nom table > [WHERE < l i s t e c o n d i t i o n ( s)> ] ;

15/62 Rappels de SQL Le langage de contrôle de données : LCD Le langage de contrôle de données : LCD Ensemble de commandes de contrôle d accès aux données Le contrôle d accès inclut : l autorisation à réaliser une opération : GRANT l interdiction de réaliser une opération : DENY Annulation d une commande de contrôle précédente : REVOKE l autorisation à modifier des enregistrements : UPDATE l interdiction de modifier des enregistrements : READ (consultation en lecture seulement) l autorisation à supprimer des enregistrements : DELETE

16/62 Introduction Conception, Développement, Utilisation, Administration 1 Etape conceptuelle : Conception et Modélisation de bases de données Utilisation de Méthodes, Modèles, Formalismes Modèle Entité-Association E/A / Modèle Entité-Association étendu Modèles Objet, Formalisme UML Power AMC, Power Designer WinDev, Oracle Designer Rational Rose,... 2 Etape logique : Implantation d une base de données Modèle Relationnel / Modèle Objet-Relationnel / Modèle Objet Optimisation du schéma (Normalisation, Dénormalisation...)

17/62 Introduction Conception, Développement, Utilisation, Administration 3 Etape physique : SGBD Relationnel / SGBD Objet-Relationnel / SGBD Orienté Objet Langages ( SQL, PL/SQL, PRO*C, JDBC, Java,...) Optimisations (Groupement, Index,...) Administration Oracle, DB2, My SQL 4 Logiciels (SGBD, Interfaces,...) & Matériels

18/62 Introduction Conception du schéma des bases Une des tâches essentielles des développeurs de bases de données Objectif : structuration du domaine d application afin de de le représenter sous forme de types et de tables d accompagner ces structures de contraintes sur les données afin de tirer plus de sémantique

19/62 Introduction Conception du schéma des bases La représentation doit être : juste pour éviter les erreurs sémantiques, notamment dans les réponses aux requêtes ; complète pour permettre le développement des programmes d application souhaités ; évolutive afin de supporter la prise en compte rapide de nouvelles demandes.

20/62 Introduction Etapes de conception Démarche de conception traditionnelle : par abstractions successives en descendant depuis les problèmes de l utilisateur vers le Système de Gestion de Bases de Données. Cinq étapes : 1 Perception du monde réel et capture des besoins 2 Élaboration du schéma conceptuel 3 Conception du schéma logique 4 Affinement du schéma logique 5 Élaboration du schéma physique

21/62 Introduction Remarques Étape 1 : plutôt relative au domaine du génie logiciel Étapes 2, 3, 4 et 5 : relative au domaine des bases de données

22/62 Introduction Etape 1 : Perception du monde réel et capture des besoins Etude des problèmes des utilisateurs Compréhension de leurs besoins Mise en place d entretiens, d analyses des flux d information et des processus métier Difficulté : compréhension du problème dans son ensemble Réalisation des études de cas partiels par les concepteurs Résultat : ensemble de vues ou schémas externes devant être intégrés dans l étape suivante Vues exprimées dans un modèle de de données : de type entité-association ou objet, selon la méthode choisie

23/62 Introduction Etape 2 : Élaboration du schéma conceptuel Intégration des schémas externes obtenus à l étape précédente Chaque composant est un schéma conceptuel : diagramme entité-association ou diagramme de classes Résultat : modèle de problème représentant une partie de l application Difficulté : intégration de toutes les parties dans un schéma conceptuel global complet, non redondant et cohérent NB : des allers et retours avec l étape précédente sont souvent nécessaires

24/62 Introduction Etape 3 : Conception du schéma logique Transformation du schéma conceptuel en structures de données supportées par le système choisi : le schéma logique. Avec un SGBD relationnel : passage à des tables. Avec un SGBD relationnel-objet : Génération de types et de tables, NB : les types sont réutilisables Avec un SGBD objet : génération de classes et de associations NB : Cette étape peut être complètement automatisée.

25/62 Introduction Etape 4 : Affinement du schéma logique Vérification : le schéma logique est-il un bon schéma? Définition en première approximation : un bon schéma est un schéma sans oublis ni redondances d informations Plus précisément : un schéma est bon si le modèle relationnel associé respecte au moins la troisième forme normale et la forme normale de Boyce-Codd (voir plus loin) Objectif en relationnel : regrouper ou décomposer les tables de manière à représenter fidèlement le monde réel modélisé

26/62 Introduction Etape 5 : Élaboration du schéma physique Etape nécessaire pour obtenir de bonnes performances Prise en compte de toutes les transactions concernant les applications traitées Permet de déterminer les accès fréquents Choix des bonnes structures physiques : groupement ou partitionnement de tables, index, etc. point essentiel pour obtenir de bonnes performances

27/62 Élaboration du schéma conceptuel Élaboration du schéma conceptuel Modélisation du problème en utilisant les spécifications des besoins obtenues à l étape 1 (capture des besoins) Deux possibilités : utilisation du formalisme Entité Relation (ou Entité Association) production d un diagramme ER/EA utilisation du formalisme UML production de classe Indépendance du modèle conceptuel par rapport au schéma physique

28/62 Élaboration du schéma conceptuel Phases d élaboration du schéma conceptuel Identification des entités ou classes Identification des associations Identification des attributs pour chacune des entités ou classes Définition des identifiants

29/62 Élaboration du schéma conceptuel Identification des entités ou classes Entités : élément abstrait ou concret (objet, évènement, etc.) reconnu distinctement Exemples : Jean Dupont, Michel Durant Type-entités : Ensemble des entités ayant les mêmes caractéristiques Exemple : Personne(nom, prenom) NB : Par abus de langage, on parle souvent d entités à la place de type-entités Dans l étape 1, il s agit de la description des éléments

30/62 Élaboration du schéma conceptuel Identification des associations Association : Lien logique entre deux entités Type-Association : Ensemble d association ou de relations possèdant les mêmes caractéristiques. Association/type-association : même abus de langage A l étape 1 : une phrase simple reliant deux entités Exemple : un professeur est en charge de cours (lien entre les entités professeur et cours) Plusieurs types d association existent

31/62 Élaboration du schéma conceptuel Types d association unaire : relation au sein d une même entité Exemple : un employé supervise un employé binaire : relation entre deux entités (différentes) Exemple : un client passe plusieurs commandes ternaire : relation entre trois entités (différentes) Exemple : un internaute note un film à différentes date (on veut conserver l historique des notes)

32/62 Élaboration du schéma conceptuel Cardinalité d un type-association Cardinalité : nombre minimal et maximal de fois qu une entité peut intervenir dans une association de ce type Exemple : un client peut commander 1 à n produits Remarques : la cardinalité minimal doit être inférieure à la cardinalité maximale la cardinalité doit être associée à chaque patte de la relation

33/62 Élaboration du schéma conceptuel Cardinalité minimale/maximale Cardinalité minimale : 0 : une entité peut exister tout en étant impliquée dans aucune association 1 : une entité ne peut exister que si elle est impliquée dans au moins une association n : une entité ne peut exister que si elle est impliquée dans plusieurs associations (cas rare,à éviter car cela pose des problèmes) Cardinalité maximale : 0 : une entité ne peut pas être impliquée dans une association (normalement inexistant sinon problème de conception) 1 : une entité peut être impliquée dans au maximum une association n : une entité peut être impliquée dans plusieurs associations

34/62 Élaboration du schéma conceptuel Identification des attributs Attribut : caractéristique associée à une entité Exemples : nom, prénom, age Domaine associé à un attribut : ensemble des valeurs possibles Chaque attribut doit possèder une valeur compatible avec son domaine Remarque : Eviter absolument les attributs calculés. Toujours utiliser des données primaires les attributs qui servent à les calculer

35/62 Élaboration du schéma conceptuel Définition de l identifiant Identifiant : liste des attributs devant avoir une valeur unique chaque entité Exemple : numéro d immatriculation d une voiture, numéro de sécurité sociale Remarques : On utilise plutôt le terme clé que identifiant Chaque type doit possèder un identifiant (formé d un ou plusieurs attributs) L identifiant d une association est la concaténation des identifiants des entités liés NB : on peut définir un identifiant plus naturel

36/62 Élaboration du schéma conceptuel Remarques sur la conception Un attribut ne peut être partagé entre deux entités ou associations (problème de redondance) En cas de difficulté à choisir entre entité et association (par exemple, mariage) : utiliser le contexte pour y répondre En cas de difficulté à trouver un identifiant pour un type-entité : ne s agirait-il pas une association? Association dont toutes les pattes ont une cardinalité 1,1 : l association et les entités liées ne correspondraint-ils pas à une seule entité?

37/62 Élaboration du schéma conceptuel Entité-relation et UML Formalisme ER : Formalisme UML :

38/62 Élaboration du schéma conceptuel Retour sur les cardinalités interprétation Formalisme ER (une des cardinalités est volontairement absente) Tout étudiant participe au moins une fois à l association est inscrit. Tout étudiant est inscrit dans au moins une formation Autrement dit : à une instance d étudiant peut être associé à plusieurs formations

39/62 Élaboration du schéma conceptuel Retour sur les cardinalités Généralisation Formalisme ER : Interprétations : A est lié 0 à n fois à B La connaissance de B permet de définir A La clé de B définit l instance de A Formalisme UML :

40/62 Élaboration du schéma conceptuel ER ou UML? Si conception de bases de données : utilisation du modèle entité/relation On mets l accent sur le système d information (stockage, traitement, réception, diffusion de l information) Si conception objet et programmation : utilisation de UML(2 incluant l héritage) On mets l acent sur les structures de données et la programmation

41/62 Élaboration du schéma logique Élaboration du schéma logique Transformation du modèle conceptuel en une structure de données basée sur un modèle de données spécifique (par exemple, modèle relationnel) Réalisation de la transformation à l aide de règles formelles Possibilité d automatisation de cette étape (Objecteering, Rational Rose) Indépendant de la couche physique Résultat : modèle logique de la base de données

42/62 Élaboration du schéma logique Passage au relationnel Implémentation des entités et associations sous forme de tables Les attributs correspondent aux colonnes des tables le nom de l attribut est le nom de la colonne l ensemble des valeurs possibles est le domaine Exemple : Professeur(numProf, nom, prenom) Cours(nomCours, nom, nbheures) Charge(numProf, numcours)

43/62 Élaboration du schéma logique Passage au relationnel Traduction des associations : Règle de base : représentation des associations par une table dont le schéma est le nom de l association la liste des clés des entités participantes suivie des attributs de l association Amélioration : Regrouper les associations 1..n avec la classe cible Exemple : Voiture(numV, Marque, modele) Possede(numProp, numv, Date) les deux tables peuvent être regroupées si toutes les voitures n ont qu un et un seul propriétaire

44/62 Affinement des requêtes Affiner les requêtes respecter les formes normales Pourquoi normaliser? pour limiter les redondances de données pour limiter les pertes de données pour limiter les incohérences au sein des données pour améliorer les performances des traitements

45/62 Affinement des requêtes Formes normales 8 formes normales : Formes normales 1 à 3 Forme normale de Boyce-Codd Formes normales de 4/5(/6) Forme normale de domaine-clé Objectifs des trois premières formes normales : permettre la décomposition de relations sans perdre d informations Une relation en forme normale de niveau N est forcément de forme normale de niveau N 1

46/62 Affinement des requêtes Première forme normale (1FN) Une relation est en première forme normale si tous ses attributs contiennent des valeurs simples et non-décomposables (utiliser une liste ou une table externe) non-répétitives constantes dans le temps (date de naissance plutôt que l âge)

47/62 Affinement des requêtes Première forme normale (1FN) Vol(NoVol*, CodeAeroDep#, CodeAeroArr#, HeureDep, HeureArr, Jours) devient Vol(NoVol*, CodeAeroDep#, CodeAeroArr#, HeureDep, HeureArr) Vol(NoVol*, Jour)

48/62 Affinement des requêtes Deuxième forme normale (2FN) Une relation est en deuxième forme normale si et seulement si : elle est en première forme normale tout attribut non clé est totalement dépendant de toute la clé Autrement dit, une des trois conditions doit être respectée : La clé primaire n est formée que d un seul attribut La clé primaire contient tous les attributs de la table Si la clé a plus d un attribut, une dépendance fonctionnelle ne doit jamais exister entre une partie seulement de la clé et un autre attribut de la table.

49/62 Affinement des requêtes Deuxième forme normale (2FN) Avion(Constr*, Modèle*, Conso, Capacité, VitesseMax) il y a une dépendance fontionnelle entre Modèle et Capacité On divise la table en deux : Avion(Constr*, Modèle*) ModeleAvion(Modèle*, Conso, Capacité, VitesseMax)

50/62 Affinement des requêtes Troisième forme normale (3FN) Une relation est en troisième forme normale si et seulement si : elle est en deuxième forme normale tout attribut n appartenant pas à une clé ne dépend pas d un attribut non clé les dépendances fonctionnelles entre deux attributs ordinaires (ne faisant par partie de la clé) ne sont pas autorisées

51/62 Affinement des requêtes Troisième forme normale (3FN) Exemple : Enseignant(Nom*, Categorie, Classe, Salaire) Le salaire dépend de la catégorie et de la classe devient Enseignant(Nom*, Categorie#, Classe#) Salaire(Categorie*, Classe*, Salaire)

52/62 Affinement des requêtes Forme normale de Boyce-Codd (BCNF) Extension plus rigide de la troisième forme normale (définie par R.F. Boyce et E.F. Codd en partant du constat que la 3FN comportait certaines anomalies) Une relation est en forme normale de Boyce-Codd si et seulement si : aucun attribut faisant partie de la clé ne dépend d un attribut ne faisant pas partie de la clé primaire Remarques : Un modèle relationnel en FNBC est considéré comme étant de qualité suffisante pour une l implantation Les cas de relations en 3FN qui ne sont pas déjà en FNBC sont très rares

53/62 Affinement des requêtes Forme normale de Boyce-Codd (BCNF) Exemple 1 : R(A, B*, C*, D) Avec les dépendances : B,C A, B,C D, D B, (ce qui entraine de nombreuses redondances) On propose les relations : R(A, B*, C*) R (D*, B)

54/62 Affinement des requêtes Forme normale de Boyce-Codd (BCNF) Exemple 2 : ReservationCourtTennis(NomCourt*, HeureDebut*, HeureFin, ClasseTauxHoraire) La classe du taux horaire (SILVER, GOLD, PREMIUM) détermine les courts disponibles. On propose les relations : ReservationCourtTennis(NomCourt*, HeureDebut*, HeureFin) ClasseCourt(ClassTauxHoraire*, NomCourt)

55/62 Élaboration du schéma physique Élaboration du schéma physique Objectifs : Rechercher de bonnes performances Prendre en compte les transactions Indexer, dénormaliser, grouper, partitionner les tables Résultat : modèle physique optimisé de la base de données

56/62 Élaboration du schéma physique Exemple Schéma relationnel COURS ( NUM COURS, NOMC, NBHEURES, ANNEE ) PROFESSEURS ( NUM PROF, NOMP, SPECIALITE, DATE ENTREE, DER PROM, SALAIRE BASE, SALAIRE ACTUEL ) CHARGE( NUM PROF, NUM COURS )

57/62 Élaboration du schéma physique Schéma physique (SQL2) c r e a t e t a b l e COURS (NUM COURS NUMBER( 2 ) NOT NULL, NOMC VARCHAR( 2 0 ) NOT NULL, NBHEURES NUMBER( 2 ), ANNE NUMBER( 1 ), c o n s t r a i n t PK COURS p r i m a r y key (NUM COURS) ) ; c r e a t e t a b l e PROFESSEURS (NUM PROF NUMBER( 4 ) NOT NULL, NOMP VARCHAR2( 2 5 ) NOT NULL, SPECIALITE VARCHAR2( 2 0 ), DATE ENTREE DATE, DER PROM DATE, SALAIRE BASE NUMBER, SALAIRE ACTUEL NUMBER, c o n s t r a i n t PK PROFESSEURS p r i m a r y key (NUM PROF) ) ;

58/62 Élaboration du schéma physique Schéma physique (SQL2) c r e a t e t a b l e CHARGE (NUM PROF NUMBER( 4 ) NOT NULL, NUM COURS NUMBER( 4 ) NOT NULL, c o n s t r a i n t PK CHARGE p r i m a r y key (NUM COURS, NUM PROF) ) ; a l t e r t a b l e CHARGE add c o n s t r a i n t FK CHARGE COURS f o r e i g n key (NUM COURS) r e f e r e n c e s COURS (NUM COURS ) ; a l t e r t a b l e CHARGE add c o n s t r a i n t FK CHARGE PROFESSEUR f o r e i g n key (NUM PROF) r e f e r e n c e s PROFESSEURS (NUM PROF ) ;

59/62 Élaboration du schéma physique Schéma physique (SQL2) Ajout de contraintes c r e a t e t a b l e COURS (NUM COURS NUMBER( 2 ), NOMC VARCHAR( 2 0 ), NBHEURES NUMBER( 2 ), ANNE NUMBER( 1 ), c o n s t r a i n t PK COURS p r i m a r y key (NUM COURS), c o n s t r a i n t NN COURS NOMC check (NOMC I S NOT NULL ) ) ; c r e a t e t a b l e PROFESSEURS (NUM PROF NUMBER( 4 ), NOMP VARCHAR2( 2 5 ), SPECIALITE VARCHAR2( 2 0 ), DATE ENTREE DATE, DER PROM DATE, SALAIRE BASE NUMBER, SALAIRE ACTUE NUMBER, c o n s t r a i n t PK PROFESSEURS p r i m a r y key (NUM PROF), c o n s t r a i n t NN PROFESSEURS NOMP check (NOMP I S NOT NULL ) ) ;

60/62 Élaboration du schéma physique Schéma physique (SQL2) Ajout de contraintes c r e a t e t a b l e CHARGE (NUM PROF NUMBER( 4 ), NUM COURS NUMBER( 4 ),, c o n s t r a i n t PK CHARGE p r i m a r y key (NUM COURS, NUM PROF) ) ; a l t e r t a b l e CHARGE add c o n s t r a i n t FK CHARGE COURS f o r e i g n key (NUM COURS) r e f e r e n c e s COURS (NUM COURS ) ; a l t e r t a b l e CHARGE add c o n s t r a i n t FK CHARGE PROFESSEUR f o r e i g n key (NUM PROF) r e f e r e n c e s PROFESSEURS (NUM PROF ) ;

61/62 Élaboration du schéma physique Schéma relationnel-objet COURS ( NUM COURS, NOMC, NBHEURES, ANNEE ) PROFESSEURS ( NUM PROF, NOMP, SPECIALITE, DATE ENTREE, DER PROM, SALAIRE BASE, SALAIRE ACTUEL, Ensemble de (COURS) )

62/62 Élaboration du schéma physique Schéma physique SQL3 c r e a t e t y p e c o u r s t y p e as o b j e c t ( num cours number ( 2 ), nomc v a r c h a r 2 ( 2 0 ), n b h e u r e s number ( 2 ), annee number ( 1 ) ) / c r e a t e t y p e l e s c o u r s t y p e as t a b l e o f c o u r s t y p e / c r e a t e t y p e p r o f e s s e u r t y p e as o b j e c t ( num prof number ( 4 ), nom v a r c h a r 2 ( 2 5 ), s p e c i a l i t e v a r c h a r 2 ( 2 0 ), c o u r s l e s c o u r s t y p e... ) / c r e a t e t a b l e p r o f e s s e u r o f p r o f e s s e u r t y p e ( p r i m a r y key ( num prof ) ) n e s t e d t a b l e c o u r s s t o r e as tabemp /