Bases de Données Avancées - TP2: SQL

Slides:



Advertisements
Présentations similaires
Design Pattern MVC En PHP5.
Advertisements

Bases de données orientées-objets
Oracle: OO.
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Programmation orientée objet
L’utilisation des bases de données
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Chap 4 Les bases de données et le modèle relationnel
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
L’utilisation des bases de données
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Structures de données IFT-2000
Structures de données IFT-10541
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction au paradigme orienté-objet (suite)
Les concepts et les méthodes des bases de données
Management of Information Technology - e-business
Bases de Données Avancées - TP2: SQL
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Bases de données orientées objets SGBD relationnels-objets
Bases de données orientées objets Illustration sur ORACLE
Travaux Pratiques Représentation des connaissances
La notion de type revisitée en POO
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Programmation objet La base.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Créer des packages.
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Réaliser par: Sadok Amel Cheboui hassiba
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Plan du cours - Bases de données objet : objectifs, principe, mise en oeuvre sous Oracle - Aspect système des bases de données : fichiers, index et hachage.
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Héritage Conception par Objet et programmation Java
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Les vues Une vue: c’est une relation virtuelle. Définie par:
TP2 - TOAD BFSH Lausanne - Switzerland - Tel Université de Lausanne.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Les bases de données Séance 8 Jointures.
Introduction à la Programmation Orientée Objet
Types de données composites
Le langage SQL.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Cours n°2 Implémentation et exploitation
Introduction au langage PL/SQL
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

Bases de Données Avancées - TP2: SQL Université de Lausanne Ecole des Hautes Etudes Commerciales (HEC) Cours de Bases de Données Avancées Université de Lausanne TP5 – Oracle Objet AAA BFSH1 - 1015 Lausanne - Switzerland - Tel. +41 21 692.3420 - Giovanni.Camponovo@unil.ch - http://www.hec.unil.ch/cparent ALIGNMENT | BUSINESS MODEL | PROCESS | SERVICE | ENVIRONMENT | REQUIREMENTS

Introduction – La notion d’objet Un objet est une abstraction informatique d'une entité du monde réel Le but est d’avoir un haut niveau d’abstraction afin de pouvoir modéliser directement les entités du monde réel sans les déformer ou décomposer Un objet est caractérisée par Une identité propre  défini par son identifiant Un état  défini par ses attributs qui forment sa structure de données Un comportement  défini par ses méthodes

Introduction – Encapsulation Principe de l’encapsulation Le fonctionnement interne de l’objet est caché au monde exterieur Les attributs ne devraient pas être directement manipulés par l’exterieur L'interface, qui définit les méthodes accessibles par l’utilisateur (publiques) est le seul moyen d'accéder à l'objet par l'envoi de messages. Facilite la modularisation, la réutilisation et l’indépendance code - données Souvent pas entièrement respecté dans les BD relationnel-objet La structure de données formée par les attributs est souvent publique Oracle donne la possibilité de définir les attributs comme étant public ou private Méthode Interface Données Objet Messages

Introduction – Le modèle objet-relationnel Polymorphisme Types utilisateurs Collections RELATIONNEL Domaine Table Attribut Clé Référence Opérations Identifiant Héritage

Introduction – Classes et Instances Classe d’objets Définit une type d'objets similaires en spécifiant ses attributs et méthodes Oracle  TYPE OBJET CREATE TYPE <nom> AS OBJECT <spécification> CREATE TYPE BODY AS <implémentation> Instance d’objet (ou Objet) Réprésentation d’un objet individuel d’un certain type ayant son existence propre, son propre identifiant et ses propres valeurs (état). Stockées dans une table d’objets Oracle  TABLES OBJET CREATE TABLES <nom> AS <type>

Oracle Objet – TYPE OBJET Bases de Données Avancées - TP2: SQL Université de Lausanne Oracle Objet – TYPE OBJET Crée un type d’objet défini par l'utilisateur qui encapsule une spécification qui détermine l’interface publique du type, qui contient une structure de données (déclaration d’attributs)  état la spécification des méthodes permettant leur manipulation  comportement CREATE TYPE <nom> AS OBJECT <spécification> une implementation (corps), qui contient l’implémentation des méthodes et défini par la spécification CREATE TYPE BODY AS <implémentation> Spécification Déclaration des attributs Spécification des méthodes Corps Corps des méthodes Interface publique Implémentation privée AAA

