Bases de Données SQL - 1


INT
2

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, ...)
Introduction
3

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
Introduction
4

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)
Introduction
Bases de Données SQL - 2
5
!
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)
BD Exemple
V
R
P
B
C
L
6
"#$%!
0,n
1,1
(1,1)
0,n
1,1
0,n
0,n
0,n
Vins
num
cru
degré
annee
Producteurs
num
nom
prenom
region
recoltes
Livraisons
No_ordre
qteLivrée
date
concerne
Buveurs
num
nom
prenom
ville
Commandes
ncde
qté
date
Passer
Donner_lieu
quantite
BD Exemple
7
&
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 !!)
Définition des données
8
'
Numériques :
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
Définition des données
Bases de Données SQL - 3
9
()
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
Suppression (norme SQL2 !)
DROP TABLE Vins
Définition des données
10
*)
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"
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))
Définition des données
11
!+"#
Domaines limités
Clé facultative :
Doublons
Opérateur de projection différent (DISTINCT)
Relation n’est plus un ensemble
1 / 3 100%