Académique Documents
Professionnel Documents
Culture Documents
SQL 3
SQL 3
SQL3 Introduction
1
Pourquoi étendre Pourquoi ne pas passer
le modèle relationnel ? directement aux SGBD Objet ?
L'OR supporte l'héritage de type pour profiter Le relationnel a ses avantages, en particulier
du polymorphisme et faciliter la réutilisation n sa grande facilité et efficacité pour effectuer
des recherches complexes dans des grandes
bases de données
n la facilité de spécifier des contraintes
d’intégrité sans programmation
n il s'appuie sur une théorie solide et des
normes reconnues
2
Les différents types
L’utilisateur (le programmeur) peut créer ses
propres types de données :
n types « distinct »
3
Héritage Ajout d’un attribut dans un type
Les types supportent l’héritage multiple avec
le mot-clé UNDER : alter type employe_type
create type employe_type as object add attribute date_naissance date
(matr integer, nom varchar(30), cascade;
sal numeric(8,2))
not final; Propage aux
create type commercial_type tables construites
under employe_type à partir du type
(comm numeric(8,2))
not final;
Un type est final par défaut
R. Grin Objet-relationnel page 19 R. Grin Objet-relationnel page 20
4
Vues du dictionnaire des données
USER_TYPES pour les types (et les collections)
USER_TYPE_ATTRS pour attributs des types
USER_TYPES_METHODS pour les méthodes des
types Tables
USER_OBJECT_TABLES pour les tables objet-
relationnelles
Sous sqlplus :
describe departement_type
5
Caractéristiques d’une table Vues du dictionnaire des données
objet-relationnelle
USER_OBJECT_TABLES pour les tables objet-
relationnelles
Une table est une table objet-relationnelle si
elle a été construite à partir d’un type
(create table … OF)
Les lignes de ces tables sont considérées
comme des objets avec un identifiant (OID)
On peut utiliser des références pour désigner
les lignes de ces tables
On ajoute des données comme avec une table On peut aussi utiliser le « constructeur du type »
normale : avec lequel la table a été construite :
insert into commerciaux insert into employe values (
(matr, nom, sal, comm) employe_type(125, 'Dupond', ...));
values (234, 'TITI', 3200, 600); Si le type est un type utilisé par un autre type,
l’utilisation du constructeur du type est obligatoire
6
Références
On peut indiquer dans la définition d’un type
qu’un attribut contient des références (et non des
valeurs) à des données d’un autre type ; la
syntaxe est « REF nom-du-type » :
Références create type employe_type as object
(matricule integer,
nom varchar(30),
. . .
dept REF dept_type);
7
Types de collections Exemple de collection
Pour représenter une colonne multivaluée, on create type employe_type
peut utiliser les collections : (matricule integer,
n ensembles (au sens mathématiques ; pas nom varchar(30),
de doublons) prenoms LIST(varchar(15)),
n sacs (avec des doublons) enfants SET(personne),
n listes (ordonnées et indexées par un . . .);
entier)
D’autres types de collections peuvent être
ajoutées par les SGBD
8
Exemples de VARRAY
create type telephones_type as
VARRAY(3) OF varchar(10);
telephones_type('0492077987',
'0492074567'));
R. Grin Objet-relationnel page 49