You are on page 1of 53

14, Cooprative El Bahia Hai Es-Selam St Hubert Oran

Tl. : 041 . 346 . 407 0550 . 572 . 127 0556 . 059 . 602
Tl. & Fax : 041 . 346 . 544 / Site web : www.insim-oran.com

Ingnieurs Rseaux et Scurit

Architecture et conception des bases de donnes


relationnelles

Animateur : Amin SEBANE


Programme
- Architecture et concepts des bases de donnes

- Les systmes de gestion de bases de donnes

- Le modle entit/Associations

- Analyse et conception de schmas conceptuels

- Conception physique de schma conceptuels

- Normalisation
Plan du Cours
Objectif 1
1- Introduction au BDD
2- Principe des BDD
3- Concept et Architecture des BDD
4- SGBD
5- Fonctionnalits des SGBD

Objectif 2
1-BDD Relationnelles
2-Oprateurs Relationnels
3-Modele des Donnes
4- Entit / Association
Plan du Cours
Objectif 3
1- Normalisation
1-1- 1ere FN
1-2- 2eme FN
1-3- 3eme FN
2- Dpendances Fonctionnelle, et proprits
Rflexion , Augmentation, Transitivit, Pseudo-Transitivit,
union , Dcomposition

3- Dmarche dune conception

Objectif 4 1-Introduction au langage SQL


1-1-Cration, modification et
mise ajour des Tables
1-2 ajoute des enregistrement
1-3 Slection, Modification et
suppression des Donnes
Objectif 5
1-Suite SQL (organisation datelier)
Introduction au BDD
Les ordinateurs sont dsormais trs largement utilises dans presque toutes les
activits humaines.

Une de leur principale utilisation est la manipulation de linformation,

ce qui signifie que:


Dans certains cas, tout simplement que lon stocke des donnes
pour les reprendre plus tard,

Et dans dautres cas, que cela sert de cadre pour manipuler le cycle
de vie de processus financiers ou industriels.

Une grande quantit de donnes stocke dans un ordinateur est appele base
de donnes.

Le logiciel qui permet la manipulation de ces donnes est appel systme de


gestion de bases de donnes (SGBD).
Principe des BDD

Les systmes de bases de donnes peuvent tre considres comme des


mdiateurs entre les utilisateurs qui veulent utiliser des donnes et les outils
physiques qui contiennent les donnes.

Les premires manipulations sur les bases de donnes taient fondes sur lusage
explicite de systmes de fichiers et les logiciels dapplication taient construits de
faon ad hoc.

Petit petit, des principes et des mcanismes ont t dveloppes et dtachrent


les utilisateurs des bases de donnes de limplmentation physique.
Concept des BDD

A la fin des annes 1960, la premire tape importante a t le


dveloppement de larchitecture 3 niveaux.

Cette architecture sparait les fonctionnalits des bases de donne en


niveaux :
Physiques : Stockage physique des donnes
Logique : Vue commune (intermdiaire)
Externe : Vues des utilisateurs
Architecture des BDD
Architecture client-serveur Architecture trois couches ( threetier)

Architecture distribue Entrept de donnes


Systme de Gestion des Bases de
Donnes (SGBD)
SGBD: Logiciel responsable pour la gestion de ces donnes.

Ensemble de programmes qui permettent des utilisateurs de crer et


maintenir une base de donnes.

SGBD commerciaux les plus connus sont


Oracle, Sybase, Ingres, Informix et DB2, Sqlserver
Fonctionnalits des SGBD
Les SGBD incluent de nombreuses fonctionnalits, allant des
fonctionnalits des plus physiques aux plus abstraites. Les fonctions
principales dun SGBD sont les suivantes :

Manipulation de la mmoire secondaire :


Le but dun SGBD est la manipulation dune grande
quantit de donnes partages, une des taches essentielle de ces
systmes est la manipulation des mmoires secondaires, ceci passe par
de nombreuses techniques telles que lindexation, le regroupement et
lallocation de ressources.

Persistance : Les donnes doivent survivre la fin dune application


particulire sur la base de donnes pour quelles puissent tre
rutilises plus tard.

Contrle de concurrence : Les donnes sont partages. Le SGBD


doit permettre laccs simultan aux informations partages dans un
environnement harmonieux qui contrle les conflits et qui fournit un
tat cohrent de la base de donnes chacun des utilisateurs.
Fonctionnalits des SGBD
Protection des donnes : La base de donnes doit tre protge contre les
erreurs humaines, contres les erreurs de programmes, et contre les dfaillance de
lordinateur.

Des mcanismes de vrification de lintgrit portent leur attention sur la


