MANIPULATION D OBJETS



Documents pareils
BASES DE DONNEES ORIENTEES OBJETS BDA10.1

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

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

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

I4 : Bases de Données

Les bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

Le langage SQL Rappels

Bases de données cours 1

Introduction aux Bases de Données

INTRODUCTION AU DATA MINING

Langage SQL : créer et interroger une base

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

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

16H Cours / 18H TD / 20H TP

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

Bases de données relationnelles

Bases de Données. Plan

Quelques aspects du Relationnel-Objet du SGBD Oracle

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

Bases de données avancées Introduction

Bases de Données Avancées

Le Langage SQL version Oracle

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

Université de Bangui. Modélisons en UML

Évaluation et optimisation de requêtes

1 Modélisation d une base de données pour une société de bourse

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

UML et les Bases de Données

données en connaissance et en actions?

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

Introduction aux Bases de Données Relationnelles Conclusion - 1

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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

PROJET 1 : BASE DE DONNÉES REPARTIES

Bases de données et sites WEB

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1 Introduction et installation

Java et les bases de données

Bases de données - Modèle relationnel

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

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

CREATION WEB DYNAMIQUE

Bases de données. Chapitre 1. Introduction

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

Information utiles. webpage : Google+ : digiusto/

GOL502 Industries de services

Intégration de données hétérogènes et réparties. Anne Doucet

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association

Introduction aux Bases de Données

OpenPaaS Le réseau social d'entreprise

TP Bases de données réparties

Les Bases de Données et l Objet Introduction

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

TD n 10 : Ma première Base de Données

Systèmes de Gestion de Bases de Données

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

Les bases de données Page 1 / 8

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

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

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Dossier I Découverte de Base d Open Office

CHAPITRE 1 ARCHITECTURE

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

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

Implémentation des SGBD

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

UML. Diagrammes de classes (suite) Delphine Longuet.

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

TP 8: LES OPERATEURS ENSEMBLISTES

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

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

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

Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

Structure fonctionnelle d un SGBD

Architectures d'intégration de données

Séance 1 Introduction aux bases de données

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

Entrepôt de données 1. Introduction

Evidian IAM Suite 8.0 Identity Management

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

Introduction au Génie Logiciel

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Groupe Eyrolles, 2004 ISBN :

Chap. 2: L approche base de données

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

Java DataBaseConnectivity

Cours Bases de données

INFORMATIQUECOMMUNE CPGE. Introduction aux Bases de Données Relationnelles

Mejdi BLAGHGI & Anis ASSÈS

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

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

Transcription:

MANIPULATION D OBJETS

Introduction Manipuler des objets à structure complexe Résultat des requêtes Identité, égalité, gestion des doubles Hiérarchie de généralisation Comportement Conclusion

LANGAGES DE MANIPULATION (LMD) LMD = outil pour manipuler efficacement des grands ensembles d objets: recherche en fonction de la valeur d attributs mise à jour Objectifs: simplicité d emploi accès optimisés Différents types de LMD: navigationnels déclaratifs visuels

LMD NAVIGATIONNELS systèmes de fichiers SGBD réseau, hiérarchique browsers fonctions: accès à un objet à la fois pointeurs courants gérés par le système accès à l objet suivant à l objet sélectionné par tel chemin d accès Inséré dans un langage de programmation

Cours Cours prof nomc cycle étudiants prérequis nomc = 'BD' BD prof nomc cycle étudiants prérequis étudiants prof nomc cycle Dubois Annie BD prof nomc cycle étudiants prérequis étudiants prérequis étudiants suivant prof nomc cycle Duval Jean BD prof nomc cycle cours.obtenus prérequis étudiants prérequis

LMD DECLARATIFS L utilisateur spécifie le quoi et non le comment. En relationnel, SQL est un standard Ecriture rapide de requêtes Optimisation par le SGBD En OO, des propositions de SQLOO divers pas de standard, ni de consensus Peu de définition complète formelle Les OQL sont beaucoup plus complexes que le SQL relationnel Fonctions de base à définir exactement: algèbre OO

