SQL3
– SQL3
= SQL2 pour BD relationnelles+ des extensions
- orienté-objet
- multi-media
- spatial
l Séries temporelles
– Ce chapitre porte sur l’extension OO :
le relationnel-objet
– SQL3 est compatible avec SQL2
– Les BD et applications existantes en SQL2 tournent sous SQL3
=> passage facile du relationnel au relationnel-objet
Comment étendre le relationnel à l’OO ?
– Concept de table quasi inchangé
– Nouveau concept, TYPE, qui décrit :
* les structures complexes et multivaluées
* le format des objets
* les méthodes
– hiérarchie d’héritage des types
– Un nouveau constructeur de domaine : REF, pour définir les liens de composition
– Tables de 3 sortes
* tables « normales » de tuples en 1ère forme normale
* tables de tuples en non 1FN : tables de valeurs structurées
* tables d’objets
LES TYPES
– Domaines usuels de SQL :
CHAR, VARCHAR, NUMBER, DATE…
– Nouveaux domaines définis par l’utilisateur, propres à la BD, pour décrire :
→ un multivalué :
* TYPE VARRAY : vecteur
* TYPE nested TABLE : table insérée à la place d’une
valeur
→ un complexe … éventuellement avec oid (!)
* valeur complexe
* objet (oid, valeur complexe)
Type VARRAY
CREATE TYPE nom-type AS
VARRAY(nbmax) OF nom-type2
Où nom-type2 est :
* type usuel de SQL (CHAR, VARCHAR, NUMBER…)
* ou type défini par l’utilisateur
⇒ est une valeur multivaluée de type vecteur
CREATE TYPE Tprenoms AS VARRAY(4) OF
VARCHAR(20)
/* Tprenoms est un type Vecteur de 4 VARCAHAR(20)
Exemple de valeur : (‘Marc’, ‘Pierre’)
CREATE TABLE Personne
(AVS CHAR(11), nom
VARCHAR(20), prenoms Tprenoms)
Type TABLE insérée (nested TABLE)
CREATE TYPE nom-type AS TABLE OF nom-type2
/
Où nom-type2 :
* type usuel de SQL (CHAR, VARCHAR, NUMBER…)
* type défini par l’utilisateur
⇒ valeur multivaluée de type table
pas de nombre maximum de valeurs
pas d’ordre
indexable
Bases de données orientées objets SGBD relationnels-objets (242.5 KB) (Cours PPT)