Actualites | Forum |Archives
Le magazine des d�cideurs et webmasters qui gagnent !
Inscription | Livre d'or | Plan du site | 15 visiteurs actifs
   
A la Une
Actualit�
Dossiers
Communiqu�s
Coin Technique
Agenda des salons
Emploi
Echange de liens

Archives
S�lection
Exp�rience qui parle
Internet quotidien
Tous les dossiers

Forum
Forum SAM-MAG

Guides
Check-list de la promotion des sites
Promouvoir et r�f�rencer les sites web

Contact
Nous contacter
Newsletter
La protection des donn�es personnelles


 
  Les bases de données relationnelles
Dossier "SAM l'Informaticien" du 16 au 29 octobre 2000 par St�phane Lambert

ySql est une base libre sous Unix/Linux tr�s utilis�e actuellement dans le d�veloppement Web. Mysql poss�de des temps de r�ponse tr�s rapides (mais elle ne v�rifie rien). Mysql tient en revanche tr�s bien la charge pour des bases peut compliqu�es, m�me en cas de forte audience. Un des sites les plus connus utilisant Mysql est www.boursorama.com , h�berg� par Teaser. N�anmoins, lorsqu'il s'agit d'�tudier un syst�me d'information complexe, elle ne se r�v�le plus du tout adapt�e.

Avantages d'une base de donn�es relationnelle (SGBDR)

Les bases de donn�es relationnelles ont �t� invent�es en 1970 par CODD. La premi�re a �t� Ingres. Les premiers syst�mes commerciaux sont apparus au d�but des ann�es 80. Cela fait donc plus de 20 ans que l'industrie et la Haute technologie utilisent et am�liorent ces syst�mes qui sont maintenant largement � maturit�. Les plus connues sont SYBASE, ORACLE, INFORMIX, DB2, SQL SERVEUR.

Les plus utilis�s sur Internet sont SQL SERVER et ORACLE. Elles b�n�ficient d'un support clairement identifi�. Leurs avantages sont surtout �valu�s en terme de performances, d'int�grit� des donn�es. Elles poss�dent des syst�mes �volu�s de sauvegarde et de v�rifications de coh�rences. Ces bases sont pr�vues pour les syst�mes d'informations compliqu�s n�cessitant de hauts rendements. Voici une explication en d�tail avec des exemples simples.

Contrainte d'Int�grit� R�f�rentielle (CIF) entre deux relations

Un d�partement est identifi� par son id_departement et poss�de un nom. Un employ� est identifi� par son id_employe, appartient � un d�partement, poss�de un nom, une adresse et une fonction. Un employ� appartient � un et un seul d�partement, un d�partement contient de 0 à n employ�s.

D'o� le Mod�le Conceptuel de Donn�e (MCD)

