Home

Création de bases de données

image

Contents

1. l interrogation de la base l aide du langage SQL Cet exemple permet de r capituler les concepts pr sent s dans les chapitres pr c dents savoir l analyse du monde r el et la cr ation du mod le entit association le passage au mod le relationnel la cr ation des tables en SQL par l int gration des contraintes de contenu l interrogation de la base de donn es par des requ tes SQL On aborde galement ici les diff rents aspects d ordre pratique qui se posent chaque tape de la r alisation d une base de donn es 128 Cr ation de bases de donn es 1 Pr sentation de l activit mod liser On veut mod liser la gestion d une entreprise de fabrication et de livraison de pizzas domicile la soci t RaPizz Il s agit d une soci t en franchise qui utilise des formats et des compositions de pizzas normalis s partir d un ensemble d ingr dients d termin s En d autres termes le client n a pas la libert de composer lui m me une pizza personnalis e il doit choisir dans le catalogue propos Produits Les produits vendus sont des pizzas Une pizza est caract ris e par son nom les ingr dients qui la composent et son prix de base Pour chaque pizza il existe trois tailles naine humaine et ogresse La naine est 1 3 moins ch re que le prix de base c est dire la taille humaine et l
2. Les op rations sp cifiques relationnelles Projection s lection ou restriction et jointure On a pr sent galement la jointure externe qui permet de r pondre des questions sp cifiques m me s il ne s agit pas d une op ration de base du relationnel Les op rations et les fonctions de calcul Elles ne constituent pas r ellement des op rations du monde relationnel mais sont utiles pour effectuer des calculs sans recourir un langage de programmation La coh rence des donn es contenues dans les relations est am lior e par la d finition de contraintes que l on appliquera sur les relations au moment de leur cr ation Ces con traintes expriment essentiellement les conditions d appartenance un ensemble que l on nomme le domaine du champ On peut d crire cet ensemble de plusieurs mani res Une liste exhaustive de valeurs comme celles des jours de la semaine lundi mardi etc Le respect de propri t s comme l ge doit tre compris entre 7 et 77 ans L utilisation des valeurs d un champ comprises dans une autre relation de r f rence On parle de cl trang re La mise en uvre de ces contraintes est assur e par le SGBD en utilisant le Langage de D finition de Donn es LDD Apr s avoir pr sent les concepts de relation ou de table et les outils qui permettent de les manipuler on a d crit les r gles qui conduisent du mod le conceptuel pr sen
3. On se trouve dans le cas tr s classique de deux entit s li es par une association qui don nent trois tables pizza et ingredient li es par compose Il sera n cessaire d utiliser un langage de programmation pour obtenir un affichage l gant du nom de la pizza de son prix et des ingr dients qui la composent En effet pour chaque nom de pizza on obtien dra autant de lignes que d ingr dients 4 2 FICHE DE LIVRAISON On veut imprimer une fiche de livraison qui mentionne le nom du livreur le type du v hi cule utilis le nom du client la date de la commande le retard ventuel le nom et le prix de base de la pizza Par le m me raisonnement que pr c demment on identifie les tables commande client pizza livreur et vehicule pour les champs projeter 142 Cr ation de bases de donn es client pour le nom du client pizza pour le nom et le prix de la pizza livreur pour le nom du livreur vehicule pour le type du v hicule commande pour le retard le num ro de commande et surtout pour tablir le lien entre toutes les tables SELECT C NumCommande CI NomClient P NomPizza P Prix LI NomLivreur V Type C Retard FROM commande C JOIN livreur LI JOIN pizza P JOIN client CI JOIN vehicule V ON C CodeLivreur LI CodeLivreur AND P NomPizza C NomPizza AND C NumClient CI NumClient AND C NumImmat V NumImmat
4. Est mari DateMariage 0 n 0 n 91 Approche relationnelle Exercices 3 Chapitre EXERCICE 12 NORMALISATION La relation n est pas en premi re forme normale en raison des valeurs qui correspondent bien des valeurs multiples contenues dans le champ Adresse_Mail En revanche il n est pas s r que la valeur Employ asserment de le champ Poste soit une valeur multiple Une virgule dans un champ n induit pas n cessairement qu il contient des valeurs multiples c est peut tre un contenu normalis un peu trange certes On remarque que cette relation n a pas non plus de cl candidate s rieuse si l on tient compte des d pendances fonctionnelles entre les champs Or seule la pr sence d une cl permettra de faire la d composition n cessaire la normalisation On ajoute un champ Ident_Personne qui en sera la cl et l on d compose en trois relations comme on l a vu pr c demment Une autre solution moins lourde est d ajouter un champ suppl mentaire pour l adresse mail en supposant que l on n en stockera toujours que deux On effectue alors la r parti tion des valeurs entre les champs Il faut tout de m me ajouter le champ Ident_Personne pour que la relation poss de une cl voir figure 3 56 Personne Ident_Personne Nom Poste Adresse_mail1 Adresse_mail2 Cette relation est elle en premi re forme normale voir figure 3 55 Personn
5. Figure 2 28 Entit s clients film personnel li es par les associations r servation location joue et r alise sans cardinalit s EXERCICE 9 REPR SENTATION AVEC UML Les entit s sont repr sent es par des classes UML Les associations sont repr sent es par des associations UML Les associations location et r servation qui poss dent des attri buts seront munies d une classe UML sans nom qui permet d utiliser ces attributs Les car dinalit s sont d duites des phrases suivantes Location Un client loue aucun ou plusieurs films 0 n Un film est lou aucune ou plusieurs fois 0 n R servation Un client r serve aucun ou plusieurs films 0 n partir du mod le entit association mod lisant le club de location de DVD pr c dent faites sa repr sentation en utilisant UML Proposez des cardinalit s pour les associations en les justifiant Client NumClient NomClient Pr nomClient AdresseClient T l Client Compte Film NumFilm Titre Genre Prix NbDVD R servation NumPers NomPers Pr nomPers Personnel Joue R alise Location NumR s NbeJourR s DateR s NumLoc NbeJourLoc DateLoc 53 Analyse du monde r el Exercices 2 Chapitre Un film est r serv aucune ou plusieurs fois 0 n Joue Une personne joue dans aucun ou plusieurs films 0 n Un fi
6. Modification des coefficients de la taille naine dans la table tarification UPDATE tarification SET Coefficient 0 5 WHERE Taille naine D finition d un point de retour que l on nomme COEFF_OGRE SAVEPOINT COEFF_OGRE Modification des coefficients de la taille ogresse dans la table tarification UPDATE tarification SET Coefficient 1 5 WHERE Taille ogresse On a d fini ici deux points de retour COEFF_NAINE et COEFF_OGRE qui permettent de revenir l tat de la base avant les modifications des coefficients Pour revenir l tat de la base avant modification de tous les coefficients on retourne au point COEFF_NAINE Annulation des modifications faites depuis le point COEFF_NAINE ROLLBACK TO COEFF_NAINE La transaction ne se termine pas lorsque l on fait un ROLLBACK vers un point de retour On peut donc essayer d autres coefficients sans oublier de red finir de nouveaux points de retour D finition d un point de retour que l on nomme COEFF_NAINE2 SAVEPOINT COEFF_NAINE2 Modification des coefficients de la taille naine dans la table tarification UPDATE tarification SET Coefficient 0 5 WHERE Taille naine On d sire effectuer une simulation de mise jour de la base de donn es livraison de pizzas L id e est de proc der une augmentation g n rale de 10 du prix des pizzas tout en vitant de faire fuir les c
7. avec pour objectif d identifier une occurrence ou repr sentant de cette entit La notion d identi fiant a les m mes propri t s que la cl dans une relation qui sera introduite au chapitre 3 On repr sente une entit par un rectangle qui contient le nom de l entit et ses attributs L identifiant est soulign ou pr c d d un caract re voir figure 2 1 Figure 2 1 Entit s chambre attributs et occurrences Le choix de l identifiant n est pas toujours trivial Il est parfois n cessaire d introduire arti ficiellement un attribut suppl mentaire afin de pouvoir disposer d un identifiant Dans le cas de l h tel il faudrait int grer un attribut pour identifier un client voir figure 2 2 dans la mesure o aucun des attributs issus de l analyse ne permet d identifier de mani re unique un client Classiquement une identification sans ambigu t reposera sur un num ro unique dans notre exemple c est l attribut IDClient Les identifiants peuvent tre compos s par la juxtaposition de diff rents attributs Par exemple on peut identifier un client en juxtaposant les attributs nom pr nom date_naissance ville_naissance En effet il est peu probable que deux homonymes soient n s le m me jour dans la m me ville Cependant dans la pratique il est recom mand autant que faire se peut de choisir un seul attribut comme identifiant En effet il sera plus difficil
8. jour les donn es contenues dans les vues sous certaines conditions Les per missions sur les vues sont ensuite accord es par les instructions de type GRANT utilis es pr c demment Voici quelques exemples de vues qui recourent la base de donn es exem ple casse Vue utilisant une jointure simple Le service marketing veut v rifier s il n y a pas de corr lations entre la couleur des v hicu les vendus et la ville dans laquelle r sident les clients qui les ach tent Il est inutile de four nir ce service la proc dure pour obtenir ces informations qui n cessite de lier les trois tables voiture vente et client On cr e une vue qui contient uniquement la projection de ces deux informations et qui s lectionne les voitures vendues Remarque Seul l utilisateur qui lui a donn ces droits peut les lui retirer Dans notre cas la commande pr c dente doit tre lanc e par l utilisateur pastorius 166 Cr ation de bases de donn es CREATE VIEW couleur_ville Couleur Ville AS SELECT voiture couleur client ville FROM voiture JOIN vente JOIN client ON voiture NumVoit vente Numvoit AND client NumAch vente Numach On donne les droits de visualiser ces informations aux personnes du service marketing qui sont les utilisateurs nhop et miller GRANT SELECT ON couleur_ville TO nhop miller Vue utilisant une jointure plus labor e On souhaite que tous les uti
9. par oppo sition l op ration pr c dente Elle peut s exprimer de plusieurs mani res en SQL La pre mi re est semblable la restriction du produit cart sien pr c dent mais dans ce cas la requ te n est g n ralement pas trait e de mani re optimale par le SGBD 2 Irma 20 Lille F 2 Citroen SM Noire 3 Henri 45 Paris M 2 Citroen SM Noire 4 Josette 34 Lyon F 2 Citroen SM Noire 5 Jacques 50 Bordeaux M 2 Citroen SM Noire 1 Nestor 96 Paris M 3 Opel GT Blanche 2 Irma 20 Lille F 3 Opel GT Blanche 3 Henri 45 Paris M 3 Opel GT Blanche 4 Josette 34 Lyon F 3 Opel GT Blanche 5 Jacques 50 Bordeaux M 3 Opel GT Blanche 1 Nestor 96 Paris M 4 Peugeot 403 Blanche 2 Irma 20 Lille F 4 Peugeot 403 Blanche 3 Henri 45 Paris M 4 Peugeot 403 Blanche 4 Josette 34 Lyon F 4 Peugeot 403 Blanche 5 Jacques 50 Bordeaux M 4 Peugeot 403 Blanche 1 Nestor 96 Paris M 5 Renault AlpineA 310 Rose 2 Irma 20 Lille F 5 Renault AlpineA 310 Rose 3 Henri 45 Paris M 5 Renault AlpineA 310 Rose 4 Josette 34 Lyon F 5 Renault AlpineA 310 Rose 5 Jacques 50 Bordeaux M 5 Renault AlpineA 310 Rose 1 Nestor 96 Paris M 6 Renault Floride Bleue 2 Irma 20 Lille F 6 Renault Floride Bleue 3 Henri 45 Paris M 6 Renault Floride Bleue 4 Josette 34 Lyon F 6 Renault
10. vue pr c demment le champ Appareil semble tre une cl puisqu il contient une valeur unique pour chacun des enregistrements Cependant il est tout fait possible que la cuisine con sid r e comprenne un autre r frig rateur de couleur bleue auquel cas la valeur ne serait plus unique et ne permettrait pas de retrouver l enregistrement Dans ce cas de figure la combinaison Appareil Couleur pourrait sembler tre une cl mais on ne peut en tre certain compte tenu de l volution des donn es Pour d signer une cl primaire il faut donc galement prendre en compte le sens des donn es dans la vie r elle Les relations qui existent entre les diff rents champs d une rela tion vont tre importantes on exprime ces relations l aide de d pendances fonction nelles Une d pendance fonctionnelle existe entre deux ensembles de champs si les valeurs contenues dans l un des ensembles de champs permettent de d terminer les valeurs conte nues dans l autre ensemble Cette propri t se traduit en termes math matiques de la mani re suivante Soit Cx un ensemble de champs x1 x2 x3 et Cy un ensemble de champs y1 y2 y3 d une relation R d1 d2 x1 x2 x3 u1 u2 u3 y1 y2 y3 Supposons que l on consid re des valeurs x1_i x2_i x3_i et x1_j x2_j x3_j telles que l on ait R d1_i d2_i x1_i x2_i x3_i u1_i u2_i u3_i y1_i y2_i y3_i et R d1_j d2_j x1_j x2_j x3_j u1_j u2_j u3_j y1_j y2_j y
11. 30 000 1998 06 14 10 000 1985 12 03 S lection des lignes de la table pr c dente Tri par Marque de la table voiture Tri par Marque de la table voiture en ordre d croissant 110 Cr ation de bases de donn es On peut indiquer plusieurs crit res de tri qui sont lus et trait s de gauche droite ici on trie d abord par villes puis par ges SELECT Nom Age Ville FROM personne ORDER BY Ville Age 3 Gestion de tables et de vues 3 1 TABLES Le langage SQL comprend une partie manipulation de donn es LMD pour g rer les tables qui est pr sent e dans cette section Les op rations de cr ation de suppression et de modification des tables mettent jour le dictionnaire de donn es du SGBD On rappelle que le dictionnaire de donn es est une structure propre au SGBD qui contient la descrip tion des objets du SGBD base de donn es tables colonnes droits etc Cr ation La cr ation d une table est une op ration importante qu il faut entreprendre avec soin C est lors de cette tape que l on d finit le type de donn es la cl les index ventuels et qu il convient d imposer des contraintes de validation garantissant la bonne qualit des informations entr es dans la table La forme g n rale de l instruction de cr ation de table est la suivante CREATE TABLE lt Nom de la table gt liste des colonnes avec leur type s par par CREATE TABLE voiture
12. D marche d analyse 28 2 Mod lisation par le mod le entit association 30 3 Remise en cause et volution du mod le 35 4 Repr sentation avec UML 40 Exercices 1 Identifiant d une entit 44 2 Identification des entit s et des associations 44 3 Questions associ es aux cardinalit s 45 4 Description du monde r el partir des cardinalit s 47 5 Association inutile 48 6 Association r flexive 49 7 Association ternaire 49 8 De l nonc au mod le entit association 51 9 Repr sentation avec UML 52 10 Autre exemple le camping l Uliastru 53 Ce chapitre pr sente la premi re tape du processus de mod lisation du monde r el qui consiste recueillir les informations puis les transcrire sous une forme conduisant un passage ais au mod le relationnel On utilise cette fin le mod le entit association dont les concepts et la mise en uvre sont pr sent s dans ce chapitre Cette d marche de mod lisation est utilis e depuis plus de vingt ans et pr sente l int r t de proposer une m thode d analyse simple et efficace dans la majorit des cas Au cours de
13. Exercices 1 Chapitre EXERCICE 8 BASE DE DONN ES R PARTIES C est une solution co teuse en ressources en particulier pour la synchronisation de toutes les mises jour mais qui peut remplir deux fonctions 1 De toute vidence l id e est que les diff rents sites de l entreprise acc dent leur copie locale des donn es Cela permet d acc l rer les acc s et de r partir la charge sur les ser veurs locaux de chaque site Accessoirement la circulation des requ tes d interrogation et de mise jour peut tre limit e au r seau local ce qui renforce la s curit 2 Il existe six copies des donn es sur des sites g ographiquement s par s En cas de sinistre on peut repartir sans probl mes avec une des copies de la base Avant de mettre en place un tel dispositif on doit se poser la question de la mise jour des donn es Est ce que les modifications se font uniquement sur la base ma tre ce qui semble plus raisonnable ou peut on les effectuer sur toutes les bases et consolider ensuite EXERCICE 9 XML Par nature les donn es contenues dans une base de donn es sont structur es Le langage HTML a t con u pour d crire la mise en forme d un texte sans consid ration de sa structure interne Donc il n est pas adapt si l on d sire conserver la structuration des donn es Le langage XML a t pr cis ment cr pour d crire la structure des donn es Il est toujours possi
14. Un laboratoire de recherche en sociologie effectue des tudes sur la client le sp ci fiquement sur la relation entre les ingr dients des pizzas achet es et l adresse des clients Ces utilisateurs ne doivent acc der qu aux champs dont ils ont strictement besoin 180 Cr ation de bases de donn es Service comptabilit Le besoin est uniquement d avoir acc s aux nombres de com mandes livr es pour chaque livreur Il s agit du r sultat d un calcul classique sur un agr gat On affiche uniquement les informations du livreur code et nom et le r sultat du calcul SELECT L CodeLivreur L NomLivreur COUNT AS Nombre_Livraison FROM commande C JOIN livreur L ON C CodeLivreur L CodeLivreur GROUP BY C CodeLivreur ORDER BY L NomLivreur On cr e une vue partir de cette requ te CREATE VIEW commande_livreur AS SELECT L CodeLivreur L NomLivreur COUNT AS Nombre_Livraison FROM commande C JOIN livreur L ON C CodeLivreur L CodeLivreur GROUP BY C CodeLivreur ORDER BY L NomLivreur On distribue les droits de lecture l utilisateur comptabilit GRANT SELECT ON commande_livreur TO comptabilite Service du personnel Par un raisonnement identique on obtiendrait la requ te qui permet de calculer le nombre de retards cumul s par livreur CREATE VIEW retard_livreur AS SELECT L CodeLivreur L NomLivreur COUNT AS Nombre_Retard FROM commande C JOIN livreur L ON C CodeLivreur L CodeLivreur WHERE C Re
15. Un lecteur est consid r comme lecteur s il a au moins d j emprunt un livre Un livre peut tre emprunt par plusieurs lecteurs Il n y a pas de livres anonymes un livre est crit par au moins un auteur On doit ensuite pr ciser les donn es qui constituent les objets ainsi que celles qui caract risent les liens entre les objets Remarque Le terme d objet du monde r el employ ici n est pas pris au sens de la programmation objet Il s agit plut t de caract riser un regroupement logique de donn es Un titre un auteur un diteur constituent un livre Un nom un pr nom un num ro de S curit sociale constituent une personne 29 Analyse du monde r el 2 Chapitre 1 2 MISE EN UVRE Comment proc der intuitivement pour obtenir ces phrases Un bon point de d part consiste faire l inventaire des objets tangibles ou per us du monde r el Une fois ces objets identifi s on cherche exprimer le ou les lien s qui per met tent de les associer Par exemple si l on doit mod liser une activit de location de DVD les objets que l on peut appr hender imm diatement sont les DVD et les clients En ce qui concerne les liens entre ces objets on note qu un client r serve un DVD ou qu un client loue un DVD etc Ensuite il faut identifier les objets moins faciles percevoir directement les fournisseurs les acteurs les r alisateurs Enfin une fois les objets iden tifi s on c
16. est pas toujours justifi La robustesse et la popularit de l appro che relationnelle qui a mis presque vingt ans s imposer a galement frein le d veloppement de l approche objet pure dans les bases de donn es Les donn es mod li s es sous forme d objets sont aussi plus complexes repr senter du point de vue du SGBD et l on rencontre encore tr s souvent des probl mes de performance Figure 1 4 Mod le objet Mod le relationnel objet Une demande d volution du strict mod le relationnel existe toutefois En effet la gestion des donn es autres que du texte et des nombres comme des images du son et des vid os implique l volution du mod le relationnel De m me les champs dits multivalu s disposant de plusieurs valeurs telles qu une liste de pr noms ou des coordonn es g ogra phiques ne peuvent pas tre mod lis s efficacement en utilisant ce type d approche L id e est alors d int grer de l objet au mod le relationnel existant plut t que d utiliser l appro che objet pure Il convient de remarquer que ce type d volution a d j t d velopp dans le cadre des langages de programmation Le langage C est l volution int grant l appro che objet du langage C et non pas un langage objet pur comme peut l tre Smalltalk Cette extension adopt e par la plupart des SGBD se nomme relationnel objet et per met aux concepteurs des bases de donn
17. issue de l entit commande En r sum l information n est disponible que par une jointure entre les tables com mande et livreur L id e ici est de trouver les codes des livreurs pr sents dans la table livreur mais pas dans la table commande D apr s notre d finition du mod le entit association ce ne devrait pas tre possible puisque la cardinalit du point de vue du c t de l entit livreur est de type 1 n un livreur a au moins livr une pizza et est susceptible d en livrer plusieurs On emploie alors une jointure externe qui nous permet d inclure dans le r sultat les lignes n ayant pas de correspondance dans la table commande SELECT FROM livreur LEFT JOIN commande ON livreur CodeLivreur commande CodeLivreur Pour s lectionner ceux qui n auraient pas effectu de livraison on choisit une ligne dont un champ issu de la table commande est vide a une valeur nulle en SQL On projette sur le champ NomLivreur de la table commande qui tait l information demand e SELECT livreur NomLivreur FROM livreur LEFT JOIN commande ON livreur CodeLivreur commande CodeLivreur WHERE commande CodeLivreur IS NULL EXERCICE 7 MISE JOUR DE LA BASE On calcule le prix de la commande comme on l a vu pr c demment La commande est identifi e par son num ro de commande ici 60 On aura galement besoin du num ro de client pour faire l
18. sateurs ou aux applications concern es Dans cet exemple on a surtout cherch mettre en vidence tous les droits distribuer Il existe des notations plus concises Cr ation du r le client et distribution des droits CREATE ROLE client GRANT SELECT ON pizza TO client GRANT SELECT ON compose TO client GRANT SELECT ON ingr dient TO client GRANT SELECT ON tarification TO client GRANT SELECT ON client TO client Cr ation du r le employe et distribution des droits CREATE ROLE employe GRANT SELECT ON pizza TO employe GRANT SELECT ON compose TO employe GRANT SELECT ON ingr dient TO employe GRANT SELECT ON tarification TO employe GRANT SELECT ON vehicule TO employe GRANT SELECT ON livreur TO employe GRANT SELECT ON client TO employe GRANT UPDATE ON client TO employe GRANT DELETE ON client TO employe GRANT INSERT ON client TO employe GRANT SELECT ON commande TO employe GRANT UPDATE ON commande TO employe GRANT DELETE ON commande TO employe GRANT INSERT ON commande TO employe Cr ation du r le gestionnaire et distribution des droits CREATE ROLE gestionnaire GRANT SELECT ON commande TO gestionnaire GRANT SELECT ON client TO gestionnaire GRANT UPDATE ON client TO gestionnaire GRANT DELETE ON client TO gestionnaire GRANT INSERT ON client TO gestionnaire GRANT SELECT ON livreur TO gestionnaire GRANT UPDATE ON livreur TO gestionnaire commande pizza compose ingredie
19. sur cette norme La troisi me version du langage SQL3 normalis e en 1999 ajoute essen tiellement les fonctionnalit s li es l utilisation de l approche objet La quasi totalit des SGBD disposent d une interface SQL m me si aucun ne couvre l ensemble de la norme La norme SQL pr voit trois niveaux de conformit le niveau d entr e le niveau interm diaire et le niveau complet Les SGBD respectent en g n ral le premier niveau et adoptent certains l ments des autres niveaux La normalisation du lan gage garantit la portabilit g n rale des applications d un SGBD un autre m me s il sub siste des diff rences entre les approches des diff rents diteurs En effet compte tenu du temps n cessaire au processus de modification de la norme certains diteurs la devancent parfois et int grent des fonctionnalit s qui leur semblent essentielles ou susceptibles de leur donner un avantage concurrentiel Le langage SQL manipule l objet fondamental de l approche relationnelle la relation repr sent e par une table vue au chapitre 3 SQL est un langage dit non proc dural ou d claratif c est dire que l on ne d crit pas la mani re d effectuer les op rations pas pas c est le SGBD qui choisit la m thode utilis e pour y parvenir C est ce qui explique que des concours de rapidit de r solution de requ te soient organis s chaque ann e pour tester les diff rentes strat gi
20. 129 Du langage parl SQL 5 Chapitre 2 laboration du mod le entit association Lors de cette tape on d termine les l ments qui permettront de constituer les futures tables de la base de donn es Pour laborer ce mod le on proc de en deux temps construction du graphe des entit s reli es par les associations qualification des associations par leurs cardinalit s Ce sch ma est tr s important car il repr sente en somme la documentation de la future base de donn es L ensemble de tables obtenues la suite de l op ration de passage au sch ma relationnel est g n ralement peu lisible et donne peu d indications sur les liens entre les diff rents l ments En effet il est quasi impossible de d terminer quelles tables peuvent tre jointes du point de vue du sens des donn es dans la r alit sans disposer du sch ma entit association associ 2 1 IDENTIFICATION DES ENTIT S ET DES ASSOCIATIONS La premi re tape consiste rep rer les diff rentes entit s que l on doit consid rer Pour ce faire il nous faut trouver les phrases simples qui identifient l activit par rapport l nonc Parall lement on peut chercher quels objets concrets du monde r el semblent impliqu s dans le syst me Puis pour chaque entit on doit d terminer une cl parmi les attributs Enfin on caract rise les liens entre les entit s par des associations Entit s et attributs On ra
21. 19 Nancy Universit Poincar 5 Isabelle 56 Nancy INPL 6 Olivier 51 Marseille Universit Saint Charles 7 Henri 98 Paris Universit Sorbonne 8 Jerome 23 Nancy INPL 9 Laurence 34 Bordeaux Universit Victor Segalen 10 Christian 41 Paris Ecole Normale Sup rieure 11 Antoine 16 Marseille Universit Saint Charles 12 Laurence 34 Paris Universit Jussieu Remarque Tous les champs qui ne font pas partie d une cl candidate d une relation poss dent des d pen dances fonctionnelles avec cette cl Figure 3 2 Relation Lecteur 59 Approche relationnelle 3 Chapitre 1 3 COH RENCE DES DONN ES ET CONTRAINTES D INT GRIT Afin de garantir la coh rence des donn es pour l ensemble des relations constitutives de la base de donn es on applique des restrictions sur le contenu des donn es que l on nomme contraintes d int grit La v rification de la coh rence se situe plusieurs niveaux adapter le contenu des champs par rapport au sens des donn es dans le monde r el pr server la coh rence du contenu de l ensemble des relations qui sont li es liminer les probl mes d incoh rence dus la redondance en effet la duplication des donn es rend d licates la maintenance et l volution de la relation Adapter le contenu des donn es La coh rence par rapport au sens des donn es est li e la notion de domaine de valeurs du
22. Chapitre L objectif principal est d loigner l utilisateur des d tails d impl mentation et de faciliter ainsi l usage de l informatique Un autre but est de rendre g n riques et r utilisables les d veloppements informatiques parfois devenus caducs en raison d un changement de machine Dans le domaine des bases de donn es le d veloppement de l architecture trois niveaux constitue une premi re tape importante Les fonctionnalit s des syst mes de bases de donn es sont s par es en trois niveaux niveau physique niveau logique et niveau externe 2 2 MOD LES Les mod les de donn es correspondent la mani re de structurer l information dans une base de donn es Ils reposent sur les principes et les th ories issus du domaine de la recherche en informatique et permettent de traduire la r alit de l information vers une repr sentation utilisable en informatique Mod le hi rarchique et mod le r seau Le traitement de l information cette poque est encore tr s li l organisation des fichiers sur une machine Les mod les conceptuels de donn es sont eux aussi tr s proches du syst me de fichiers puisque l on manipule des graphes ou des arbres Les n uds de ces structures constituent les informations et les liens entre ces donn es les ar tes ce moment on n est pas encore capable de s parer compl tement le niveau logique du niveau physique d un syst me de bases de don
23. Floride Bleue 5 Jacques 50 Bordeaux M 6 Renault Floride Bleue NumAch Nom Age Ville Sexe Num Voit Marque Type Couleur 107 SQL 4 Chapitre SELECT voiture Marque voiture Couleur vente Prix FROM voiture vente WHERE voiture NumVoit vente NumVoit Une autre mani re d exprimer la jointure interne passe par un op rateur de jointure sp cifique JOIN Il faut bien s r sp cifier la colonne sur laquelle s effectue la jointure SELECT voiture Marque voiture Couleur vente Prix FROM vente JOIN voiture ON voiture NumVoit vente NumVoit Le traitement de la requ te est dans ce cas optimis par le SGBD C est important car l op ration de jointure est complexe r aliser pour un SGBD et est co teuse en temps et en ressources Le nombre de lignes de la table r sultat est gal cette fois au nombre de lignes contenues dans les deux tables pour lesquelles le crit re d galit des colonnes est respect Il est bien s r possible d effectuer la jointure sur plus de deux tables on indique alors les diff rents crit res de jointure entre les tables SELECT vo Marque vo Couleur ve Prix pe Nom pe Age FROM voiture AS vo vente AS ve personne AS pe WHERE vo NumVoit ve NumVoit AND pe NumAch ve NumAch ou SELECT vo Marque vo Couleur ve Prix pe Nom pe Age FROM voiture AS vo JOIN vente AS ve JOIN personne AS pe ON vo NumVoit ve NumVoit AND pe NumAch ve NumAch Dans ce cas i
24. GROUP BY commande NomPizza ORDER BY TotalCommande Dans le premier cas la s lection est faite a fortiori dans le second a priori EXERCICE 5 REQU TES COMBIN ES On d compose le probl me calcul du nombre de retards par livreur calcul du maximum de ces retards s lection du nom du livreur qui a le maximum de retard Calcul du nombre de retards par livreur Le mot par sugg re comme pr c dem ment l emploi d agr gats sur lesquels on utilise la fonction de comptage CREATE TEMPORARY TABLE requete1 SELECT commande CodeLivreur COUNT AS NombreRetard FROM commande GROUP BY commande CodeLivreur ORDER BY NombreRetard Calcul du maximum de ces retards On utilise la fonction SQL MAX sur le contenu de la table pr c dente CREATE TEMPORARY TABLE requete2 SELECT MAX NombreRetard AS MaxRetard FROM requete1 S lection du nom du livreur qui a le maximum de retard Il est demand d afficher le nom du livreur disponible uniquement dans la table livreur On fait classiquement une jointure pour le r cup rer On doit galement disposer de la valeur du maximum de retard que l on trouve dans la table temporaire requete2 On l associe l op ration sur les deux autres tables par un produit cart sien Cela ne change pas le nombre de lignes du r sultat car la table requete2 n a qu une ligne Il s agit d un cas o l on effectue dans la m me requ te un p
25. Grouper les donn es par marques de voitures agr gat SELECT Marque FROM Voiture GROUP BY Marque Calculer l aide d une fonction statistique le nombre de lignes par marque SELECT Marque COUNT AS Nombre FROM Voiture GROUP BY Marque EXERCICE 5 QUESTION N GATIVE Toutes les informations n cessaires sont pr sentes dans la table personne Le probl me est toujours d exprimer une condition n gative ici la non appartenance un ensemble Dans ce cas c est assez simple puisque toutes les valeurs de la colonnes Ville sont renseign es Ce serait plus difficile si certains enregistrements poss daient une colonne Ville vide valeur NULL il faudrait logiquement les exclure du r sultat Il est prudent d inclure dans la r ponse en phase de v rification la colonne sur laquelle on exprime un crit re ici la colonne Ville Il est en effet assez facile de faire une erreur dans l expression d un crit re SELECT Age Ville FROM personne WHERE NOT Ville Paris EXERCICE 6 PRODUIT CART SIEN Trouvez le nombre de voitures par marques dans la base de donn es casse Trouvez l ge des personnes qui n habitent pas Paris crivez l expression du produit cart sien de la table voiture et de la table personne Combien de lignes et de colonnes poss de la table r sultat Est ce une op ration sym trique dans laquelle on retrou
26. Locations et Reservations supposent qu un client ne r serve et ne loue pas le m me film deux fois Dans le cas contraire on serait oblig d ajouter un champ identifiant pour ces deux rela tions L encore on ne peut d cider cela qu l isssue de discussions avec les utilisateurs de la base de donn es EXERCICE 11 PASSAGE DU MOD LE ENTIT ASSOCIATION AU RELATIONNEL II Le fait que l association se fasse sur une m me entit ne pose pas de probl mes particuliers on applique les r gles classiques On obtient deux relations L entit personne devient une relation Personne NumPersonne Nom Prenom Adresse Tel L association est_mari _ devient une relation Mariage NumPersonne 1 NumPersonne 2 DateMariage Les champs de l association de m me nom doivent tre renomm s car ils ne peuvent avoir le m me nom Les cardinalit s 0 n de l association mariage ne signifient pas forc ment que l on accepte la polygamie mais plut t que l on peut avoir t mari plusieurs fois des dates diff rentes ce sujet la cl de la relation Mariage suppose qu une personne ne se marie pas deux fois avec la m me personne partir du mod le entit association mod lisant le lien de mariage effectuez le passage au mod le relationnel voir figure 3 54 Figure 3 54 Mod le entit association du mariage Client IDPersonne Nom Adresse NumT l phone
27. Montant DateFacture R gle 1 1 1 1 NumFacture Montant DateFacture NumCarte Type DateValidit Propri taire Musicien NumMusicien Nom Pr nom Morceau NumMorceau Titre Piano 0 n 0 n Basse 0 n 0 n 0 n Batterie 0 n 0 n 0 n Saxophone 40 Cr ation de bases de donn es Figure 2 16 Entit s musicien et morceau li es par l association interpr te Dans cette section on a essay de porter un regard critique sur le mod le conceptuel brut issu d une premi re phase d analyse que l on a obtenue en utilisant les techniques nonc es dans les sections pr c dentes Cette tape fait partie int grante du processus it ratif de constitution du mod le par raffinements successifs Le processus se poursuivra un autre niveau par la normalisation des relations d duites de ce mod le Cette partie sera trait e au chapitre 3 4 Repr sentation avec UML Le langage UML Unified Modeling Language est un standard labor l initiative de l OMG Object Management Group Il est donc sp cifiquement destin la mod lisation objet Comme son nom l indique UML est le r sultat d un processus de fusion unifica tion de diff rentes m thodes existantes dans le domaine de la conception objet Booch OMT OOSE Ces concepts reposent principalement sur les travaux de Grady Booch James Rumbaugh et Ivar Jacobson C est un langage ind pendant de la
28. Produit Prix Couleur LD 1024 49 Blanc VN 1664 49 Noir LD 5647 H 59 Blanc Figure 3 29 Relation Dictaphone Figure 3 30 Relation Dictaphone d compos e pour passer en forme de Boyce Codd 76 Cr ation de bases de donn es Marque_coul Couleur Marque On a perdu la d pendance de Couleur par rapport Marque Produit 5 Logique du premier ordre et base de donn es Dans cette section le fondement logique de l approche relationnelle est bri vement abord pour pr senter une m thode d interrogation les QBE Query By Example La logique du premier ordre a pour but de formaliser le raisonnement naturel en consid rant la d duction comme le r sultat d un calcul Elle a fait l objet de recherches intenses depuis l Antiquit Aristote Frege et G del pour n en citer que quelques uns sont parmi les plus prestigieux s tre pench s sur la question Les principes de la logique du premier ordre dans une version restreinte que l on appelle le calcul des propositions ont trouv de nombreuses applications en informatique Apr s quelques rappels sur le formalisme de la logique on aborde ses liens avec l approche relationnelle en base de donn es et l on pr sente la m thode d interrogation par QBE 5 1 RAPPELS SUR LA LOGIQUE DU PREMIER ORDRE Le formalisme de la logique du premier ordre permet d exprimer des phrases dans un lan gage non ambigu
29. Support Prix Format Type Nombre Num ro_Film Support 12 4 3 Couleur 3 2 VHS 4 16 9 Noir Blanc 1 4 DVD 12 16 9 Couleur 1664 56 DVD 35 4 3 Noir Blanc 890 12 VHS 12 16 9 Noir Blanc 1 12 DVD 99 Inconnu Noir Blanc 3 111 VHS Apr s discussion avec les utilisateurs de la base de donn es il ne peut y avoir deux fois le m me film avec le m me format dans cette relation qui est un tat des stocks r capitulatif ce sujet les utilisateurs indiquent que les formats 16 9 seront toujours sur support DVD et les formats 4 3 et Inconnu en support VHS La relation est elle en deuxi me forme normale Prix Format Type Nombre Numero Film 12 4 3 Couleur 3 2 4 16 9 Noir Blanc 1 4 12 16 9 Couleur 1664 50 35 4 3 Noir Blanc 890 12 12 16 9 Noir Blanc 1 12 Format Support 4 3 VHS 16 9 DVD Inconnu VHS Figure 3 57 Relation Film avec support Figure 3 58 D composition de la relation Film avec support 93 Approche relationnelle Exercices 3 Chapitre Les relations sont en premi re et en deuxi me forme normale On effectue une jointure pour reconstituer l information de d part EXERCICE 14 NORMALISATION III La relation est en premi re forme normale il n y a pas de champs multivalu s La cl de cette relation est atomique C est le champ Numero_carte qui a sans
30. associa tion mod lisant cette activit de gestion en fonction des l ments de l nonc Client NumClient NomClient Pr nomClient AdresseClient T l Client Compte Film NumFilm Titre Genre Prix NbDVD R servation NumPers NomPers Pr nomPers Personnel Joue R alise Location NumR s NbeJourR s DateR s NumLoc NbeJourLoc DateLoc 0 n 0 n 0 n 0 n 0 n 1 n 0 n 1 n 54 Cr ation de bases de donn es On en d duit les entit s S jour et Client ainsi que l association Louer La premi re dif ficult que l on rencontre est li e la notion de temps En effet dans quelle entit doit tre stock e la notion de dur e de la location n cessaire la gestion ventuelle des disponibilit s D apr s l nonc la dur e de la location est fonction du type de location bungalows toile 7 jours caravanes 7 jours tentes 1 jour emplacements tourisme 1 jour Le client ne peut donc pas choisir la dur e minimum cette derni re est d termin e en fonction du type de location Par cons quent il convient de stocker l attribut duree_mini mod lisant la dur e de location minimum dans l entit location L unit commune l ensemble des locations pour la facturation est la journ e les dur es s expri ment alors en nombre de jours La seconde difficult est li e la notion de personne Comment intervie
31. ation de bases de donn es L utilisateur nhop effectue la modification de promotion sans v rifier le prix de vente Prix_vente Prix_vente 100 L utilisateur pastorius effectue la modification d augmentation Prix_vente Prix_vente 1 05 L utilisateur miller v rifie le r sultat de l op ration de modification du prix de vente et constate une diff rence avec le r sultat attendu le prix est gal Prix_vente 100 1 05 alors qu il s attendait un prix gal Prix_vente 1 05 100 Figure 6 2 D roulement de la s quence d instructions de mise jour du prix de vente On obtient alors une incoh rence due la s quence de modification des donn es Les op rations effectu es sur le champ Prix ne sont en effet pas commutatives L encore le SGBD ne dispose pas d l ments lui permettant d ordonner correctement les op rations En revanche pour certains prix de vente la mise jour pourra tre correcte Il existe bien d autres types d incoh rences qui peuvent tre provoqu es par l acc s con current aux donn es On peut citer le cas des anomalies de lecture Deux lectures suc cessives ne donnent pas le m me r sultat Cela survient lorsque la modification d une donn e est effectu e par un processus concurrent entre deux lectures successives Le SGBD traite naturellement les requ tes de mani re s quentielle dans
32. c dent paragraphe 136 Cr ation de bases de donn es Deuxi me forme normale La recherche de non conformit la deuxi me forme normale n a de sens que si la cl est compos e de multiples champs Dans notre cas la seule relation qui poss de une cl composite est la relation compose De plus cette relation ne contient aucun attribut qui ne fasse pas partie de la cl La relation est en deuxi me forme normale Toutes les rela tions sont en deuxi me forme normale Troisi me forme normale En revanche la troisi me forme normale concerne les liens qui peuvent exister entre des champs qui ne font pas partie de la cl d une relation Si l on consid re la relation client les champs ne faisant pas partie de la cl sont les suivants NomClient Adresse Compte PointsRaPizz Il est clair que le solde du compte ne permet de d terminer ni le nom du client ni son adresse ni son nombre de points de fid lit Ce dernier et le nom d une personne ne permettent pas non plus d identifier le contenu des autres champs La question pourrait ventuellement se poser pour le champ Adresse susceptible dans cer tains cas d tablir le nom du client si l on suppose que deux clients n habitent pas la m me adresse Par le m me type de raisonnement sur la relation vehicule on peut tre amen identi fier une relation de d pendance entre le type qui est unique pou
33. es dans sa colonne 1 et les num ros d enre gistrement correspondants dans sa colonne 2 Si le tableau est r duit un l ment dont la valeur dans la premi re colonne Ti 1 1 est dif f rente de la valeur recherch e alors la recherche est un chec sinon comparer l l ment du milieu z du tableau Ti avec la valeur V Si l l ment Ti z 1 est gal la valeur acc der l enregistrement directement par son num ro Ti z 2 Si l l ment Ti z 1 est inf rieur la valeur recommencer avec la partie basse du tableau de 1 z 1 Si l l ment Ti z 1 est sup rieur la valeur recommencer avec la partie basse du tableau de z 1 n Quelles sont les diff rences majeures entre un fichier informatique et une base de don n es g r e par un SGBD Donnez un algorithme intuitif simple de recherche dichotomique en utilisant une table d index et une table acc s direct 23 Introduction aux bases de donn es Exercices 1 Chapitre EXERCICE 3 LANGAGES D UN SGBD Le langage de description de donn es s int resse la modification de structure d une table d j cr e ou la gestion des tables cr ation modification Dans notre cas on ne touche pas la structure on supprime des enregistrements donc des donn es de la table On ne touche pas au dictionnaire de donn es On utilisera par cons quent le langage de manipu lation de donn es du SGBD Pour augmenter la taille du champ o
34. es de disposer de types volu s abstraits plus simples concevoir et surtout plus commodes faire voluer Elle offre en outre la possi Donn es M thodes Objet Encapsulation H ritage X1 Y1 X2 Y2 D placer Agrandir Fermer Retourner 8 Cr ation de bases de donn es bilit de mod liser plus facilement la complexit des organisations voir figure 1 5 Dans cette optique la norme SQL a logiquement t adapt e Dans sa version 3 elle prend en compte l extension objet Les types de donn es sont tendus et les op rations d encapsula tion et d h ritage typiques de l approche objet sont support es Cette solution a l avan tage d offrir un bon niveau de compatibilit avec l approche pr c dente tr s r pandue et d effectuer ainsi une migration plus ais e Figure 1 5 Mod le relationnel objet 2 3 VOLUTION DE L UTILISATION DES BASES DE DONN ES Cette section pr sente une description de nouvelles mani res de stocker ou d utiliser les bases de donn es La diff rence par rapport la section pr c dente est que l on ne remet pas en cause le mod le utilis pour d crire les donn es sauf dans une certaine mesure pour le cas de XML Base de donn es r parties Le d ploiement des r seaux ainsi que l augmentation de leur d bit ces derni res ann es ont conduit r partir les donn es sur plusieurs sites g ographiques ce qui facilite la poli
35. es par des associations binaire apr s transformation de l association ternaire vente en entit avec cardinalit s Client NumAch Nom ge Ville Sexe Voiture NumVoit Marque Type Couleur 0 1 0 n Vente DateVente Prix 0 n Vendeur NumVendeur Nom T l Voiture NumVoit Marque Type Couleur Vendeur NumVendeur Nom T l 1 n Vente NumVente DateVente Prix 1 n 1 1 1 1 0 1 1 1 Client NumAch Nom ge Ville Sexe 51 Analyse du monde r el Exercices 2 Chapitre EXERCICE 8 DE L NONC AU MOD LE ENTIT ASSOCIATION On peut extraire de l nonc des phrases cl s qui permettent de caract riser les entit s et leurs associations Un client r serve un film Un client loue un film Une personne joue dans un film Une personne r alise un film Trois entit s apparaissent client film et personnel Les entit s client et film sont reli es par deux associations r servation et location Les entit s film et personnel sont reli es par deux entit s joue et r alise voir figure 2 28 Le fait d utiliser la m me entit pour un r alisateur et pour un acteur regroup s dans personnel provient du fait qu un acteur peut en m me temps tre r alisateur Si l on s parait les entit s il y aurait alors une duplication de l
36. galement tenir jour les comptes d utilisateurs sp ci fiques du SGBD disposant de droits d acc s la machine En r sum le syst me sur lequel est h berg e la base de donn es doit faire l objet d un suivi permanent tous les niveaux Il n est pas raisonnable d installer un SGBD sur une machine dont le syst me ne peut tre mis jour ou dont les mises jour sont disponibles trop tardivement Toute application pr sente sur la machine peut rec ler des failles et tre le maillon faible de l ensemble Les informations de vuln rabilit et les correctifs sont fournis par les diteurs de ces applications Dans notre cas on doit porter une attention particuli re une application importante le SGBD La r activit des diteurs constitue un crit re d cisif pour choisir un syst me et un SGBD D un point de vue humain la qualit de l administration du syst me et du r seau sur lequel se trouve la machine peut tre ga lement un l ment du choix 1 3 P RENNIT DU SYST ME Une base de donn es se con oit g n ralement pour de nombreuses ann es d utilisation Il est donc essentiel avant de choisir une machine son syst me d exploitation ainsi que le logiciel de SGBD de prendre en consid ration leurs p rennit s respectives Le choix peut alors se porter sur des ensembles moins performants mais que l on consid re comme plus viables en termes de dur e de vie Voici quelques points c
37. il est vident qu un livre ne peut tre emprunt par deux personnes simultan ment mais plut t qu il pourra tre emprunt plusieurs reprises durant la p riode mod lis e du fonctionnement de la biblioth que 1 4 CAS PRATIQUE Afin d illustrer les recommandations pr c dentes on consid re la mod lisation tr s sch matique du fonctionnement d un h tel Quelle s phrase s simple s d cri ven t l acti vit de l h tel On peut proposer en premi re approche cette phrase Un h tel loue des chambres des clients qui effectuent des r servations Apr s avoir proc d l analyse de la phrase pour en extraire les parties importantes on peut la r crire de la mani re suivante Un client loue une chambre un client r serve une chambre 30 Cr ation de bases de donn es Les deux objets du monde r el la chambre et le client apparaissent clairement On a identifi ici un double lien entre ces deux objets cas assez fr quent Ensuite on s int resse la caract risation des liens Une chambre peut n avoir jamais t lou e ni r serv e Un client est ins r dans le syst me d informations partir du moment o il a effectu soit une r servation soit une location Un client peut r server ou louer plusieurs chambres Une chambre peut tre r serv e ou lou e plusieurs fois mais pas pendant la m me p riode de temps On rappelle que l on c
38. on calcule ses valeurs partir des colonnes pr c dentes chiffre d affaires prix quantit Cette mani re de proc der sera plus co teuse en NumAch Nom Age Ville Sexe 1 Nestor 96 Paris M 2 Irma 20 Lille F 3 Henri 45 Paris M 4 Josette 34 Lyon F 5 Jacques 50 Bordeaux M City Paris Lille Paris Lyon Bordeaux Marque Peugeot Citroen Opel Renault Projection sur tous les champs de la table Personne Projection sur les valeurs distinctes du champ Marque de la table voiture 100 Cr ation de bases de donn es calcul et pourra ventuellement affecter les performances du syst me Les valeurs des colonnes colonnes de la table r sultat peuvent tre constitu es par des expressions construites avec les op rateurs suivants voir tableau 4 1 SELECT Prix DateVente Prix 6 5596 AS Prix_Euros FROM vente SQL dispose de nombreuses autres fonctions int gr es parfois d pendantes du SGBD uti lis qui permettent par exemple le traitement des colonnes de types caract res date SELECT UPPER Nom AS NomMajuscule FROM personne SELECT MONTH DateVente AS Mois FROM vente Utilisation de fonctions statistiques sur toutes les valeurs d une table SQL ne poss de pas d instruction de structuration et ne permet donc pas de r aliser des boucles Il poss de des fonctions simples de traitement des donn es d un
39. on doit maintenant choisir une cl pour chaque entit Si l on prend l entit client il est clair qu aucun attribut ne peut convenir pour constituer une cl De m me l association de plusieurs attributs NomClient Adresse NomClient Compte Compte PointsRaPizz et autres ne permet pas de cr er une cl On ajoute alors classiquement un attribut identifiant qui sert de cl ce peut tre un simple nombre ou un m lange de lettres et de nombres alphanum riques plus commode m moriser En utilisant ces m mes arguments on est amen ajouter des attributs num riques comme cl s pour les entit s livreur et commande Pour l entit pizza on peut supposer que le nom de la pizza est significatif et qu il peut donc servir de cl En effet le catalogue de pizzas propos est restreint et codifi par le fait qu il s agisse d une entreprise de type franchis Il n y a pas d int r t pour le franchi seur d un simple point de vue commercial donner deux fois le m me nom une pizza En pratique m me si le nom est unique on pourrait d cider de ne pas l utiliser car le con tenu est un peu long L entit v hicule dispose d un champ identifiant son num ro d immatriculation qui est par d finition unique Enfin en ce qui concerne les ingr dients il peut tre moins vident que le nom seul de l ingr dient suffise l identifier Il est p
40. place un premier niveau de restriction sur le contenu des donn es une colonne de type num rique ne pourra pas contenir de caract res Des restrictions plus fines seront d finies la section Contraintes d int grit Voici une liste non exhaustive des types de donn es SQL voir tableaux 4 6 4 7 4 8 et 4 9 INT Entier standard 32 bits SMALLINT Entier petit 16 bits REAL R el taille sp cifique au SGBD FLOAT n R el repr sent sur n bits CHAR n Cha ne de caract res de longueur n codage ASCII 1 octet VARCHAR n Cha ne de caract res de longueur maximale n codage ASCII 1 octet NCHAR b Cha ne de caract res de longueur n codage Unicode sur 2 octets NVAR CHAR b Cha ne de caract res de longueur maximale n codage Unicode sur 2 octets DATE Date TIME n Heure n optionnel est le nombre de d cimales repr sentant la fraction de secondes BOOLEAN Bool en BLOB Binary Large Object permet de stocker tout type binaire photo fichier traitement de texte Cr ation de la table voiture Tableau 4 6 Types de donn es num riques de SQL Tableau 4 7 Types de donn es cha nes de caract res de SQL Tableau 4 8 Types de donn es date de SQL Tableau 4 9 Types de donn es binaires de SQL 112 Cr ation de bases de donn es Suppression La commande DROP TABLE permet de supprimer une table D
41. sent e par une classe Une association est repr sent e par une association Une cardinalit est repr sent e par une multiplicit ce niveau d utilisation les avantages qu apporte la notation UML n apparaissent pas clairement L int r t r side dans la possibilit d utiliser des outils logiciels Ces derniers partir du sch ma du mod le conceptuel exprim en UML automatisent ou plut t assis tent le processus de passage au mod le relationnel qui sera abord au chapitre 3 L id e terme est de g n rer automatiquement le langage SQL n cessaire comme cela se fait en g nie logiciel o l on g n re le code du langage utilis En revanche l utilisation d UML prendra tout son sens pour une mod lisation plus complexe utilisant par exemple le concept objet d h ritage qui d passe le cadre de cet ouvrage R sum Ce chapitre aborde l approche de la mod lisation qui consiste d abord extraire les infor mations du monde r el puis en proposer une repr sentation formelle appel e mod le conceptuel Il n existe pas r ellement de d marche scientifique pour r aliser cette tape Elle est plut t constitu e d un ensemble de techniques diverses qui permettent d appr hender la complexit du monde r el mod liser et de la simplifier L analyse du monde r el a pour but de pouvoir identifier les donn es qui interviennent dans le domaine consid r et de les re
42. voir figure 3 45 On projette sur les champs Titre et Format voir figure 3 46 Il n est pas incoh rent d obtenir deux fois le m me titre avec deux formats diff rents En revanche la contrainte d int grit r f rentielle n est pas respect e car on n obtient pas la m me cardinalit que la relation de d part lors de l op ration de jointure On aurait d obtenir une cardinalit de 5 On constate sur cet exemple que le contenu 50 du champ Numero_Film ne se trouve pas dans la relation Catalogue Il manque donc un tuple dans le r sultat Catalogue Numero_Film Titre Numero_Film Titre 2 Le train qui passe 4 A toi 56 Les chats du S n gal 111 Le temps expliqu 12 Les imp ts faciles Trouvez la liste des titres de films et leur format Voyez vous une incoh rence dans le r sultat Pouvez vous lors de cette op ration d tecter si la contrainte d int grit r f ren tielle sugg r e l exercice pr c dent a t respect e Est il possible de faire une jointure entre ces deux relations sur le champ Prix de la relation Film avec le champ Numero_film de la relation Catalogue Si oui que signifie le r sultat Prix Format Type Nombre Numero _Film Films Numero _Film Catalogue Titre 12 4 3 Couleur 3 2 2 Le train qui passe 4 16 9 Noir Blanc 1 4 4 A toi 35 4 3 Noir Blanc 890 12 12 Les imp
43. 16 170 Administrateur 19 161 Alg bre relationnelle 60 ANSI SPARC 15 Association 17 30 32 38 41 68 Attributs 6 31 35 B Bases de donn es 8 9 10 19 d ductives 9 10 volution 4 m tiers 19 mod les 5 r parties 8 9 C Cardinalit s 30 33 34 43 56 69 Champs 3 31 56 Cl 14 56 57 58 59 114 candidate 57 58 114 composite 115 trang re 59 primaire 57 Coh rence 3 16 59 Collation 187 Contraintes d int grit 59 114 D Data mining 9 Datawarehouse 10 11 D composition 70 72 73 74 Degr 32 56 D pendance fonctionnelle 57 70 72 73 Disponibilit 8 16 160 Domaine 17 41 56 59 DTD 11 12 E Entit s 31 Entrep ts de donn es 10 11 F Fichier informatique 13 14 Forme normale 70 72 73 75 135 136 Boyce Codd 75 deuxi me 72 136 premi re 70 135 troisi me 73 136 Fouilles de donn es 9 Fusion 38 39 H HTML 11 I Identifiant 31 Incoh rences 4 18 35 36 37 38 59 167 Index 14 110 140 J Jeu de caract res ASCII 183 ISO 8859 n 184 Base de donn es book Page 191 Lundi 5 juin 2006 3 33 15 192 Cr ation de bases de donn es MacRoman 184 unicode 185 UTF 16 186 UTF 32 186 UTF 8 185 Windows 1252 184 Jointure 64 65 externe 65 naturelle 64 Journalisation 16 170 L Langage h te 96 LDD 16 80 95 LMD 16 95 Logique du premier ordre 76 M M tadonn e 3 160 Mod le 5 6 7 8 30 56 68 entit assoc
44. 21 positions MacRoman 8 positions Windows 1251 8 positions JIS X Japonais 8 positions UTF 8 octets UTF 16 doubles octets UTF 7 UTF 32 UCS 2 Plan Multilingue Base Autres plans 187 Codages de caract res et bases de donn es A Annexe Codage dans une base de donn es et ordre de tri Les bases de donn es contiennent des donn es textuelles On peut donc trouver dans une base de donn es tous les codages de caract res pr sent s plus haut du simple ASCII Unicode Comment choisir le codage de caract re employer au moment de la conception de la base de donn es Une des premi res pr occupations est de choisir le codage de caract re qui conviendra aux donn es entr es Si l on utilise les tables de la norme ISO 8859 il faut d cider laquelle est convenable en fonction du contenu futur Le probl me ne se pose videmment pas s il ne se trouve aucun diacritique dans les donn es Une autre question est de savoir ce que les utilisateurs feront des donn es extraites de la base Par exemple sont ils capables d utiliser un format de type Unicode ou ont ils recours exclusivement Windows 1252 De m me disposent ils de logiciels clients capables d interroger directement la base de donn es en Unicode ou en IS0 8859 15 par exemple Un dernier crit re de choix pourrait tre la place occup e Dans le cas du choix d Unicode si l on emploie des langues latines UTF 8
45. 3 25 Produit Article Fournisseur Adresse Prix La cl est constitu e des champs Article et Fournisseur Or il y a une relation de d pen dance entre le champ Fournisseur qui est une partie de la cl et le champ Adresse On d compose alors la relation pour liminer la redondance ainsi cr e La nouvelle relation NumPubli NumAuteur 13490 1 13490 2 13490 3 21322 4 21322 1 21322 5 45333 6 45333 7 45333 5 Article Fournisseur Adresse Prix Marteau SOGENO Paris 5 Tournevis ARTIFACT Lille 10 Tournevis SOGENO Paris 23 Pince LEMEL Paris 34 M tre ARTIFACT Lille 24 Figure 3 25 Relation Produit 73 Approche relationnelle 3 Chapitre aura pour cl la partie de la cl de la relation d origine dont d pendent fonctionnellement les autres champs Dans cet exemple il s agit du champ Fournisseur Les autres champs d pen dants constituent le reste de la relation Il s agit ici du champ Adresse On obtient alors le r sultat suivant voir figure 3 26 Produit Article Fournisseur Prix Fournisseur Fournisseur Adresse Comme pr c demment il est n cessaire de faire une jointure pour reconstituer l informa tion La d composition en deux relations se fait sans perte d information 4 3 TROISI ME FORME NORMALE La troisi me forme normale recherche galement la redondance d information dans un
46. Dans un second temps on effectue une projection sur le champ Nom_Etablissement voir figure 3 16 Etablissement_jointext_Lecteur_selproj Nom_Etablissement La jointure externe n est pas une op ration sym trique L op ration inverse c est dire la jointure externe de la relation Lecteur avec la relation Etablissement sur le champ Num_Etablissement donne dans ce cas le m me r sultat qu une jointure naturelle En effet toutes les valeurs du champ Num_Etablissement de la relation Lecteur ont une correspondance dans la relation Etablissement C est ce que l on souhaite puisque la rela tion Etablissement fait office de relation de r f rence pour le champ Num_Etablissement de la relation Lecteur L op ration de jointure externe peut tre uti lis e pour d tecter ce type d incoh rence 2 3 CALCULS ET AGR GATS Une r gle dans le domaine des bases de donn es est que tout ce qui peut se calculer ne doit pas tre stock On vite ainsi la perte de place et l incoh rence qui peut en d couler suite au stockage d informations redondantes Les op rations de l alg bre relationnelle pr sen t es dans les sections pr c dentes ne permettent pas de cr er de nouveau champ par calcul partir du contenu d autres champs sans utiliser un langage de programmation Des Num_Etablis sement_1 Ville Nom _Etablissement Numero _carte Nom Num_Eta
47. DateSem NbeJours Prix NumInter NomInter TelInter Intervenant Anime 0 n 1 n Est responsable Prime 0 n 1 1 Salaire NbeHeures 70 Cr ation de bases de donn es relation cr e pour l entit qui est associ e avec la cardinalit 1 1 La cl de cette rela tion est toujours celle de l entit 4 Normalisation Le mod le relationnel procure des outils destin s tester la qualit et la coh rence des relations dans un sch ma relationnel cr l tape pr c dente Cette tape appel e normalisation permettra de v rifier certaines propri t s des relations et le cas ch ant de les transformer On aborde dans cette section les trois premi res formes normales qui suffisent dans la plu part des cas et qui permettent une d composition du sch ma relationnel sans perte d information La forme normale de Boyce Codd qui d tecte d autres incoh rences mais propose une d composition avec perte d informations de d pendance est pr sent e la fin de la section Il existe d autres formes normales la quatri me et la cinqui me qui ne sont pas pr sent es dans cet ouvrage ces derni res sont parfois difficiles appr hender et les trois premi res formes normales suffisent en g n ral pour obtenir un sch ma relation nel de qualit La normalisation d un sch ma relationnel sugg re une autre m thode pour obtenir un ensemble de relations On part d une r
48. FROM livreur JOIN client ON livreur CodeLivreur client NumClient Imaginez quel type de question a voulu r pondre la personne qui a fait cette requ te 150 Cr ation de bases de donn es La requ te retourne un r sultat car la syntaxe est correcte et le type des champs sur les quels on a effectu la jointure sont de type compatible et contiennent des valeurs commu nes Bien videmment le r sultat n a aucun sens d un point de vue la r alit Le sch ma entit association montre que les liens entre les tables client et livreur passent par la table commande et les associations livre et passe Il s agit du cas typique qui illustre le fait qu une requ te donne toujours un r sultat m me s il n a aucun sens En aucun cas cette requ te ne permettrait d effectuer des recherches de corr lation entre le livreur et le client Si l on cherche afficher le nom du client et le nom du livreur corres pondant par commande on doit utiliser la table commande m me si l on ne projette aucun champ de la table commande Pour faciliter la lecture et rep rer d ventuelles cor r lations on ordonne par noms de clients SELECT client NomClient livreur NomLivreur FROM livreur JOIN commande JOIN client ON livreur CodeLivreur commande CodeLivreur AND client NumClient commande NumClient ORDER BY client NomClient Pour savoir quels clients sont toujours livr s par le m me livr
49. JOIN ingredient I ON C NumClient CL NumClient AND C NomPizza P NomPizza AND P NomPizza CO NomPizza AND CO NumIngre I NumIngre 181 Pr servation des donn es Exercices 6 Chapitre On distribue les droits de lecture sur cette vue l utilisateur sociologue GRANT SELECT ON adresse_ingredient TO sociologue On se trouve dans les cas typiques d utilisation de vues pour d finir des objets qui n exis tent pas l tat naturel dans la base de donn es La distribution des droits en est d autant simplifi e De plus l ensemble est volutif on peut sans difficult s ajouter un champ dans ces vues sans avoir besoin de changer l ensemble des droits sur les tables les champs etc EXERCICE 6 TRANSACTIONS On utilise videmment le m canisme des transactions en d finissant des points de retour pour pouvoir annuler les effets des modifications des coefficients et des prix On aban donne toutes les modifications y compris celles des prix la fin de la transaction D marrage de la transaction START TRANSACTION D finition d un point de retour que l on nomme PRIX SAVEPOINT PRIX Augmentation des prix des pizzas de 10 UPDATE pizza SET Prix Prix 1 1 On a d fini ici un point de retour PRIX qui permet de revenir l tat de la base avant la modification de prix D finition d un point de retour que l on nomme COEFF_NAINE SAVEPOINT COEFF_NAINE
50. Jacques 5 Lyon 34 Josette 4 Paris 45 Henri 3 Lille 20 Irma 2 Paris 96 Nestor 1 Ville Age Nom NumAch Vente Voiture Personne Projection sur les colonnes Nom et Ville de la table Personne 99 SQL 4 Chapitre SELECT FROM personne Les colonnes de la table r sultat peuvent tre renomm es par le mot cl AS SELECT Ville AS City FROM personne Valeurs distinctes d une colonne Une colonne Salutations ne devrait contenir que les valeurs normalis es Madame Monsieur Mademoiselle L affichage des valeurs distinctes permet de lister les dif f rentes valeurs prises par la colonne pour rep rer d ventuelles incoh rences comme la pr sence d une valeur Mr M etc Afin d liminer les doublons ventuels des valeurs d une colonne de la table r sultat on fait pr c der le nom de la colonne par le mot cl DISTINCT SELECT DISTINCT Marque FROM voiture Utilisation d expressions pour cr er une colonne On rappelle qu un grand principe en base de donn es est que l on ne stocke pas dans une table ce qui peut tre calcul On vite ainsi l occupation de place inutile ainsi que les pro bl mes d incoh rence provoqu s par la mise jour des donn es Par exemple si l on dispose d une colonne prix et d une colonne quantit on ne stocke pas la colonne chiffre d affaire
51. Master l universit de Versailles Saint Quentin en Yvelines et au service de formation permanente de l universit Pierre et Marie Curie Jussieu Il est responsable d un atelier sur les outils informatiques pour le master de sciences cognitives de l cole normale sup rieure Ulm Il a mis en place une formation de type IUP bac 4 en informatique l universit d Antananarivo Madagascar Il a particip la conception et la mise en uvre de nombreuses bases de donn es essentiellement dans le domaine documentaire l INIST CNRS Il est impliqu dans le programme des formations TRANSFER de l AUF Agence universitaire de la francophonie o il s occupe plus particuli rement des formations r seaux et des certifications Linux Le relecteur VII Le relecteur ric Innocenti est ma tre de conf rences en informatique l universit de Corse Pasquale Paoli Il est responsable p dagogique des fili res SRC Services et R seaux de Communication et LPM Licence Professionnelle Multim dia Il enseigne l algorithmique la programmation ainsi que les syst mes d information l Institut universitaire de technologie Son parcours professionnel l a conduit de la gestion informatique pour le compte de soci t s priv es la recherche universitaire o il travaille sur la mod lisation et la simulation informatique des syst mes complexes Il est galement auteur de progiciels de
52. NomPizza de la relation commande R f rence au champ NomPizza de la relation pizza 3 4 CR ATION DES TABLES La cr ation des tables se fait partir de la d finition des relations effectu es pr c dem ment On sp cifie le nom des champs leur type les contraintes d int grit et la d finition des cl s On peut choisir galement ce moment les champs sur lesquels on souhaite cr er des index Ces derniers am liorent la recherche par le contenu mais p nalisent les mises jour puisqu il faut modifier les tables d index En g n ral m me si l on est susceptible d effectuer des recherches sur tous les champs on ne cr e pas d index pour chacun d entre eux afin de ne pas p naliser les performances m me si l on est susceptible d effectuer des recherches sur tous les champs Cela pourrait tre cependant envisageable si le contenu de la base est tr s statique et que l on souhaite favoriser les performances de recherche Les index peuvent tre cr s s par ment En pratique on cr e syst matiquement un index sur les cl s des relations ne serait ce que pour am liorer les op rations de jointure Certains SGBD prennent d ailleurs l initiative de cr er l index sur la cl m me si l on ne le sp cifie pas explicitement Table client CREATE TABLE client NumClient INT PRIMARY KEY NomClient VARCHAR 20 NOT NULL Adresse VARCHAR 150 Compte REAL PointsRaPizz I
53. NumVoit INT Marque CHAR 40 Type CHAR 30 Couleur CHAR 20 Nom Age Ville Jacques 50 Bordeaux Irma 20 Lille Josette 34 Lyon Henri 45 Paris Nestor 96 Paris Remarque Pour pouvoir g rer une table il faut au pr alable disposer des droits sur la base de donn es qui la contient ces aspects sont abord s au chapitre 6 Remarque Le nom de la table ou d une colonne ne doit pas d passer 128 caract res Il commence par une lettre contient des chiffres des lettres et le caract re _ Attention de m me ne pas utiliser un mot cl SQL Tri par Ville et par Age de la table personne 111 SQL 4 Chapitre Les tables peuvent tre cr es de mani re temporaire elles seront donc effac es la fin de la session de l utilisateur l aide du mot cl TEMPORARY CREATE TEMPORARY TABLE temporaire Identifiant INT Jour DATE Valide BOOLEAN Les tables peuvent tre issues directement du r sultat d une requ te en utilisant le mot cl AS c est particuli rement commode pour pouvoir disposer de r sultats interm diaires en fin de v rification lors d une s rie de manipulations sur une table CREATE TEMPORARY TABLE resultat AS SELECT Vo Marque Vo Couleur FROM voiture AS Vo Type de donn es Le type de donn es est choisi essentiellement en fonction des op ra tions qui sont effectu es sur la colonne Le choix du type permet galement de mettre en
54. ORDER BY C NumCommande La table pivot est ici la table commande qui assure la jointure avec toutes les autres tables Cela confirme l intuition que l entit commande aurait pu tre consid r e comme une association n aire Sur une requ te aussi simple on remarque que le travail du SGBD est assez lourd puisqu il doit effectuer la jointure de cinq tables C est la raison pour laquelle on pr f re parfois uti liser des relations et donc des tables avec une certaine redondance afin d am liorer les performances l op ration de jointure est co teuse Une strat gie couramment employ e consiste g rer en interne une base de donn es sans redondance et g n rer une table redondante qui servira faire les requ tes On dispose ainsi d une garantie de coh rence et des performances pr serv es Les bases de donn es en ligne accessibles par le Web sur les quelles on effectue beaucoup de requ tes fonctionnent de cette mani re On r serve bien s r cette m thode aux bases de donn es dont le contenu est assez stable l op ration de re g n ration de bases chaque changement est co teuse 4 3 QUELS SONT LES V HICULES N AYANT JAMAIS SERVI Si l on se reporte aux cardinalit s du mod le entit association le cas ne doit pas exister On a choisi une cardinalit de type 1 n ce qui signifie qu un v hicule a livr au moins une commande et qu il a pu en livrer plusieurs Cet
55. Prix FROM voiture AS vo JOIN vente AS ve ON vo NumVoit ve NumVoit GROUP BY vo Marque Enfin on limine du r sultat du calcul pr c dent les marques dont la moyenne des prix est inf rieure 40 000 en ne gardant que les lignes dont la moyenne est sup rieure ou gale 40 000 SELECT vo Marque AVG ve Prix AS Moyenne FROM voiture AS vo JOIN vente AS ve ON vo NumVoit ve NumVoit GROUP BY vo Marque HAVING Moyenne gt 40000 Calculez la moyenne des prix de vente par marques en ne consid rant que les marques dont cette moyenne est sup rieure 40 000 124 Cr ation de bases de donn es On peut utiliser l alias du nom de la colonne calcul e ici Moyenne pour effectuer la s lection Attention on ne peut pas utiliser le mot cl WHERE ici car il s agit d une s lection sur le r sultat du calcul et non pas a priori avant le calcul On utiliserait WHERE pour r pondre une question du type Calculez la moyenne des prix de vente par marques en ne consid rant pour ce calcul que les prix sup rieurs 40 000 SELECT vo Marque AVG ve Prix AS Moyenne FROM voiture AS vo JOIN vente AS ve ON vo NumVoit ve NumVoit WHERE ve Prix gt 40000 GROUP BY vo Marque Avec le jeu de donn es restreint dont on dispose on remarque que le r sultat est identique mais c est videmment un hasard EXERCICE 11 S LECTION PAR RAPPORT AU R SULTAT D UN CALCUL STATISTIQUE Ici on doit comparer les va
56. Relation Lecteur 94 Cr ation de bases de donn es Lecteur Numero_carte Nom Age Etablissement Attention la d composition suppose que le nom de l tablissement est unique quelle que soit la ville En effet le champ Etablissement est la cl de la deuxi me relation C est ce qui a permis d tablir la relation de d pendance fonctionnelle Cela ne peut tre garanti sans discussion avec les utilisateurs de la base de donn es Si ce n tait pas le cas il faudrait utiliser un identifiant unique pour chaque tablissement qui se trouverait alors dans les deux relations et servirait faire la jointure Etablissement_Ville Etablissement Ville Les deux relations sont en troisi me forme normale On effectue une jointure pour reconstituer l information de d part Numero carte Nom Age Etablissement 1 Henri 10 Universit Sorbonne 2 Stanislas 34 Universit Jussieu 3 Henriette 44 CHU Bron 4 Dominique 19 Universit Poincar 5 Isabelle 56 INPL 6 Olivier 51 Universit Saint Charles 7 Henri 98 Universit Sorbonne 8 Jerome 23 INPL 9 Laurence 34 Universit Victor Segalen 10 Christian 41 Ecole Normale Sup rieure 11 Antoine 16 Universit Saint Charles 12 Laurence 34 Universit Jussieu Etablissement Ville Universit Sorbonne Paris Universit Jussieu Paris CHU Bron Lyon Universit Poincar Nancy INPL Nancy Universi
57. autres aussi puissent b n ficier 88 Cr ation de bases de donn es Pour d tecter les films du catalogue non utilis s on va cette fois faire une jointure externe sym trique de la pr c dente partir de la relation Catalogue sur la relation Film voir figure 3 49 De m me que pr c demment il suffit de faire une s lection sur le contenu d un champ provenant de la relation Film dont le contenu est NULL par exemple le champ Prix On projette ensuite sur le champ Numero_Film provenant de la relation Film On obtient une relation deux lignes et une colonne ou une relation de degr 1 et de cardinalit 2 voir figure 3 51 Cet exercice permet de mettre en vidence l asym trie de l op ration de jointure externe et son r le indispensable pour r pondre des questions de ce type C est pour cette raison qu elle a t introduite dans le langage SQL dans un second temps m me si elle n en faisait pas partie l origine EXERCICE 9 CALCUL SUR DES AGR GATS On va commencer par une op ration qui consiste constituer autant de sous relations que l on trouve de valeurs diff rentes dans le champ Format de la relation Film Ici il y a deux Numero _Film 50 Numero _Film Catalogue Titre Prix Format Type Nombre Numero _Film Film 2 Le train qui passe 12 4 3 Couleur 3 2 4 A toi 4 16 9 Noir Blanc 1 4 56 Les chat
58. champ d j abord e on parle de contrainte de domaine ou coh rence s mantique Par exemple l ge d une personne ne peut tre n gatif ou exc der 120 On a pr c demment d fini une contrainte d int grit sur l ensemble des champs qui constituent une cl primaire une cl ne peut contenir de valeur nulles et ses valeurs doivent tre uniques On proc de la d finition des contraintes lors de l tape d analyse du monde r el Leur mise en uvre effective interviendra au moment de la cr ation de la relation et sera r alis e par le SGBD Pr server la coh rence des donn es On rappelle qu une base de donn es est constitu e par un ensemble de relations reli es entre elles Les contenus des champs capables de lier ces relations doivent tre coh rents entre eux pour pouvoir effectuer l op ration de jointure Si l on consid re l exemple de la base de donn es exemple casse on ne doit pas permettre la saisie d une valeur identifiant une voiture dans la relation vente qui n existe pas dans la relation voiture On fait dans ce cas r f rence au contenu d une colonne d une autre relation le champ NumVoit de la relation voiture pour contr ler le contenu du champ NumVoit de la relation vente Le champ NumVoit est alors une cl trang re qui permet de r aliser la notion d int grit r f rentielle De m me que pr c demment on d termine ces r f rences
59. cifier que l attribut retard de l entit commande ne pourra prendre comme valeurs que O et N Les associations utilis es dans ce message n ont pas d attributs Une diff rence majeure est que les cardinalit s seront positionn es de mani re invers e par rapport au mod le entit association voir figure 5 4 Figure 5 4 Mod le UML Livraisons de pizzas avec cardinalit s EXERCICE 2 CALCULS PAR EXPRESSION SQL Pour calculer le nombre de pizzas livr es en retard il faut se souvenir d un point impor tant que l on a fix comme axiome lors de l laboration du mod le une pizza est asso ci e une commande et une seule Une commande ne contient qu une seule pizza C est important si ce n tait pas le cas la requ te serait beaucoup plus complexe Repr sentez le mod le entit association en utilisant le formalisme UML Combien de pizzas ont elles t livr es en retard Quelle est la perte occasionn e par ces retards Commande Livreur Pizza V hicule Ingr dient Client NumCommande DateCom Retard NumClient NomClient Adresse Compte PointsRapizz NomPizza Prix CodeLivreur NomLivreur T l phone NumIngre NomIngre NumImmat Marque Type Livre Transporte Passe Compose 1 1 1 n Tarification Taille Coefficient Utilise 1 1 0 n 1 1 1 n 0 n 0 n 1 1 1 1 1 n 1 n C
60. correspond la relation Le domaine du discours correspond au contenu de la relation Ce formalisme permet d exprimer les questions naturellement ambigu s du langage parl par une formule Cette formule est r crite en utilisant les r gles vues pr c dem ment pour arriver un ensemble de clauses simples On constitue ensuite des sous ensem bles de tuples de la relation pour lesquels les clauses r crites sont v rifi es ces tuples repr sentent la r ponse la question pos e Voici quelques exemples de questions expri m es en utilisant ce formalisme On obtient ainsi des sortes de patrons de recherche permettant de caract riser les tuples qui sont solutions Dans l exemple g n ral voir section 3 1 le sch ma de la relation voiture est voi ture NumVoit Marque Type Couleur et le sch ma de la relation vente est vente Date Vent Prix NumAch NumVoit L expression afficher la liste des marques et des types de voitures ou projection des champs Marques et Types de la relation voiture peut s crire sous la forme m t voiture _ m t _ Cela signifie que les valeurs des champs Marque et Type des tuples de la relation voi ture sont repr sent es par les variables m et t Le signe _ repr sente n importe quelle valeur des autres champs NumVoit et de Couleur 78 Cr ation de bases de donn es L expr
61. degr 1 et de cardinalit 2 voir figure 3 42 Film_NB Prix On peut calculer le degr facilement puisqu il s agit du nombre de champs sur lesquels on fera la projection Pour la cardinalit qui repr sente le nombre de lignes du r sultat on ne peut la calculer l avance puisqu elle va d pendre du contenu du champ Type des tuples de la relation EXERCICE 7 JOINTURE Donnez le prix des films de la base films en Noir Blanc Quels sont le degr et la car dinalit de la relation obtenue Est il possible de calculer ces valeurs l avance comme on le fait pour un produit cart sien Prix Format Type Nombre 12 4 3 Couleur 3 4 16 9 Noir Blanc 1 12 16 9 Couleur 1664 35 4 3 Noir Blanc 890 12 16 9 Noir Blanc 1 Prix 4 35 On consid re ces deux relations pr sent es dans un exercice pr c dent voir figures 3 43 et 3 44 Film Prix Format Type Nombre Numero_Film Prix Format Type Nombre Numero_Film 12 4 3 Couleur 3 2 4 16 9 Noir Blanc 1 4 12 16 9 Couleur 1 664 50 35 4 3 Noir Blanc 890 12 12 16 9 Noir Blanc 1 12 Figure 3 41 Restriction et projection de la relation Film Figure 3 42 R sultat de la restriction et de la projection de la relation Film Figure 3 43 Relation Film 86 Cr ation de bases de donn es On fait une jointure entre les deux relations sur les champs Numero_Film
62. des enregistrements sur la table obtenue par la premi re requ te Un petit artifice est employ ici Comme la table provenant de la seconde requ te ne con tient qu un champ on effectue un produit cart sien entre ces deux tables sans modifier le nombre de lignes du r sultat Le but est de pouvoir disposer de la valeur du champ de la moyenne des commandes pour le comparer au compte du nombre de commandes SELECT requete1 NumClient requete1 NomClient FROM requete1 requete2 WHERE requete1 NombreCommande gt requete2 MoyenneCommande On peut crire ces diff rentes requ tes dans une seule en utilisant les sous requ tes ou requ tes imbriqu es Cependant il est prudent d accomplir d abord les tapes pr c den tes En d composant il est possible de v rifier les r sultats chaque tape et d viter ainsi un certain nombre d erreurs SELECT A NumClient A NomClient FROM SELECT commande NumClient NomClient COUNT AS NombreCommande FROM client JOIN commande ON client NumClient commande NumClient GROUP BY commande NumClient A WHERE R1 NombreCommande gt SELECT AVG B NombreCommande 144 Cr ation de bases de donn es FROM SELECT commande NumClient NomClient COUNT AS NombreCommande FROM client JOIN commande ON client NumClient commande NumClient GROUP BY commande NumClient B Il s agit exactement des m mes requ tes que celles obtenues lors des tapes pr c dentes Attention tous les SGBD
63. doute t ajout cet effet sinon il n y avait pas vraiment de cl s candidates Si la cl est atomique alors on est s r que la relation est en deuxi me forme normale il ne peut y avoir de d pendance entre un champ et une partie de la cl Il existe une d pendance fonctionnelle entre deux champs non cl Ville et Etablisse ment voir discussion au d but du chapitre On est dans le cas d une d pendance de type transitif Le champ Ville d pend du champ Etablissement qui d pend de la cl Numero_carte On d compose la relation de la mani re suivante voir figures 3 60 et 3 61 On consid re la relation suivante que l on a d j tudi e au d but du chapitre voir figure 3 59 Lecteur Numero carte Nom Age Ville Etablissement Num ro carte Nom Age Ville Etablissement 1 Henri 10 Paris Universit Sorbonne 2 Stanislas 34 Paris Universit Jussieu 3 Henriette 44 Lyon CHU Bron 4 Dominique 19 Nancy Universit Poincar 5 Isabelle 56 Nancy INPL 6 Olivier 51 Marseille Universit Saint Charles 7 Henri 98 Paris Universit Sorbonne 8 Jerome 23 Nancy INPL 9 Laurence 34 Bordeaux Universit Victor Segalen 10 Christian 41 Paris Ecole Normale Sup rieure 11 Antoine 16 Marseille Universit Saint Charles 12 Laurence 34 Paris Universit Jussieu Est elle en troisi me forme normale Figure 3 59
64. e des deux cl s des entit s associ es et des attributs de l association Application de la r gle g n rale On obtient les relations suivantes partir des entit s commande NumCommande DateCom Taille Retard client NumClient NomClient Adresse Compte PointsRaPizz pizza NomPizza Prix livreur CodeLivreur NomLivreur Telephone v hicule NumImmat Marque Type ingr dient NumIngre NomIngredient En appliquant la r gle g n rale on obtient les relations suivantes partir des associations livre CodeLivreur NumCommande transporte NumImmat NumCommande passe NumClient NumCommande constitue NomPizza NumCommande compose NumIngre NomPizza Cas particuliers des associations de cardinalit 1 1 Un cas particulier existe lorsque l une des cardinalit s d une association est de type 1 1 La relation repr sentant l association dispara t et fusionne avec la relation repr sentant l entit associ e avec la cardinalit 1 1 On peut dire qu il y a aspiration de l associa tion par l entit Dans cet exemple de nombreuses associations sont de type 1 1 par rapport l entit commande comme l association livre L application de cette r gle produit une sim 135 Du langage parl SQL 5 Chapitre plification du nombre de relations au d triment de la lisibilit g
65. entre plusieurs colonnes Propri t s g n rales La valeur de la colonne doit tre renseign e absolument NOT NULL La valeur doit tre unique compar e toutes les valeurs de la colonne de la table UNI QUE Lorsque les deux conditions pr c dentes sont r unies la colonne peut servir identifier un enregistrement et constitue donc une cl candidate On rappelle qu il ne peut y avoir qu une seule cl que l on d signera en SQL par le mot cl PRIMARY KEY Ici on indique que la colonne NumAch est choisie comme cl de la table donc implicitement unique et non nulle et que la colonne Nom doit toujours tre renseign e CREATE TABLE personne NumAch INT PRIMARY KEY Nom CHAR 20 NOT NULL Age INT Si aucune mention n est pr cis e comme pour la colonne Age elle peut tre renseign e ou non Attention une colonne non renseign e c est dire qui contient la valeur NULL pour SQL signifie qu elle ne contient aucune donn e et non pas par exemple qu elle NumVoit Marque Type Teinte 1 Peugeot 404 Rouge 2 Citroen SM Noire 3 Opel GT Blanche 4 Peugeot 403 Blanche 5 Renault Alpine A310 Rose 6 Renault Floride Bleue Affichage de la table voiture modifi e 115 SQL 4 Chapitre contient 0 pour une colonne de type entier ou un espace pour une colonne de type caract re Si la cl est constitu e de p
66. examiner le con tenu Une alternative au parcours s quentiel est de construire des tables descriptives afin d acc l rer l acc s aux donn es Une premi re table permet l acc s direct un enregistrement par une cl associ e l adresse pointeur de l enregistrement On rappelle que c est ce m canisme de pointeurs sur des enregistrements qui est mod lis dans les mod les hi rarchiques ou r seaux pour faire le lien entre des enregistrements On constitue ainsi le graphe qui permet de naviguer dans l ensemble des enregistrements Une seconde table contient l ordre relatif des enregistrements ordonn s suivant les valeurs d un champ on appelle cette table un index voir figure 1 11 Cette seconde table permet d employer des m thodes de recherche par le contenu du champ index beaucoup plus efficaces qu une recherche s quentielle La recherche dichotomique bien connue est l une d entre elles Une fois l enregistrement identifi on y acc de directement gr ce la pre mi re table Les techniques de constitution des index constituent un sujet part enti re ainsi que les algorithmes de recherche qui leur sont associ s Figure 1 11 Fichier et index On constate que la simple recherche d informations recourt d j des algorithmes assez sophistiqu s et n cessite la construction et le maintien de structures annexes pour tre efficace De m me la destruction d enreg
67. gestion de fichiers des langages de programmation comme le langage C fonctionnent encore avec cette m taphore Lorsqu on utilise un fichier pour stocker de l information il est n cessaire de pr voir un d coupage de celui ci par enregistrements souvent de taille fixe Pour passer d un enregistrement l autre il suffit alors d avancer la t te de lecture de la taille d un enregistrement voir figure 1 10 Les donn es sont stoc k es dans l enregistrement par un d coupage interne suivant la taille de chaque donn e On utilise g n ralement des structures de donn es par exemple en langage C pour r cu p rer directement chaque valeur de champ dans une variable Dans une base de donn es on recherche les donn es par leur contenu Pour retrouver l une d entre elles il faut donc parcourir tous les enregistrements un un recherche s quentielle et en examiner le contenu 14 Cr ation de bases de donn es Figure 1 10 Fichier informatique Dans le cas d un acc s s quentiel la recherche d un enregistrement en position n n cessite d acc der aux n 1 enregistrements qui le pr c dent Si l on recherche l article de r f rence DR NetCard10 102 contenu dans le fichier Article il sera n cessaire de parcourir tous les enregistrements depuis le d but du fichier jusqu l article recherch Pour retrouver une information il faut donc parcourir tous les enregistrements un un et en
68. gestion et continue d exercer la fonction d analyste consultant aupr s d entreprises et d administrations Avant propos IX Avant propos Objectifs de l ouvrage Le but de cet ouvrage est de proposer une m thode ceux qui veulent concevoir un syst me d information robuste et volutif en vitant les cueils classiques aboutissant des donn es inutilisables En effet une mauvaise conception de d part conduit stocker des donn es inutiles redondance et ainsi g n rer des incoh rences Par ailleurs une structure de don n es inadapt e peut provoquer des erreurs fondamentales d expression dans l interrogation de la base de donn es Il n est pas ais de pr senter dans un seul ouvrage toutes les facettes du monde des bases de donn es de l enqu te pr alable la r alisation pratique en SQL et il a donc fallu op rer certains choix pour ne conserver que l essentiel La bibliographie propos e permet d appro fondir les diff rents sujets pr sent s dans l ouvrage La langue utilis e est volontairement peu technique pour rendre accessibles les concepts au public d butant vis L ouvrage s adresse des tudiants de toutes les fili res qui d butent dans ce domaine mais aussi aux professionnels qui veulent mettre en place une base de donn es m me de taille modeste En effet les probl mes pratiques que pose la r alisation d une base de donn es se retrouvent toutes le
69. information concernant cette cat gorie acteurs r alisateurs Le reste de l nonc permet de d crire les attributs des entit s et des associations Entit client On a peu d informations sur cette entit si ce n est que le client poss de un compte qui fera partie de ses attributs Les autres attributs ont t choisis classiquement nom pr nom adresse t l etc Il est n cessaire d utiliser un attribut pour l identifiant ici Num Client Entit film L entit est mieux d crite par son titre son genre son prix et le nombre de DVD dans la pochette Il est galement n cessaire d utiliser un attribut pour l identifiant ici Num Film Entit personnel L entit ne comprend que les informations nom et pr nom Il est galement n cessaire de cr er un attribut pour l identifiant ici NumPers Vous d sirez g rer un club de pr t de DVD Les clients adh rents du club versent une somme sur leur compte lors de leur adh sion Ils peuvent r server le film avant de le louer et peuvent le garder une semaine au maximum Le prix de location du film est forfaitaire par jour emprunt Il leur est possible de se faire livrer le film chez eux cette op ration est factur e forfaitairement en plus Le film est d crit par son titre le genre du film le r alisateur et les trois acteurs princi paux On pr cise galement le nombre de DVD il peut y e
70. jamais une donn e qui peut tre calcul e Par cons quent on ne stocke pas les prix hors taxes et toutes taxes de chaque pizza On suppose que le prix stock dans la table pizza est le prix hors taxes Si le taux est fixe on peut l utiliser pour les calculs de prix toutes taxes On affiche le contenu de l expression qui permet de calculer le prix toutes taxes SELECT NomPizza Prix 1 19 6 AS Prix_Ttc FROM pizza Si le taux n est pas fixe il faut l inclure dans le syst me d information on cr e une table taxe avec une ligne et une colonne qui contiendra uniquement le taux CREATE TABLE taxes Taux FLOAT INSERT INTO taxes Taux VALUES 19 6 On r cup re la valeur du taux comme on l a fait pr c demment en faisant un produit car t sien avec la table taxes SELECT NomPizza Prix 1 Taux AS Prix_Ttc FROM pizza taxes Dans ce second cas il faudrait pour tre complet ajouter l entit taxes au mod le entit association Elle ne serait li e aucune entit par une association EXERCICE 9 AUTRE EXEMPLE COMPLET On veut pouvoir calculer les prix des pizzas hors taxes et toutes taxes Que faut il modifier dans la base de donn es selon que le taux est consid r comme fixe ou susceptible de varier Xavier S poss de deux tablissements h teliers dans le Limousin Le Saint Bob Saint Robert et Le Saint S gur S gur le Ch teau Il d sire automat
71. la table voiture Ce r sultat est pr visible puisqu une voiture doit exister dans la table voiture pour pouvoir faire l objet d une vente On dispose alors d un moyen de contr ler la coh rence des donn es entre les tables dans notre cas on pourra ainsi v rifier qu il n y a pas de valeur d identifiant de voi ture dans la table vente contenu de la colonne NumVoit de la table vente qui ne se trouve pas dans la table voiture contenu de la colonne NumVoit de la table voiture SELECT voiture NumVoit vente NumVoit voiture Marque voiture Couleur vente Prix FROM vente LEFT OUTER JOIN voiture ON voiture NumVoit vente NumVoit NumVoit NumVoit Marque Couleur Prix 1 1 Peugeot Rouge 10 000 2 2 Citroen Noire 70 000 3 NULL Opel Blanche NULL 4 4 Peugeot Blanche 30 000 5 5 Renault Rose 45 000 6 NULL Renault Bleue NULL NumVoit NumVoit Marque Couleur Prix 1 1 Peugeot Rouge 10 000 2 2 Citroen Noire 70 000 4 4 Peugeot Blanche 30 000 5 5 Renault Rose 45 000 Construction de la jointure externe des tables voiture et vente sur les crit res d galit de la colonne NumVoit Construction de la jointure externe invers e des tables voiture et vente sur les crit res d galit de la colonne NumVoit 109 SQL 4 Chapitre ou SELECT voiture NumVoit vente Num
72. le pr ter deux personnes simultan ment On choisit n Pour d terminer les cardinalit s du c t de l entit personne Une personne peut elle ne pas avoir emprunt de livre Si c est le cas la valeur mini male sera de 0 sinon elle sera de 1 Une personne ne s inscrit la biblioth que que dans le but d emprunter un livre elle en a donc au moins emprunt un On choisit 1 Une personne peut elle emprunter plusieurs livres Si c est le cas la cardinalit maxi male sera de n sinon elle sera de 1 On choisit n un lecteur n est pas limit l emprunt d un seul livre Association a_ crit Pour d terminer les cardinalit s du c t de l entit ouvrage Un ouvrage peut il ne pas avoir d auteur Si c est le cas la valeur minimale sera de 0 sinon elle sera de 1 On choisit 1 on suppose qu il n y a pas de livre anonyme Quelles questions faut il poser aux utilisateurs de la base de donn es pour d terminer les cardinalit s des associations Proposez une r ponse ces questions et d duisez en les cardinalit s pour chaque entit 47 Analyse du monde r el Exercices 2 Chapitre Un ouvrage peut il avoir plusieurs auteurs Si c est le cas la valeur maximale sera de n sinon elle sera de 1 un livre peut avoir plusieurs auteurs c tait d ailleurs la motivat
73. multicri t re obligatoire et projection dans un QBE Figure 3 35 S lection multicrit re optionnel et projection dans un QBE Figure 3 32 S lection sur un contenu et projection dans un QBE Figure 3 36 Jointure et projection dans un QBE 80 Cr ation de bases de donn es R sum L approche relationnelle mod lise les faits de la vie r elle par des tuples qui sont des ensembles de valeurs de diff rents champs ou attributs r frig rateur 2003 rouge est un tuple qui repr sente des valeurs des champs Objet Ann e Couleur li es dans le monde r el L ensemble des tuples s appelle une relation Il s agit du concept de base qui sera manipul par l approche relationnelle et peut tre repr sent sous la forme d une table Pour identifier un tuple on utilise le contenu d un ou de plusieurs champs que l on nom mera la cl d une relation Cette derni re est tablie en utilisant le concept de d pendance fonctionnelle entre les diff rents champs La cl est constitu e par le plus petit ensemble de champs dont d pendent fonctionnellement les autres champs Si plusieurs cl s sont possibles on parle de cl s candidates La cl choisie sera nomm e la cl primaire Les op rations de manipulation de ces relations peuvent tre regroup es en trois cat gories Les op rations du monde ensembliste Produit cart sien intersection union et diff rence
74. ne permettent pas d imbriquer les requ tes 4 5 CALCUL DU PRIX D UNE COMMANDE On d sire calculer le prix d une commande dans le but d tablir ensuite le r capitulatif du chiffre d affaires mensuel par exemple par client et de fa on g n rale d autres calculs Le prix d une commande est fonction de la taille de la pizza command e qui pond re le prix de base de la pizza on peut l extraire de la table pizza Difficult s li es la repr sentation choisie On s aper oit lors de cette op ration que la repr sentation sous forme textuelle naine humaine ogresse de la taille d une pizza n est pas adapt e pour le calcul En effet on est incapable de calculer son prix directement en SQL partir des informations conte nues dans la table Il n y a pas d indication dans la base de donn es du mode de calcul du prix de la pizza ce qui signifie que l on doit faire un test de ce type si taille vaut ogresse alors prix prix 1 1 3 Le plus simple est alors de passer par un langage de programmation pour associer la taille au coefficient qui permet de calculer le prix Ce n est pas le but recherch la base de donn es doit tre autonome et il s agit d une information importante que l on doit pouvoir retrouver dans la base et qui doit donc y tre stock e Modification de la base de donn es On propose une modification de la base de donn es pour int grer cet
75. ogresse est 1 3 plus ch re Mode de distribution Les pizzas sont livr es par des livreurs qui circulent en voiture ou moto et qui n ont pas de v hicules attitr s La base de donn es doit galement permettre le suivi de l activit des livreurs et des v hicules qu ils utilisent Modalit s de vente Le mode de vente est du type pr pay pr alablement toute commande les clients doi vent s abonner au service et approvisionner leur compte On v rifie le solde du compte avant de pr parer et de livrer la commande Il existe deux syst mes de bonification Une pizza gratuite est offerte au bout de 10 pizzas achet es Toute pizza livr e en plus de trente minutes est gratuite Objectifs du syst me Le but de cette base de donn es est de g rer l activit quotidienne de vente et de livraison de pizzas v rification du solde du compte et facturation aux clients suivi du chiffre d affaires refus d honorer les commandes pour lesquelles le solde du compte client est insuffisant non facturation des pizzas gratuites retard ou fid lit On veut galement effectuer des statistiques diverses sur l activit identification du meilleur client identification du plus mauvais livreur nombre de retards dans la livraison et du v hicule utilis identification de la pizza la plus ou la moins demand e identification de l ingr dient favori
76. op rations de s lection vues pr c demment Il est galement possible d utiliser le r sultat d une requ te pour d termi ner l ensemble des valeurs d une colonne afin d effectuer cette s lection 4 1 INSERTION INSERT INTO L insertion d enregistrements dans une table peut se r aliser de plusieurs mani res enregistrement par enregistrement INSERT INTO en ins rant la r ponse une requ te SQL INSERT INTO 117 SQL 4 Chapitre La commande pour ins rer des donn es est de la forme g n rale suivante INSERT INTO lt nom de la table gt liste des colonnes VALUES lt liste des valeurs gt Insertion d un enregistrement dans la table voiture INSERT INTO voiture NumVoit Marque Couleur VALUES 10 Triumph Bleue SELECT FROM voiture Si certaines colonnes sont omises elles prendront la valeur NULL Si la liste des colonnes est omise on consid re qu il s agit de la liste de celles prises dans l ordre d fini lors de la cr ation de la table Insertion d enregistrement s partir du r sultat d une requ te La table dans laquelle on ins re les donn es doit avoir le m me nombre de colonnes que la table r sultat de la requ te et le m me type INSERT INTO voiture SELECT NumVoit Marque Type Couleur FROM voiturebis WHERE NumVoit gt 10 4 2 SUPPRESSION DELETE FROM L op ration de suppression permet de supprim
77. par une structure Quel type d architecture permet de garantir en m me temps la haute disponibilit des donn es et de disposer de sauvegarde Quels sont les inconv nients de ce syst me 177 Pr servation des donn es Exercices 6 Chapitre compte de la proximit au sens informatique du serveur par rapport au client qui effectue la requ te Cette proximit peut tre calcul e en termes de distance combien de n uds du r seau sont travers s mais galement en termes de charge des branches du r seau Il existe des outils capables de tenir jour en permanence ce genre d informations mais ils sont assez complexes g rer Lors du choix de la machine vers laquelle on va redi riger la demande on doit prendre en consid ration galement sa charge et donc son apti tude r pondre rapidement Les inconv nients d une solution compl te de ce type sont vidents Les applications de r partition de charge sur un r seau standard sont d j complexes g rer on imagine bien qu elles le sont d autant plus lorsque l on passe une chelle sup rieure Un autre incon v nient est la difficult de maintenir des copies des donn es jour par rapport la base primaire Si les mises jour sont tr s fr quentes il devient difficile de disposer des m mes donn es sur tous les secondaires Une autre solution plus facile g rer pour r partir naturellement la charge entre le
78. pas familier Les incoh rences de ce type seront r so lues par la r organisation des relations lors de la phase de normalisation 60 Cr ation de bases de donn es 2 Op rations du mod le relationnel La manipulation des donn es dans le mod le relationnel se fait l aide d op rations for melles reposant sur des concepts math matiques issus de la th orie des ensembles c est l alg bre relationnelle Les op rations de l alg bre relationnelle portent sur une ou plu sieurs relations ou tables Le r sultat retourn par ces op rations est toujours une rela tion ou table Cette section pr sente une liste non exhaustive des diff rentes op rations de l alg bre rela tionnelle Ces derni res peuvent tre regroup es en plusieurs cat gories les op rations classiques issues de la th orie des ensembles union intersection diff rence les op rations plus sp cifiques du monde relationnel projection s lection jointure qui constituent les op rations fondamentales de l alg bre relationnelle les op rations de types calcul et agr gats qui ne constituent pas r ellement des op ra tions fondamentales ni ensemblistes ni relationnelles mais qui sont le compl ment indispensable des pr c dentes 2 1 OP RATIONS ENSEMBLISTES L alg bre relationnelle emprunte un certain nombre de concepts la th orie des ensem bles l exception du produit cart sien ces op ration
79. perte d information La mani re de r soudre les incoh rences l aide de la forme normale de Boyce Codd est galement pr sent e Enfin le lien entre les bases de donn es et la logique du premier ordre est rapidement expos afin de d crire la m thode d interrogation de base de donn es par QBE Query By Example qui en d coule 56 Cr ation de bases de donn es 1 Concepts Cette section expose la notion de relation et la terminologie qui lui est associ e On pr sente ensuite les diff rents types de contraintes associ es au contenu d une relation ainsi que la notion de cl d une relation 1 1 MOD LE RELATIONNEL Le mod le relationnel tire son nom de la notion de relation math matique entre des l ments Chacun de ces l ments peut prendre des valeurs dans un ensemble d fini On suppose que l on consid re les appareils electrom nagers d une cuisine Ils peuvent tre contenus dans l ensemble des valeurs suivantes r frig rateur cuisini re hotte robot lave vaisselle On consid re par ailleurs un ensemble de couleurs qui peuvent tre conte nues dans l ensemble des valeurs suivantes rouge bleu vert jaune blanc noir rose jaune Les combinaisons possibles entre les appareils et les couleurs sont au nombre de 40 puisqu il y a 5 appareils que l on peut associer 8 couleurs Parmi toutes ces combinaisons possibles on effectue une s lection qui repr sente par exemple la d
80. plate forme utilis e ainsi que des autres langages de plus bas niveau employ s en programmation objet comme Java et C Il utilise une notation graphique et a connu tr s rapidement le succ s dans le monde objet par la souplesse qu il apporte en gestion de projets de d veloppement 4 1 UML ET BASES DE DONN ES Quel est le rapport avec les bases de donn es UML a t adapt afin d tre utilis pour la mod lisation en bases de donn es on recourt cet effet un profil sp cifique UML pro file for data modeling M me s il est pr vu initialement uniquement pour la mod lisation objet UML permet aussi de repr senter un mod le conceptuel utilisable pour cr er des bases de donn es relationnelles et relationnelles objet Les approches objet et relationnel les objet en bases de donn es ont t introduites dans le premier chapitre et d passent lar gement le cadre de cet ouvrage En outre une motivation suppl mentaire pour utiliser UML est de pouvoir disposer d outils logiciels graphiques du march pour la description et l automatisation du processus de pas sage au SGBD allant jusqu la g n ration de code SQL UML offre des garanties de p ren nit du fait de sa normalisation M me si UML n apporte pas d volutions majeures quant aux m thodes existantes de mod lisation en bases de donn es il est de plus en plus large ment r pandu et permet d utiliser le m me formalisme et les m mes outils
81. plus souvent du poste budg taire le plus on reux dans un projet d informatique d cisionnelle Teanne Alize Alize Merlin Lastoul Tian Merlin Tapeneau Tian Hugo Fils P re 11 Introduction aux bases de donn es 1 Chapitre Figure 1 8 Entrep ts de donn es XML Le World Wide Web est la mise en uvre du concept d hypertexte par l utilisation de la structure de communication fournie par Internet Les fichiers dispers s sur diff rentes machines du r seau Internet peuvent ainsi tre associ s Son succ s a provoqu un glisse ment de l id e originale qui consistait relier simplement des textes entre eux vers la notion d interface universelle On ne transmet plus seulement le contenu d un fichier sta tique mais galement le r sultat de l ex cution d un programme le contenu devient donc dynamique Par extension on imagine ais ment que le m canisme du Web peut gale ment transmettre le r sultat de l interrogation d une base de donn es Le concepteur du Web T B Lee s est appuy pour sa mise en uvre outre la structure technique existante d Internet sur un langage de description de documents utilisant des balises le SGML Standard Generalized Markup Language Le d coupage du document par les balises est d crit dans un document associ que chacun peut cr er en fonction des ses besoins la DTD Data Type Definition Cette derni re formul e dans un langage
82. probablement indispensable pour imprimer les factures On aurait pu conserver le champ Taille avec le libell pour ne pas perdre cette information il suffit de ne pas effacer la colonne Taille derni re commande de la liste pr c dente On se trouve alors dans la situation o il existe une d pendance fonctionnelle entre les champs Taille et Taille_Prix En effet une taille correspond un unique prix la relation commande n est plus en troisi me forme normale et l on a cr de la redondance Pour r gler ce probl me il suffit de d composer la relation commande en cr ant une nouvelle relation tarification qui d crira le coefficient en fonction du libell Cr ation de la table tarification CREATE TABLE tarification Taille CHAR 30 PRIMARY KEY Coefficient FLOAT NOT NULL Insertion des donn es dans la table tarification INSERT INTO tarification Taille Coefficient VALUES naine 2 3 INSERT INTO tarification Taille Coefficient VALUES humaine 1 INSERT INTO tarification Taille Coefficient VALUES ogresse 4 3 On obtient alors les instructions SQL suivantes pour calculer le prix d une commande Il est n cessaire de faire une jointure entre les trois tables commande pizza pour le prix et tarification pour le coefficient SELECT commande NumCommande pizza Prix tarification Coefficient AS Prix_Commande FROM commande J
83. proviennent du livre Les Voyages de Gulliver o l auteur d crit des peuplades qui mangent les ufs par le petit bout oppos es celles qui les mangent par le grand bout Il existe d autres repr sentations du codage Unicode UTF 32 sur 32 positions UTF 7 sur 7 positions etc UTF 8 est logiquement le codage le plus fr quemment utilis actuelle ment car il est celui qui consomme le moins de place si l on utilise des caract res ASCII ou europ ens et qui n cessite le moins de changements structurels aux niveaux logiciel et mat riel noter que dans tous les cas on pourra reconna tre informatiquement le type de codage qui est utilis Unicode n est pas parfait puisqu il a int gr les syst mes de codage h rit s des syst mes pr c dents presque depuis le code Morse En revanche les langues qui ne poss daient aucun codage pr liminaire disposent d un codage l gant et coh rent Unicode est actuellement support par la plupart des syst mes d exploitation mais la transformation de tous les textes et bases de donn es existants prendra du temps Ken Whistler directeur technique du consortium Unicode pr voit environ 10 ans pour la transition Figure A 1 Les diff rents codages de caract res Morse Baudot 5 positions BCD IBM 6 positions ASCII 7 positions ISO 8859 8 positions ISO 8859 1 Latin1 ISO 8859 15 Latin9 ISO 8859 7 Grec UNICODE ISO 10646
84. que les concep teurs d applications logicielles Remarque Il en serait diff remment pour des associations entre ces deux entit s qui exprimeraient un autre sens Si l on consid re l association compose ou arrange entre les entit s musicien et mor ceau il ne s agit pas de la m me activit que l association interpr te on ne fusionnera pas les associations dans ce cas Musicien NumMusicien Nom Pr nom Morceau NumMorceau Titre Interpr te 1 n 1 n Instrument 41 Analyse du monde r el 2 Chapitre 4 2 REPR SENTATION DU MOD LE CONCEPTUEL AVEC LES DIAGRAMMES DE CLASSES UML UML a t d velopp l origine pour la mod lisation des concepts objet La tendance actuelle consiste utiliser une partie restreinte de ce puissant langage de mod lisation afin de repr senter le mod le conceptuel des donn es Dans sa version compl te UML propose neuf types de diagrammes r partis en deux cat gories les diagrammes de struc ture qui d crivent la partie statique du mod le les diagrammes de comportement qui d crivent la partie dynamique c est dire les traitements On utilise les diagrammes de classes qui font partie des diagrammes de structure pour repr senter les l ments du mod le conceptuel Classes Dans ce type de repr sentation les entit s sont interpr t es comme des objets et sont repr sent es par des classes La description d
85. sens du point de vue du monde r el ne peut tre d duit du sch ma des relations Pour ce faire il faut consulter le mod le conceptuel qui lui a servi de base EXERCICE 9 AUTRE QUESTION N GATIVE JOINTURE EXTERNE C est une question n gative comme celle de l exercice 4 5 mais qui met en jeu deux tables Il s agit de trouver en comparant les valeurs de la colonne NumVoit comprises Donnez les noms des personnes et la marque des voitures qu elles ont achet es Que donnerait cette requ te SELECT vo Marque pe Nom FROM voiture AS vo JOIN vente AS ve JOIN personne AS pe ON vo NumVoit ve NumAch AND pe NumAch ve NumVoit Obtient elle une r ponse ou provoque t elle un message d erreur Quelles sont les villes o habitent les personnes qui n ont pas achet de voiture 123 SQL Exercices 4 Chapitre dans les tables vente et voiture celles qui sont dans voiture et pas dans vente cet effet on utilise une op ration qui n est pas proprement parler une op ration de l alg bre relationnelle qui s appelle la jointure externe qui permet d afficher les enregistre ments qui n ont pas de correspondance dans l autre table L encore le raisonnement peut se d composer en deux tapes Construction de la jointure externe des deux tables l ajout des colonnes NumAch des deux tables dans la r ponse sert simplement v rifier notre
86. t rouge Afficher les prix de vente sup rieurs 10 000 p vente _ p _ _ p gt 10000 Les conditions situ es sur la m me ligne sont reli es par un et voir figure 3 34 Afficher les prix de vente sup rieurs 10 000 et dont la date de vente a eu lieu apr s le 1er janvier 1997 p vente d p _ _ p gt 10000 d gt 01 01 1997 Les conditions situ es sur deux lignes diff rentes sont reli es par un ou voir figure 3 35 Afficher les prix de vente sup rieurs 10 000 ou dont la date de vente a eu lieu apr s le 1er janvier 1997 p vente d p _ _ p gt 10000 d gt 01 01 1997 La jointure entre deux relations se fait en utilisant une variable exactement comme dans une formule de la logique de premier ordre voir figure 3 36 Afficher le type des voitures vendues et leur prix t p nv voiture nv _ t _ vente _ p _ nv Cette m thode d interrogation simple et efficace est encore propos e par de nombreux SGBD NumVoit Marque Type Couleur Rouge DateVent Prix NumAch NumVoit gt 10 000 DateVent Prix NumAch NumVoit gt 01 01 1997 gt 10 000 DateVent Prix NumAch NumVoit gt 01 01 1997 gt 10 000 NumVoit Marque Type Couleur Nv DateVent Prix NumAch NumVoit Nv Figure 3 33 S lection sur un crit re et projection dans un QBE Figure 3 34 S lection
87. table vente SELECT pe Nom FROM voiture AS vo JOIN vente AS ve JOIN personne AS pe ON vo NumVoit ve NumVoit AND pe NumAch ve NumAch WHERE vo Couleur Rouge Ins rez les valeurs suivantes dans la table pr c demment cr e NumAch 100 Nom Essai Ville Paris L enregistrement est il valid Satisfait il aux contraintes d int grit Modifiez le prix de vente 10 des voitures Quelles sont les personnes qui n ont pas achet de voitures rouges Du langage parl SQL 127 Chapitre 1 Pr sentation de l activit mod liser 128 2 laboration du mod le entit association 129 3 Passage au mod le relationnel 134 4 Interrogation de la base de donn es 141 Exercices 1 Repr sentation UML 148 2 Calculs par expression SQL 148 3 Code SQL et signification 149 4 Agr gats et s lection 150 5 Requ tes combin es 151 6 Simple s lection ou jointure externe 152 7 Mise jour de la base 153 8 volution de la base de donn es 154 9 Autre exemple complet 154 Ce chapitre pr sente un exemple complet de r alisation d une base de donn es tape par tape On part de l nonc dans la vie r elle jusqu
88. table avec toutes les lignes d une autre table sans tenir aucun compte du sens associ aux donn es C est une op ration qui n a gu re d int r t en pratique En SQL cette op ration s crit simplement SELECT FROM personne voiture Marque Couleur Peugeot Rouge Citroen Noire Opel Blanche Peugeot Blanche Renault Rose Renault Bleue Marque Couleur Peugeot Rouge Citroen Noire Opel Blanche Peugeot Blanche Renault Rose Renault Bleue NumAch Nom Age Ville Sexe Num Voit Marque Type Couleur 1 Nestor 96 Paris M 1 Peugeot 404 Rouge 2 Irma 20 Lille F 1 Peugeot 404 Rouge 3 Henri 45 Paris M 1 Peugeot 404 Rouge 4 Josette 34 Lyon F 1 Peugeot 404 Rouge 5 Jacques 50 Bordeaux M 1 Peugeot 404 Rouge 1 Nestor 96 Paris M 2 Citroen SM Noire Qualification des attributs par leur table d appartenance Qualification simplifi e des attributs par leur table d appartenance Produit cart sien 106 Cr ation de bases de donn es Le nombre de lignes de la table r sultat est gal au produit du nombre de lignes des deux tables Les colonnes sont celles des deux tables simplement juxtapos es Jointure interne INNER JOIN Il s agit de l op ration de base de l alg bre relationnelle Elle permet de lier deux tables entre elles en introduisant un crit re de sens des donn es issu du monde r el
89. tionnelles avec SQL Toutes les requ tes de ce type retournent comme r sultat une table qui peut tre sauvegard e sous forme de table temporaire Cette table interm diaire est utilis e pour effectuer d autres requ tes La cr ation la modification et la destruction d une table sont abord es dans la section Gestion de tables et de vues L expression des contr les de coh rence contraintes d int grit que l on souhaite appliquer une table est trait e logiquement dans cette sec tion La manipulation insertion modification et suppression des donn es d une table est abord e dans la section Gestion des donn es La partie de SQL qui est consacr e la gestion des autorisations sera abord e plus loin au chapitre 6 Cet ouvrage ne traite pas de l int gralit de la norme SQL ce n est pas son objectif Pour en savoir plus vous pouvez vous reporter l ouvrage dit dans la m me collection F Brouard et C Soutou Syntex SQL 2 Op rations relationnelles avec SQL Cette section pr sente l expression en SQL des op rations de l alg bre relationnelle vues pr c demment projection s lection agr gats produits cart siens et jointures Une des cription pr cise de ces op rations se trouve au chapitre 3 Les exemples simples qui pr sentent les op rations relationnelles utilisent la base de donn es casse voir figure 4 2 Remarque Par convention dans tous les exemp
90. tique de d centralisation des organisations Ce type d architecture masque la r partition de l information tout en garantissant une gestion transparente aux utilisateurs comme s ils disposaient d une seule base de donn es voir figure 1 6 Les bases de donn es r par ties assurent ainsi une plus grande fiabilit de meilleures performances et facilitent l volution du syst me d information La fiabilit et la s curit On effectue une copie de s curit des donn es sur un site dis tant intervalles r guliers pour viter le d sastre de la perte de donn es due un incen die par exemple La disponibilit On proc de des r plications quasi permanentes des donn es dans le but de rapprocher les utilisateurs des donn es d un point de vue de la topologie du r seau On am liore galement le temps de r ponse en r partissant la charge entre les serveurs Cette distribution est g r e de mani re intelligente par les syst mes informa tiques ce qui permet de r partir l information efficacement sur les diff rents sites en fonction des acc s utilisateurs Ces principes sont notamment utilis s par les moteurs de recherche Les donn es sont r parties sur des sites s par s Le dispositif permet de masquer cet aspect aux utilisateurs et de fonctionner comme si un seul serveur tait pr sent sur un seul site L volution du syst me est rendue totalement transparente pour les utilisat
91. une ligne et une colonne qui contient la valeur calcul e En effet le r sultat d une op ration sur une relation est tou jours une relation voir figure 3 19 La_boutique_moyenne Moyenne_Prix De m me les op rations de base de l alg bre relationnelle ne permettent pas de r pondre des questions du type Combien trouve t on de personnes par ville La solution consiste alors regrouper les enregistrements qui contiennent les m mes valeurs dans le champ Ville ce regroupement s appelle un agr gat On applique ensuite chaque sous relation ainsi constitu e une op ration statistique dans notre cas l op ration de comptage voir figure 3 20 Lecteur_parville Ville Nombre Num_Facture Article Prix Quantite 101 Bananes 12 45 1034 Choux 5 129 2345 Riz 4 60 0987 Gazelle 15 48 Num_Facture Article Prix Quantite Total 101 Bananes 12 45 540 1034 Choux 5 129 645 2345 Riz 4 60 240 0987 Gazelle 15 48 720 Moyenne_Prix 9 Ville Nombre Bordeaux 1 Lyon 1 Figure 3 17 Relation La_boutique Figure 3 18 Relation La_boutique avec le champ calcul Total Figure 3 19 Moyenne des prix de la relation La_boutique Figure 3 20 Agr gat par ville de la relation La_boutique 68 Cr ation de bases de donn es 3 Passage du mod le conceptuel au relationnel On a expos au chapitre sur l analy
92. une relation par une table correspondant la notion de tableau Les tuples correspondent aux lignes et les colonnes aux champs de la relation Voici sous forme de table une repr sentation de l exemple pr c dent voir figure 3 1 Dans le mod le relationnel la relation est l l ment fondamental Toutes les op rations sur une ou plusieurs relations retourneront une relation Un ensemble de relations reli es entre elles par des liens s mantiques constitue une base de donn es 57 Approche relationnelle 3 Chapitre 1 2 NOTION DE CL D UNE RELATION ET D PENDANCE FONCTIONNELLE Lorsque que l on utilise une base de donn es il est n cessaire d acc der un enregistre ment par le contenu d un ou de plusieurs champs On nomme cl d une relation un champ ou un ensemble de champs d une relation qui permet d identifier pr cis ment un enregistrement Une relation peut comprendre plusieurs cl s possibles ce sont les cl s candidates La cl choisie doit tre minimale c est dire qu elle doit contenir le mini mum de champs Cette cl minimale ainsi d finie est appel e la cl primaire de la relation Une cl doit toujours contenir une valeur et celle ci doit tre unique pour chacun des enregistrements de la relation La cl ne peut tre d duite simplement partir du contenu de la relation on ne peut pr juger du contenu futur des enregistrements Si l on prend la relation ma_cuisine
93. utiliser le SGBD si l on ne les sp cifie pas explicitement 189 Bibliographie Bibliographie G Gardarin Bases de donn es Eyrolles 2001 ISBN 2 212 09283 0 R Elmasri et S Navathe Conception et Architecture des bases de donn es Pearson Educa tion 2004 ISBN 2 7440 7055 6 C Delobel C L cluse et P Richard Bases de donn es et Syst mes relationnels Dunod N Boudjlida Bases de donn es et Syst mes d informations Le Mod le relationnel langages syst mes et m thodes Dunod 1999 C J Date Introduction aux bases de donn es Vuibert 2004 ISBN 2 7117 8640 4 T Connoly et C Begg Syst mes de bases de donn es Eyrolles ISBN 2 89377 267 6 F Brouard et Ch Soutou Synthex SQL Pearson Education 2005 ISBN 2 7440 7095 5 B Charroux A Osmani et Y Thierry Mieg Synthex UML2 Pearson Education 2005 ISBN 2 7440 7124 2 Ch Soutou De UML SQL Eyrolles 2002 ISBN 2 212 11098 7 H Tardieu A Rochfeld et R Colleti La M thode MERISE Eyrolles 2000 D Nanci et B Espinasse Ing nierie des syst mes d information Merise deuxi me g n ra tion Vuibert 2001 ISBN 2 7117 8674 9 P Andr et A Vailly Conception des syst mes d information panorama des m thodes et des techniques Technosup Ellipse 2001 ISBN 2 7298 0479 X E F Codd A Relational Model of Data for Large Shared Data Banks 1970 191 Index Index A Acc s concurrent 167 ACID
94. 111 NVARCHAR 111 REAL 111 SMALLINT 111 TIME 111 VARCHAR 111 U UML 17 30 40 41 42 V Verrouillage 170 Verrous 168 Vues 116 165 W World Wide Web 2 11 X XML 11 12 Base de donn es book Page 193 Lundi 5 juin 2006 3 33 15 Pearson Education France 47 bis rue des Vinaigriers 75010 Paris T l 01 72 74 90 00 Fax 01 42 05 22 17 www pearson fr ISBN 978 2 7440 7386 1 I n f o r m a t i q u e Synth se de cours exercices corrig s amp La collection Synthex informatique propose de re d couvrir les fondements th oriques et les applications pratiques des principales disciplines de science informatique partir d une synth se de cours rigoureuse et d exercices aux corrig s d taill s le lecteur tudiant ou professionnel est conduit au c ur de la discipline et acquiert une compr hension rapide et un raisonnement solide L auteur Nicolas Larrousse est ing nieur au CNRS Sp cialis en informatique il enseigne les bases de donn es l universit de Versailles Saint Quentin en Yvelines et au service de formation permanente de l universit Pierre et Marie Curie Jussieu Le relecteur ric Innocenti est ma tre de conf ren ces en informatique l universit de Corse Il est responsable p dago gique des li res SRC Services et R seaux de Communication et LPM Licence Professionnelle Multim dia Il enseigne l algorithmique la program mat
95. 25 Entit humain_animal _v g tal li e par l association mange avec cardinalit s EXERCICE 7 ASSOCIATION TERNAIRE On doit d finir une nouvelle entit vendeur En effet les informations du vendeur sont ind pendantes de celles des voitures ou des clients On peut envisager le cas o l on ajoute les informations du vendeur comme attributs de l association vente mais un vendeur est susceptible de r aliser plus d une vente On r p terait alors ces informations identiques pour le m me vendeur avec les risques d incoh rence classiques L entit vendeur est li e l entit voiture mais galement l entit client Ces liens sont cr s par l op ration de vente Un vendeur vend une voiture Un vendeur vend un client On veut repr senter les liens de nourriture entre des humains des animaux et des v g taux L id e partir des sch mas d alimentation mod lis s est de pouvoir d duire des cha nes alimentaires de ce type un homme mange un lapin qui mange des carottes partir de la base de donn es exemple de vente de voitures on souhaite ajouter les in formations concernant le vendeur qui a r alis la vente Proposez une ou plusieurs mo dification s du mod le entit association labor pr c demment Ajoutez les nouvelles cardinalit s introduites par cette modification v g tal IdHAV NomHAV Mang
96. 33 Le champagne et la France NumAuteur Nom Prenom 1 Lasso Jean 2 De la Tuque Hubert 3 Wilski Stanislas 4 Salem Aristide 5 Dupont Salome 6 Light Penelope 7 Martinez Vanessa Figure 3 23 Relation Publication avec un champ multivalu Figure 3 24 D composition de la relation Publication en trois relations 72 Cr ation de bases de donn es EstEcrite NumPubli NumAuteur On doit alors effectuer des jointures sur les diff rentes relations afin de reconstituer l information dans son int gralit Cette d composition en trois relations se fait sans perte d information 4 2 DEUXI ME FORME NORMALE Bien videmment une relation doit d j se trouver en premi re forme normale pour tre en deuxi me forme normale Cette derni re recherche la redondance d information dans une relation Elle interdit les d pendances fonctionnelles possibles entre les champs qui composent la cl et les autres champs On peut l exprimer de la mani re suivante La relation est en premi re forme normale Tout champ qui n appartient pas la cl ne d pend pas d une partie de la cl Comment passer en deuxi me forme normale La solution consiste d composer la relation en deux relations La nouvelle relation cr e a pour cl la partie de la cl dont d pendent les autres champs qui constituent ses champs On consid re la relation Produit suivante voir figure
97. 3_j On dit que Cy d pend fonctionnellement de Cx lorsque pour tout i et j si x1_i x2_i x3_i est gal x1_j x2_j x3_j alors y1_i y2_i y3_i est gal y1_j y2_j y3_j Les d pendances fonctionnelles expriment la relation de hi rarchie qui existe entre les champs On consid re l exemple de table suivant voir figure 3 2 qui correspond la relation Lec teur Numero_carte Nom Age Ville Etablissement Cet exemple mod lise les lecteurs d une biblioth que Appareil Couleur R frig rateur Rouge Robot Mauve Cuisini re Jaune Lave vaisselle Rouge Figure 3 1 Table ma_cuisine 58 Cr ation de bases de donn es Si l on examine les donn es on remarque qu il ne peut y avoir de d pendances fonction nelles entre les couples de champs Ville Etablissement et les champs Nom Age Il existe un enregistrement Laurence 34 pour lequel les valeurs des champs Nom Age correspondent deux valeurs diff rentes de Ville Etablissement En revanche on sait que dans la r alit un tablissement est situ dans une ville et une seule on le suppose pour cet exemple Cela signifie qu il existe une relation de d pen dance entre les champs Etablissement et Ville Le contenu des champs Ville et Etablis sement des enregistrements de notre relation se conforment cette relation de d pendance A une valeur donn e de Etablissement correspo
98. 664 35 4 3 Noir Blanc 890 12 16 9 Noir Blanc 1 Figure 3 37 Relation Film 83 Approche relationnelle Exercices 3 Chapitre la relation semblent confirmer qu il s agit bien d une cl il n y a pas ici de d pendance entre les champs Prix et Nombre Sauf si le commanditaire de la base de donn es vous affirme le contraire pour son cas particulier Sans faire une analyse exhaustive des d pendances entre tous les champs il semble qu il n y a pas dans cette relation de bons candidats pour identi fier un tuple Une solution est d ajouter un champ sp cifique c est ce que proposent la plu part des SGBD lorsque vous ne d finissez pas de cl pour une relation EXERCICE 3 CONTRAINTES D INT GRIT Pour les champs de type num rique comme Prix et Nombre on peut proposer des limi tes d appartenance un intervalle Le prix doit tre compris entre 0 et 1 000 et le nombre entre 0 et 10 000 Pour les champs de type caract re comme Format et Couleur il semble que les valeurs puissent tre incluses dans des ensembles num r s Le format peut tre compris dans l ensemble 3 4 16 9 et la couleur dans l ensemble Couleur Noir Blanc Le contenu du champ Num ro_Film peut tre d fini par rapport au contenu du champ correspondant dans la relation catalogue Cela revient imposer la contrainte suivante on n entre
99. C FROM vente EXERCICE 3 PROJECTION RESTRICTION AVEC UN OP RATEUR STATISTIQUE Toutes les informations n cessaires se trouvent dans la table personne Pour r soudre cet exercice on peut raisonner en deux temps Extraire de la table personne les enregistrements dont la colonne Ville contient Paris s lection SELECT FROM Personne WHERE Ville Paris Calculer l aide d une fonction statistique la moyenne de la colonne Age pour ses enregistrements projection SELECT AVG Age FROM Personne WHERE Ville Paris Trouvez les diff rentes villes dans lesquelles habitent les personnes Ordonnez le r sultat par ordre d croissant Affichez le chiffre d affaires c est dire la somme des prix de vente toutes taxes 20 en consid rant que la table contient les prix hors taxes Renommez la colonne R sultat en CA_TTC Trouvez l ge moyen des personnes habitant Paris dans la base de donn es casse 121 SQL Exercices 4 Chapitre Pour compl ter cet exercice il serait plus l gant de renommer la colonne ainsi calcul e par exemple en Moyenne_Paris SELECT AVG Age AS Moyenne_Paris FROM Personne WHERE Ville Paris EXERCICE 4 AGR GAT Toutes les informations n cessaires existent dans la table voiture De m me que pour l exercice pr c dent il est int ressant de raisonner en deux temps
100. D ASSOCIATIONS Dans cette sous section on s int resse la r organisation d associations qui n ont pas de raison d tre par une fusion des associations ou par leur int gration dans les entit s limination d associations On consid re le cas d un acte d achat effectu sur Internet avec une carte bancaire Une facture est r gl e par une carte On peut distinguer les deux entit s facture et carte Une facture est identifi e par un num ro de facture et est constitu e d un montant et d une date Une carte bancaire est identifi e par son num ro son type Visa Master Card sa date de validit et son propri taire Les cardinalit s entre les entit s carte et facture sont de type 1 1 une facture est pay e par une et une seule carte et 1 n une Ouvrage Cote ISBN Personne NumLecteur Nom Pr nom Adresse Emprunte DateEmprunt Titre ISBN diteur Livre Est un exemplaire A crit 39 Analyse du monde r el 2 Chapitre carte peut servir r gler plusieurs factures On peut utiliser une Ecarte qui permet d am liorer la s curit de ces transactions Une Ecarte est une carte virtuelle associ e une v ritable carte bancaire valable pour une seule transaction Les cardinalit s deviennent alors de type 1 1 des deux c t s une Ecarte ne permet de r gler qu une et une seule facture voir figure 2 13 Figure 2 13 Entit s car
101. D c est m me devenu le moyen le plus courant d interroger un SGBD Dans cette optique si le SGBD est capable de g n rer directement du XML cela facilite le processus C est d autant plus vrai que le passage du mod le relationnel un mod le arborescent de type XML est parfois complexe et qu il est bien agr able que le SGBD sache le faire Le langage de description XML par sa versatilit s impose comme un format d change universel C est vident pour des fichiers g n r s par un traitement de texte on s pare ainsi l aspect structurel de l aspect pr sentation On se donne galement la possibilit d ouvrir le document ind pendamment du logiciel utilis ce qui garantit sa p rennit De la m me mani re XML est utilis comme format d change entre SGBD et d un SGBD vers d autres logiciels tableurs traitements de texte Le langage XML est adopt petit petit par la plupart des diteurs et il est amen jouer un r le croissant dans les changes de donn es De plus en plus de SGBD sont capables de produire des r sultats de requ te en XML d importer du XML et acceptent m me de g rer les donn es directement dans ce format Cette derni re possibilit implique que les SGBD supportent des donn es moins bien structur es cette capacit constitue l une des volu tions futures des SGBD catalogue lt catalogue gt lt article gt lt nom gt banane lt nom gt l
102. E RELATION Si l on consid re simplement le contenu de la relation il n y a pas de cl constitu e par un seul champ Il semble que la combinaison de deux champs Prix et Nombre est une cl et que c est la seule qui contient deux champs On pourrait trouver des combinaisons avec trois champs qui fonctionnent par exemple Prix et Format et Couleur Ce serait alors une cl candidate mais on choisit celle qui est la plus atomique possible On peut s interroger en revanche sur le bien fond d une cl constitu e des deux champs Prix et Nombre si l on consid re leur sens dans le monde r el Il semble vident que l on puisse avoir deux films diff rents avec le m me prix et le m me nombre Comment choisir la cl dans ce cas On ne peut donc en g n ral pas choisir une cl sans tenir compte des d pendances fonctionnelles entre les champs M me si les donn es pr sentes dans On consid re deux relations La premi re Garage est de degr 7 et de cardinalit 3 La se conde Film est de degr 2 et de cardinalit 15 Quels sont le degr et la cardinalit du pro duit cart sien de Garage par Film Quels sont le degr et la cardinalit du produit cart sien de Film par Garage Quelle est la cl de cette relation voir figure 3 37 Film Prix Format Type Nombre Prix Format Type Nombre 12 4 3 Couleur 3 4 16 9 Noir Blanc 1 12 16 9 Couleur 1
103. I n f o r m a t i q u e Synth se de cours exercices corrig s amp collection Synthex Toutes les tapes de la cr ation d une base de donn es de l analyse la r alisation l aide du langage SQL Les m canismes de pr servation et de s curisation des donn es Des ressources sur www pearson fr chiers des donn es et textes des requ tes Nicolas Larrousse Cr ation de bases de donn es Informatique amp Cr ation de bases de donn es Nicolas Larrousse CNRS Avec la contribution de ric Innocenti Universit de Corse Pasquale Paoli collection Synthex Synth se de cours exercices corrig s Tous droits r serv s Composition sous FrameMaker IDT Aucune repr sentation ou reproduction m me partielle autre que celles pr vues l article L 122 5 2 et 3 a du code de la propri t intellectuelle ne peut tre faite sans l autorisation expresse de Pearson Education France ou le cas ch ant sans le respect des modalit s pr vues l article L 122 10 dudit code ISBN 978 2 7440 7386 1 ISSN 1768 7616 2009 Pearson Education France Sommaire III Sommaire L auteur V Le relecteur VII Avant propos IX Chapitre 1 Introduction aux bases de donn es 1 1 Qu est ce qu une base de donn es 2 2 volution des bases de donn es et de leur utilisation 4 3 Syst mes de gestion de bases de donn es 13 4 tapes de la conception des ba
104. IDENTIFICATION DES ENTIT S ET DES ASSOCIATIONS Les l ments qui s imposent intuitivement sont les spectateurs et la pi ce jou e La phrase qui repr sente le lien entre ces entit s peut tre de la forme les spectateurs ach tent un billet pour une pi ce On identifie deux entit s spectateur et pi ce li es par l association achat L entit spectateur contient les attributs nom num ro de t l phone On cr e un identi fiant numero_client puisque nom et num ro de t l phone ne sont pas identifiants On On consid re l entit ci apr s qui d crit des salles de cin mas Les attributs de cette entit sont les suivants nom de la salle nom du cin ma ville du cin ma nombre de places taille de l cran Que proposez vous comme identifiant pour cette entit On veut mod liser l activit de vente de billets pour un th tre Quelles phrases vont nous permettre d identifier les entit s et la mani re dont elles sont associ es Proposez les at tributs que vous utiliseriez pour d crire ces entit s et leurs associations ainsi que les iden tifiants de chaque entit Que se passe t il si le prix du billet varie pour chaque s ance et en fonction de la place 45 Analyse du monde r el Exercices 2 Chapitre pourrait ventuellement utiliser la combinaison des deux attributs comme identifiant car deux p
105. INTO client VALUES 8 Annabelle 29 Paris F SAVEPOINT UN UPDATE vente SET Prix Prix 1 05 DELETE FROM client WHERE Ville Paris ROLLBACK TO UN ROLLBACK 173 Pr servation des donn es 6 Chapitre Le syst me des transactions g r es par le SGBD est un outil indispensable pour prendre en compte les probl mes cit s pr c demment la concurrence d acc s les erreurs et les repri ses apr s les pannes Comme on l a vu dans cette section la r alisation des transactions fait appel des compromis entre la rapidit et la s curit Tous les SGBD n effectuent pas les m mes choix et pr sentent des degr s diff rents de fiabilit Les cas d interblocage peuvent tre fr quents dans certains SGBD pourtant tr s utilis s D autres galement fort r pan dus ne proposent m me pas les transactions sur leurs tables en standard 4 Triggers Les triggers ou d clencheurs ont un objectif diff rent des outils tels que les transactions Ils servent ex cuter des contr les compl mentaires personnalis s au moment des op ra tions d ajout de suppression et mise jour des donn es Ils sont utiles galement pour effectuer un formatage sp cifique des donn es Pratiquement un trigger est un ensemble d instructions SQL d finies par l utilisateur qui seront d clench es lors d une action d ajout de suppression ou de mise jour de donn es Il s applique d
106. INTO personne NumAch Ville Nom VALUES 100 Paris Essai L enregistrement est valide aucune colonne ne contredit les contraintes d finies pr c demment la cl NumAch est unique le nom est renseign les colonnes Age et Sexe ne sont pas renseign es mais ne sont pas obligatoires EXERCICE 14 MODIFICATION DES DONN ES D UNE TABLE Les informations modifier se trouvent simplement dans la table vente bien que la ques tion voque les voitures Il n y a pas de crit re dans ce cas puisque l on modifie toute la table UPDATE vente SET Prix Prix 1 1 EXERCICE 15 REQU TE COMBIN E La question para t simple mais elle doit tre bien analys e On doit consid rer deux cat gories de personnes celles qui ont achet des voitures mais pas de voitures rouges celles qui n ont achet aucune voiture Pour obtenir la liste des personnes qui n ont achet aucune voiture on utilise une requ te de type jointure externe Les informations se trou vent dans les deux tables personne et vente SELECT personne Nom FROM personne LEFT OUTER JOIN vente ON personne NumAch vente NumAch WHERE vente NumAch IS NULL Pour obtenir la liste des personnes qui ont achet une voiture mais pas rouge on utilise une requ te de type s lection sur une quijointure Les informations se trouvent dans les deux tables personne et voiture que l on doit relier par la
107. Il offre la possibilit par des r gles de d rivation ou r critures de d duire d autres phrases L l ment fondamental de la logique du premier ordre est le pr dicat qui exprime le lien entre diff rents l ments La validit de ce pr dicat est g n rale ment restreinte un ensemble de valeurs que l on nomme domaine du discours mange x y sera par exemple vrai pour les valeurs du couple x y suivantes homme navet lapin carotte homme lapin On utilise classiquement des variables x y dans notre exemple et des constantes dans les expressions Les pr dicats peuvent tre associ s par des connecteurs logiques et ou non implique Le domaine de discours des variables s exprime partir des quantificateurs quel que soit et il existe Ce formalisme simple permet d exprimer des propri t s comme celle ci si x est mang par y ou y est mang par x ils appartien nent tous deux la m me cha ne alimentaire VN 1664 69 Gris VN 234 PC 79 Rouge Couleur Marque Blanc Philips Noir Olympus Gris ImaginR Rouge Olympus Produit Prix Couleur 77 Approche relationnelle 3 Chapitre x y mange x y mange y x meme_chaine_alimentaire x y Cette formule peut se r crire en utilisant des r gles de d duction dans le but d aboutir un ensemble de clauses plus ais es v rifier c est sur ce principe que fonctionne
108. NT Table pizza CREATE TABLE pizza NomPizza CHAR 30 PRIMARY KEY Prix CHAR 30 NOT NULL 140 Cr ation de bases de donn es CHECK Prix BETWEEN 1 AND 30 Table ingredient CREATE TABLE ingredient NumIngre INT PRIMARY KEY NomIngre CHAR 30 NOT NULL Table vehicule CREATE TABLE vehicule NumImmat CHAR 30 PRIMARY KEY Marque CHAR 30 NOT NULL Type CHAR 30 NOT NULL Table livreur CREATE TABLE livreur CodeLivreur INT PRIMARY KEY NomLivreur CHAR 30 NOT NULL TeleLivreur CHAR 30 NOT NULL Table compose CREATE TABLE compose NomPizza CHAR 30 REFERENCES pizza NomPizza NumIngre INT REFERENCES ingredient NumIngre PRIMARY KEY NomPizza NumIngre Table commande CREATE TABLE commande NumCommande INT PRIMARY KEY DateCom DATE Taille CHAR 30 NOT NULL Retard CHAR 1 NOT NULL NumClient INT REFERENCES client NumClient NomPizza CHAR 30 REFERENCES pizza NomPizza CodeLivreur INT REFERENCES livreur CodeLivreur NumImmat CHAR 30 REFERENCES vehicule NumImmat CHECK Taille in Ogresse Humaine Naine CHECK Retard in O N Exemple de cr ation d un index appel Index_NumCommande sur le champ Num Commande de la table commande dans l ordre ascendant L instruction de cr ation d un index n est pas toujours normalis e et la syntaxe peut diff rer suivant les SGBD CREATE INDEX Ind
109. OIN pizza JOIN tarification ON commande NomPizza pizza NomPizza AND commande Taille tarification Taille Implications des modifications apport es au mod le entit association Quelles sont les r percussions de cette modification sur le mod le entit association uti lis jusqu pr sent Par un processus inverse on doit retrouver logiquement le m me ensemble de relations La phrase qui repr sente l association entre les entit s est la suivante Une commande utilise la tarification La nouvelle relation introduite pro vient d une nouvelle entit associ e l entit commande L attribut Taille ne se trouve plus dans l entit commande La nouvelle entit Tarification contient les attributs Taille et Coefficient l attribut Taille est la cl de cette entit L entit tarification est associ e l entit commande par une association que l on peut nommer utilise 146 Cr ation de bases de donn es Cardinalit s de l association utilise La pizza de la commande a une et une seule taille la cardinalit est de type 1 1 Une tarification peut n avoir jamais t utilis e pour une commande et plusieurs com mandes diff rentes peuvent avoir la m me tarification la cardinalit est de type 0 n voir figure 5 3 Figure 5 3 Mod le entit association Livraisons de pizzas av
110. ON journal_compta TO comptabilite On donne le r le comptabilit aux utilisateurs pastorius et miller GRANT comptabilite TO pastorius miller L utilisation des vues permet de d finir des objets dynamiques puisqu une vue est le r sul tat d une requ te et n est jamais stock e Les vues s utilisent en compl ment du syst me g n ral de droits pr sent la section pr c dente Il s agit de la bonne solution pour viter la complexit de description des permissions sur la totalit des champs Comme pour le reste de la norme SQL tous les SGBD ne proposent pas les vues 3 Transactions Cette section pr sente plusieurs outils procur s par les SGBD pour prot ger les op rations effectu es sur les donn es Les incidents li s aux donn es dans un SGBD proviennent essentiellement de l acc s concurrent ces derni res par plusieurs utilisateurs Ces pro bl mes sont habituellement r solus par les m canismes associ s aux transactions pr sen t es dans cette section Celles ci permettent galement de r soudre les pertes dues aux 167 Pr servation des donn es 6 Chapitre erreurs de manipulation ou celles li es aux erreurs dans le traitement des donn es par exemple en cas de panne mat rielle 3 1 ACC S CONCURRENT AUX DONN ES La section pr c dente aborde la d finition des acc s et des permissions sur les diff rents objets g r s par le SGBD Implicitement ce
111. ROP TABLE voiture Si la table est r f renc e dans une autre table par exemple contrainte d int grit r f ren tielle le SGBD refuse en g n ral de la supprimer il utilise l option RESTRICT par d faut Si l on d sire tout de m me la supprimer ainsi que tous les objets qui lui sont li s il faut alors utiliser l option CASCADE Dans l exemple si la table vente utilise la table voiture comme table de r f rence pour le contenu de la colonne NumVoit on ne peut supprimer la table voiture avant d avoir supprim la table vente DROP TABLE voiture CASCADE Modification La commande ALTER TABLE permet de modifier la structure de la table c est dire d ajouter de supprimer ou modifier des colonnes ALTER TABLE voiture ADD COLUMN enplus INT SELECT FROM voiture ALTER TABLE voiture DROP COLUMN Couleur SELECT FROM voiture NumVoit Marque Type Couleur enplus 1 Peugeot 404 Rouge NULL 2 Citroen SM Noire NULL 3 Opel GT Blanche NULL 4 Peugeot 403 Blanche NULL 5 Renault Alpine A310 Rose NULL 6 Renault Floride Bleue NULL NumVoit Marque Type enplus 1 Peugeot 404 NULL 2 Citroen SM NULL 3 Opel GT NULL 4 Peugeot 403 NULL 5 Renault Alpine A310 NULL 6 Renault Floride NULL Ajout d une colonne de nom enplus de type INT la table voiture ADD COLUMN Suppression de la colon
112. Renault Floride Bleue NumAch Nom Age Ville Sexe 1 Nestor 96 Paris Centre M 2 Irma 20 Lille F 3 Henri 45 Paris Centre M 4 Josette 34 Lyon F 5 Jacques 50 Bordeaux M Affichage de la table voiture modifi e Modification du nom d une ville dans la table personne Affichage de la table personne modifi e 119 SQL 4 Chapitre R sum Voici une synth se des commandes SQL pr sent es dans ce chapitre Le langage SQL permet La gestion de tables et de vues munies des contraintes associ es LDD Langage de Des cription des Donn es Ces instructions concernent la table et sa structure cr ation CREATE TABLE VIEW lt nom de la table gt destruction DROP TABLE VIEW lt nom de la table gt modification ALTER TABLE VIEW lt nom de la table gt La manipulation de donn es LMD Langage de Manipulation des Donn es Ces ins tructions concernent les donn es contenues dans les tables insertion INSERT INTO lt nom de la table gt lt liste de colonnes gt lt liste de valeurs gt modification UPDATE lt nom de la table gt SET lt colonne valeur gt WHERE lt crit re gt destruction DELETE FROM lt nom de la table gt WHERE lt crit re gt L interrogation et la recherche dans les tables SELECT lt liste de colonnes gt FROM lt nom de la table gt WHERE lt crit re gt Figure 4 3 Synth se des commandes SQL Le langage SQL se r
113. STES Ils prennent en charge la premi re tape qui consiste en l analyse des activit s et des flux d information mis en jeu dans le monde r el mod liser Le profil de ces acteurs n est pas toujours purement technique puisque cette phase n cessite parfois beaucoup de dialogues et de psychologie pour parvenir faire exprimer leurs besoins r els par les futurs utilisa teurs La gageure est de parvenir faire exprimer correctement les besoins d informatisa tion par les utilisateurs du syst me d information afin de proposer un mod le conceptuel de donn es le plus juste possible 5 2 CONCEPTEURS DE LA BASE Ce sont les personnes qui s occupent de traduire le mod le pr c dent en un mod le logi que exploitable par le SGBD Le concepteur est un sp cialiste des bases de donn es qui pr pare les tables les vues les sch mas d acc s C est lui qui renseigne les utilisateurs et programmeurs pour la d finition des requ tes Il n a pas en principe tre sp cialis sur un SGBD particulier mais en pratique les l ments qu il manipule sont li s au SGBD qui sera employ C est ordinairement lui qui cr e les l ments n cessaires la base de don n es tables vues en collaboration avec l administrateur de la base C est parfois la m me personne qui est en charge de la partie analyse et de la conception ce qui peut induire une vision un peu trop orient e techniquement comme celle d un
114. TION DES VUES La gestion des droits dans le SGBD pr sent s la section pr c dente peut constituer un v ritable casse t te lorsque le nombre d utilisateurs et d objets augmente En effet les droits sur les tables et surtout sur les champs peuvent tre d finis par l instruction GRANT mais il devient vite fastidieux et particuli rement difficile de les modifier Un des aspects de cette difficult est le manque de lisibilit de l ensemble des permissions La notion de r le permet de factoriser ou rassembler un ensemble de droits sur un ou plusieurs objets Une approche compl mentaire consiste d finir plus finement les objets sur lesquels on affecte les droits en se servant simplement des vues SQL Celles ci permet tent de cacher certaines donn es l aide de crit res de s lection pr cis ce qui est impossible r aliser d une autre mani re De plus les vues permettent de masquer aux utilisateurs la complexit de la structure des donn es leur fournissant ainsi une interface plus commode avec la base de donn es Le m canisme de cr ation des vues a t abord rapidement au chapitre 4 Les donn es ne sont pas stock es et sont recalcul es chaque utilisation de la vue Une vue est le r sultat d une instruction SQL SELECT les possibilit s de d finition sont donc tr s tendues puisqu il s agit du c ur m me du fonctionnement de SQL Enfin il est galement possible de mettre
115. Titre 12 4 3 Couleur 3 2 12 Les imp ts faciles 4 16 9 Noir Blanc 1 4 4 A toi 12 16 9 Couleur 1664 50 12 Les imp ts faciles 12 16 9 Noir Blanc 1 12 12 Les imp ts faciles Comment trouver la les valeur s qui ne respectent pas l int grit r f rentielle du champ Num ro_Film de la relation Film par rapport la relation Catalogue dans l exemple pr c dent Quels sont les films du catalogue qui ne sont pas utilis s dans la re lation Film Prix Format Type Nombre Numero _Film Films Numero _Film Catalogue Titre 12 4 3 Couleur 3 2 2 Le train qui passe 4 16 9 Noir Blanc 1 4 4 A toi 12 16 9 Couleur 1664 50 NULL NULL 35 4 3 Noir Blanc 890 12 12 Les imp ts faciles 12 16 9 Noir Blanc 1 12 12 Les imp ts faciles Figure 3 47 Jointure sans objet des relations Film et Catalogue Figure 3 48 Jointure externe des relations Film et Catalogue T l charger Gratuitement tous vos Livres Magazines sur Notre site plus Radipe que jamais Grace a nos hebergeurs de qualit est liens qui sont toujour actifs juste pour vous Merci de bien vouloir nous visit est laisser un petit mot sur le site tous nos documents sont en forma de pdf donc vous pouviez les t l charger directement de votre tablette ou bien t l phone Enjoyed Merci de partager nos articles pour que les
116. Voit voiture Marque voiture Couleur vente Prix FROM voiture RIGTH OUTER JOIN vente ON voiture NumVoit vente NumVoit Il faut terminer la requ te et r pondre la question de d part Quelles sont les voitures qui n ont pas t vendues Pour ce faire il suffit de s lectionner les lignes dont l une des colonnes issues de la table vente n a pas pu tre mise en correspondance avec une ligne de la table voiture le contenu de cette colonne sera vide ce qui signifie que l on peut le tes ter avec le mot cl NULL Par exemple on teste le contenu de la colonne Prix issue de la table vente SELECT voiture NumVoit voiture Marque voiture Couleur vente Prix FROM voiture LEFT OUTER JOIN vente ON voiture NumVoit vente NumVoit WHERE vente Prix IS NULL 2 5 TRI DU R SULTAT D UNE REQU TE On utilise le mot cl ORDER BY pour sp cifier la les colonne s sur laquelle lesquelles on souhaite trier le r sultat SELECT Marque Type FROM voiture ORDER BY Marque Il est possible de pr ciser l ordre de tri par les mots cl s ASC croissant par d faut ou DESC d croissant SELECT Prix DateVente FROM vente ORDER BY Prix DESC NumVoit Marque Couleur Prix 3 Opel Blanche NULL 6 Renault Bleue NULL Marque Type Citroen SM Opel GT Peugeot 404 Peugeot 403 Renault Alpine A310 Renault Floride Prix DateVente 70 000 1996 03 30 45 000 2000 04 02
117. a mise jour CREATE TEMPORARY TABLE requete1 SELECT commande NumClient pizza Prix tarification Coefficient AS Prix_Commande FROM commande JOIN pizza JOIN tarification ON commande NomPizza pizza NomPizza AND commande Taille tarification Taille WHERE NumCommande 60 La requ te de mise jour serait la suivante on r cup re les champs prix de la commande de la premi re requ te pour effectuer la mise jour du solde du compte du client dans la table client UPDATE client requete1 SET Compte Compte requete1 Prix_Commande WHERE client NumClient requete1 NumClient On veut mettre jour le solde du compte d un client apr s chaque commande Pour ce fai re il est n cessaire de recourir un langage de programmation ou des notions qui d pas sent le cadre de cet ouvrage on s int resse simplement aux diff rentes requ tes pr voir pour r aliser cette op ration Pour l instant on consid rera que l on cr e la requ te de mise jour sans se pr occuper des aspects de solde n gatif ou positif du compte 154 Cr ation de bases de donn es Il est pr vu de pouvoir lancer dans un SGBD une requ te au moment o l on effectue une op ration on appelle cela des triggers ou proc dures stock es Typiquement il faudrait lancer cette requ te chaque fois que l on cr e une commande EXERCICE 8 VOLUTION DE LA BASE DE DONN ES Pour traiter ce genre de cas on doit se rappeler que l on ne stocke
118. able On sp cifie alors pour le type de droit le ou les champs sur lesquels ils s appliquent GRANT UPDATE Adresse ON jaco TO nhop L utilisateur nhop a le droit de mettre jour le champ Adresse de la table jaco Ce droit peut lui avoir t accord par l utilisateur pastorius ou par l administrateur du syst me Si l on ne sp cifie pas le champ comme on l a fait pr c demment le SGBD consid re que le droit concerne tous les champs de la table Droits associ s aux r les L instruction GRANT permet galement de donner un r le un utilisateur ou un ensemble d utilisateurs et s utilise alors de la mani re suivante GRANT lt r le gt TO lt liste des noms d utilisateur s par s par des virgules gt Voici un exemple d utilisation de GRANT avec les r les On consid re les r les suivants sur la table jaco consultation interrogation utilisation mise jour et insertion gestion destruction On cr e les r les et on met jour les droits n cessaires CREATE ROLE consultation CREATE ROLE utilisation CREATE ROLE gestion GRANT SELECT ON jaco TO consultation GRANT UPDATE INSERT ON jaco TO utilisation GRANT DELETE ON jaco TO gestion On affecte les r les aux utilisateurs GRANT consultation TO pastorius nhop miller GRANT utilisation TO pastorius miller GRANT gestion TO pastorius L
119. acile suivant les syst mes employ s Dans le premier cas il est en principe 159 Pr servation des donn es 6 Chapitre impossible qu un simple utilisateur efface les fichiers des autres mais certains syst mes sont plus perm ables que d autres Dans le second cas si l on peut devenir administra teur sur la machine concern e du point de vue du syst me d exploitation tout est possible S il s agit d un cas de malveillance les d g ts peuvent tre consid rables Les protections dans ce domaine ne d pendent pas sp cifiquement de l administrateur du SGBD mais aussi de l administrateur syst me et r seau de l environnement dans lequel se trouve la machine qui h berge le SGBD Le syst me et les applications pr sentes sur la machine doivent tre maintenus et mis jour r guli rement pour viter les probl mes L administrateur syst me doit galement tenir jour les comptes utilisateurs qui poss dent les droits d acc s la machine et v rifier la qualit des mots de passe associ s Classi quement une intrusion se fait en utilisant un compte oubli cr par exemple pour un besoin ponctuel dont le mot de passe est assez simple pour tre devin Le SGBD lui m me est une application parmi les autres il peut pr senter des failles et doit faire partie du programme des mises jour critiques Cette t che est g n ralement effectu e par l administrateur du SGBD qui doit
120. aines conditions Dans le m me ordre d id e il est d j possible d utiliser des techniques pour valuer le style de musique classique jazz pop d un fichier en analysant son contenu On est cependant assez loin de pouvoir identifier un genre de film en se basant sur l analyse des images Les bases de donn es multim dias constituent un sujet de recherche tr s prometteur et tr s actif Ces probl matiques rel vent pour l instant plut t des pr occupations des soci t s d veloppant les moteurs de recherche que des bases de donn es au sens strict Cepen dant le groupe de normalisation ISO IEC pr pare l volution pour le multim dia de la norme SQL MM qui est une volution pour le multim dia de la norme SQL 3 Syst mes de gestion de bases de donn es On a beaucoup parl dans les sections pr c dentes des SGBD Un SGBD est un logiciel complexe qui permet de g rer et d utiliser les donn es que l on stocke en utilisant les mod les cit s pr c demment La premi re partie de la section permet de comprendre le m canisme d abstraction partir duquel se fait le passage du simple fichier informatique la gestion de l information qui se fonde sur l utilisation d un SGBD Une seconde partie d taille le mod le en couches des SGBD ainsi que leurs fonctionnalit s de base 3 1 FICHIERS INFORMATIQUES Un fichier peut tre vu historiquement comme un morceau de bande magn tique Les m canismes de
121. alisation se nomme les transac tions Enfin les triggers ou d clencheurs en fran ais sont tr s utiles pour compl ter la panoplie d outils qui assurent le contr le des donn es d une base de donn es 176 Cr ation de bases de donn es Exercices EXERCICE 1 S CURIT DE BASE La d cision doit reposer sur la prise en consid ration de plusieurs points la liste ci des sous n est pas exhaustive Aspects techniques L une des premi res pr occupations doit tre d auditer le type de machine ainsi que le syst me d exploitation sur lequel sera h berg le SGBD D autre part les SGBD sont gourmands en ressources de calcul et de stockage et il faut donc s assurer que l on disposera du n cessaire dans ces domaines On peut supposer que la machine sera connect e un r seau qu il faut auditer galement De quel type de connexion dispose l h bergeur quels mat riels de protection contre les intrusions utilise t il Le minimum est de disposer d un dispositif de filtrage pour se pro t ger des intrusions li es au r seau Un plus est de disposer de deux fournisseurs d acc s l un prenant le relais en cas de faille de l autre Enfin quel mat riel de sauvegarde peut on utiliser et de quelle taille de stockage dispose t on Une sauvegarde quotidienne est indispensable pour une base de donn es standard c est dire sur laquelle les mises jours sont raisonnablement fr quentes En cas de m
122. am liorer et affiner le mod le conceptuel obtenu l tape pr c dente 3 1 QUALIT DES ATTRIBUTS Dans cette sous section on aborde les qualit s g n rales que doivent poss der les attributs des entit s et des associations Des r gles simples permettent de guider le choix des attributs Une premi re r gle est de ne stocker que les attributs strictement n cessaires la tendance des utilisateurs est en g n ral de pr voir le plus d attributs possible juste au cas o Le choix s effectue en tenant compte des fonctionnalit s attendues du syst me d information par limination syst matique des donn es non utiles Une deuxi me r gle consiste ne pas retenir les attributs qui peuvent tre d duits d autres attributs La d duction peut se faire soit par le calcul soit par un lien s mantique entre plusieurs attributs Le chiffre d affaires peut tre calcul partir du prix de vente et de la quantit Une r f rence peut tre construite partir du nom du produit et du fournisseur Le but est de r duire la place occup e ainsi que les risques d incoh rence Enfin une derni re r gle concerne le nom des attributs qui doivent tre parlants Il ne faut pas h siter utiliser des noms de grande taille si cela facilite la compr hension du r le de l attribut dans l entit Par exemple il est pr f rable d utiliser un attribut Num ro_S rie plut t qu un attribut
123. ande comme une association qui serait alors quaternaire Commande Livreur Pizza V hicule Ingr dient Client NumCommande DateCom Taille Retard NumClient NomClient Adresse Compte PointsRapizz NomPizza Prix CodeLivreur NomLivreur T l phone NumIngre NomIngre NumImmat Marque Type Livre Transporte Passe Constitue Compose 1 n 1 n 0 n 1 1 1 1 1 1 1 1 1 n 1 n 0 n 134 Cr ation de bases de donn es 3 Passage au mod le relationnel Cette section repr sente le travail pr liminaire effectu en vue du passage l utilisation d un SGBD Elle comprend plusieurs parties la transformation du mod le entit association en mod le relationnel l aide des r gles nonc es pr c demment la v rification de la conformit des relations cr es par rapport la d finition des for mes normales du mod le relationnel la discussion sur le type des donn es adopter pour chaque champ ainsi que sur les contraintes d int grit s d finir la cr ation des tables en SQL 3 1 TRANSFORMATION DU MOD LE ENTIT ASSOCIATION Les deux r gles g n rales de passage du mod le entit association vers le mod le relation nel sont les suivantes Une entit donne une relation de m me cl que l entit qui contient les m mes attri buts que l entit Une association donne une relation dont la cl est compos
124. angage de description Voiture NumVoit Marque Type Couleur Nom de la classe Attributs M thodes 42 Cr ation de bases de donn es 0 1 Non obligatoire restreint 1 1 Obligatoire 2 4 Obligatoire restreint de 2 4 Les associations sont mat rialis es par un trait entre les classes repr sentant les entit s Le nom de l association est inscrit au dessus du trait Dans le cas o l association poss de des attributs on utilise une classe d association sans nom qui contiendra les attributs La classe d association est reli e par un trait pointill voir figure 2 18 Figure 2 18 Entit s voiture et client li es par l association vente repr sent es par une classe UML On peut d crire plus finement l association en sp cifiant un r le de l association pour chacune des classes associ es C est dire que l on distingue du point de vue de chacune des classes impliqu es dans l association la mani re dont elle est associ e une autre classe par un terme sp cifique le r le Comme les cardinalit s sont diff rentes pour cha cune des classes impliqu es dans une association on dispose alors d une description com pl mentaire La notion de r le est surtout utile lorsqu une classe est associ e elle m me Par exemple si l on consid re les classes voiture et client voir figure 2 19 du point de vue d
125. apitre pr c dent voir figure 3 21 on obtient trois relations en appliquant ces r gles Les entit s voiture et personne deviennent les relations voiture NumVoit Marque Type Couleur et personne NumAch Nom Age Ville Sexe L association se transforme en relation vente DateVent Prix NumAch NumVoit Marseille 2 Nancy 3 Paris 5 Ville Nombre Client NumAch Nom Age Ville Sexe Voiture NumVoit Marque Type Couleur Vente DateVente Prix 0 1 1 n 69 Approche relationnelle 3 Chapitre 3 2 CAS PARTICULIER DES ASSOCIATIONS AVEC UNE CARDINALIT DE TYPE 1 1 Consid rons le cas du mod le entit association qui repr sente l activit d organisation de s minaires d crite tr s succinctement de la mani re suivante Un s minaire est anim par un ou plusieurs intervenants Un s minaire ne poss de qu un seul responsable Figure 3 22 Mod le entit association de la base de donn es animation de s minaire Deux associations existent entre les deux entit s S minaires et Intervenant Anime et Est_responsable Les attributs utilis s pour les entit s et les associations sont visibles sur le mod le entit association voir figure 3 22 Si l on applique les r gles g n rales nonc es ci dessus on obtient quatre relations Intervenant NumInter NomInter TelInter Seminaire NumSem DateSem Pr
126. arque Type Couleur La cl de cette relation est un num ro NumBal car il peut y avoir dans notre stock plu sieurs baladeurs de m me marque de m me type et de m me couleur Les marques d po sent les noms des objets qu elles fabriquent de fa on les identifier sur le march Il existe donc une d pendance fonctionnelle entre le champ Type qui n appartient pas la cl et le champ Marque qui n appartient pas la cl On d compose la relation en en cr ant une nouvelle qui a pour cl le champ dont d pendent les autres champs constituant la d pendance transitive Il s agit dans ce cas du champ Type Les autres champs de la nou velle relation sont compos s des champs qui en d pendent fonctionnellement ici le champ Marque voir figure 3 28 Baladeur NumBal Type Couleur Baladeur_type Type Marque Comme pr c demment il est n cessaire de faire une jointure pour reconstituer l infor mation dans son int gralit La d composition en deux relations se fait sans perte d information NumBal Marque Type Couleur 12 Apple Ipod Blanc 43 Creative Zen Noir 23 Apple Ipod Noir 29 Creative Zen Gris 34 Sony MZ RH910 Rouge NumBal Type Couleur 12 Ipod Blanc 43 Zen Noir 23 Ipod Noir 29 Zen Gris 34 MZ RH910 Rouge Type Marque Ipod Apple MZ RH910 Sony Zen Creative Remarque Les deuxi me et troisi me formes no
127. ateurs et connecteurs logiques de SQL permettant de constituer des expressions Extraction des voitures de couleur Blanche ou de marque Peugeot 103 SQL 4 Chapitre SELECT FROM personne WHERE NOT Ville Paris 2 3 AGR GATS OU GROUPAGE GROUP BY Les op rations d agr gation ou de groupage regroupent les lignes d une table par valeurs contenues dans une colonne On applique g n ralement des op rations de type statistique sur les sous tables ainsi cr es Pour r aliser cette op ration avec SQL on utilise le mot cl GROUP BY suivi du nom de la colonne sur laquelle s effectue l agr gat SELECT Marque FROM voiture GROUP BY Marque On obtient dans ce cas le m me r sultat que si l on avait utilis le mot cl DISTINCT vu pr c demment L utilisation courante de cette op ration est d appliquer en une seule ins truction les fonctions statistiques d j abord es aux diff rents sous ensembles d une table ainsi constitu s SELECT Marque COUNT AS Compte FROM voiture GROUP BY Marque SELECT Ville AVG ge AS Moyenne_Age FROM personne GROUP BY Ville NumAch Nom Age Ville Sexe 2 Irma 20 Lille F 4 Josette 34 Lyon F 5 Jacques 50 Bordeaux M Marque Citroen Opel Peugeot Renault Marque Compte Citroen 1 Opel 1 Peugeot 2 Renault 2 Ville Moyenne_Age Bordeaux 50 0000 Extraction des pers
128. atible avec les autres Remarque Un point qui peut se r v ler p nible l usage concerne les caract res de fin de ligne On a vu que le codage h rit du temps o l on utilisait des machines m caniques pour transmet tre les caract res propose deux caract res distincts pour changer de ligne le retour chariot CR et le passage la ligne LF Il n est plus techniquement utile aujourd hui de sp cifier ces deux caract res pour indiquer une fin de ligne Cependant la plupart des protocoles r seaux par exemple HTTP ainsi que le monde DOS Windows ont conserv la combinaison CR LF pour passer la ligne Les familles UNIX utilisent le seul caract re LF et Apple le caract re CR Il est donc n cessaire d effectuer des transformations pour passer d un type de fichier l autre 185 Codages de caract res et bases de donn es A Annexe Unicode Aujourd hui on envoie des mails et l on s change des fichiers d un bout l autre du monde et l on aimerait pouvoir les exprimer avec les caract res corrects Le fran ais s crit avec des caract res diacritiques la lecture d un texte sans accents est d sagr able et peut m me nuire la compr hension La section pr c dente donne une id e de la confusion qui r gne pour le codage des caract res malgr les efforts de normalisation De plus on ne peut deviner c est dire d tecter automatiquement en o
129. ations Lecteur_1 et Lecteur_2 Figure 3 5 Diff rence des relations Lecteur_1 et Lecteur_2 Figure 3 6 Intersection des relations Lecteur_1 et Lecteur_2 62 Cr ation de bases de donn es ma_cuisine Appareil Couleur musicien Nom Instrument L exemple a t choisi de mani re montrer que les relations ne n cessitent pas de rap ports entre elles pour faire un produit cart sien Combiner des appareils de cuisine et des musiciens n a aucun sens dans la r alit voir figures 3 7 et 3 8 Le_resultat Appareil Couleur Nom Instrument ma_cuisine Appareil Couleur X musicien Nom Instrument 2 2 OP RATIONS RELATIONNELLES Projection La projection consiste extraire certains champs de la relation ce qui donne cette der ni re un degr inf rieur la relation de d part Voici la relation obtenue partir de la rela tion Lecteur en projetant les champs Nom et Ville voir figure 3 9 Lecteur_proj Nom Ville Appareil Couleur R frig rateur rouge Robot mauve Cuisini re jaune Nom Instrument Jaco Pastorius Basse lectrique Bill Evans Piano Appareil Couleur Nom Instrument r frig rateur rouge Jaco Pastorius Basse lectrique r frig rateur rouge Bill Evans Piano robot mauve Jaco Pastorius Basse lectrique robot mauve Bill Evans Piano cuisini re jaune Jaco Pastorius Basse lect
130. atique ce lan gage a t adopt par la quasi totalit des diteurs commerciaux qui participent active ment son volution SQL est devenu le standard de fait m me si aucun diteur ne respecte la lettre la norme D ailleurs partir de SQL 2 il existe une d finition de quatre niveaux de compatibilit avec la norme officielle La normalisation de ce langage garantit sa p rennit m me si son volution s en trouve ralentie Les requ tes crites pour un SGBD fonctionnent en g n ral sans trop de modifications avec un autre SGBD ce qui per met d envisager des migrations moins douloureuses et de conserver une partie de l inves tissement initial Figure 1 3 Mod le relationnel Mod le objet Dans le sillage du d veloppement des langages orient s objet C Java dans les ann es 1980 le concept objet a t adapt aux bases de donn es Plusieurs raisons en dehors des qualit s reconnues de l approche objet ont conduit d finir une extension objet pour les bases de donn es voir figure 1 4 La premi re est que le mod le relationnel dans sa simplicit ne permet pas de mod liser facilement toutes les r alit s La deuxi me est qu un objet permet de repr senter directe ment un l ment du monde r el Les structures d l ments complexes se retrouvent sou vent dispers es entre plusieurs tables dans l approche relationnelle classique De plus le concept objet est mieux adapt pou
131. bases de donn es en langage parl et leur repr sentation avec SQL La derni re partie du chapitre traite de la partie description de donn es de SQL qui permet de cr er et g rer les tables dans un SGBD Le cinqui me chapitre constitue un exemple complet de r alisation d une base de don n es par la pratique Cet exemple part de l nonc du monde r el en langage parl jusqu la r alisation du syst me d information puis bien s r son utilisation Ce chapitre reprend les notions vues aux chapitres pr c dents de mani re pratique Le sixi me chapitre aborde les m canismes g n raux de pr servation des donn es asso ci s aux SGBD On aborde la s curit des acc s et les sauvegardes mais aussi les outils qui participent la s curisation des donn es comme les transactions ou les triggers 7 Pr sentation de la BD exemple Une base de donn es extr mement simplifi e est utilis e r guli rement tout au long de l ouvrage afin d illustrer les concepts d velopp s au fil de l ouvrage D autres bases de don n es plus complexes sont pr sent es au fur et mesure des explications voir figure 1 14 Ce syst me d information qui constitue l tude de cas basique mod lise l activit de vente de voitures d occasion Dans ce syst me deux entit s du monde r el sont identifi es les personnes et les voitures Une voiture est caract ris e par sa marque son type sa couleur Une p
132. bjets du SGBD Avec SQL il est possible de sp cifier des droits essentiellement sur les op rations de mani pulation de tables ou de vues consid r es comme des tables suivantes interrogation SELECT insertion INSERT mise jour UPDATE destruction DELETE r f rence une table REFERENCE Les b n ficiaires des droits sont les utilisateurs les groupes ou les r les Les droits sont accord s par l administrateur du SGBD Cependant il est possible de transf rer la facult de redistribuer ces droits un autre utilisateur avec l option WITH GRANT OPTION L instruction GRANT permet de r aliser l association des droits et du b n ficiaire Sa forme g n rale est la suivante GRANT lt type de droit gt ON lt objet gt TO lt nom utilisateur gt Voici un exemple d utilisation de GRANT L administrateur cr e un utilisateur pastorius avec l identifiant fender CREATE USER pastorius IDENTIFIED BY fender Il lui donne tous les droits sur la base de donn es pastorius_base qu il vient de cr er L option ALL PRIVILEGES sert transmettre l ensemble des droits dont dispose le donneur en l occurrence l administrateur dispose de tous les droits sur tous les objets Le fait de pr ciser pastorius_base signifie tous les sous objets pr sents et venir contenus dans la base de donn es pastorius_base CREATE DATABASE pastoriu
133. ble compose avant celle de pizza l aide du terme BEFORE Ici elle aurait peut tre pu intervenir galement apr s sauf s il existe une contrainte d int grit de r f rence de la table compose par rap port la table pizza un entr e du champ NomPizza dans compose ne peut exister que si elle existe dans la table pizza Le trigger permet alors d automatiser les instructions qu il aurait t fastidieux d effectuer la main lors de la destruction d une entr e dans la table pizza On d sire effectuer des mises jour proprement dans la base de donn es livraison de pizzas Lorsque l on d truit une pizza dans la table pizza on veut que les entr es de la table compose correspondant cette pizza disparaissent automatiquement Ainsi la table compose ne contiendra aucune entr e orpheline 183 Codages de caract res et bases de donn es A Annexe Codages de caract res et bases de donn es Du code Morse au code ASCII un rapide historique du codage des caract res Historiquement la transmission d information distance se faisait de mani re visuelle La marine transmettait des messages entre les bateaux par des fanions qui repr sentaient chacun une lettre de l alphabet Le t l graphe de Chappe reposait sur le m me principe une position des bras figurait une lettre Il disposait en outre d un m ca
134. ble de passer ensuite du langage XML au langage HTML par une feuille de style l inverse n est pas possible XML permet de repr senter des structures de donn es diff rentes sous forme arborescente il est donc n cessaire de poss der une description de la grammaire de la structure Ce document accompagnateur d un fichier XML est une DTD comme pour les fichiers XML classiques ou plus commod ment un sch ma XML Un des avantages du sch ma est que l on peut utiliser les m mes algorithmes de parcours que pour le fichier XML On d cide de recopier r guli rement une base de donn es compl te sur chacun des six sites de l entreprise Quel est l int r t de cette solution Pourquoi pr f re t on utiliser XML plut t que HTML pour repr senter les donn es pro venant d une base de donn es Les donn es XML sont dites autodescriptives Qu est ce que cela signifie et par quel s dispositif s est ce r alis 26 Cr ation de bases de donn es EXERCICE 10 FOUILLE DE DONN ES ET ENTREP TS DE DONN ES Pour obtenir les l ments n cessaires l analyse il nous faut int grer les donn es de diff rents services de l entreprise Les donn es du fichier client le sont g r es par le service commercial peut tre avec un tableur ou un traitement de texte pour faire des mailings afin d obtenir le nom des clients Les donn es du service comptabilit permettent d obtenir les jour
135. blis sement_2 1 Paris Universit Jus sieu 1 Henri 1 2 Lyon CHU Bron 2 Stanislas 2 3 Nancy Universit Poin car NULL NULL NULL 4 Paris Universit Sor bonne NULL NULL NULL Nom _Etablissement Universit Poincar Universit Sorbonne Figure 3 15 Jointure externe des relations Lecteur_bis et tablissement sur le champ Num _Etablissement Figure 3 16 S lection et projection sur la jointure externe des relations Lecteur_bis et Etablissement sur le champ Num _Etablissement 67 Approche relationnelle 3 Chapitre fonctions de calculs ont t d finies afin de r pondre ce besoin Elles seront d taill es au chapitre sur SQL On consid re la relation La_boutique Num_facture Article Prix Quantite voir figure 3 17 La_boutique Num_Facture Article Prix Quantite On suppose que l on veut exemple trouver le total pour chaque facture en multipliant le prix par la quantit Il est alors possible d ajouter un champ Total dont le contenu sera calcul par l expression Prix Quantit voir figure 3 18 La_boutique_total Num_FactureArticle Prix Quantite Total Il est galement possible d effectuer des op rations statistiques globales d un champ comme les calculs du nombre d enregistrements de moyenne de maximum de mini mum On obtient dans ce cas une nouvelle relation r duite
136. bu au d veloppement et au succ s de l approche relationnelle dans le monde des bases de donn es En effet la normalisation internationale du langage garantit la p rennit et la stabilit des donn es ainsi que des d veloppements qui leur sont associ s ind pendamment du SGBD et du langage utilis s Ce chapitre aborde les concepts et la syntaxe du langage SQL et pr sente les trois grandes familles d op rations que le langage permet d exprimer L interrogation et la recherche dans les tables La gestion de tables et de vues munies des contraintes associ es Ces instructions concernent la table et sa structure et constituent la partie LDD Langage de Description des Donn es de SQL La manipulation de donn es Ces instructions concernent les donn es contenues dans la table et constituent la partie LMD Langage de Manipulation des Donn es de SQL 96 Cr ation de bases de donn es 1 Concepts du langage SQL Le langage SQL est essentiellement un sous produit issu des travaux du groupe de tra vail System R Il s agissait de la r alisation pratique des concepts de l approche relation nelle chez IBM C est une volution du langage SEQUEL lui m me d riv du langage de recherche SQUARE Le langage est normalis par l ISO depuis 1987 La deuxi me version du langage SQL2 a t adopt e en 1992 Les exemples de cet ouvrage sont bas s dans la mesure du possible
137. cc s concurrentiels mais gale ment de traiter le cas de la reprise en cas de panne Le SGBD est ainsi capable de remettre la base de donn es dans l tat coh rent o elle se trouvait avant le d but de la transaction qui a chou pour cause de panne Les transactions sont galement employ es pour annuler des erreurs de traitement ventuelles En effet gr ce ce m canisme on peut revenir l tat initial dans lequel se trouvait la base de donn es avant le d but de la s rie de mauvaise s manipula tion s sur la base de donn es Il s agit certainement de l utilisation principale des transactions 171 Pr servation des donn es 6 Chapitre 0 READ UNCOMMITED Lecture de donn es non valid es en cours de transaction niveau le plus bas 1 READ COMMITED Modification des donn es possible en cours de transaction 2 REPEATABLE READ Insertion de nouveaux enregistrements possible en cours de transaction 3 SERIALIZABLE Toutes les transactions sont trait es en s rie niveau le plus s r Pourquoi pr voir plusieurs niveaux puisque le but est d obtenir une s curit maximale La s curit a un co t en mati re de performances et dans certains contextes il n est pas n cessaire de demander au SGBD de traiter une requ te avec le niveau maximal d exclusi vit Il est clair que pour une simple op ration de lecture le niveau 1 qui garantit l impos sibilit de lire des do
138. ce une base de donn es m me de taille modeste Cr ation de bases de donn es Dans la m me collection Algorithmique Applications en C Jean Michel L ry Algorithmique en C Jean Michel L ry Algorithmique en Java 5 Jean Michel L ry Architecture de l ordinateur Emmanuel Lazard Java 5 Robert Chevallier LateX Jean C me Charpentier Denis Bitouz Le langage C Jean Michel L ry Le langage C Marius Vasiliu Linux Jean Michel L ry Math matiques discr tes appliqu es l informatique Rod Haggarty SQL Fr d ric Brouard Christian Soutou Syst mes d exploitation Bart Lamiroy Laurent Najman Hugues Talbot R seaux Dominique Seret Dani le Dromard UML 2 Beno t Charroux Aomar Osmani et Yann Thierry Mieg
139. ch et des voitures NumVoit de la table vente existent bien dans les tables de r f rence personne et voiture CREATE TABLE vente DateAch DATE PRIX INT NumAch INT NOT NULL REFERENCES personne NumAch NumVoit INT NOT NULL REFERENCES voiture NumVoit PRIMARY KEY NumAch NumVoit Condition sur plusieurs colonnes contrainte de table Lorsque l on d sire exprimer des contraintes plus labor es impliquant plusieurs colon nes on peut d finir une contrainte de table en utilisant le mot cl CONSTRAINT On v rifie que la colonne Age et la colonne Ville doivent tre renseign es ou vides en m me temps 116 Cr ation de bases de donn es CREATE TABLE personne NumAch INT PRIMARY KEY Nom CHAR 20 NOT NULL Ville CHAR 40 AGE INT CONSTRAINT la_contrainte CHECK Age IS NOT NULL AND Ville IS NOT NULL OR Age IS NULL AND Ville IS NULL 3 3 VUES CREATE VIEW Une vue est le r sultat d une requ te que l on peut manipuler de la m me fa on qu une table On peut consid rer une vue comme une table dynamique dont le contenu est recal cul chaque utilisation On utilise les vues pour des raisons de commodit il n est pas n cessaire que certains utilisateurs voient le mod le complet qui est parfois complexe ou encore de s curit confidentialit en restreignant l acc s certaines donn es Dans cette optique les vues viennent en compl ment de
140. cherche cr er un langage d interrogation des bases de donn es plus proche du langage naturel Dans cette optique il fonde sa recherche sur des concepts math matiques rigoureux tels que la th orie des ensembles et la logique du premier ordre Le mod le rela tionnel permet de mod liser les informations contenues dans les bases de donn es en uti lisant des relations c est dire des ensembles d attributs voir figure 1 3 De l id e de d part la r alisation d un produit utilisable le laps de temps est souvent de l ordre d une d cennie La mise en uvre des id es de Codd se fait chez IBM dans le cadre du projet de recherche System R Le premier produit commercial sera non pas le fait d IBM mais celui d Honeywell en 1976 Il sera suivi d un produit r ellement abouti de chez Relationnel Software en 1980 Oracle qui a connu le succ s que l on sait De son c t IBM en tirera un produit qui deviendra DB2 Toujours dans le cadre du projet de recherche System R E F Codd met au point en m me temps que le mod le relationnel un langage d interrogation des donn es SEQUEL qui deviendra ensuite SQL Structured Query Language La normalisation du langage SQL d s 1986 par l ANSI institut de normalisation am ricaine puis par l ISO organisa tion internationale de normalisation a assur pour une grande partie le succ s du mod le relationnel aupr s des entreprises Fait rare dans le monde inform
141. chines et les logiciels utilisent traditionnellement et c est l l h ritage des codages pr c dents comme unit de base l octet qui contient 8 positions Les diff rentes mani res de coder les caract res Unicode seront donc des multiples d octets Essentiellement on trouve UTF 8 il s agit d un encodage g nial sur 8 bits concoct en une journ e une nuit par K Thompson L id e est que tout ce qui est en ASCII est cod sur un octet ce qui est cod avec des diacritiques conformes la norme ISO 8859 est cod sur deux octets et ainsi de suite Cette mani re de coder permet de conserver la compatibilit totale avec le codage ASCII ainsi que de continuer utiliser les logiciels et mat riels con us l origine pour lire des octets 186 Cr ation de bases de donn es UTF 16 on repr sente Unicode sur deux octets C est plus conomique en termes de place si l on utilise fr quemment des langues extr me orientales UTF 8 utilise 3 octets dans ce cas Le probl me est de savoir de ces deux octets lequel est le premier dit de poids fort En effet deux architectures diff rentes de machines coexistent toujours car cette information est cod e au niveau mat riel Ces derni res sont d si gn es par les termes Little Endian et Big Endian Il existe donc une version UTF 16LE et une version UTF 16BE Pour la petite histoire les termes Big Endian et Little Endian
142. conceptuel qui est l quivalent du sch ma technique d un appareil ou du plan d un b timent Le formalisme le plus r pandu pour constituer ce sch ma est le mod le entit association ou entity relationship en anglais Il a t pr sent l origine par P Chen en 1976 aux tats Unis quasi simultan ment avec le mod le de H Tardieu en France ce qui explique les notations l g rement diff rentes en Europe et aux tats Unis en particulier au niveau de la repr sentation des cardinalit s Le mod le entit association a t normalis l ISO On verra dans la section suivante que l on peut utiliser galement le formalisme UML pour la repr sentation Le formalisme entit association tout comme UML utilise une repr sentation graphi que sous forme de diagrammes Les entit s sont les objets concrets ou abstraits du monde r el voqu s plus haut Les associations repr sentent le lien entre ces entit s Comme on l a vu pr c demment on peut identifier les entit s et les associations en effectuant une analyse du discours c est dire des phrases de type sujet verbe compl ment Les sujets et les compl ments sont les entit s et le verbe mod lise l association 31 Analyse du monde r el 2 Chapitre 2 1 ENTIT S Les entit s sont compos es de champs de donn es que l on nomme attributs Un attribut ou un ensemble d attributs doit tre choisi comme identifiant de l entit
143. de donn es que l on appelle le dictionnaire de donn es Pour r aliser ces op rations avec l ind pendance souhait e par rapport la repr sentation le SGBD offre deux langages de haut niveau un Langage de Description de Donn es LDD qui permet d agir sur la structure de la base de donn es ajout suppression et modification des tables un Langage de Manipulation de Donn es LMD qui permet d interroger et de mettre jour le contenu de la base de donn es Ces langages sont de type non proc dural c est dire que l on s int resse l effet de l op ration le quoi et non pas la mani re dont elle est r alis e le comment On a pu se rendre compte dans la section pr c dente du niveau de complexit de certaines op ra tions qui gr ce ces langages sont nonc es simplement Par exemple la modification de la taille d un champ peut tre nonc e en une seule instruction avec le LDD Il est courant que les SGBD modernes impl mentent ces langages de manipulation l aide d objets gra phiques Le SGBD doit galement assurer la protection des donn es en cas de probl mes Ceux ci peuvent tre la cons quence d une manipulation malheureuse mais galement d une panne du syst me qui survient par exemple la suite d une coupure de courant Dans tous les cas le SGBD doit permettre de restaurer les donn es Ces op rations sont g n rale ment r alis es en uti
144. de la base de donn es situ es sur d autres machines via le r seau La fr quence de ces mises jour va d pendre de celle de modification des donn es Cette m thode permet de plus d am liorer la disponibilit des donn es Si l un des serveurs est inaccessible un autre peut prendre le relais Il est possible ainsi de r partir la charge sur plusieurs serveurs On obtient une redondance de machines et donc des donn es Cela peut sembler para doxal dans la mesure o une grande partie de l ouvrage est consacr e la suppression de la redondance mais le concept mis en uvre ici est diff rent Les donn es sont simple ment dupliqu es pour se pr munir contre leur perte et augmenter leur disponibilit Ce dispositif est complexe g rer d un point de vue du r seau et n cessite de disposer de plu sieurs h bergements g ographiquement distants voir figure 6 1 161 Pr servation des donn es 6 Chapitre Figure 6 1 Redondance et r partition de charge 2 Limitations d acc s au SGBD Apr s avoir r solu les probl mes g n raux d acc s la machine abord s dans la section pr c dente il convient de restreindre l acc s au SGBD Ces restrictions concernent les autorisations accord es ou non sur les diff rents l ments que contient le SGBD mais aussi permettent de contr ler l acc s g n ral au SGBD Ces op rations de gestion sont effectu es typiquement par l administrat
145. de psychologie Les techniques d analyses employ es sont une alchimie concoct e partir de statistiques de r seaux de neurones de classifica tions et autres techniques employ es en intelligence artificielle Une fois ces r gles ta blies on peut les utiliser au sein des bases de donn es d ductives d crites pr c demment Si ge social Filiale Est Filiale Asie Filiale Oc an indien Copie sauvegarde Copie sauvegarde Copie sauvegarde Interrogation r partition 10 Cr ation de bases de donn es Figure 1 7 Base de donn es d ductives p re fils L information d cisionnelle ainsi extraite a de nombreux d bouch s du ciblage marke ting la m decine en passant par la pr vision financi re Les m thodes s affinent et deviennent r ellement efficaces ce qui a cependant donn lieu quelques escroqueries les entreprises sp cialis es dans le domaine refusant bien s r de donner les sp cifications de leurs m thodes d analyses qui relevaient parfois de la divination au motif de ne pas per dre leur avantage concurrentiel Entrep ts de donn es datawarehouse Les entrep ts de donn es sont des bases de donn es r capitulatives constitu es partir de diff rentes sources de l entreprise comptabilit ventes achats service du person nel pour disposer d un acc s homog ne l ensemble des donn es Les donn es disper s es ne peuvent pas tre exp
146. e 0 n 0 n 50 Cr ation de bases de donn es Cette nouvelle entit sera li e aux deux autres par l association vente On se trouve dans le cas o l association sera donc non plus de type binaire mais ternaire Les cardinalit s associ es aux entit s voiture et client ne changent pas elles sont de type 0 n une personne peut acheter plusieurs voitures ou aucune une voiture peut tre vendue une seule fois ou jamais Pour une association de type ternaire on emploie plus ou moins implicitement des cardi nalit s de type 0 n Cela correspond du c t du vendeur une phrase un peu ambigu de la forme un vendeur peut vendre aucune ou plusieurs voitures aucun ou plusieurs clients Comme on utilise la notation europ enne on n effectue pas de changements du c t des entit s client et voiture voir figure 2 26 Figure 2 26 Entit s voiture client et vendeur li es par les associations ternaire vente avec cardinalit s Les associations ternaires sont parfois d licates utiliser et difficiles repr senter en UML sans contorsions De plus les cardinalit s perdent de leur pertinence dans ce contexte Il est souvent pr f rable de remplacer cette association par une entit que l on relie aux autres par des associations binaires Figure 2 27 Entit s voiture client vendeur et vente li
147. e personne Tableau 4 3 Op rateurs de comparaison de SQL 102 Cr ation de bases de donn es SELECT FROM vente WHERE Prix gt 50 000 SELECT FROM voiture WHERE Couleur IN Blanc Rouge SELECT FROM personne WHERE Age BETWEEN 40 AND 60 SELECT FROM voiture WHERE Couleur Blanche OR Marque Peugeot gt Sup rieur lt Inf rieur ou gal gt Sup rieur ou gal DateVente Prix NumVoit NumAch 1996 03 30 70 000 2 4 BETWEEN lt valeur gt AND lt valeur gt Appartient un intervalle IN lt liste de valeurs gt Appartient un ensemble de valeurs IS NULL Teste si la colonne n est pas renseign e LIKE Compare des cha nes de caract res NumVoit Marque Type Couleur 1 Peugeot 404 Rouge NumAch Nom Age Ville Sexe 3 Henri 45 Paris M 5 Jacques 50 Bordeaux M AND Et les deux conditions sont vraies simultan ment OR Ou l une des deux conditions est vraie NOT Inversion de la condition NumVoit Marque Type Couleur 1 Peugeot 404 Rouge 3 Opel GT Blanche 4 Peugeot 403 Blanche Tableau 4 4 Op rateurs de comparaison sp cifiques SQL permettant de constituer des expressions Extraction des voitures blanches ou rouges Extraction des personnes dont l ge est compris en 40 et 60 Extraction des enregistrements de la table vente dont le prix est sup rieur 50 000 Tableau 4 5 Op r
148. e r alisation de la requ te cette derni re peut tre dissoci e en trois tapes On calcule ce que commande chaque client On calcule la moyenne des commandes On cherche les clients qui ont command plus que la moyenne chaque tape on cr e une table temporaire qui nous permet de r utiliser le r sultat de la requ te pour les autres tapes Les tables temporaires disparaissent la fin de la session SQL Calcul du nombre de commandes par client On utilise la notion d agr gat pour effectuer une op ration statistique sur des regroupe ments d enregistrements de la table La pr sence du mot par dans la question oriente assez naturellement vers un regroupement et donc vers l utilisation d un agr gat CREATE TEMPORARY TABLE requete1 SELECT commande NumClient NomClient COUNT AS NombreCommande FROM client JOIN commande ON client NumClient commande NumClient GROUP BY commande NumClient Calcul de la moyenne des commandes On doit calculer la moyenne du nombre de commandes par client on utilise cet effet une op ration statistique classique sur le champ de la table nombre de commande cr e par la requ te pr c dente CREATE TEMPORARY TABLE requete2 SELECT AVG NombreCommande AS MoyenneCommande FROM requete1 Extraction des clients ayant command plus que la moyenne Enfin on utilise la valeur de la moyenne obtenue par la seconde requ te dans l expression du crit re de s lection
149. e relation On cherche s il existe une d pendance entre deux champs qui ne font pas partie d une cl Si c est le cas on se trouve dans la situation o un champ d pend d un autre champ qui d pend lui m me d une cl La cl consid r e peut tre primaire ou secondaire La troisi me forme normale interdit donc les d pendances fonctionnelles dites transitives entre les champs Elle s exprime de la mani re suivante La relation est en deuxi me forme normale donc en premi re forme normale Tout champ n appartenant pas une cl ne d pend pas d un autre champ non cl Comment passer en troisi me forme normale La solution est galement de d composer la relation de d part en deux relations La nou velle relation cr e a pour cl le champ dont d pendent les autres champs qui constituent ainsi la d pendance transitive On consid re la relation suivante voir figure 3 27 Article Fournisseur Prix Marteau SOGENO 5 Tournevis ARTIFACT 10 Tournevis SOGENO 23 Pince LEMEL 34 M tre ARTIFACT 24 Fournisseur Adresse SOGENO Paris ARTIFACT Lille LEMEL Paris Remarque Si la cl d une relation est atomique c est dire compos e d un seul champ elle est naturelle ment en deuxi me forme normale Figure 3 26 D composition de la relation Produit pour passer en deuxi me forme normale 74 Cr ation de bases de donn es Baladeur NumBal M
150. e Nom Adresse_mail Poste Nom Adresse_mail Poste Andr Dupont adup philips com andre dupond fr Directeur Stanislas De la Motte sdlm versailles mairie fr Employ asserment Elisabeth Macroix elsa yago to mac rien fr Assistante Ident _Personne Nom Poste Adresse_mail1 Adresse_mail2 1 Andr Dupont Directeur adup philips com andre dupond fr 2 Stanislas De la Motte Employ asserment sdlm ver sailles mairie fr sdlm ver sailles mairie fr 3 Elisabeth Macroix Assistante elsa yago to mac rien fr Figure 3 56 Relation Personne modifi e Figure 3 55 Relation Personne 92 Cr ation de bases de donn es EXERCICE 13 NORMALISATION II La relation est en premi re forme normale Il n y a pas de cl candidate atomique pour cette relation D apr s l nonc on d termine que le couple de champs Numero_Film amp Format est une cl Or il y a une d pendance fonctionnelle entre le support et le format On a donc une d pendance entre un champ non cl et une partie de la cl la relation n est pas en deuxi me forme normale On d compose la relation de la mani re suivante voir figure 3 58 Film Prix Format Type Nombre Numero Film FormatSup Format Support On consid re la relation Film pr c dente laquelle on a ajout le champ Support voir figure 3 57 Film Prix Format Couleur Nombre Numero_Film
151. e code e combin au code Cependant pour des raisons pratiques de compatibilit Unicode a repris int gralement les codages existants tels que ISO 8859 1 dans ce cas on stocke galement le caract re La plupart des langues vivantes peuvent s crire d sormais avec Unicode plus ou moins 100 000 caract res sont actuellement d finis m me si certains choix ont fait l objet de fortes cri tiques Les symboles math matiques musicaux ou autres font galement partie du code Le processus se poursuit avec les langues mortes comme le codage des hi roglyphes gyptiens Techniquement Unicode utilise un codage sur 21 positions Le codage est divis en 17 tables de 65 536 216 caract res que l on appelle des plans L un des int r ts de ce d cou page est que par exemple le premier plan suffit coder la plupart des langues vivantes De surcro t le tout d but de ce premier plan reprend exactement la norme ISO 8851 1 De cette mani re on n est pas oblig d utiliser la place des 21 positions pour coder les carac t res Unicode Il suffit de trouver un codage astucieux qui indique que l on utilise le pre mier plan ou m me le d but du premier plan et alors 8 positions suffisent Avec des caract res plus exotiques le codage utilise alors 16 positions et ainsi du suite Cet aspect offre beaucoup de souplesse et assure galement la compatibilit avec l existant ASCII et ISO 8859 Les ma
152. e colonne les calculs plus complexes seront r alis s l aide d un langage de programmation comme on Addition Soustraction Multiplication Division Modulo Prix DateVente Prix_Euros 10 000 1985 12 03 1 524 483 200 70 000 1996 03 30 10 671 382 401 30 000 1998 06 14 4 573 449 601 45 000 2000 04 02 6 860 174 401 NomMajuscule NESTOR IRMA HENRI JOSETTE JACQUES Mois 12 3 6 4 Tableau 4 1 Op rateurs d expressions de SQL Cr ation d une colonne Prix_Euros dans la table vente contenant le prix de vente en euros Transformation d une colonne Nom de la table Personne en majuscules Extraction du mois de la colonne DateVente de la table Vente 101 SQL 4 Chapitre l a indiqu pr c demment Les colonnes colonnes de la table r sultat peuvent tre constitu es de r sultats de fonctions statistiques int gr es SQL Voici une liste non exhaustive des op rateurs statistiques de SQL voir tableau 4 2 SELECT AVG Prix AS Prix_Moyen FROM vente SELECT COUNT AS Nombre_Personne FROM personne Dans le cas de la fonction COUNT on ne sp cifie pas la colonne sur laquelle s applique la fonction puisqu il s agit de la table enti re 2 2 S LECTION OU RESTRICTION WHERE L op ration de s lection ou restriction consiste indiquer un ou plusieurs crit res pour choisir
153. e d finir sans ambigu t un identifiant Le processus de recherche d un identifiant partir des relations de d pendan ces entre les attributs est d taill au chapitre 3 Recherche des cardinalit s Les cardinalit s sont d duites des deux derni res phrases 0 n Pour une personne peut acheter plusieurs n voitures ou aucune 0 0 1 Pour une voiture peut tre vendue une seule fois 1 ou jamais 0 Remarque Les cardinalit s se notent diff remment dans le mod le de Chen employ aux tats Unis et dans celui utilis en Europe Dans le mod le europ en on dispose les cardinalit s du c t de l entit concern e La cardinalit 0 n d duite de une chambre peut tre lou e plusieurs fois et elle peut ne pas tre occup e se trouve du c t de l entit chambre Cette notation pr sente l avantage d tre plus coh rente lors de l utilisation d associations n aires Il n y a pas de changement dans l emplacement des cardinalit s des entit s associ es Chambre IDChambre NombrePlaces Tarif Client IDClient Nom Adresse NumT l phone Location DateD but NombreJours 1 n 0 n 35 Analyse du monde r el 2 Chapitre Figure 2 8 Entit s voiture et client li es par l association vente avec cardinalit s 3 Remise en cause et volution du mod le Cette section nonce quelques conseils pour
154. e de v rifier qu un identifiant composite reste valide lorsque les donn es voluent C est pourquoi quand cela est possible il est indispensable de choisir un identi fiant dont les contenus ne sont pas susceptibles d voluer au fil du temps On pr f re iden tifier une personne par un num ro de s curit sociale que par un num ro de passeport qui a une dur e de validit limit e Figure 2 2 Entit client Chambre IDChambre NombrePlaces Tarif Entit chambre Chambre 123 2 55 Chambre 13 4 75 Chambre 176 1 40 Occurrences chambre Client IDClient Nom Adresse NumT l phone 32 Cr ation de bases de donn es 2 2 ASSOCIATIONS Les associations repr sentent les liens qui existent entre les entit s Elles sont compos es le cas ch ant d attributs bien que cela ne soit pas indispensable Par cons quent il n est pas n cessaire de disposer d un identifiant pour une association Lorsque les entit s sont asso ci es par deux elles sont qualifi es de binaires Cependant il est possible d en associer plus de deux les associations sont alors non plus binaires mais n aires Le nombre d entit s associ es s appelle le degr de l association On repr sente une association par un ovale qui contient le nom de l association et ses attributs Figure 2 3 Entit s client et chambre reli
155. e la classe voiture la classe client a le r le d acheteur Du point de vue de la classe client la classe voiture a le r le d une d pense Ainsi on note le nom du r le au m me emplace ment que celui de l association au dessus du trait mais du c t de la classe concern e Figure 2 19 Classes voiture et client li es par l association vente avec des r les 4 3 DU MOD LE ENTIT ASSOCIATION UML La notation UML est utilis e dans cette section pour repr senter les entit s et les associa tions issues de la d marche d analyse primitive que l on a d crite dans la premi re sec Remarque Attention la position des cardinalit s dans un diagramme de type UML est invers e par rapport celle utilis e dans un diagramme de type mod le entit association pr sent e dans ce chapitre En effet UML utilise la notation employ e aux tats Unis mal adapt e la repr sentation d asso ciation de degr sup rieur aux associations binaires Client NumAch Nom ge Ville Sexe Voiture NumVoit Marque Type Couleur Vente DateVente Prix 0 1 1 Client NumAch Nom ge Ville Sexe Voiture NumVoit Marque Type Couleur Acheteur D pense 43 Analyse du monde r el 2 Chapitre tion La correspondance qui est faite avec celle fond e sur le mod le entit association est la suivante Une entit est repr
156. e p riode pendant laquelle le client a approvisionn son compte mais n a pas encore pass 0 de commande et il est videmment encourag en passer plusieurs n Les cardinalit s associ es sont de type 0 n Commande une commande peut elle avoir t pass e par aucun client ou par plusieurs Une commande donn e est pass e par un 1 et un 1 seul client Les cardinalit s asso ci es sont de type 1 1 Commande Livreur Pizza V hicule Ingr dient Client NumCommande DateCom Taille Retard NumClient NomClient Adresse Compte PointsRapizz NomPizza Prix CodeLivreur NomLivreur T l phone NumIngre NomIngre NumImmat Marque Type Livre Transporte Passe Constitue Compose 133 Du langage parl SQL 5 Chapitre Association Livre Livreur un livreur peut il n avoir jamais livr de pizzas et peut il en avoir livr plusieurs Un livreur a au moins effectu une 1 livraison sinon il n est pas consid r comme tel On peut imaginer que l on ne rentre les informations associ es un livreur qu partir du moment o il a r ellement effectu une livraison Il est suppos faire plusieurs n livrai sons Les cardinalit s associ es sont de type 1 n Commande une commande peut elle avoir t livr e par plusieurs livreurs ou par aucun Une commande est livr e par un 1 et un 1 seul livreur Les cardinalit s asso ci
157. e r el C est galement lors de cette phase que l on d finit les vues du syst me d information qui sont adapt es chaque cat gorie d utilisateurs 4 3 CR ATION ET UTILISATION DE LA BASE DE DONN ES Une fois le sch ma pr c dent d fini on utilise le SGBD pour passer la cr ation des tables qui constituent la base de donn es Puis on ins re videmment les valeurs dans les tables Le cas ch ant on cr e les vues d finies l tape pr c dente et par l m me les utilisateurs concern s Le syst me est alors op rationnel Toute cette tape se fait forc ment en utili sant le SGBD alors que les pr c dentes taient plus th oriques La cr ation des tables et l utilisation de la base de donn es n cessiteront le langage SQL Cependant il existe de nos jours de nombreux outils graphiques dans les SGBD qui masquent l utilisation du SQL Figure 1 13 tapes de la conception d une base de donn es Sch ma relationnel Base de donn es physique Vue 1 Vue 2 SGDB Monde r el Analyse LMD LDD Mod le entit association Transformation Vue 3 19 Introduction aux bases de donn es 1 Chapitre 5 M tiers des bases de donn es Comme on peut le constater lorsque l on consid re les diff rentes tapes de la conception d une base de donn es des acteurs aux comp tences tr s diverses interviennent dans ce processus 5 1 CONSULTANTS ANALY
158. ec cardinalit s On d compose l association emploie et l entit tarification L entit tarification devient une relation dont la cl est Taille L association a une cardinalit 1 1 il s agit du cas particulier voqu pr c demment la relation produite par l association est aspir e par la relation cr e par l entit associ e avec la cardinalit 1 1 c est dire commande La fusion produit le d place ment de l attribut Taille vers la relation commande Finalement la relation commande reste inchang e m me si l entit dont elle est issue a t modifi e au niveau du mod le entit association On a introduit une nouvelle relation tarification comme cela a t fait de mani re intuitive pr c demment On obtient l ensemble de relations suivant client NumClient NomClient Adresse Compte PointsRaPizz pizza NomPizza Prix livreur CodeLivreur NomLivreur T l phone v hicule NumImmat Marque Type ingr dient NumIngre NomIngr dient commande NumCommande DateCom Taille Retard CodeLivreur NumImmat NumClient NomPizza compose NumIngre NomPizza tarification Taille Coefficient Commande Livreur Pizza V hicule Ingr dient Client NumCommande DateCom Retard NumClient NomClient Adresse Compte PointsRapizz NomPizza P
159. elation unique qui contient tous les champs que l on appelle la relation universelle l aide des d compositions propos es par la mise en forme normale et du graphe des d pendances fonctionnelles des champs de cette relation on parvient par raffinements successifs un ensemble de relations normalis es Cette m thode de la relation universelle est toutefois assez difficile manipuler d s que l on d passe une taille critique du nombre de champs 4 1 PREMI RE FORME NORMALE La premi re forme normale s int resse au contenu des champs Elle interdit la pr sence appel e multivaluation de plusieurs valeurs dans un m me champ d une relation En effet la notion de d pendance fonctionnelle entre les champs ne peut plus tre v rifi e s ils poss dent plusieurs valeurs Elle s exprime de la mani re suivante Tout champ contient une valeur atomique Comment passer en premi re forme normale La relation suivante n est pas en premi re forme normale le champ Auteurs contient plusieurs valeurs voir figure 3 23 Remarque L un des int r ts d UML est de disposer de logiciels capables partir d un mod le conceptuel exprim en UML de d duire automatiquement les relations en utilisant les r gles nonc es ici D autres r gles appara traient dans le cas de l utilisation des extensions objet que propose UML cependant ces possibilit s d passent le cadre de cet ouvrage 71 Approche
160. elle description pouvez vous donner du lien entre les diff rentes entit s partir des cardinalit s On d crit une partie de la r alit biologique d un syst me parasite h te de la mani re suivante Un parasite utilise un et un seul type d h te Un h te a un et un seul parasite D crivez les entit s et les associations que vous identifiez partir de cette description et d duisez en les cardinalit s associ es Que proposez vous pour am liorer le sch ma Parasite NumParasite NomPara H te Utilise 1 1 1 1 NumH te NomH te cosyst me NumH te NomH te NumParasite NomPara 49 Analyse du monde r el Exercices 2 Chapitre EXERCICE 6 ASSOCIATION R FLEXIVE On pourrait diff rencier les humains animaux des v g taux et cr er deux entit s diff rentes Mais comme les humains mangent des animaux et des v g taux et que les animaux mangent galement d autres animaux et des v g taux il n est pas pertinent de les s parer pour repr senter ce type d information On utilise une seule entit humain_animal_v g tal qui est li e elle m me par l association mange Les cardinalit s sont de type 0 n voir figure 2 25 Un humain_animal_v g tal peut manger ou ne pas en manger un autre un v g tal ne mange pas ses cong n res Un humain_animal_v g tal peut tre mang ou ne pas tre mang par un autre Figure 2
161. emi re phase de l analyse du monde r el du probl me est r alis e par des entretiens g n ralement codifi s avec les utilisateurs On effectue une analyse du discours pour en extraire l information utile que l on resitue dans le contexte de l organisation en g n ral L objectif principal est de guider l analyste on utilise des m thodes d analyse et de con ception issues de l tude des flux d information de l entreprise Parmi celles ci on peut citer la m thode Merise d origine fran aise tr s r pandue en France dans les ann es 1980 ainsi que d autres issues de la recherche et du g nie logiciel ou sp cifiques des grandes entreprises de consulting La pr sentation de ces m thodes fort complexes d passe largement le cadre de cet ouvrage L objectif de cette section est de donner quelques pistes pour approcher la r alit mod liser L expression des besoins repose sur la formulation du probl me l aide de phrases simples qui d crivent la r alit mod liser Ces phrases se pr sentent sous la forme sujet verbe compl ment avec une tournure active quand cela est possible Le but est d obtenir deux types de phrases Celles qui d crivent les liens entre les objets du monde r el g n ralement une action ou une propri t Exemple Un lecteur emprunte un livre Un livre a un auteur Celles qui caract risent la mani re dont sont reli s ces objets Exemple
162. en dent les autres champs constituant la d pendance On consid re la relation suivante voir figure 3 29 Dictaphone Marque Produit Prix Couleur La cl de cette relation est constitu e par les champs Marque et Produit En effet un pro duit est fabriqu sous licence par la soci t ImaginR et a donc le m me nom que celui pro pos par la soci t Olympus Il est alors n cessaire d utiliser les deux champs pour constituer la cl Pour se d marquer les unes des autres les soci t s utilisent des couleurs personnalis es destin es identifier la marque Philips le blanc et l orange Olympus le rouge et le noir ImaginR le gris On a donc une relation de d pendance entre ces deux champs La relation est en troisi me forme normale mais elle n est pas en forme de Boyce Codd Plusieurs d compositions sont possibles par exemple Dictaphone Marque Type Prix et Marque_coul Couleur Marque Mais cette d composition g n re des tuples non d sir s au moment de la jointure Quant la d composition Dictaphone Type Prix Couleur et Marque_coul Couleur Marque elle permet de reconstituer l information de d part par une jointure sur le champ Couleur voir figure 3 30 Dictaphone Produit Prix Couleur Marque Produit Prix Couleur Philips LD 1024 49 Blanc Olympus VN 1664 49 Noir Philips LD 5647 H 59 Blanc ImaginR VN 1664 69 Gris Olympus VN 234 PC 79 Rouge
163. en adapt la mod lisation de donn es complexes qui n ces sitent une approche objet Ni le mod le entit association ni UML ne sont des m thodes d analyse il s agit dans les deux cas de simples formalismes de repr sentation 44 Cr ation de bases de donn es Exercices EXERCICE 1 IDENTIFIANT D UNE ENTIT Si l entit d crit des cin mas situ s sur le territoire fran ais par exemple le nom du cin ma n est pas significatif le Rex existe dans bon nombre de villes Il en est de m me pour le nom de la salle on peut imaginer sans peine que plusieurs cin mas poss dent une salle John Cassavettes Les autres attributs peuvent difficilement pr tendre identifier une salle de cin ma le nombre de places et la taille sont communs beaucoup de salles ainsi que la ville Si l on essaie la combinaison Nom du cin ma amp Nom de la salle on court le risque que deux cin mas Cam o disposent de la m me salle Fran ois Truffaut Finalement un identifiant possible serait la combinaison Nom du cin ma amp Nom de la salle Ville du cin ma Il est peu probable en effet que la m me ville dispose de plusieurs cin mas du m me nom encore que ce soit du domaine du possible Dans ce cas il est pr f rable de cr er un champ identifiant de toutes pi ces qui identifiera la salle Classique ment on utilisera un chiffre identifiant que l on peut nommer Numero_salle EXERCICE 2
164. entifiant et un ISBN Un ouvrage est carac t ris par un ISBN qui est bien dans ce cas un identifiant un titre un auteur et un diteur Dans cet exemple l objet du mod le conceptuel livre utilis comme entit est d com pos en deux autres entit s dont une est abstraite l ouvrage L ouvrage est un regroupe ment d attributs qui n a pas d existence tangible dans le monde r el Lecteur NumLecteur Nom Pr nom Adresse Emprunte DateEmprunt Titre Auteur ISBN diteur Livre 37 Analyse du monde r el 2 Chapitre Figure 2 10 Entit s livre ouvrage et lecteur li es par les associations emprunte et est un exemplaire sans cardinalit s Que se passe t il si l ouvrage poss de plusieurs auteurs Une solution simpliste est de pr voir un champ par auteur suppl mentaire c est dire d ajouter des champs auteur2 auteur3 auteur4 etc Cette solution pose de nombreux probl mes Si seulement dix livres sur un million poss dent plusieurs auteurs on r serve la place pour les champs auteurs suppl mentaires qui sera inutilis e Si un livre poss de un nombre d auteurs sup rieur au nombre de champs pr vus on ne r sout pas le probl me Si l on consid re qu un auteur peut avoir crit plusieurs ouvrages on r p te dans ce cas les informations le concernant pour chacun de ses ouvrages Cela cons
165. er un ensemble d enregistrements lignes que l on identifiera avec une expression identique aux conditions de s lection vues pr c demment DELETE FROM voiture WHERE Couleur Rouge NumVoit Marque Type Couleur 1 Peugeot 404 Rouge 2 Citroen SM Noire 3 Opel GT Blanche 4 Peugeot 403 Blanche 5 Renault Alpine A310 Rose 6 Renault Floride Bleue 10 Triumph NULL Bleue Remarque Pour tre ins r es les valeurs des colonnes doivent respecter les contraintes d int grit associ es la table Affichage de la table voiture modifi e 118 Cr ation de bases de donn es SELECT FROM voiture Attention si l on ne sp cifie aucune condition tous les enregistrements sont supprim s DELETE FROM personne 4 3 MODIFICATION UPDATE Pour cette op ration il faut pr ciser la les colonne s concern e s la les nouvelle s valeur s les enregistrements pour lesquels on modifiera ces valeurs De m me que pr c demment on identifiera les enregistrements concern s par une expression de s lection La valeur modifi e peut tre statique ou calcul e partir des valeurs d autres colonnes UPDATE personne SET Ville Paris Centre WHERE Ville Paris SELECT FROM personne NumVoit Marque Type Couleur 2 Citroen SM Noire 3 Opel GT Blanche 4 Peugeot 403 Blanche 5 Renault Alpine A310 Rose 6
166. ercices 1 Relation degr cardinalit 82 2 Cl d une relation 82 3 Contraintes d int grit 83 4 Op ration ensembliste 83 5 Projection 84 6 Restriction 85 7 Jointure 85 8 Autre jointure 87 9 Calcul sur des agr gats 88 10 Passage du mod le entit association au relationnel 89 11 Passage du mod le entit association au relationnel II 90 12 Normalisation 91 13 Normalisation II 92 14 Normalisation III 93 L approche relationnelle pr sent e par E F Codd poss de un fondement math matique rigoureux qui lui assure sa robustesse le mod le relationnel est de loin le plus r pandu dans le monde des bases de donn es Ce chapitre pr sente le concept de relation fondamental du mod le relationnel ainsi que les op rations qui lui sont associ es Puis on aborde les m thodes qui permettent de passer du mod le conceptuel vu au chapitre pr c dent entit association ou UML un ensemble de relations La qualit des relations ainsi produites est contr l e par leur conformit aux trois premi res formes normales Ce processus peut conduire une r organisation des relations sans
167. ersonne est caract ris e par son nom son ge sa ville son sexe L action mod lis e est la vente qui est caract ris e par le prix de la vente et sa date Une personne peut acheter une plusieurs voitures Une voiture peut tre vendue une seule fois ou jamais 21 Introduction aux bases de donn es 1 Chapitre Figure 1 14 Base de donn es exemple Le mod le entit association et la repr sentation UML correspondant cette descrip tion seront cr s au chapitre 2 Analyse du monde r el Le mod le relationnel sera cr au chapitre 3 Approche relationnelle La base de donn es r sultante sera utilis e pour les exemples du chapitre 4 SQL R sum Une base de donn es d signe l ensemble des donn es stock es Pour manipuler ces don n es on utilise un SGBD Syst me de Gestion de Bases de Donn es qui est un logiciel com plexe L ensemble compos par les donn es et le SGBD constitue un syst me d information La conception d une base de donn es de la mod lisation du monde r el son impl mentation dans le SGBD fait appel des techniques et des m thodes tr s dif f rentes pour chaque tape Des m tiers sp cifiques se sont donc d velopp s autour de ces concepts et les mettent en uvre Par exemple l approche du monde r el s apparente l analyse faite par un cabinet de consulting alors que l impl mentation dans le SGBD et son administration sont
168. ersonnes de m me nom ont rarement le m me num ro de t l phone mais il est pr f rable de cr er un identifiant dans ce cas L entit pi ce comprend un titre l auteur le metteur en sc ne et le prix d une place on suppose que toutes les places sont au m me prix De m me que pour l entit spectateur on a besoin de cr er un identifiant pour la pi ce L association a pour attributs la date et le num ro de si ge Ces attributs sont en effet carac t ristiques de l action d achat et non pas du spectateur ou de la pi ce voir figure 2 20 Figure 2 20 Entit s spectateur et pi ce li es par l association achat sans cardinalit s Si le prix des places varie pour chaque s ance il est non plus une caract ristique de la pi ce mais de l achat L attribut prix devient un attribut de l association achat Il n y a jamais de solution unique en base de donn es On aurait pu par exemple utiliser une entit billet li e aux deux entit s spectateur et pi ce EXERCICE 3 QUESTIONS ASSOCI ES AUX CARDINALIT S Dans l exemple sur la biblioth que pr sent pr c demment dans ce chapitre on est par venu au mod le suivant la suite de la remise en cause du mod le voir figure 2 21 Les entit s livre ouvrage sont li es par l association est_un_exemplaire Les entit s personne et livre sont
169. erte des donn es On a pr sent tout d abord les pr cautions de premier niveau qu il ne faut pas n gliger Elles concernent essentiellement l environnement dans lequel se trouve le SGBD la machine munie de son syst me d exploitation les locaux informatiques et enfin le r seau sur lequel elle est connect e Un autre point important concerne la sauvegarde et la duplication des donn es de fa on garantir l accessibilit ces derni res m me en cas de sinistre Une fois l environnement du SGBD s curis on a abord les permissions et les restrictions qui sont g r es directement par le SGBD Il s agit de la partie prise en charge par l admi nistrateur du SGBD qui d finit les droits sur les diff rents objets de la base de donn es Cette gestion devient rapidement complexe on utilise en compl ment les vues SQL pour d crire plus finement les objets sur lesquels on distribue les droits Les pr cautions pr c dentes mises en uvre on se trouve confront au probl me de l acc s concurrent aux donn es La solution consiste en l utilisation de verrous Leur m canisme est tr s d licat g rer et l on pr f re laisser ce soin au SGBD Ce dernier pro cure de surcro t un m canisme de journalisation des instructions capable de remettre la base de donn es dans l tat coh rent pr c dant la s quence d instructions Cette combi naison des m canismes d acc s exclusif associ s la journ
170. es par l association location Il peut galement y avoir plus d une association entre deux entit s c est le cas de l exem ple de l h tel voir figure 2 4 Les entit s client et chambre sont reli es par deux associa tions ayant des attributs diff rents location et r servation Figure 2 4 Entit s client et chambre reli es par les associations location et r servation Enfin il est possible de relier par une association une entit elle m me Si l on prend l exemple de la mod lisation des liens de mariage entre personnes on obtient une seule entit personne qui est associ e elle m me par l association est_mari _ voir figure 2 5 Dans ce cas on dit que l association est r flexive Chambre IDChambre NombrePlaces Tarif Client IDClient Nom Adresse NumT l phone Location DateD but NombreJours Chambre IDChambre NombrePlaces Tarif Client IDClient Nom Adresse NumT l phone Location DateD but NombreJours R servation DateD but NombreJours 33 Analyse du monde r el 2 Chapitre Figure 2 5 Entit personne reli e par l association est_mari _ 2 3 CARDINALIT S Les cardinalit s d crivent les caract ristiques de l association entre les entit s On utilise deux nombres qui repr sentent les valeurs minimales et maximale
171. es de la transaction et des don n es qui sont modifi es par ces instructions Ce m canisme est identique celui qui est utilis pour les syst mes de fichiers modernes dans les syst mes d exploitation Puisque la plupart des critures se font en m moire pour gagner du temps le syst me de fichiers n est pas forc ment coh rent en cas de panne de courant qui entra ne la perte de toutes les informations se trouvant en m moire On conserve donc un journal de l ensemble des lec tures et critures afin de pouvoir reconstituer un syst me coh rent En utilisant ce journal partir d un tat courant du syst me on est capable de r ex cuter les instructions qui n ont pu l tre effectivement ou on revient en arri re si ce n est pas possible La description faite ci dessus est videmment simpliste par rapport la r alit plus com plexe des SGBD Les m thodes de verrouillage impl ment es dans ces derniers sont bien plus labor es que celles pr sent es ici Il en est de m me pour les m canismes de journa lisation qui disposent de plusieurs niveaux Diff rents niveaux de transaction La norme SQL fixe plusieurs degr s de qualit pour les transactions on parle de niveaux d isolation C est dire qu une transaction pourra tre rendue plus ou moins perm able aux autres transactions Les niveaux standard sont les suivants Remarque Les transactions permettent de r soudre les probl mes li s aux a
172. es des diteurs Par cons quent il ne dispose pas d instruc tions de structuration telles que des boucles Pour effectuer ce type d op rations on uti lise un langage de programmation classique comme les langages C php Java et bien d autres Les instructions SQL sont alors int gr es dans le langage via une interface sp ci fique Les r sultats de la requ te SQL sont alors stock s dans des structures de donn es propres au langage employ par exemple un tableau afin de pouvoir les manipuler C est typiquement ce proc d qui est employ pour construire une interface d acc s une base de donn es par le Web Le langage de programmation qui int gre le langage SQL est alors appel langage h te voir figure 4 1 De petites diff rences de syntaxe peuvent appara tre entre une requ te SQL exprim e interactivement et la version int gr e dans un langage de programma tion Enfin il existe une extension proc durale de SQL qui ajoute les fonctions proc dures et m thodes SQL mais qui ne sera pas trait e dans le cadre de cet ouvrage Remarque Un ensemble d instructions SQL se nomme une requ te Une requ te SQL se termine toujours par le caract re 97 SQL 4 Chapitre Figure 4 1 Interface entre SQL et les langages de programmation 1 1 ORGANISATION DU CHAPITRE L interrogation d une ou de plusieurs tables est abord e dans la section Op rations rela
173. es donn es est fondamentale elle n cessite une r flexion pr alable sur la normalisation du contenu des champs On suppose qu un champ contient la qualit d une personne par exemple Monsieur Madame Mademoiselle Si l on trouve dans ce champ Mr la place de Monsieur il est clair que les recherches sur ce champ par le contenu Mon sieur risquent d tre erron es Dans ce cas les informations seraient moins nombreuses que celles obtenues avec le contenu correct On qualifie cet tat de fait de silence qui signifie que certains r sultats pertinents sont ignor s lors d une interrogation Dans un autre cas si l on saisit Mme pour Madame et Melle pour Mademoiselle et qu il y ait eu par erreur plusieurs saisies de Mme alors qu il s agissait d une demoiselle la recherche par le contenu Mme donne cette fois plus de r sultats qu il n y a r ellement de dames On qualifie cet tat de fait de bruit qui signifie que certains r sultats non 1968 2005 1978 Ann e Dreyfus Chet Baker Two a day 3 Columbia Thelonious Monk Underground 2 Nocturne Olivier Temime Streetwise 1 Label Musicien Titre NumCD Nombre entier sup rieur 1 Cha ne de caract res de taille 50 Nombre entier sup rieur 1900 et inf rieur l ann e en cours Cha ne de caract res de taille 30 Cha ne de caract res de taille 20 4 Cr atio
174. es sont de type 1 1 Association Transporte V hicule un v hicule peut il n avoir jamais livr de pizzas et peut il en avoir livr plusieurs Dans ce cas la situation n est pas tout fait la m me que pour les livreurs On peut imaginer que les informations concernant un v hicule pourraient tre ins r es dans la base de don n es sans que le v hicule n ait encore effectu une livraison 0 Si c tait le cas on aurait des cardinalit s de type 0 n On choisit ici des cardinalit s associ es de type 1 n Dans les deux cas un v hicule est suppos tre utilis pour livrer plusieurs n commandes Commande une commande peut elle avoir t livr e par plusieurs v hicules ou par aucun Une commande est livr e par un 1 et un 1 seul v hicule Les cardinalit s asso ci es sont de type 1 1 On obtient le mod le entit association suivant voir figure 5 2 Figure 5 2 Mod le entit association Livraisons de pizzas avec cardinalit s Cependant si cela est possible on pr f re cependant viter les associations autres que binai res plus complexes transformer en relations De plus le mod le UML ne propose pas de solution tr s coh rente pour repr senter les associations ternaires ou de plus haut degr Remarque Toutes les associations qui lient l entit commande sont de cardinalit 1 1 On aurait pu ainsi consid rer l entit comm
175. es utilisateurs qui ont plusieurs r les disposent des droits de tous les r les auxquels ils appartiennent Ainsi l utilisateur miller poss de les droits suivants sur la table INSERT UPDATE SELECT Pour retirer les droits accord s par l instruction GRANT on utilise l instruction REVOKE Elle est de la forme suivante REVOKE lt type de droit gt ON lt objet gt FROM lt nom utilisateur gt 165 Pr servation des donn es 6 Chapitre Pour retirer les droits de l utilisateur nhop sur la table jaco on proc de comme suit REVOKE SELECT ON jaco FROM nhop Les droits donn s par plusieurs utilisateurs sont cumulatifs Cela signifie que tous les droits accord s doivent tre retir s pour qu un utilisateur ne puisse plus effectuer les op rations Ce graphe de permissions n est pas toujours simple g rer et devient rapide ment de taille exponentielle Par cons quent les administrateurs des SGBD ont tendance accorder parcimonieusement les possibilit s de redistribuer des droits Pour aider l administrateur un bon SGBD procure une option de l instruction de destruc tion d un utilisateur capable de d truire galement tous les objets qu il a cr s L instruc tion DROP USER non normalis e par SQL comme on l a vu pr c demment s utilise avec l option CASCADE pour d truire les tables les vues et autres que l utilisateur a cr s 2 3 UTILISA
176. escription d une hor rible cuisine dans le monde r el Ces couples de valeurs choisis repr sentent les faits de la vie r elle r frig rateur rouge robot mauve cuisini re jaune lave vaisselle rouge Cet ensemble de couples de valeurs li es entre elles que l on nomme tuples dans le mod le relationnel repr sente la relation entre les l ments appareil et couleur Un tuple est aussi d sign par les termes nuplets ou enregistrements On d signe ga lement les l ments constitutifs de ces couples par les termes attributs ou champs On peut crire formellement la relation de la mani re suivante ma_cuisine appareil couleur Cette criture repr sente le sch ma relationnel de la relation ma_cuisine Les valeurs nonc es pr c demment pour les champs repr sentent leurs domaines c est dire les ensembles de toutes les valeurs possibles pour un champ Une relation est totalement d crite par le sch ma relationnel les domaines des diff rents champs les tuples qui la constituent Le nombre de champs de la relation s appelle son degr de la relation Ici la relation ma_cuisine est de degr 2 Le nombre de tuples se nomme la cardinalit de la relation La relation ma_cuisine est de cardinalit 4 Attention il ne s agit pas de la m me cardinalit que pour le mod le entit association vu pr c demment On repr sente
177. ession afficher le type des voitures de couleur rouge qui est une projection et une s lection sur la relation voiture peut s crire sous la forme t voiture _ _ t rouge Cette fois on utilise une constante rouge dans l expression pour fixer la valeur d un champ et la variable t pour les valeurs du champ recherch es On peut exprimer l appartenance d un champ un ensemble par un crit re L expression afficher les prix de vente sup rieurs 10 000 qui est une projection et une s lection sur la relation vente peut s crire sous la forme p vente _ p _ _ p gt 10000 Enfin la jointure entre deux relations est galement possible L expression afficher le type des voitures vendues et leur prix qui met en jeu deux relations peut s crire sous la forme t p nv voiture nv _ t _ vente _ p _ nv Il suffit d utiliser la m me variable dans les deux relations ici nv pour le champ NumVoit qui sert effectuer le lien Le quantificateur permettra de ne s lectionner que les tuples dans les deux relations pour lesquels les valeurs de NumVoit sont identi ques ce qui est exactement la d finition d une jointure quijointure Le formalisme de la logique du premier ordre permet d exprimer toutes les op rations relationnelles vues pr c demment c est normal puisqu il s agit de la ba
178. est plus int ressant que UTF 16 Dans le cas de langues asiatiques UTF 16 est plus appro pri Le plus conomique est sans doute la norme ISO 8859 mais cela est valable condi tion que la table utilis e soit suffisamment compl te pour les donn es consid r es Un bon compromis est la norme Unicode cod e en UTF 8 qui permet de repr senter tous les caract res tout en tant conome en place Ordre de tri et collation Le codage de caract re consiste associer un code une lettre Par exemple on affecte le code 1 la lettre a le code 2 la lettre b et ainsi de suite Pour trier il suffit alors de mettre les lettres dans l ordre des codes Que se passe t il si dans notre code la lettre a est cod e en majuscules et en minuscules Si la lettre A a le code 30 dans notre codage le tri par ordre croissant des num ros va se faire d abord par lettres minuscules puis par lettres majuscules De m me si notre codage affecte le num ro 50 la lettre accentu e elle va se retrouver la suite des majuscules et non pas au m me niveau que la lettre a Afin de pouvoir effectuer le tri correctement il faut disposer d une table de corres pondance qui indique que les codes 1 30 et 50 de notre codage doivent se trouver au m me niveau dans le r sultat du tri On appelle cette table de correspondance la collation elle sera en g n ral diff rente suivant la langue employ e Choix du je
179. eur la d marche serait plus complexe EXERCICE 4 AGR GATS ET S LECTION La m thode conseill e dans ce chapitre est d aborder la question en d composant le pro bl me Pour calculer le chiffre d affaires il faut d abord regrouper les commandes par pizza et ensuite effectuer le calcul La notion de regroupement sugg re l emploi des agr gats Le nom de la pizza est directement accessible dans la table commande Pour v rifier combien de commandes ont t pass es par pizza on les compte SELECT commande NomPizza COUNT AS NombreCommande FROM commande GROUP BY commande NomPizza Pour calculer le prix on a besoin du prix de base qui se trouve dans la table pizza et du coefficient qui se trouve dans la table tarification SELECT commande NomPizza COUNT AS NombreCommande SUM pizza prix tarifica tion coefficient AS TotalCommande FROM commande JOIN pizza JOIN tarification ON commande Taille tarification Taille AND commande NomPizza pizza NomPizza GROUP BY commande NomPizza ORDER BY TotalCommande On trie le r sultat en utilisant le champ calcul TotalCommande L op ration de tri se fait donc apr s les op rations de jointures d agr gation et de calculs Il est possible de r aliser une s lection sur le r sultat final de cette op ration en ne consid rant que les pizzas dont le chiffre d affaires d passe le nombre 200 On n emploie pas dans ce cas le mot cl WHERE qui
180. eur capable d inclure dans le r sultat les lignes de la table voiture qui n ont pas de correspondance dans la table vente par rapport aux valeurs de la colonne NumVoit sans qu il s agisse d un produit cart sien cette op ration sp cifique se nomme la jointure externe L op rateur SQL de jointure externe s exprime par le mot cl OUTER JOIN Cette op ra tion n est pas sym trique soit on inclut toutes les lignes d une table soit toutes celles de l autre On pr cise cela l aide des mots cl s LEFT et RIGHT ou en inversant simplement l ordre des tables dans l expression de l instruction de jointure Dans la requ te qui suit toutes les lignes de la table voiture seront affich es y compris celles pour lesquelles la colonne NumVoit n a pas de correspondance dans vente les colonnes issues de vente ne pourront alors tre mises en correspondance et auront la valeur NULL SELECT voiture NumVoit vente NumVoit voiture Marque voiture Couleur vente Prix FROM voiture LEFT OUTER JOIN vente ON voiture NumVoit vente NumVoit Si l on op re la requ te en inversant l ordre des tables ou en employant le mot cl RIGHT on obtient la m me r ponse que pour la requ te d qui jointure ci dessus Cela signifie qu il n y a pas de lignes dans vente dont le contenu de la colonne NumVoit ne poss de pas de correspondance dans la colonne NumVoit de
181. eur de la base de donn es qui d finira des identifiants et leur affectera des droits de mani re totalement ind pendante du syst me d exploitation Ces informations seront stock es dans le dic tionnaire de donn es du SGBD Il est possible d acc der au SGBD ventuellement dis tance sans poss der de compte sur la machine qui l h berge L administrateur du SGBD doit donc g rer avec le plus grand soin ces identifiants afin qu ils deviennent pas un moyen de p n trer dans le syst me d exploitation en cas de faille dans le SGBD 2 1 SQL ET LA GESTION DES UTILISATEURS Les instructions qui permettent d affecter les droits sont d finies dans la norme SQL Comme pour les autres l ments de la norme les diteurs ne les ont pas toujours int gr es totalement dans leurs produits l inverse ils ont souvent ajout des instructions qui ne figurent pas dans la norme pour g rer ces droits Classiquement pour prot ger une res source on commence par en interdire l acc s tous Puis on d crit ceux qui sont autoris s l utiliser utilisateurs On associe ensuite chaque utilisateur un identifiant mot de passe pour viter les emprunts d identit Dans le principe SQL ne consid re pas r ellement la notion d utilisateur pour le SGBD tel qu on le con oit au sens d un syst me d exploitation On peut envisager l utilisation de plusieurs identifiants associ s au m me nom cela correspondra
182. eurs en cas notamment de changement de machine la suite d une panne de Romazava La vie sans mode d emploi 2 Les ditions du temps qui ne passe pas Le vide 1 Editeur Auteur Titre Cote Charles Atamp Dal Durand Pr nom Nom Anne Isabelle Paclaire Romain Ch teau Jean Marie Duporche Alexis Brass Pr nom Nom 9 Introduction aux bases de donn es 1 Chapitre modification de localisation d augmentation de la taille de la base d ajouts d ordina teurs sur le r seau afin d augmenter la capacit de stockage de la base de donn es Figure 1 6 Base de donn es r parties Ces technologies poss dent n anmoins des inconv nients La s curit sur les r seaux informatiques n cessite beaucoup plus de travail que dans le cas d un syst me non r parti Les techniques de s curit mettre en uvre sont plus complexes et plus co teuses Extraction d informations non explicitement stock es dans une base de donn es Il existe deux mani res de cr er de la nouvelle information partir de l information stock e explicitement dans une base de donn es Soit on est capable d noncer des r gles pr cises de constitution de l information partir du sens m me des donn es soit on uti lise des m thodes d analyse afin de trouver des corr lations sur un volume de donn es important ce qui permet ensuite d en d duire des r gles La premi re possib
183. eux de l association et comme cl celles des entit s associ es Locations DateLoc NbeJourLoc Livraison NumFilm NumClient Reservations DateRes NbJourRes NumFilm NumClient Joue NumPers NumFilm Realise NumPers NumFilm Prix Format 29 5 4 3 9 3333 16 9 partir du mod le entit association mod lisant une location de DVD effectuez le pas sage au mod le relationnel voir figure 3 53 Figure 3 53 Mod le entit association de la location de DVD Client NumClient NomClient PrenomClient AdresseClient TeleClient Compte Film NumFilm Titre Genre Prix NbDVD Reservation NumPers NomPers PrenomPers Personnel Joue Realise Location NbeJourRes DateRes NbeJourLoc DateLoc 1 n 0 n 0 n 0 n 0 n 0 n 0 n 1 1 Figure 3 52 Agr gat sur la relation Film 90 Cr ation de bases de donn es On remarque que l association Realise a une cardinalit de type 1 1 lors de son associa tion avec Films Cela signifie dans le monde r el qu un film a un et un seul r alisateur On est dans le cas o l association Realise est absorb e par la relation cr e partir de l entit associ e ici Film On obtient la relation suivante Films NumFilm Titre Genre Prix NombreDVD NumPers et la relation Realise dispara t On peut noter que les cl s des relations cr es partir des associations
184. ex_NumCommande ON commande NumCommande ASC La cr ation des tables ne peut pas se faire dans n importe quel ordre Il faut d abord cr er les tables auxquelles ont fait r f rence puis seulement ensuite les autres tables En d autres termes on ne pourra cr er la table commande qu apr s avoir cr les tables client pizza livreur et vehicule La destruction des tables se fait logiquement dans l ordre inverse on ne peut d truire une table qui est r f renc e par une autre table C est le SGBD qui r alise ces v rifications 141 Du langage parl SQL 5 Chapitre 4 Interrogation de la base de donn es Cette section aborde la mani re de passer d une question en langage parl la requ te SQL conduisant au r sultat L ensemble des questions n est videmment pas exhaustif on a effectu un choix qui permet de mettre en valeur certains points jug s int ressants On utilise galement ces questions pour porter un regard sur les repr sentations choisies et v rifier qu elles sont bien adapt es Le sujet de l optimisation des requ tes en fonction du SGBD choisi n est pas trait car il d passe largement le cadre de cet ouvrage 4 1 MENU On veut extraire les donn es qui servent imprimer la carte ce qui signifie que l on veut disposer du nom de chaque pizza de son prix et des ingredients qui la composent Pour ce faire on commence par identifier
185. grouper dans des objets L tape suivante consiste caract riser les liens qui les unissent cette fin on d crit le syst me mod liser par des phrases simples de type sujet verbe compl ment que l on peut classer en deux gran des cat gories celles qui d crivent les objets du monde r el et les liens qui les unissent le sujet et le compl ment sont repr sent s par des entit s classes et le verbe est repr sent par une association celles qui d crivent la mani re dont sont reli s ces objets on en d duira les cardinalit s ou multiplicit s dans le cas d utilisation d UML des associations Les entit s sont constitu es de champs de donn es que l on nomme attributs Pour identifier de mani re unique les repr sentants d une entit appel s galement instance un attribut ou un ensemble d attributs est choisi on l appelle identifiant Une fois les l ments mod liser identifi s leur repr sentation normalis e recourt diff rents langages Les deux types de formalismes les plus courants employ s sont les suivants Le mod le entit association Il a fait ses preuves sa notation est tr s intuitive et il est encore couramment utilis UML Unified Modeling Language Il repr sente probablement l avenir car il est soutenu par une communaut tr s importante qui d passe celle des bases de donn es Il offre l avantage d tre bi
186. ha ne de caract res renseigner obligatoirement Type cha ne de caract res renseigner obligatoirement Table ingredient NumIngre code simple de type entier NomIngr dient cha ne de caract res renseigner obligatoirement Table commande NumCommande code simple de type entier DateCom type date renseigner obligatoirement Taille cha ne de caract res renseigner obligatoirement Retard cha ne de caract res renseigner obligatoirement CodeLivreur code simple de type entier NumImmat cha ne de caract res NumClient cha ne de caract res NomPizza cha ne de caract res Table compose NumIngre code simple de type entier NomPizza cha ne de caract res renseigner obligatoirement Contraintes d int grit Les contraintes permettent de d crire de mani re plus pr cise les ensembles auxquels appartiennent les champs Intervalle Le champ Prix de la table pizza peut tre limit l intervalle 1 30 On pourrait d finir un intervalle de validit pour les dates de commande champ DateCom de la table commande par exemple la date de commande doit tre sup rieure ou gale la date du jour num ration Le champ Retard de la table commande doit contenir les valeurs O ou N Le champ Taille de la table commande doit contenir les valeurs naine humaine ou ogresse Comme il
187. hamp cat gorie Utilise t on le langage de description de donn es ou le langage de manipulation de donn es Que se passerait il si l on voulait augmenter la taille du champ cat gorie Vous devez repr senter l organisation de donn es correspondant une classification scientifique d esp ces d oiseaux Quel mod le de donn es hi rarchique r seau relation nel objet choisiriez vous Est il possible de faire r aliser toutes les tapes de la conception d une base de donn es par une m me personne Si oui quelles sont alors ses comp tences minimales 24 Cr ation de bases de donn es EXERCICE 6 UTILISATEURS D UNE BASE DE DONN ES 1 Un utilisateur final par exemple un vendeur muni des droits appropri s peut interve nir sur le contenu des donn es 2 Pour cette op ration cela d pend s il s agit d une convention ou si cela est entr au niveau des contraintes du SGBD Dans le premier cas un utilisateur final peut s en charger dans le second il faut recourir au concepteur ou l administrateur de base de donn es 3 Pas d ambigu t ici car on touche la structure m me des donn es cela est du ressort du concepteur ou de l administrateur de base de donn es 4 Il s agit du domaine du programmeur d application qui r cup re les donn es en utili sant le SGBD et qui les traite dans un programme pour leur donner leur forme finale 5 Un utilisateur final par exe
188. hamp concern par le calcul Ici il s agit d une expression constitu e partir du prix et du coefficient Il est pr f rable de pr fixer les noms de champ par le nom de la table d o ils proviennent pour viter les ambi gu t s et faciliter la lecture ult rieure de la requ te Les ambigu t s sont signal es par le SGBD qui refuse d ex cuter la requ te On aurait pu crire les jointures en utilisant classiquement un produit cart sien et une s lection Dans ce cas les expressions qui servent la jointure sont m lang es celles qui servent faire la s lection dans la clause WHERE De plus la requ te est effectu e de mani re beaucoup moins efficace par le SGBD cela est nettement perceptible lorsque l on dispose de tables de taille importante SELECT SUM pizza prix tarification coefficient AS PerteRetard FROM commande pizza tarification WHERE commande NomPizza pizza NomPizza AND commande Taille tarification Taille AND commande retard O Les deux tables r sultat sont des tables qui poss dent une seule ligne et une seule colonne On peut utiliser ces valeurs par exemple pour faire une comparaison voir l un des exercices suivants en les associant par un produit cart sien la table sur laquelle on veut effectuer la comparaison EXERCICE 3 CODE SQL ET SIGNIFICATION Cette requ te SQL donne t elle un r sultat Si oui que signifie t il SELECT client NomClient livreur NomLivreur
189. herche qualifier les liens trouv s Il faut tenir compte du fait que le lien est tou jours double sens Par exemple un client emprunte plusieurs DVD Un DVD est emprunt plusieurs fois ou n est jamais emprunt par un client Pour obtenir ce r sultat quelles questions faut il se poser et quelles questions doit on poser aux acteurs de l organisation D crivez l activit globalement en termes simples sans entrer dans les d tails pour identifier les objets et leurs liens ventuels Indiquez quelles sont les proc dures utilis es dans l activit pour caract riser les liens entre les objets Les proc dures permettent d noncer les contraintes qui seront int gr es ensuite dans la base de donn es On note que l on mod lise souvent des actions qui repr sentent une activit plus rare ment des l ments statiques Les actions repr sentent fr quemment le lien entre les objets une personne emprunte un DVD une voiture est achet e par un client etc 1 3 NOTION DE TEMPS Le temps est une notion importante une base de donn es mod lise des actions qui ont lieu durant une p riode de temps Il faut toujours avoir l esprit cet aspect pour viter des erreurs de conception Une erreur classique est de confondre l aspect simultan d une action avec la possibilit de la r it rer durant la p riode concern e Lorsque l on sp cifie qu un livre peut tre emprunt plusieurs fois
190. iation 30 hi rarchique 5 logique 68 objet 6 7 relationnel 6 56 relationnel objet 7 8 r seau 5 Multivaluation 70 N Niveau 5 15 conceptuel 15 externe 5 15 interne 15 logique 5 physique 5 15 O Objet 7 28 29 Op rations agr gat 67 103 diff rence 61 quijointure 63 intersection 61 83 jointure 63 jointure externe 108 jointure interne 106 produit cart sien 61 105 projection 62 98 restriction 63 s lection 63 101 union 60 Q QBE 76 78 R Redondance 3 4 37 38 59 72 73 136 160 Relation 56 R le 42 162 164 S Sauvegarde 15 160 SGBD 13 SQL 100 100 100 100 100 lt 101 lt 102 lt gt 101 101 gt 101 gt 102 ALTER TABLE 112 AND 102 AVG 101 BETWEEN 102 CHECK 115 COMMIT 171 CONSTRAINT 116 COUNT 101 CREATE INDEX 140 CREATE ROLE 166 CREATE TABLE 110 CREATE TEMPORARY TABLE 111 CREATE TRIGGER 173 CREATE VIEW 116 DELETE FROM 117 DISTINCT 99 DROP TABLE 112 DROP TRIGGER 173 GRANT 166 GROUP BY 103 HAVING 104 IN 102 INNER JOIN 106 INSERT INTO 116 IS NULL 102 LIKE 102 MAX 101 Base de donn es book Page 192 Lundi 5 juin 2006 3 33 15 193 Index MIN 101 NOT 102 OR 102 ORDER BY 109 OUTER JOIN 108 PRIMARY KEY 114 ROLLBACK 171 SAVEPOINT 172 SELECT 98 START TRANSACTION 171 SUM 101 UPDATE 118 WHERE 101 T Tables 110 Transactions 169 Tri 109 Triggers 173 Type SQL BLOB 111 BOOLEAN 111 CHAR 111 DATE 111 FLOAT 111 INT 111 NCHAR
191. ilit a t formalis e et mise en uvre sous le nom de base de donn es d ductives dans le but d utiliser des m thodes semblables celles pratiqu es pour la d duction en intelligence artificielle On d finit un ensemble de r gles et on les applique aux donn es de la base l aide d un programme que l on appelle un moteur d inf rence Les SGBD qualifi s de d ductifs utilisent cet effet un d riv du langage Prolog Datalog Les relations de parent entre individus sont une bonne illustration de l utilisation des bases de donn es d ductives Intuitivement on peut appr hender le fonctionnement g n ral de ces SGBD d ductifs en consid rant l exemple suivant On suppose que l on a une base de donn es qui repr sente les relations p re fils voir figure 1 7 Une r gle tr s simple permet de d finir un lien de parent anc tre Si p re fils X Y et p re fils Y Z alors anc tre X Z La seconde possibilit d obtenir l information nouvelle partir de l information existante rel ve des m thodes dites de fouilles de donn es ou data mining Ce type d exploi tation des bases de donn es a connu un grand succ s ces derni res ann es par l analyse de grands volumes de donn es afin d identifier des corr lations entre des valeurs de champs Par exemple les personnes moustachues de plus de quarante ans habitant une maison individuelle lisent plut t des revues
192. ion et les syst mes d information Cet ouvrage propose une d marche progressive ceux qui veulent concevoir un syst me d information robuste et volutif en vitant les cueils classiques qui conduisent rendre les donn es inutilisables Toutes les tapes de la r alisation d une base de donn es de l analyse pr alable au choix du codage des carac t res sont tudi es et illustr es par des exemples Le livre pr sente plus particuli rement la mod lisation du monde r el au moyen du mod le entit association le passage au mod le relationnel et la mise en uvre du syst me ainsi con u l aide du langage SQL Une tude de cas r capitulative permet ensuite d appliquer les notions pr sent es dans les cha pitres pr c dents Le dernier chapitre traite de la s curisation des donn es notament au moyen des transactions et des triggers Les exercices qui occupent la moiti du livre sont int gralement corrig s a n que le lecteur mette progressivement en uvre ses connaissances Par ailleurs les donn es et les scripts SQL utilis s tant pour les exemples que pour les exerci ces sont disponibles l adresse www pearsoneducation fr Le livre s adresse aux tudiants de premier et de second cycles IUT BTS univer sit s et coles d ing nieurs qui d butent l apprentissage des bases de donn es Il sera galement utile aux professionnels qui veulent mettre en pla
193. ion pour cr er l entit auteur On choisit donc n Pour d terminer les cardinalit s du c t de l entit personne Une personne peut elle ne pas avoir crit de livre Si c est le cas la valeur minimale sera de 0 sinon elle sera de 1 On choisit 0 une personne peut ne pas tre un auteur Une personne peut elle tre l auteur de plusieurs livres Si c est le cas la cardinalit maximale sera de n sinon elle sera de 1 On choisit n un auteur peut crire plu sieurs livres Figure 2 22 Entit s livre ouvrage personne li es par les associations emprunte a_ crit et est_un_exemplaire avec cardinalit s EXERCICE 4 DESCRIPTION DU MONDE R EL PARTIR DES CARDINALIT S On consid re le sch ma entit association muni de ses cardinalit s qui d crit une partie de l organisation de s minaires voir figure 2 23 Figure 2 23 Entit s s minaire th me intervenant li es par les associations traite est_responsable et intervient avec cardinalit s Ouvrage Cote ISBN Personne NumLecteur Nom Pr nom Adresse Emprunte DateEmprunt Titre ISBN diteur Livre Est un exemplaire A crit 0 n 1 n 1 1 0 n 1 n 1 n Th me NumTh me Libell S minaire NumS minaire DateSem NbeJours NbeInscrits Pr
194. ique Pour cette raison on pr fixera le nom de la colonne par le nom Lille 20 0000 Lyon 34 0000 Paris 70 5000 Marque Compte Peugeot 2 Renault 2 Remarque Le mot cl HAVING permet d effectuer une s lection sur le r sultat de l op ration de groupage Le mot cl WHERE op re une s lection sur les l ments lignes de la table avant l op ration de grou page Marque Compte Citroen 1 Opel 1 Peugeot 1 Renault 2 Ville Moyenne_Age Calcul du nombre de voitures par marque de la table voiture dont le nombre est sup rieur 1 Calcul du nombre de voitures par marque de la table voiture dont la couleur est Rouge 105 SQL 4 Chapitre de la table Pour des questions de lisibilit il est pr f rable de le faire syst matiquement pour toutes les requ tes m me si ce n est pas absolument n cessaire SELECT voiture Marque voiture Couleur FROM voiture Cette notation peut devenir rapidement fastidieuse si le nombre de tables est lev et si leurs noms sont longs Dans ce cas on d signe la table par un alias plus commode qui peut tre r duit une simple lettre plut t que par son nom complet L alias est indiqu simplement la suite du nom de la table ou l aide du mot cl AS qui est optionnel SELECT Vo Marque Vo Couleur FROM voiture AS Vo Produit cart sien Le produit cart sien est la combinaison de toutes les lignes d une
195. iser la gestion des r servations Les chambres propos es dans les deux tablissements sont de trois types simples 50 jour doubles 65 jour et royales 150 jour Dans chacun des deux h tels les chambres sont num rot es en fonction de l tage les chambres en rez de chauss e portent les num ros 001 002 les chambres du premier tage portent les nu m ros 100 101 ainsi de suite Les r servations sont centralis es Saint Robert au 0800 800 800 et un employ est charg de r pondre au t l phone pour les deux tablissements Lorsqu un client r serve une chambre s il n est pas r f renc on lui demande son nom son pr nom son num ro de t l phone ainsi que son adresse 155 Du langage parl SQL Exercices 5 Chapitre Les num ros de chambres ne peuvent pas constituer un identifiant de l entit Chambre dans la mesure o les deux h tels poss dent des chambres ayant le m me identifiant En cons quence il convient d ajouter un identifiant unique suppl mentaire l entit Cham bre La p riode de r servation mod lis e l aide d une date de d but et d une date de fin d pend fonctionnellement de la chambre et du client Le nombre de jour sera d duit partir de ces donn es l aide d un traitement informatique afin de proc der la factura tion du s jour Le type de chambre d terminant le prix de la chambre une entit suppl mentai
196. ises jour intensives on peut pr voir de conserver plusieurs versions de la base sauvegard e Aspects humains Les machines et les r seaux aussi performants soient ils sont g r s avant tout par des tres humains Il est donc essentiel de savoir combien de personnes assurent cette mission et de quelle fa on d identifier la politique de s curit g n rale acc s physique aux machines protection contre les intrusions r seau et le suivi des inci dents mise jour des machines gestion des comptes EXERCICE 2 DISPONIBILIT DES DONN ES La haute disponibilit n cessite que l acc s aux donn es soit d une part permanent et d autre part performant Afin de garantir que les donn es soient disponibles en perma nence on doit effectuer des copies intervalles r guliers des donn es qui proviennent d une base de donn es primaire vers des bases de sauvegarde secondaires En cas de panne du primaire on peut basculer rapidement vers l un des secondaires L id al est de disposer de plusieurs secondaires dans des lieux g ographiquement loign s situ s sur des r seaux informatiques diff rents Disposer en outre d un acc s performant suppose que l on utilise galement les secondai res pour faire de la r partition de charge Le syst me de r partition choisi doit tenir Quelles sont les v rifications de base indispensables avant de faire h berger un SGBD ser veur de bases de donn es
197. istrements et l volution de la structure de la base sont galement des op rations lourdes mettre en uvre elles requi rent souvent la recopie compl te des informations dans un nouveau fichier Cette section nous permet de comprendre pourquoi on utilise pr f rentiellement des SGBD pour g rer les donn es Toutes ces fonctionnalit s et bien d autres que nous allons d tailler sont int gr es dans le logiciel Acc s s quentiel Fichier Index Fichier 15 Introduction aux bases de donn es 1 Chapitre 3 2 FONCTIONNALIT S D UN SGBD De m me que l ISO a d termin un mod le th orique en sept couches pour distinguer les applications r seaux et leurs interactions il existe d sormais un mod le th orique en trois couches trois niveaux d abstraction afin de concevoir et d organiser les fonctionnalit s des SGBD Ce mod le est labor par la commission SPARC de l ANSI c est l architec ture ANSI SPARC voir figure 1 12 Cette derni re qui date de 1975 s inscrit dans les concepts et th ories de la premi re g n ration des bases de donn es dont l objectif est d avoir une ind pendance entre les donn es et les traitements Niveau interne ou physique C est le niveau le plus bas On d crit les structures de stockage de l information ce qui le rend tr s d pendant du SGBD employ Il se fonde sur un mod le de donn es physique Niveau conceptuel Il corresp
198. it des donn es Faire en sorte que l information r sultant des liens entre les donn es soit coh rente Il peut apporter galement des fonctionnalit s suppl mentaires utilis es dans le cadre de bases de donn es r parties d crites pr c demment R plication des donn es Copie automatis e de sauvegarde Sch ma conceptuel Niveau externe Niveau interne Mod le physique SGBD Utilisateurs Vues Mod le conceptuel 16 Cr ation de bases de donn es Virtualisation des donn es Masquage de la distribution g ographique des donn es Haute disponibilit des donn es Duplication de la base de donn es sur diff rents sites pour diminuer la distance client serveur et la charge des serveurs Le but principal de l utilisation d un SGBD est de masquer la repr sentation physique des donn es et les m thodes d acc s que l on vient de voir pr c demment Cependant les m canismes de cr ation d indexation et de recherche sous jacents sont globalement les m mes videmment pour des questions d efficacit les SGBD utilisent leur propre ges tion de fichiers et parfois m me contournent le syst me de fichiers fourni avec le syst me d exploitation de la machine Un SGBD doit permettre galement la manipulation de la structure de la base de donn es comme l ajout et la modification de champs de mani re transparente Il conserve cet effet une description de la structure de la base
199. it grossi rement la pos sibilit d utiliser des mots de passe sp cifiques selon la ressource Il s agit donc d une logi que diff rente de celle qui consiste associer strictement un mot de passe un compte et lui procurer des droits sur les ressources La norme SQL consid re que c est l objet Base originale H bergement 3 Recopie des donn es R partition amp redondance Recopie des donn es Recopie des donn es H bergement 3 H bergement 2 162 Cr ation de bases de donn es prot ger qui est au centre du processus les droits d utilisation de cet objet sont ensuite affect s des couples de types nom identifiant Le SGBD stocke les informations suivantes pour chaque objet qu il contient Le type de droit S lection cr ation destruction L objet sur lequel s appliquent les droits Une base de donn es une table une vue Le nom de l utilisateur L identifiant au sens du mot de passe Le donneur des droits Compte tenu de la remarque pr c dente les diteurs int grent souvent la notion plus clas sique d utilisateur dans un SGBD Ce dernier permet en g n ral de distribuer des autori sations un ensemble d utilisateurs qui constituent ainsi un groupe Les t ches de gestion en sont facilit es mais les groupes qui repr sentent l organisation de l entreprise sont parfois complexes g rer L affectation de d
200. ix Traite NumInter Nom Pr nom Intervient Anime 0 n 0 n 1 1 1 n Est_responsable Prime 0 n 1 1 Salaire NbeHeures 48 Cr ation de bases de donn es Un s minaire traite d un th me et d un seul cardinalit 1 1 Un th me peut tre trait par aucun s minaire ou par plusieurs cardinalit 0 n Un s minaire a un intervenant au minimum cardinalit 1 n Un intervenant peut inter venir dans plusieurs s minaires ou aucun cardinalit 0 n Un s minaire a toujours un responsable et un seul cardinalit 1 1 Un intervenant peut n tre responsable d aucun s minaire ou l tre de plusieurs cardinalit 0 n EXERCICE 5 ASSOCIATION INUTILE On identifie ais ment les entit s parasite et h te comme les sujets ou les compl ments des phrases de type sujet verbe compl ment qui d crivent le syst me Les cardinalit s seront de type 1 1 de chaque c t chaque h te est associ de mani re unique un parasite et inversement Les associations de cardinalit s 1 1 de chaque c t sont g n ra lement inutiles il est pr f rable de les remplacer par une entit unique m me si l on perd en lisibilit au niveau du sch ma On fusionne les entit s parasite et h te en une seule entit cosyst me voir figure 2 24 Figure 2 24 Entit s parasite h te li es par l association utilise et fusion en une entit unique Qu
201. ix NbeJour Anime NumInter NumSem NbeHeure SalaireHor Est_responsable NumInter NumSem Prime L une des cardinalit s de l association Est_responsable est de type 1 1 car un s minaire poss de un responsable et un seul De cette derni re propri t on peut en d duire que la cl de la relation Est_responsable n est pas minimale En effet pour la relation Est_responsable l identifiant du s minaire d termine celui du responsable En d autres termes on identifie une d pendance fonctionnelle entre les champs NumSem et NumInter pour la relation Est_responsable On choisit le champ NumSem comme cl de la relation Est_responsable La relation Est_responsable devient ainsi Est_responsable NumSem NumInter Prime Les relations Est_responsable et Seminaire ont alors la m me cl et il est possible de les regrouper On obtient la relation Seminaire_Res NumSem DateSem Prix NbeJour NumIn ter Prime Il s est produit une sorte de glissement des l ments de l association Est_responsable vers l entit Seminaire On peut en d duire une r gle compl mentaire des r gles g n rales pr c dentes Lorsque l association entre deux entit s comprend une cardinalit de type 1 1 on ne cr e pas de relation pour l association Les champs de l association seront int gr s la Seminaire NumSeminaire
202. izza TO gestionnaire GRANT INSERT ON pizza TO gestionnaire On distribue les r les des utilisateurs swallow et clarke sont des clients GRANT client TO swallow clarke gomez et pattitucci sont des employ s GRANT employe TO gomez pattitucci pastorius est un gestionnaire GRANT gestionnaire TO pastorius EXERCICE 5 VUES On remarque que les informations dont ces utilisateurs ont besoin ne sont pas directe ment disponibles dans une table ni m me dans un champ particulier Il s agit de r sultats de calculs sur l ensemble de la base de donn es Le moyen le plus simple pour g rer ces besoins est de cr er des vues pour chaque cat gorie d utilisateurs auxquels on distribuera les permissions sur ces vues Il est videmment possible de cr er des r les d utilisateurs comme dans l exercice pr c dent ce qui est plus l gant mais n est pas support par tous les SGBD De nouveaux utilisateurs aux besoins plus sp cifiques vont utiliser la base de donn es de livraison de pizzas vue au chapitre 5 Du langage parl SQL Le service comptabilit doit r mun rer les livreurs il a besoin de conna tre le nom bre de commandes livr es par chacun d eux Le service du personnel effectue un suivi des livreurs il a besoin de conna tre le nombre de retards de chacun mais galement le nombre de commandes livr es
203. jour les donn es de la table commande mais galement celles de la table client pour cr er de nouveaux clients le cas ch ant Ils ont acc s en lecture toutes les donn es des autres tables Enfin les gestionnaires de l activit doivent pouvoir mettre jour toutes les informa tions de gestion en particulier celles sur les pizzas les clients les livreurs et les voitures utilis es En revanche on peut consid rer qu ils n ont pas besoin de modifier les infor mations concernant les commandes mais qu ils doivent pouvoir y acc der en lecture Lors de la conception d une base de donn es on doit envisager d s le d but les diff rentes cat gories d utilisateurs qui vont l utiliser On consid re l exemple complet livraison de pizzas trait au chapitre 5 Du langage parl SQL Quels niveaux d utilisation des donn es doit on pr voir On se limite aux grandes cat gories 178 Cr ation de bases de donn es On r sume dans un tableau voir tableau 6 1 les droits par cat gories sur les tables par criture on entend mise jour insertion et destruction Figure 6 1 Synth se des droits par cat gories de la base de donn es pizza EXERCICE 4 GESTION DES DROITS Si le SGBD le supporte la solution la plus l gante est d utiliser les r les On cr e un r le par cat gorie et on lui affecte les permissions Il suffira ensuite de donner ce r le aux utili
204. l intersection de ma_cuisine sa_cuisine V rifiez par la m me m thode que sa_cuisine ma_cuisine peut s crire sa_cuisine sa_cuisine ma_cuisine et que l op ration est sym trique bien que l op ration de diff rence ne le soit pas EXERCICE 5 PROJECTION Il s agit simplement d une projection sur les champs voir figure 3 40 Film_proj Prix Type Cette projection permet de mettre en vidence que Prix et Type n est pas une cl candi date car il y a un doublon le tuple 12 Noir Blanc Appareil Couleur R frig rateur rouge Robot mauve Appareil Couleur Cuisini re jaune Trouver le prix et le type de tous les films de la relation Film vue pr c demment Peut on en d duire que Prix amp Type est une cl candidate c est dire que toute combinai son des valeurs du prix et du type d un film permet d identifier un film Prix Type 12 Couleur 4 Noir Blanc 12 Couleur 35 Noir Blanc 12 Noir Blanc Figure 3 39 Op ration sur les relations ma_cuisine et sa_cuisine Figure 3 40 Projection de la relation Film 85 Approche relationnelle Exercices 3 Chapitre EXERCICE 6 RESTRICTION Il s agit de r aliser une restriction sur les tuples dont le champ Type contient Noir Blanc on fait ensuite une projection sur le champ Prix voir figure 3 41 On obtient une relation de
205. l ordre de leur arri v e Si l on augmente le nombre d utilisateurs ce type de probl mes peut videmment se multiplier Verrous On a donc besoin de disposer d un m canisme qui garantisse une certaine exclusivit sur les donn es lors des op rations de mise jour Un tel m canisme existe depuis long temps en informatique pour r soudre ce probl me il s agit des verrous L id e est simple on bloque une ressource pour effectuer les op rations et on la lib re d s que les op rations sont effectu es Cette m thode semble r soudre le probl me elle pr sente cependant quelques pi ges et doit tre utilis e avec prudence En effet on peut rapidement parvenir une situation de blocage que l on nomme treinte fatale deadlock en anglais ou parfois Pastorius consultation du prix de vente 9 700 Prix de vente Nhop promotion et modification du prix de vente Prix Prix 100 9 600 Prix de vente Pastorius augmentation du prix de vente 10 185 Prix de vente Miller v rification du prix de vente 10 185 Prix de vente 10 085 Prix de vente attendu constat 169 Pr servation des donn es 6 Chapitre interblocage Pour illustrer cette situation on suppose que deux vendeurs veulent mettre jour la base de donn es casse L utilisateur pastorius veut ins rer une vente de voiture dans la table vente et cons tate cette occasion une er
206. l ouvrage par exemple une table ils sont entre guillemets simples Afin que la lecture soit facilit e et les confusions vit es un mot unique par chapitre a t choisi pour d signer les synonymes que constituent les termes attribut champ et colonne Le terme attribut est utilis dans le chapitre 2 pour le mod le entit association le terme champ est utilis dans le chapitre 3 pour le mod le relationnel et le terme colonne est utilis dans le chapitre 4 consacr SQL Les noms des entit s des associations et de leurs attributs sont accentu s dans le chapitre 2 alors que les noms des tables des relations et de leurs champs ne sont pas accentu s dans les chapitres 3 et 4 car ils sont utilis s directement dans le code SQL ainsi que dans les SGBD qui ne les acceptent pas syst matiquement Les mots cl s du langage SQL sont en majuscules pour les diff rencier facilement des par ties variables que sont les noms des colonnes et des tables qui sont en minuscules Dans la mesure du possible les exemples en SQL sont ind pendants du SGBD employ Ressources compl mentaires Les scripts pr sent s dans l ouvrage sont accessibles sur le site de Pearson Education France http www pearsoneducation fr diteur de l ouvrage Vous y trouverez gale ment des jeux de donn es pour les bases de donn es que l on utilise ici ainsi que les scripts de cr ation des diff rentes table
207. l est indispensable de pr ciser le nom de la table pour chaque colonne dans la mesure o les tables ont des noms de colonnes en commun de plus il peut tre int res sant de les d signer par des alias pour une simple commodit d criture Marque Couleur Prix Peugeot Rouge 10 000 Citroen Noire 70 000 Peugeot Blanche 30 000 Renault Rose 45 000 Marque Couleur Prix Nom Age Peugeot Rouge 10 000 Nestor 96 Citroen Noire 70 000 Josette 34 Peugeot Blanche 30 000 Nestor 96 Renault Rose 45 000 Irma 20 Remarque L op ration de jointure pr c dente est dite galement interne le mot cl INNER devant JOIN est pour la plupart des SGBD implicite et donc optionnel mais il faudrait crire en toute rigueur SELECT voiture Marque voiture Couleur vente Prix FROM vente INNER JOIN voiture ON voiture NumVoit vente NumVoit Construction de la jointure des tables voiture et vente sur le crit re d galit de la colonne NumVoit Construction de la jointure des tables voiture personne et vente sur les crit res d galit des colonnes NumaAch et NumVoit 108 Cr ation de bases de donn es Jointure externe OUTER JOIN L op ration de jointure interne ne permet pas de r pondre des questions du type Quelles sont les voitures qui n ont pas t vendues cette fin il nous faut utiliser un op rat
208. l y a deux mani res de proc der Soit on fait une jointure sur la table livreur pour la premi re requ te de mani re inclure le nom du livreur dans la table r sultat CREATE TEMPORARY TABLE requete1 SELECT commande CodeLivreur livreur NomLivreur COUNT AS NombreRetard FROM commande JOIN livreur ON commande CodeLivreur livreur CodeLivreur GROUP BY commande CodeLivreur ORDER BY NombreRetard SELECT requete1 NomLivreur FROM requete1 WHERE requete1 NombreRetard 0 Soit on fait la jointure lors de la seconde requ te CREATE TEMPORARY TABLE requete1 SELECT commande CodeLivreur COUNT AS NombreRetard FROM commande GROUP BY commande CodeLivreur ORDER BY NombreRetard SELECT livreur NomLivreur FROM requete1 JOIN livreur ON requete1 CodeLivreur livreur CodeLivreur WHERE requete1 NombreRetard 0 Quel est le nom du livreur qui n est jamais en retard 153 Du langage parl SQL Exercices 5 Chapitre Il est possible de regrouper ces deux requ tes en une seule La strat gie de regroupement d pendra du SGBD employ Le cas serait diff rent si l on cherchait identifier les noms des livreurs qui n ont jamais effectu de livraison L action de livraison est repr sent e par l association livre dans le mod le entit associa tion Cette association puisque de cardinalit 1 1 a disparu en tant que table et a t int gr e dans la relation commande
209. la d monstration automatique de th or mes La diff rence entre un bon math maticien et un programme est videmment que le math maticien va choisir d embl e la s rie de r gles adapt e pour parvenir plus rapidement au r sultat Voici une possibilit de r criture de la formule pr c dente a b donne a b x y mange x y mange y x meme_chaine_alimentaire x y a b donne a b x y mange x y mange y x meme_chaine_alimentaire x y a b c donne a c b c x y mange x y meme_chaine_alimentaire x y mange y x meme_chaine_alimentaire x y a b donne a b x y mange x y meme_chaine_alimentaire x y mange y x meme_chaine_alimentaire x y x y signifie que y est d fini en fonction de x on remplace y par F x On obtient ainsi deux clauses reli es par on l appelle clause de Horn qui repr sente la fin de la r criture mange x F x meme_chaine_alimentaire x F x mange F x x meme_chaine_alimentaire x F x Dans notre cas on peut s assurer assez facilement que ces deux implications sont toujours v rifi es pour le domaine du discours 5 2 LIEN AVEC LES BASES DE DONN ES Le lien avec ce qui a t nonc pr c demment sur le mod le de bases de donn es relation nelles est le suivant Le pr dicat
210. la gestion des droits d acc s qui est trait e au chapitre 6 CREATE VIEW personne_bis NumAch Nom Age AS SELECT NumAch Nom Age FROM personne Les vues permettent galement de mettre jour les tables condition que les r gles d int grit de s table s utilis es pour construire la vue soient respect es en pratique seules les vues concernant une seule table peuvent effectuer des mises jour 4 Gestion des donn es Les commandes SQL qui sont pr sent es dans cette section concernent non plus la gestion de la structure des tables mais celle des contenus On dispose classiquement de trois op rations l insertion la suppression et la mise jour pour g rer les donn es d une table L insertion se fait enregistrement par enregistrement mais cela peut se r v ler fastidieux Cependant l insertion de donn es est possible galement partir de la lecture d un fichier externe dont le format est accept par le SGBD Ces instructions d pendent donc du SGBD utilis Les op rations de suppression et de modification des donn es se font partir de crit res de s lection des enregistrements lignes modifier ou supprimer Par exemple on peut d cider de supprimer toutes les personnes qui habitent Paris Autre exemple on actualise le prix en euros de l ensemble des ventes qui ont eu lieu apr s la date du passage l euro Ces crit res s expriment de la m me mani re que pour les
211. la signifie que plusieurs utilisateurs ou applica tions peuvent acc der aux donn es en m me temps De surcro t la plupart des machines sont connect es un r seau ce qui augmente encore le nombre potentiel d utilisateurs simultan s Lecture s trange s L acc s multiple en lecture ne pose pas habituellement de probl mes mais que se passe t il lorsqu un ou plusieurs utilisateurs d cident de modifier les m mes donn es au m me moment On consid re la s quence d instructions suivante appliqu e la base de don n es casse On suppose que tous les utilisateurs disposent de tous les droits sur tous les objets tables et champs de cette base de donn es L utilisateur pastorius consulte la liste des voitures non vendues L utilisateur nhop enregistre la vente d une voiture L utilisateur pastorius relance la m me requ te et trouve un r sultat diff rent L utilisateur nhop invalide la vente de cette voiture L utilisateur pastorius pensant s tre tromp relance la m me requ te qui aboutit au r sultat initial Pour trois ex cutions de la m me requ te l utilisateur pastorius va obtenir des r sultats diff rents On peut consid rer la m me s quence ex cut e dans un ordre diff rent L utilisateur pastorius consulte la liste des voitures non vendues L utilisateur pastorius relance la requ te et trou
212. le des relations Lecteur_bis et Etablissement sur le champ Num _Etablissement 65 Approche relationnelle 3 Chapitre On peut consid rer l op ration de jointure comme une s lection sur le produit cart sien des deux relations On ne conserve que les lignes dont le contenu du champ sur lequel s effectue la jointure est gal Les lignes gris es sont celles qui sont s lectionn es lors d une jointure voir figure 3 14 Produit_cartesien_Etablissement Numero_carte Nom Num_Etablissement_1 Num_Etablissement_2 Ville Nom_Etablissement On verra au chapitre consacr SQL que c est l une des mani res d crire une jointure Jointure externe La jointure externe n est pas r ellement une op ration de base de l alg bre relationnelle Elle est cependant n cessaire pour pouvoir r pondre plus facilement des questions du type Quels sont les tablissements qui n ont pas de lecteurs Il s agit d une op ration de jointure tendue qui inclut dans le r sultat les lignes n ayant pas de correspondance sur le contenu du champ de jointure Voici le r sultat de la jointure externe de la relation Eta blissement avec la relation Lecteur sur le champ Num_Etablissement voir figure 3 15 On met en correspondance les valeurs du champ Num_Etablissement de toutes les lignes de la relation Etablissement avec celles de la relation Lecteur Numero _carte Nom Num_Etab
213. les lignes inclure dans la table r sultat Ces crit res utilisent videmment le contenu des valeurs des colonnes Le crit re de s lection est indiqu la suite du mot cl WHERE Il est constitu d expressions de conditions compos es l aide d op rateurs de comparaison et combin es l aide de connecteurs logiques Voici la liste des op rateurs de comparaison classiques permettant de constituer les expres sions en SQL voir tableau 4 3 la liste des op rateurs de comparaison sp cifiques SQL voir tableau 4 4 et la liste des op rateurs et connecteurs logiques voir tableau 4 5 COUNT Comptage du nombre d l ments lignes de la table MAX Maximum des l ments d une colonne MIN Minimum des l ments d une colonne AVG Moyenne des l ments d une colonne SUM Somme des l ments d une colonne Remarque Les fonctions statistiques s appliquent l ensemble des donn es d une colonne sauf pour la fonc tion COUNT qui s applique aux lignes de la table enti re Pour toutes ces op rations la table r sultat contiendra une seule ligne et souvent une seule colonne Prix_Moyen 38 750 000 0 Nombre_Personne 5 gal lt gt Diff rent lt Inf rieur Tableau 4 2 Op rateurs statistiques de SQL Calcul de la moyenne des prix de vente pour la table vente Calcul du nombre de personnes le nombre de lignes en r alit de la tabl
214. les qui suivent les instructions SQL sont indiqu es en majus cules afin de les diff rencier des noms de tables et de champs Les interpr teurs SQL ne diff ren cient pas les majuscules des minuscules en ce qui concerne les instructions En revanche cela d pend du syst me d exploitation utilis le nom des champs ou des tables doit en g n ral tre crit de mani re exacte Programme en langage h te Biblioth que fonctions SQL SGBD code SQL 98 Cr ation de bases de donn es Figure 4 2 Base de donn es casse 2 1 PROJECTION SELECT L op ration de projection consiste s lectionner la les colonne s que l on veut voir figu rer dans la table r sultat On sp cifie la liste des colonnes inclure dans cette table der ri re l instruction SELECT en les s parant par des virgules Si l on d sire afficher toutes les colonnes on les d signe par le caract re SELECT Nom Ville FROM personne Nom Ville Nestor Paris Irma Lille Henri Paris Josette Lyon Jacques Bordeaux Bleue Floride Renault 6 Rose Alpine A310 Renault 5 Blanche 403 Peugeot 4 Blanche GT Opel 3 Noire SM Citroen 2 Rouge 404 Peugeot 1 Type Type Marque NumVoit 2 5 45 000 2000 04 02 1 4 30 000 1998 06 14 4 2 70 000 1996 03 30 1 1 10 000 1985 12 03 NumAch NumVoit Prix DateVente M F M F M Sexe Bordeaux 50
215. les tables o se trouvent les champs que l on veut projeter Le nom de la pizza est dans la table pizza Le prix de la pizza est dans la table pizza Les noms des ingr dients se trouve dans la table ingredient Le lien entre ces deux tables est mat rialis par le mod le entit association il s agit de l association compose Cette derni re est devenue la relation compose On effectue donc une double jointure entre les trois tables pizza ingredient et compose Les tables pizza et compose seront jointes sur le champ NomPizza et les tables ingredient et compose seront jointes sur le champ NumIngre Il y a deux mani res d crire une jointure Une jointure peut tre La premi re consiste l appr hender comme une s lection sur un produit cart sien L criture est plus p dagogi que mais totalement inefficace du point de vue du SGBD qui doit effectuer le produit car t sien puis s lectionner les lignes SELECT pizza NomPizza ingredient NomIngre pizza Prix FROM pizza ingredient compose WHERE pizza NomPizza compose NomPizza AND ingredient NumIngre compose Numingre La seconde plus efficace est d utiliser l instruction de jointure JOIN SELECT pizza NomPizza ingredient NomIngre pizza Prix FROM pizza JOIN ingredient JOIN compose ON pizza NomPizza compose NomPizza AND ingredient NumIngre compose Numingre
216. leurs de la table vente par rapport une op ration qui a t r alis e sur toutes les valeurs de la table C est une question simple en apparence mais parfois difficile traiter car tous les SGBD n acceptent pas les requ tes imbriqu es Comme toujours on peut d composer le raisonnement en plusieurs tapes Calculer la moyenne des prix SELECT AVG vente Prix AS Moyenne_Prix FROM vente Comparer les prix SELECT ve1 Prix FROM vente AS ve1 WHERE ve1 Prix gt SELECT AVG ve2 Prix FROM vente AS ve2 EXERCICE 12 CR ATION D UNE TABLE CREATE TABLE personne NumAch INT PRIMARY KEY Nom CHAR 30 NOT NULL Age INT Ville CHAR 40 Sexe CHAR 1 CHECK Age BETWEEN 16 AND 100 CHECK Sexe IN H F Affichez les prix qui sont sup rieurs la moyenne Cr ez la table personne avec les colonnes suivantes NumAch De type entier cl de la relation Nom De type caract re de taille 30 ne doit pas tre vide Age De type entier compris entre 16 et 100 Ville De type caract re de taille 40 Sexe De type caract re de taille 1 doit contenir H ou F 125 SQL Exercices 4 Chapitre EXERCICE 13 INSERTION DE DONN ES DANS UNE TABLE On n ins re par toutes les valeurs des colonnes donc il faut pr ciser la liste des colonnes pour lesquelles une valeur est pr sente dans l ordre que l on choisit INSERT
217. li es par l association emprunte Les entit s personne et livre sont li es par l association a_ crit Figure 2 21 Entit s livre ouvrage personne li es par les associa tions emprunte a_ crit et est_un_exemplaire sans cardinalit s Spectateur Num Nom Tel Pi ce Achat NumPiece Titre Auteur MetteurScene Prix DateAchat NumSiege Ouvrage Cote ISBN Personne NumLecteur Nom Pr nom Adresse Emprunte DateEmprunt Titre ISBN diteur Livre Est un exemplaire A crit 46 Cr ation de bases de donn es On doit d terminer pour chaque association les deux cardinalit s minimales et maximales associ es aux deux entit s li es puisqu il s agit d associations binaires Il y aura donc qua tre questions se poser par association On pose ici les questions et on propose les r ponses dans la vie r elle ce sont les utilisateurs de la base de donn es qui apporteraient les r ponses voir figure 2 22 Association est_un_exemplaire Pour d terminer les cardinalit s du c t de l entit ouvrage Peut on avoir une fiche d ouvrage sans disposer du livre lui m me dans la biblioth que Si c est le cas la valeur minimale sera de 0 sinon elle sera 1 La valeur 1 est plus logique dans ce contexte sauf si l on a r cup r le catalogue descriptif d un di
218. lients On essaie de jouer sur les coefficients affect s aux diff rentes tailles de pizzas naine humaine ogresse et sur les prix de base L objectif est de mesurer les effets de ces modifications sur le compte des clients On modifie dans un premier temps les prix ensuite les coefficients en se donnant la possibilit de revenir en arri re pour tester diff rentes combinaisons de coefficients et de prix Une fois les essais termin s on abandonne toutes les modifications ce n tait qu une simulation 182 Cr ation de bases de donn es Et ainsi de suite Puis on abandonne l ensemble des modifications par l instruction ROLLBACK qui termine la transaction et remet la base dans l tat de d part EXERCICE 7 TRIGGER On utilise un trigger d clencheur pour mettre jour automatiquement la table com pose lors d une destruction dans la table pizza CREATE TRIGGER maj_compose BEFORE DELETE ON pizza FOR EACH ROW BEGIN DELETE FROM compose WHERE NomPizza OLD NomPizza END On remarque d une part que par rapport aux triggers d finis dans le chapitre on fait appel aux valeurs de la table OLD En effet lors d une instruction DELETE le SGBD ne g re pas de table NEW dans la mesure o il n existe pas de nouvelles valeurs dans ce cas la table OLD fera r f rence aux valeurs supprim es de la table pizza D autre part on effectue l op ration de destruction dans la ta
219. lis sement_1 Num _Etablissement Ville Num_Etablis sement_2 1 Henri 1 1 Paris Universit Jussieu 1 Henri 1 2 Lyon CHU Bron 1 Henri 1 3 Nancy Universit Poin car 1 Henri 1 4 Paris Universit Sorbonne 2 Stanislas 2 1 Paris Universit Jussieu 2 Stanislas 2 2 Lyon CHU Bron 2 Stanislas 2 3 Nancy Universit Poin car 2 Stanislas 2 4 Paris Universit Sorbonne 3 Henriette 1 1 Paris Universit Jussieu 3 Henriette 1 2 Lyon CHU Bron 3 Henriette 1 3 Nancy Universit Poin car 3 Henriette 1 4 Paris Universit Sorbonne Figure 3 14 Produit cart sien des relations Lecteur_bis et Etablissement 66 Cr ation de bases de donn es Etablissement_jointext_ Lecteur Num_Etablissement_1 Ville Nom_Etablissement Numero_carte Nom Num_Etablissement_2 Ici les valeurs 3 et 4 du champ Num_Etablissement_1 provenant de la relation Etablisse ment n ont pas de correspondance dans la relation Lecteur Les lignes sont tout de m me incluses dans le r sultat mais les champs provenant de la relation Lecteur prennent la valeur NULL Cette valeur signifie que le champ ne contient pas de valeur Pour r pondre la question Quels sont les tablissements qui n ont pas de lecteurs il nous suffit de s lectionner les lignes qui contiennent la valeur NULL par exemple dans le champ Num ro_carte
220. lisant des journaux qui enregistrent au fur et mesure les op ra tions faites sur la base c est le m canisme de la journalisation Ce journal est utilis pour refaire ou d faire le cas ch ant ces op rations En ce qui concerne les op rations de modification effectu es sur la base de donn es que l on appelle des transactions des propri t s de mesure de la qualit de ces transactions sont propos es sous le terme ACID Atomicit Une transaction est atomique elle est ex cut e enti rement ou aban donn e Coh rence La transaction doit se faire d un tat coh rent de la base vers un autre tat coh rent Isolement Des transactions simultan es ne doivent pas interf rer entre elles Durabilit La transaction a des effets permanents m me en cas de panne noter que tous les SGBD ne r alisent pas cette propri t ACID pour les transactions Les machines sont connect es au r seau ou sont simplement multi utilisateurs le SGBD doit permettre de donner l acc s aux bases de donn es plusieurs utilisateurs concurrem ment L acc s concurrentiel implique des op rations algorithmiques complexes r aliser puisqu il faut par exemple emp cher la modification d une valeur par un utilisateur alors qu elle est en lecture par un autre Cela n cessite la gestion d une structure de description 17 Introduction aux bases de donn es 1 Chapitre des utilisate
221. lisateurs puissent consulter le catalogue des voitures non encore vendues Cette liste de voitures est accessible par une requ te plus complexe que la pr c dente de type jointure externe Il s agit d un cas d utilisation d une vue tr s pratique pour les utilisateurs qui n ont pas conna tre les notions avanc es de jointure externe CREATE VIEW catalogue NumVoit Marque Type Couleur AS SELECT voiture NumVoit voiture Marque voiture Type voiture Couleur FROM voiture LEFT OUTER JOIN vente ON voiture NumVoit vente Numvoit WHERE vente Numvoit IS NULL On donne la permission l utilisateur PUBLIC c est dire tous les utilisateurs GRANT SELECT ON catalogue TO PUBLIC Vue avec possibilit de mise jour Le service comptabilit doit pouvoir acc der aux informations de vente et de client le afin de facturer et calculer le chiffre d affaires En outre ce service a besoin de mettre jour le prix de vente CREATE VIEW journal_compta Date_de_vente Prix_de_vente Nom_client Ville_client AS SELECT vente DateVent vente Prix client Nom client Ville FROM vente JOIN client ON vente NumAch client NumAch WITH CHECK OPTION L option CHECK OPTION permet les mises jour des donn es au travers de la vue On donne les droits un r le que les utilisateurs pastorius et miller vont utiliser CREATE ROLE comptabilite GRANT SELECT ON journal_compta TO comptabilite GRANT UPDATE Prix_de_vente
222. lles permettent de retrouver les fichiers instantan ment par leur nom mais aussi par leur contenu la mani re d un moteur de recherche Les bases de donn es reposent sur des th ories solides et sont l origine d une des plus importantes disciplines de l informatique l ing nierie des syst mes d information Cette section pr sente une id e intuitive de ce qu est une base de donn es de son utilisa tion puis des l ments de qualit qui lui sont associ s 1 1 NOTION DE BASE DE DONN ES Tout le monde a une id e naturelle de ce que peut tre une base de donn es elle peut rev tir la forme d une liste de CD contenant le nom des artistes et les titres des morceaux ou encore celle de fiches de recettes de cuisine On remarque qu une caract ristique des donn es contenues dans une base de donn es est qu elles doivent poss der un lien entre elles En effet des donn es choisies au hasard ne constituent certainement pas une base de donn es Celle ci est donc une repr sentation partielle et tr s simplifi e du monde r el que l on a obtenu par un processus de mod li sation En r sum on d finit une base de donn es comme l ensemble des donn es stoc k es Pour les manipuler on utilise g n ralement un logiciel sp cialis appel SGBD Syst me de Gestion de Bases de Donn es Il y a parfois confusion par abus de langage entre base de donn es et SGBD On appelle aussi syst me d inf
223. lm a au moins un acteur 1 n R alise Une personne r alise aucun ou plusieurs films 0 n Un film a un et un seul r alisateur 1 1 Enfin la notation des cardinalit s est invers e par rapport au mod le entit association voir figure 2 29 Figure 2 29 Repr sentation UML des entit s clients film personnel li es par les associations reservation location joue et r alise avec cardinalit s EXERCICE 10 AUTRE EXEMPLE LE CAMPING L ULIASTRU Voici les phrases cl s d duites de l nonc qui permettent de caract riser les entit s et les cardinalit s des associations du mod le entit association Les clients louent des s jours ils peuvent en louer plusieurs 1 n Les s jours peuvent tre lou s par un ou plusieurs clients du moment que les p riodes de location ne se chevauchent pas 0 n Le camping l Uliastru l olivier sauvage situ dans l extr me sud de la France propose ses clients diff rents types de locations des bungalows toile pour 350 semaine des caravanes pour 440 semaine des tentes pour 45 jour Les diff rentes formules offrent un quipement complet et appartiennent au camping Il est galement possible de louer un emplacement tourisme la journ e pour 28 personne L ensemble de ces loca tions s adresse un maximum de quatre personnes Proposez un mod le entit
224. loit es directement en tant qu information d cisionnelle En effet il n est pas possible d analyser efficacement dans le temps des indicateurs de gestion par m tiers ou par individus Les donn es sont alors rapatri es et stock es dans un entre p t de donn es ou datawarehouse voir figure 1 8 Si l information est disponible on stocke les diff rentes valeurs d une donn e ce qui per met de conserver un historique dans le temps de certaines donn es elles sont dites histo ris es Ce dernier aspect est d sign parfois aussi comme une base de donn es temporelle dans la mesure o le SGBD procure des outils d analyse adapt s Il est alors possible d effectuer des analyses d cisionnelles qui combinent tous les param tres de l entreprise c est l analyse d cisionnelle multidimensionnelle Les techniques pr c den tes de fouille de donn es et de d duction peuvent tre utilis es Elles sont combin es avec d autres outils d analyse de l volution d une donn e partir de son historique pour en extrapoler des tendances et ainsi faire des pr visions L id e des entrep ts de donn es est plus qu int ressante mais il est vident que sa mise en uvre est d licate tant d un point de vue du stockage de l information volume de don n es h t rog n it des donn es traiter que de l analyse des donn es comment ana lyser quelle information stocker En outre il s agit le
225. lors de la phase d analyse du monde r el et le SGBD permet de les r aliser On pr f re appliquer en g n ral ces contraintes non pas lors de la cr ation des relations mais plut t lorsque les donn es ont d j t ins r es en particulier dans les relations de r f rences Cette pr caution vite les probl mes de r f rences impossibles r soudre entre les relations ce qui provoque parfois l incapacit ins rer des donn es liminer la redondance des donn es Les incoh rences provoqu es par la redondance d information repr sentent le principal souci du concepteur d une base de donn es En effet lorsque les donn es sont dupliqu es aucun m canisme ne peut garantir que le changement de la valeur d une donn e est r per cut correctement sur les autres donn es Dans l exemple ci dessus voir figure 3 2 d une relation des lecteurs de biblioth que on remarque la redondance d information qui existe entre les champs Ville et Etablissement Si le nom de l tablissement INPL change il faut mettre jour toutes les lignes qui contiennent son nom La redondance est mise en vidence par la d pendance fonctionnelle qui existe entre ces deux champs Dans cet exemple d tecter la redondance est vident Cependant il s agit g n ralement d incoh rences d licates d celer lorsque le nombre de relations est lev ou encore si le sujet mod lis par la base de donn es n est
226. ls sont de plus en plus per formants mais aussi de plus en plus r pandus du fait de leur co t plus raisonnable Leur utilisation change galement on passe de la notion de calculateurs purs des machines capables aussi de traiter de l information On parvient un niveau d abstraction suppl mentaire par rapport aux machines et on obtient en cons quence une ind pendance par rapport l architecture et surtout par rapport aux constructeurs La d cennie des ann es 1970 est une p riode faste pour la recherche et l innovation en informatique dont les r sultats sont encore utilis s aujourd hui On peut utiliser des lan gages de programmation de haut niveau afin de guider voire de fa onner la d marche du programmeur Pascal et l on envisage des syst mes d exploitation ind pendants de la machine employ e Unix C est galement cette poque que l on pose les fondements des techniques qui sont utilis es dans les r seaux TCP IP en particulier pour Internet C est dans ce contexte favorable que E F Codd d finit et d veloppe l approche relation nelle en base de donn es Nom T l phone Ville Code postal Jaco 0668541087 Bordeaux 33000 Stanley 0654789254 Nancy 54000 Marcus 0658741263 Bordo 33000 Charles 0639517720 Nancy 54000 Steve 0659874120 Boredeaux 33000 Tableau 1 1 Exemple de redondance de l information 5 Introduction aux bases de donn es 1
227. lusieurs colonnes elle est dite composite on indique la liste des colonnes constitutives de la cl la suite du mot cl PRIMARY KEY CREATE TABLE vente DateVente DATE PRIX INT NumAch INT NumVoit INT PRIMARY KEY NumAch NumVoit Condition d appartenance un ensemble Il s agit de d crire le domaine dans lequel la colonne pourra prendre ses valeurs Un ensemble peut tre d crit En donnant la liste de tous ses l ments constitutifs IN L ensemble des jours de la semaine ne peut tre exprim que de cette mani re lundi mardi etc On v rifie que la colonne couleur ne peut prendre que des valeurs normalis es Rouge Vert ou Bleu CREATE TABLE voiture NumVoit INT PRIMARY KEY Marque CHAR 30 NOT NULL Type CHAR 20 Couleur CHAR 40 CHECK Couleur in Rouge Vert Bleu Par une expression gt lt BETWEEN Par exemple le prix doit tre sup rieur 1 000 On v rifie que l ge est compris entre 1 et 80 CREATE TABLE personne NumAch INT PRIMARY KEY Nom CHAR 20 NOT NULL Ville CHAR 40 AGE INT NOT NULL CHECK Age BETWEEN 1 AND 80 Par une r f rence aux valeurs d une colonne d une autre table REFERENCES Les colonnes doivent tre de m me type et l on ne peut plus d truire par d faut une table qui appara t comme r f rence On v rifie que les valeurs identifiantes des personnes NumA
228. mple un vendeur ou la comptabilit muni des droits appropri s peut intervenir sur le contenu des donn es EXERCICE 7 VUES EXTERNES 1 Les clients ne doivent avoir acc s en lecture qu aux informations concernant les voitu res en stock non encore vendues 2 Les vendeurs s ils g rent galement le parc de voitures comme c est souvent le cas peu vent avoir acc s en lecture et en criture toutes les donn es ventes voitures person nes 3 Le service comptabilit peut avoir acc s en lecture toutes les informations mais ne peut modifier les informations concernant les voitures ou les personnes du fichier client On utilise pour cet exercice la base de donn es exemple de vente de voitures On consi d re les op rations suivantes 1 Ajouter une personne dans le fichier client 2 Modifier les possibilit s d ajout dans le champ couleur 3 Augmenter la taille du champ couleur 4 Sortir le chiffre d affaires par marques pour le mois en cours afin de l importer dans un tableur 5 Enregistrer une vente Quels types d utilisateurs sont concern s par ces op rations On utilise galement pour cet exercice la base de donn es exemple de vente de voitures On consid re trois types d utilisateurs de la base 1 les clients 2 les vendeurs 3 le service comptabilit Quelles sont les vues pr voir pour ces cat gories d utilisateurs 25 Introduction aux bases de donn es
229. n es voir figure 1 2 Le mod le hi rarchique propose une classification arborescente des donn es la mani re d une classification scientifique Dans ce type de mod le chaque enregistrement n a qu un seul possesseur par exemple une commande n a qu un seul client Cependant notamment cause de ce type de limitations ce mod le ne peut pas traduire toutes les r alit s de l information dans les organisations Le mod le r seau est une extension du mod le pr c dent il permet des liaisons trans versales utilise une structure de graphe et l ve de nombreuses limitations du mod le hi rarchique Dans les deux cas les enregistrements sont reli s par des pointeurs on stocke l adresse de l enregistrement auquel il est li Des SGBD de type hi rarchique ou r seau sont encore employ s pour des raisons d efficacit lorsque la structure des donn es s y pr te On utilise cet effet des SGBD de conception ancienne comme IMS Bull pour le mod le r seau ou IDMS Computer Associate Figure 1 2 Mod le hi rarchique Marque Type Couleur Voiture Personne Nom Pr nom NumINSEE Logement Num ro Rue Ville Type 6 Cr ation de bases de donn es Mod le relationnel En 1970 E F Codd propose un nouveau mod le relationnel dans un article rest c l bre A Relational Model of Data for Large Shared Data Banks CACM 13 no 6 June 1970 Il
230. n rale On perd ainsi une partie de l information sur le lien entre ces entit s Ce processus peut tre expliqu de la mani re suivante La cl de l association livre est compos e des attributs CodeLivreur amp NumCommande Du fait de la cardinalit 1 1 on peut en d duire qu un num ro de commande correspond un et un seul code du livreur La cl peut alors tre simplifi e et r duite l attribut NumCommande On obtient la relation livre NumCommande CodeLivreur Les deux relations commande et livre poss dent alors la m me cl on peut les fusion ner On obtient la relation commande augment e suivante commande NumCommande DateCom Taille Retard CodeLivreur Les associations transporte passe et constitue sont de cardinalit 1 1 par rapport l entit commande On peut aussi fusionner ces relations avec la relation commande On obtient commande NumCommande DateCom Taille Retard CodeLivreur NumImmat NumClient NomPizza Voici la liste des relations ainsi constitu es client NumClient NomClient Adresse Compte PointsRaPizz pizza NomPizza Prix livreur CodeLivreur NomLivreur Telephone v hicule NumImmat Marque Type ingr dient NumIngre NomIngredient commande NumCommande DateCom Taille Retard CodeLivreur NumImmat NumClient NomPi
231. n avoir plusieurs dans la pochette making of autres versions etc et leur prix d achat qui permettra de d bi ter le compte du client en cas de non retour du film Vous voulez pouvoir annuler et mettre jour les r servations et g rer les comptes des adh rents par exemple ne plus pr ter au del d un certain seuil Vous vous servirez galement de cette base de donn es pour effectuer des bilans tels que le chiffre d affai res en fin de mois des relances les films non rendus temps et des statistiques film le plus emprunt meilleur client Proposez un mod le entit association pour cette activit 52 Cr ation de bases de donn es Association r servation L association a pour attribut la date de r servation et le nombre de jours de r servation On a ajout un champ identifiant de la r servation NumR s Il n est pas absolument n cessaire d un point de vue du mod le une association n a pas besoin d un attribut iden tifiant mais il facilitera la gestion Association location L association a pour attribut la date et le nombre de jours de location On a ajout un champ identifiant de la location NumLoc pour les m mes raisons que pr c demment L attribut livraison indique si la livraison a t effectu e afin le cas ch ant de la facturer Associations joue et r alise Les deux associations n ont pas d attributs
232. n de bases de donn es pertinents sont retourn s lors d une interrogation La redondance est parfois plus d li cate identifier Si l on consid re le cas tr s simple d un carnet d adresses qui contien drait en m me temps le code postal et le nom de la ville elle est ici vidente On remarque que l on stocke plusieurs fois la m me association d information par exem ple Nancy et 54000 ce qui consomme de la place inutilement et peut devenir significatif lorsque la base atteint quelques millions d enregistrements De plus il existe des incoh rences dans la saisie du nom de la ville Bordeaux La recherche par le nom Bordeaux ne donnera pas le m me r sultat que la recherche par le code 33000 On verra plus loin que l approche relationnelle procure des outils capables de d tecter et d am liorer consid rablement ce genre de probl mes de qualit des bases de donn es 2 volution des bases de donn es et de leur utilisation Le d veloppement des bases de donn es s tend sur une p riode d une quarantaine d ann es Cette section pr sente tout d abord le contexte dans lequel elles se sont d velop p es On aborde ensuite les mod les utilis s successivement pour les repr senter Enfin la derni re partie pr sente une vue prospective des changements dans l utilisation des bases de donn es 2 1 CONTEXTE partir des ann es 1960 les ordinateurs voluent rapidement I
233. n des donn es se fait alors par une op ration de jointure qui peut se r v ler co teuse en ressources C est pour cette raison de performance que certaines relations sont parfois laiss es en forme non nor malis e Les deux tapes pr c dentes de passage du mod le conceptuel au sch ma rela tionnel et de normalisation peuvent tre quasiment automatis es Enfin on a abord les bases du fondement logique de l approche relationnelle L objectif est de pr senter une m thode d interrogation intuitive et graphique d une base de donn es qui en d coule les QBE ou interrogation par l exemple 82 Cr ation de bases de donn es Exercices EXERCICE 1 RELATION DEGR CARDINALIT Comme le produit cart sien est une combinaison de tous les tuples des deux relations le nombre de tuples sera le produit du nombre de tuples des deux relations Tous les champs sont int gr s dans le r sultat en une sorte de juxtaposition le nombre de champs du pro duit cart sien est gal la somme du nombre de champs des deux relations Enfin le pro duit cart sien est une op ration sym trique le r sultat sera le m me pour les deux questions La relation Garage poss de 3 tuples de 7 champs et la relation Film poss de 15 tuples de 2 champs Le r sultat est une relation qui poss de 45 tuples et 9 champs On peut galement dire que le r sultat est une table qui poss de 45 lignes et 9 colonnes EXERCICE 2 CL D UN
234. n modifie cette fois la structure m me de la table on utilise alors le langage de description de donn es EXERCICE 4 MOD LES DE REPR SENTATION Par nature ce type de donn es est structur strictement de mani re arborescente et cette structure reste assez stable dans le temps Il est donc tout fait possible d utiliser un simple mod le hi rarchique Un mod le r seau ne sera pas utile en principe du fait de la structure arborescente des donn es On peut galement utiliser les mod les relationnel ou objet mais il n apporteront pas d avantage d cisif dans ce cas tr s particulier EXERCICE 5 M TIERS DES BASES DE DONN ES Dans une petite structure c est souvent la m me personne qui r alise l ensemble du pro cessus de construction d une base de donn es Ce n est videmment pas la bonne m thode car la vision d un syst me d information labor par un administrateur de base de donn es est tr s orient e par le SGBD qu il emploiera On peut facilement faire le parall le avec le d veloppement de logiciels o un programmeur va avoir une approche d form e par les pr occupations li es au langage plut t que d adopter un point de vue sur la structure g n rale de l application Au minimum la personne devra disposer des com p tences en conception de base de donn es et en administration du SGBD qui sera utilis On veut supprimer tous les enregistrements qui contiennent la valeur 666 dans le c
235. naux de ventes la gestion est faite par exemple par une application de gestion sp cifique connect e aux caisses Les donn es du service achat sur les n gociations avec les fournisseurs peuvent tre g r es par exemple par une application d velopp e en interne La marge provenant de la n gociation avec les fournisseurs est fluctuante pour le m me article au cours du temps en fonction du march des personnes qui n gocient etc Il serait donc int res sant pour ces donn es de disposer des valeurs historis es par p riodes pour affiner l analyse par des tendances Pour int grer ces donn es provenant de sources diff rentes dans votre entrep t de don n es vous utiliserez une ou plusieurs application s de type ETL Extract Transform and Load que l on appelle aussi datapumping Par des m thodes d analyse d associations on d couvre qu en utilisant votre syst me d information les clients dont le nom commence par M ach tent le samedi plus de pro duits que les autres Ils g n rent donc un chiffre d affaires plus important mais ces pro duits sont marge faible et le b n fice est moins important que pour ceux dont le nom commence par un Z Qu avez vous int gr comme donn es dans votre entrep t de don n es pour pouvoir effectuer cette op ration en supposant que votre entreprise soit orga nis e avec une structure de services classique Analyse du monde r el 27 Chapitre 1
236. nd bien une valeur unique de Ville La valeur du champ Numero_carte est unique pour chacune des personnes On constate que ses valeurs sont identifiantes pour tous les autres champs de la relation Chaque champ d pend fonctionnellement du champ Numero_carte Ses valeurs sont uniques et jamais vides c est une cl candidate Dans cet exemple c est la seule cl possible car les autres champs n ont jamais de valeur unique Le champ Numero_carte est choisi comme cl primaire de la relation Les d pendances entre les champs repr sentent les liens entre les diff rents l ments du monde r el On rappelle qu elles ne peuvent tre d duites du contenu de la relation m me si cela peut constituer un point de d part Elles sont donc d termin es durant la phase pr c dente d analyse du monde r el Il est possible en revanche de v rifier si les enregistre ments pr sents dans la relation se conforment ces d pendances La d termination des d pendances fonctionnelles entre les champs est fondamentale pour l tape de normalisa tion trait e la section Normalisation Elles sont galement la base de la m thode dite de la relation universelle qui sera abord e dans la section Normalisation Numero _carte Nom Age Ville Etablissement 1 Henri 10 Paris Universit Sorbonne 2 Stanislas 34 Paris Universit Jussieu 3 Henriette 44 Lyon CHU Bron 4 Dominique
237. ne de nom Couleur de la table voiture DROP COLUMN Affichage de la table voiture modifi e Affichage de la table voiture modifi e 113 SQL 4 Chapitre La commande ALTER permet de modifier galement les contraintes associ es aux colon nes Cette partie est trait e la section suivante Contraintes d int grit Le mot cl COLUMN est optionnel Voici la suite d instructions permettant la modification du nom de la colonne de nom Couleur de la table voiture en Teinte en changeant son type L instruction UPDATE sera d taill e la section Gestion des donn es ALTER TABLE voiture ADD COLUMN Teinte CHAR 60 SELECT FROM voiture UPDATE voiture SET Teinte Couleur SELECT FROM voiture ALTER TABLE voiture DROP COLUMN Couleur Remarque Il n est pas possible de modifier directement le nom d une colonne ou son type Il faut pour cela crire une s rie d op rations en utilisant par exemple des colonnes temporaires NumVoit Marque Type Couleur Teinte 1 Peugeot 404 Rouge NULL 2 Citroen SM Noire NULL 3 Opel GT Blanche NULL 4 Peugeot 403 Blanche NULL 5 Renault Alpine A310 Rose NULL 6 Renault Floride Bleue NULL NumVoit Marque Type Couleur Teinte 1 Peugeot 404 Rouge Rouge 2 Citroen SM Noire Noire 3 Opel GT Blanche Blanche 4 Peugeot 403 Blanche Blanche 5 Renaul
238. nformations recueilli doit tre ordonn et structur L exemple choisi est peu complexe mais il permet d aborder quel ques questions essentielles On s aper oit cette occasion que l ensemble des tables utili s es dans le SGBD devient rapidement illisible si l on ne poss de pas un sch ma descriptif mod le entit association ou UML correct La partie Interrogation illustre les cat gories d utilisations et d interrogations classi ques d une base de donn es L id e est de donner des indications afin d identifier le type de requ te SQL utiliser en fonction de la question exprim e en langage courant La d mar che sugg r e est de toujours d composer les questions en sous questions plus simples r soudre puis de proc der par tapes Un des exemples aborde ensuite le cas o au cours de l utilisation de la base de donn es il est impossible de trouver la solution en raison d une repr sentation inad quate Il est alors n cessaire de remettre en cause le mod le utilis Soit on modifie le contenu des tables et l on r percute les modifications sur le mod le descriptif utilis Soit on modifie le mod le descriptif et l on r it re les tapes de passage au mod le rela tionnel La seconde m thode est la solution la plus juste d un point de vue th orique Mais en pra tique on utilise une combinaison des deux approches pour obtenir le r sultat Il est essen tiel de c
239. nisme de cryptage ainsi que de codes sp ciaux qui accompagnaient le message par exemple urgent en attente etc Avec l invention de l lectricit est arriv le t l graphe lectrique qui utili sait un fil par lettre de l alphabet donc 26 en tout Samuel Morse invente en 1840 un codage qui passe un seul fil pour la transmission Il s agit du premier codage moderne international qui inclut les chiffres les lettres et cer tains caract res accentu s Il poss de galement des caract res de contr le utilis s pour la transmission du message par exemple r p tez Ce codage universel permet de trans mettre des informations en utilisant une source lumineuse sonore ou lectrique Le t lex appara t vers 1920 il se sert d un codage sur 5 positions invent par le Fran ais Baudot Les messages envoy s par t lex sont d abord saisis sur un ruban perfor et l envoi ainsi que la r ception sont automatis s C est le m me type de code qui a servi stocker de l information sur les cartes perfor es 80 colonnes Ces derni res repr sentent le premier stockage d information avec un code qui pr figure ce qui est utilis actuellement Le codage 5 positions permet 32 possibilit s 25 Cette capacit est quasiment doubl e diminu e de caract res de contr le par l emploi de deux tables On indique par un caract re sp cifique la table dans laquelle on se situe Le codage com
240. nn es non valid es peut tre suffisant Syntaxe SQL des transactions L instruction pour d buter une transaction est START TRANSACTION La transaction prendra fin par l une des instructions suivantes COMMIT Les instructions effectu es depuis START TRANSACTION sont valid es ROLLBACK Les instructions effectu es depuis START TRANSACTION sont annu l es Voici un exemple d insertion et de mise jour dans la base de donn es casse que l on annule ensuite D marrage de la transaction START TRANSACTION Insertion d un tuple dans la table client INSERT INTO client VALUES 6 Laetitia 34 Paris F Mise jour des donn es de prix augmentation de 5 UPDATE vente SET Prix Prix 1 05 Annulation des modifications faites depuis START TRANSACTION ROLLBACK Voici un exemple de destruction dans la table client de la base de donn es casse que l on valide ensuite D marrage de la transaction START TRANSACTION Destruction des tuples dont le champ Ville vaut Paris dans la table client DELETE FROM client WHERE Ville Paris Validation des modifications faites depuis START TRANSACTION COMMIT On peut choisir le niveau d isolation au moment o l on d marre la transaction Dans l exemple suivant on fixe le niveau maximal de s curit START TRANSACTION ISOLATION LEVEL SERIALIZABLE Remarque Les SGBD ne fonctionnent pas par d fau
241. nnes du simple achat effectu avec sa carte bancaire jusqu nos d clarations de revenus L objectif de ce chapitre est de d finir la notion de base de donn es ainsi que les principaux concepts qui s y rattachent La m thodologie qui permet de les concevoir les applications informatiques associ es leur mise en uvre SGBD et les diff rents m tiers des bases de donn es y sont pr sent s 2 Cr ation de bases de donn es 1 Qu est ce qu une base de donn es Le nombre d informations disponibles et les moyens de les diffuser sont en constante pro gression La croissance du World Wide Web a encore accru ce d veloppement en fournis sant l acc s des bases de donn es tr s diverses avec une interface commune Celles ci se situent au c ur de l activit des entreprises des administrations de la recherche et de bon nombre d activit s humaines d sormais li es l informatique Dans le domaine purement informatique elles interviennent dor navant tous les niveaux Les d veloppeurs d applications s appuient sur des bases de donn es externes pour g rer leurs donn es alors qu auparavant elles taient int gr es dans le programme Citons un autre exemple la gestion des fichiers dans les nouveaux syst mes d exploitation par exemple Panther de chez Apple ou le futur Vista de Microsoft volue vers de v ritables bases de donn es mises jour en permanence E
242. nonc es dans cette section sont applicables tous les syst mes informatiques en particulier ceux qui sont connect s un r seau ou situ s dans un milieu qualifi d hostile On d crit ici plusieurs types de pr occupations l acc s physique la machine l acc s distant la machine travers le r seau les aspects de p rennit de l ensemble machine syst me d exploitation et SGBD les sauvegardes la redondance des donn es et leur accessibilit 1 1 ACC S PHYSIQUE LA MACHINE Cette mesure de s curit informatique l mentaire est tr s souvent n glig e Procurer un acc s physique la machine permet en g n ral de contourner toutes les protections li es au syst me d exploitation ou au SGBD que l on aborde dans ce chapitre Il suffit de d marrer une machine avec un autre syst me d exploitation pr sent sur un CD ou une cl USB par exemple pour obtenir un acc s au disque et ainsi aux donn es associ es au SGBD La premi re pr caution pr voir consiste prot ger le BIOS Basic Input Output System ou l quivalent de la machine pour l emp cher de d marrer sur un autre disque que celui qui contient le bon syst me d exploitation Le fait de pouvoir acc der directement la machine permet galement une personne anim e de mauvaises intentions d emp cher l acc s aux donn es en d truisant physique ment le disque sur lequel se tro
243. normalis permettra des programmes sp cialis s les parsers de v rifier si le docu ment est conforme la structure attendue et d en extraire facilement le contenu Le lan gage SGML est assez complexe manipuler car il est tr s g n ral Pour des besoins sp cifiques on utilise des versions simplifi es telles que HTML ou XML T B Lee a donc d velopp un langage de pr sentation HTML Hyper Text Markup Lan guage bas sur les notions d velopp es par SGML Ce langage permet essentiellement de sp cifier des crit res de pr sentation gras soulign couleur et bien s r de d crire les liens entre les fichiers Il ne comprend aucun l ment de structuration des donn es du texte contenu dans la page HTML Les moteurs de recherche parcourent le Web et indexent le contenu des pages par rapport des listes de mots cl s combin s d autres m thodes beaucoup plus sophistiqu es Cependant ils ne peuvent diff rencier dans le texte le titre d un r sum ou d une l gende associ e une image L efficacit et la perti nence de l indexation en sont diminu es d autant Pour rem dier cela le W3C World Wide Web Consortium a d fini un langage qui est ga lement une simplification de SGML permettant de d crire la structure interne d un document XML eXtended Markup Language La structure d un document XML est repr sent e sous la forme d un arbre tout comme celle d un doc
244. ns Dans la mesure du possible on essaie de donner des noms d attributs sp cifiques pour chacune des entit s Ces deux derni res pr cautions faciliteront la compr hension g n rale du mod le et son utilisation future dans le SGBD 3 2 R ORGANISATION DES ENTIT S Dans cette sous section on remet en cause le d coupage en entit s produits par une pre mi re approche Le processus it ratif de cette remise en cause peut conduire un red cou page des entit s ou leur fusion On consid re l exemple de la biblioth que de pr t que l on a d j utilis pr c demment La phrase caract ristique d crivant l activit de la biblioth que est la suivante Un lecteur Client NumAch Nom ge Ville Sexe Voiture NumVoit Marque Type Couleur Vente DateVente Prix 0 1 1 n 36 Cr ation de bases de donn es emprunte un livre On en d duit les deux entit s lecteur et livre li es par l association emprunte voir figure 2 9 Un lecteur est caract ris classiquement par son nom son pr nom et son adresse Comme il n y a pas d attribut poss dant les caract ristiques d un identifiant pour l entit lecteur on ajoute un attribut identifiant Cet attribut suppl mentaire est le num ro de lecteur noter que dans le monde r el ce num ro pourrait correspondre par exemple un num ro de carte de lecteur Un livre est caract ris par son ti
245. nt e par le caract re voir figure 3 5 Attention cette op ration n est pas sym trique le r sultat de l op ration Lecteur_1 Lecteur_2 est en g n ral diff rent de Lecteur_2 Lecteur_1 Elle permet par exemple d limi ner des enregistrements d une relation par rapport une liste Lecteur_1 Lecteur_2 Intersection L op ration intersection peut se d duire de la pr c dente elle d signe les enregistrements qui sont communs aux deux relations L intersection est repr sent e par le caract re voir figure 3 6 Elle permet de trouver les l ments communs deux relations Lecteur_1 Lecteur_2 Produit cart sien Le produit cart sien permet la combinaison des enregistrements de deux relations sans tenir aucun compte du contenu des donn es Les relations n ont donc pas besoin d avoir la m me structure Le caract re repr sentant le produit cart sien est X Numero_carte Nom Age Ville Etablissement 1 Henri 10 Paris Universit Sorbonne 2 Stanislas 34 Paris Universit Jussieu 3 Henriette 44 Lyon CHU Bron 4 Dominique 19 Nancy Universit Poincar 5 Isabelle 56 Nancy INPL Numero_carte Nom Age Ville Etablissement 1 Henri 10 Paris Universit Sorbonne 2 Stanislas 34 Paris Universit Jussieu Numero_carte Nom Age Ville Etablissement 3 Henriette 44 Lyon CHU Bron Figure 3 4 Union des rel
246. nt elle dans le sch ma conceptuel Tout d abord remarquons que d apr s la premi re phrase cl un client peut repr senter plusieurs personnes car il peut louer plusieurs locations Par cons quent le moyen d int grer efficacement la limite de quatre personnes et les quantit s n cessaires la facturation des diff rents types de location consiste en l ajout de l attribut quantit dans l association Louer Le client du mod le repr sente la personne physique que l on facture Finalement voici le MCD de cette activit de gestion S jour Type Dur e_mini Prix_ttc Client ID Nom Pr nom Adresse Ville CP T l phone Louer quantit date_d but La date de d but de location d pend la fois du client et de la location c est la raison pour laquelle elle appara t dans l association Louer La date de fin d une location est calcul e partir de la dur e minimale et de la quantit lou e en fonction de la date de d but de location c est la raison pour laquelle il est inutile de la stocker Approche relationnelle 55 Chapitre 1 Concepts 56 2 Op rations du mod le relationnel 60 3 Passage du mod le conceptuel au relationnel 68 4 Normalisation 70 5 Logique du premier ordre et base de donn es 76 Ex
247. nt tarification client livreur vehicule Client X Lecture Lecture Lecture Lecture Lecture X X Employ Lecture criture Lecture Lecture Lecture Lecture Lecture Lecture Lecture Gestion naire Lecture Lecture criture Lecture criture Lecture criture Lecture criture Lecture criture Lecture criture Lecture criture Comment repr senter pratiquement les cat gories identifi es l exercice pr c dent dans un SGBD crivez les instructions permettant de le faire 179 Pr servation des donn es Exercices 6 Chapitre GRANT DELETE ON livreur TO gestionnaire GRANT INSERT ON livreur TO gestionnaire GRANT SELECT ON vehicule TO gestionnaire GRANT UPDATE ON vehicule TO gestionnaire GRANT DELETE ON vehicule TO gestionnaire GRANT INSERT ON vehicule TO gestionnaire GRANT SELECT ON tarification TO gestionnaire GRANT UPDATE ON tarification TO gestionnaire GRANT DELETE ON tarification TO gestionnaire GRANT INSERT ON tarification TO gestionnaire GRANT SELECT ON ingr dient TO gestionnaire GRANT UPDATE ON ingr dient TO gestionnaire GRANT DELETE ON ingr dient TO gestionnaire GRANT INSERT ON ingr dient TO gestionnaire GRANT SELECT ON compose TO gestionnaire GRANT UPDATE ON compose TO gestionnaire GRANT DELETE ON compose TO gestionnaire GRANT INSERT ON compose TO gestionnaire GRANT SELECT ON pizza TO gestionnaire GRANT UPDATE ON pizza TO gestionnaire GRANT DELETE ON p
248. o aucune des associations ne poss de d attribut voir figure 5 1 Figure 5 1 Mod le entit association Livraisons de pizzas sans cardinalit s 2 2 D TERMINATION DES CARDINALIT S On se pose ensuite des questions sur la nature des liens entre les entit s capables de d ter miner les cardinalit s qui seront utilis es pour le passage au mod le relationnel On doit trouver deux cardinalit s maximales et minimales par entit associ e ce qui correspond deux questions doubles par association Il s agit d une tape d inventaire un peu fasti dieuse mais elle est indispensable et permet de poser un autre regard sur le mod le Association Compose Ingr dient un ingr dient peut il ne jamais tre utilis dans la composition d une pizza et peut il tre utilis plusieurs fois On suppose que si un ingr dient est au catalogue c est qu il est utilis au moins une fois 1 et qu il peut entrer dans la composition de plusieurs n pizzas Les cardinalit s associ es sont de type 1 n Pizza une pizza peut elle n avoir aucun ingr dient et peut elle en avoir plusieurs On suppose qu une pizza est constitu e d au moins un 1 ingr dient et qu elle peut en avoir plusieurs n Les cardinalit s associ es sont de type 1 n Association Passe Client un client peut il n avoir jamais pass de commandes et peut il en avoir pass plusieurs Il peut y avoir un
249. omprendre qu il n y a pas de solution unique en base de donn es Le mod le est fr quemment adapt et aucune repr sentation n est fig e De m me que la r alit peut tre envisag e diff remment suivant les personnes il existe souvent plusieurs visions valides Remarque Les requ tes retournent toujours un r sultat Cependant on ne peut tre s r que ce dernier repr sente la r ponse exacte la question pos e Il est n cessaire de syst matiquement v rifier le r sul tat sur un jeu de donn es r duit De m me qu en programmation on ne peut prouver qu un programme r alise correctement ce qu on lui demande dans tous les cas de figure il est difficile d tablir qu une requ te fournit la r ponse ad quate lorsque le nombre d enregistrements devient lev 148 Cr ation de bases de donn es Exercices EXERCICE 1 REPR SENTATION UML On part du mod le entit association final celui auquel on a ajout l entit tarification La partie d UML qui est utilis e est le diagramme de classe celui ci com prend le nom de la classe la description des attributs et les m thodes associ es la classe Dans ce cas on n utilise pas la partie objet et donc il n y a pas de m thodes associ es aux classes Une entit est repr sent e par un diagramme de classe Avec UML il est possible d int grer les notions de contraintes d int grit au niveau du sch ma On peut par exem ple sp
250. on de commande qui peut contenir plusieurs pizzas n est pas prise en compte On pourra faire voluer le syst me plus tard si besoin est pour int grer cet aspect Il est en effet plus simple de raisonner en termes de ventes unitaires que l on peut agr ger ensuite plut t que d attaquer directement sur des commandes multiples 130 Cr ation de bases de donn es On en d duit l existence des entit s suivantes commande client pizza livreur v hicule ingr dient On peut se poser la question de savoir si un ingr dient est une entit part enti re ou un simple attribut d une pizza L entreprise consid r e est une franchise ou tout est tr s nor malis et l on peut imaginer que la liste des ingr dients l est aussi Un m me ingr dient entre certainement dans la composition de plusieurs pizzas Il est donc pr f rable de s pa rer les ingr dients des pizzas l association entre les deux entit s est repr sent e par la phrase Une pizza est constitu e d ingr dients Notons propos des ingr dients que le syst me ne doit g rer que les aspects commande et livraison l on ne s int resse pas ici la gestion des stocks d ingr dients Il manque dans la description un nombre important de donn es qui vont constituer cer taines entit s en particulier les entit s v hicule ou client Le cas est fr quent lors de la r alisation du proces
251. on soustrait le prix de vente de la voiture du montant du compte du client C est la seule mani re de r aliser cette op ration de modification d une autre table lors d une simple insertion Ajout d un champ compte la table client ALTER TABLE client ADD COLUMN compte INT Cr ation du trigger CREATE TRIGGER compte BEFORE INSERT ON vente FOR EACH ROW BEGIN UPDATE client SET client Compte client Compte NEW Prix WHERE client NumAch New NumAch END Ajout d une vente dans la table vente INSERT INTO vente VALUES 6 2005 03 01 50000 2 5 Le compte du client de num ro NumAch gal 2 sera automatiquement diminu de la somme de 50000 Un trigger apporte de la souplesse et de la personnalisation dans la d finition des con traintes que l on associe aux tables Pour ce faire il d clenche l ex cution d un morceau de code sp cifique associ un v nement de mise jour de la table Il est parfois possible de r aliser les op rations d une autre de mani re plus complexe Du point de vue de la s cu rit des donn es le code associ au trigger s ex cute sur le serveur sans interaction avec le client On r duit ainsi les risques d erreur li s aux changes entre le client et le serveur 175 Pr servation des donn es 6 Chapitre R sum Ce chapitre expose les diff rentes dispositions que l on doit prendre afin de pr venir l alt ration ou la p
252. onc un objet de type table On peut choisir d ex cuter un trigger avant ou apr s une instruction de mise jour Les donn es manipul es par le trigger sont stock es dans des tables temporaires que l on d signe dans le code du trigger par les termes NEW valeurs apr s l ex cution de l op ration de mise jour OLD valeurs avant l ex cution de l op ration de mise jour 4 1 SYNTAXE G N RALE POUR CR ER ET D TRUIRE UN TRIGGER L instruction normalis e par la norme SQL est de la forme g n rale suivante CREATE TRIGGER Nom du trigger Moment o le trigger est ex cut Op ration concern e ON Nom de la table FOR EACH ROW ou STATEMENT BEGIN Instructions END Le moment peut prendre les valeurs BEFORE ou AFTER Les op rations concern es sont INSERT UPDATE et DELETE La diff rence entre ROW et STATEMENT est que l on ex cute les instructions pour chaque ligne ou pour toute la table Pour d truire un trigger on utilise l instruction DROP et on sp cifie le nom du trigger que l on veut d truire DROP TRIGGER conversion Comme toujours la syntaxe peut tre l g rement diff rente suivant le SGBD employ 174 Cr ation de bases de donn es 4 2 EXEMPLES D UTILISATION D UN TRIGGER Contr le de la forme du contenu des champs Pour le formatage on veut imposer que les noms d une ville dans la table client soient transf
253. ond l impl mentation du sch ma conceptuel de la base de donn es que l on r alise lors de la phase d analyse voir Mod le Conceptuel des Donn es Mod le Logique des Donn es Il est utilis pour d crire les l ments constitu tifs de la base de donn es et les contraintes qui leur sont associ es Il s agit d une cer taine fa on de la documentation de la base de donn es Niveau externe Le niveau externe sert d crire les vues des utilisateurs c est dire le sch ma de visualisation des donn es qui est diff rent pour chaque cat gorie d utilisa teurs Un sch ma externe permet de masquer la complexit de la base de donn es com pl te en fonction des droits ou des besoins des utilisateurs Cela facilite la lecture et la s curit de l information Figure 1 12 Niveaux ANSI SPARC Il s agit comme pour le mod le r seau de l ISO d un cadre de r flexion les SGBD ne res pectent pas la lettre le d coupage propos Ils se doivent cependant de poss der les prin cipales caract ristiques qui d coulent de ce mod le en couches Ind pendance physique des donn es Masquer la repr sentation interne des donn es ainsi que les m thodes syst me d acc s aux utilisateurs Ind pendance logique des donn es Permettre la modification du sch ma conceptuel des donn es sans remettre en cause les m canismes de stockage et de manipulation internes des donn es Int gr
254. onnes n habitant pas Paris Affichage des diff rentes marques de voitures de la table voiture Calcul du nombre de voitures des diff rentes marques de la table voiture Calcul de la moyenne d ge par ville partir de la table personne 104 Cr ation de bases de donn es Restriction sur le r sultat Le r sultat de l op ration de groupage peut lui m me tre filtr c est dire que l on effectue une s lection des lignes par rapport au contenu des colonnes obtenues dans la table r sultat pr c dente En pratique on filtre sur le r sultat des op rations statisti ques appliqu es aux sous ensembles d finis par le groupage On reprend l exemple pr c dent qui a permis de calculer le nombre de voitures par mar ques On suppose que l on limine du r sultat les marques dont on poss de moins de deux voitures en consid rant que ces marques ne sont pas repr sentatives du parc SELECT Marque COUNT AS Compte FROM voiture GROUP BY Marque HAVING Compte gt 1 Supposons que l on veuille liminer les voitures rouges de notre calcul SELECT Marque COUNT AS Compte FROM voiture WHERE NOT Couleur Rouge GROUP BY Marque 2 4 REQU TES SUR PLUSIEURS TABLES Lorsque l on utilise plusieurs tables dans une requ te SQL il peut exister une ambigu t dans les expressions sur les noms de colonnes En effet deux tables peuvent avoir une colonne de nom ident
255. onsid re toujours une mod lisation associ e une p riode de temps donn e Au d but du processus une chambre peut ne pas encore avoir t lou e Enfin on d crit les donn es des objets et des liens Un client est caract ris par son nom son adresse et son num ro de t l phone Une chambre est caract ris e par son num ro un nombre de places son tarif journalier et la pr sence ou non d un cabinet de toilettes Une location est caract ris e par une date de d but un nombre de jours et les consom mations annexes petits d jeuners t l phone Une r servation est caract ris e par une date de d but un nombre de jours et le verse ment d une avance ventuelle 2 Mod lisation par le mod le entit association Apr s l tape de recueil d informations on dispose d un ensemble de phrases simples qui expriment les besoins d crivant la r alit mod liser on doit alors en effectuer une repr sentation Cette derni re est tr s importante car elle est la seule qui donnera une vue d ensemble des donn es et des liens qui les caract risent Le mod le obtenu cette tape est en g n ral nomm Mod le Conceptuel des Donn es MCD En effet on verra lors de l tape du passage au mod le relationnel appel galement mod le logique que cette information n appara t plus Les donn es stock es dans le SGBD seront presque inutiles si l on ne dispose pas du mod le
256. onsid rer Le suivi de la machine elle m me Par exemple la dur e de la garantie mat rielle la possibilit de retrouver les pi ces etc La dur e de vie du syst me d exploitation Un syst me qui n est plus mis jour par son diteur et qui pr sente des trous importants de s curit se r v le un tr s mauvais choix La plupart des diteurs continuent assurer une maintenance minimale pour les anciens syst mes mais ce n est pas syst matique L volutivit du SGBD Un SGBD propri taire qui n offre pas les changes de donn es avec d autres logiciels handicape la migration vers un autre SGBD De m me que pour les points pr c dents un SGBD qui pr sente des failles importantes de s curit d acc s ou de fonctionnement et qui n est plus mis jour par l diteur constitue un probl me potentiel qu aucune autre pr caution ne saurait combler Cette projection dans l avenir n est pas toujours vidente compte tenu du nombre de para m tres prendre en compte Il est difficile de pr dire qu un constructeur ou un diteur ne 160 Cr ation de bases de donn es dispara tra pas dans les ann es venir Il est important d envisager d s la conception l ventualit d une migration vers un autre SGBD ventuellement h berg par un autre syst me 1 4 SAUVEGARDE REDONDANCE ET ACCESSIBILIT DES DONN ES Sauvegarde des donn es Des copies de sauvegarde des donn es con
257. onstitue 149 Du langage parl SQL Exercices 5 Chapitre Le type de question qui inclut le mot combien sugg re que l on va effectuer un comp tage sur la table Il nous suffit de compter le nombre d enregistrements dont le champ retard est positionn Oui On a vu lors de la d finition de la table commande que le contenu du champ retard a t normalis et restreint par une contrainte d int grit aux valeurs N et O Ces r flexions conduisent la simple requ te suivante SELECT COUNT AS NombreRetard FROM commande WHERE retard O On compte le nombre de lignes de la table commande dont le champ commande est gal O On ne sp cifie pas de nom de champ dans la fonction COUNT de SQL car il s agit d un calcul ind pendant d un champ donn Pour conna tre la perte occasionn e on calcule la somme du prix de chaque commande Le mod le a t modifi pour pouvoir calculer directement cette information On a besoin du prix de base de la pizza qui se trouve dans la table pizza et du coefficient qui se trouve dans la table tarification On effectue une jointure sur ces trois tables SELECT SUM pizza prix tarification coefficient AS PerteRetard FROM commande JOIN pizza JOIN tarification ON commande NomPizza pizza NomPizza AND commande Taille tarification Taille WHERE commande retard O La fonction SQL SUM a besoin du contenu pr cis du c
258. orm s en majuscules avant d tre ins r s On fait r f rence ici la nouvelle table NEW que l on modifie avant l insertion CREATE TRIGGER ville_majuscule BEFORE INSERT ON client FOR EACH ROW BEGIN SET NEW Ville UPPER NEW Ville END Modification automatique du contenu d un champ Les triggers permettent par exemple de compl ter le m canisme d int grit r f rentielle par des contr les plus fins et la d finition des actions associ es ces derniers On consid re l exem ple de la base de donn es casse Si le prix de vente est sup rieur 40 000 lors d une insertion de donn es dans la table vente on suppose que la personne a saisi par erreur le prix en francs et non pas en euros On effectue automatiquement la conversion des francs en euros L encore on modifie les donn es de la table NEW qui contient celles que l on va ins rer CREATE TRIGGER conversion BEFORE INSERT ON vente FOR EACH ROW BEGIN IF New Prix gt 40000 THEN SET NEW Prix NEW Prix 6 5596 END IF END Mise jour d autres tables On peut galement provoquer la mise jour d autres tables l aide d un trigger Si l on ajoute un champ compte la table client qui repr sente l tat du solde de son compte vis vis de l entreprise on veut pouvoir mettre jour automatiquement le champ compte de l acheteur lors de l insertion d une op ration de vente cette occasion
259. ormation l ensemble compos par les bases de donn es le SGBD utilis et les programmes associ s Plus for mellement on appelle Base de Donn es BD un ensemble de fichiers informatiques ou non structur s et organis s afin de stocker et de g rer de l information 1 2 UTILISATION D UNE BASE DE DONN ES La cr ation d une base de donn es rec le un but pr cis elle doit permettre de retrouver de l information par son contenu en se fondant sur des crit res de recherche On d sire par exemple retrouver toutes les recettes qui n cessitent des ufs ou tous les CD qui contien nent un morceau donn La grande diff rence avec un programme crit dans un langage de programmation est qu une base de donn es doit pouvoir r pondre des questions pour lesquelles elle n a pas forc ment t pr vue la conception Une autre diff rence est que les donn es sont susceptibles d tre utilis es par des applica tions diff rentes Dans un programme classique la structuration des donn es est d crite 3 Introduction aux bases de donn es 1 Chapitre directement dans le code ce qui rend leur utilisation difficile par d autres programmes en particulier lorsque l on modifie cette structure Ce que l on recherche en utilisant une base de donn es est d assurer l ind pendance entre le traitement et les donn es C est pourquoi il est n cessaire que l application obtienne des information
260. pas de num ro de films qui ne se trouveraient pas dans le catalogue Dans tous les cas ces valeurs sont d terminer avec les usagers de la base de donn es EXERCICE 4 OP RATION ENSEMBLISTE Pour r aliser ces op rations il faut que les relations poss dent le m me sch ma L inter section entre deux ensembles peut se concevoir de la mani re suivante en utilisant l op On consid re la relation Film Prix Format Type Nombre de l exemple pr c dent Pro posez des contraintes d int grit pour chaque champ On suppose que l on ajoute un champ Num ro_Film qui correspond son identifiant dans une relation descriptive qui est un catalogue de films Que proposez vous comme contrainte pour ce champ Exprimez l intersection entre deux relations partir des op rations d union et de diff rence Donnez en une illustration avec ses deux relations voir figure 3 38 ma_cuisine Appareil Couleur Appareil Couleur R frig rateur rouge Robot mauve Cuisini re jaune sa_cuisine Appareil Couleur Appareil Couleur R frig rateur mauve Cuisini re jaune Hotte bleue Figure 3 38 Relations ma_cuisine et sa_cuisine 84 Cr ation de bases de donn es rateur de diff rence ma_cuisine sa_cuisine ma_cuisine ma_cuisine sa_cuisine voir figure 3 39 ma_cuisine sa_cuisine ma_cuisine ma_cuisine sa_cuisine On obtient bien le r sultat de
261. performances la mani re d crire les requ tes peut tre assez diff rente suivant le SGBD employ 20 Cr ation de bases de donn es 6 Plan de l ouvrage Le plan de l ouvrage est d termin par les diff rentes tapes de la conception d une BD Le deuxi me chapitre traite de l tape d analyse du monde r el pour en concevoir un mod le descriptif La mod lisation est effectu e classiquement par le mod le entit association On aborde galement la repr sentation du mod le avec UML Le troisi me chapitre est essentiellement consacr au mod le relationnel et aux op ra tions qui lui sont associ es On s int resse ensuite aux m thodes gr ce auxquelles il est possible de passer du mod le pr c dent un ensemble de tables du mod le relationnel Puis on continue par l tape de normalisation qui permet de mettre en vidence les inco h rences du syst me d information ainsi cr et de les rectifier On pr sente dans ce chapi tre les trois premi res formes normales et celle de Boyce Codd Une autre approche de la cr ation d une base de donn es partir de la relation universelle est abord e la fin du chapitre Le quatri me chapitre pr sente le langage SQL Apr s avoir expos la syntaxe g n rale du langage il s attache la r alisation en SQL des op rations relationnelles vues pr c dem ment On aborde ensuite la correspondance entre les questions classiques des
262. ppelle qu il ne s agit pas vraiment d un processus scientifique bas sur des r gles pr cises Une certaine part d intuition est n cessaire d autant plus qu il n existe pas une solu tion unique dans la majorit des cas On peut remarquer quelques mots cl s dans la description g n rale pizza ingr dient client livreur v hicule Ces descripteurs repr sentent des objets familiers du monde r el En revanche les mot cl s taille prix compte retard nom et autres sont claire ment plus des qualifiants que des objets Ce qui relie tous ces objets pour constituer la repr sentation de l activit est la notion de commande Cette derni re est l un des seuls objets abstraits compar e aux autres objets concrets du monde r el comme peut l tre un v hicule par exemple partir de ces constatations voici une proposition de quelques phrases extraites ou d duites de la description g n rale qui permettent d effectuer une premi re synth se de l activit Une pizza est constitu e de plusieurs ingr dients Un client passe une commande Une commande est livr e par un et un seul livreur Une commande est livr e par un et un seul v hicule Remarque Afin de simplifier le probl me on consid re que l op ration de base mod liser dans cette acti vit est la vente d une unique pizza La noti
263. prend les lettres les chiffres et quelques caract res de ponctuation noter que dans les caract res de con tr le on trouve un code pour ramener le chariot de l imprimante en d but de ligne CR Carriage Return et un caract re pour passer la ligne suivante LF Line Feed Les ann es 1940 voient appara tre les ordinateurs qui recourent au d part aux cartes per for es puis d autres syst mes de stockage Chaque constructeur d finit son syst me de codage il arrive parfois que plusieurs syst mes cohabitent chez le m me constructeur IBM d finit le codage BCD qui servira de base EBCDIC plus tard et utilise 6 positions Dans les ann es 1960 les constructeurs se sont regroup s pour d finir une norme com mune qui sera publi e au final par l organisme de normalisation ASS American Standard Association sous le nom de code ASCII American Standard Code for Information Inter change Le code ASCII poss de 7 positions ce qui permet de stocker 128 27 caract res Les 32 premiers caract res sont des caract res de contr le un h ritage du transfert de donn es par ruban perfor Le reste du code contient des caract res majuscules et minus cules les chiffres et des caract res divers etc De nombreuses variantes nationales existent en particulier pour le signe mon taire qui diff re suivant les pays pour les USA pour la Grande Bretagne etc En d pit de ces sp cificit s l
264. proches des m tiers informatiques Les SGBD ont volu parall lement aux concepts de mod lisation des bases de donn es On est pass d une organisation comparable celle des fichiers informatiques mod les hi rarchiques ou r seaux un mod le plus abstrait le mod le relationnel Ce mod le est toujours le plus utilis actuellement Il est associ troitement SQL un langage norma lis de description de manipulation et d interrogation de donn es La mod lisation objet adapt e aux bases de donn es n a pas connu un d veloppement consid rable et ce mal gr les avantages qu elle procure par rapport au mod le relationnel en particulier pour le typage des donn es Comme c est le cas dans le domaine de la programmation une approche mixte semble prendre de l ampleur le mod le relationnel objet Il s agit d apporter au mod le relationnel les possibilit s tendues de mod lisation procur es par les objets sans remettre profond ment en question l existant Le d veloppement des r seaux apporte d autres mani res d utiliser les bases de donn es comme la r partition des donn es pour am liorer leur disponibilit et leur s curit L interfa age avec le World Wide Web a introduit la prise en compte du langage XML comme format d change et de stockage par les SGBD De nouvelles formes d interroga tion telles que la fouille de donn es ou data mining et les bases de donn e
265. programmeur qui crirait le cahier des charges d une application Par contre le concepteur peut aussi tre administrateur du SGBD ce qui ne pose pas de probl mes particuliers d approche 5 3 ADMINISTRATEURS DE BASE DE DONN ES DBA DATABASE ADMINISTRATOR L administrateur a la responsabilit du fonctionnement g n ral du SGBD Il cr e les ressour ces bases comptes la demande Il donne les droits d acc s et g re les personnes qui acc dent au syst me Il v rifie que les ressources sont suffisantes taille du disque puissance de la machine effectue les sauvegardes v rifie les failles de s curit Pour ces op rations il est en relation avec l administrateur syst me et r seau de la structure Ce m tier est extr mement li au SGBD employ Il n y a pas vraiment de normalisation pour les op rations d adminis tration des SGBD qui sont sp cifiques au SGBD et la version utilis s 5 4 UTILISATEURS STANDARD ET PROGRAMMEURS D APPLICATIONS Ce sont eux qui utilisent le syst me d information Ils y ont acc s gr ce aux vues d finies par le concepteur de la base Ils utilisent les sch mas d termin s aux deux premi res tapes de la conception Ils n ont pas besoin th oriquement d tre sp cialis s sur le SGBD employ En pratique il est pr f rable surtout pour les d veloppeurs d applications d avoir de bonnes connaissances du fonctionnement du SGBD Par exemple pour optimiser les
266. r f rable de lui ajouter un num ro On obtient les entit s suivantes munies de leurs attributs commande NumCommande DateCom Taille Retard client NumClient NomClient Adresse Compte PointsRaPizz pizza NomPizza Prix livreur CodeLivreur NomLivreur T l phone v hicule NumImmat Marque Type ingr dient NumIngre NomIngr dient Associations et attributs On peut partir des phrases qui ont permis de rep rer les entit s en d duire les associa tions suivantes Livre entre Livreur et Commande Transporte entre V hicule et Commande Passe entre Client et Commande Constitue entre Pizza et Commande Compose entre Pizza et Ingr dient Il reste d terminer les attributs ventuels des associations Dans notre cas le choix d uti liser une entit commande fait que l on regroupe naturellement dans cette entit les attri buts qui auraient pu se retrouver sur les associations ventuellement une date de commande pourrait tre un attribut de l association Passe si elle tait diff rente de la date de la commande On peut cependant imaginer que ce genre 132 Cr ation de bases de donn es d entreprise ne prend pas les commandes l avance on commande une pizza lorsque l on a faim On se trouve donc dans le cas un peu particulier
267. r mod liser des volumes de texte importants ou d autres types de donn es multim dias sons images vid os Enfin il est beaucoup Basic Book Inc D Hofstadter Godel Escher amp Bach 6 Larousse P Larousse Petit Larousse illustr 5 Eyrolles C Delannoy Le langage C 4 First Interactive C Baroudi Internet pour les nuls 3 Eyrolles G Gardarin Les bases de donn es 2 MC Graw Hill J M Rifflet La programmation sous Unix 1 Editeur Auteur Titre Cote Ouvrage Cote Titre Auteur Editeur 7 Introduction aux bases de donn es 1 Chapitre plus commode de manipuler directement des objets lorsque l on d veloppe avec un lan gage objet comme C ou Java Les bases de donn es on le rappelle sont dor navant des briques constitutives des applications Les bases de donn es orient es objet appor tent ainsi aux applications d velopp es en langage objet la persistance des objets manipul s ces derniers peuvent ainsi directement tre r utilis s par l application d ori gine ou par d autres sans red finition Ces concepts ont t int gr s partir de la version 2 de la norme SQL Les produits commerciaux adapt s ces concepts n ont pas connu une diffusion suffisam ment importante Le monde des bases de donn es volue assez lentement la migration d un syst me d information vers l objet repr sente pour une organisation un investisse ment consid rable qui n
268. r un v hicule Si l on sup pose que les constructeurs d posent le nom du type de leur v hicule il permet de d terminer sans ambigu t le nom de la marque Ce dernier pouvant tre identique pour deux v hicules on vite ainsi la redondance provoqu e par sa r p tition En toute rigueur on serait conduit dans ce cas d composer la relation v hicule en deux relations v hicule NumImmat Type constructeur Type Marque On remarque imm diatement la complexit introduite par cette d composition en regard du gain apport pour viter une redondance modeste surtout si le nombre de v hicules est relativement faible Apr s analyse on ne trouve de relations de d pendance entre aucun des champs de la relation commande qui ne font pas partie de la cl c est dire les champs DateCom Taille Retard CodeLivreur NumImmat NumClient et Nom Pizza S il y avait de tr s mauvais livreurs qui livrent syst matiquement en retard et d autres qui ne livrent jamais en retard il pourrait exister une relation de d pendance entre les champs CodeLivreur et Retard mais cela est peu probable dans la r alit On pourrait trouver une relation de d pendance entre les champs de cette relation en for ant un peu le raisonnement pour la relation Livreur En effet si l on suppose que le t l phone est un num ro de portable personnel et qu il est a
269. ransactions sont r sum es par le terme ACID Atomicit Une transaction est atomique elle est ex cut e enti rement ou abandonn e Coh rence La transaction doit se faire d un tat coh rent de la base vers un autre tat coh rent Isolement Des transactions simultan es ne doivent pas interf rer entre elles Durabilit La transaction a des effets permanents m me en cas de panne Les qualit s des transactions sont un argument de vente pour un SGBD Il est en effet complexe de trouver un compromis entre la s curit et les performances Bien qu il s agisse d un m canisme prouv qui existe depuis fort longtemps les transactions ainsi que les techniques de gestion des acc s concurrentiels restent des sujets de recherches importants dans les laboratoires Les transactions font partie de la norme SQL R alisation des transactions dans les SGBD Pour mettre en uvre les transactions le SGBD doit offrir l exclusivit d acc s aux don n es ainsi que la possibilit d annuler des modifications effectu es Afin de garantir l acc s exclusif aux donn es le SGBD utilise les verrous vus pr c demment Ces m canismes sont associ s des algorithmes de protection sophistiqu s afin de pr venir les probl mes des m thodes de verrouillage La possibilit de revenir en arri re repose sur l utilisation d un journal de transactions Pour ce faire le SGBD garde une trace de toutes les requ t
270. re Type doit tre cr e 1 Mod le conceptuel H tel ID_Hotel Nom_hotel CP Ville Chambre ID_Chambre Num_chambre Type ID_Type Libelle Prix Reserver Date_debut Date_Fin entre Client et Chambre 1 n 0 n Composer entre Chambre et Hotel 1 1 1 n Correspondre entre Chambre et Type 1 1 0 n 2 Mod le relationnel Hotel ID_Hotel Nom_hotel CP Ville Chambre ID_Chambre Num_chambre ID_hotel ID_Type Type ID_Type Libelle Prix Reserver Code_client ID_Chambre Date_debut Date_fin Client Code_client Nom_client Prenom_client Num_tel Adresse CP Ville 3 Code SQL de cr ation des tables CREATE TABLE HOTEL ID_HOTEL INT PRIMARY KEY NOM_HOTEL VARCHAR 20 NOT NULL CP VARCHAR 5 NOT NULL VILLE VARCHAR 50 NOT NULL CREATE TABLE CHAMBRE ID_CHAMBRE INT PRIMARY KEY NUM_CHAMBRE INT NOT NULL ID_HOTEL INT REFERENCES HOTEL ID_HOTEL ID_TYPE INT NOT NULL REFERENCES TYPE ID_TYPE CREATE TABLE TYPE ID_TYPE INT PRIMARY KEY LIBELLE VARCHAR 50 NOT NULL PRIX FLOAT 10 2 CHECK LIBELLE IN SIMPLE DOUBLE ROYALE 1 R alisez le mod le conceptuel des donn es sp cifiez les cardinalit s 2 D duisez en le mod le entit association correspondant 3 Cr ez les tables correspondantes commande SQL create table en sp cifiant les cl s uniques Indiquez les contraintes d int grit pour ces tables 4 Donnez la requ te permettant de lister les r servation
271. regroupe constituent une personne Enfin il faut identifier les liens mod liser entre ces objets ainsi que les l ments caract ristiques de ces liens Par exemple une personne ach te une voiture 10 000 euros Ici les deux objets li s sont personne et voiture et le prix est le composant du lien Cette tape est d licate et fondamentale car elle conditionne l aspect repr sentatif et la qualit du mod le du monde r el consid r Lors de cette phase il convient galement d exprimer les r gles qui d finissent le domaine de validit du contenu des champs Par exemple le prix d une voiture ne peut pas tre inf rieur 500 euros ou sup rieur 150 000 euros Cette mod lisation du r el permet de proposer un sch ma conceptuel qui servira la des cription g n rale du syst me d information La notion de sens des donn es et surtout des liens entre les entit s ne sera r ellement exprim e que dans ce sch ma qui est plus proche du monde r el Ce sch ma est souvent r alis l aide de la symbolique du mod le entit association ou plus couramment aujourd hui exprim avec le langage UML Unified Modeling Language Il existe diff rentes m thodes int grant les concepts pr sent s ci des sus L objectif est de guider le travail d analyse et d aider la r alisation d un mod le de donn es le plus juste possible Parmi celles ci la m thode Merise a connu un certain
272. relationnelle 3 Chapitre Publication NumPubli Titre Auteurs Une solution pour r soudre ce probl me est de d composer le champ Auteurs en Auteur_1 Auteur_2 Auteur_3 Auteur_4 etc Ainsi la relation est bien en premi re forme normale L ennui est que l on ne sait pas l avance le nombre d auteurs que peut poss der une publication et le probl me consiste donc savoir combien de champs ajouter La solution plus correcte mais galement plus lourde mettre en uvre est de d compo ser cette relation en trois relations Publication NumPubli Titre Auteur NumAuteur Nom Prenom et EstEcrite NumPubli NumAuteur Ces trois relations sont la repr sen tation de la r alit une publication est crite par des auteurs Elle se mod lise par deux entit s Publication et Auteur reli es par l association EstEcrite comme on l a vu au chapitre 2 Analyse du monde r el On obtient alors le r sultat suivant voir figure 3 24 Publication NumPubli Titre Auteur NumAuteur Nom Prenom NumPubli Titre Auteurs 13490 Le vin et l avenir Jean Lasso Hubert De la Tuque Stanislas Wilski 21322 Bi re et progr s social Aristide Salem Jean Lasso Salome Dupont 45333 Le champagne et la France Penelope Light Vanessa Martinez Salome Dupont NumPubli Titre 13490 Le vin et l avenir 21322 Bi re et progr s social 453
273. requ te SELECT personne Ville personne NumAch vente NumAch FROM personne LEFT OUTER JOIN vente ON personne NumAch vente NumAch S lection dans cette table r sultat des l ments n ayant pas de correspondance dans vente et qui ont donc une valeur NULL pour la colonne NumAch SELECT personne Ville FROM personne LEFT OUTER JOIN vente ON personne NumAch vente NumAch WHERE vente NumAch IS NULL noter que la question demandait d tablir la liste des villes Si le contenu de la base de donn es tait plus important la m me ville pourrait appara tre plusieurs fois dans la r ponse Pour viter ce cas de figure on pr cise que l on veut la liste des diff rentes occur rences de ville par le mot cl DISTINCT SELECT DISTINCT personne Ville FROM personne LEFT OUTER JOIN vente ON personne NumAch vente NumAch WHERE vente NumAch IS NULL EXERCICE 10 S LECTION SUR UN AGR GAT D UNE JOINTURE Les informations permettant de r pondre cette question se trouvent dans deux tables vente et voiture Il nous faut donc effectuer une jointure sur la colonne NumVoit pour lier ces deux tables SELECT vo Marque ve Prix FROM voiture AS vo JOIN vente AS ve ON vo NumVoit ve NumVoit Ensuite on utilise l op ration d agr gation pour effectuer un regroupement par Marque et calculer pour chaque sous ensemble la moyenne des prix de vente SELECT vo Marque AVG ve
274. reur sur la couleur dans la table voiture qu il veut modifier L utilisateur miller veut ins rer la fois une nouvelle voiture dans la table voiture et la mention de sa vente dans la table vente La s quence d instruction peut tre la suivante L utilisateur pastorius pose un verrou sur la table vente L utilisateur miller pose un verrou sur la table voiture L utilisateur pastorius a termin la mise jour de vente et veut r aliser celle de voi ture mais la table voiture est verrouill e par miller L utilisateur miller a termin la mise jour de voiture et veut proc der celle de vente mais la table vente est verrouill e par pastorius On parvient une situation o les deux utilisateurs attendent que l autre lib re la res source pour continuer videmment c est une attente infinie qui se profile pour chacun D autres ph nom nes de blocage peuvent survenir dans l utilisation des verrous On parle parfois dans ce cas de famine Voici un exemple illustrant cette possibilit L utilisation classique des verrous pour prot ger l acc s une ressource est la suivante algorithme des lecteurs r dacteurs Tous les lecteurs peuvent lire en m me temps Si un r dacteur veut crire aucun lecteur ne doit plus utiliser la donn e Si un r dacteur e
275. ri DateMariage Chambre IDChambre NombrePlaces Tarif Client IDClient Nom Adresse NumT l phone Location DateD but NombreJours 1 n 0 n 34 Cr ation de bases de donn es Figure 2 7 Entit s client chambre et association location avec cardinalit 2 4 CAS D TUDE CASSE On a pr sent dans le chapitre d introduction la base de donn es exemple casse qui d crit l activit de vente de voitures d occasion Voici sa mod lisation sous forme de mod le entit association On rappelle la description de ce syst me Deux entit s du monde r el sont identifi es les personnes et les voitures Une voiture est caract ris e par sa marque son type sa couleur Une personne est caract ris e par son nom son ge sa ville son sexe L action mod lis e est la vente caract ris e par le prix de la vente et sa date Une personne peut acheter plusieurs voitures ou aucune Une personne peut acheter aucune ou plusieurs voitures Une voiture peut tre vendue ou non Recherche des identifiants Les deux entit s voiture et clients ainsi que leurs attributs respectifs sont bien d finis il manque pour chacune de ces entit s un identifiant capable de diff rencier les occurrences ou repr sentants des entit s voitures et des clients Sur cet exemple simple il est facile de v rifier qu aucun attribut ni ensemble d attributs ne permet d
276. ributs la solution consiste les fusionner en une entit unique personne Cette op ra tion conduit une association entre les entit s personne et livre emprunte et les enti t s personne et ouvrage a_ crit voir figure 2 12 Figure 2 12 Entit s livre ouvrage personne li es par les associations emprunte a_ crit et est_un_exemplaire sans cardinalit s On a identifi dans cette sous section plusieurs cas qui n cessitent de r organiser les enti t s obtenues lors d une premi re analyse Si l on rep re l int rieur d une entit des attributs qui repr sentent un ensemble logi que mis en valeur dans l exemple par un d faut d identifiant pour un livre on s pare ces attributs dans une entit suppl mentaire Si des attributs dans une m me entit poss dent une s mantique identique auteurs num ros de t l phone multiples on cr e une entit suppl mentaire pour s parer ces attributs Cette entit sera associ e celle dont proviennent les attributs l origine Si des entit s ont la m me structure et repr sentent le m me type d objet on les fusionne et l on conserve les associations qui existaient avant la fusion On retrouvera ce processus de remise en question du mod le un autre niveau lors de l tape de normalisation qui est abord e au chapitre 3 3 3 LIMINATION ET FUSION
277. rique cuisini re jaune Bill Evans Piano Nom Ville Henri Paris Stanislas Paris Figure 3 7 Relations ma_cuisine et musicien Figure 3 8 Produit cart sien des relations ma_cuisine et musicien Figure 3 9 Projection des champs Nom et Ville de la relation Lecteur 63 Approche relationnelle 3 Chapitre Intuitivement dans une repr sentation de type table on conserve uniquement les colon nes sur lesquelles la projection est faite S lection ou restriction La s lection consiste extraire les enregistrements de la relation On utilise des crit res pour caract riser les enregistrements s lectionn s Voici la relation obtenue partir de la relation Lecteur en s lectionnant les enregistrements dont le contenu du champ Ville est Marseille voir figure 3 10 La structure de la relation r sultat est la m me que celle de la relation de d part Lecteur_sel Numero_carte Nom Age Ville Etablissement Intuitivement dans une repr sentation de type table on conserve uniquement les lignes r pondant au crit re Jointure La jointure est l op ration fondamentale de l alg bre relationnelle qui permettra d expri mer le sens du lien entre les relations dans le monde r el La liaison entre les relations s effectue par le contenu commun d un champ L op ration de jointure peut tre vue comme une s lection des enregistremen
278. rix CodeLivreur NomLivreur T l phone NumIngre NomIngre NumImmat Marque Type Livre Transporte Passe Compose 1 n 1 n 0 n 1 1 1 1 1 1 1 1 1 n 1 n 0 n Tarification Taille Coefficient Utilise 1 1 0 n Constitue 147 Du langage parl SQL 5 Chapitre pilogue Cet exemple illustre comment le mod le entit association peut tre remis en cause par n cessit Le probl me de repr sentation de d part a provoqu une modification du mod le par une d marche inverse de celle utilis e pr c demment on a remis en cause le mod le entit association partir de l ensemble des relations En revanche il ne faut pas oublier de modifier le mod le entit association pour qu il soit coh rent avec l ensemble des tables employ es dans le SGBD Les tables sont inutilisables sans mod le descriptif On peut le constater avec ce syst me relativement simple qui poss de d j huit tables Les allers retours entre les diff rents niveaux de mod les sont fr quents dans la vie d une base de donn es R sum Ce chapitre d taille l ensemble des tapes n cessaires la r alisation d une base de don n es m me les plus fastidieuses La grande difficult est de passer d un nonc en langage parl qui fait g n ralement suite un entretien avec les commanditaires et les utilisateurs un syst me utilisable en pratique et efficace Le flot d i
279. rmales traitent des probl mes diff rents L ordre dans lequel on les consid re pour la normalisation mise en deuxi me forme puis en troisi me forme normale est plut t li l historique qu une n cessit r elle Figure 3 27 Relation Baladeur Figure 3 28 D composition de la relation Baladeur pour passer en troisi me forme normale 75 Approche relationnelle 3 Chapitre 4 4 FORME NORMALE DE BOYCE CODD La forme normale de Boyce Codd traite un cas un peu diff rent de ceux de la deuxi me et troisi me forme normale Il s agit du cas o une partie d une cl d pend d un champ Comme pour la troisi me forme normale la cl consid r e peut tre une cl primaire ou secondaire Une relation en troisi me forme normale n est pas toujours en forme Boyce Codd mais l inverse est toujours vrai Tout champ appartenant une cl ne d pend pas d un autre champ non cl Comment passer en forme normale de Boyce Codd Lors de la d composition de la relation en deux relations plusieurs choix sont envisagea bles compte tenu des liens de d pendances multiples entre les diff rents champs On choi sit la d composition qui permet de reconstituer strictement l information d origine sans g n rer de donn es suppl mentaires La perte d une d pendance fonctionnelle est fr quente lors de cette op ration La relation cr e a pour cl la partie de celle ci dont d p
280. roduit cart sien et une jointure Quel est le nom du livreur qui a le plus de retard 152 Cr ation de bases de donn es SELECT livreur NomLivreur FROM requete1 JOIN livreur ON livreur CodeLivreur requete1 CodeLivreur requete2 WHERE requete1 NombreRetard requete2 MaxRetard Avec un peu d exp rience on s aper oit qu il s agit d une requ te semblable celle que l on pr sente dans le chapitre pour conna tre les clients qui commandent plus que la moyenne EXERCICE 6 SIMPLE S LECTION OU JOINTURE EXTERNE La tournure de phrase qui n a jamais semble sugg rer l emploi d une jointure externe comme c tait d j le cas dans le chapitre o on a d termin les v hicules n ayant jamais servi Cependant cette jointure externe sert d terminer les entit s non associ es dans une jointure Ici on peut obtenir l information du retard directement dans la table com mande Si l on consid re les r sultats de l exercice pr c dent on a calcul le nombre de retards par livreur par la requ te suivante CREATE TEMPORARY TABLE requete1 SELECT commande CodeLivreur COUNT AS NombreRetard FROM commande GROUP BY commande CodeLivreur ORDER BY NombreRetard Un livreur n aura jamais t en retard si le nombre de retards ainsi calcul est gal z ro SELECT requete1 CodeLivreur FROM requete1 WHERE requete1 NombreRetard 0 On cherche le nom du livreur et non pas son code I
281. roits une hi rarchie de groupes et sous grou pes peut relever du casse t te Afin de r soudre ce probl me on dispose d un autre mod le de distribution des droits le r le Celui ci d signe un assortiment de droits que l on d sire affecter un objet du SGBD C est une vue invers e o les utilisateurs prennent le s r le s dont ils ont besoin pour pouvoir travailler sur les objets du SGBD qui les concernent L instruction pour cr er un r le est la suivante CREATE ROLE consultation_seulement L affectation des droits un r le et la distribution de r les des utilisateurs sont pr sent es la section suivante La gestion des r les m me s ils font partie de la norme SQL n est pas propos e par tous les SGBD Il en est de m me pour les groupes d utilisateurs ou tout sim plement de la notion d utilisateur qui n existe pas toujours dans le SGBD En r sum il n y a pas de r gle g n rale de gestion des autorisations de connexion au SGBD L initiative en est laiss e l diteur du SGBD Cet aspect peut provoquer des soucis lors de la migration vers un autre SGBD Remarque En pratique la plupart des SGBD int grent une instruction pour cr er un utilisateur et lui associer un identifiant qui reste unique M me si elle n est pas d finie r ellement dans la norme SQL elle est fr quemment de la forme CREATE USER lt type de droit gt IDENTIFIED BY lt identifiant gt Cet
282. s Remerciements Je tiens remercier ric Innocenti pour son implication dans le projet Je remercie parti culi rement Christophe Lenne chez Pearson Education France notamment pour sa patience Introduction aux bases de donn es 1 Chapitre 1 Qu est ce qu une base de donn es 2 2 volution des bases de donn es et de leur utilisation 4 3 Syst mes de gestion de bases de donn es 13 4 tapes de la conception des bases de donn es 17 5 M tiers des bases de donn es 19 6 Plan de l ouvrage 20 7 Pr sentation de la BD exemple 20 Exercices 1 Notion de base de donn es 22 2 Recherche dichotomique 22 3 Langages d un SGBD 23 4 Mod les de repr sentation 23 5 M tiers des bases de donn es 23 6 Utilisateurs d une base de donn es 24 7 Vues externes 24 8 Base de donn es r parties 25 9 XML 25 10 Fouille de donn es et entrep ts de donn es 26 Au cours des derni res ann es les bases de donn es ont connu un d veloppement consid rable au point qu elles jouent d sormais un r le dans chacune de nos op rations quotidie
283. s agit d une franchise o les contenus sont norma 139 Du langage parl SQL 5 Chapitre lis s on peut imaginer que l ensemble des noms de pizzas est connu par exemple quatre saisons margherita Le champ NomPizza appara t dans plusieurs tables mais la con trainte de type num ration porterait uniquement sur le champ NomPizza de la table pizza Les autres champs NomPizza sont plut t soumis des contraintes de r f rences comme on va le voir dans la partie consacr e aux r f rences R f rence au contenu d une table Les champs cl s qui proviennent des associations transform es en relations font r f rence au contenu des relations qui proviennent des entit s Pour la relation compose le champ NumIngre fait r f rence au contenu du champ NumIngre de la table ingr dient et le champ NomPizza au contenu du champ NomPizza de la table pizza En pratique ici la plupart des champs fusionn s de la relation commande font aussi r f rence des champs d autres relations CodeLivreur de la relation commande R f rence au champ CodeLivreur de la rela tion livreur NumImmat de la relation commande R f rence au champ NumImmat de la rela tion vehicule NumClient de la relation commande R f rence au champ NumClient de la relation client
284. s chelles et ces aspects sont trait s dans cet ouvrage au m me niveau que les notions th oriques Organisation de l ouvrage Le chapitre 1 est une introduction la notion de base de donn es et aux m tiers associ s Il propose une mise en perspective de l volution des bases de donn es mais aussi de leur uti lisation fouille de donn es entrep ts de donn es etc Les chapitres 2 3 et 4 d crivent les diff rentes tapes de la conception d une base de donn es la construction du mod le conceptuel entit association dans cet ouvrage le passage au mod le relationnel puis la r alisation avec le langage SQL X Cr ation de bases de donn es Le chapitre 5 reprend les notions pr sent es dans les chapitres pr c dents en les appliquant un exemple concret ainsi trait de mani re compl te Un regard critique sur la mod lisation effectu e conduit la remise en cause et l volution du mod le Le chapitre 6 est consacr la pr servation des donn es En effet une fois le processus de cr ation r alis on doit mettre en uvre des outils pour garantir la p rennit des don n es Apr s avoir nonc quelques conseils g n raux on pr sente ici les deux outils fonda mentaux que sont les transactions et les d clencheurs triggers Notation Les mots importants d une section sont mis en exergue par l utilisation de gras Lorsque l on fait r f rence des objets d finis dans
285. s serveurs consiste r partir les donn es entre ces serveurs Ainsi cette op ration se fait par l architecture m me de la base de donn es qui est dite r partie En revanche cette solu tion ne r sout pas le probl me de la recopie des donn es Si l un des serveurs tombe en panne il n existe pas contrairement au syst me pr c dent de m canisme automatique pour le remplacer On peut envisager des variantes qui panachent les deux syst mes par exemple on peut mettre en place un serveur ma tre qui recopie une partie des donn es sur les secondaires Cette probl matique g n rale est illustr e par les grands moteurs de recherche ou encore les serveurs de vid o qui utilisent plusieurs milliers de serveurs r partis sur le r seau Internet EXERCICE 3 NIVEAUX D UTILISATION D UNE BASE DE DONN ES La notion d utilisateur ne repr sente pas forc ment une personne physique il s agit le plus souvent d applications qui disposent ou non de droits sur certaines donn es En pre mi re approche on peut distinguer trois grandes cat gories d utilisateurs de la base de donn es Les clients peuvent consulter les informations les concernant ainsi que le catalogue des pizzas disponibles avec leur prix et leur composition L activit courante qui par cons quent va g n rer les mises jour les plus fr quentes est la commande de pizzas Les utilisateurs concern s sont les employ s qui mettent
286. s d ducti ves permettent d extrapoler de l information non explicitement stock e dans les bases de donn es Ces approches ainsi que la prise en compte des donn es multim dias vont faire voluer les mod les de bases de donn es et les SGBD que l on utilise actuellement Cela se fera probablement sans remettre totalement en cause le mod le relationnel mais plut t en le faisant voluer progressivement Type Marque Couleur Nom ge Ville Sexe Vente 22 Cr ation de bases de donn es Exercices EXERCICE 1 NOTION DE BASE DE DONN ES On peut lister ces points essentiels qui les diff rencient Il n est pas n cessaire de conna tre la m thode de stockage des informations sur le dis que pour manipuler les donn es avec une base de donn es Un fichier informatique simple n est pas con u pour effectuer une recherche d infor mation par le contenu pour retrouver le s enregistrement s on est oblig de par courir tout le fichier Les modifications de structure ajout suppression d un champ ou modification de sa taille n cessitent de recr er un autre fichier et d y recopier les donn es Une base de donn es contient en g n ral plusieurs fichiers dont les enregistrements sont reli s entre eux EXERCICE 2 RECHERCHE DICHOTOMIQUE Soit V la valeur recherch e Ti le tableau d index de taille n On suppose que la table d index contient les valeurs du champ index
287. s derni res ann es la repr sentation utilisant le formalisme du mod le entit association est progressivement remplac e par le langage de mod lisation UML Ce dernier apporte en plus des avantages de la normalisation de la disponibilit d outils graphiques logiciels ainsi que des possibilit s tendues de description Les bases de la notation UML sont abord es la fin de ce chapitre 28 Cr ation de bases de donn es 1 D marche d analyse 1 1 APPROCHE DU MONDE R EL Comment appr hender et simplifier le monde r el par nature complexe pour r aliser une mod lisation Cette t che rel ve de comp tences multiples du domaine d un cabinet de consulting Il est n cessaire d identifier les besoins des utilisateurs ainsi que les objectifs et les processus d alimentation en donn es des syst mes d information concevoir Les bases de donn es sont dor navant au c ur de la plupart des applications et leur structure doit correspon dre au mieux aux attentes de l organisation Son laboration n cessite diff rentes tapes et se d roule souvent en m me temps que le processus d analyse du probl me Des allers retours entre ces diff rentes tapes de la con ception sont souvent n cessaires la constitution du mod le conceptuel de la base On qualifie alors ce processus d it ratif Il s agit de construire la structure de la base de don n es par raffinements successifs La pr
288. s du S n gal NULL NUL NUL NUL NUL 111 Le temps expliqu NUL NUL NUL NUL NUL 12 Les imp ts faciles 12 4 3 Noir Blanc 890 12 Titre Les chats du S n gal Le temps expliqu Quelle est la moyenne des prix pour les films par format Figure 3 49 S lection et projection de la jointure externe des relations Film et Catalogue Figure 3 50 Jointure externe des relations Catalogue et Film Figure 3 51 S lection et projection de la jointure externe des relations Catalogue et Film 89 Approche relationnelle Exercices 3 Chapitre valeurs pour toute la relation 4 3 et 16 9 L op ration s appelle r aliser des agr gats par rapport au contenu d un champ Ensuite pour ces deux sous relations on calcule la moyenne des valeurs du champ Prix Dans la relation r sultat on a le champ projet For mat et le champ calcul Moyenne voir figure 3 52 EXERCICE 10 PASSAGE DU MOD LE ENTIT ASSOCIATION AU RELATIONNEL On applique les r gles classiques de passage vues pr c demment dans ce chapitre Une entit devient une relation compos e des champs de l entit ayant comme cl celle de l entit Client NumClient Nom Prenom Adresse Tel Compte Films NumFilm Titre Genre Prix NombreDVD Personnels NumPers Nom Prenom Les associations deviennent des relations ayant comme champs c
289. s effectu es en 2006 156 Cr ation de bases de donn es CREATE TABLE RESERVER CODE_CLIENT VARCHAR 9 NOT NULL REFERENCES CLIENT CODE_CLIENT ID_CHAMBRE INT NOT NULL REFERENCES CHAMBRE ID_CHAMBRE DATE_DEBUT DATE DATE_FIN DATE CREATE TABLE CLIENT CODE_CLIENT VARCHAR 9 PRIMARY KEY NOM_CLIENT VARCHAR 50 NOT NULL PRENOM_CLIENT VARCHAR 50 NOT NULL NUM_TEL VARCHAR 10 NOT NULL ADRESSE VARCHAR 250 CP VARCHAR 5 VILLE VARCHAR 50 NOT NULL 4 Code SQL permettant de lister les r servations de 2006 SELECT FROM RESERVER WHERE DATE_DEBUT gt 01 01 2006 AND DATE_FIN lt 31 12 2006 Pr servation des donn es 157 Chapitre 1 Contr le d acc s et sauvegarde 158 2 Limitations d acc s au SGBD 161 3 Transactions 166 4 Triggers 173 Exercices 1 S curit de base 176 2 Disponibilit des donn es 176 3 Niveaux d utilisation d une base de donn es 177 4 Gestion des droits 178 5 Vues 179 6 Transactions 181 7 Trigger 182 Ce chapitre traite de la s curit des donn es qui est une notion fondamentale des bases de donn es En effet le pire pour une base de donn es est la perte o
290. s ont la particularit de ne pouvoir s utiliser que pour des relations qui ont exactement la m me structure ou des structures compatibles Elles sont toutes de type binaire car elles s appliquent deux relations Union L op ration d union consiste en la mise en commun des enregistrements de chaque relation Les enregistrements identiques ne sont int gr s qu une seule fois Dans l exemple ci apr s voir figures 3 3 et 3 4 le tuple dont la valeur du champ Numero_carte vaut 3 ne sera pas dupliqu L union est repr sent e par le caract re Cette op ration sert typiquement la consolidation de donn es de m me type provenant de diff rentes sources Lecteur_1 Numero_carte Nom Age Ville Etablissement Lecteur_2 Numero_carte Nom Age Ville Etablissement Numero_carte Nom Age Ville Etablissement 1 Henri 10 Paris Universit Sorbonne 2 Stanislas 34 Paris Universit Jussieu 3 Henriette 44 Lyon CHU Bron Numero_carte Nom Age Ville Etablissement 3 Henriette 44 Lyon CHU Bron 4 Dominique 19 Nancy Universit Poin car 5 Isabelle 56 Nancy INPL Figure 3 3 Relations Lecteur_1 et Lecteur_2 61 Approche relationnelle 3 Chapitre Lecteur_1 Lecteur_2 Diff rence L op ration diff rence consiste d signer les enregistrements qui appartiennent une relation sans appartenir l autre La diff rence est repr se
291. s pour caract riser l association Ces nombres mod lisent le nombre d occurrences minimales et maximales des entit s impliqu es dans l association Par exemple comme illustr e sur la figure ci apr s voir figure 2 6 une association binaire sera caract ris e enti rement par quatre nombres En effet chaque entit participe de mani re diff rente l association Figure 2 6 Cardinalit s d une association binaire Les cardinalit s peuvent prendre les valeurs suivantes De un un not e 1 1 Une brosse dents poss de en th orie un 1 et un 1 seul pro pri taire De un plusieurs not e 1 n Un livre a au moins un 1 auteur il peut en poss der plusieurs n On ne consid re pas les ouvrages anonymes Optionnel not e 0 1 Une personne est c libataire 0 ou mari e l galement une 1 autre personne au plus De z ro plusieurs not e 0 n Un appartement peut tre libre 0 ou habit ventuel lement par plusieurs habitants n Dans l exemple de l h tel pr c dent l analyse pr alable permet de d duire les propri t s suivantes voir figure 2 7 Un client loue au minimum une 1 chambre il peut en louer plusieurs n La cardi nalit est donc de 1 n Une chambre peut tre lou e plusieurs fois n et elle peut ne pas tre occup e 0 La cardinalit est donc de 0 n Client IDPersonne Nom Adresse NumT l phone Est ma
292. s sur la structure des donn es nom type taille etc Pour ce faire on associe la base de donn es une description que l on appelle m tadonn e ou catalogue Cette derni re d crit la structure interne de la base de donn es qui est sp cifique au SGBD employ voir figure 1 1 En plus de la structure et du type des donn es on stocke galement cet endroit les informations con cernant les r gles de coh rence des donn es abord es la section suivante Figure 1 1 Base de donn es de CD et m tadonn e L id e g n rale est que l utilisateur ou l application utilisatrice des donn es ne doit pas tre d pendante de leur repr sentation interne ce qui constitue une abstraction des donn es C est la raison pour laquelle on utilise une description des donn es sous la forme d un mod le pour permettre la restitution la plus efficace possible de l information 1 3 QUALIT D UNE BASE DE DONN ES Comme on l a voqu pr c demment l un des objectifs de cr ation d une base de donn es est de pouvoir retrouver les donn es par leur contenu Dans cette optique il faut s assurer que les donn es contenues dans la base sont de bonne qualit Comment d finir la qualit des donn es De nombreux crit res peuvent tre pris en compte on peut citer parmi les principaux la coh rence des donn es contenues dans la base l absence de redondance La coh rence d
293. s valeurs possibles par exemple do r mi fa sol l expression d un intervalle dans lequel les valeurs sont contenues par exemple com pris entre 10 et 30 la r f rence aux valeurs d un champ d une autre table par exemple contenu du champ code_postal de la table communes Seule la description du type est obligatoire pour cr er un champ les autres contraintes tant videmment optionnelles Les champs dont les valeurs doivent tre absolument ren seign es sont indiqu s sp cifiquement en langage SQL par le mot cl NOT NULL Type s des donn es La d finition du type des donn es a pour but de faire une premi re restriction sur les valeurs que peut prendre un champ et surtout de sp cifier les op rations et fonctions qu il sera possible de lui appliquer L utilisation du type date pour le champ DateCom permet tra d utiliser des fonctions d extractions du mois du jour de la semaine ainsi que d autres op rations sp cifiques aux donn es de type date pour ce champ Le champ Telephone de la table livreur ne contiendra que des valeurs de type num rique mais on n effectuera jamais d op rations de calculs sur ce champ une moyenne des num ros de t l phone n a gu re de sens En revanche l extraction d un pr fixe comme par exemple les deux pre miers chiffres d un num ro peut tre utile On emploie alors un champ de
294. s_base GRANT ALL PRIVILEGES ON pastorius_base TO pastorius L utilisateur pastorius cr e la table jaco dans la base de donn es pastorius_base et donne l acc s de type SELECT l utilisateur nhop pr alablement cr USE pastorius_base CREATE TABLE jaco NumMorceau INT PRIMARY KEY Titre CHAR 50 GRANT SELECT ON jaco TO nhop On obtient un message d erreur l utilisateur pastorius n a pas le droit de retransmettre ses droits un autre utilisateur L administrateur aurait d entrer la commande suivante GRANT ALL PRIVILEGES ON pastorius_base TO pastorius WITH GRANT OPTION Cette fois la commande de transmission de droits peut tre faite par l utilisateur pastorius 164 Cr ation de bases de donn es GRANT SELECT ON jaco TO nhop L utilisateur nhop a le droit d effectuer toutes les op rations de consultation de la table jaco de la base de donn es pastorius_base il peut par exemple ex cuter la s quence suivante USE pastorius_base SELECT FROM jaco Lorsque l on veut donner un droit tous les utilisateurs du SGBD on utilise le mot cl PUBLIC comme nom d utilisateur GRANT SELECT ON jaco TO PUBLIC L ensemble des utilisateurs peut alors interroger la table jaco de la base de donn e pastorius_base On peut affiner ces permissions en ne les accordant que pour certains champs de la t
295. se de l approche relationnelle On peut alors consid rer un SGBD comme un outil de d monstration de th or mes tels que l on peut en rencontrer en intelligence artificielle qui agirait sur un ensemble tr s restreint de r gles 5 3 INTERROGATION PAR QBE QUERY BY EXAMPLE Lors de la phase de d veloppement du prototype de SGBD bas sur l approche relation nelle dans les laboratoires d IBM un premier sous produit a t con u le langage d inter rogation SEQUEL puis SQL Une autre m thode d interrogation a t d velopp e cette occasion les QBE Query By Example L id e est de disposer d un mode d interrogation d une base de donn es sans conna tre de langage et en utilisant le formalisme vu la sec tion pr c dente pr sent sous une forme graphique Comme son nom l indique on va utiliser des exemples pour d finir les questions La relation est repr sent e sous la forme d un tableau La projection d un champ se fait en cochant la case correspondant au nom de la colonne voir figure 3 31 Afficher la liste des marques et des types de voitures m t voiture _ m t _ Les crit res de s lection se font par des valeurs exemples voir figures 3 32 et 3 33 NumVoit Marque Type Couleur Figure 3 31 Projection du champ Marque dans un QBE 79 Approche relationnelle 3 Chapitre Afficher le type des voitures de couleur rouge t voiture _ _
296. se du monde r el deux formalismes diff rents entit association et UML pour repr senter le mod le conceptuel obtenu Il existe des r gles simples pour passer de ces mod les un ensemble de relations qui sera utilisable directe ment dans le SGBD Cet ensemble de relations s appelle le sch ma relationnel et constitue le mod le logique des donn es On pr sente dans cette section les r gles de transition qui permettent d exprimer le sch ma relationnel partir du mod le conceptuel des donn es Pour illustrer ces r gles on utilise la terminologie du mod le entit association mais leur expression est ais ment adaptable au formalisme UML 3 1 R GLES G N RALES Deux grandes r gles g n rales s appliquent toujours quel que soit le cas Les exceptions que l on aborde ensuite permettent simplement d obtenir un sch ma plus compact Une entit devient une relation compos e des champs de l entit La cl de cette rela tion est la m me que celle de l entit Une association devient une relation compos e des deux cl s des entit s associ es L ensemble de ces deux cl s constitue celle de la relation Lorsqu elle en poss de les champs de l association forment les champs non cl s de cette nouvelle relation Figure 3 21 Mod le entit association de la base de donn es casse partir du mod le entit association de la base de donn es casse labor au ch
297. sert r aliser les s lections sur une table standard On utilise le mot cl HAVING qui fait une s lection sur le r sultat des calculs sur les agr gats Cette s lec tion se fait de m me que le tri la fin de l op ration sur la table r sultat finale SELECT commande NomPizza COUNT AS NombreCommande SUM pizza prix tarifica tion coefficient AS TotalCommande Donnez le chiffre d affaires par pizza vendue On ne tient pas compte ce niveau des piz zas gratuites obtenues gr ce aux points de fid lit ou en raison d un retard de livraison 151 Du langage parl SQL Exercices 5 Chapitre FROM commande JOIN pizza JOIN tarification ON commande Taille tarification Taille AND commande NomPizza pizza NomPizza GROUP BY commande NomPizza HAVING TotalCommande gt 200 ORDER BY TotalCommande En revanche si l on avait voulu liminer du r sultat les pizzas dont le prix de vente n est pas assez lev consid rant que cela fausse le r sultat le mode de s lection ne serait pas le m me Il faudrait r aliser une s lection sur l ensemble de d part avant d effectuer les agr gats et les calculs dans ce cas on utiliserait le mot cl WHERE SELECT commande NomPizza COUNT AS NombreCommande SUM pizza prix tarifica tion coefficient AS TotalCommande FROM commande JOIN pizza JOIN tarification ON commande Taille tarification Taille AND commande NomPizza pizza NomPizza WHERE pizza prix gt 10
298. ses de donn es 17 5 M tiers des bases de donn es 19 6 Plan de l ouvrage 20 7 Pr sentation de la BD exemple 20 Exercices 22 Chapitre 2 Analyse du monde r el 27 1 D marche d analyse 28 2 Mod lisation par le mod le entit association 30 3 Remise en cause et volution du mod le 35 4 Repr sentation avec UML 40 Exercices 44 Chapitre 3 Approche relationnelle 55 1 Concepts 56 2 Op rations du mod le relationnel 60 3 Passage du mod le conceptuel au relationnel 68 4 Normalisation 70 5 Logique du premier ordre et base de donn es 76 Exercices 82 Chapitre 4 SQL 95 1 Concepts du langage SQL 96 2 Op rations relationnelles avec SQL 97 3 Gestion de tables et de vues 110 4 Gestion des donn es 116 Exercices 120 IV Cr ation de bases de donn es Chapitre 5 Du langage parl SQL 127 1 Pr sentation de l activit mod liser 128 2 laboration du mod le entit association 129 3 Passage au mod le relationnel 134 4 Interrogation de la base de donn es 141 Exercices 148 Chapitre 6 Pr servation des donn es 157 1 Contr le d acc s et sauvegarde 158 2 Limitations d acc s au SGBD 161 3 Transactions 166 4 Triggers 173 Exercices 176 Annexe 183 Bibliographie 189 Index 191 L auteur V Avant propos Nicolas Larrousse est ing nieur au CNRS Sp cialis en informatique il enseigne les bases de donn es au niveau
299. ssoci un livreur donn alors le num ro de t l phone permet de d terminer le nom du livreur et son code client Le champ devient une cl candidate On pourrait peut tre supprimer la cl constitu e par le code client pour viter la redondance entre ce code que l on a fabriqu et le num ro de t l phone Il ne s agit plus dans ce cas que d un probl me de conformit la troisi me forme normale puisque le champ cl est concern Dans la pratique un crit re pour la s lection entre plusieurs cl s est de choisir le champ dont le contenu est le plus stable dans le temps Un num ro de t l phone peut changer on lui pr f rera donc le num ro de code Toutes les relations ne sont pas strictement en troisi me forme normale mais on consi d re les redondances r siduelles comme acceptables 137 Du langage parl SQL 5 Chapitre 3 3 TYPES DE DONN ES ET CONTRAINTES Cette section permet de d terminer quels contr les doivent tre appliqu s sur le contenu des champs afin d en garantir la coh rence Les contraintes sont mises en uvre par le SGBD employ et sont exprim es dans les instructions de cr ation des tables Ces con traintes expriment l appartenance un ensemble Un ensemble en SQL peut tre d crit de quatre mani res le typage g n ral d un point de vue des types pr d finis de SQL par exemple entier r el caract re date une num ration des diff rente
300. st en train d crire aucun lecteur ne peut lire la donn e et aucun autre r dacteur ne peut y acc der acc s exclusif S il existe un grand nombre de lecteurs qui se succ dent en lecture sur la donn e l attente pour un r dacteur qui voudrait la modifier peut alors devenir quasi infinie Laisser la gestion des verrous un utilisateur est donc d licat et peut conduire des bloca ges du syst me Les SGBD performants disposent d outils capables de d tecter et r soudre ces ph nom nes voire de les pr venir le cas ch ant Les algorithmes utilis s cet effet d passent le cadre de cet ouvrage 3 2 M CANISME DES TRANSACTIONS Pour r soudre les probl mes d acc s concurrents vus pr c demment les SGBD proposent aux utilisateurs un outil que l on nomme une transaction L id e est de consid rer un ensemble d instructions comme une seule instruction L ensemble d instructions est dit unitaire ou atomique Propri t s des transactions La notion d atomicit peut tre d crite en ces termes Soit le SGBD est capable d ex cuter toutes les instructions qui composent une transac tion et il effectue les mises jour provoqu es par ces instructions Soit il n y parvient pas et il remet la base de donn es dans l tat coh rent pr c dent le d but de l ex cution des instructions de la transaction 170 Cr ation de bases de donn es Les propri t s que doivent v rifier les t
301. suc c s dans le domaine en France 4 2 PASSAGE AU SGBD La repr sentation pr c dente doit tre transform e pour la rendre acceptable par le SGBD qu il soit relationnel objet ou relationnel objet Souvent cette tape modifie consid ra blement les objets du monde r el ainsi que les liens d finis dans le sch ma pr c dent C est lors de cette phase que l on v rifie la qualit de la base de donn es en utilisant les crit res 18 Cr ation de bases de donn es vus pr c demment comme l limination de la redondance Le mod le relationnel procure cette fin des outils capables de tester la coh rence du syst me et de le modifier le cas ch ant ce sont les formes normales qui seront vues au chapitre 3 Il est possible de constater des incoh rences ce niveau de l analyse ce qui implique de modifier le mod le conceptuel de donn es d velopp l tape pr c dente On obtient un sch ma des donn es qui fournira aux utilisateurs les informations n cessaires pour effec tuer leurs requ tes par exemple la description des noms de tables de champs et leurs types Par contre on perd ce niveau l information du sens des donn es et du lien entre elles Ce sch ma n est gu re utilisable en pratique sans le pr c dent En effet com ment savoir que les personnes ach tent des voitures et non pas le vendeur si l on ne dis pose pas de l information de liaison entre les objets du mond
302. sus il est alors n cessaire de poser de nouvelles questions pour com bler ces lacunes On imagine qu la suite d un dialogue avec les diff rents acteurs de l entreprise on obtient les renseignements suivants Un client est caract ris par son nom et son adresse Un livreur est caract ris par son nom et son num ro de t l phone Un v hicule est caract ris par sa marque son type et son num ro d immatriculation Ces informations compl mentaires permettent de d terminer quelques attributs des enti t s ainsi constitu es Les autres attributs des entit s se trouvent dans l nonc par exem ple une pizza est caract ris e par son nom et par son prix ou un ingr dient est caract ris par son nom L affectation d un attribut une entit n est pas toujours vi dente On va cr er un attribut compte qui contiendra les informations de solvabilit du client puisque l on fonctionne en mode pr pay Il faut se poser la question est ce une propri t caract ristique du client La r ponse dans notre cas est ais e et l attribut sera affect l entit client Mais comment prendre en compte la taille de la pizza S agit t il d une propri t caract ristique de l entit pizza ou la taille est elle associ e la commande ou m me au client Pour r pondre cette question on doit consid rer le moment ainsi que l endroit o inter
303. t Saint Charles Marseille Universit Victor Segalen Bordeaux cole Normale Sup rieure Paris Figure 3 60 Relation Lecteur d compos e I Figure 3 61 Relation Lecteur d compos e II SQL 95 Chapitre 1 Concepts du langage SQL 96 2 Op rations relationnelles avec SQL 97 3 Gestion de tables et de vues 110 4 Gestion des donn es 116 Exercices 1 Projection simple 120 2 Projection avec une colonne calcul e 120 3 Projection restriction avec un op rateur statistique 120 4 Agr gat 121 5 Question n gative 121 6 Produit cart sien 121 7 Jointure simple 122 8 Requ te SQL trange 122 9 Autre question n gative jointure externe 122 10 S lection sur un agr gat d une jointure 123 11 S lection par rapport au r sultat d un calcul statistique 124 12 Cr ation d une table 124 13 Insertion de donn es dans une table 125 14 Modification des donn es d une table 125 15 Requ te combin e 125 Le langage SQL est l un des l ments qui ont contri
304. t au chapitre pr c dent un ensemble de relations constituant le mod le logique de la base de donn es Les liaisons entre les relations qui expriment les liens de sens dans la r alit seront tablies dynamiquement par l op ration fondamentale de l approche relationnelle qui est la jointure On value ensuite la qualit de ces relations en v rifiant leur conformit par rapport des propri t s que l on appelle les formes normales Ces propri t s visent essentiellement d tecter la redondance et la coh rence des donn es dans les relations On a pr sent dans ce chapitre les quatre formes normales les plus courantes la premi re forme normale qui interdit les champs multivalu s la deuxi me forme normale qui d tecte une relation de d pendance entre une partie de la cl et un champ 81 Approche relationnelle 3 Chapitre la troisi me forme normale qui d tecte une d pendance transitive entre une cl et un champ c est dire qu un champ non cl d pend d un autre champ non cl qui d pend lui m me de la cl la forme normale de Boyce Codd qui d tecte la relation de d pendance entre un champ non cl et une partie d une cl c est une extension de la troisi me forme nor male qui est plus restrictive La normalisation est une m thode de r organisation qui consiste d composer une rela tion pour la rendre conforme aux formes normales La recompositio
305. t Alpine A310 Rose Rose 6 Renault Floride Bleue Bleue Recopie des donn es de Couleur dans Teinte Ajout de la colonne Teinte Affichage de la table voiture modifi e Affichage de la table voiture modifi e Suppression de la colonne Couleur 114 Cr ation de bases de donn es SELECT FROM voiture 3 2 CONTRAINTES D INT GRIT Lors de l tape de conceptualisation on a d fini la notion de domaine qui d crira l ensemble des valeurs que peut prendre un attribut Au niveau de SQL une premi re approche du domaine est tablie par le choix du type de la colonne mais cela n est pas assez restrictif en g n ral SQL vous permet de d finir des conditions de validit plus fines lors de la cr ation de la table que l on nomme contraintes d int grit C est le SGBD qui applique ces conditions au moment de l insertion de la modification ou m me de la suppression de donn es dans le cas ou ces derni res sont li es d autres tables Cette tape est parfois fastidieuse mais elle garantit la coh rence des donn es et vite de se retrouver avec des bases de donn es conceptuellement correctes mais inutilisables faute de donn es valides On peut distinguer diff rents types de contraintes sur les colonnes les propri t s g n rales comme l unicit les restrictions d appartenance un ensemble les d pendances
306. t au m me niveau d isolation Il est prudent de v rifier dans la documentation quel niveau se trouve par d faut le SGBD que l on utilise En effet cer tains SGBD tr s r pandus fonctionnent par d faut au niveau 1 Ce peut tre suffisant pour certai nes applications encore faut il en tre bien conscient Le choix du niveau est motiv par des arguments plus commerciaux que techniques le SGBD est plus rapide en utilisant un niveau moins lev 172 Cr ation de bases de donn es Points de retour dans les transactions Les instructions contenues dans une transaction sont consid r es par le SGBD comme unitaires c est dire qu elles sont ex cut es d un seul bloc ou ne sont pas ex cut es L ins truction ROLLBACK annule toutes les instructions effectu es depuis l instruction START TRANSACTION Cependant il est possible de diviser cet ensemble d instructions en sous ensembles par la d finition de points de retour utilis s par l instruction ROLLBACK Au lieu d annuler les instructions ex cut es depuis START TRANSACTION on revient l tat de la base de donn es depuis le point d fini par l instruction SAVEPOINT voir figure 6 3 D marrage de la transaction START TRANSACTION Insertion d un tuple dans la table client INSERT INTO client VALUES 8 Annabelle 29 Paris F D finition d un point de retour que l on nomme UN SAVEPOINT UN Mise jo
307. t prix gt 2 lt prix gt lt quantit gt 1000 lt quantit gt lt article gt lt article gt lt nom gt pi ge lt nom gt lt prix gt 300 lt prix gt lt quantit gt 35 lt quantit gt lt article gt lt catalogue gt article article prix quantit nom prix quantit nom banane 2 1000 300 pi ge 13 Introduction aux bases de donn es 1 Chapitre Contenu multim dia Le multim dia s est fortement d velopp depuis la fin des ann es 1990 La demande tant tr s forte dans ce domaine les diteurs de SGBD se doivent d int grer de l information multim dia image son vid o dans les bases de donn es Les bases de donn es multi m dias posent de nouveaux probl mes en particulier pour effectuer des recherches sur les contenus multim dias ce qui est par nature difficile Une solution est d effectuer une indexation pr liminaire manuelle l aide de mots cl s qui permettent d op rer par la suite des interrogations mais cela semble illusoire de r aliser ce traitement pour des volumes importants de documents multim dias Dans le cas con traire il existe des m thodes de recherche sur des fichiers de type image par rapport des sch mas pr d finis Cette possibilit reste pour l instant plut t du domaine de la recher che m me si l on est d j malheureusement capable d identifier des visages par rapport un mod le dans cert
308. tard O GROUP BY C CodeLivreur ORDER BY L NomLivreur On distribue les droits de lecture l utilisateur personnel GRANT SELECT ON retard_livreur TO personnel Le service du personnel a besoin galement d utiliser la pr c dente vue GRANT SELECT ON commande_livreur TO personnel Pour tre complet on pourrait cr er une vue r capitulative qui permette de visualiser les commandes livr es et les retards dans une seule table Ce n est pas le moyen le plus simple mais cela rend le processus plus lisible CREATE VIEW retard_commande_livreur AS SELECT R CodeLivreur R NomLivreur C Nombre_Livraison R Nombre_Retard FROM retard_livreur R JOIN commande_livreur C ON R CodeLivreur C CodeLivreur ORDER BY R NomLivreur On distribue les droits de lecture sur cette vue l utilisateur personnel GRANT SELECT ON retard_commande_livreur TO personnel Laboratoire de sociologie Le laboratoire de recherche doit pouvoir acc der au contenu de deux champs sans calcul ni mise en forme En revanche on ne donne pas la possibilit ces utilisateurs ext rieurs de conna tre la structure interne des donn es et d avoir acc s d autres champs On cr e une vue qui est le r sultat de la jointure entre les tables com mande client pizza compose ingredient CREATE VIEW adresse_ingredient AS SELECT CL Adresse I NomIngre FROM commande C JOIN client CL JOIN pizza P JOIN compose CO
309. te et facture li es par l association r gle avec ses cardinalit s Dans ce cas l association r gle n a plus lieu d tre puisqu il s agit d une pure bijection une facture correspond une Ecarte et une seule et une Ecarte correspond un produit et un seul On peut fusionner les deux entit s carte et facture et liminer l association voir figure 2 14 Figure 2 14 Entit facture_bis fusionn e Fusion d associations Suivant le m me principe il est possible de fusionner plusieurs associations ayant le m me r le s mantique Si l on consid re la description de l activit suivante li e l ex cution de morceaux de jazz en quartet Pour un morceau donn le premier musicien joue la partie de basse le deuxi me celle de batterie le troisi me celle de piano et le quatri me celle de saxophone voir figure 2 15 Figure 2 15 Entit s musicien et morceau li es par les associations basse batterie piano et saxophone Comme il s agit de la m me activit un musicien interpr te un morceau on peut rempla cer toutes les associations par une association interpr te L association interpr te contien drait l attribut instrument pour ne pas perdre l information de l instrument associ voir figure 2 16 Carte NumCarte Type DateValidit Propri taire Facture NumFacture
310. te instruction met jour le dictionnaire de donn es du SGBD Ce dernier utilise les infor mations de l utilisateur pour authentifier la connexion au SGBD L encore le mode de con nexion d pend du SGBD utilis Par extension celui ci fournira en g n ral une instruction du type DROP USER pour d truire l utilisateur cr par la pr c dente commande Comme les informations du dictionnaire de donn es sont le plus souvent stock es dans des bases de donn es on peut galement les manipuler avec des instructions SQL classiques de types INSERT et DELETE La sp cificit de l instruction CREATE USER est de poss der une ins truction de cryptage du mot de passe 163 Pr servation des donn es 6 Chapitre 2 2 SQL ET LA GESTION DES DROITS Une fois que l utilisateur est connect au syst me il convient de g rer son acc s aux don n es Une pratique courante pour les SGBD est que tout nouvel objet cr une base de donn es par exemple est par d faut inaccessible tous Les droits sont distribu s ensuite des utilisateurs des groupes ou des r les Il existe ensuite une hi rarchie entre les diff rents objets du SGBD une table est comprise dans une base de donn es un champ est compris dans une table etc Afin de simplifier la gestion la plupart des SGBD permettent l affectation de droits un objet associ tous les sous objets qui constituent une branche de la hi rarchie Droits sur les o
311. te notion Une pre mi re solution simple serait de remplacer le libell de la taille par le coefficient qui permet de calculer le prix On remplace naine par 2 3 humaine par 1 et ogresse par 4 3 On doit changer le type du champ Taille sans perdre le contenu Le plus sim ple est de recr er un champ Taille_Prix et de faire une mise jour Les commandes qui modifient le contenu sont les suivantes Ajout du champ Taille_prix ALTER TABLE commande ADD COLUMN Taille_Prix Float Cr ation du contenu du champ en fonction du contenu de Taille UPDATE commande SET Taille_Prix 2 3 WHERE Taille naine UPDATE commande SET Taille_Prix 1 WHERE Taille humaine UPDATE commande SET Taille_Prix 4 3 WHERE Taille ogresse Destruction du champ Taille ALTER TABLE commande DROP COLUMN Taille On peut alors calculer le prix d une commande directement 145 Du langage parl SQL 5 Chapitre SELECT commande NumCommande pizza Prix commande Taille_Prix AS Prix_Commande FROM commande JOIN pizza ON commande NomPizza pizza NomPizza R flexion sur la modification apport e et am lioration de la solution Si le mode de calcul change par exemple si l on d cide qu une pizza naine co te 3 4 du prix normal il faut alors modifier le s coefficient s pour toutes les commandes On perd galement la mention du libell plus commode manipuler et
312. te requ te va permettre de v rifier qu il n y a pas d incoh rence ce niveau On esp re que le r sultat sera vide On a besoin pour r pondre aux questions du type quels sont les qui n ont pas d utiliser une extension des op rations de jointure la jointure externe Celle ci permet d inclure dans le r sultat d une jointure les enregistrements qui n ont pas de valeur corres pondante dans l autre table Les valeurs des champs de cette autre table sont alors logique ment vides Il suffit de s lectionner ces lignes vides pour obtenir la r ponse la question C est une op ration non sym trique on part de la table vehicule que l on va joindre SELECT vehicule NumImmat vehicule Marque vehicule Type FROM vehicule LEFT OUTER JOIN commande ON vehicule NumImmat commande NumImmat WHERE commande NumImmat IS NULL Cette requ te est typique des requ tes de v rification que l administrateur d une base doit effectuer pour proc der certaines v rifications de coh rence Cela est surtout vrai lors que la base de donn es n a pas t con ue en int grant les contraintes d int grit indispen sables 143 Du langage parl SQL 5 Chapitre 4 4 QUELS CLIENTS COMMANDENT PLUS QUE LA MOYENNE Bien que la question d origine exprim e en langage parl soit simple ce genre de requ te doit tre abord e avec prudence La meilleure approche consiste s parer les tapes d
313. tenues dans la base mais aussi des m tadon n es dictionnaire de donn es du SGBD doivent tre r alis es r guli rement Outre les probl mes de malveillance un incendie ou une inondation peuvent r duire n ant des ann es de travail Dans la mesure du possible les sauvegardes ne doivent pas tre stock es dans le m me endroit que la machine L id al tant de disposer d une armoire de stockage adapt e qui soit ignifug e et situ e dans un endroit l abri des inondations Si ce stockage se trouve dans un lieu diff rent c est encore mieux Compte tenu du volume des donn es utilis actuellement la sauvegarde peut poser des probl mes de taille de support physique de stockage cet effet on utilise fr quemment des robots de sauvegarde sp cialis s manipulant des bandes que l on peut regrouper pour former un espace de stockage suffisant Les disques regroup s dans un dispositif auto nome type RAID sont galement tr s employ s pour les sauvegardes en raison de leur prix relativement abordable Ils apportent de plus une certaine s curit li e des m canis mes de redondance qui leur assure un fonctionnement sans pertes de donn es en cas de panne de l un des disques Redondance des donn es Un proc d plus efficace et plus s r consiste disposer de copies de la base en plusieurs endroits g ographiquement distincts La plupart des SGBD sont capables d effectuer des mises jour sur des copies
314. teur Une fiche d ouvrage peut elle servir plusieurs livres Si c est le cas la valeur maxi male sera de n sinon elle sera de 1 C est le but ici de regrouper les informations d ouvrages communes plusieurs exemplaires La cardinalit maximale choisie est de n Pour d terminer les cardinalit s du c t de l entit livre Peut on avoir un livre sans avoir de fiche ouvrage Si c est le cas la valeur minimale sera de 0 sinon elle sera de 1 Il para t clair que tout livre a une fiche ouvrage moins qu il ne soit juste identifi dans la biblioth que mais pas encore catalogu Un livre peut il avoir plusieurs fiches ouvrage Si c est le cas la cardinalit maximale sera de n sinon elle sera de 1 On peut supposer qu un livre n a qu une fiche ouvrage Association emprunte Pour d terminer les cardinalit s du c t de l entit livre Un livre peut il n avoir jamais t emprunt Si c est le cas la valeur minimale sera de 0 sinon elle sera de 1 On choisit 0 un livre peut ne rencontrer aucun succ s Un livre peut il tre emprunt plusieurs fois Si c est le cas la valeur maximale sera de n sinon elle sera de 1 On rappelle qu une base de donn es mod lise une activit sur une p riode de temps Un livre peut tre emprunt plusieurs fois m me si l on ne peut pas
315. titue un cas typique de redondance qui risque de provoquer des incoh rences La solution correcte dans ce cas est de cr er une entit suppl mentaire pour ces attributs qui sont s mantiquement de m me type On cr era ici une entit auteur qui contiendra un num ro d auteur identifiant son nom et son pr nom Cette entit est reli e l entit ouvrage par l association a_ crit voir figure 2 11 Figure 2 11 Entit s livre ouvrage auteur et lecteur li es par les associations emprunte a_ crit et est un exemplaire sans cardinalit s Ouvrage Cote ISBN Lecteur NumLecteur Nom Pr nom Adresse Emprunte DateEmprunt Est un exemplaire Titre Auteur ISBN diteur Livre Ouvrage Cote ISBN Lecteur NumLecteur Nom Pr nom Adresse Emprunte DateEmprunt Titre ISBN diteur Livre Est un exemplaire Auteur NumAuteur Nom Pr nom A crit 38 Cr ation de bases de donn es Que se passe t il si un auteur emprunte un livre Un auteur peut galement emprunter un livre et rev tir par cons quent le r le de l emprun teur Dans ce cas on r p te les informations le concernant dans l entit lecteur De m me que pr c demment cela provoque de la redondance et peut g n rer des incoh rences Comme les entit s lecteur et auteur ont la m me structure c est dire des m mes att
316. tre son auteur son num ro ISBN son diteur Le num ro ISBN est ici un identifiant pour l entit puisqu il est unique L association emprunte a pour attribut la date d emprunt Figure 2 9 Entit s livre et lecteur li es par l association emprunte sans cardinalit s Cet exemple simple permet de se poser quelques questions qui vont conduire une r or ganisation du mod le Que se passe t il si l on poss de plusieurs exemplaires du m me ouvrage Le num ro ISBN n est plus identifiant puisqu il est le m me pour chacun des exemplaires Une solution consiste ajouter un num ro suppl mentaire unique pour chaque livre qui correspond la notion de cote dans une biblioth que Ainsi m me si l on a dix exemplai res d un ouvrage il est possible de les diff rencier L inconv nient de cette solution est que l on r p te les informations communes aux diff rents ouvrages titre auteur chaque exemplaire L un des risques est de r p ter incorrectement ces informations et d aboutir ainsi des incoh rences La solution correcte dans ce cas est de s parer l entit livre en deux entit s livre et ouvrage voir figure 2 10 L activit de la biblioth que est alors d crite par deux phrases Un lecteur emprunte un exemplaire Un livre repr sente un exemplaire d un ouvrage Un livre est caract ris par un num ro cote id
317. ts faciles 12 16 9 Noir Blanc 1 12 12 Les imp ts faciles Titre Format Le train qui passe 4 3 A toi 16 9 Les imp ts faciles 4 3 Les imp ts faciles 16 9 Figure 3 44 Relation Catalogue Figure 3 45 Jointure des relations Film et Catalogue Figure 3 46 Projection sur la jointure des relations Film et Catalogue 87 Approche relationnelle Exercices 3 Chapitre La jointure sur les champs Prix et Num ro_film est possible car ils sont de m me type Elle sera donc effectu e par le SGBD sans rejet On obtient la relation suivante voir figure 3 47 Cette op ration n a aucune signification dans la r alit EXERCICE 8 AUTRE JOINTURE On fait une jointure externe cette fois entre les relations sur les champs Numero_Film Attention l op ration n est pas sym trique la jointure se fait partir de la relation Film sur la relation Catalogue voir figure 3 48 Il suffit alors de faire une s lection sur le contenu d un champ provenant de la relation Catalogue dont le contenu est NULL par exemple le champ Titre On projette ensuite sur le champ Numero_Film provenant de la relation Film On obtient une relation une ligne et une colonne ou une relation de degr 1 et de cardinalit 1 voir figure 3 49 Prix Format Type Nombre Numero _Film Films Numero _Film Catalogue
318. ts obtenus par le produit cart sien des relations dont les contenus du champ sur lequel on effectue la jointure sont gaux On l appelle dans ce cas une quijointure Les champs dont on compare les contenus sont nomm s champs de jointure On consid re les deux relations Lecteur_bis Num ro_carte Nom Num_Etablissement et Etablissement Num_Etablissement Ville Nom_Etablissement dont le contenu suit voir figure 3 11 Henriette Lyon Dominique Nancy Isabelle Nancy Olivier Marseille Henri Paris Jerome Nancy Laurence Bordeaux Christian Paris Antoine Marseille Laurence Paris Numero_carte Nom Age Ville Etablissement 6 Olivier 51 Marseille Universit Saint Charles 11 Antoine 16 Marseille Universit Saint Charles Nom Ville Figure 3 10 S lection sur la relation Lecteur 64 Cr ation de bases de donn es Lecteur_bis Numero_carte Nom Num_Etablissement Etablissement Num Etablissement Ville Nom_Etablissement M me si l on ne dispose pas du mod le conceptuel associ on constate que l on peut relier ces deux relations par le champ Num_Etablissement Les informations concernant l ta blissement de la relation Lecteur_bis sont stock es dans la relation Etablissement dont la cl est le champ Num_etablissement Pour obtenir la liste des lecteurs ainsi que les infor mations concernant leur tablissement on effectue une jointure entre ces relations s
319. type cha ne de caract res sur lequel il est possible d employer des fonctions d extraction de cha ne Les champs de type num rique sont presque tous de type entier sauf le champ Compte de la table client et le champ Prix de la table Pizza qui sont de type r el La taille des champs de type cha ne de caract res est un compromis trouver entre l occupation de place inutile et la taille maximale suppos e des valeurs que peuvent contenir ce champ Table client NumClient code simple de type entier NomClient cha ne de caract res renseigner obligatoirement Adresse cha ne de caract res Compte solde de type r el Remarque En pratique on n effectue pas toujours cette tape de mani re stricte compte tenu de la com plexit que produit la d composition par le processus de normalisation Il est parfois pr f rable de conserver un peu de redondance pour limiter le nombre de tables et pr server ainsi l efficacit du syst me 138 Cr ation de bases de donn es PointsRaPizz nombre de points de type entier Table pizza NomPizza cha ne de caract res Prix solde de type r el renseigner obligatoirement Table livreur CodeLivreur code simple de type entier NomLivreur cha ne de caract res renseigner obligatoirement Telephone cha ne de caract res renseigner obligatoirement Table vehicule NumImmat cha ne de caract res Marque c
320. u de caract res et de la collation avec SQL On doit donc effectuer au moment de la cr ation de la table le choix du codage de caract res employer ainsi que la collation lui appliquer Le choix du jeu de caract res se fait par le mot cl CHARACTER SET suivi du nom du jeu de caract res Nom_client CHAR 20 CHARACTER SET Unicode On peut d finir un jeu de caract res sp cifique pour chaque champ Il existe des noms de jeux de caract res pr d finis dans la norme SQL Unicode ASCII_FULL LATIN1 etc Les SGBD proposent en g n ral des jeux de caract res compl mentaires Il est possible en SQL d indiquer l utilisation d un jeu de caract res pr d fini avec le mot cl NATIONAL CHARACTER En pratique dans les SGBD actuels le jeu de caract res employ dans ce cas est le plus souvent UTF 8 188 Cr ation de bases de donn es Nom_client NATIONAL CHARACTER 20 La collation utiliser est sp cifi e par le mot cl COLLATE suivi du nom de la collation uti liser Nom_client CHAR 20 CHARACTER SET Unicode COLLATE LATIN1 Les SGBD proposent de nombreuses collations en dehors de celles pr d finies dans la norme SQL Les jeux de caract res et les collations peuvent tre d finis plus g n ralement au niveau des tables des bases de donn es et du SGBD lui m me Un jeu de caract res ainsi qu une collation par d faut sont utilis s dans le SGBD il est int ressant d en v rifier le contenu avant d
321. u la modification de donn es Des probl mes s rieux peuvent tre provoqu s de mani re intentionnelle ou accidentelle mais le r sultat obtenu est le m me L activit des organisations repose sur les donn es il convient par cons quent de les prot ger mais galement d en assurer la disponibilit permanente On distinguera plusieurs niveaux de granularit quant aux recommandations g n rales concernant la s curit des donn es la protection de l acc s la machine d un point de vue physique ou r seau les aspects de dur e de vie du syst me ainsi que la politique de sauvegarde la politique de restriction d acc s aux donn es du SGBD par des comptes et l utilisation des vues la capacit des outils du SGBD prot ger les op rations sur les donn es les restaurer et revenir en arri re comme pour les transactions On introduit en fin de chapitre un outil compl mentaire le trigger Les triggers ou d clencheurs sont utilis s pour forcer une bonne gestion du contenu des donn es lors des op rations d insertion de mise jour ou de suppression de donn es 158 Cr ation de bases de donn es 1 Contr le d acc s et sauvegarde Toute r flexion autour de la s curit doit se concevoir de mani re globale en utilisant en premier lieu le bon sens il est inutile d installer une porte blind e inviolable sur une palis sade en bois Les recommandations qui sont
322. ui seront nomm es ISO 8859 n n pouvant varier de 1 15 L avantage est que les 128 pre miers caract res sont identiques ceux de l ASCII La compatibilit avec l existant est donc assur e La table d finie pour l Europe occidentale est la table ISO 8859 1 nomm e galement Latin1 laquelle il manque videmment quelques caract res pour tre exhaustive On peut citer l absence du fameux fran ais ou du signe Pour pallier ces manques une version modifi e de Latin1 a t d finie Latin9 ou ISO8859 15 Elle est toute fois peu r pandue probablement en raison du temps important qu a n cessit sa d fini tion La norme ISO 8859 dispose de tables pour le codage d autres langues comme le grec ISO 8859 7 le cyrillique ISO 8859 5 etc Les langues extr mes orientales utilisent beaucoup plus de 256 caract res et codent les caract res sur plus de 8 positions Une ver sion all g e du Japonais peut toutefois tre cod e par une extension de ASCII sur 8 positions JIS X Dans un souci de simplification les constructeurs ont con u des extensions de ces nor mes En ce qui concerne l Europe occidentale on peut citer l extension de ISO 8859 1 r alis e par Microsoft Windows 1252 qui remplace certains caract res de contr le de la table Latin1 pour y stocker les caract res manquants cit s plus haut Apple utilisait un codage sp cifique MacRoman incomp
323. ument HTML La description de Entrep t de donn es datawarehouse Analyse Consultation Service achats Service marketing Service du personnel Production 12 Cr ation de bases de donn es cette structure arborescente se trouve dans une DTD ou plus r cemment dans un sch ma XML Le sch ma est plus souple et permet d employer les m mes outils de traitement que pour les fichiers XML Le langage HTML poss de videmment lui aussi une DTD mais la diff rence de XML elle est normalis e par le W3C et ne peut tre modifi e et adapt e pour ses besoins propres voir figure 1 9 L objectif terme est que les fichiers du World Wide Web soient d sormais d crits en utili sant XML la place de HTML La pr sentation des donn es repose alors sur les feuilles de styles telles que eXtended Stylesheet Language pour g n rer les formats de pr senta tion classiques HTML PDF PostScript partir du format XML De cette mani re les moteurs de recherche pourront extraire directement par exemple le r sum ou le titre d un paragraphe d un fichier XML L indexation peut ainsi tre plus pr cise un mot figu rant dans un titre tant plus important que le m me mot dans une note de bas de page Figure 1 9 Structure arborescente XML Quel est le rapport avec les bases de donn es Comme on l a vu pr c demment une page Web peut tre le r sultat d une requ te provenant d un SGB
324. une classe en UML comprend trois parties le nom de la classe la description des attributs les m thodes associ es l objet Cette section n utilise pas la notion de m thode sp cifique l approche objet La descrip tion des attributs peut tre r alis e de mani re plus pr cise UML offre la possibilit de d crire ce niveau le domaine de l attribut jour lundi mardi mercredi jeudi vendredi samedi dimanche Une classe est repr sent e graphiquement par un rectangle s par en trois zones corres pondant aux trois parties pr c dentes voir figure 2 17 Figure 2 17 Entit voiture repr sent e par une classe UML Associations et multiplicit Les classes sont reli es par des associations identifi es par leur nom Si l association pos s de elle m me des attributs ils sont int gr s dans une classe d association L expression des cardinalit s est quasiment la m me en UML que pour le mod le entit association elles sont appel es multiplicit UML permet de d finir plus pr cis ment les cardinalit s en utilisant les valeurs suivantes 1 Obligatoire un et un seul peut s crire galement 1 1 Non obligatoire peut s crire galement 0 n Remarque UML est un formalisme de repr sentation Il n est associ aucune m thode particuli re comme peut l tre la m thode Merise qui associe une m thodologie et un l
325. ur des donn es de prix augmentation de 5 UPDATE vente SET Prix Prix 1 05 Destruction des tuples dont le champ Ville vaut Paris dans la table client DELETE FROM client WHERE Ville Paris Annulation des modifications faites depuis le point UN ROLLBACK TO UN Une diff rence essentielle par rapport l instruction ROLLBACK vue pr c demment est que dans ce cas la transaction n est pas termin e Un autre ROLLBACK reviendrait l tat de la base de donn es avant l ex cution de l instruction START TRANSACTION Figure 6 3 Point de retour dans une transaction Le m canisme des points de retour est tr s utile pour pr venir les cas de mauvaise mani pulation de donn es On combine ainsi la possibilit d effectuer les modifications dans une seule transaction avec celle de ne pas annuler toutes les modifications Certaines d entre elles prennent en effet un temps consid rable Remarque La plupart des SGBD consid rent que chaque instruction SQL est en soi une transaction qui est automatiquement valid e mode AUTO COMMIT Certains fonctionnent en cr ant une nouvelle transaction lors de chaque connexion au SGBD ce qui permet d annuler le cas ch ant toutes les op rations effectu es depuis la connexion Dans le doute il est donc pr f rable de sp cifier expli citement le d but de toute transaction par une instruction START TRANSACTION START TRANSACTION INSERT
326. ur le champ Num_Etablissement voir figure 3 12 Lecteur_joint_Etablissement Numero_carte Nom Num_Etablissement_1 Num_Etablissement_2 Ville Nom_Etablissement Le champ Num_Etablissement y figure deux fois car une occurrence vient de la relation Lecteur et l autre de la relation Etablissement Afin de ne conserver qu une valeur du champ Num_Etablissement on utilise l op ration de jointure naturelle voir figure 3 13 Lecteur_jointnat_Etablissement Numero carte Nom Num_Etablissement Ville Nom_Etablissement Numero_carte Nom Num_Etablissement 1 Henri 1 2 Stanislas 2 3 Henriette 1 Num_Etablissement Ville Nom_Etablissement 1 Paris Universit Jussieu 2 Lyon CHU Bron 3 Nancy Universit Poincar 4 Paris Universit Sorbonne Numero _carte Nom Num_Etablis sement_1 Num_Etablis sement_2 Ville Nom _Etablissement 1 Henri 1 1 Paris Universit Jussieu 2 Stanislas 2 2 Lyon CHU Bron 3 Henriette 1 1 Paris Universit Jussieu Numero_carte Nom Num _Etablissement Ville Nom _Etablissement 1 Henri 1 Paris Universit Jussieu 2 Stanislas 2 Lyon CHU Bron 3 Henriette 1 Paris Universit Jussieu Figure 3 11 Relations Lecteur_bis et Etablissement Figure 3 12 Jointure des relations Lecteur_bis et Etablissement sur le champ Num _Etablissement Figure 3 13 Jointure naturel
327. urs comprenant les droits qui leur sont associ s pour chaque l ment lecture modification les droits d acc s aux donn es Les m canismes sont les m mes que ceux qui sont mis en uvre dans les syst mes d exploitation multi utilisateurs 4 tapes de la conception des bases de donn es On peut d composer le processus de conception d une base de donn es en plusieurs tapes l analyse du syst me du monde r el mod liser la mise en forme du mod le pour l int grer dans un SGBD la cr ation effective dans le SGBD des structures et leur remplissage voir figure 1 13 4 1 ANALYSE DU MONDE R EL La premi re tape de la d marche de mod lisation des donn es consiste effectuer l analyse de la situation du monde r el consid rer Cette action s apparente au travail effectu par une entreprise de consulting C est une approche humaine qui se fonde en partie sur des entretiens avec les personnels concern s et ressemble plut t une analyse du discours et de l organisation de l entreprise C est lors de cette phase d analyse que l on d termine les objec tifs du syst me d information concevoir et que l on identifie tous les l ments prendre en compte dans le syst me ce sont les champs qui contiendront les donn es Un ensemble de champs peut constituer un objet du monde r el Par exemple les champs nom pr nom et adresse que l on
328. usage du codage 184 Cr ation de bases de donn es de caract re ASCII est encore tr s r pandu car il suffit bon nombre d applications con dition que l on crive sans lettres accentu es Si l on a besoin de caract res diacritiques ou d autres caract res ne se trouvant pas dans la table de codage ASCII on peut les repr sen ter par une suite sp cifique de caract res ASCII comme on le fait en HTML Par exemple se repr sente par la suite amp eacute Tables ISO 8859 et codages propri taires Le syst me de codage des caract res absents de la table ASCII vue plus haut n est gu re commode Afin qu il soit possible de repr senter d autres langues le codage ASCII a t tendu Le nombre de caract res disponibles a augment en passant un codage 8 posi tions ce qui donne 256 28 possibilit s Les constructeurs ont propos leurs propres extensions de ASCII Par exemple IBM avec EBCDIC et DEC avec la norme VT200 Enfin l ISO Organisation internationale de normalisation a d fini une normalisation de l extension ASCII pour les langues europ ennes L ennui est que l on ne peut repr senter tous les caract res utilis s dans les langues latines puisque leur nombre est limit 256 Plusieurs tables ont donc t d finies le crit re choisi pour regrouper les jeux de caract res est fond sur la proximit g ographique et commerciale On dispose de 16 tables q
329. uvaient les fichiers ou m me la machine Par cons quent la ou les machines qui contiennent le SGBD et les fichiers de donn es doi vent se trouver dans des pi ces dont l acc s est au minimum contr l Dans le m me ordre d id e l alimentation lectrique ne doit pas tre accessible On a tous entendu ou v cu une histoire de machines ou d l ments r seaux d branch s par erreur pour effectuer le m nage sans parler de la malveillance Comme on peut le constater les pr cautions concernant l acc s physique la machine ne sont pas toujours d ordre purement technique elles rel vent souvent du simple bon sens commun 1 2 ACC S LA MACHINE PAR LE R SEAU L acc s la machine par le r seau est devenu une porte d entr e privil gi e pour les per sonnes malintentionn es car rares sont les serveurs qui ne sont pas connect s aujourd hui On distingue ainsi principalement deux aspects de probl mes de s curit les attaques internes qui proviennent de personnes ayant acc s la machine par un compte standard associ un mot de passe correct les attaques externes qui se font en profitant d une faille du syst me d exploitation ou d une des applications install es sur la machine Dans les deux cas on peut tre confront un probl me de destruction de donn es par simple effacement de fichiers de donn es Cette op ration d effacement sera rendue plus ou moins f
330. uvrant un fichier s il est cod en ISO 8859 l ou en MacRoman et il est impossible d utiliser des tables de langues diff rentes au sein d un m me fichier Pour r soudre ces probl mes un groupement de constructeurs et d diteurs de logiciels Adobe Xerox Apple IBM MicroSoft etc ont fond le consortium Unicode au d but des ann es 1990 Unicode est un standard d fini par un consortium priv mais apr s quelques errements la norme ISO 10646 a repris l ensemble du standard L id e est de disposer d un syst me de codage de tous les caract res du monde ou plus exactement de pouvoir coder la repr sentation de ces caract res Unicode s pare la notion de caract re de sa repr sentation que l on appelle un glyphe Ainsi les notions d aspect de police ou de taille du caract re n existent pas dans le codage Unicode ces informations sont report es au niveau de l application Le standard fournit tout de m me un exemple de repr sentation glyphe du caract re titre informatif En revanche on inclut des informations compl mentaires comme la direction dans laquelle il faut lire les caract res ou des propri t s alphab tiques qui seront importantes pour les bases de don n es En ce qui concerne plus particuli rement les caract res diacritiques la r gle g n rale est de donner la possibilit de construire le caract re plut t que de le stocker un sera construit en utilisant l
331. v le beaucoup plus complet que la partie qui est pr sent e dans ce chapitre Le choix effectu parmi les commandes permet de r pondre aux questions les plus courantes en base de donn es SELECT lt liste de champs gt FROM lt liste de tables gt WHERE lt liste de crit res gt ORDER BY lt liste de champs gt GROUP BY lt liste de champs gt HAVING lt liste de crit res gt CREATE TABLE lt Table gt lt liste de champs Type gt DROP TABLE lt Table gt ALTER TABLE lt Table gt lt liste de champs Type gt INSERT INTO lt Table gt lt liste de champs gt lt liste de valeurs gt DELETE FROM lt Table gt WHERE lt liste de crit res gt UPDATE lt Table gt SET lt champ valeur gt WHERE lt liste de crit res gt AS DISTINCT AVG MAX MIN SUM COUNT lt gt LIKE IS NULL IN BETWEEN OR AND NOT ASC DESC JOIN LEFT RIGHT JOIN ON 120 Cr ation de bases de donn es Exercices EXERCICE 1 PROJECTION SIMPLE Il s agit d une projection simple sur la colonne Ville de la table personne l aide du mot cl DISTINCT SELECT DISTINCT Ville FROM personne ORDER BY Ville DESC EXERCICE 2 PROJECTION AVEC UNE COLONNE CALCUL E Solution Il s agit d utiliser la fois une fonction statistique et une colonne calcul e partir de la colonne Prix de la table vente SELECT SUM Prix 1 2 AS CA_TT
332. ve le m me r sultat L utilisateur nhop enregistre la vente d une voiture L utilisateur nhop invalide la vente de cette voiture L utilisateur pastorius relance la requ te pr c dente et retrouve le m me r sultat Comment d cider de l ordre dans lequel ex cuter les instructions En pratique le SGBD ne dispose pas d l ments de comparaison qui lui permettraient d ordonner la s rie d ins tructions afin que cela passe inaper u comme dans la deuxi me s rie On pourrait utiliser ici le terme de lecture fant me pour qualifier les probl mes rencontr s une donn e appara t puis dispara t Incoh rence de r sultats On peut imaginer une autre s rie d instructions qui r alisent des modifications de don n es effectu es par diff rents utilisateurs En raison de l augmentation des frais de struc ture le service comptable a d cid d une augmentation g n rale du prix de vente de 5 Afin que cette derni re passe inaper ue et dans le cadre d une campagne de communica tion le service marketing offre 100 euros de ristourne sur tout le catalogue pendant un mois L utilisateur pastorius appartient au service comptable et l utilisateur nhop au ser vice marketing Les v rifications sont effectu es par l utilisateur miller de la direction voir figure 6 2 L utilisateur pastorius consulte le prix de vente de la voiture X 168 Cr
333. ve le m me r sultat en inversant l ordre des tables 122 Cr ation de bases de donn es Il n y a aucun crit re de projection ni de s lection toutes les colonnes et les lignes des deux tables participent donc au produit cart sien On obtient 30 lignes 6 5 et 9 colon nes 5 4 SELECT FROM personne voiture L op ration est videmment sym trique En revanche si les donn es sont les m mes elles ne se trouveront pas dans le m me ordre EXERCICE 7 JOINTURE SIMPLE L information se trouve dans les tables voiture et personne Mais pour relier s mantiquement ces deux tables on a besoin de la table vente Il faut donc faire une qui jointure entre ces trois tables SELECT vo Marque pe Nom FROM voiture AS vo JOIN vente AS ve JOIN personne AS pe ON vo NumVoit ve NumVoit AND pe NumAch ve NumAch On aurait pu galement crire SELECT vo Marque pe Nom FROM voiture AS vo vente AS ve personne AS pe WHERE vo NumVoit ve NumVoit AND pe NumAch ve NumAch Le r sultat est il identique Pourquoi EXERCICE 8 REQU TE SQL TRANGE C est pratiquement la m me requ te que pour l exercice pr c dent mais le lien entre les tables a t r alis sur des colonnes diff rentes La syntaxe est correcte et le type des colon nes sur lesquelles a t faite la jointure est compatible SQL retournera donc une table r sultat Le fait que ce r sultat n a aucun
334. vient la notion de taille et d terminer son utilit La taille sert uniquement pon d rer le prix de base de la pizza elle n est donc pas associ e la pizza dont le prix est fixe elle ne constitue pas non plus on s en doutait un peu une caract ristique d un client On pourrait la limite la consid rer comme telle si l on disposait d une information du type les grandes tailles sont uniquement command es par des hommes les tailles nor males par des femmes et les petites tailles par des enfants de sexe indiff renci Comme ce n est pas le cas on associe logiquement la taille l entit commande Ce type de r flexion doit tre engag galement pour mod liser les possibilit s de bonifi cation qui peuvent tre obtenues soit en raison d un retard de livraison soit par une capi talisation sous forme de points de fid lit Par un raisonnement semblable on d termine que le retard est associ la commande alors que la fid lisation est associ e au client Si l on r capitule on obtient les entit s munies de leurs attributs suivants commande DateCom Taille Retard 131 Du langage parl SQL 5 Chapitre client NomClient Adresse Compte PointsRaPizz pizza NomPizza Prix livreur NomLivreur T l phone v hicule NumImmat Marque Type ingr dient NomIngr dient Choix de la cl Les attributs tant identifi s
335. zza compose NumIngre NomPizza 3 2 V RIFICATION DE LA CONFORMIT AUX FORMES NORMALES On doit v rifier que l ensemble de relations cr es l tape pr c dente est bien en confor mit avec les formes normales On peut se limiter en g n ral aux trois premi res formes normales En effet celle de Boyce Codd provoque fr quemment un certain niveau de perte d informations voir chapitre 3 pour plus de pr cisions Premi re forme normale A priori aucune des relations ne dispose de champs plusieurs valeurs multivalu s chaque champ poss de une valeur atomique Cependant on pourrait s interroger par exemple sur le contenu du champ NomClient dans la relation client ainsi que sur le champ NomLivreur de la relation livreur S ils contiennent le nom et le pr nom de la personne il est pr f rable de les s parer syst matiquement en deux champs NomClient et PrenomClient NomLivreur et PrenomLivreur De m me il faut consid rer le con tenu du champ Adresse de la relation client pour des raisons de simplification et de lisi bilit de l exemple on n a pas d coup l adresse en ses diff rents composants classiques num ro type de voie nom de la voie ville code postal et pays Toutes les relations sont en premi re forme normale si l on tient compte des remarques sur le contenu de champs du pr

Download Pdf Manuals

image

Related Search

Related Contents

Samsung Стиральная машина BAIKAL2 с цифровым инверторным двигателем, 7 кг Инструкция по использованию  Dell OpenManage Server Administrator Version 5.4 User's Manual  Samsung AR18HVFSEWKNMG دليل المستخدم  Installation Manual - BÖHNKE + PARTNER GmbH  Konftel 300W User's Manual    Sun StorEdge 3000 Family Best Practices Manual - Alcatel  Toshiba MX-104 Music Mixer User Manual  SolidWorks Enterprise PDM Installationsanleitung 2010  Omnimount OM1100298 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file