0% ont trouvé ce document utile (0 vote)
22 vues89 pages

Programmation SQLM1

Transféré par

Alicia Rakotomamonjy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues89 pages

Programmation SQLM1

Transféré par

Alicia Rakotomamonjy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 89

PROGRAMMATION SQL

RELATIONNEL ET OBJET

Professeur Serge Miranda


Département Informatique
Université Côte d’Azur
Fondateurs des Masters MBDS (UCA) et BIHAR (ESTIA)
Plan

➢ MODULE1 : Paradigmes data et Modèle Relationnel de


Codd pour les bases de données structurées
➢ MODULE2 : Systèmes de gestion de bases de données
structurées : Conception (Méthode Codd & Date), Accès
(B-Tree) et Analyse (Datawarehouse/OLAP)
➢ MODULE3 : SQL2 pour les bases de données relationnelles
➢ MODULE4 : Manifeste de Chris Date et de Mike
Stonebraker sur le modèle OBJET-RELATIONNEL
➢ Module 5 : SQL3 pour les bases de données hybrides
(objet-relationnel)
➢ Module 6 : OQL pour les bases de données objets
➢ Module 7 : NO SQL pour les bases de données non-
structurées (Datalakes et polystores)

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 »

Et dans l’ histoire de l’ informatique les


3 « Nobels » (TURING AWARD) :

➢Ted Codd (1981) « tout est TABLE de valeurs »


➢Jim Gray (1998): « Tout est DATA/Transaction »
(4ième paradigme)
➢Mike Stonebraker (2014) : «tout est SQL »
Avec Ted Codd à Sophia Antipolis (1986)
4
Plan

➢ 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
➢ Le Modèle relationnel de CODD
➢ Structures de données relationnelles (et paradigme VALEUR)
➢ Règles d’intégrité
➢ Operateurs de manipulation (l’Algèbre de Codd)

➢ ANNEXE : Résumé des apports de Codd à l’informatique


5
25 ans d INNOVATION et 4 révolutions Coperniciennes
en Informatique

HARDWARE
SOFTWARE
SERVICEware*

DATAware*

* ➔ « USERWARE" avec « BIG DATA & DATA SCIENCE (IA) »


6
Tycho BRAHE et son assistant en 1600 :
la dualité du TRAITEMENT des DATA

TYCHO BRAHE
(Wikipedia)

7
DATA ?

➢Enregistrement de n’importe quoi sur n’importe quel support dans n’importe


quel code »!

8
DATA ?

➢DATUM ➔ DATA de DARE


(donner en latin)
➢INFORMATION ? = CAPTUM➔ CAPTA « Par TouDATIS » !
Vous allez Tomber dans la
de Captio (Capter/prendre en latin)
marmite DATA!

« La valeur d’un homme tient à sa capacité à


DONNER pas à recevoir »
Einstein
« It is DATA i.e. STUPID »
Jim Gray
« Nous« donnons nos données »
Michel Serres

9
« InformaTHIQUE » (é-THIQUE) !

➢CONNAISSANCE ? (Aristote, ETHIQUE à NICOMEQUE) : 3 Types de connaissance


➢EPISTEME➔ SCIENCE <savoir>
➢TECHNE ➔ TECHNOLOGIE <savoir FAIRE>>
➢PHRONESIS➔ ETHIQUE <savoir ETRE; SAGESSE>

«Avoir l’œil VERTUEUX »


Aristote
« Science sans conscience n’est que ruine de l’âme »
RABELAIS

10
INFORMATION + COMMUNICATION➔«Objets
intelligents» ? (SMART City,IOT,..)

Vie en biologie ?

➔VIE = INFORMATION + COMMUNICATION

11
Définition BIG DATA (M.Stonebraker) :
les « 3V » : VOLUME + VARIETE + VELOCITE?

« DATA DELUGE SCIENCE…massively


interdisciplinary cooperation…towards a
global approach for interoperability »
G.Glinos, EC 2012

