Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Le SQL doit toujours être combiné à d'autres langages de programmation pour être
effectivement mis en œuvre
La notion de méthode ne peut être intégrée au modèle logique, elle doit être gérée
au niveau de l'implémentation physique
Identité
◦ – identifier un objet de manière unique (OID)
Complexité
◦ – définition d’objets complexes et/ou fortement structurés (temps,
géo-référencement, multimédia, types utilisateurs, etc.)
Encapsulation
◦ – boîte noire avec des méthodes de manipulation
Modèle Objet-Relationnel
Le modèle Objet-relationnel apporte deux nouveautés distinctes et
indépendantes à ne pas confondre :
Syntaxe:
CREATE [ OR REPLACE ] TYPE nomType AS OBJECT
(Attribut1 type1, Attribut2 type2, ...., Attribut2N typeN );
Exemple: création d’un type Objet
Une adresse est composée d’une rue, d’une ville, d’un code postal et
d’un pays.
CREATE TYPE AdresseTy AS OBJECT(
Rue VARCHAR2(50),
Ville VARCHAR2(30),
CodePostal CHAR(5));
Nom VARCHAR2(30),
Prenom VARCHAR2(30),
Adresse AdresseTy);
Utilisation du type pour définir une colonne:
Création et Insertion
Une table de clients : un client a un login, est une personne et s'est
inscrit à une date.
CREATE TABLE ClientTable (
login CHAR(20) PRIMARY KEY ,
client PersonneTy,
dateIns DATE NOT NULL);
UPDATE ClientTable p
SET p.client.adresse.rue='15 rue Ganbita’
WHERE UPPER (p.client.nom)=‘KARIM';
Table d’objets
Employe
Departement
1 Ali karim 60000 NULL
1 production sba
2 Ahmed souad 50000
2 commercial oran
3 Mohamed said 70000
CREATE TABLE Employe OF EmployeTy (nss PRIMARY KEY); Ici la fonction REF
retourne l’OID du
département N°1
INSERT INTO Employe VALUES (1,’Ali’, ‘karim’,60000,Null);
à partir de sa référence
Ali null
on utilise DEREF().
Ahmed DepartementTy (1,’production’,’sba’)
Mohamed DepartementTy (2,’commercial’,’oran’)
Table d’objets: Méthodes
En relationnel objet, les types peuvent admettre soit des fonctions soit des procédures.
Si le type sur lequel s'appuie la création de la table définit des méthodes, alors les
méthodes seront associées à la table (méthodes de table). Il sera possible d'accéder à
ces méthodes de la même façon que l'on accède aux attributs (projection, sélection...).
CREATE TYPE EtudiantTy AS OBJECT( IdE INTEGER, Nom VARCHAR(30), dateNa Date);
CREATE TYPE ListeEtudiantTy AS TABLE OF EtudiantTy;
Ou:
EtudiantTable est le nom physique de la table imbriquée (ne sert jamais dans
les requêtes)
Tables imbriquées: Insertion
1. Insertion dans une Table utilisant une table imbriquée
Select e.nom FROM TABLE (SELECT LesEtudiants FROM Formation WHERE Idf=2) e;
Exemple: les noms des étudiants de la formation N°2 qui sont nés avant 2000
Select e.nom FROM TABLE (SELECT LesEtudiants FROM Formation WHERE Idf=2) e
WHERE e.dateNa<’01/01/2000’;
group by f.idf having count(e.ide) >= all (select count(e2.ide) from Formation f2 ,