Vous êtes sur la page 1sur 31

Formation Gestion des donnes scientifiques : stockage et consultation en utilisant des bases de donnes 24 au 27 /06/08

Introduction aux bases de donnes relationnelles


Christine Tranchant-Dubreuil UMR DIA-PC christine.tranchant@ird.fr

Introduction

Base de donnes : ensemble structur et organis permettant le stockage de grandes quantits dinformations afin d'en faciliter l'exploitation (ajout, mise jour, recherche de donnes). Systme de Gestion de Base de Donnes (SGBD) : ensemble de logiciels systmes permettant aux utilisateurs d'insrer, de modifier, et de rechercher efficacement des donnes spcifiques dans une grande masse d'informations (pouvant atteindre plusieurs milliards d'octets) partage par de multiples utilisateurs. Un SGBD est caractrise par un modle de description des donnes.

Utilisateurs

- Mises jour de la BD - Interrogations - Administration - Gestion des fichiers - Gestion de bases de donnes SGBD BD

SGBD : principaux objectifs

Indpendance physique : la faon dont les donnes sont dfinies doit tre indpendante des structures de stockage utilises Indpendance logique : un mme ensemble de donnes peut tre vu diffremment par des utilisateurs diffrents. Toutes ces visions personnelles des donnes doivent tre intgres dans une vision globale. Non redondance dinformation : afin dviter les problmes lors des mises jour, chaque donne ne doit tre prsente quune seule fois dans la base Partage des donnes : interrogations et modifications en mme temps dans un contexte multi-utilisateurs Scurit et reprise sur panne

SGBD : niveau de description des donnes


Niveau interne ou physique (le plus bas) : dfinit comment sont stockes physiquement les donnes Niveau logique ou conceptuel : dcrit par un schma conceptuel indique quelles sont les donnes stockes et quelles sont leurs relations indpendamment de limplantation physique Niveau externe ou vue : propre chaque utilisateur dcrit par un ou plusieurs schmas externes - permet une perception de tout ou partie de la base par un groupe donn dutilisateurs, indpendamment des autres

Quelques SGBD connus et utiliss

ACCESS : plate-forme Windows, mono-poste, licence commerciale SQL SERVER : plate-forme Windows, mode client/serveur, licence commerciale ORACLE : plate-formes commerciale SYBASE commerciale POSTGRESQL : plate-formes Windows et Linux, mode client/serveur, licence libre MYSQL : plate-formes Windows et Linux, mode client/serveur, licence libre : plate-formes Windows et Linux, mode client/serveur, licence Windows et Linux, mode client/serveur, licence

Comparatif de SGBD : http://fadace.developpez.com/sgbdcmp/

Architecture client/serveur

Client

rponse requte

Serveur

Client

Le client met une requte vers le serveur grce son adresse IP et le port, qui dsigne un service particulier du serveur Le serveur reoit la demande et rpond l'aide de l'adresse de la machine cliente et son port

Modle relationnel : quelques dates


1970 Papier fondateur de CODD sur la thorie des relations, fondement de la thorie des bases de donnes relationnelles

1980 Apparition des SGBDr sur le march (Oracle, Ingres,Informix, Sybase) 1987 Standardisation du langage SQL (Structured Query Langage), qui tend lalgbre relationnelle Objectifs du modle relationnel proposer des schmas de donnes faciles utiliser ; amliorer lindpendance logique et physique; mettre la disposition des utilisateurs des langages de haut niveau ; optimiser les accs la base de donnes ; amliorer lintgrit et la confidentialit ; fournir une approche mthodologique dans la construction des schmas. Donnes organises sous forme de tables deux dimensions et manipules par des oprateurs de lalgbre relationnelle ; Etat cohrent de la base dfini par un ensemble de contraintes dintgrit.

Schema relationnel

Relation Equipe(Code, Nom)


Code DIV DYN GEN Nom DIVA DYNADIV GENOCA

Proprit (attribut, colonne, champ) et type

- Indivisibilit : les donnes ne sont pas dcomposables - Domaine unique : les attributs ne peuvent prendre nimporte quelle valeur (intervalle, type de donnes) - Ordre : lordre des attributs na pas dimportance 3 proprits

Schema relationnel

Relation Equipe(Code, Nom)


Code DIV DYN GEN Nom DIVA DYNADIV GENOCA

Proprit (attribut, colonne, champ) et type Tuple (n-uplet, ligne, enregistrement, record)

- Ordre des tuples sans dimportance - Unicit des tuples : il ne peut y avoir de tuples identiques => identifiant (ou cl) : un ou plusieurs attributs permettent didentifier un enregistrement de la table

--

2 proprits

Schema relationnel

Equipe (Code, Nom)

Code Cl primaire
Proprit Code

Nom DIVA DYNADIV GENOCA

DIV DYN GEN

Cl trangre (cl primaire provenant dune autre table)

Nom Tremblay Bouchard Girard

Prnom Joseph Marie Johanne

DateNaissa nce 1950-03-12 1966-08-23 1943-06-30

Code DIV DYN GEN

PERSONNE(Nom, Prenom, DateNaissance, #Code) Avec Personne (Code) Equipe (Code)

Schema relationnel : contrainte de rfrence

Contrainte dintgrit rfrentielle : toute valeur dune cl trangre est gale la valeur nulle ou la valeur de la cl primaire laquelle la cl trangre se rfre Valeur nulle valeur conventionnelle introduite dans une relation pour reprsenter une information inconnue ou inapplicable tout attribut peut prendre une valeur nulle except les attributs de la cl primaire (contrainte dentit) Contraintes de domaine : contrainte d'intgrit qui impose qu'une colonne d'une relation doit comporter des valeurs vrifiant une assertion logique

Algbre relationnelle : dfinitions

Ensemble doprateurs qui sappliquent aux relations Lalgbre relationnelle permet de faire des recherches dans les relations Rsultat : nouvelle relation qui peut son tour tre manipule Oprations de base: slection (not ), projection () Oprations ensemblistes: produit cartsien (x), jointures (|X|), union (), intersection (), diffrence (), division (/)

Algbre relationnelle : oprateur de base


SELECTION
slection des nuplets satisfaisant un certain prdicat (Numro5)Personne

Numro 5 1 12 3

Nom Durand Germain Dupont Germain

Prnom Caroline Stan Lisa Rose-Marie

Numro 5 12

Nom Durand Dupont

Prnom Caroline Lisa

Algbre relationnelle : oprateur de base


PROJECTION
Elimination de certains attributs dune relation (Nom)Personne Numro 5 1 12 3 Nom Durand Germain Dupont Germain Nom Durand Germain Dupont Germain Prnom Caroline Stan Lisa Rose-Marie

Algbre relationnelle : oprateurs ensemblistes

Soient R et S deux relations de mme schma : Union: T = R S Intersection: T = RS Diffrence: T=R-S Produit cartsien T=RxS diffrence (), division (/)

Algbre relationnelle : oprateurs ensemblistes


Union
syntaxe : R S smantique : runit dans une mme relation les tuples de R et de S

R1 (A,B) A a b y B b b z R1 R2 A B A a b R2 (A,B) A B u y v z y u B b b z v

Algbre relationnelle : oprateurs ensemblistes


Intersection
syntaxe : R S smantique : slectionne les tuples qui sont la fois dans R et S

R1 (A,B) A a b y B b b z R1 R2 A B A y B z

R2 (A,B) A B u y v z

Algbre relationnelle : oprateurs ensemblistes


Difference syntaxe : R - S smantique : slectionne les tuples de R qui ne sont pas dans S

R1 (A,B) A a b y B b b z R1 R2 A B A a b R2 (A,B) A B u y v z B b b

Algbre relationnelle : oprateurs ensemblistes


Produit cartsien x
but: construire toutes les combinaisons de tuples de deux relations syntaxe : R S Smantique : tuple de R est combin avec chaque tuple de S A a R (A,B) A a b c B b C b S (C,D,E) C c b a D d a a m tuples E e b c a a b b b c c c B b b b c c c b b C c c c b b b a a D d d d a a a a a E e e e b b b c c

RxS

n tuples

b a a c n x m tuples

Algbre relationnelle : oprateurs ensemblistes


Division
relation compose des n-uplets tels que le produit cartsien avec le diviseur soit un sous-ensemble de la relation dividende

Participer Athlete Dupont Durand Dupont Martin Dupont Martin Nom 200 m 400 m 400 m 110 m H 110 m H 200 m

Epreuve Nom 200 m 400 m 110 m H

Participer % Epreuve Athlete Dupont

Algbre relationnelle
Jointure naturelle
but: crer toutes les combinaisons significatives entre tuples de deux relations significatives = portent la mme valeur pour les attributs de mme domaine ! prcondition: les deux relations ont au moins un attribut de mme domaine Produit cartsien suivi dune slection R (A,B) A a b c B b C b S (B,C,D) B b a d C c a a D D b c A a c B B B C c c D D d

Langage SQL
langage normalis de requte non procdural
DDL : DATA DEFINITION LANGAGE
CREATE DROP ALTER

DML : DATA MANIPULATION LANGAGE


INSERT DELETE UPDATE SELECT

DCL : DATA CONTROL LANGAGE


GRANT REVOKE

Langage SQL : DDL


CREATE TABLE
CREATE TABLE table ( col1 type 1 [NOT NULL] , col2 type2 [NOT NULL] )

Contraintes : CONSTRAINT nom_contrainte PRIMARY KEY (liste attributs cl primaire) | NOT NULL immdiatement aprs la dclaration de lattribut | CHECK (condition) aprs la dclaration de lattribut | UNIQUE aprs la dclaration de lattribut | FOREIGN KEY (cl trangre) REFERENCES nom_table (liste-colonne)

Langage SQL : DDL

CREATE TABLE Enseignant ( Enseignant_ID integer, Departement_ID integer NOT NULL, Nom varchar(25) NOT NULL, Prenom varchar(25) NOT NULL, Grade varchar(25) CONSTRAINT CK_Enseignant_Grade CHECK (Grade IN ('Vacataire', 'Moniteur','ATER', 'MCF), CONSTRAINT PK_Enseignant PRIMARY KEY (Enseignant_ID), CONSTRAINT "FK_Enseignant_Departement_ID" FOREIGN KEY (Departement_ID) REFERENCES Departement (Departement_ID) ON UPDATE CASCADE ON DELETE CASCADE );

Contrainte de domaine Dfinition de la cl primaire Dfinition de la cl trangre

Langage SQL : DDL


ALTER TABLE
ALTER TABLE table ADD (col1 type1, col2 type2 ) | MODIFY (col1 type1, col2 type2 ) | DROP PRIMARY KEY | DROP CONSTRAINT nom_contrainte DROP TABLE table CREATE [UNIQUE] INDEX nom_index ON table (col1,col )

Langage SQL : DML


SELECT
SELECT [DISTINCT] * FROM table_1 [synonyme_1], table_2 [synonyme_1], [WHERE prdicat_1 AND [ou OR] prdicat_2 ] SELECT [DISTINCT] exp_1 [AS nom_1], exp_2 ... FROM table_1 [synonyme_1], table_2 [synonyme_1], [WHERE prdicat_1 AND [ou OR] prdicat_2 ]

Langage SQL : DML


SELECT
SELECT Nom, Prnom FROM Etudiant WHERE Ville = Paris ; SELECT Nom, Prnom FROM Etudiant WHERE Ville = Paris AND Nom LIKE Du%; SELECT Nom, Prnom FROM Etudiant WHERE Fax IS NULL; SELECT Intitul, (NbSeances*3) AS NbHeures FROM Cours WHERE (NbSeances*3) BETWEEN 24 AND 27 ;

SELECT Nom, Prnom FROM Enseignant WHERE Dpartement_ID IN (INFO, MATH , ECO)

Langage SQL : DML


PREDICAT DU WHERE

exp1 exp1 exp1 exp1 exp1 exp1 exp1 exp1 exp1 exp1 exp1 exp1

= exp2 != exp2 > exp2 < exp2 <= exp2 >= exp2 BETWEEN exp2 AND exp3 LIKE exp2 IN (exp2, exp3, ) NOT IN (exp2, exp3, ) IS NULL IS NOT NULL

SELECT Intitul, FROM Cours WHERE NbSeances <= ( SELECT AVG(NbSeances) FROM Cours);

Langage SQL : DML


Fonctions dagrgation
Un groupe est un sous-ensemble de lignes dune table ayant la mme valeur pour un attribut. On peut effectuer des calculs statistiques COUNT, MIN, MAX, AVG, SUM, ORDER BY, GROUP BY

SELECT COUNT(nom) FROM Etudiant ; SELECT AVG(Capacit), SUM(Capacit) FROM Salle ;

SELECT Dpartement_ID, Nom, Prnom FROM Enseignant ORDER BY Dpartement_ID DESC, Nom, Prnom ; SELECT Dpartement_ID, COUNT(Nom) FROM Enseignant GROUP BY Dpartement_ID;

Langage SQL : DDL


Jointure
SELECT Nom, Prnom, Nom_Dpartement FROM Enseignant E, Dpartement D WHERE E.Dpartement_ID = D.Dpartement_ID ; Jointure externe : sous Oracle SELECT Nom, Prnom, Nom_Dpartement FROM Enseignant E, Dpartement D WHERE E.Dpartement_ID = D.Dpartement_ID (+);

Sil existe des enseignants attach aucun dpartement, la valeur de Dpartement_ID sera NULL. En SQL2 : [RIGHT | LEFT | FULL] OUTER JOIN

Langage SQL : DML


Insertion INSERT INTO table(col1, col2, coln) VALUES (val1, val2, valn)

Suppression DELETE FROM table WHERE prdicat

Mise jour UPDATE table SET col1 = exp1, col2 = exp2 WHERE prdicat