TD de Base de Donnee
TD de Base de Donnee
TD de Base de Donnee
Produit - Id produit, -
Identifiant - Num elemantaire
- Référence, du produit - Alpha
- Désignation - Référence du numeriqu
produit e
- Désignation
du projet
Mouvement - IdMouv -identifiant du - Num elemantaire
- Entrée mouvement - Num
- Sortie - quantité du - Num
- Datecreation mouvment - Date
- quantité sortie
Historisation - idHisto - Identifant - Num elementaire
- nomuser historisatrion - A.Num
- Nom de
l’utilisateur
TRAVAUX DIRIGES DE BASE DE DONNEES AVANCEE.
1- Dictionnaire de données
Nature : définie la manière avec laquelle les données font être récupérer
2- REDACTION DU MCD
prduit
idProduit
Reference Historisation
designation id
Histo
1.n
nomUser
1.1
subis
Mouvement concerne
idMouv
Entree
DateCreation
3- SCHEMA BD (MLD)
Mouvement
Produit Historisation
idMouv
idProduit idHisto
idProduit
reference idMouv
entree
designation nomUser
sortie
dateCreation
4- Requêtes
)engine = InnoDB ;
idProduit int ,
entree int,
sortie int,
contraint
)engine==InnoDB ;
idMouv int,
nomUser varchar (20),
contraint
)engine= InnoDB ;
1. Bloc de code stocké dans la mémoire d’un SGBD qu’on appel en cas de besoin pour resoudre
un problème.
Syntaxe d’une procédure stocké :
Create procedure nomProcedure (arguments)
Begin
******code sql*******
End ;
Syntaxe d’une fonction stocké
Begin
*****code sql*****
End ;
2. La transaction permet de vérifier que tout les requêtes sql s 'exécute ou rien ne s’exécute
(autocommit)
Syntaxe d’une transaction
Set autocommit=0 ;
Start transaction ;
*****requête sql****
Commit ;
3. A = Atomicité (TOUT ou RIEN soit toutes les requêtes marchent soit rien ne marchent)
C= Cohérence (que la transaction ait réussie ou pas elle laisse la BD dans l’etat qu’elle la
trouvé)
I= Isolation ( pour éviter les conflits lorsque plusieurs users manipulent ma BD)
CAS PRATIQUE
Delimiter |
Declare id Mint ;
Values(idM, CURRENT.USER())
End |
Delimter ;
2. Le curseur n’est pas un objet qu’on peut créer indépendamment il existe déjà dans les procédures
stockées
Delimeter |
Begin
Declare curEntSor CURSOR for Select entree, sortie from mouvement where dateJour
= dateJ ;
Open curEnstSor ;
Boucle :Loop
If(stop=1) theen
Leaves boucles ;
Else
End if ;
End loop ;
Close curEntSor ;
Dellimeter ;
Code Sql :
Set autocommit=0 ;
Start transaction ;
5. Utilisation de la vue.
Code sql :
Create View VueProduitMouvement AS select reference, designation, entre, sortie, dateJour from
Produit InnerJoin Mouvement on Produit.idProduit=Mouvement.idProduit ;
La différence entre la table et la vue est que la vue ne contient pas des données elle recupère les
données lorsqu’on l’éxecute