Bases de Données Avancées



Documents pareils
Bases de Données Avancées

Information utiles. webpage : Google+ : digiusto/

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

Rappel sur les bases de données

Bases de Données Avancées

Modélisation des données

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

Bases de données relationnelles

UML et les Bases de Données

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

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

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

Introduction aux Bases de Données

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

Introduction aux Bases de Données

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

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

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

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

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

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

Base de Données et Langage SQL

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

Bases de données avancées Introduction

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

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

Bases de données. Chapitre 1. Introduction

Application web de gestion de comptes en banques

Modèle Entité/Association

et les Systèmes Multidimensionnels

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

Les bases de données Page 1 / 8

I4 : Bases de Données

Conception d une base de données

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

Bases de Données. Plan

Bases de données relationnelles & SQL

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Bases de données relationnelles : Introduction

Table des matières. Avant-propos

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

1 Introduction et installation

MERISE. Modélisation et Conception de Systèmes d Information

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

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

Mercredi 15 Janvier 2014

INTRODUCTION AUX BASES de DONNEES

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

CHAPITRE 1 ARCHITECTURE

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

Merise. Introduction

Bases de données - Modèle relationnel

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)

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

TP 8: LES OPERATEURS ENSEMBLISTES

Introduction à la B.I. Avec SQL Server 2008

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

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

CESI Bases de données

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

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

II. Modèle conceptuel le modèle entité-association

Les bases de données

TP Contraintes - Triggers

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

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

et les Systèmes Multidimensionnels

Université de Bangui. Modélisons en UML

Cours Bases de données

CATALOGUE FORMATIONS DOMAINE Bases de données

MEGA Database Builder. Guide d utilisation

Conception, architecture et urbanisation des systèmes d information

Chapitre 1 : Introduction aux bases de données

Méthode d analyse Merise

IFT3030 Base de données. Chapitre 1 Introduction

Visual Paradigm Contraintes inter-associations

Modèle conceptuel : diagramme entité-association

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Bases de données cours 1

Master Exploration Informatique des données DataWareHouse

Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Entrepôt de données 1. Introduction

Chap. 3: Le modèle de données entité-association (E.A.)

Projet Business Object

Introduction aux SGBDR

Principes de la conception des bases de données

1/ Présentation de SQL Server :

Dossier I Découverte de Base d Open Office

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Transcription:

1/55 Bases de Données Avancées 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/ INFO2 BDA

2/55 Sources des transparents F. Boufares, LIPN, Université Paris Nord

3/55 Programme des enseignements Rappels de SQL Conception & Modélisation de Bases de Données Implantation de Bases de Données Autres (Bases de Données, Entrepôts de données, XML)

4/55 Des bases de données aux Entrepôts de données

5/55 Historique Générations de SGBD Historique 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

6/55 Historique Exemples de SGBD Historique 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

7/55 Historique Applications BD, ED, FD Historique 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

8/55 Historique Applications BD, ED, FD Historique 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

9/55 Historique Structure et type de données Historique 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

10/55 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...)

11/55 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

12/55 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

13/55 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.

14/55 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

15/55 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

16/55 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

17/55 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

18/55 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.

19/55 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é

20/55 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

21/55 É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

22/55 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 identifants

23/55 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

24/55 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

25/55 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)

26/55 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 cardianalité doit être associée à chaque patte de la relation

27/55 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

28/55 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

29/55 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

30/55 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 en 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 correspondrait-il pas à une seule entité

31/55 Entité-relation et UML Formalisme ER : Formalisme UML :

32/55 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

33/55 Formalisme ER : Retour sur les cardinalités Généralisation Interprétations : A est lié 0 à n à B La connaissance de B permet de définir A La clé de B définit l instance de A Formalisme UML :

34/55 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

35/55 Elaboration 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 cet étape (Objecteering, Rational Rose) Indépendant de la couche physique Résultat : modèle logique de la base de données

36/55 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) Charge(numProf, numcours)

37/55 Passage au relationnel Traduction des associations : Règle de base : représentation des association 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

38/55 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

39/55 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

40/55 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)

41/55 Première forme normale (1FN) Vol(NoVol*, CodeAeroDep, CodeAeroArr, HeureDep, HeureArr, Jours) devient Vol(NoVol*, CodeAeroDep, CodeAeroArr, HeureDep, HeureArr, Jour) Vol(NoVol*, Jour)

42/55 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.

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

44/55 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

45/55 Troisième forme normale (3FN) Exemple : Voiture(Modele, Couleur, Annee, Cote) il y a une dépendance entre l année et le prix devient Voiture(Modele, Couleur, Annee) Cote(Année, Cote)

46/55 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

47/55 Forme normale de Boyce-Codd (BCNF) Exemple : soit la relation Vins(Cru, Pays, Région) Cru Pays Région Chenas France Beaujolais Julienas France Beaujolais Morgon France Beaujolais Brouilly France Beaujolais Chablis Etats-Unis Californie Attention : de nombreuses redondances On propose les relations : Crus (Cru, Région) Régions (Région, Pays)

48/55 É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

49/55 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 )

50/55 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) ) ;

51/55 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 ) ;

52/55 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 ) ) ;

53/55 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 ) ;

54/55 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) )

55/55 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 /