Beruflich Dokumente
Kultur Dokumente
com
Universit Mohammed V- Agdal Ecole Mohammadia d'Ingnieurs Dpartement Gnie Informatique Rabat
TP (16h)
1. 2. 3. 4. 5. Utilisation de Access pour crer une BD Interrogation de la BD avec l'assistant Utilisation de SQL : LMD Cration de formulaire Projet : Conception et ralisation d'une BD et de formulaires de manipulation.
2010-2011 \ N. El Faddouli
2010-2011 \ N. El Faddouli
2010-2011 \ N. El Faddouli
2010-2011 \ N. El Faddouli
Organisation en fichiers
Interface (Saisie) Utilisateur Fichier Utilisateur Interface (Saisie) Utilisateur Traitement (Programme) tats de Sortie Traitement (Programme) Fichier
2010-2011 \ N. El Faddouli
Organisation en fichiers
Limites:
- Non indpendance des donnes: Saisie et traitement en fonction des fichiers (un ou plusieurs programmes par fichier) - Redondance de donnes. - Risque de problme d'intgrit. - Pas de contrle de concurrence entre utilisateurs. - Manque de scurit. - Lourdeur d'accs aux donnes.
9
2010-2011 \ N. El Faddouli
Organisation en BD
Interface (Saisie) Utilisateur Traitements (Programme) Contrles
Utilisateur
BD
Utilisateur
tats de Sortie
2010-2011 \ N. El Faddouli
10
Avantages de BD
- Minimum de redondance de donnes. - Partage entre plusieurs applications - Contrle d'intgrit. - Indpendances des donnes et des traitements - Scurit d'accs. - Ensemble compact de tables contenant les donnes de la BD. Ces tables sont physiquement des fichiers. Tout cela grce au SGBD
2010-2011 \ N. El Faddouli
12
SGBD
Dfinition:
Logiciel(s) assurant structuration, stockage, maintenance, mise jour et consultation des donnes dune BD en excutant des requtes exprimes selon une vue logique de la BD. Vue logique: Reprsente la vision de l'utilisateur qui ne se soucie pas des dtails de stockage et d'accs aux donnes (Vue physique). Exemple: Vue logique d'une BD de bibliothque Il y a trois tables: livres, emprunteurs et emprunts contenant les donnes utilises (cote, titre, .) Exemples de SGBD: Access, Oracle, Ingres, Postgress, Mysql,
2010-2011 \ N. El Faddouli 13
SGBD
Fonctionnalits :
1- Description des donnes qui seront stockes: Langage de Dfinition des Donnes (LDD). Structure, Contraintes, Droits d'accs, . 2- Manipulation des donnes (recherche, ajout, modification et suppression): Langage de Manipulation des Donnes (LMD). 3- Partage des donnes: Utilisation simultane des donnes par diffrentes applications. Gestion des accs concurrents (techniques de verrouillage, ). Cohrence des donnes
2010-2011 \ N. El Faddouli 14
SGBD
Fonctionnalits (suite):
4- Satisfaction des contraintes d'intgrit (Exemple: un emprunt doit concerner un livre qui existe dans la BD) pour conserver la validit des donnes. 5- Scurit des donnes: - les donnes doivent tre protges contre les accs non autoriss. - Rcuprer les donnes aprs panne. 6- Confidentialit des donnes: chaque utilisateur doit avoir accs aux donnes auxquelles il a droit.
15
2010-2011 \ N. El Faddouli
SGBD
Architecture:
Gestionnaire de fichiers - Stockage des donnes sur des supports physique. - Mcanisme de recherche par le contenu. - Optimisation du stockage.
2010-2011 \ N. El Faddouli 16
SGBD
Architecture:
SGBD interne (systme d'accs au donnes) - Assemblage des tables partir des donnes dans les fichiers. - Placement des tables dans les fichiers. - Gre les liens et l'accs rapide.
2010-2011 \ N. El Faddouli 17
SGBD
Architecture:
SGBD externe - Analyse et interprtation des requtes des applications et des utilisateurs interactifs. - Mise en forme des donnes pour les changes avec le monde extrieur.
2010-2011 \ N. El Faddouli 18
SGBD
Outils d'un SGBD:
Ils offrent un certain nombre de fonctionnalits: 1- ISQL/ESQL: Permet d'interroger, modifier, ajouter ou supprimer des donnes de la base. 2- Form: Permet de crer des formulaire pour accder facilement aux donnes de la base. 3- Report: Permet de crer des tats de sorties (rapport). Etc
2010-2011 \ N. El Faddouli
19
Types d'utilisateurs
L'administrateur de la BD:
- Crer la BD en prcisant la structure ainsi que les dtails de stockage sur disque. - Contrler l'accs la BD afin de le permettre aux applications et aux personnes qui y ont droit. - Conserver une bonne performance d'accs aux donnes (bonne organisation de stockage, index, .) - Sauvegarder la BD et assurer les reprises aprs panne. Toutes ces tches sont ralises travers des outils du SGBD.
20
2010-2011 \ N. El Faddouli
Types d'utilisateurs
Le programmeur:
Dveloppe des applications qui traitent les donnes de la base.
L'utilisateur final:
N'a accs qu'aux donnes qui lui sont utiles: Via une application Via une interface du SGBD afin d'interroger directement les tables auxquelles il a droit.
2010-2011 \ N. El Faddouli
21
Mthode d'accs:
Mthode d'exploitation du fichier utilise par les programmes d'application pour slectionner des articles.
2010-2011 \ N. El Faddouli 22
2010-2011 \ N. El Faddouli
24
22 Index 24
Lindex peut faire partie du fichier index Adresses relatives ou stock dans un fichier spar.
2010-2011 \ N. El Faddouli 25
Etapes de conception de BD
Monde rel
Analyse Conception
Schma interne
27
2010-2011 \ N. El Faddouli
Modle Relationnel
- Le plus utilis dans les BD et les SGBD (BDR et SGBDR). - Fond sur le concept mathmatique de relation (thorie des ensembles): Sous-ensemble du produit cartsien de diffrents ensembles (domaines). - Reprsentation des donnes sous forme de tables deux dimensions contenant des valeurs simples. - Concepts: Domaine, Relation, Attribut Tuple Schma conceptuel Cl Contraintes
2010-2011 \ N. El Faddouli
29
Modle Relationnel
Domaine
Ensemble de valeurs de mme type. Caractris par un nom.
Exemple: D1 = { Informatique, lectrique, Civil, Mcanique, Procds, Industriel, MIS } D2 = IN (ensemble des entiers) D3 = Dates D4 = suite de caractre de longueur maximale 30 (texte)
2010-2011 \ N. El Faddouli 30
Modle Relationnel
Relation
SOUS-ENSEMBLE du produit cartsien de n domaines Di. Caractrise par un nom. Une relation R: R D1 D2 D3.Dn Les n domaines ne sont pas ncessairement distincts. Relation de n-aire, d'arit n ou de degr n. Exemple: Livres D2 D4 D4 D4 Livres est d'arit 4
2010-2011 \ N. El Faddouli 31
Modle Relationnel
Relation (suite)
Une relation est compose de vecteurs (lignes) qui forment une table deux dimensions: - Chaque ligne correspond un vecteur. - Chaque colonne correspond un domaine du produit cartsien.
Exemple: Attribut / Colonne /champ Titre Le Langage C L'algbre de base Bases de donnes Auteur Claude Delanoy Frank Shin Relation / Table
2010-2011 \ N. El Faddouli
Modle Relationnel
Attribut
Nom donn une composante d'une relation. Exemple: Cote est un attribut de la relation Livres
Modle Relationnel
Schma conceptuel de la relation :
Nom de la relation suivi de la liste des attributs et de leurs domaines.
Domaines
Exemple:
2010-2011 \ N. El Faddouli
34
Modle Relationnel
Schma Conceptuel (suite)
On peut donner aux domaines des noms relativement au SGBD utilis. Exemple:
Livres(Cote:INTEGER,Titre:CHAR(50), Auteur:CHAR(50),ISBN:CHAR(50))
La plupart du temps, les domaines sont implicites et dcoulent du nom de l'attribut Exemple:
Livres(Cote, Titre, Auteur, ISBN )
2010-2011 \ N. El Faddouli 35
Modle Relationnel
Cl candidate d'une relation
Un ensemble minimal des attributs dont les valeurs identifient de manire unique un tuple. La valeur d'une cl candidate est donc distincte pour tous les tuples. Toute relation a au moins une cl candidate et peut en avoir plusieurs. Exemple: Salari (Matricule, nom, prnom, CIN, salaire, fonction) Hypothse: Deux salaris ne peuvent pas avoir le mme nom. Les cls candidates sont:
2010-2011 \ N. El Faddouli
Modle Relationnel
Cl Primaire
Attribut ou ensemble d'attributs dont les valeurs identifient de manire unique chaque tuple de la relation. Exemple:
Livres(Cote, Titre, Auteur, ISBN ) Emprunteurs(Matricule, Nom_Prenom, Date_De_Naissance) Emprunt (Matricule, Cote, Date_Emprunt, Date_Remise)
Remarque: La cl primaire fait partie de l'ensemble des cls candidates.
2010-2011 \ N. El Faddouli 37
Modle Relationnel
Cl trangre
Une cl trangre dans une relation R1 est un attribut ou ensemble d'attributs qui reprsentent une cl primaire dans une autre relation R2. On prcde une cl trangre par le caractre dise (#) Exemple: Emprunt ( #Matricule, #Cote, Date_Emprunt, Date_Remise) Remarque: La cl trangre peut avoir un nom diffrent de la cl primaire correspondante.
2010-2011 \ N. El Faddouli
38
Modle Relationnel
Contrainte (d'intgrit)
Toute rgle spcifiant les valeurs permises pour certaines donnes, ventuellement en fonction d'autres donnes, et permettant d'assurer une certaine cohrence de la BD: - Contrainte de l'unicit de cl. - Contrainte rfrentielle. - Contrainte de domaine. - Contrainte d'entit.
2010-2011 \ N. El Faddouli
39
Modle Relationnel
Contrainte d'unicit de cl
Elle permet d'assurer l'unicit de la cl primaire: Deux tuples dans une relation ne peuvent pas avoir la mme valeur de la cl primaire.
Contrainte rfrentielle
Une contrainte d'intgrit portant sur une relation R1, consiste imposer que la valeur d'un ou de plusieurs attributs apparaissent comme valeur de cl primaire dans une autre relation R2. Exemple: Pour chaque tuple de la relation Emprunt, il faut que la valeur de l'attribut Cote apparaisse dans un tuple de la relation Livres comme valeur de sa cl primaire Cote.
2010-2011 \ N. El Faddouli 40
Modle Relationnel
Contrainte de domaine
Elle impose qu'une colonne d'une relation doit comporter des valeurs appartenant une plage de valeurs ou une liste de valeurs.
2010-2011 \ N. El Faddouli
41
Modle Relationnel
Valeurs Nulles et Cls
Si la valeur d'un attribut est inconnue au moment de l'insertion d'un tuple dans une relation: on lui attribue une valeur conventionnelle, appele valeur nulle (Null) Exemple: Dans la relation Emprunt, Dat_Remise est gale NULL si le livre emprunt n'est pas encore remis.
Contrainte d'entit
Une contrainte d'intgrit imposant que toute relation possde une cl primaire et que tout attribut participant cette cl primaire soit non nul.
2010-2011 \ N. El Faddouli 42
Modle Relationnel
Instance (Extension)
Le schma d'une relation reprsente les proprits (attributs) des tuples qu'elle va contenir au cours du temps. Une table reprsente une instance d'une relation, c.--d. une vue des tuples qu'elle contient un instant donn. Instance d'une BD est l'ensembles des instances des relations de la BD: l'ensemble des table de la BD.
2010-2011 \ N. El Faddouli
43
SQL
Structured Query Langage(SQL):
- Langage de base dans les SGBD - Langage de Dfinition des Donnes (LDD): Il permet la dfinition des structures des tables et des autres objets de la BD (index, ) - Langage de Manipulation des Donnes (LMD): Il permet de faire des recherches (slection) et des mises jour (ajout, suppression, modification) des donnes de la base.
2010-2011 \ N. El Faddouli
44
SQL: LDD
Dfinition des schmas
Cration de tables (relations)
CREATE TABLE nom_de_table ( colonnes et intgrits ) Exemple 1: CREATE TABLE Emprunteurs ( Matricule INT NOT NULL PRIMARY KEY, Nom_Prenom CHAR(60) NOT NULL, Dat_Nais DATE )
2010-2011 \ N. El Faddouli
45
SQL: LDD
Cration de tables (suite)
Exemple 2: CREATE TABLE Livres ( Cote INTEGER NOT NULL PRIMARY KEY, Titre CHAR(255) NOT NULL, Auteur CHAR(255), ISBN CHAR(100) )
2010-2011 \ N. El Faddouli
46
SQL: LDD
Cration de tables (suite)
Exemple 3: CREATE TABLE Emprunt ( Matricule INTEGER NOT NULL REFERENCES Emprunteurs (Matricule), Cote INTEGER NOT NULL, Dat_Emprunt DATE NOT NULL, Dat_Remise DATE, PRIMARY KEY (Matricule, Cote, Dat_Emprunt), FOREING KEY (Cote) REFERENCES Livres (Cote)
2010-2011 \ N. El Faddouli
)
47
SQL: LDD
Cration de tables (suite)
Exemple 4: CREATE TABLE Personne_Eau ( CIN CHAR(10) NOT NULL PRIMARY KEY, Nom CHAR(50) NOT NULL, Dat_B DATE, Quantit SMALLINT DEFAULT 1, CHECK (Quantit BETWEEN 1 AND 5) )
2010-2011 \ N. El Faddouli
48
SQL: LDD
Exercice:
Donnez le code SQL permettant de crer les tables de la BD dont le schma conceptuel est le suivant: Etudiant (Matricule, Nom, Prnom, DatN, Niveau) Matire (CodMat, NomMat, Coefficient, VHoraire) Notes(#Matricule, #CodMat, Note) N.B: Les coefficients sont entre 1 et 5 dont la valeur par dfaut est 1 Les notes sont entre 0 et 20.
2010-2011 \ N. El Faddouli 49
Exemple 1: Slection des titres et auteurs de tous les livres disponibles SELECT Titre, Auteur FROM Livres
Remarque: Pour ne pas avoir des tuples en double, on utilise DISTINCT Exemple: Slection de tous les auteurs SELECT DISTINCT Auteur Auteur FROM
2010-2011 \ N. El Faddouli
Livres
53
FROM
Livres
2010-2011 \ N. El Faddouli
54
Condition (R1)
2010-2011 \ N. El Faddouli
55
WHERE Condition Exemple 1: Slection des emprunts dont le matricule de l'emprunteur est 12308. SELECT * FROM Emprunts
WHERE Cote >= 130 AND Cote<=160 Exemple 3: Slection des livres dont la cote n'est pas entre 130 et 160. SELECT * FROM Livres NOT(Cote >= 130 AND Cote<=160)
WHERE Cote IN (130, 140, 145, 160) Exemple 5: Slection des livres dont le titre contient "BD". SELECT * FROM Livres
WHERE Titre LIKE 'Algbre*' Exemple 7: Slection des livres dont le titre se termine par "BD". SELECT * FROM Livres
Exemple 9: Slection des emprunts dont la date de remise est indtermin. SELECT * FROM Livres WHERE Dat_Remise IS NULL
2010-2011 \ N. El Faddouli 62
2010-2011 \ N. El Faddouli
63
Syntaxe en SQL:
2010-2011 \ N. El Faddouli
64
2010-2011 \ N. El Faddouli
66
Code 1 2 3
tudiant
Code_Dept 1 3
67
2010-2011 \ N. El Faddouli
68
2010-2011 \ N. El Faddouli
69
Code 1 3
2010-2011 \ N. El Faddouli
2010-2011 \ N. El Faddouli
72
Ecole Code_E 120 130 140 Nom_Ecole Mohammed V Imam Malek Al Massira NbSalle Code_V 20 15 25 1 1 3
73
Mohammed V 20
Mohammed V 20
Mohammed V 20
2010-2011 \ N. El Faddouli
2010-2011 \ N. El Faddouli
75
2010-2011 \ N. El Faddouli
SELECT NomC, J1.NomJ, J2.NomJ, J3.NomJ FROM Comptition, Joueur J1, Joueur J2, Joueur J3
2010-2011 \ N. El Faddouli
77
WHERE Condition ORDER BY Attribut1 DESC, Attribut2 ASC, L'ordre par dfaut: Croissant (ASC).
2010-2011 \ N. El Faddouli
78
ORDER BY Nom_Ecole, Nom_Ville DESC Exemple 18: SELECT FROM WHERE Nom_Ecole, Nom_Ville Ville V , Ecole E V.Code_V = E.Code_V
ORDER BY 1, 2 DESC
2010-2011 \ N. El Faddouli 79
2010-2011 \ N. El Faddouli
Remarque: Le rsultat est compos d'une seule colonne sans nom explicite. On peut donner un nom explicite une colonne comme suit: SELECT FROM COUNT(Nom_Ecole) AS [Nombre d'coles] Ecole
2010-2011 \ N. El Faddouli
81
WHERE V.Code_V = E.Code_V AND Nom_Ville = "Rabat" Exemple 21: Moyenne des salles par cole. SELECT AVG(NbSalle) AS [Moyenne des salles] FROM Ecole
82
2010-2011 \ N. El Faddouli
Exemple 23: Le nombre total de salles de toutes les coles. SELECT SUM(NbSalle) AS [Nombre total de salle] FROM Ecole
2010-2011 \ N. El Faddouli
83
2010-2011 \ N. El Faddouli
86
2010-2011 \ N. El Faddouli
87
2010-2011 \ N. El Faddouli
91
Origine du Problme
Les problmes viennent en fait des dpendances fonctionnelles internes aux relations.
2010-2011 \ N. El Faddouli
93
X Y X , Z Y, Z X Z X, Z T
Augmentation: X Y
Transitivit: X Y et Y Z
Pseudo-transitivit: X Y et Y, Z T Union: X Y et X Z
X Y, Z X Z
95
2010-2011 \ N. El Faddouli
96
2010-2011 \ N. El Faddouli
98
2010-2011 \ N. El Faddouli
106
2010-2011 \ N. El Faddouli
108
Exercice
Soit le schma relationnel de la base d'une bibliothque contenant les relations suivantes: Livre ( NumInv, Titre, Auteur, Qte) Abonne ( NumAb, Nom, Prnom) Prt ( #NumInv, #NumAb, DatePret, DateRemise) Exprimez les requtes suivantes en algbre relationnelle et en SQL: 1) Les titres et les quantits des livres. 2) Les livres disponibles en quantit suprieure ou gale 2 3) Les titres et les quantits des livres dont la quantit 2 4) Les livres dont la quantit est entre 2 et 10 ou dont le titre est "Unix". 5) Les quantits maximale et minimale disponibles.
2010-2011 \ N. El Faddouli 109
Exercice (Suite)
6) Les auteurs sans rptition. 7) Les titres et auteurs classs par titre croissant. 8) Les titres,auteurs et quantits classs par quantit dcroissante et par titre croissant. 9) Les livres dont le titre commence par "Programmation" et l'auteur contient "Meyer". 10) Le nombre de livre. 11) La moyenne des quantits. 12) Le numro et le nom de l'abonn et le titre d'un livre emprunt. 13) Le numro et le nom de l'abonn et le titre d'un livre emprunt. 14) Le nom de l'abonn et le nombre d'emprunt effectus.
2010-2011 \ N. El Faddouli 110
Contrle Continu
Exercice 1 : A partir du schma de base suivant : Etudiant (numEtudiant, nom, prnom, age, adresse) Cours (numCours, intitule, nbreHeure, salle, #numDep) Inscription (#numCours, #numEtudiant) Dpartement (numDep, nomDep, nbreEnseignant) Inscription modlise linscription dun tudiant (numEtudiant) un cours (numCours). Un cours est gr par un dpartement (numDep) Exprimer les requtes en algbre relationnelle: R1) Donner toutes les informations associes aux cours grs par le dpartement de nom "Informatique". R2) Donner les numEtudiant et nom des tudiants inscrits dans les cours grs par le dpartement de nom "Informatique".
2010-2011 \ N. El Faddouli 111
Contrle Continu
Exercice 2: Exprimer en SQL les requtes suivantes : R1) Donner les nom et prnom et intitule des cours pour lesquels ltudiant est inscrit. R2) Donner les numCours et intitule des cours pour lesquels ltudiant de cl numEtudiant = 1 est inscrit R3) Donner les numCours, intitule et nombre d'inscrits des cours. R4) Donner les numCours, intitule et nombre d'inscrits des cours pour lesquels il y a 15 tudiants inscrits ou plus R5) Donner pour chaque cours les numCours et intitule du cours ainsi que le nombre dlves inscrits dans ce cours R6) Donner pour chaque dpartement le nombre dtudiants inscrits dans chaque cours gr par ce dpartement ainsi que numCours et intitule
2010-2011 \ N. El Faddouli 112
Code_V Nom_Ville Code_V Rabat Nom_Ville 1 1 Rabat 1 Rabat 1 1 3 2 2 2 3 3 3 SELECT FROM WHERE Rabat Rabat Nom_Ville Tanger Casa Casa Rabat Casa Tanger Tanger Tanger Tanger
Code_E Nom_Ecole Code_E Mohammed Nom_EcoleV 120 120 Mohammed 130 Imam Malek V 130 140 140 120 130 140 120 130 140
Imam Malek 25 15 Al Massira Expr1000 Nbre d'coles Al Massira 25 Mohammed V 20 Imam 2 Malek Al Massira 1 Imam Malek COUNT(*) Al Massira 15 25 15 25
Mohammed V 20
GROUP BY Code_V
2010-2011 \ N. El Faddouli 113