Vous êtes sur la page 1sur 9
Base de Données Enseignante : Mlle DOUGUI Sameh Classe : 4 è m e SI
Base de Données Enseignante : Mlle DOUGUI Sameh Classe : 4 è m e SI

Base de Données

Enseignante : Mlle DOUGUI Sameh Classe : 4 ème SI Année scolaire : 2007-2008

Résumé Correction des devoirs de contrôles et de synthèses

*****Bonne révision*****

SI Année scolaire : 2007-2008 Résumé Correction des devoirs de contrôles et de synthèses *****Bonne révision*****

Enseignante : Mlle DOUGUI Sameh

4 ème SI

Définitions :

Résumé Base de Données

4 è m e SI Définitions : Résumé Base de Données Une donnée : est une

Une donnée : est une information qui peut effectuer des traitements

Une information : c est une donnée regroupée avec d autres liées à un contexte donnée.

Entité : c est la représentation d un objet du monde réel ayant une existence propre. (Exp : Etudiant, Livre, classe )

Propriété (attribut) : représente les caractéristiques les propriétés de

l

entité.

Association : c est un outil permettant de représenter les liens

entre les entités.

Base de Données : est un ensemble de données non redondantes, structurées et persistantes (non volatiles) relatives à un ou plusieurs domaines du monde réel.

Modèles de BD : -Hiérarchique -Réseau -Modèle Relationnel : le principe consiste à représenter aussi
Modèles de BD :
-Hiérarchique
-Réseau
-Modèle Relationnel : le principe
consiste à représenter aussi bien les
objets que les liens à l aide d une
structure appelée table.
Table : une table est un ensemble
de données relatives à un même
sujet(ou entité) et structurées sous
forme de tableau.
Colonne(ou champ ou propriété) :
Dans une table une colonne est une
propriété élémentaire de l objet
décrit par cette table.
Ligne (n-uplet ou enregistrement) :

Une ligne correspond à un objet représenté par la table.

Intérêts de l utilisation d une BD :

-Centralisation

-Indépendance entre données et

programme

-Intégrité de données

-Partage de données (concurrence

d accès)

Intégrité de données : Ensemble de règles appelées contraintes d intégrité qui décrivent les propriétés qui doivent être vérifié

par les données pour être

enregistrées. Elle permet d assurer

la

cohérence des données.

Les fonctions de bases d un SGBD :

-Définition des données

-Manipulation des données -Intégrité des données -la gestion des accès concurrents -la confidentialité -la sécurité de fonctionnement

Système de Gestion de Base de Données(SGBD) : c est un logiciel qui permet de créer, de gérer et

d interroger efficacement une BD. (Pour dialoguer avec le SGBD il faut utiliser le langage SQL(Structured Query Language))

= foreign key B la
= foreign key
B
la

Contraintes d intégrité :

Ensemble de règles appliquées à

une colonne ou une table et qui doit être toujours vérifiée.

(les principales contraintes d intégrité sont : contraintes de

domaines, contraintes d intégrité de table et contrainte d intégrité référentielle)

Clé primaire (identifiant=primary key) : c est un identificateur unique pour la table qui correspond à une colonne ou un ensemble de colonnes.

Clé étrangère =référence =contrainte d intégrité référentielle

Un lien entre deux tables A et B est représenté par l ajout dans la table

d une nouvelle colonne

correspondant à la clé primaire de

table A. cette nouvelle colonne

est appelée Clé étrangère.

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
- 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

Enseignante : Mlle DOUGUI Sameh

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 éléments de la BD à travers des assistants graphiques

Formulaire : permet aux utilisateurs d interagir avec

les Etats : ils permettent aux utilisateurs d obtenir des données

l

application à travers des champs

afin de les imprimer ou les stocker sous une forme quelconque

 

de type texte, liste plusieurs 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

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

classe. Dans une classe on trouve plusieurs

ELEVE

1 CLASSE

élèves

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 :

# ) CLASSE( id_classe, nom_classe) Description graphique : Relation plusieurs à plusieurs Un athlète peut participer

