Vous êtes sur la page 1sur 17

LES OBJECTIFS

Les objectifs principaux des SGDB sont regroupés comme suite :

 INDEPENDANCE LOGIQUE : le niveau logique peut être modifié sans être remis en cause par
le niveau physique
 INDEPENDANCE PHYSIQUE : le niveau physique peut être modifié sans être remis en cause
par le niveau logique
 MANIPULATION DES DONNEES PAR LES NON INFORMATICIEN : utilisation facile des
données par tous
 EFFICACITE DES ACCES AUX DONNEES : recherche des données de plus en plus rapide et
accès facile
 ADMINISTRATION CENTRALISE DES DONNEES : le SGBD doit permettre à l’administrateur de
pouvoir manipuler des données inséré des éléments vérifié des éléments de façon
centralisée
 NON DEDONDANCE DES DONNEES : eviter la repetion, la duplicationdes données
 PARGEBILITE DES DONNEES : le SGBD doit permettre l’accès simultané a la base de données
par plusieurs utilisateurs
 SECURITE ET INTEGRITE DES DONNEES : sont pris en charge automatiquement par le
système (gestion des droit d’accès selon les utilisateurs, données confidentielles, reglement
des conflits d’accès et respect des contraintes).
II) REGLES DE NORMALISATION D’UNE RELATION

1) PROBLEMATIQUE A TRAVERS UN EXEMPLE

Num_pro Quantité Num_four Adresse


101 300 901 Rue12
104 1000 902 Rue11
103 78 904 Rue9
112 250 901 Rue12

Cette relation présente les anomalies suivantes :


 Anomalie de modification : si l’on souhaite mettre à jour l’adresse d’un
fournisseur il faut le faire pour tous les tuples concernés.
 Anomalie d’insertion : pour ajouter un nouveau fournisseur il faut
obligatoirement fournir des valeurs pour Num_prod et quantité.
 Anomalie de suppression : la suppression du produit 104 fait perdre toutes les
informations concernant le fournisseur.

La théorie des dépendances fonctionnelle et la normalisation des relations est


destinées à mettre en évidence les problèmes que pose certaines relations au cours
de l’évolution de leur valeur. La normalisation de la relation permet d’éviter les
anomalies présentées plus haut et de minimiser l’espace de stockage par élimination
de redondances. Pour qu’une base de données soit correcte les relations qu’elles
contiennent doivent être normalisées

2) LES DIFFERENTES FORMES NORMALES


a) 1ere FN
Une relation est en 1FN si :
 Il existe un identifiant pour la relation
 Tout attribut contient une valeur atomique (tous les attributs sont simples et
mono values) c’est-à-dire que toutes les attributs sont élémentaire non
décomposable
b) 2eme FN
Une relation est en 2FN si :
 Elle est en 1FN
 Tout attribut qui ne fait pas partie d’une clé est pleinement dépendant de
toute clé de la relation
c) 3eme FN
Une relation est 3FN si :
 Elle est en 2FN
 Toute les propriétés sont en dépendances fonctionnelle élément directe de
l’identifiant c’est-à-dire aucune propriété ne doit être en dépendances
fonctionnelle transitive de l’identifiant

Exemple : soit la relation voiture (num_v, marque, type, puissance, couleur) avec les DF

type marque
Type puissance

num_v couleur

num_v type

Le type n’est pas clé et détermine la marque et la puissance alors la relation n’est pas en 3FN

d) 4eme FN ou BOYCE CODD FN (BCFN)


Une relation est en 4FN si et seulement si:
 Les seules DF qui sont du type clé détermine un attribut non clé
 Ou si pour un identifiant composé de plusieurs attributs, un de ces attributs
dépend directement d’une propriété qui n’est pas l’identifiant alors la 4FN
n’est pas respectée
 Ou si les clés candidates sont les seuls sources de dépendances
fonctionnelles
CHAPITRE III : L’ALGEBRE RELATIONNEL

INTRODUCTION

L’algèbre relationnel est une théorie qui se situe dans l’interdisciplinarité entre les
mathématiques et l’informatique. Selon cette théorie les informations sont classées dans les
relations : des matrices contenant un ensemble de n valeurs. Des opérations permettent à partir
d’une relation d’obtenir une autre relation ainsi que de combiner deux relations et obtenir une 3 e
relation. L’algèbre relationnel est le support mathématique cohérant sur lequel repose le modèle
relationnel. Il propose un ensemble d’opérations élémentaire formelles sur les relations dans le but
de créer de nouvelles relations. Ces opérations permettent de présenter des requêtes sur la base de
données dont le résultat s’exprime sous forme d’une relation (table) c’est ce formalisme qui est au
cœur du langage de requête SQL.