LMD VISUELS Maîtriser l emploi des SQLOO ou algèbre OO est difficile outils d aide nécessaires: éditeurs langages graphiques ou visuels Modèle de données adapté: support graphique : le diagramme liens explicites Browsers visuels (navigationnels) Langages de requêtes visuels (déclaratifs)

LMD des SGBDO Les SGBDO offrent toujours une interface procédurale extensible: méthodes prédéfinies langage de programmation méthodes définies pour l application souvent un SQLOO ± complet parfois un browser visuel bientôt un langage de requêtes visuel.

EFFICACITE des LMD OO Noms, prénoms et numéros des étudiants qui suivent les cours du professeur Spaccapietra En relationnel : Select p1 nom, prénom, n E From Personne p1, Pers_prénom, Etudiant, Suit, Assure, Personne Where p1 AVS = Pers_prénom AVS And p1 AVS = Etudiant AVS And Suit n Etud = Etudiant AVS And Suit nomc = Assure nomc And Assure n prof = Personne AVS And Personne nom = Spaccapietra

EFFICACITE des LMD OO (suite) Noms, prénoms et numéros des étudiants qui suivent les cours du professeur Spaccapietra En SQL OO : Select nom, prénoms, n E From Etudiant Where Exists c in cours_suivis : c prof nom = Spaccapietra

STRUCTURE COMPLEXE Objectifs: manipuler les objets de structure complexe atteindre les attributs composants définir la structure du résultat Relationnel non première forme normale (NF2): modèles, algèbres, calculs

STRUCTURE COMPLEXE (suite) Personne nom prénom P adresse enfant n Þ ru e v ille c o d e prénom E date sexe jo u r m o is a n nom prénomp* enfant* prénome* date sexe j m a Rochat Alfred Annie 1 4 90 F Jean Marie Marc 15 2 92 M André Jean

Accès aux attributs composants notation pointée + quantificateurs personnes qui ont transmis au moins un prénom à au moins un de leurs enfants Algèbre OO : sélection [ prénomp ( enfant ( enfant prénome (prénomp =enfant prénome))) ] Personne

Accès aux attributs composants notation pointée + quantificateurs personnes qui ont transmis au moins un prénom à au moins un de leurs enfants Algèbre OO : sélection [ prénomp ( enfant ( enfant prénome (prénomp =enfant prénome))) ] Personne

Accès aux attributs composants SQL d O2 : Select p From p in Personne Where exists r in p prénomp : exists e in p enfant : exists s in e prénome: r= s notation pointée + comparateurs ensemblistes

SQL d O2 : Select p From p in Personne Where exists r in p prénomp : exists e in p enfant : exists s in e prénome: r= s notation pointée + comparateurs ensemblistes

Accès aux attributs composants (2) Tout attribut multivalué est manipulé comme une relation / classe personnes qui ont au moins une fille solution précédente: sélection [ enfant (enfant sexe = F ) ] Personne

Solution 2 : algèbre emboitée: sélection [sélection [sexe = F ] enfants =/= ø] Personne La solution 2 est plus puissante,mais elle mélange les notions de classe et d attribut.

STRUCTURER LE RESULTAT Pour chaque personne, son nom et les prénoms de ses enfants Select nom,enfant prénome From Personne La structure du résultat est une sous-structure de celle de l opérande - Pas de restructuration nom Rochat enfant* prénome* Annie Marie Marc André Jean ensemble d'ensembles

STRUCTURER LE RESULTAT (2) Pour chaque personne, son nom et les prénoms de ses enfants en vrac. Select nom, Flatten enfant prénome From Personne nom Rochat enfant_prenome* Annie Marie Marc André Jean ensemble structure du résultat différente de celle de l opérande : restructuration

Pour chaque enfant, ses parents soit la base: Personne nom prénomp* enfant* prénome* Rochat Alfred Annie Jean Marie Marc André Jean Rochat Alice Annie Marie Marc André Jean Enfant nom prénome* parent* prénomp* Rochat Annie Alfred Marie Jean Alice Rochat Marc Alfred André Jean Jean Alice