Relation plusieurs à plusieurs

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

Enseignante : Mlle DOUGUI Sameh

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 :

#) course ( cnum ,cnom) Description graphique : Création des tables en mode commande (SQL) Exemple

Création des tables en mode commande (SQL)

Exemple :

: Création des tables en mode commande (SQL) Exemple : On va créer les tables décrites

On va créer les tables décrites par la

description textuelle ci-dessous, sachant que le titre et la date fin d abonnement sont obligatoires et que le nombre maximal

d emprunt doit être 0.

Film(id_film, titre) Client(id_client, nom, date_fin_abonnement, nbmaxemprunt) Cassette(id_cassette, id_film #) Emprunt (id_client #, id_cassette #,

date_emprunt)

CREATE TABLE Film( id_fim INT(3) PRIMARY KEY, titre VARCHAR(10) NOT NULL,);

CREATE TABLE Client( id_client INT(3) PRIMARY KEY , nom VARCHAR(10) NOT NULL , date_fin_abonnement date NOT NULL , nbmaxemprunt CHECK(nbmaxemprunt >=0)) ;

CREATE TABLE Cassette ( 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 ) ;

Enseignante : Mlle DOUGUI Sameh

4 ème SI

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

 

Rôle

Commande

Exemple

Ajout d une colonne à la table

ALTER TABLE nom_table ADD COLUMN définition_colonne ;

ALTER TABLE client ADD COLUMN email VARCHAR(80);

 

Ajout d une contrainte à la table

ALTER TABLE nom_table ADD CONSTRAINT définition_contrainte ;

ALTER TABLE article ADD CONSTRAINT PRIMARY KEY (code_article);

Modification des propriétés d une colonne

ALTER TABLE nom_table Modify définition_colonne ;

On veut élargir la taille de la colonne « email » :

ALTER TABLE client MODIFY email VARCHAR(100);

 

Suppression

ALTER TABLE nom_table DROP COLUMN

ALTER TABLE client DROP COLUMN email;

d

une colonne de la table

nom_colonne ;

 

Suppression

ALTER TABLE nom_table DROP CONSTRAINT

Supprimer la clé primaire de la table article :

d

une contrainte de la table

nom_contrainte ;

ALTER TABLE article DROP CONSTRAINTE PRIMARY KEY;

Désactiver une

ALTER TABLE nom_table DISABLE nom_contraint ;

ALTER TABLE article DISABLE CONSTRAINT PRIMARY KEY;

 

contrainte

 

Réactiver une

ALTER TABLE nom_table ENABLE nom_contrainte ;

ALTER TABLE article ENABLE CONSTRAINT PRIMARY KEY;

contrainte

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 nom_table(liste_nomcolonne) VALUES(liste_valeurs) ;

DELETE FROM nom_table WHERE condition ;

UPDATE nom_table SET

nom_colonne1=expression1,

nom_colonne2=expression2, WHERE condition ;

Exp :

Exp :

INSERT INTO Athlete

DELETE FROM Athlete

Exp :

Enseignante : Mlle DOUGUI Sameh

4 ème SI

(num,nom,age) VALUES (123, GUAMOUDI ,45) ;

WHERE age>50 ;

UPDATE Athlete SET age=32 WHERE num=100 ;

Recherche des données (requêtes)

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

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)

COUNT

Compter le nombre de lignes du résultat obtenu par la commande SELECT

SUM

Faire la somme des valeurs d une colonne dont le type est numérique

MIN

Déterminer la valeur minimale d une colonne

MAX

Déterminer la valeur maximale d une colonne

 

Déterminer la moyenne des valeurs numériques

Enseignante : Mlle DOUGUI Sameh

4 ème SI

AVG

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 ;

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 ;

Enseignante : Mlle DOUGUI Sameh

4 ème SI

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 ;

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.

Enseignante : Mlle DOUGUI Sameh

4 ème SI

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

S% AND qualite IS NOT NULL ORDER BY salaire DESC ; Bonne révision et très Bon

Bonne révision et très Bon travail pour le concours