Les opérateurs de l’algèbre relationnel se divisent en deux grandes familles

 LES OPERATEURS UNAIRES : qui portent sur une unique relation en entrée
 LES OPERATEURS BINAIRES : qui portent sur deux relations en entrée

Les opérateurs unaires sont : LA PROJECTION, LA SELECTION, LE RENOMAGE.

Les opérateurs binaires sont : L’UNION LE PRODUIT CARTESIEN LA JOINTURE LA DIFFERENCE LA


DIVISION L’INSERTION

Les plus essentielles d’entre eux sont : la sélection, la projection, le produit cartésien, l’union, la
différence parce que leur composition permet de définir les autres
CHAPITRE IV : LE LANGAGE SQL

INTRODUCTION

Le langage SQL est utilisé pour interroger, mettre à jour et gérer les bases de données relationnelles.
Les SQL est un langage qu’on peut utiliser de manière interactive avec les SGBD, également avec les
interfaces graphiques, des outils de REPORTING ou c’est généralement le cas dans les langages de
programmation.

Avant de pouvoir effectuer une sélection dans les données (lancer une requête SQL), il faut au moins
deux conditions préalables : la 1ère est que la base de données existe, et pour cela il faut créer une
structure logique capable de recueillir les données et les liaisons entre ces données. La seconde est
que la base de données contient des informations utiles

I. STRUCTURE ET CARACTERISTIQUE DU LANGAGE SQL


1. STRUCTURE
Le langage SQL présente un nombre limité de verbes ou de mots clés qui se
répartissent en trois familles fonctionnellement distinctes :
 LE DDL (Data Definition Language) ou langage de définition des données qui
permet la description de la structure de la table

INSTRUCTIONS ROLES
Create Permet de créer des tables
Alter Permet de modifier la structure d’une table
Drop Permet la suppression d’une table

 LE DML (Data Manipulation Language) ou langage de manipulation des


données permet la manipulation des tables et des vues avec ces 4 verbes
correspondants aux 4 opérations fondamentales sur les données

INSTRUCTIONS ROLES
SELECT Sélectionne le champ des tables
FROM Indique le nom des tables
WHERE Indique les critères de sélection
GROUP BY Indique des groupements
HAVING Indique des critères de sélection sur
le résultat de groupement
ORDER BY Indique des critères de tries
INSERT Insertion de nouvelles lignes dans la
table
UPDATE Mise à jour des champs
DELETE Suppression des lignes

 LE DCL (Data Control Language) ou langage de contrôle des données,


contient les primitives de gestions des transactions (COMMIT & ROLLBACK)
et les privilèges d’accès aux données (GRANT & REVOKE)
INSTRUCTIONS ROLES
GRANT Accorde des droits d’accès à la BD
REVOKE Retire les droit d’accès à la BD
COMMIT Valide une transaction
ROLLBACK Annule une transaction

CAS PRATIQUE : nous allons prendre l’exemple d’une base de données relative au
vente d’une chaine de magasins. On souhaite garder en mémoire l’achat effectué par chaque client
avec le lieu de la vente des articles achetés (ainsi que le prix et la quantité), et la date de la vente.
Cette base est destinée à réaliser des statistiques de vente par magasin, par article, par période … les
informations de BD sont structurées de la manière suivante :

MAGASIN ( Num_Mag, Loc_Mag, Gerant_Mag)

ARTICLE (Num_Art, Lib_Art, Poids_Art, Coul_Art, Pa_Art, Pv_Art, Num_Four)

FOURNISEUR (Num_Four, Nom_Four)

CLIENT (Num_Client, Nom_Client, Pren_Client, Pays_Client, Loc_Client,)

ACHAT (Num_Mag-, Num_Art-, Num_Client, Date, Qte_Achat, Prix_Achat)

TABLE MAGASIN

Num_Mag Loc_Mag Gerant_Mag


1 Marcory KANTE
2 Plateau ARISTIDE
3 Dabou GUY
4 Bouaké BAKAYOKO
5 Daloa FREDY

TABLE FOURNISSEUR

Num_Four Nom_Four
1 CTIO electrique
2 Les stylos reumis
3 Mecanique de precision
4 SARL Rauland
5 Electro-lamp

TABLE CLIENT

Num_Client Nom_Client Pren_Client Pays_Client Loc_Client


