Bases de données et sites WEB Cours 2 : SQL3 Modèle



Documents pareils
A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES?

Hala Skaf-Molli. Nancy-Université 14 mai 2007

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

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)

Chapitre VI- La validation de la composition.

UML et les Bases de Données

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

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

Information utiles. webpage : Google+ : digiusto/

1. Introduction. Introduction au langage SQL3 (SQL 99) Plan. Sources du cours. 1. Introduction La norme SQL3 et ses composants

Les Bases de Données et l Objet Introduction

Génie Logiciel avec Ada. 4 février 2013

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

I4 : Bases de Données

TP Contraintes - Triggers

Bases de données. Chapitre 1. Introduction

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

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

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

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

UML. Diagrammes de classes (suite) Delphine Longuet.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Quelques aspects du Relationnel-Objet du SGBD Oracle

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

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

Bases de données relationnelles : Introduction

Objets et Programmation. origine des langages orientés-objet

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

Bases de données avancées

Héritage presque multiple en Java (1/2)

Développement d un interpréteur OCL pour une machine virtuelle UML.

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Intégrité des données

Bases de données relationnelles

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Cours Bases de données 2ème année IUT

UML (Diagramme de classes) Unified Modeling Language

Rappel sur les bases de données

Présentation du PL/SQL

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

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Corrigés détaillés des exercices

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)

Les bases de données

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

Bases de Données Avancées

Initiation à JAVA et à la programmation objet.

Bases de données - Modèle relationnel

Bases de données élémentaires Maude Manouvrier

16H Cours / 18H TD / 20H TP

Devenez un véritable développeur web en 3 mois!

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

INTRODUCTION AUX BASES de DONNEES

OCL - Object Constraint Language

Application web de gestion de comptes en banques

Le Langage SQL version Oracle

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

Java et les bases de données

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

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

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)

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

NF26 Data warehouse et Outils Décisionnels Printemps 2010

TD/TP PAC - Programmation n 3

Gestion de base de données

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

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

Création et Gestion des tables

Diagramme de classes

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Bases de données cours 1

Les bases de données Page 1 / 8

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

GOL502 Industries de services

Oracle. SQL 3 - Objet - XML. Auteur : Clotilde Attouche. Version 1.1. Du 6 Mars 2010

Bases de Données. Plan

CREATION WEB DYNAMIQUE

Programmation Objet - Cours II

Le Langage De Description De Données(LDD)

Programmation d application Bases de données avec Java

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Une introduction à Java

OpenPaaS Le réseau social d'entreprise

1 Introduction et installation

Transcription:

Bases de données et sites WEB Cours 2 : SQL3 Modèle 1

Plan Insuffisances du modèle relationnel Concepts objet Modèle Objet-relationnel et SQL3 2

Insuffisances du modèle relationnel Opérations séparées des données procédures stockées non intégrées dans le modèle Limites du modèle de données 1ère forme normale de Codd inadapté aux objets complexes (documents structurés) introduction de BLOB : comment les manipuler? Dysfonctionnement des langages Pas de manipulation d ensembles dans les LP Mauvais support des applications non standards CAO, CFAO BD Géographiques BD techniques 3

L'apport des modèles objets Identité d'objets introduction de pointeurs invariants possibilité de chaînage Encapsulation des données possibilité d'isoler les données par des opérations facilite l'évolution des structures de données (les interfaces restent inchangées) Héritage d'opérations et de structures facilite la réutilisation des types de données permet l'adaptation à son application Possibilité d'opérations abstraites (polymorphisme) simplifie la vie du développeur 4

Objet Un objet est constitué - de données - d opérations applicables à ces données On distingue l interface (description des opérations applicables à l objet) de l implémentation (structure de données physiques et procédures qui réalisent les opérations) L utilisateur ne voit que l interface. Les données sont encapsulées. 5

Exemple Objet EMPLOYE nom : Martin prénom : Paul adresse : paris salaire : 5000 fonction : ingénieur Afficher identité Augmenter salaire(x) 6

