Professional Documents
Culture Documents
Modle Objet-Relationnel
28 septembre 2011
1
Modle OR Le modle gr par Oracle 11g est dit objet relationnel (OR) car il gre simultanment les Modle relationnel et objet: hybride Avantage : Gre les BDR en service Conserve les notions de tables Permet lencapsulation des donnes: implmentation des mthodes Implmente les principaux mcanismes de lobjet
2
Modle OR Inconvnient: La structure dobjet est plus complexe grer par les structures disponibles dans les applications: mapping!!! Nimplmente pas lhritage multiple Utilise REF qui est en quelque sorte un pointeur logique lequel devrait tre normalement invisible
Objet et attribut 3 concepts cls: Objet: a un nom et est stock au moyen dune structure (classe) type de lobjet Attribut: a un nom et est utilis pour reprsenter un aspect de lobjet rel permettant ainsi les traitements Lattribut et lobjet auront un type de manire pouvoir stocker lobjet et en permettre des traitements. Les objets sont groups dans un container dobjets. En OR cest la table Mthode: associe aux objets pour les manipuler correctement.
4
Type usager: User Defined Type Un attribut peut avoir un type plus complexe, cr par lusager sur la base des types existants ou dfini par lusager Exemple: le type tuple pour lattribut adresse de lobjet employe
Partage des types par les objets Important: un type peut tre partag par plusieurs objets crant ainsi une dpendance dont il faudra tenir compte par la suite lors de la suppression ou la modification du type existant Supprimer un type partag sera possible si sa suppression se rpercute sur les autres types dpendants
Validation des types Lors de la cration de modification dun type, le systme doit vrifier que cette modification ne fait pas une action qui invalide les autres types ou autres entits de la base:
Exemple: un type est modifi en supprimant un attribut CASCADE: le systme doit vrifier que cette suppression ne se rpercute pas sur un autre type dont lattribut est index, utilis pour le partionnement des tables Si le test passe alors le type est modifi sinon refus du systme 9
10
Constructeur dobjet Tout objet typ sera construit par un constructeur dont le nom est form avec nom du type suffix par _t Chaque objet construit et insr comme objet est associ lors de son insertion dans une table objet un OID (Object Identifier) unique et non rutilisable Cest une sorte de rfrence pointeur
11
Insertion dun objet utilisant un Varray Linsertion des objets se fera en construisant lobjet insrer et en lajoutant dans la base par la clause INSERT
12
Type ensemble non ordonn et non fini Un ensemble non ordonn est implment comme une table logiquement imbrique (NESTED TABLE)
13
14
15
Varray .
16
Utilisation par les appels de mthode API commune Il ya une API compose de mthodes qui sont appliques aux collections
17
18
19
20
21
22
23
24
25
Nouveau type pour un attribut: REF Un attribut peut avoir un type REF rfrence un autre objet Permet dimplanter le lien externe de Mnav
26
Type REF Une valeur de type REF rfre seulement un objet de table elle inclut lOID de lobjet cibl stock dans une table objet Valeur REF sera idem OID Le rle du type REF est damliorer la fonction de navigation avec le langage de requte SQL acclrer les jointures
27
28
REF et lassociation UML Lattribut de type REF est utilis pour implmenter lassociation comme le souligne le passage du diagramme de classes au Mnav Cls primaire et trangre dune table: La cl primaire est non essentielle car OID distingue tout objet. Elle est cependant utile pour la recherche dun objet particulier La cl devient un contrainte dentit La cl trangre est implmente en objet autrement que le 29 partage dune valeur primaire
Sortes de tables en OR Table objet dont les lments sont des objets pouvant contenir des objets colonnes Table relationnelle dont les tuples ne sont pas des objets mais pouvant avoir des objets colonnes de type objet
30
Table OR Les objets sont stocks dans des tables OR (containeurs) Une table est associe une classe type gnralement complexe construit limage des objets Convention dcriture: Nom de la table: commence par une lettre en majuscule et son type gnralement complexe est compos de son nom dbutant par une lettre minuscule et suffix par _t
31
32
La table objet Etudiant et la collection imbrique cres dans le TS_Registaire2010 Une nested table bien que stocke comme une table physique spare, cohabite par dfaut avec sa table mre dans le mme TS
33
Signature dans les types Linterface est spcifie intgralement dans le type Chaque mthode a une signature dfinie dans le type Signature:=nom de la mthode + paramtres typs incluant celui du retour
34
Extension du type
35
36
37
Objet de table (OT) et objet colonne (OC) 2 types dobjets: Objet de table: objet typ Objet colonne: tout attribut ayant un type complexe correspondant un objet colonne
38
Objet de table (OT) et objet colonne (OC) Lattribut ensemble: tout attribut de type ensemble est aussi un OC
39
40
Lobjet employ est construit avec une valeur obligatoire pour chaque attribut Lobjet cr est insr dans la table, le rendant persistant et lui attribuant un oid permanent
41
Cration dun objet transitoire en PL/SQL Un objet est aussi cr avec un type lorsque le constructeur de type est appel par le NEW de PL/SQL suivi du constructeur de type
Un objet transitoire employ devient persistant lorsquil est insr dans une table
42
Cration dun type incomplet et dune Rfrence inverse Un type peut utiliser un autre type que sil est dj existant La rfrence inverse est cependant possible en utilisant un type incomplet
43
44
A la compilation du type, il ya erreur. Par contre, le type demeure disponible pour un autre usage
45
Le droit daccs est accord un usage via le type. Lutilisateur voit tous les attributs et mthodes du type sur lequel il a des droits
46
Affichage de l OID dun objet: Ref() Oid(ref) visualis ne peut pas tre modifi par le programmeur Affichage de l oid dun objet de la table Employe:
47
Comparaison entre rfrence et OID Pas ncessairement identiques REF compose de 3 parties: Oid du type de la table Oid de lobjet rfrenc Rowid de lobjet
48
49
50
Fonction DEREF() La fonction REF(x) : x un objet donne oid de x DEREF(a): a oid rend lobjet correspondant et lassigne une variable du type de lobjet
51
Objet-colonne Une tale objet et une table relationnelle peuvent contenir aussi un objet colonne
52
53
Insertion dun OC et OT
Insertion dun OC et OT
55
56
57
Objet null
58
59
60
Suppression dobjets/types OR Via la suppression dune table: DROP TABLE Employe; Entraine la suppression des objets, privilges dfinis dans la table Employe TRUNCATE TABLE Employe [DROP] Supprime que les objets sans supprimer le container DROP TYPE employe_t; Suppression mme des objets qui utilisent le type. Les objets restent dans la base et sont temporairement invalides
61
Les contraintes dfinies sur les objets au niveau des tables Une contrainte est toujours dfinie au niveau de la table et non au niveau du type
62
63
64
65
66
67
68
69
La table objet type par employe_t a 3 attributs:matricule, nom et histoSal Chaque attribut a un nom et un type soit atomique soit complexe histoSal a un type collection (set) avec attributs 70
histoSal a un type de collection dfini par les attributs anne et le lien refSal refSal est une rfrence vers un objet de la table SalNet 71
72
Notation pointe: accs un attribut Pour accder la valeur dun attribut dun type pointe notation
73
74
75
76
77
78
79
80
81
82
83
Hritage
84
Exemple!!! create type ville as object ( nom varchar(20), population number); create type villes as table of ville; create type region as object ( nom varchar(20), agglomrations villes); create type regions as table of region; create table pays (nom varchar(15), reg regions, ); La relation pays contient une table imbrique de rgions, chaque rgion ayant une table imbrique de villes. le nom de toutes les villes???
85
86