1 KANTE SAMAHOUNA CI BOUKE
2 KAOU ARISTIDE CI Daloa
3 KRAMOS AKISSI SENEGAL Dakar
4 EHOUNOU FREDY MALI Bamako
5 BAKAYOKO MAHADOUD GHANA Koumassi
TABLE ARTICLE

Num_Art Nom_Art Poids_Art Coul_art Pa_Art Pv_Art Four_Art


1 Agrafeuse 150 Rouge 20 29 4
2 Calculatrice 150 Noire 200 235 1
3 Cachet- 100 Blanc 21 30 4
dateur
4 Lampe 550 Rouge 105 149 5
5 lampe 550 blanc 100 145 5

TABLE ACHAT

Num_Client Num_Mag Num_art Qte Prix Date


2 4 4 1 149 01/06/89
4 3 2 1 235 01/06/89
3 3 5 2 290 01/06/89
3 3 3 3 90 01/09/89
1 5 5 1 145 01/10/89

II) LE LMD (Langage de Manipulation des Données)

1) SELECTION DES DONNEES


 Syntaxe pour effectuer une recherche de donnée
SELECT attribut1, attribut1, attribut1…
FROM Table1, table2, …
WHERE condition de recherche
GROUP BY attribut1, attribut2
HAVING condition de recherche après regroupement
ORDER BY attribut1, attribut2 DESC

1.1) CONSULTATION SIMPLE


 Sélection de tous les attributs : on utilise un astérisque (*) pour sélection tous les
champs d’une table
Exemple : afficher toutes les informations de la table client
SELECT * FROM client
 Sélection de certains attributs :
SELECT <liste de colonne> FROM <liste des tables>
 LISTE DE COLONNE : permet de spécifier les colonnes avisées, les noms des
colonnes seront séparées par une virgule
 LISTE DE TABLE : permet de spécifier la table qui a des colonnes à
sélectionner
EXEMPLE : afficher le numéro, le nom et le prénom de tous les clients
SELECT Num_Client, Nom_Client, Pren_Client
FORM client ;
 Test existentiel (exist)
 SELECTION PAR COMPARAISON A UNE VALEUR
SQL admet deux types de constante : les chaines de caractères et les noms, elles
doivent être placer entre apostrophe (’)
Exemple : ‘abidjan’
Exemple retrouver tous client habitant a DABOU
SELECT *
FROM client
WHERE loc_client= ‘DABOU’;

EXO : trouver le nom, le prénom, le numéro des clients qui habite en CI


Trouver le nom des articles dont le prix est supérieur à 29
Trouver tous les articles dont le poids est supérieur à 500g
1) SELECT Num_client, Nom_client, Pren_client
FROM client
WHERE Pays_Client=CI

2) SELECT Nom_Art
FROM article
WHERE Prix_Art>29 ;
3) SELECT *
FROM article
WHERE Poids_Art> ’500g’

COMPARAISON A UNE EXPRESSION ARITHMETIQUE


Une expression arithmétique peut comporter des opérateurs arithmétique (+ ;
* ; / ; -) des noms d’attributs et des constantes.
Exemple : selectionner tous les articles pour lesquels le pris de ventes est
supérieur au double du prix d’achat

UTILISATION DE L’OPERATEUR AND


Les conditions unis par un ET logique (AND) doit être remplit our que le tupe soit
selectioné
Exemple : sélection tous les articles de couleur rouge dont le poids est supérieur
à 500g.
SELECT *
FROM article
WHERE Coul_Art=’rouge’
AND Poids_Art>’500g’

UTILISATION DE L’OPERATEUR OR
Il suffit qu’une condition unis par un OU logique (OR) soit remplit pour que le
tupe soit sélectionner
Exemple : sélection tous les articles rouges et tous ceux dont le poids est
supérieur a 500g
SELECT *
FROM article
WHERE Coul_Art=’rouge’
OR Poids_Art>’500g’
Exemple : sélectionner tous les articles qui ne sont pas rouge et ceux dont le
poids est inferieur ou egale a 500g
SELECT*
FROM article
WHERE NOT Coul_Art= ’rouge’
OR Poids_Art<=’500g’

SELECT*
FROM article
WHERE <>Coul_Art= ’rouge’
OR Poids_Art<=’500g’
EXEMPLE : sélectionner tous les articles dont, soit la couleur est rouge et le poids
est supérieur à 100, soit la couleur est verte.
SELECT *
FROM article
WHERE (Coul_Art=’rouge’
AND Poids_Art>100)
OR Coul_Art=’verte’
II) LES INSTRUCTIONS