STRUCTURER LE RESULTAT (suite) Nouveaux opérateurs NEST: regroupe des attributs en un attribut complexe multivalué regroupe les valeurs / occurrences 1 forme normale NF2 UNNEST: dégroupe en supprimant un attribut complexe / multivalué multiplie les valeurs / occurrences NF2 1 forme normale

STRUCTURER LE RESULTAT (suite) unnest [enfant] Personne Enfant := nest [parent:prénomp] (unnest [enfant] Personne) nom prénomp* prénome* Rochat Alfred Jean Annie Marie Rochat Alfred Marc Jean André Jean Rochat Alice Annie Marie Rochat Alice Marc André Jean

STRUCTURER LE RESULTAT (suite) changement de type de collection: LIST-TO-SET : liste ensemble LIST-TO-BAG : liste multi-ensemble BAG-TO-SET : multi-ensemble FLATTEN : collection de collections collection ensemble

RESULTAT d une REQUÊTE Objectifs : fermeture du langage requêtes contenant des requêtes définir : une vue, un instantané (snapshot), un schéma d exportation, une modification de schéma schéma Personne (nom, prénomp*, adresse, enfant* (prénome*, sexe, date )) vues Personne1 (nom, prénomp*, adresse) Personne2 (nom, prénomp*, adresse, nb.enfants) Enfant (nom, prénome*, parent*(prénomp*, adresse))

TYPE du RESULTAT Résultat = objets, oids, valeurs? Pas de consensus SQL d O2 : oids ou valeurs Select p From p in Personne Where nom = Rochat Select Tuple (p adresse, p date) From p in Personne Where nom = Rochat

Objets TYPE du RESULTAT (suite) Quels oids pour ces objets du résultat? Select p adresse, p date From p in Personne Where nom = Rochat nouveaux oids : langage générateur d objets [Orion] oids de l opérande nouveau point de vue sur des objets existants : langage à conservation d objets solution nécessaire pour définir une vue

TYPE du RESULTAT (suite) point de vue objets oids valeurs nouvel objet requête instantané export vue modification de schéma

Langages générateurs d objets Personnes de nom Rochat r := sélection [nom = Rochat ] Personne Root Class r1 ou r2 Personne NP nom personne NP nom réalisation simple r1 n est pas une personne r2 : indirection fastidieuse

Langages à conservation d objets r := sélection [nom = Rochat ] Personne Personnes de nom Rochat naturel n := projection [nom] Personne Liste des noms des personnes NP nom adresse Personne r nom NP adresse n Personne

Langages à conservation d objets (suite) Que faire des expressions? Adresses des personnes de nom Rochat a := projection [adresse] sélection [nom = Rochat ] Personne Il faut dissocier les notions d héritage et d inclusion? de population. Personne Cocoon : hiérarchie des types + hiérarchie des classes ERC+ : sélection Lien de généralisation : inclusion + héritage Lien de dérivation : inclusion + héritage selectif a

Langages à conservation d objets Opérateurs générant de nouveaux objets Opérateurs de restructuration Enfant = nest...unnest... ( Personne ) Jointures de plusieurs classes Jointure selon lien de composition Pour chaque étudiant ses nom, prénoms, liste des noms des cours suivis

Langages à conservation d objets Jointure selon des valeurs Enseignants et étudiants de même nom Jointure emboîtée point de vue un étudiant et ses cours un enseignant et les étudiants de même nom Jointure plate nouveaux objets un étudiant + un de ses cours un enseignant + un étudiant de même nom

IDENTITE EGALITE En BDO, il y a plusieurs tests d égalité: identité (même objet) égalité de surface (même valeur) égalité de profondeur (mêmes valeurs des feuilles) Gestion des doubles Opérateurs ensemblistes

IDENTITE EGALITE Gestion des doubles Le langage doit permettre de supprimer: les doubles au sens même oid les doubles au sens même valeur SQL d Orion Select UNIQUE p From p in <collection> Select UNIQUE VALUE p From p in <collection>