Il entra�ne le MLDR (Mod�le Logique) suivant

  • Employe (id_employe, #id_dept, nom, adresse, fonction)
  • Departement (id_departement, nom)
    Le mod�le physique ainsi g�n�r� est

Ces deux entit�s sont li�es par une CIF. On ne peut cr�er un Employ� si le D�partement lui correspondant n'a pas �t� cr��. De m�me, on ne peut supprimer un d�partement qui contient encore des employ�s. L'utilisation d'une base de donn�e relationnelle permet dans ce cas de confier les v�rifications correspondantes � la base elle-m�me. Sinon, il faut bien se rappeler de le faire tout le temps � la main dans chaque partie du programme qui aura � cr�er, � supprimer ou � modifier un employ� ou un d�partement, au risque d'avoir des donn�es aberrantes.

Cl�s primaires multiples

Un produit est unique, il a un nom et un prix. Pareil pour le d�p�t. Un produit peut �tre dans 0 ou n d�p�t. Un d�p�t contient 0 ou n produits.
D'o� le Mod�le Conceptuel de Donn�e (MCD)

Qui entra�ne le MLDR (Mod�le Logique)

Produit (id_produit, nom, prix)
Depot (id_depot, adresse, volume)
Stock (#id_produit, #id_depot, quantit�)

Le mod�le physique ainsi g�n�r� est

La table Stock sert � savoir combien il y a de produits par d�p�t. Chaque enregistrement de Stock est caract�ris� par une association produit/d�p�t. Cette association DOIT �tre unique, la cl� primaire �tant ici la concat�nation des deux cl�s �trang�res. Une base de donn�es relationnelle permettra de mettre une telle contrainte, et d'emp�cher toute duplication. Elle permettra aussi d'interdire automatiquement la suppression d'un d�p�t ou d'un produit utilis� dans Stock (CIF). Sinon, il faudra, lors de chaque insertion, aller v�rifier manuellement que l'association produit/d�p�t que l'on rajoute n'est pas d�j� pr�sente dans la table. De m�me, lors de chaque suppression d'un produit ou d'un d�p�t, il faudra v�rifier dans chaque partie correspondante du programme que ce produit ou que ce d�p�t n'est pas utilis� dans Stock, au risque d'avoir des donn�es aberrantes.

Proc�dures stock�es

Une proc�dure stock�e est un ensemble d'instructions SQL qui s'ex�cute � la demande. On peut lui passer des param�tres et elle peut retourner un r�sultat au programme. Une proc�dure stock�e est compil�e au sein m�me du moteur de base de donn�e : elle s'ex�cute toujours plus rapidement qu'un script PHP. Lors de leur ex�cution, un seul �change se produit avec la base, lors de l'appel de la proc�dure et de la r�cup�ration de son r�sultat, alors que l'ex�cution de chaque commande SQL en n�cessite plusieurs. D�s que plusieurs requ�tes doivent s'encha�ner, l'emploi de proc�dures stock�es est toujours pr�f�rable au SQL dynamique. Dans le cas d'une s�paration du serveur de base de donn�e du serveur frontal, elles permettent aussi de diminuer le trafic r�seau entre les deux machines.

Triggers

Un Trigger est un ensemble d'instructions SQL appel� aussi proc�dure dont l'ex�cution est li�e � un �v�nement dans la base de donn�e. Cet �v�nement peut �tre une insertion, un enregistrement ou une modification.
Le trigger peut �tre lanc� par la base avant l'�v�nement, ou apr�s. Lors d'une suppression, cela permet par exemple d'aller automatiquement supprimer les clefs correspondantes l� o� elles sont utilis�es. Lors d'un ajout ou d'une modification, cela permet d'AUTOMATISER toutes les mises � jours qui en d�coulent. Sinon, � chaque fois, lors de chaque �criture d'une insertion, modification ou suppression dans la base, programmer � la main toutes les cons�quences de cet �v�nement, sous peine d'avoir des donn�es aberrantes � la moindre petite erreur.

Transactions

Une transaction est un ensemble d'actions permettant de prendre une base donn�e dans un �tat coh�rent et de la rendre dans un �tat coh�rent. Il s'agit d'�viter par exemple que l'on puisse lire une information que l'on est en train de modifier par ailleurs ou de mettre � jour, ou m�me que deux utilisateurs mettent � jour simultan�ment la m�me information.
Chaque transaction se termine par un COMMIT si la transaction a r�ussi, ou par un ROLLBACK qui la ram�ne � l'�tat initial si la transaction �choue pour une raison ou pour une autre. Une transaction est en fait un comportement atomique d'une s�quence d'action (elle s'effectue avec succ�s ou elle est annul�e).
L'exemple le plus r�pandu est celui du magasin : le magasinier re�oit ses livraisons, et remplis la base. La caissi�re passe les codes bars, et vide la base. Le chef de rayon modifie ses marges, fixe ses prix, et consulte ses statistiques. Si les trois font cela simultan�ment sur les m�me donn�es, la base sera corrompue et aberrante dans l'heure qui suivra : les donn�es seront fausses, et les informations affich�s � l'�cran n'auront aucunes significations car entre la lecture et la r��criture, elles auront chang�.
Un des avantages de la transaction est que si une transaction s'ex�cute toute seule, dans une base de donn�es coh�rente, alors elle va laisser la base de donn�es dans un �tat coh�rent.

St�phane Lambert
www.vediovis.fr

Tous droits réservés - Reproduction même partielle interdite sans autorisation préalable

 
 
Google
 
Web www.sam-mag.com
 

Copyright � ACORUS 2004. All Rights Reserved

- Sam-Mag.com Referencement-Sur-mesure - Referencer-Site-Web.com
Visibilite-Internationale.com - Referencement-Immobilier.net