Oracle Objet – TYPE OBJET – Attributs Syntaxe (spécification): CREATE [ OR REPLACE ] TYPE <nom_type> AS OBJECT ( <nom_attribut> <type_attribut>,* [ MEMBER <declaration_methode> ],* ); ); [ [NOT] FINAL] [ [NOT] INSTANTIABLE ] Notes: Un attribut est déclaré avec un nom qui doit être unique dans un type donné, mais qui peut être réutilisé par d’autres types Type peut être un des types de données Oracle (exceptions) ou un type défini par l’utilisateur (formant ainsi une structure de données imbriquée) Les clauses DEFAULT et NOT NULL ne peuvent pas être imposées Un type peut être utilisé à l’intérieur d’un autre ou comme type de table L'accès à un attribut peut se faire avec la notation pointée (type.attribut). Les types peuvent être enchaînés pour accéder aux attributs imbriqués.

Oracle Objet – TYPE OBJET – Attributs Exemples: Créer un type d’objet T_Point défini par ses coordonnées x et y définis comme nombre entiers CREATE TYPE T_Point AS OBJECT ( x number, y number ); Créer un type d’objet T_Ligne caractérisée par deux points définis précédemment CREATE TYPE T_Ligne AS OBJECT ( point1 T_Point, point2 T_Point ); Pour tester: CREATE TABLE Lignes OF T_Ligne; INSERT INTO Lignes VALUES (T_Point(5,5),T_Point(10,10)); SELECT L.point1.x, L.point1.y, L.point2.x, L.point2.y FROM Lignes L; Exercice: Créer un type d’objet T_Cercle caractérisée un centre (point) et un rayon

Oracle Objet – TYPE OBJET – Attributs multivalués Un type d’objet permet la déclaration d’attributs multivalués qui sont organisés selon un des type de collection suivants: NESTED TABLE Définit un ensemble non ordonné De taille variable et non limité Les éléments peuvent être accédé singulièrement VARRAY Définit un ensemble ordonné De taille variable mais limité (à définir au début) Les éléments ne peuvent pas être accédé singulièrement

Oracle Objet – TYPE OBJET – Attributs multivalués Example NESTED TABLE: Créer une table d’objets Groupes qui contient le nom du groupe et ses components (un ensemble d’artistes ayant un nom, prénom et instrument ). CREATE TYPE T_Artiste AS OBJECT ( Nom varchar(32), Prenom varchar(32), Instrument varchar(32) ); CREATE TYPE T_Components AS TABLE OF T_Artiste; CREATE TABLE Groupes ( NomGroupe varchar(32), Components T_Components ) NESTED TABLE Components STORE AS GroupeComponents; Pour tester: INSERT INTO Groupes VALUES ( 'Metallica', T_Components(T_Artiste('James','Hetfield','Vocals'), T_Artiste('Kirk','Hammet','Guitar'), T_Artiste('Jason','Newsted','Bass'), T_Artiste('Lars','Ulrich','Drums') ) ); SELECT G.NomGroupe, C.* FROM Groupes G, TABLE(G.Components) C Exercice Créer un type Polygone avec comme attribut un ensemble de points

Oracle Objet – TYPE OBJET – Attributs multivalués Example VARRAY: Créer un table de courses qui contient un nom et une liste de participants définis comme un VARRAY de participants (définis par un rang et un nom) CREATE TYPE T_Participant AS OBJECT (Rang Number(4), Nom varchar(32) ); CREATE TYPE T_ ParticipantList AS VARRAY(50) OF T_Participant CREATE TABLE Course ( Course varchar(32), ParticipantList T_ParticipantList ); Pour tester: INSERT INTO Course VALUES ( 'Athletissima 100m', T_ParticipantList( T_Participant(1,'Maurice Green'), T_Participant(2,'Linford Christie'), T_Participant(3,'Ato Bolton') ) ); SELECT C.Course, CL.* FROM Course C, TABLE(C.Participantlist) CL ;

