Trang 2
Motivations : Faiblesses du relationnel (1) z Structure de données trop simple: z relation: tuple, 1FN, identifiant: valeur z Objets complexes, Non-1FN, identifiant d'objet z Pas d’intégration des opérations avec les données : z pas de méthodes z pas d’encapsulation 2
Trang 3
Motivations : Faiblesses du relationnel (2) z Pas de possibilité de référencer directement un objet composant (pointeur) par l’intermédiaire d’un oid z jointures sur identifiants de tables z Pas de gestion des fonctions spécifiques à certaines données z spatial, multimédia, z très peu adaptable à ce type de données 3
Trang 4
Modèle Objet z Objet (structure) complexe z Identité d’objet z Composition z Hiérarchie de généralisation et héritage z Collections z Encapsulation 4
Trang 5
Solutions possibles z Étendre le relationnel z Oracle z PostGrès z Informix z Inventer de nouveaux SGBD: Orientés objets z O2, z Versant, … 5
Trang 6
Modèle de données SQL3 z Objets possédant une valeur et un identifiant d’objet système (oid) z Types de données utilisateur TAD avec des méthodes z Attributs complexes et/ou multi-valués dans les tables (collections) z Pouvoir établir des liens de composition entre tables via les oid z Héritage 6
Trang 7
Exemple : table Personne nom {prénoms} Date naissance {voitures} … prénom modèle année no Duran Pierre 16-05-1963 2ch 1975 128 Paul Mégane 1998 371 Jacques Piona Marie 29-02-1944 Twingo 1999 17 Jeanne 7
Trang 8
Le modèle relationnel objet d’Oracle 9i z Concepts NF2 : structure complexe avec collection, Plus z Possibilité de référencer les données (simili oid), z Programmation incluse dans le SGBD avec les méthodes (langage : PL/SQL), ⇒ Moins de jointure, références directes, ⇒ Meilleures performances ! (en théorie) z pas d’héritage dans v. 8i z héritage dans v. 9i 8
Trang 9
Concrètement z 3 extensions par rapport au modèle relationnel : z Les TAD (Types abstraits de données), zTypes complexes Composés, Collections zRéférences, zMéthodes. z Les oids z L'héritage 9
Trang 10
PLAN z I - Les TAD: différentes catégories de Types z II - Création de tables à partir des types z III - Définition d'attributs référence z IV – Manipulation et interrogation 10
Trang 12
I – Les TAD z En relationnel: types prédéfinis z CHAR, VARCHAR, NUMBER, DATE, … z En relationnel – objet : nouveaux types définis par utilisateurs z ordre CREATE TYPE … z Plusieurs catégories de TYPES: z de type OBJET z de type COLLECTION zVARRAY zNested Table 12 I - TAD
Trang 13
Types de "type OBJET" z Objets complexes z Informations incluses dans un type: z nom: identification de l'objet (unique dans le schéma) z attributs z méthodes: fonctions ou procédures écrites en PL/SQL ou Java et stockées dans la BD ou en C et stockées à l'extérieur de la BD 13 I – TAD - Objet
Trang 14
Create TYPE as OBJECT, syntaxe z CREATE [OR REPLACE] TYPE type_name AS OBJECT ( att1 DATATYPE, att2 DATATYPE, … attn DATATYPE , [définition méthode]) / -- Remarque : après la création d’un TAD et uniquement dans ce cas, ‘/’ remplace le ‘;’ pour terminer un ordre SQL 14 I – TAD - Objet
Trang 15
Exemple z CREATE TYPE Person AS OBJECT ( name VARCHAR2(30), phone VARCHAR2(20) ); z CREATE TYPE LineItem AS OBJECT ( item_name VARCHAR2(30), quantity NUMBER, unit_price NUMBER(12,2) ); 15 I – TAD - Objet
Trang 16
CREATE TYPE Person AS OBJECT ( Utilisation name VARCHAR2(30), phone VARCHAR2(20) ); z Les types objet peuvent être utilisés comme z domaine de valeur d'une colonne d'une table zCreate table Contacts ( contact Person, date DATE) z domaine de valeur d'un attribut d'un autre type défini par l'utilisateur zCreate type Contacts (contact Person, date DATE) z domaine de relation zcreate table LesPersonnes of Person chaque ligne de la table LesPersonnes: type Person 16 I – TAD - Objet
Trang 17
Types de "type COLLECTION" z Type Tableau et type TABLE z VARRAY et NESTED TABLE z Permettent de créer des attributs multi-valués z Ils ont des constructeurs de même nom que le nom du type z NOM_TYPE ( val1, val2, …, valn) 17 I – TAD - Collection
Trang 18
VARRAYs z Tableau à une dimension i.e. ensemble ordonné d'éléments de même type z Tableau de taille variable (variable-array) z Syntaxe: z CREATE [ OR REPLACE ] TYPE nom_type AS VARRAY (nb_max) of nom_type2 z Définit un type tableau nommé nom_type de maximum nb_max éléments de type nom_type2 z nom_type2 peut être n'importe quel type oracle ou créé par l'utilisateur 18 I – TAD - Varray
Trang 19
Exemple z CREATE TYPE Tprices AS VARRAY(10) OF NUMBER(12,2); z Le type VARRAY nommé TPRICES ne peut pas posséder plus de 10 éléments, z Chaque élément est de type NUMBER(12,2). z Create table Product ( nb Number, price TPrice) 19 I – TAD - Varray
Trang 20
CREATE TYPE Telephones Utilisation AS VARRAY(3) OF NUMBER(10); z Les types VARRAYs peuvent être utilisés comme z domaine de valeur d'une colonne d'une table z Create table Personne ( nom VARCHAR(20), telephone TELEPHONES) z domaine de valeur d'un attribut d'un autre type défini par l'utilisateur z Create type Personne ( nom VARCHAR(20), telephone TELEPHONES) z Aussi dans une autre collection (collection de collection) 20 I – TAD - Varray
Hiển thị 20 trang đầu. Tải tài liệu để xem đầy đủ.
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!