L’INSTRUCTION INSERT

SQL permet d’insérer en une seule opération, une ou plusieurs lignes dans une table
existante. Les lignes insérées peuvent provenir d’autres tables. La syntaxe est la suivante :

1ère forme

INSERT INTO nom de la table (champ1, champ2,….)

VALUES (‘valeur1’, ‘valeur2’,…)

Exemple : ajouter le fournisseur dont les informations sont : 12 457, AIRNESSE

INSERT INTO fournisseur (num_four, nom_four)

VALUES (12 457, ‘AIRNESSE’)

Exemple 2: ajouter le client dont les informations sont: 12, KOUADIO, JULES, CI, ABIDJAN

INSERT INTO client (num_client, nom_client, pren_client, pays_client, local_client)

VALUES (12, ‘KOUADIO’, ‘JULES’, ‘CI’, ‘ABIDJAN’)

2ème forme

INSERT INTO nom de la table (champ1, champ2,…)

REQUETE ;

Il s’agit ici de recopier les lignes issues de la requête de sélection dans la table. Il doit avoir
une correspondance entre les colonnes de la requête de la sélection et celle de la table.

Exemple : insérer les éléments de la table client_paris dans la table client

INSERT INTO client (num_client, nom_client, pren_client, pays_client, local_client)

SELECT * FROM client_paris

III) L’INSTRUCTION DELETE

Elle permet de supprimer une ou plusieurs lignes dans une table. Cette commande consiste
une clause DELETE FROM spécifiant le nom de la table concernée et d’une clause WHERE
avec le critère spécifiant le tupe à supprimer

Syntaxe :
DELETE FROM nom de la table WHERE condition

RECHERCHE : LES REQUETES IMBRIQUEES

Exemple : supprimer le fournisseur n°02

DELETE FROM fournisseur

WHERE num_four = 02

Exemple: supprimer les lampes de couleur rouge

DELETE FROM lampe

WHERE coul_lampe = ‘rouge’

L’INSTRUCTION UP DATE

Elle permet la modification d’une ou de plusieurs champs dans la table. Cette commande
consiste en une clause up date spécifiant le nom de la table concernée, suivie de la clause
SET définissant les modifications a apporté, et d’une clause WHERE avec le critère précisant
les tuples à enregistrer

Syntaxe :

UP DATE nom de la table

SET champs1 = valeur1, champ2 = valeur2,…

WHERE condition

Exemple : changer le nom du client n° 1 au lieu de DARIE on a JEAN

UP DATE client SET pren_client= ‘DARIL’ WHERE num_client= ‘JEAN’ AND num_client = 1 ;

UP DATE client SET pren_client= ‘DARIL’ WHERE num_client = 1 ;

UP DATE article SET PA_art=210, PV_art= 250 WHERE num_art = 02

III) LE DDL (Langage de Définition des Données)

SQL fournit des instructions permettant de créer, supprimer, modifier, renommer des
fichiers. Ces instructions sont les suivantes ; CREATE, DROP, ALTER, RENAME,

1) LES TYPES DE DONNEES 


Les types de données que l’on peut représenter dans un SGBD sont fortement
dépendants de l’architecture de l’ordinateur sur lequel il tourne. Il existe donc de
nombreuses variances de types selon le SGBD néanmoins certains types se
retrouvent dans la plus part des SGBD
 LE TYPE ALPHANUMERIQUE :
 CHAR (n) : longueur fixe de n caractère n max = 16 483
 VARCHAR (n) : longueur variable n représente le maximum
 LE TYPE NUMERIQUE
 NUMBER (n, [d]) : nombre de n chiffres dont d près (,)

 SMALLINT : mot signé de 16 bits

 INTEGER : double mot signé de bits

 FLOAT : numérique flottant

 LE TYPE GESTION DU TEMPS

 DATE : champ date

 TIME : champ heure

 TIMESTAMP : regroupe date et time

2) CREATION DE TABLE
La création d’une tables se réalise avec l’ordre create
Syntaxe
CREATE table « nom de la table »
(‘colonne1’ ‘type de données pour la colonne1’,
‘colonne2’ ‘type de données pour la colonne2’,
.
.
)
Exemple :
CREATE TABLE fournisseur
(num_four : int not null,
Nom_four : varchar (255) not null
);
CREATE TABLE article
(num_art int not null,
Nom_art varchar (255),
Poids_art number,
Coul_art varchar (255),
Pa_art int not null,
Pu_art int not null,
Num_four int not null
);