Oracle Objet – TYPE OBJET – Méthodes Syntaxe (spécification): CREATE [ OR REPLACE ] TYPE <nom_type> AS OBJECT ( <nom_attribut> <type_attribut>,* [ MEMBER <declaration_methode> ],* ); [ [NOT] FINAL] [ [NOT] INSTANTIABLE ] Syntaxe (implémentation): CREATE [OR REPLACE] TYPE BODY <nom_type> AS MEMBER <declaration_methode> AS BEGIN <code> END ;* END; Notes: La déclaration des signatures des méthodes se trouve dans la spécification du TYPE, qui définit l’interface de l’objet (méthodes accessibles). Déclarée par le mot-clé MEMBER (méthode d’instance) ou STATIC (méthode de classe) Une méthodes peut être une fonction (FUNCTION) ou une procédure (PROCEDURE) L’implémentations des méthodes se trouve dans le TYPE BODY Contient le code (e.g. PL/SQL) à exécuter pour chaque méthode définie par l’interface Accès possible aux valeurs de l’objet appelée grâce au mot clé SELF

Oracle Objet – TYPE OBJET – Méthodes Examples: Créer un type T_Rectangle charactérisée par deux points et ayant une méthode permettant d’avoir la surface du rectangle CREATE TYPE T_Rectangle AS OBJECT ( point1 T_Point, point2 T_Point, MEMBER FUNCTION surface RETURN NUMBER ); CREATE OR REPLACE TYPE BODY T_Rectangle AS MEMBER FUNCTION surface RETURN NUMBER AS BEGIN RETURN ABS((point1.x-point2.x)*(point1.y-point2.y)); END surface; END; Pour tester: CREATE TABLE Rectangles OF T_Rectangle; INSERT INTO Rectangles VALUES (T_Point(0,0),T_Point(100,100)); SELECT R.point1.x, R.point1.x, R.point2.x, R.point2.y, R.surface() FROM rectangles R Exercice: Modifier la définition du type T_Rectangle pour y ajouter une méthode qui calcule et renvoie le perimètre du rectangle et modifier son implémentation en conséquence

Oracle Objet – TABLE OBJET Crée une table stockant des instances d’objet (table objet) Chaque ligne correspond à une instance d’objet Chaque colonne correspond à un attribut du type objet Chaque enregistrement dans une table objet a un identifiant objet (OID), qui identifie l'objet de façon unique et sert comme référence à l'objet. Syntaxe: CREATE TABLE <nom_table> OF <nom_type>; Example: CREATE TABLE Rectangles OF T_Rectangle; Exercice: Créer une table de Lignes de type T_Ligne

Oracle Objet – TABLE OBJET (2) Les types objets peuvent aussi être utilisés simplement dans les instructions CREATE TABLE classiques pour spécifier un type de données d'une colonne. Syntaxe: CREATE TABLE <nom_table> ( <nom-col> <type-col> [ [CONSTRAINT] <contrainte-col>]* [ [CONSTRAINT] <contrainte-table>]* ); Example: CREATE TABLE Rectangles2 ( point1 T_Point, point2 T_Point, surface number(), constraint CkSurf CHECK surface = ABS((point1.x-point2.x)*(point1.y-point2.y)) ); Exercice: Créer une table de Cercles avec un centre (T_Point) et un rayon (number)

Oracle Objet – Manipulation d’objets Instructions INSERT, UPDATE et DELETE Equivalentes aux l’instruction SQL correspondantes, sauf qu’il faut modifier les requêtes en consequence de la presence de colonnes de type objet tel que utiliser les notations pointées (alias nécessaire) et les constructeurs Syntaxe: INSERTO INTO <nom_table> VALUES (<valeurs>) UPDATE <nom-table> SET <nom-colonne> = <expression> [WHERE <condition>] DELETE FROM <nom-table> [WHERE <condition>] Examples: INSERT INTO Rectangles VALUES ( T_Point(0,0), T_Point(10,10) ); UPDATE Rectangles SET Point1 = T_Point(5,5) where Point1=T_Point(0,0); DELETE FROM Rectangles WHERE Point1=T_Point(5,5); Exercice: Effectuez des opérations d’insertion, mise à jour et effacement sur la table Groupes définie dans un des transparents précédants