12
« VARIETE » du BIG DATA : 3 grands types de DATA
pour les informaticiens

Données Données NON


STRUCTUREES STRUCTUREES
(SQL, OQL) DATA (N.O.SQL)

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

DATA MINING and REPORTING


• Discovery mode (ML, DL)
• Verification mode (X-OLAP) ; Predefined
analysis dimensions (OLAP, ..)

14
..au DATALAKE du Big Data

DATA VIRTUALIZATION (Polystore)


• due to Volume
• Data ACCESS thru a common API and global
formal data model (see last seminar)

DATA LAKE
(virtual DB for decision support)
• Big SQL for Polystore access
(SQL & NO SQL)
• Undefined analysis dimensions

MACHINE LEARNING (Deep Learning)


• DATA MINING for DWH
• Data Science for Data Lakes

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

➢Approche de « STRUCTURATION » du monde réel avec un "SCHEMA" de


données résultant de l’application d’un "MODELE de DONNEES »(data model)

Univers réel Modèle des données Schéma

19
Modèle des données (DATA MODEL)?

Structures des données

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

DATA POOL : réservoir partagé de valeurs, de pointeurs


21
Apports principaux des BD Relationnelles
à la communauté informatique : propriétés TIPS

T « Transactions » (avec propriétés ACID)

I Interface non procédurale (Standard SQL)

P Persistance (Mémoire paginée)

S Structuration (Schéma)
22
Exercice
(approfondissement Internet) :

1. Examiner le standard ANSI SPARC de l’approche base de données et clarifier


les concepts de
« schéma conceptuel »,
« schéma logique »
« schéma physique »
« sous schéma »
2. Concept de « META MODELE (de données) » ?

23
Concepts mathématiques
sous-jacents
« Ensemble » ?

G. Cantor:
« Toute collection d ’objets bien
DISTINCTS
de notre perception ou de notre pensée »

➢DOUBLE PROPRIETE DES ELEMENTS d un ENSEMBLE :


➢Les éléments sont DISTINCTS (uniques)
➢Les éléments ne sont pas ordonnés

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)

➢Synonyme de « DATA » (Donnée) avec 2 significations:

➢Immuable
➢EX : la valeur « AMOUR » est éternelle; valeur entière « 40 »…

➢Mutable (Valeur d’une « variable »)


➢Exemple : « 40 » est la valeur de la variable AGE
➢Notion de « TYPE de données » : « ensemble de VALEURS que peut prendre une DONNEE
(DATA) »

Note : aussi « Mérite ou qualités » (cf VALOR en Latin)

28
« VARIABLES » et « POINTEURS »

VARIABLE ? Toute variable possède un NOM, une VALEUR et une ADR mémoire
VARIABLE = ( NOM, VALEUR, ADR)

➢La valeur d’une variable informatique est codée en binaire


➢La valeur d’une variable est modifiable dans le temps
➢La valeur d’une variable possède une adresse mémoire

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 »

« En programmation informatique, un type de donnée, ou simplement type,


définit les valeurs que peut prendre une donnée, ainsi que les opérateurs qui
peuvent lui être appliqués » (WIKIPEDIA).

30
Les Variables ont des adresses !
(pas les valeurs) :

TYPE « ADRESSE » avec deux opérateurs de base :


➢Référencement/adressage ("referencing") : v ==> adr
➢ en C : ptr = &v; (avec char v; et char *ptr;)
➢ en PL/1 DECLARE N INTEGER
DECLARE P POINTER
P= ADDR (N)
➢ en SQL3 opérateur &ROW

➢Déréférencement ("dereferencing") : adr ==> v


➢ en C : *A ; en PL/1 : A--> V
➢ en SQL3: opérateur « —> » avec attribut de type REF en argument d’entrée

31
Approfondissement ENSEMBLISTE

➢Etablir les correspondances entre la théorie ensembliste et la logique des


prédicats (logique du premier ordre)

➢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

AVION AV# AVNOM CAP LOC

100 A300 200 Paris

