Vous êtes sur la page 1sur 8

4ème SI

Résumé Base de Données


 Définitions :
Une donnée : est une information Une information : c’est une Entité : c’est la représentation d’un
qui peut effectuer des traitements donnée regroupée avec d’autres objet du monde réel ayant une
liées à un contexte donnée. existence propre. (Exp : Etudiant,
Livre, classe…)
Propriété (attribut) : représente les Association : c’est un outil Base de Données : est un
caractéristiques les propriétés de permettant de représenter les liens ensemble de données non
l’entité. entre les entités. redondantes, structurées et
persistantes (non volatiles)
relatives à un ou plusieurs
domaines du monde réel.
Intérêts de l’utilisation d’une Intégrité de données : Ensemble Modèles de BD :
BD : de règles appelées contraintes -Hiérarchique
-Centralisation d’intégrité qui décrivent les -Réseau
-Indépendance entre données et propriétés qui doivent être vérifié -Modèle Relationnel : le principe
programme par les données pour être consiste à représenter aussi bien les
-Intégrité de données enregistrées. Elle permet d’assurer objets que les liens à l’aide d’une
-Partage de données (concurrence la cohérence des données. structure appelée table.
d’accès)
Système de Gestion de Base de Les fonctions de bases d’un Table : une table est un ensemble
Données(SGBD) : c’est un logiciel SGBD : de données relatives à un même
qui permet de créer, de gérer et -Définition des données sujet(ou entité) et structurées sous
d’interroger efficacement une BD. -Manipulation des données forme de tableau.
(Pour dialoguer avec le SGBD il -Intégrité des données Colonne(ou champ ou propriété) :
faut utiliser le langage -la gestion des accès concurrents Dans une table une colonne est une
SQL(Structured Query Language)) -la confidentialité propriété élémentaire de l’objet
-la sécurité de fonctionnement décrit par cette table.
Ligne (n-uplet ou enregistrement) :
Une ligne correspond à un objet
représenté par la table.

Clé primaire (identifiant=primary Clé étrangère =référence Contraintes d’intégrité :


key) : c’est un identificateur unique =contrainte d’intégrité référentielle Ensemble de règles appliquées à
pour la table qui correspond à une = foreign key une colonne ou une table et qui
colonne ou un ensemble de Un lien entre deux tables A et B est doit être toujours vérifiée.
colonnes. représenté par l’ajout dans la table
B d’une nouvelle colonne (les principales contraintes
correspondant à la clé primaire de d’intégrité sont : contraintes de
la table A. cette nouvelle colonne domaines, contraintes d’intégrité
est appelée Clé étrangère. de table et contrainte d’intégrité
référentielle)
Démarche de détermination de la structure d’une BD :
- Délimiter le domaine
- Déterminer les colonnes
Liste des colonnes
Nom Description Types de Taille Obligatoire Valeur par Valeur Sujet
Colonne données défaut autorisé
….. ………. …… ….. …….. ……… …… ……..
-Déterminer les tables
Liste des tables
Nom table Description Sujet

 Base De Données 
4ème SI

- Affecter les colonnes aux tables


- Déterminer les clés primaires
- Déterminer les liens entre les tables
- Analyser et affiner la structure de la BD
Mode assisté : permet de créer les Formulaire : permet aux les Etats : ils permettent aux
éléments de la BD à travers des utilisateurs d’interagir avec utilisateurs d’obtenir des données
assistants graphiques l’application à travers des champs afin de les imprimer ou les stocker
de type texte, liste..plusieurs sous une forme quelconque
opérations offertes par le
formulaire: constatation, insertion,
modification et suppression des
données
Mécanismes de sécurité :
-L’authentification
-Les droits et les privilèges
-Les logs ou traces
-Tolérance aux pannes
-Sauvegarde et restauration
-Mécanisme transactionnels

 NB :
Exemples pour les relations :

 Relation un à plusieurs

Un élève appartient à une seule classe. Dans une classe on trouve plusieurs élèves

ELEVE ∞ 1 CLASSE

 Donc CLASSE table mère et ELEVE table fille. Comme CLASSE est mère alors sa clé primaire
migre à la table fille qui est ELEVE et sera une clé étrangère
Description textuelle :