Oracle Objet – Requêtes Instruction SELECT Permet de formuler des requêtes SQL classiques, sauf qu’il faut modifier les requêtes en consequence de la presence de colonnes de type objet. Note: pour les collections, il est possible d’employer la fonction TABLE(type) alias pour désimbriquer leur éléments Syntaxe: SELECT [DISTINCT] nom-cols [AS nom-cols] FROM nom-tables [WHERE ... ] [GROUP BY ...] [ HAVING ... ] [ORDER BY ...] Examples: SELECT R.point1.x, R.point1.y, R.point2.x, R.point2.y, R.surface() FROM Rectangles R WHERE R.Surface()>10; SELECT C.Course, CL.* FROM Course C, TABLE(C.Participantlist) CL ; Exercice Selectionner les rectangles ayant un des cotés > 10, ordonnés par surface Selectionner toutes les couples de rectangles ayant un point en commun

Oracle Objet – References Identifiant objet (OID) Identifie de façon unique et invariante un objet indépendamment du valeur de ses attributs (deux objets aux valeurs identiques peuvent être différents) Générés et indexés automatiquement par Oracle Invisibles et pas manipulables directement par l’utilisateur Est utilisé pour référencer un objet à partir d’autres objets ou tables (REF) Attributs Reference (REF) Un type de données particulier contentant une référence vers une autre objet (i.e. l’identifiant OID de l’autre objet) C’est un pointeur logique sur un autre objet. Si une REF pointe sur un objet nonexistant elle est dite (DANGLING). Tester grâce à IS [NOT] DANGLING Utilisé pour modéliser des associations entre objet. Permet de chaîner les objets entre eux sans passer par des jointures, permettaint ainsi une navigation directe entre objets (notation pointée) Dans une instruction SQL il faut passer par l'opérateur DEREF, qui prend comme paramètre une référence à un objet, pour en avoir la valeur Les références peuvent porter à un partage d’objets: les données ne sont pas répliqués et les modifications sont effectués une seule fois et tout référant y a accès

Oracle Objet – References Syntaxe: <nom_attribut> REF <type_attribut> Exemple: CREATE TABLE Points OF T_Point; CREATE TABLE Segments ( point1 REF T_Point, point2 REF T_Point ); Pour tester INSERT INTO Points VALUES(0,5); INSERT INTO Points VALUES(10,1); INSERT INTO Segments SELECT REF(p1), REF(p2) FROM Points p1, Points p2 WHERE p1.x=0 and p1.y=5 AND p2.x=10 and p2.y=1 SELECT S.point1.x, S.point1.y, S.point2.x, S.point2.y FROM Segments S Exercice: Effectuez des opérations d’insertion, mise à jour et effacement des points et des segments. Afficher à chaque fois les segments

Oracle Objet – Heritage Heritage de type Permet de définir un sous-type d'un type existant. Le sous-type hérite alors de la structure et des opérations du type de base (qu’il peut rédéfinir). Syntaxe (spécification): CREATE [ OR REPLACE ] TYPE <nom_type> [ UNDER <nom_supertype> ] ( <nom_attribut> <type_attribut>,* [ MEMBER <declaration_methode> ],* ); [ [NOT] FINAL] [ [NOT] INSTANTIABLE ] Notes: [NOT] FINAL permet de déterminer si un type peut être spécialisé (ou pas). Il n’est donc pas possible d’heriter d’un type défini comme FINAL. Par défaut un type est défini comme FINAL

Oracle Objet – Heritage Syntaxe (spécification): CREATE [ OR REPLACE ] TYPE <nom_type> [ UNDER <nom_supertype> ] ( <nom_attribut> <type_attribut>,* [ MEMBER <declaration_methode> ],* ); [ [NOT] FINAL] [ [NOT] INSTANTIABLE ] Exemple: CREATE TYPE T_Carre UNDER T_Rectangle () NOT FINAL; CREATE OR REPLACE TYPE BODY T_Carre AS MEMBER FUNCTION surface RETURN NUMBER AS BEGIN RETURN POWER(point1.x-point2.x,2); END surface; END;

TOAD – OBJECT BROWSER Toad contient un navigateur d’objets (Database > Object Browser) Utile pour avoir une vue d’ensemble des objets, leur propriétés et méthodes Utile surtout pour avoir une vue des dépendances entre objets Mettre à jour les champs (pas automatique) Basculer entre propriétés, spécification et implémentation Afficher les tables objets crées avec le type choisi (dépendants de lui) Afficher les autres objets dépendants du type choisi Liste d’objets (selectionner un objet pour avoir ses propriétés)