Objet complexe Les objets complexes sont construits à partir d objets atomiques et de constructeurs. Les objets atomiques sont les entiers, les réels, les booléens, les chaînes de caractères, les images, etc. Les constructeurs sont le n-uplet, l ensemble, la liste, et le tableau. L utilisation des constructeurs est indépendante du type des objets (orthogonalité du système de types) 7

Exemple Objet EMPLOYE [nom : string prénom : string enfants : {string} adresse : [num: int rue : string ville : string] salaire : real fonction : string service : Service] Objet SERVICE [num : int titre : string directeur : Employe] 8

Identité d objet Chaque objet a une identité indépendante de sa valeur. Identité et égalité sont deux concepts différents. Les objets peuvent être partagés. On peut mettre à jour la valeur sans changer d identité. Les objets peuvent être représentés par un graphe de composition, qui peut comporter des cycles. 9

Identité d objet Le concept d identité existe dans les langages de programmation et dans les systèmes de bases de données sous forme de clé interne. C est une facilité offerte par le modèle, qui permet : - partage d objets, - objets cycliques, - maintien de la contrainte référentielle de façon automatique, - plusieurs niveaux de comparaison (égalité superficielle et égalité profonde). 10

Types et classes Un type/classe décrit les propriétés communes d un ensemble d objets : - propriétés structurelles (données) - propriétés de comportement (méthodes) Un type/classe a deux parties : spécification (méthodes) et implémentation (structure de données et implémentation des méthodes) Les types ou les classes permettent une abstraction des informations et de leur représentation. Ce sont les concepts utilisés pour décrire le schéma de la base. 11

Héritage et sous-typage On peut factoriser des classes ayant des propriétés communes (structure et /ou méthodes). Une sous-classe hérite des propriétés (données et méthodes) de sa super-classe. Elle est spécialisée en ajoutant des attributs propres et des méthodes propres. Ex: classe Personne (nom : string, datenais : Date) classe Etudiant inherits Personne (cursus : string) 12

Héritage L héritage permet d éviter la répétition de code en facilitant la réutilisation. Il rend le code plus simple en plaçant chaque procédure à son niveau d abstraction optimal. Il fournit une description compacte et bien structurée du schéma. Un schéma de base de données objet : ensemble de classes organisées en hiérarchie. 13

Redéfinition et Surcharge Redéfinition : Une méthode spécifiée dans une super-classe peut être redéfinie, (avec le même nom) avec un code différent au niveau d une sous-classe. Surcharge : Possibilité de définir plusieurs codes pour une même opération d une classe. Le code approprié est sélectionné selon le type des paramètres fournis lors d un appel. Ex. Un objet peut avoir plusieurs méthodes afficher, selon qu il s agit d afficher un formulaire, une carte, une image, etc. 14

Persistance Un objet persistant est un objet stocké dans la base, dont la durée de vie est supérieure au programme qui le crée. Une donnée est rendue persistante par une commande explicite (LP) ou par un mode automatique (BD): attachement à une racine de persistance attachement à un type de données Les noms du schéma servent de points d entrée à la base de données (les relations en relationnel, les noms de classe, ou des objets nommés en BDOO) 15

L'objet-relationnel Relationnel (tables, attributs, domaine, clé) + Objet (collections, identifiants, héritage, méthodes, types utilisateurs, polymorphisme) Extension du modèle relationnel attributs multivalués : structure, liste, tableau, ensemble,... héritage sur relations et types domaine type abstrait de données (structure cachée + méthodes) identité d'objets Extension de SQL définition des types complexes avec héritage appels de méthodes en résultat et qualification imbrication des appels de méthodes surcharge d'opérateurs 16

Exemple de table et objet Police Nom Adresse Conducteurs Accidents 24 Paul Paris Conducteur Age Paul 45 Robert 17 Accident 134 Rapport Photo 219 037 Objet Police 17