ELEVE (num_inscription, nom, prenom, date_naissance, adresse, id_classe#)


CLASSE(id_classe, nom_classe)

Description graphique :

 Relation plusieurs à plusieurs

Un athlète peut participer à plusieurs courses. Dans une course on trouve plusieurs athlètes.

 Base De Données 
4ème SI

Dans ce cas la relation participer se transforme en un table identifié par deux clés primaires qui sont
les clés primaires de la table athlète et la table Courses( les deux clés seront primaires et étrangères au
même temps dans la nouvelle table)

Description textuelle :

athlete (anum,anom,aage)

participation (cnum#,anum #)

course (cnum,cnom)

Description graphique :

 Création des tables en mode commande (SQL)


Exemple :

CREATE TABLE Film(


On va créer les tables décrites par la id_fim INT(3) PRIMARY KEY,
description textuelle ci-dessous, sachant que le titre VARCHAR(10) NOT NULL,);
titre et la date fin d’abonnement sont
obligatoires et que le nombre maximal CREATE TABLE Client(
d’emprunt doit être ≥0. id_client INT(3) PRIMARY KEY ,
Film(id_film, titre) nom VARCHAR(10) NOT NULL ,
Client(id_client, nom, date_fin_abonnement, date_fin_abonnement date NOT NULL ,
nbmaxemprunt) nbmaxemprunt CHECK(nbmaxemprunt >=0)) ;
Cassette(id_cassette, id_film #)
Emprunt (id_client #, id_cassette #, CREATE TABLE Cassette (
date_emprunt) id_cassette INT(3) ON DELETE CASCADE,
id_client INT(3) ON DELETE CASCADE,
date_emprunt date,
CONSTRAINT pk PRIMARY KEY(id_cassette,
id_client),
CONSTRAINT fk_cas FOREIGN KEY(id_cassette)
REFERENCES Cassette ,
CONSTRAINT fk_cl FOREIGN KEY(id_client)
REFERENCES Client ) ;

 Base De Données 
4ème SI

 Modifier la structure d’une table en mode commande (SQL)


Rôle Commande Exemple

Ajout d’une ALTER TABLE nom_table ADD COLUMN ALTER TABLE client ADD
colonne à la table définition_colonne ; COLUMN email VARCHAR(80);

Ajout d’une ALTER TABLE nom_table ADD CONSTRAINT ALTER TABLE article ADD
contrainte à la définition_contrainte ; CONSTRAINT PRIMARY KEY
table (code_article);

Modification des ALTER TABLE nom_table Modify On veut élargir la taille de la colonne
propriétés d’une définition_colonne ; « email » :
colonne ALTER TABLE client MODIFY
email VARCHAR(100);

Suppression ALTER TABLE nom_table DROP COLUMN ALTER TABLE client DROP
d’une colonne de nom_colonne ; COLUMN email;
la table
Suppression ALTER TABLE nom_table DROP CONSTRAINT Supprimer la clé primaire de la table
d’une contrainte nom_contrainte ; article :
de la table
ALTER TABLE article DROP
CONSTRAINTE PRIMARY KEY;

Désactiver une ALTER TABLE nom_table DISABLE ALTER TABLE article DISABLE
contrainte nom_contraint ; CONSTRAINT PRIMARY KEY;

Réactiver une ALTER TABLE nom_table ENABLE ALTER TABLE article ENABLE
contrainte nom_contrainte ; CONSTRAINT PRIMARY KEY;

 Suppression d’une table en mode commande (SQL)


DROP TABLE nom_table;

Manipulation des données en mode commande


 Mise à jour de données
Insertion des lignes Suppression des lignes Modification des lignes

INSERT INTO DELETE FROM UPDATE nom_table SET


nom_table(liste_nomcolonne) nom_table nom_colonne1=expression1,
VALUES(liste_valeurs) ; WHERE condition ; nom_colonne2=expression2,…
Exp : Exp : WHERE condition ;
INSERT INTO Athlete DELETE FROM Athlete Exp :
(num,nom,age) VALUES WHERE age>50 ; UPDATE Athlete SET age=32
(123, ‘GUAMOUDI’,45) ; WHERE num=100 ;
 Recherche des données (requêtes)

 Base De Données 
4ème SI

 Recherche de colonne à partir d’une table (projection)

SELECT liste_nom_colonne From nom_table ;

SELECT * from nom_table ;

SELECT DISTINCT(nom_colonne) From nom_table ;

RQ : Par défaut les colonnes de la table résultat portent les mêmes noms que ceux de la table de départ ; il est
possible de donner aux colonnes de la table résultat des noms différents de ceux de la table d’origine. On doit
dans ce cas donner un entête de colonne juste après son nom donné par le paramètre liste_nom_colonne. Cette
entête est appelé Alias.

 Recherche de ligne à partir d’une table : sélection

SELECT */liste_nom_colonne FROM nom_table WHERE condition ;

Dans la condition on peut utiliser :

Les opérateurs de comparaison (=,>, <,>=, <=, et <>), l’opérateur BETWEEN, l’opérateur
IN, l’opérateur IS NULL, l’opérateur IS NOT NULL, l’opérateur LIKE et les opérateurs
logiques AND, OR et NOT.

 Recherche de
données à partir
du plusieurs
tables : jointure

On parle de jointure si la recherche est relative à deux tables ayant au moins une colonne en
commun.la condition de jointure doit porter sur ces colonnes communes. .

 Recherche de
données avec tri

SELECT liste_nom_colonne FROM nom table ORDER BY nom_colonne ASC/DESC ;


ASC : Dans l’ordre ascendant.
DESC : Dans l’ordre descendant.
Par défaut le tri est ascendant.
 Utilisation des
fonctions de
calculs dans les
opération de
recherche
(fonctions
Agrégat)

Compter le nombre de lignes du résultat obtenu par


COUNT la commande SELECT

SU Faire la somme des valeurs d’une colonne dont le


M type est numérique

MIN Déterminer la valeur minimale d’une colonne

 Base De Données 
4ème SI

MAX Déterminer la valeur maximale d’une colonne

AV Déterminer la moyenne des valeurs numériques


G d’une colonne

Exercice:
Soit la description textuelle suivante :

Client(numcli, nom, prenom, adresse,code_post, ville, tel)

Produit(numprod, designation, prix_unit, qte_stock)

Commande(numcom, numcli#, idvendeur#, date_com, qte, numprod#)

Vendeur(idvendeur, nomvendeur, qualite ,salaire)

1- Donner la liste des prix TTC des produit, sachant que prix TTc= prix unitaire +0.1 *prix
unitaire.

SELECT prix_unit+prix_unit*0.1 ‘Prix TTC’ FROM Produit ;

2- Donner la liste des noms et prénoms des clients

SELECT nom, prenom FROM Client ;

3- Donner la liste des clients habitant à Tunis

SELECT * FROM Client WHERE ville=’Tunis’ ;

4- Donner les numéros, noms et prénoms de tous les clients. Au moment de l’affichage les entêtes
des colonnes doivent être respectivement ‘ Numéro du client’, ‘Nom du client’ et ‘Prénom du
client’

SELECT numcli ‘Numéro du client’, nom ‘Nom du client’, prenom ‘Prénom du client’

FROM client ;

5- Donner la liste des commandes qui ont des quantités au moins égale à trois

SELECT * FROM Commande WHERE qte>=3 ;

6- Donner les désignations des produits qui ont un prix comprix entre 1500 et 3500

SELECT designation FROM Produit WHERE prix_unit BETWEEN 1500 AND 3500 ;

7- Donner les numéros des commandes qui ont des quantités indéterminées

SELECT numcom FROM Commande WHERE qte IS NULL ;

 Base De Données 
4ème SI

8- Donner La liste des noms et prénoms des clients qui habitent une ville dont Le nom se termine
par AA.

SELECT nom, prenom FROM Client WHERE ville LIKE ’%AA’ ;

9- Donner la liste des clients dont les villes commencent par Menzel.

SELECT * FROM Client WHERE ville LIKE ‘Menzel%’ ;

10- Donner les prénoms des clients dont le nom est Ghdir, Hbibi, Aloui, Malki ou Hilali.

SELECT prenom FROM Client WHERE nom IN (‘Ghdir’,’ Hbibi’,’ Aloui’,’ Malki’,’ Hilali’) ;

11- Donner les numéros et les prénoms des clients dont la 3 ème lettre de leurs prénoms est h.

SELECT numcli, prenom FROM Client WHERE prenom LIKE ‘__h%’;

12- Donner La moyenne des prix des produits

SELECT AVG(prix_unit) FROM Produit ;

13- Donner le nombre total des commandes

SELECT COUNT(numcom) FROM Commande ;

14- Donner le nombre des clients ayant passé une commande

SELECT COUNT(DISTINCT(numcli)) FROM Commande ;

15- Donner la liste des numéros des commandes avec les noms des clients. (Requête de jointure)

SELECT numcom, nomcli FROM Commande, Client WHERE


Commande.numcli=Client.numcli ;

Ou bien(en utilisant les alias)

SELECT numcom, nomcli FROM Commande C, Client CL WHERE C.numcli=CL.numcli ;

16- Donner les numéros, les noms et prénoms des clients qui habitent à Mhamdia et dont leur
prénom commence par A.

SELECT numcli,nom, prenom WHERE ville=’Mhamdia’ AND prenom LIKE ‘A%’ ;

17- Donner la liste des clients ordonnées par ordre alphabétique des noms ;

SELECT * FROM Client ORDER BY nom ;

18- Supprimer les produits qui ont une quantité de stock égale à zéro

DELETE FROM Produit WHERE qte_stock=0 ;

19- Augmenter Le salaire du vendeur identifié par 125 en lui ajoutant 1500.

UPDATE Vendeur SET salaire=salaire+1500 WHERE idvendeur=125 ;

 Base De Données 
4ème SI

20- Afficher la liste des vendeurs dont le nom commence par S et dont la qualité est déterminée,
ordonnée dans l’ordre décroissant des salaires.

SELECT * FROM Vendeur WHERE nomvendeur LIKE ‘S%’ AND qualite IS NOT NULL
ORDER BY salaire DESC ;

Bonne révision et très Bon


travail pour le concours…

 Base De Données 

Vous aimerez peut-être aussi