3) DEFINITION DE LA CLE PRIMAIRE

Constraint pk-fournisseur primary key (num_four)

)
PROJET
Réaliser une application java avec SQL server 2008. Cette application va permettre à la
direction d’ITA de connaitre les étudiants venant de chaque commune de CI. Sachant que
chaque commune se trouve dans une ville et une ville se trouve dans un district.

Cette application doit nous permet également de connaitre les filières et les classes de
chaque étudiant

SYNTAXE

Constraint <nom de la contrainte> CHECK (colonne et valeur)

Exemple :

Create table client

(id_clt int not null primary key,

Nom_clt vachar (255),

Pren_clt vachar (255),

Local_clt vachar (255),

Tel_clt varchar (255),

Age int,

Constraint CK_age CHECK age>18

MODIFICATION STRUCTURELLE (ALTER TABLE)

Après sa création il est possible de modifier une table avec ALTER TABLE. Vous pouvez
ajouter des colonnes, en supprimer, en modifier la définition, ajouter et supprimer des
contraintes
 AJOUT DE COLONNE : la directive ADD de l’instruction ALTER TABLE permet d’ajouter
une colonne à une table. Cette colonne est initialisée à NULL pour tous les
enregistrements
SYNTAXE
ALTER TABLE nom_table ADD <colonne> <type>
Exemple :
ALTER TABLE étudiant ADD âge int
 SUPPRIMER UNE COLONNE : l’option DROP de l’instruction ALTER TABLE permet de
supprimer un colonne.
SYNTAXE
ALTER TABLE nom_table DROP column <nom_colonne>
Exemple :
ALTER TABLE étudiant DROP column âge
AJOUT DE CONTRAINTE : jusqu’à présent nous avons créé des contraintes en même
temps que les tables. Il est possible de créer des contraintes sans les tables puis
d’ajouter les contraintes, la directive ADD CONSTRAINT de l’instruction ALTER TABLE
permet d’ajouter une contrainte à une table
SYNTAXE
ALTER TABLE nom_table ADD CONSTRAINT nom_constraint type contrainte
Exemple :
ALTER TABLE commune ADD CONSTRAINT uniq_lib UNIQUE (lib_om)
Exemple :
ALTER TABLE article ADD CONSTRAINT FK_article_clt foreign key (id client) références
client (id_client)
 SUPPRESSION DE CONTRAINTE : l’option DROP CONSTRAINT de l’instruction ALTER
TABLE permet de supprimer la contrainte de la table
SYNTAXE
ALTER TABLE nom_table DROP CONSTRAINT nom_constraint
Exemple :
ALTER TABLE commune DROP CONSTRAINT uniq_lib
 LA SUPPRESSION PHYSIQUE DE TABLE 
SYNTAXE
DROP TABLE nom_table

GESTION DES ACTIONS AUX SERVEURS

Avant de pouvoir commencer à travailler avec les données de nos bases, il est impérative de
se loguer sur le serveur SQL. Cette étape permet de s’identifier au niveau du serveur afin de
pouvoir exploiter les droits qui sont attribué à notre connexion

CREATION D’UN UTILISATEUR AVEC MOT DE PASS

SYNTAXE
Use master

Go

Create login nom_compte WITH password = ‘…….. ‘

Use nom_BD

Create user nom_èuser for login nom_compte with default schema=nom BD

Go

Exemple:

Use master

Go

Create login KJONE with password= ‘1234bonjour’

Use gest_etud

Create user KONE for login KONE

WITH default schema = gest_étud

Go

ATTRIBUER DES DROITS AUX USERS:

SYNTAXE

GRANT instruction on nom_table to nom_user

Exemple :

GRANT select on étudiant to KONE

GRANT INSERT, SELECT, UP DATE, DELETE on étudiant to KONE

RETIRER DES DROITS A UN USER 

REVOKE instruction to nom_compte

Exemple :

REVOKE update to KONE


GESTION DES VUES: SQL permet la gestion d’objet associé aux tables: les vues
(VEWS) une vue est une table virtuelle c’est-à-dire un objet ayant la même utilisation
qu’une table par rapport au langage de manipulation de données, à quelques
restrictions prêt mais n’occupe pas d’espace disque pour les données. Une vue ne
stocke que les requêtes correspondant à l’extraction

SYNTAXE

Create VIEW nom_view

As requite

Exemple:

Create VIEW infos AS

SELECT

Vous aimerez peut-être aussi