OPERATEURS ENSEMBLISTES En relationnel, union, différence, et intersection portent sur des tuples de valeur. En OO, le langage doit offrir (aussi?) l union, différence, intersection selon l identité des objets. Etudiant union Enseignant Enseignant différence Etudiant Enseignant intersection Etudiant (conflit dynamique d héritage multiple)

OPERATEURS ENSEMBLISTES (suite) Personne Enseignant Etudiant Personne Union Enseignant Etudiant Différence Intersection

Hiérarchie de généralisation Que signifie accéder à la population d une classe: sa population propre sa population globale (avec sous-classes)? sélection [adresse ville = Lausanne ] Personne uniquement les personnes ni enseignantes, ni étudiantes les personnes, étudiants et enseignants compris?

Hiérarchie de généralisation SQL d Orion: Select p From p in Personne Where p adresse ville = Lausanne Select p From p in Personne* (extension profonde) Where p adresse ville = Lausanne résultat = arbre de classes

COMPORTEMENT (méthodes) Emploi de méthodes dans les requêtes Select nom, âge From Personne Select anniversaire From Personne Where date_nais = date_du_jour [Orion] Encapsulation ± Comportement des objets du résultat Select p From p in Personne Where nom = Rochat même comportement que Personne Select nom, âge From Personne âge est une méthode qui utilise l attribut date_nais! quel comportement?

Quelque Problèmes du Modèle OO Vues Objet Rappel : Objectif de la notion de vues en relationnel Définir des interfaces spécifiques aux applications Permettre ainsi une flexibilité de requête Méthodes de définition de vues en relationnel Vues calculées (par les requêtes) Vues matérialisées (Les instances existent) Difficultés des vues objet Les objets de la vue peuvent avoir des attributs et/ou des méthodes spécifiques Fournir des identifiants permanents aux objets de la vue

Quelque Problèmes du Modèle OO Mise à jour de Vues En relationnel la mise à jour de vues est un problème complexe. Exemple : l opérateur Project peut fusionner plusieurs tuples quand la totalité de la clé n est pas incluse dans les attributs de la projection ==> Une perte d information Mise à jour plus facile en OO Deux objets possédant le même état (valeurs des attributs) peuvent être différents (OIDS ne sont pas égaux) Dans les solution à conservation d objets : répercussion des modifications est automatique.

Quelque Problèmes du Modèle OO Rôles objet Rappel : la notion de rôle a été introduite en base de données pour modéliser les différentes facettes, c est à dire les différents rôles, des entité du monde réel. Pour représenter un rôle, on peut introduire des attributs ou des propriétés spécifique du rôle. Par exemple, une personne dans son rôle d étudiant a besoin d un attribut «Diplôme préparé»; la même personne dans son rôle d employé nécessite un attribut «salaire» Attention : Un rôle n est pas une entité En OO, dans les modèles sans la notion explicite de rôle, un rôle est implémenté par les entités/classes et la multi-héritage

Quelque Problèmes du Modèle OO Migration d objet Objectif : modéliser les aspects dynamiques d une entité. Par exemple au cours de sa vie, une personne peut avoir les statuts suivants (dans cet ordre ) : étudiant ---> employé ---> étudiant (thésard) ---> enseignant ---> employé ---> retraité Définir les chemins de migration qui tracent l historique des changement de nature de l entité On peut définir les classes de Chemins qui sont cohérent avec une application : Exemple : Personne ---> voiture ----> employé, n est pas cohérent Définir des contraintes sémantiques sur les chemins de migration

CONCLUSION Avantages nouveaux : puissance de l interface procédurale compatibilité LMD - langage de programmation Mais: manque d études formelles complètes comportement peu pris en compte les divers types d utilisation des requêtes sont peu étudiés

CONCLUSION En cours: normalisation du SQL OO compatibilité avec le SQL relationnel? proximité avec les langages de programmation? optimiseurs de requêtes langages logiques OO