prvention des incohrences entre les donnes stockes (par exemple pour les
m.a.j.). La reprise sur panne des sauvegardes prmunissent contre les dfaillances
matrielles en conservant des instantans dtats antrieurs de la base de donnes
et des journaux de bords des transaction.

Interface homme-machine : Cette interface concerne une grande varit de


fonctions tournant autour de la reprsentation logique des donnes.

Plus concrtement, cette interface concerne des LDD et LMD. Les outils graphiques
pour linstallation et la conception de bases de donnes sont trs populaires.
Fonctionnalits des SGBD

Distribution : Dans beaucoup dapplications, les informations rsident dans


des lieux distincts, reparties en plusieurs bases de donnes. Ces bases de
donnes peuvent tre accessibles par diffrents systmes (interoperabilite) et
elles peuvent tre fondes sur des models distincts (htrognit). Il est
donc important de donner un accs transparent a des systmes multiples.

Compilation et optimisation : Une tache importante est la traduction


des requets de niveaux logiques et externes en programmes excutables.
Cela ncessite en gnral une ou plusieurs tapes de compilation et une
optimisation intensive de faon a ce que les performances ne soient pas
dgrades par la commodit dinterfaces utilisateurs plus avenantes.
Les Bdd relationnelle Dfinitions

Dfinition (Domaine) : Ensemble de valeurs.

Dfinition (Relation) : Sous-ensemble du produit cartsien d'une liste de


domaines caractris par un nom. une relation n'est ni plus ni moins qu'une table

Dfinition (Attribut) : Colonne d'une relation caractrise par un nom.

Dfinition (Schma de relation) : Nom de la relation, suivi de la liste des


attributs avec leurs domaines.

Dfinition (Base de donnes relationnelles) : Base de donnes dont le


schma est un ensemble de schmas de relations et dont les occurrences sont les
tuples de ces relations.
Les Bdd relationnelle
De faon informelle, on peut dfinir le modle relationnel de la manire suivante :

Les donnes sont organises sous forme de tables deux dimensions,


encore appeles relations et chaque ligne n-uplet ou tuple.

les donnes sont manipules par des oprateurs de l'algbre relationnelle,

l'tat cohrent de la base est dfini par un ensemble de contraintes


d'intgrit.

Au modle relationnel est associe la thorie de la normalisation des


relations qui permet de se dbarrasser des
incohrences au moment de la conception d'une base de donnes.

Movie[title, year, director, actor]


Oprateurs relationnels
Dfinition (Projection) : Opration qui consiste supprimer des attributs d'une
relation et liminer les tuples en double apparaissant dans la nouvelle relation.

Dfinition (Restriction) : Opration qui consiste supprimer les tuples d'une


relation ne satisfaisant pas la condition prcise.

Dfinition (Jointure) : Opration qui consiste faire le produit cartsien de


deux relations, puis supprimer les tuples ne satisfaisant pas une condition portant
sur un attribut de la premire relation et sur un attribut de la seconde.

Dfinition (Union) : Opration portant sur deux relations ayant le mme schma
et construisant une troisime relation constitue des tuples appartenant chaque
relation. Les tuples en double sont limins.

Dfinition (Diffrence relationnelle) : Opration portant sur deux relations


ayant le mme schma et construisant une troisime relation dont les tuples sont
constitus de ceux ne se trouvant que dans une seule relation.

Dfinition (Intersection) : Opration portant sur deux relations ayant le mme


schma et construisant une troisime relation dont les tuples sont constitus de
ceux appartenant aux deux relations.
Model des Donnes

Tout SGBD est conu autour dun model de donnes bien dfini. Comme dit
prcdemment, il est constitue dun LDD et dun LMD. Plus prcisment, il sagit de
la combinaisons de 3 lments :

