Programmation SQLM1
Programmation SQLM1
RELATIONNEL ET OBJET
2
Module 1: Introduction au
modèle relationnel de Codd
(paradigme VALEUR)
Professeur Serge Miranda
Département Informatique
Université Côte d’Azur
Fondateurs des Master MBDS/eMBDS (UCA) et BIHAR/eBIHAR (ESTIA)
Michel Serres sur 5 juifs « audacieux » qui ont
marqué l’histoire et ..Ted Codd (avec Jim Gray et Mike
Stonebraker )
➢JESUS : « tout est AMOUR »
➢Moïse : « tout est LOI »
➢Marx : « Tout est ARGENT »
➢Freud : « Tout est SEXE »
➢Einstein : « Tout est RELATIF »
HARDWARE
SOFTWARE
SERVICEware*
DATAware*
TYCHO BRAHE
(Wikipedia)
7
DATA ?
8
DATA ?
9
« InformaTHIQUE » (é-THIQUE) !
10
INFORMATION + COMMUNICATION➔«Objets
intelligents» ? (SMART City,IOT,..)
Vie en biologie ?
11
Définition BIG DATA (M.Stonebraker) :
les « 3V » : VOLUME + VARIETE + VELOCITE?
12
« VARIETE » du BIG DATA : 3 grands types de DATA
pour les informaticiens
SCHEMA
Données
SEMI-STRUCTUREES
(SparQL, RDF, OWL)
METADATA
13
Des données structurées du DATAWARE HOUSE …
DATA PUMPING
• ETL (Extract- Transform-Load)
• COPY (Data Replication)
DATA WAREHOUSE
(real built-in DB)
• METADATA & DATA REFRESH
(DAY, WEEK, MONTH)
• READ-ONLY (NF2) & DECISION SUPPORT
14
..au DATALAKE du Big Data
DATA LAKE
(virtual DB for decision support)
• Big SQL for Polystore access
(SQL & NO SQL)
• Undefined analysis dimensions
15
DATA LAKE et polystore
DONNEES
STRUCTUREES)
INFORMATION
DONNEES
DATA SEMI-STRUCTUREES « DATA
LAKE » ML& DL
DONNEES
NON STRUCTUREES
(No SQL) CONNAISSANCE
POLYSTORE
16
QUIZZ
17
Modèle relationnel de CODD pour les données
STRUCTUREES
18
Univers réel, SCHEMA et modèle des données
STRUCTUREES
19
Modèle des données (DATA MODEL)?
Opérateurs de
manipulation des
Modèle des données structures des données
Règles d’intégrité
20
Base de Données (data base) et SGBD (DBMS) ?
➢DEFINITION SCHEMA
➢MANIPULATION
➢CONTRÔLE d’une BD
BD SGBD
S Structuration (Schéma)
22
Exercice
(approfondissement Internet) :
23
Concepts mathématiques
sous-jacents
« Ensemble » ?
G. Cantor:
« Toute collection d ’objets bien
DISTINCTS
de notre perception ou de notre pensée »
25
« Proposition » et « Prédicat » ?
➢« PROPOSITION » ?
➢Forme d’énoncé à valeurs booléennes (VRAIES ou FAUSSES)
➢EX : « Il pleut » ; « Pierre aime Jeanne » ; « SOCRATE est mortel » etc
➢« PREDICAT » ?
➢« Forme d’énoncé qui contient des variables et qui devient une proposition quand on
remplace les variables par des VALEURS »
➢EX : AIME (x,y) < ou X AIME Y>; prédicat à deux variables
26
Concepts informatiques
sous-jacents
« Valeur » ? (VALUE)
➢Immuable
➢EX : la valeur « AMOUR » est éternelle; valeur entière « 40 »…
28
« VARIABLES » et « POINTEURS »
VARIABLE ? Toute variable possède un NOM, une VALEUR et une ADR mémoire
VARIABLE = ( NOM, VALEUR, ADR)
POINTEUR ? Cas particulier d’une variable qui contient l’ ADResse d’une autre
variable comme valeur (« indirection »)
Exemple: attribut de type REF dans SQL3 qui contient des « pointeurs lignes » (les
ROWID)
29
« Type des données »
30
Les Variables ont des adresses !
(pas les valeurs) :
31
Approfondissement ENSEMBLISTE
➢Paradoxe de B. Russel :
Dans un village, le barbier rase toutes les personnes qui ne se rasent pas elles-
mêmes ! Se rase t-il lui même ?
32
Paradigme VALEUR du
Modèle relationnel de CODD
« Structuration » du Modèle Relationnel de CODD : le
Paradigme « VALEUR »
34
Phase 2 : constructeur TUPLE
Relations
RM-T (1980) et
Standards SQL
➢« RELATION » :
sous ensemble du PRODUIT CARTESIEN de N « DOMAINES »
➢Exemple :
AVION AVNO x AVNOM x CAP x LOC
AVION = {(10, Airbus, 320, Nice), (11, B707, 300, Paris),
……………….}
39
2) « Relation = prédicat » !
➢PREDICAT à N Variables
➢EX : « L’avion de numéro AV# est de type AVNOM, de capacité CAP et est localisé à LOC ».
➢ RELATION : Prédicat écrit sous forme concise. AVION (AV#, AVNOM, CAP, LOC)
➢ PROPOSITION
➢EX : « L’avion de numéro 10 est de type AIRBUS, de capacité 320 places et est localisé à
NICE ».
➢ TUPLE : proposition VRAIE écrite sous forme concise : AVION (10, AIRBUS, 320,
NICE)
40
“Domaine” et “attribut” ?
➢PROBLEME
Le même domaine peut être utilisé plusieurs fois dans la
définition d ’une même relation !
Exemple 2 :
VOL VOLNO x VILLE x VILLE x HEURE x HEURE
41
Modèle relationnel de CODD
(V1 du 19 Août 1968*)
Domaine (« domaine »)
42
Domaine
(« semantical data type » Codd) ?
DOMAINE
ATTRIBUTS
43
« Domaine » ?
(« semantical data type » Codd) ?
X(12)
TYPE SYNTAXIQUE
(pas de « domaine »)
44
« ATTRIBUT » (attribute pour Codd)
45
« CLE PRIMAIRE »
46
« CLE ÉTRANGÈRE »
➢Attribut quelconque dans une relation qui est une clé primaire dans une autre.
Exemple :
VOL (VOL# : VolNO, PL# : PLNO, AV# : AVNO, …)
➢Les attributs PL# et AV# dans la relation VOL sont des clés étrangères
47
Schéma relationnel de Codd en 2 Phases
Phase 1 : Création Domaines
48
Schéma relationnel de Codd en 2 Phases
Phase 2 : Création des RELATIONS
49
Schéma relationnel
(version standard SQL2)
➢Le concept de DOMAINE n’existant pas dans SQL2 seuls les attributs sont définis
dans la création des relations appelées « TABLES »
Verbe SQL : CREATE TABLE
➢Le schéma relationnel de travail qui sera utilisé dans les exemples suivant
concernent les vols quotidiens d’une compagnie aérienne et les 3 prédicats
suivant (version SQL2) :
50
Exemple de TABLES de valeurs
à un instant T pour une relation
➢La table n’est que la représentation LA PLUS SIMPLE à un instant t des n-uplets
(tuples) d’une relation
51
Contraintes d’intégrité du modèle de CODD
(liées aux MAJ des relations)
52
NOTE : « TABLES » vs « RELVARS »
« RELATION » :
double signification : « variable » et « valeur » !
➢Relations/TABLES (« valeurs ») vs Relations/VARIABLES (« RELVARS » )
(DATE95, 99)
➢ "En-tête"(ensemble de paires <noms de colonne, noms de domaines>)
<--> PREDICAT : le « RELVAR/RELATION »
➢ "Corps" (ensemble de tuples de valeurs pas de pointeurs,
➢ conformes à l'en tête)
<-->TABLE DE VALEURS avec une volatilité importante :
la « TABLE/RELATION »
53
Approche déclarative de définition
d’un schéma relationnel
« Declare N Integer » ?
N est une variable entière dont les valeurs sont des entiers
« CREATE TABLE T » ?
T est une variable relation (RELVAR)
dont les valeurs sont des tables (tuples) (TABLES/RELATIONS)
54
EXERCICE :
schéma relationnel de Codd
55
« Normalisation » des Relations basée principalement
sur les « Fonctions » (liens ➔ N:1)
NORMALISER = DECOMPOSER
56
EXERCICE : Decomposition d’une relation
57
Algèbre relationnelle du modèle de CODD
58
Algèbre relationnelle de CODD
(Opérateurs)
Opérateurs du langage algébrique
de CODD
Ensemblistes
Restriction Extension
(unitaire) (binaire)
Union
Intersection
Division
Difference
SELECTION
PROJECTION Join (Produit Cartésien)
(découpage vertical) (découpage horizontal)
59
Opérateurs ensemblistes : UNION (OU),
INTERSECTION (ET), DIFFERENCE (NOT)
Soient 2 Relations R et S
➢UNION :
➢INTERSECTION :
➢DIFFERENCE :
60
PRODUIT CARTESIEN ?
➢Le produit cartésien ne veut rien dire d’un point de vue sémantique :
➢« On associe tous les éléments de l’ensemble de départ avec tous les éléments
de l’ ensemble d’arrivée ! »
61
PROJECTION (Devinez )
62
PROJECTION (Définition)
DEFINITION NOTATION
63
PROJECTION (Exemple)
64
SELECTION (devinez )
65
SELECTION (Définition)
Notation
➢« SELECT R (condition booléenne F) »
➢Notation graphique
66
SELECTION (Exemple)
67
Jointure ( « JOIN ») : devinez
Jointure R1 (A=A) R2
68
JOINTURE (Définition)
➢DEFINITION
Jointure de 2 relations de R avec S sur la condition d’equi-jointure ATT2 =
ATT3
➢ Cas particulier d’un Produit cartésien suivi par une SELECTION sur le critère de
jointure (ATT1= ATT2)
➢ TETA JOINTURE possible avec <, > , <=, > =
➢NOTATION
« JOIN R (ATT1, ATT2) [ ATT2 = ATT3] S (ATT3, ATT4) » avec
➢ ATTi (attribut ou groupe d’attributs)
➢ ATT2 défini sur le même domaine qu’ATT3
➢ autre notation :
69
JOINTURE (Exemple)
➢Quels sont les noms des Pilotes qui assurent un vol au départ de NICE ?
70
Division (Devinez)
Division: R1/R2
Dividende Diviseur
71
DIVISION (Définition)
➢DEFINITION
72
DIVISION (Exemple) : Quels sont les numéros des
pilotes qui conduisent TOUS les A300?
73
Intérêt du modèle relationnel de Codd
74
Apports principaux des BD Relationnelles
à la communauté informatique : propriétés TIPS
S Structuration (Schéma)
75
Exercice :
Exemples :
Traitez dans le langage algébrique de CODD les deux requêtes suivantes :
76
Exercices :
Q2 : Quels sont les noms des avions qui sont conduits par un pilote habitant Nice ?
Q3 : Quels sont les noms des avions qui sont conduits par tous les pilotes habitant Nice ?
Q4 : Quels sont les noms des avions localisés dans la ville de départ d’un vol desservant
Nice ?
Q5 : Quels sont les noms des avions qui sont conduits par tous les pilotes habitant Nice sauf
ceux localisés dans la ville de départ d’un vol desservant Nice (immédiat à l’aide des
opérateurs ensemblistes et des résultats de Q3 et Q4) ?
77
Quelques Livres de Référence
En Anglais :
➢ Chris Date « An Introduction to data base systems » (8th Edition), Addison Wesley
Version Française chez VUIBERT (8ieme Edition) : « Introduction aux bases de données »
➢ E.F Codd (1990). « The Relational Model for Database Management » (Version 2 ed.). Addison
Wesley Publishing Company. ISBN 0-201-14192-2.
En Français :
➢ JL Hainaut« Bases de Données » Dunod 2015
78
Annexe : Résumé Théorème de Codd
79
Dr Edgar « Ted » CODD (1923- 2003)
incompris des informaticiens de son temps mais …
82
Modèle de données relationnel de CODD
(relational DATA Model)
83
La DISRUPTION/disruption de TED CODD !
➢DEUX Operateurs binaires dérivés du PRODUIT CARTESIEN (qui ne veut rien dire..) :
JOIN (quantificateur existentiel), DIVISION (quantificateur universel)
84
Théorème de Codd (1971) et conséquences !
➢THEOREME DE CODD : « Une requête sur une base de données relationnelle est
exprimable en CALCUL RELATIONNEL si et seulement si elle est exprimable en
ALGEBRE RELATIONNELLE »
EXEMPLE : Quels sont les pilotes qui assurent un vol au départ de Nice ?
{p ∈ PILOTE/ ∃ v ∈ VOL/p.PL# = v.PL# and V.VD = ‘Nice’}
85
Conséquences du Théorème de Codd
*M. Stonebraker (TURING AWARD 2014) en plus de son deuxième Manifeste des
BD du Futur :
« SQL sera l’esperanto de la gestion des données du futur (OBJETS, BIG DATA) »
86
Disruption de CODD
87
Compromis en Informatique d’un modèle formel
(complexe) ! (3 leçons de CODD)
➢➔ Un projet de recherche d’IBM SAN JOSE « SYSTEM R » avec Jim Gray comme
chef de projet (ancêtre Oracle, DB2,..) pour valider son modèle!
88
Plan
➢ PARADIGMES DATA
➢ DATA, BIG DATA et les types de données du BIG DATA
➢ Rappels sur les modèles de données
➢ Les concepts mathématiques sous-jacents
➢ ENSEMBLE
➢ PROPOSITION et PREDICAT
➢ Les Concepts informatiques sous jacents
➢ VALEUR
➢ VARIABLE et POINTEUR
➢ Le paradigme VALEUR du Modèle relationnel de Codd