Définition de tables objets (modèles et LDD)

Définition

Une table peut être définie en référençant un type de données plutôt que par des instructions LDD[1] classiques. On parle alors de table objet.

Synonymes : table-objet, table d'objets

SyntaxeModèle logique

1
nom_table de nom_type (#attributs_clés)

SyntaxeLDD SQL3

1
CREATE TABLE nom_table OF nom_type (
2
 PRIMARY KEY(attribut1),
3
 attribut2 NOT NULL,
4
 UNIQUE (attribut3)
5
 FOREIGN KEY (attribut4) REFERENCES ...
6
);

Il est possible, sur une table ainsi définie, de spécifier les mêmes contraintes que pour une table créée avec une clause CREATE TABLE (contraintes de table). Ces contraintes doivent être spécifiées au moment de la création de la table, et non au moment de la création du type (bien que la définition de type permet de spécifier certaines contraintes, comme NOT NULL).

FondamentalOID

Les enregistrements d'une table-objet peuvent être identifiés par un OID[2]

FondamentalMéthodes

Des méthodes peuvent être associées à une table-objet.

ComplémentHéritage

Cette modalité de définition de schéma permet de profiter de l'héritage de type pour permettre l'héritage de schéma de table.

Exemple

1
CREATE OR REPLACE TYPE typIntervenant AS OBJECT(
2
pknom varchar2(20),
3
prenom varchar2(20)
4
);
5
/
6
7
CREATE TABLE tIntervenant OF typIntervenant (
8
PRIMARY KEY(pknom),
9
prenom NOT NULL
10
);