Une structure, qui correspond `a lorganisation logique des donnes, la forme sous
laquelle les utilisateurs vont les percevoir ou les reprsenter.

Des contraintes d'intgrit, que lon peut dfinir sur les donnes, afin den assurer
l'intgrit et la cohrence avec le monde rel et les besoins des applications.

Des langage de manipulation des donnes, pour les mises a jour et les
interrogations.Voici quelques exemples de models de donnes :
Model des Donnes
le model rseau
Structure : graphe oriente, les nuds sont des enregistrements

le model hirarchique
Structure : arborescente (forets)

le model Objet
Structure : logique objet, soit des classes, des objets, des attributs et des mthodes.

le model Entit/Association
Structure : Entits (avec des attributs) et associations entre des entits.
Contraintes d'intgrit : identifiants, cardinalits sur les associations

models semi-structures
qui sadaptent a la nature htrogne des donnes,
Principalement trouves sur le Web. Le principal exemple est XML.
Entit / Association
sagit dun modle graphique base de deux objets : les entits et les associations.

Les reprsentations graphiques

Graphiquement, une entit est reprsente par un rectangle dot de deux


compartiments :
Un premier compartiment pour le titre : Personne , Unit
Un second compartiment pour les proprits de lentit, c'est--dire toutes
les informations pouvant lui tre associes.

Une association est reprsente par un rectangle aux bords arrondis. Une
association peut possder un titre ( affect ) ainsi que des proprits.
Entit / Association
Cardinalit
Types de cardinalit :
0,1
1 ,1
0, N
1,N
Premier nombre de la cardinalit : nombre minimal dassociations possibles (min)

Second nombre de la cardinalit : nombre maximal dassociations possibles (max)


La normalisation
La thorie de la normalisation permet de dfinir une mthode de conception de
"bonnes" tables, c'est--dire sans redondances et sans perte d'information

Pourquoi la normalisation ?

pour liminer les redondances


pour mieux comprendre les relations smantiques entre les donnes
pour viter les incohrences de mise jour pour viter, autant que possible, les
valeurs nulles
La normalisation
La normalisation
Formes normales

Dfinition (Premire forme normale) :


Une relation est en premire forme normale si et seulement si tout
-Procde une cl primaire
-attribut contient une valeur atomique.

Dfinition (Deuxime forme normale) :


Une relation est en deuxime forme normale si et seulement si :
-elle est en premire forme normale
-tous ses attributs non cls dpendent
compltement de la cl primaire.

Dfinition (Troisime forme normale) :


Une relation est en troisime forme normale si et seulement si :
-elle est en deuxime forme normale.
-aucune dpendance transitive entre les attributs non
cls et la cl primaire
La normalisation
Formes normales
La normalisation
Formes normales
Dfinition (Premire forme normale) :
Une relation est en premire forme normale si et seulement si tout
-Procde une cl primaire
-attribut contient une valeur atomique.
La normalisation
Formes normales

Dfinition (Deuxime forme normale) :


Une relation est en deuxime forme normale si et seulement si :
-elle est en premire forme normale
-tous ses attributs non cls dpendent
compltement de la cl primaire.
La normalisation
Formes normales
Dfinition (Troisime forme normale) :
Une relation est en troisime forme normale si et seulement si :
-elle est en deuxime forme normale.
-aucune dpendance transitive entre les attributs
non cls et la cl primaire
La normalisation
Formes normales
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
La normalisation Dpendance fonctionnelle
Exercice
Il sagit de modliser les donnes correspondant au dictionnaire des donnes et au
dictionnaire des rgles prsentes ci-dessous : Domaine : affectation de personnes de
sites.
7.1. DICTIONNAIRE DES DONNEES
Nom de personne
Prnom de personne
Date dentre dans lorganisme (pas dans le site)
Statut : permanent ou non permanent
Quotit de travail
Nom du suprieur hirarchique (n+1)
Prnom du suprieur hirarchique
Nom du site daffectation
Adresse du site
Surface du site
Pays du site
7.2. DICTIONNAIRE DES REGLES
Une personne a aucun ou un suprieur hirarchique
Une personne est le suprieur hirarchique daucune, dune ou de plusieurs personne
Une personne est affecte aucun site, un site ou plusieurs sites
Un site est entirement situ dans un pays
Exercice
ENONCE
Il est demand :
1) De construire le modle Entits / Associations
2) Et de proposer un Schmas Relationnel

5) De gnrer le script SQL de gnration des tables avec les options : ranger
les tables par FK, dfinir cl primaire, dfinir les prfrences FK autorises
Exercice
Ce modle prvoit dintroduire une date daffectation et de conserver lhistorique
de celles-ci. Une personne pouvant tre affecte successivement plusieurs fois la
mme unit, date constitue une entit participant lassociation affect.
Exercice
SQL
Lobjectif de SQL est dimplmenter les oprateurs relationnels dans un langage
proche du langage naturel.

SQL = Structured Query Language

SQL sutilise soit en mode interactif, soit intgr dans un programme procdural.
Le langage SQL se divise en trois ensembles :

Le langage de description de schmas (LDD)

Le langage de manipulation des donnes (mise jour et accs aux donnes)

Le langage de contrle des donnes


SQL

CREATION DE TABLE :

CREATE TABLE nom de table (nom de colonne1 type, nom de colonne2 type, ,
nom de colonneN type)
Des contraintes peuvent tre associes la table

Valeur obligatoire : colonne NOT NULL


Clef primaire : PRIMARY KEY

Unicit : UNIQUE (colonne1, )

Clef trangre et intgrit rfrentielle : FOREIGN KEY REFERENCES


nom de table (nom de colonne)
SQL
CREATE TABLE Personne
(
idPersonne INTEGER NOT NULL,

nomPersonne VARCHAR(255) NULL,

prenomPersonne VARCHAR(255)NULL,

dateNaissance DATE NULL

quotitePersonne INTEGER NULL CHECK (quotitePersonne


IN(50,60,70,80,90,100)), Personne_idEtablissement INTEGER ,

PRIMARY KEY(idPersonne),

FOREIGN KEY(Personne_idEtablissement) REFERENCES


Etablissement(idEtablissement)
)
SQL

Ajouter une colonne

ALTER TABLE nom_de_table ADD COLUMN nom_colonne type ;

Supprimer une colonne

ALTER TABLE nom_de_table DROP COLUMN nom_colonne ;

SUPPRESSION DE TABLE

DROP TABLE nom_de_table

ALTER TABLE Personne ADD COLUMN indice INTEGER


ALTER TABLE Personne DROP COLUMN indice
SQL
La mise jour des donnes
INSERTION DE LIGNES

INSERT INTO nom de table (col1, col2, , coln) VALUES


(val11, val12, , val1n), (val21, val22, , val2n), (val31, val32, , val3n)

INSERT INTO personne


(nomPersonne,prenomPersonne,dateNaissancePersonne,quotitePersonne,idEtablisse
ment) VALUES ('JEANOT','FREDERIQUE','1970-10-20',100,2)

MODIFICATION
UPDATE nom_de_table SET col = val

UPDATE Personne SET indicePersonne = 1000 WHERE quotitePersonne >=80

SUPPRESSION DE LIGNES
DELETE FROM nom_table WHERE Condition
SQL
La consultation des donnes

FORME CANONIQUE DES REQUETES SELECT

SELECT * ou Liste de colonnes


FROM nom de table
WHERE Condition
[GROUP BY ] ordre des groupes
[ORDER BY ] liste de colonnes

SELECT * FROM personne ORDER BY quotitePersonne DESC;

SELECT *
FROM personne
WHERE
(dateNaissancePersonne <'1970-01-01)
AND
(quotitePersonne = 50 OR quotitePersonne = 100)
SQL
LIKE
Recherche par troncature (caractre %)

SELECT * FROM nom de table WHERE colonne LIKE valeur%

Afficher le nom des personnes dont le nom commence par la lettre D

SELECT * FROM `personne` WHERE nomPersonne LIKE 'D%'

Utilisation dAlias
Une colonne peut tre associe un alias :
SELECT col AS nouvelleCol

SELECT nomPersonne as NOM, prenomPersonne AS PRENOM


FROM personne
SQL
Les fonctions de synthse sont : SUM, COUNT, AVG, MIN, MAX

Exemple Compter le nombre de personnes travaillent temps partiel par quotits

SELECT quotitePersonne AS Quotite, COUNT(*) AS Effectifs FROM personne


GROUP BY quotitePersonne

Lunion
SELECT col1, col2 FROM Table1 UNION SELECT col1, col2 FROM Table2;

Exemple Afficher le nom des personnes prsentes dans la table personne ou


(inclusif) dans la table workers.

SELECT nomPersonne, prenomPersonne FROM personne


UNION
SELECT lastNameWorker, firstNameWorker FROM worker
SQL
Jointure naturelle
SELECT col1, col2 FROM Table1 INNER JOIN Table2 ON FK = PK

FK dsigne une clef trangre, PK une clef primaire.

Exemple Afficher le nom des personnes et le nom du site auquel elles sont
affectes.

SELECT nomPersonne, nomEtablissement FROM personne


INNER JOIN
etablissement ON Personne.idEtablissement = etablissement.idEtablissement

Autre syntaxe Lancienne syntaxe SQL est toujours utilisable

SELECT nomPersonne, nomEtablissement FROM personne, etablissement

WHERE personne.idEtablissement = etablissement.idEtablissement


SQL
Lintersection

SELECT nomPersonne, prenomPersonne FROM personne WHERE nomPersonne


IN (SELECT lastNameWorker FROM workers)

La diffrence

SELECT nomPersonne, prenomPersonne FROM personne WHERE nomPersonne


NOT IN (SELECT lastNameWorker FROM workers)

LES SOUS-REQUETES

SELECT nomPersonne FROM personne WHERE quotitePersonne < (SELECT


AVG(quotitePersonne) FROM personne)
Atelier SQL