Programmation SQLM3
Programmation SQLM3
Programmation SQLM3
1
Plan
2
Modèles de données
3
Marché BD et standards ?
SGBD-OO
SGF (3)
Non SQL
ODMG CAO
Données
Simples Complexes
4
Rappels Modèle de données « relationnel »
(de CODD)
➢RELATIONS
➢ Attributs/CP/CE
➢« Modèle OR de Chris Date »
(3rd manifesto) ➢ Double définition formelle
5
Exemple relation
FORMATION (F#, PIL#, DATE, NOMAV, MENTION)
➢1) Création des domaines avec CREATE ➢2) Création des relations avec CREATE
DOMAIN TABLE
6
Propriétés TIPS
des Bases de Données Structurées (SQL)
ACID
S Structuration (Schéma)
7
Exercice
8
Solution
➢AC Atomicité :
(TOUT ou RIEN des opérations de MAJ concernant une transaction)
et Cohérence de la BD quelle que soit la PANNE qui pourrait se
produire
9
Approche Top DOWN SQL
(données structurées)
10
Modèle OR ?
11
Les 3 Approches de
MODELES de DONNEES OBJETS et OR
RELATIONS
2ième Manifeste de Stonebraker (OR)
(tables)
OBJET
Structures de données du Modèle Relationnel de CODD et Proprietés RICE
12
Exemple de « table » et « objet »
(ORACLE)
Conducteur Age
134
Paul 45
24 Paul Paris
219
Robert 17
37
13
PROFIL MODELE DE DONNEES
et SGBD ?
➢évolutivité du serveur
➢« SCALABILITY UP »
➢« SCALABILITY OUT »
14
Vers DECISIONNEL (Data Analytics)
temps réel
15
PROFIL MODELE DE DONNEES OR
et SGBD ?
16
PROFIL MODELE DE DONNEES OR
et SGBD ?
18
Concepts Objets ?
➢« OBJET » ?
➢« Modèle de données Objets »
➢« Modèles de données Objet Relationnel » ?
19
Faiblesses du modèle relationnel
20
Evolution de l'informatique et OBJET
1965
OS
LP
OS : Operating « SERVICES » ?
1970
LP SGF SGBD
IA
21
Evolution de l’informatique
1970
OS SGF SGBDR
22
Evolution de l’informatique et l’objet
OS
SGBD-R
LP
SGBD-R
IA OS
23
Evolution de l'informatique :
VERS LES ESPACES DATA MOBIQUITAIRES dans le
CLOUD
2030
" Il est dur de prédire, particulièrement ... le futur "
N.Boehr
? ? ?
« SERVICES » ?
+ Ontologies ++ Linked Data (OPEN DATA, BIG DATA)
24
Evolution du logiciel et OBJETS
Données Traitements
SGBD-R L.P.
(SQL) (prog. structurée)
Objets
Génie logiciel
Communication
25
Approche Objet et
développement d'application
Intégration
Objet INTERFACE
APPROCHE
APPLICATION OBJET
SGDB
BD
PB : « IMPEDANCE MISMATCH »
et productivité du développeur
26
WWW et Mobiquité :
l’ELDORANET ?
27
LES 3 VAGUES
vers l’Infostructure répartie
28
Une évolution vers le Middleware
« l’empire du milieu »
HARDWARE
MIDDLEWARE
29
Visions de l’objet
➢VISION DOUBLE :
➢(i) LP : objet « encapsulé »
➢ Opérateurs SPECIFIQUES (classes, propriétés)
➢ Héritage (instantiation)
➢ Polymorphisme
➢(ii) BD : objet « structuré »
➢ Opérateurs GENERIQUES (algèbre, ...)
➢ Persistance
➢ Concurrence / reprise sur panne
➢Dualité des concepts structurels
30
Objets ?
31
L'insoutenable légèreté de l'objet !
« Objet ? »
32
Objet ?
➢Définition 2
(MIRA96) 3ième édition Livre Eyrolles sur le Modèle Client-Serveur et
livre Dunod sur les BD Objets (2002)
33
Propriétés RICE d’un SGBD OBJET
Réutilisabilité
R (Héritage ou polymorphisme)
Graphe héritage
I IDENTIFICATION système
Encapsulation
E (Messages, Méthodes, Classes d’objets)
34
« Objets « et « Classe d’objets » ?
DEFINITIONS :
➢OBJET?
➢OBJET = (OID, VALUE) OBJECT
➢OID : Object Identifier
➢➔ HASHING, b-TREE, …
➢*cf (KEY, VALUE) in N.O.SQL SET
construct
➢Une CLASSE d ’OBJETS
➢est un (« valeurs potentielles ») CLASS
➢a/possède un (« valeurs réelles »)
Modèle OR
Compatibilité ascendante
(Objet-Relationnel)
propriétés TIPS+RICE
36
Modèle de données OBJETS (RICE)
2 approches :
37
Les 3 Approches de
MODELES de DONNEES OBJETS et OR
ODMG
Const. SET
RELATIONS
RICE- 2ième Manifeste de Stonebraker (OR)
(tables)
Structures de données du Modèle Relationnel de CODD (SQL2)
38
SQL3 et Modèle OR ?
39
Propriétés RICE d'un
SGBD OBJET Relationnel
Modèle relationnel de
R Codd C
E
40
Exemple Graphe Structurel Objet
(cf IFO)
41
Exercice
42
Retour vers le futur avec le
Troisième Manifeste de Date
« Object features are orthogonal to the Relational DM and therefore RDM needs no
extension, no correction, no subsumption, no perversion in order for them to be
accommodated »
Chris DATE
43
Retour sur les
Modèles relationnels de CODD
44
Vue des bigots de l'OBJET
➢Une relation est un objet particulier avec les opérateurs de l'algèbre comme
méthodes
45
Vue des bigots du RELATIONNEL
46
Deux possibilités pour le modèle OR
47
2ième approche OR ?
48
Cohérence Manifeste de Date
49
Héritage double dans les BD
➢HERITAGE
➢HS : Héritage « structurel » (attributs)
➢HM Héritage « méthodes »
➢Dans modèle de Stonebraker : HM + HS au niveau des tables
➢Dans modèle de Date
➢HM au niveau des domaines
➢HS au niveau des tables ‘avec opérateur de mapping noté « ➔ » entre
domaines primaires et tuples
50
Deux Possibilités pour les classes d'objets
Manifestes OR et RICE :
➢Manifeste de Stonebraker
➢« RIC » au niveau des TABLES
➢Héritage opérationnel (méthodes) et structurel
➢au niveau des tables
➢Manifeste de DATE
➢« ICE » au niveau des DOMAINES avec héritage des méthodes
(« opérationnel »)
➢Héritage structurel avec opérateur « » entre valeur de Domaine primaire et
tuples
➢(index domaine)
51
Modèle de DATE :
Héritage entre domaines PRIMAIRES
➢ EX :
Create Domain PILNO PRIMARY UNDER
EMPNO
➢ Graphe d’héritage entre domaines «
primaires »
(attributs « clé primaires » définis dessus) Domaine de recherche :
EMP# Lien entre héritage opérationnel entre
100 103 domaines primaires et héritage structurel
/empno
entre TABLES ?
Opérateur spécial inspiré du déréférencement
Hotesse# de SQL3 (sous arbre d’héritage)
(valeurs potentielles du domaine et valeurs
PIL#/ réelles des tables)
100 103
Pilno
52
Héritage structurel ?
53
Héritage dans Modèle de données ?
54
Héritage Structurel dans DATE avec Opérateur «
(CP) -> » ?
55
Héritage Structurel dans DATE
«CP ➔ » ?
HotesseNO
56
Exercice : Requête d’héritage avec HOTESSE
57
Exercice
58
Solution avec E#
59
Langage D
60
Langage D
➢ « SUB-DOMAIN » et « SUPER-DOMAIN »
pour l'héritage des fonctions
(Héritage OPERATIONNEL des METHODES)
➢Exemple :
Create Domain HotesseNO : (Subdomain) de EMPNO
61
Langage D
➢Exercice :
héritage à valider avec les domaines primaires
(Utiliser Opérateur « ➔ » entre valeur de domaine primaire et tuples…)
62
Exemple 1 : Données 2D
(M. Stonebraker et Date 95)
63
Question 2D en SQL2
64
Solution astucieuse ☺
➢Une solution est de considérer les deux points du rectangle qui vérifient
certaines proprietés.
Il suffit qu'un point se trouve dans l'aire décrit par le carré.
Pour cela on a pris le coin inferieur gauche et coin superieur droit.
UNION
65
MODELE OR de Chris Date :
67
Solution dans le langage D (Date)
Q:
SELECT *
FROM RECTANGLES R
WHERE
OVERLAP (R, MAKE_RECT(0,1,0,1))= TRUE;
68
Exercice : Création du domaine rectangle à partir
d’un domaine POINT
Solution :
69
Exercice
70
« DQL »
➢Quels sont les rectangles qui après une rotation de 30 degrés sur le
coin gauche sont en intersection avec le carré (0,1,0,1) !
➢Composition de fonctions
➢ Overlap (Make(0,1,0,1), Rotation (x, y, 30, ..)..)
71
Recherche en BD (TIPS)
Distribution et parallélisme,
P ELDB multimedia + BIG DATA
Algo.de pagination
72
Recherche en BD (TIPS)
S
TOP DOWN : Datawarehouse, data mining, Groupware
BOTTOM UP : BIG DATA (DATA ANALYTICS)
Ontologie multimedia personnelle
AGDM/MOOC
ERP
Very Light DB (SQLITE, mobile computing, smart card DB, RFID…)
Et « NO S »
(BIG SQL/UQL, Indexation, Table Externe, NEST/UNNEST,..)
73
Surfeurs sur la vague OR
74
Exercice :
76
Exercice
77
Exercice du Thésaurus :
78
Représentation du Thesaurus (suite)
➢Q - Quels sont les documents concernant le software (utilisant les liens sémantiques pour
étendre la recherche) dont le titre commence par “CONCEPTS” ?
SELECT *FROM DOCUMENT, DOC-AUTEUR, DOC-MOT-CLE
WHERE DOCUMENT.DOC#=DOC-AUTEUR.DOC#
and DOCUMENT.DOC#=DOC-MOT-CLE.DOC#
and TITLE=“CONCEPT%”
and (DOC-MOT-CLE.MOT-CLE = “Software”
or DOC-MOT-CLE.MOT-CLE IN
(SELECT MOT-CLE2 FROM SYNONYMIE
WHERE MOT-CLE1 = “Software”) <+ INVERSE>
or DOC-MOT-CLE.MOT-CLE IN
(SELECT MOT-CLE-SPEC FROM HIERARCHIE
WHERE MOT-CLE-GEN = “Software”)
or DOC-MOT-CLE.MOT-CLE IN
(SELECT MOT-CLE2 FROM VOISINAGE
WHERE MOT-CLE1 = “Software” ); <+ INVERSE>)
80
Modèle OR de Chris DATE
81
Modele de Date (suite)
82
Modèle de DATE : Avec des Domaines
encapsulés (Manipulation DQL)
83
EXERCICE sur exemple complet dans le modèle
de DATE avec Héritage sur cet exemple étendu
➢Q1 Quel est le nombre de pages des livres empruntés de l’Editeur DUNOD ?
➢Q2 Quel est le nombre de pages des livres empruntés de l’Editeur DUNOD dont le titre
commence par CONCEPT et qui concerne le SOFTWARE ?
84
Exemple Complet du Modèle OR de DATE
sur THESAURUS
86
Suite Schéma Thesaurus
87
Requête Q1 Thesaurus
88
Requête Q2 ☺
89
Pour en savoir plus sur le 3ième Manifeste
➢http://thethirdmanifesto.com/
90
COMPLEMENT : Deuxieme Manifeste de
M.Stonebraker et approche objet MICROSOFT
91
POSTGRES➔ « ILLUSTRA »
92
POSTGRES➔ « ILLUSTRA »
93
ILLUSTRA
(Universal server- INFORMIX)
(ii) FONCTIONS
- fonctions normales (types de base ou complexes)
- opérateurs (types de base seulement)
- opérateurs spécifiques :
EXPRESSION de CHEMIN ("."), REQUETES IMBRIQUEES , FERMETURE TRANSITIVE
….
fonctions POSTQUEL
94
ILLUSTRA
(Universal server- INFORMIX /IBM)
➢ILLUSTRA (1992)
➢INFORMIX "UNIVERSAL SERVER"
➢ (Dec.1995 et 1997) ; UDO d ’Informix Dynamic Server
➢CENTAUR - SGBD Internet -(Juillet 99) conforme à V1.0 des EJB, COM+ (via Data Blade)
➢IBM (2002)
◼95
ILLUSTRA
(Universal server- INFORMIX /IBM)
96
ILLUSTRA
(Universal server- INFORMIX /IBM)
97
ILLUSTRA
(Universal server- INFORMIX /IBM)
98
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
99
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
1 -TYPES
100
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
101
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
102
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
103
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
2-FONCTIONS
f1 : Documents associés à un mot_cle donné ?
104
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
105
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
Create function
Synonyme-MC(Varchar)
Returns setof (T_mot_cle) as
Select Synonymes
From Thesaurus
Where Thesaurus.mot_cle.valeur = $1;
106
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
107
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
108
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
109
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
3-CREATION de TABLES
110
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
111
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
Select*
From Document
Where mots_cle.valeur= "Software";
112
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
Select Editeur.nom
From Document
Where mot_cle.valeur= "Software";
113
ILLUSTRA (EX : Thesaurus)
(Universal server- INFORMIX /IBM)
Select *
From Doc_Concerne ("Software")
Where Titre= "CONCEPT%";
114
Seminar : Object MIDDLEWARE approach (Microsoft)
115
APPROCHE MICROSOFT
(Accès Universel)
Note : Microsoft offre une interface OLE DB directe dans SQL Server et Exchange
Server
116
Universal Data Access
117
APPROCHE MIDDLEWARE OBJET MICROSOFT
• ADO 2.0 : basé sur (D)COM, remplace interfaces d'accès ODBC de haut niveau
118
APPROCHE Acces Universel de MICROSOFT
119
APPROCHE MIDDLEWARE OBJET MICROSOFT
120
DCOM et COM+ de Microsoft
121
DCOM et COM+ de Microsoft
122
DCOM et COM+
(Interfaces)
Interfaces
externes
DEPOT FERMER
A
{DEPOT, RETRAIT, VERIF} RETRAIT
B
VERIF COMPTE
{MODIF, FERMER}
MODIF COMPTE
123
DCOM et COM+
(Interfaces)
IUnknown
Création NOUVELLE INTERFACE « C »
Interfaces
externes
DEPOT FERMER
A
{DEPOT, RETRAIT, VERIF} RETRAIT
B
VERIF COMPTE
{MODIF, FERMER}
C MODIF COMPTE
IUnknown
Inclusion-Containment/Délégation connaît A, B et C
(INTERNE vers EXTERNE)
Interfaces IUnknown
externes Objet externe contrôle la durée
de vie de l’objet interne
A
L’objet externe utilise
l’implémentation C de
l’objet interne
B
comme n’importe quel client
Objet interne
contenu dans
C C l’objet externe
125
DCOM et COM+ : METHODES
(Inclusion/délégation)
➢
IUnknown
connaît A, B et C
Interfaces IUnknown
externes Objet externe
contrôle la durée
de vie de l’objet interne
A
B
Objet interne
contenu dans
C L ’interface C de l’objet
l’objet externe
interne exposé directement
depuis l’objet externe
126
DCOM et COM+: METHODES
(AGREGATION)
Interfaces
externes Objet externe IUnknown
contrôle la durée
A de vie de l’objet interne
Procédure A utilisant
C
B
Objet interne
contenu dans
C
l’objet externe
127
DCOM et COM+ : METHODES
(Exemple : Agrégation/Délégation)
IUnknown
Interfaces
externes Objet externe
Multiplier
Multiplication
Ajouter Agrégation
+ Objet interne
Délégation contenu dans
Soustraire - l’objet externe
128
Exercice : Héritage Par agrégation et délégation ?
entre
➢ EMPLOYE
➢méthodes
➢ SALAIRE1
➢ RETRAITE
➢PILOTE
➢SALAIRE 2 ( = SALAIRE1 + Primes)
➢RETRAITE
129
DCOM et COM+
(Exemple : Réutilisabilité par
Agrégation/Délégation)
IUnknown
Interfaces
externes PILOTE
SALAIRE
+Primes…
Agrégation
SAL
Délégation EMPLOYE
RETRAITE
RETRAITE-
130
APPROCHE MIDDLEWARE OBJET MICROSOFT :
(Propriétés RICE et COM)
131
APPROCHE MIDDLEWARE OBJET MICROSOFT :
(Propriétés RICE et COM)
132
Bibliographie
➢M.Loomis " Object data bases in practice " Prentice Hall, 1997
133
Bibliographie
135
Middleware objet à couplage FORT
(environnement « homogène »)
➢COM+ (Microsoft)
➢CORBA
➢RMI (Sun)
136
Exemple de service e-commerce
137
APPROCHE MIDDLEWARE OBJET par couplage faible
(Microsoft, IBM, Sun/Oracle..)
TROUVER
PUBLIER avec UDDI
avec WSDL
E-business
SERVICE
LIER avec SERVICE
PROVIDER
SOAP REQUESTER
140