101 A200 250 Nice

« Relations » = « ensemble de tuples (N-uplets) »


35
Modèle relationnel de CODD
Modèles relationnels de CODD et SQL

Les modèles relationnels de CODD

V1 (1970) « b.c. » 1970

RM-T (1980) et

V2/V3 (1990) « a.c. » 1970

Standards SQL

SEQUEL (1975 et 1982)


SQL1 (1989)
SQL2 (1992)
SQL3 (1999)
SQL4, SQL5, SQL6, SQL7 2008..
37
Structure de données du
modèle relationnel de CODD
1) « Relation = Ensemble » !

➢RELATION = ENSEMBLE (de « N-uplets » ou « TUPLES ») :


sous ensemble du produit cartésien de N ensembles

➢« 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

➢ATTRIBUT : ROLE joué par un domaine dans une relation


VOL (VOL# : VOLNO) x (VD : VILLE) x (VA : VILLE) x (HD : HEURE) x (HA : HEURE)

41
Modèle relationnel de CODD
(V1 du 19 Août 1968*)

Domaine (« domaine »)

Ville: {Nice, Paris, Lyon, Toulouse}

Pilote PILNO PILNOM ADR

100 Serge Nice

101 John Paris

102 Pierre Toulouse


Ligne= N-UPLET (« TUPLE »)
COLONNE = ATTRIBUT (« ATTRIBUTE »)
*1968 : Année « révolutionnaire » pour l’informatique avec ARPANET/Internet(UCLA), UNIX/MULTICS (MIT) et Modèle de Codd (IBM)

42
Domaine
(« semantical data type » Codd) ?

DOMAINE

VOL VOLNO x VILLE x VILLE x HEURE x HEURE

VOL ( VOL# V-D V-A H-D H-A )

ATTRIBUTS

43
« Domaine » ?
(« semantical data type » Codd) ?

Noms des pilotes Noms des avions

X(12)

TYPE SYNTAXIQUE
(pas de « domaine »)

44
« ATTRIBUT » (attribute pour Codd)

« Rôle joué par un domaine dans une relation »


Nom UNIQUE dans une relation

➢Pour chaque attribut on doit indiquer son domaine de définition


Exemple :
Relation AVION
(AV# : AVNO, AVN : AVNOM, ADR : VILLE) < : défini sur>

45
« CLE PRIMAIRE »

➢Attribut ou groupe d’attributs qui joue le rôle d’identifiant des tuples de la


relation
➢Valeur de clé primaire unique (et toujours définie)

➢NOTE : Conséquence de l’ ENSEMBLE « relation »

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

1. DOMAINES (CREATE DOMAIN)

CREATE DOMAIN NOMAV CHARACTER (20)


CREATE DOMAIN NUMERO NUMERIC (6) Primaire*

CREATE DOMAIN NOMPIL CHARACTER (6)


CREATE DOMAIN AVNO NUMERIC (6) Primaire*

CREATE DOMAIN CAPACITE NUMERIC (3)


CREATE DOMAIN PILNO NUMERIC (6) Primaire*

CREATE DOMAIN VILLE CHARACTER (10)


* « Domaine PRIMAIRE » :
Domaine sur lequel une clé primaire est définie
CREATE DOMAIN HEURE NUMERIC (4)

48
Schéma relationnel de Codd en 2 Phases
Phase 2 : Création des RELATIONS

2. RELATIONS (CREATE TABLE/RELATION)

CREATE RELATION : AVION


AV# CLE PRIMAIRE : (Défini sur) AVNO CREATE RELATION : VOL
AVNOM : NOMAV VOL# CLE PRIMAIRE : NUMERO
PL# : PILNO
CAP : CAPACITE
AV : AVNO
LOC : VILLE VD : VILLE
VA : VILLE
HD : HEURE
HA : HEURE
CREATE RELATION : PILOTE
PL# CLE PRIMAIRE : PILNO
PLNOM : NOMPL
CONTRAINTES (1)
ADR : VILLE

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) :

PILOTE (PL#, PLNOM, ADR)


AVION (AV#, AVNOM, CAP, LOC)
VOL (VOL#, PL#, AV#, VD, VA, HD, HA)

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

AVION AV# AVNOM CAP LOC


1 A300 300 Paris
2 B727 250 Paris
3 B747 350 Paris
4 B747 350 Toulouse
5 A380 380 Toulouse

51
Contraintes d’intégrité du modèle de CODD
(liées aux MAJ des relations)

➢DOMAINE Intégrité de type

➢CLE PRIMAIRE Intégrité d’entité


➢Valeur unique et toujours définie (NOT NULL)

➢CLE ETRANGERE Intégrité de référence


➢Contrainte d’existence
➢Contrainte de référence
➢ NULL
➢ DEFAULT
➢ CASCADE (propagation)
➢ RESTRICT (interdiction)

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

➢Avec les verbes CREATE DOMAIN et CREATE RELATION creez le schéma


relationnel de Codd sur l’exemple PIECE, COMMANDE FOURNISSEUR

➢Règles d’Intégrité, Clés Primaires et clé étrangères


➢Donnez 2 façons de déclarer une CP
(Ex « Domaine Primaire »)
➢Intégrité d’entité (de CP)
➢Intégrité de Référence (de CE)

➢Illustrez les Règles d’Intégrité sur 2 tables du schéma


Intégrité de Domaine, de Relation et de Référence

55
« Normalisation » des Relations basée principalement
sur les « Fonctions » (liens ➔ N:1)

➢3NF : Troisième forme normale (CODD)

➢Lien fonctionnel N➔ 1 entre A et B si


➢ toute valeur de A détermine une valeur unique de B
➢ plusieurs valeurs de A (N) peuvent déterminer la même valeur de B (1) d’où la notation N➔1
➢ A➔ B (A est le déterminant et B le déterminé)

➢Définition 3NF de SHARMAN avec les liens fonctionnels N:1 ( notés ➔)


➢ « Une relation est en 3NF si tout déterminant d’un lien N:1 est clé primaire »

➢Théorème de décomposition (Casey & Delobel)


Soit R( A, B, C) avec B➔ C
alors R peut être décomposée sans perte (de manière réversible par jointure) en
- R1 (B,C) (on isole le lien N:1 interne) et
- R2 (A,B)

NORMALISER = DECOMPOSER

56
EXERCICE : Decomposition d’une relation

➢Exemple : AVION (AV #, AVNOM, CAP , LOC)

Supposons l’existence du lien N➔1 entre AVNOM et CAP

1) Initiez une table avec une dizaine de tuples respectant ce


lien N:1
2) Montrer un problème qui peut se poser pour une opération
de mise à jour ou de décomposition non reversible
(Projection suivie de jointure)
3) Decomposez cette relation en 3NF

57
Algèbre relationnelle du modèle de CODD

➢Algèbre relationnelle de Codd avec 3 propriétés fondamentales d’un « BON »


langage informatique :
➢« fermé »
➢« complet »
➢« orthogonal »

➢NOTE : SQL (dans sa composante Manipulation) n’est ni un langage fermé, ni un


langage complet, ni un langage orthogonal !

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 ! »

➢2 cas particuliers du produit cartésien dans l’algèbre de Codd


➢JOIN
➢DIVISION

61
PROJECTION (Devinez )

AVION AV# AVNOM CAP LOC


1 A300 300 Paris
2 B727 250 Paris
3 B747 350 Paris
4 B747 350 Toulouse
5 A380 380 Toulouse A1 AVNOM
A300
B727
B747
A1 = PROJECT AVION (AVNOM) A380

62
PROJECTION (Définition)

DEFINITION NOTATION

➢Sélection des ATTRIBUTS Project R (ATT1,…ATTi)


explicitement référencés dans la
liste cible (A) avec sélection des
valeurs associées en éliminant les
duplicats
(le résultat est un ensemble!)

63
PROJECTION (Exemple)

➢Quelles sont les villes de départ des vols de la compagnie ?

➢RES = PROJECT VOL (VD)

➢Note : les duplicats sont éliminés

64
SELECTION (devinez )

AVION AV# AVNOM CAP LOC


1 A300 300 Paris
2 B727 250 Paris
3 B747 350 Paris
4 B747 350 Toulouse
5 A380 380 Toulouse

A2 = Select Avion (AVNOM= ‘B747’)

65
SELECTION (Définition)

Notation
➢« SELECT R (condition booléenne F) »
➢Notation graphique

➢Définition : ensemble des n-uplets (tuples) de R qui vérifient


la condition F :
avec r vérifiant la condition F}

66
SELECTION (Exemple)

➢Quels sont les noms des avions localisés à Nice ?

A1 = SELECT AVION (LOC = ‘ NICE’)


RES = Project A1 (AVNOM)

➢Note : Peut s’écrire sans les relations temporaires :


RES = Project (SELECT AVION(LOC = ‘NICE’) (AVNOM))

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 ?

➢PV = JOIN PILOTE (PL#= PL#) VOL


➢PV1 = SELECT PV (VD = « Nice »)
➢RES = PROJECT PV1 ( PLNOM)

70
Division (Devinez)

Division: R1/R2
Dividende Diviseur

71
DIVISION (Définition)

➢DEFINITION

➢Dividende BINAIRE et Diviseur UNAIRE (« tous les ») pour simplifier au départ


➢Cas particulier d’un produit cartésien : « Complémentaire du diviseur dans le dividende tel
que le produit cartésien avec le diviseur soit inclus dans le dividende »

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

➢Vue simple des données – tables


(pouvant être non naturelle)
➢Langage de requête non procédural
« SAT » (SET at a TIME)
L’opération fondamentale – JOINTURE

PRE REQUIS NEUTRE ET FORMEL au standard SQL2

74
Apports principaux des BD Relationnelles
à la communauté informatique : propriétés TIPS

T « Transactions » (avec propriétés ACID)

I Interface non procédurale (Algèbre de Codd, SQL)

P Persistance (Mémoire paginée)

S Structuration (Schéma)
75
Exercice :

➢Donnez une interprétation en langue naturelle de la JOINTURE


(un JOIN correspond à un VERBE…)

Exemples :
Traitez dans le langage algébrique de CODD les deux requêtes suivantes :

➢Quels sont les noms des pilotes qui conduisent un A300?


➢Quels sont les noms des pilotes qui habitent dans la ville de localisation d’un
A300?

➢Montrez comment l’interprétation en langue naturelle permettrait d’avoir un


contrôle sémantique sur les requêtes de JOINTURE.

76
Exercices :

Répondez aux questions suivantes dans l’algèbre de Codd


Q1 : Quels sont les noms des avions qui sont en service au départ de Nice ?

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

➢ G. Gardarin « Bases de Données » Eyrolles


Version gratuite sur georges.gardarin.free.fr
➢ S. Miranda « L’Art des Bases de données » (3 Tomes), EYROLLES
➢ S. Miranda « Bases de données : Architectures, modèles relationnels et objets, SQL3 et
ODMG », DUNOD, 2002

78
Annexe : Résumé Théorème de Codd

79
Dr Edgar « Ted » CODD (1923- 2003)
incompris des informaticiens de son temps mais …

➢TURING AWARD en 1981

➢Modèle (relationnel ) de CODD pour les bases


de données (stucturées)
➢Théorème de CODD sur l’interrogation d’une
base de données

➢ 19 Août 1968 , « Derivability, Redundancy, and


Consistency of Relations Stored in Large Data Banks »,
IBM Research Report RJ599.
➢1970 : « A Relational Model of Data for
Large Shared Data Banks" CACM 13, No.
6, June 1970 pp 377-387

➢Note “B.C.” en informatique de gestion des


DATA c’est “Before Codd” ☺ Ted CODD à Sophia Antipolis, 1986
(avec Gilles Taladoire et Serge Miranda)
80
« Modèle de CODD »

➢Représentation SIMPLE des Données : la « TABLE de VALEURS »


➢Toutes les DATA sont représentées dans des « TABLES » (relations!)

PILOTE PILNO PILNOM ADR

100 Serge Nice


101 John Paris
102 Pierre Toulouse
81
Modèle de CODD : « RELATION », « ALGEBRE
RELATIONNELLE » et « FONCTIONS »

➢Concept mathématique sous jacent : la RELATION avec une double définition


➢ENSEMBLE : « sous ensemble du produit cartésien de N Domaines »
➢ Ex : PILOTE ⊆PLNOxPILNOMx VILLE
➢PREDICAT à N variables
➢ EX :PILOTE (PL#, PLNOM, ADR)

82
Modèle de données relationnel de CODD
(relational DATA Model)

➢Double Modèle formel : théorie des ensembles & des prédicats


➢Représentation simple des données :
TABLES de VALEURS (paradigme VALEUR)

➢INTERFACES non-procédurales (déclaratives) POUR NON INFORMATICIENS :


« NO PROGRAMMING »

83
La DISRUPTION/disruption de TED CODD !

1) Pour la manipulation des données : « ALGEBRE DES RELATIONS »

➢DEUX Operateurs binaires dérivés du PRODUIT CARTESIEN (qui ne veut rien dire..) :
JOIN (quantificateur existentiel), DIVISION (quantificateur universel)

➢DEUX opérateurs unaires: SELECTION et PROJECTION (en plus des 3 operateurs


ensemblistes UNION, INTER,DIFF)

➢Jeu d opérateurs FERME, COMPLET et ORTHOGONAL pour extraire n importe quelle


information d une BD structurée ! Et un théorème ☺

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 »

➢Calcul relationnel (langage ALPHA de Codd) : « requête déclarative » en calcul


des prédicats (logique du 1ier Ordre)

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’}

➢Algèbre Relationnelle : « requête impérative »


V1 := JOIN Pilote (PL#= PL#) VOL
V2 := SELECT V1 (VD= ‘NICE’)
RES := PROJECT V2 (PL#, PLNOM)

85
Conséquences du Théorème de Codd

➢➔ SEQUENCE D OPERATEURS DE L ALGEBRE POUR CONSTRUIRE LA REQUETE


… « INTELLIGIBLES PAR L’ORDINATEUR »
➔ OPTIMISEUR de requêtes
➢➔ SUCCES du STANDARD SQL (Structured Query Language) des BD
structurées depuis 50 ans et …du BIG DATA *! < Version 8 du standard>
EX :
SELECT PL#, PLNOM
From Pilote, Vol
Where Pilote.pl#=vol.PL# and VD= ‘Nice’;

*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

2) Pour la structuration des données (des relations en 3NF) :


les « liens N:1 » (fonctionnels)

➢1 seule loi: La « FONCTION » mathématique (functional dependency)

A➔ B ( ➔ avec lien N:1, A déterminant et B déterminé)


< Identité, associative, augmentation déterminant>

87
Compromis en Informatique d’un modèle formel
(complexe) ! (3 leçons de CODD)

➢Implantation facile d’un noyau minimaliste SIMPLE


➢modèle théorique réduit au maximum (MINI MAX)
➢TEACHABILITY

➢➔ Succès Industriel du Modèle de Codd : SQL


« Un article de recherche d’IBM San Jose de 10 pages du 19/8/1968 est devenu un
marché de 10 Milliards de dollars 50 ans plus tard avec une croissance de 20%
jusqu’en 2030 »

➢➔ 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

➢ Le Modèle relationnel de CODD


➢ Structures de données relationnelles (et paradigme VALEUR)
➢ Règles d’intégrité
➢ Operateurs de manipulation (l’Algèbre de Codd)

➢ ANNEXE : Résumé des apports de Codd à l’informatique


8
9

Vous aimerez peut-être aussi