Les concepts Extensibilité des types de données Définition de types abstraits Possibilité de types avec ou sans OID Support d objets complexes Constructeurs de types (tuples, set, list, ) Utilisation de référence (OID) Héritage Définition de sous-types Définition de sous-tables 18

Le modèle SQL3 (ANSI99) Extension objet du relationnel, inspiré de C++ type = type abstrait de données avec fonction collection = constructeur de type table, tuple, set, list, bag, array fonction associée à une base, une table ou un type écrite en SQL, SQL3 PSM (Persistent Stored Module) ou langage externe (C, C++, Java, etc.) sous-typage et héritage objet = instance de type référencée par un OID (défaut) association = contrainte d'intégrité inter-classe 19

Types atomiques (SQL3 Oracle) Types atomiques Varchar2(<longueur>) Ex : Number(<longueur>) Date create type numsecu varchar2(15) ; create type salaire number(5) ; create type datenais Date; 20

Types objet (SQL3 Oracle) Types objet Create type <nom-type> as Object ( (<nom-attribut> [ref] <type>, )+ (<declaration-methodes>,)* ); create type employe as Object ( nom varchar2(10), nss numsecu, datenais Date) ; % type défini par l utilisateur 21

Types ensemblistes (SQL3 Oracle) Types ensemblistes : Table (ensemble avec doublons) Varray (collection ordonnée avec doublons) Create type <nom-type> as (Table Varray(<longueur>) ) of <type>; create type Employes as Table of employe; create type Nouveaux-employes as Varray (10) of employe ; 22

Méthodes (déclaration) Fonctions ou procédures associées à un type d objet. Modélisent le comportement d un objet Ecrites en PL/SQL ou JAVA, et sont stockées dans la base. Déclaration : Member function <nom-fonction> [(<nom-para> in <type>, )] return <typeresultat> Member procedure <nom-proc> [(<nom-para> in <type>, )] 23

Méthode (implémentation) Le corps de la méthode est défini dans la classe du receveur. Create type body <type-objet> as <declaration-methode> is <declaration var-locales> begin <corps de la methode> end; 24

Exemple create type employe as Object ( nom varchar2(10), nss numsecu, datenais Date, member function age return Number) ; create type body employe as member function age return Number is begin return sysdate datenais; end age; end; 25

Stockage des données (1) Les objets sont stockés dans des relations (table), comme n-uplet, ou comme attribut d un n-uplet. Ex1 : Create table LesEmployes of employe; La table LesEmployes stocke les objets de type employe (une instance par n-uplet). Ex 2 : Create table LesServices (nom varchar2(10), directeur employe); Le champ directeur de la relation LesServices stocke un objet de type employe (l objet est stocké comme attribut d un n- uplet). 26

Stockage des données (2) On définit une table imbriquée (nested table) pour les attributs ensemblistes : Create table <nom-table> of <nom-type> nested table <nom-attribut> store as <nom-tableimbriquee>; Create type Children as table of personne; create type employe as Object ( nom varchar2(10), nss numsecu, datenais Date, enfant Children) ; Create table LesEmployes of employe Nested table enfant store as les-enfants; 27

Sous-typage create type personne as object (nom varchar2(10), adresse varchar2(30), datenais date) not final; % not final permet à un type d avoir des sous-types create type employé under personne (affectation varchar2(10),repos jour-ouvré); create type étudiant under personne (université varchar2(20), no-étud number); 28

Héritage create table personnes of personne (primary key (nom)) ; %chaque n-uplet est un objet de type personne create table emps under personnes of employé ; 29

Conclusion Le modèle SQL3, standard en évolution, est proposé par tous les grands constructeurs (Oracle, Sybase, IBM, etc.), parfois sous une forme limitée. Points forts : - modélisation plus souple que le relationnel, en utilisant les concepts objet - programmation intégrée et modulaire - compatibilité avec le relationnel. 30