Le langage de définition des données

publicité
Introduction
Langage de requêtes
Langage de Définition de Données
Langage de Manipulation de Données
Langages de manipulation formels
algèbre relationnelle
calcul relationnel (basé sur la logique des prédicats)
Langages de requêtes orientés utilisateur
Structured Query Language (SQL)
QUEry Language (QUEL)
Query By Example (QBE)
Lien avec les langages de programmation
immersion d'un langage de requêtes dans un langage de
programmation : approche Embedded SQL (Pascal, C, ...)
INT
2
Introduction
Origine
langage SEQUEL du prototype de SGBD relationnel
SYSTEM/R (74-76)
laboratoire de recherche IBM à San José
Normalisation ISO
norme SQL1 (1986, 1989)
norme SQL2 (1992)
nouvelle norme en préparation SQL3
Langage de requêtes des SGBD relationnels
ORACLE (Oracle Corporation - 1977)
INGRES (Ingres Technology - 1980)
DB2 (IBM - 1984)
MS SQLSERVER (Microsoft 1990)
SYBASE (Sybase Inc - 1984)
MySQL (1995)
Fonctionnalités :
définition et manipulation de données au format relationnel
contrôle des données
Le langage de manipulation
non procédural
emprunté à l'algèbre relationnelle et au calcul relationnel de
tuples
Puissance du langage de manipulation
Algèbre Relationnelle
+
Fonctions-Agrégats + Tri
Une requête SQL (sans fonctions et tri)
Suite d'opérations de l'algèbre relationnelle
3
Bases de Données
Introduction
4
SQL - 1
!
BD Exemple
V
R
P
B
C
L
Vins(num, cru, annee, degre)
Recoltes(nvin, nprod, quantite)
Producteurs(num, nom, prenom, region)
Buveurs(num, nom, prenom, ville)
Commandes(ncde, date, nb, nvin, qte)
Livraisons(ncde, no_ordre, qteLivree)
"
#
$%
!
Vins
Buveurs
num
cru
degré
annee
0,n
recoltes
BD Exemple
num
nom
prenom
ville
0,n
0,n
concerne
Passer
quantite
0,n
1,1
Producteurs
1,1
Commandes
num
nom
prenom
region
ncde
qté
date
0,n
Donner_lieu
Livraisons
(1,1)
No_ordre
qteLivrée
date
5
&
'
Définition des données
Définition des données
Numériques :
définition des schémas des relations
définition de vues relationnelles
définition de contraintes d'intégrité
définition de droits
validation d'un traitement
définition du placement et des index
(non normalisé => SGBD dépendant !!)
Entier : INTEGER, SMALLINT
Décimal : DECIMAL (m,n), NUMBER(m,n)
Réel flottant : FLOAT, REAL
Chaîne de caractères : CHAR (n), VARCHAR(n)
Temporel : DATE (dans la norme SQL2 !)
chaque SGBD possède d'autres domaines qui lui
sont propres
Valeur NULL : absence de valeur
7
Bases de Données
6
8
SQL - 2
(
)
Définition des données
)
Définition des données
règle qui définit la cohérence d'une donnée ou d'un ensemble
de données de la BD
Contraintes définies en SQL
non nullité des valeurs d'un attribut
unicité de la valeur d'un attribut ou d'un groupe d'attributs
valeur par défaut pour un attribut
contrainte de domaine
clé primaire (un attribut ou un groupe)
intégrité référentielle "minimale"
Création
CREATE TABLE Vins (
num Integer,
cru Char(20),
annee Integer)
Mise à jour
Ajout d'un attribut (norme SQL2 !)
ALTER TABLE Vins ADD COLUMN degre Integer
CREATE TABLE Vins (
num
integer PRIMARY KEY,
cru char (40) NOT NULL,
annee
integer
CONSTRAINT Cannee CHECK (annee between 1970 and 2010),
degre
number(4,2)
CONSTRAINT Cdegre CHECK (degre between 9.0 and 15.0))
Suppression (norme SQL2 !)
DROP TABLE Vins
9
! +"
*
10
#
Domaines limités
Clé facultative :
Doublons
Opérateur de projection différent (
Relation n’est plus un ensemble
DISTINCT)
11
Bases de Données
SQL - 3
Téléchargement