Bases de Données Plan du cours : Année : 2009/10 A - Généralités : 1. Introduction et définitions 2. Niveaux de représentation d’une base de données 3. Conception d’une base de données 4. Les utilisateurs d’une base de données B - Le modèle de données relationnel 1. Définitions 2. Dépendances fonctionnelles et clé 3. Normalisations des schémas de relation C - Le SGBDR Access
A – Généralités : 1. Introduction et définitions Le développement puis l’utilisation généralisée de l’informatique Augmenter la quantité de données stockées Augmenter et rendre plus complexes les traitements les prenant en compte Très rapidement : l’accès à ces données et leur organisation en mémoire secondaire deviennent des problèmes critiques La mise en place de réseaux, le recours aux accès distants introduisent le problème des accès concurrentiels Les Systèmes de Gestion de Base de Données (SGBD) ont traité et continuent de traiter de tous ces problèmes.
- stockées sur des supports accessibles par l’ordinateur, Principales définitions : Définition 1 : Une base de données est un ensemble structuré de données : - interdépendantes - stockées sur des supports accessibles par l’ordinateur, - sans redondance (répétition inutile ) - pour satisfaire simultanément plusieurs utilisateurs. Définition 2 : Un Système de Gestion de Base de Données (SGBD) ou Data Base Management System) est un logiciel qui permet aux utilisateurs d’interagir avec une base de données.
Les buts et propriétés de ces systèmes sont multiples : fournir une description des données stockées dans la base en toute indépendance des programmes accédant à ces données - permettre l’interaction avec la base grâce à des interfaces d’accès multiples (rechercher, modifier, ajouter, détruire). fournir un langage de manipulation des données (LMD) pour les interactions entre l’utilisateur et la base éviter les redondances, soit par la présence de la même donnée plusieurs fois dans des fichiers différents, soit par la présence physique d'une donnée qui peut se déduire d’autres données.
offrir un accès multiple aux données et régler le problème de la concurrence d’accès assurer la sécurité d’accès aux données (confidentialité, identification des utilisateurs). gérer les possibilités de pannes et les rendre transparentes à l’utilisateur (point de reprise).
2. Niveaux de représentation d’une base de données La description d’une BD s’effectue à trois niveaux : - externe : il est nécessaire de définir des types d’utilisateurs qui pourront chacun avoir une vue différente d’une même base. Chacune de ces vues est déduite du schéma conceptuel décrit ci-après interne ou physique : c’est le niveau correspondant aux programmeurs. L’organisation physique des données et les fonctions d’accès sont alors définies (organisation des fichiers, index, structure...). le niveau conceptuel intègre toutes les vues externes sans souci de l’implantation des données (description abstraite).
Le niveau « central » qui nous intéressera est donc le niveau conceptuel. Ce niveau doit permettre de : - définir l’ensemble des objets manipulés ; - définir l’ensemble des liens existant entre les objets ; -qualifier ces objets et liens (attributs, domaines, types de liens). Il faut définir un modèle de description permettant d’exprimer les propriétés des composants de la base et les liens existant entre eux. Plusieurs modèles ont été proposés, parmi lesquels on peut citer :
- le modèle hiérarchique (historiquement le premier) : le schéma conceptuel est visualisé sous forme d’arbres dont les nœuds correspondent aux classes d’objets et les arcs entre les nœuds aux associations. - le modèle réseau : le schéma conceptuel est représenté par un graphe ce qui augmente les possibilités de liens entre les objets. - le modèle relationnel, fondé sur la notion de « relation », représente les objets et les liens entre eux par des tableaux à deux dimensions. - le modèle objet : une donnée est une instance d’une classe. Chaque champ est un objet et la notion d’héritage peut être utilisée lors de la définition des tables.
3. Conception d’une base de données Schéma simplifié de la conception d'une base de données
4. Les utilisateurs d’une base de données : - les concepteurs de la base définissent, décrivent, créent la base ; le Data Base Administrator (DBA) gère la base (les accès, les droits des utilisateurs, les sauvegardes, les restaurations...) ; - les utilisateurs manipulent la base. Il est possible de distinguer des familles d’utilisateurs avec des droits différents vis-à-vis de l’accès à la base.
Le modèle de données relationnel 1. Définitions : représenter les liens et les objets de la même façon et le mode de représentation adopté est extrêmement simple : des tableaux à deux dimensions. Une base de données est modélisée par un ensemble de schémas de relation. Un schéma de relation caractérise une relation par son nom, une liste d’attributs et les domaines associés à chaque attribut.
Couleur = D1 ={ rouge,vert, bleu} D2 = { 0,1} une relation définie par un ensemble d’attributs A1,A2,…..An de domaine D1,D2,…Dn correspond à tout sous-ensemble du produit cartésien Le tableau associé à la relation fait correspondre à chaque colonne un attribut et chaque ligne du tableau, appelée tuple ou n-uplet, est un élément du produit cartésien. Un tableau (donc une relation) ne peut contenir deux fois la même ligne Exemple : Couleur = D1 ={ rouge,vert, bleu} D2 = { 0,1} Sur la base du produit cartésien D1XD2 D1XD2 = { (rouge,0), (rouge,1),(vert,0), (vert,1), (bleu,0), (bleu,1)} On peut composer la relation Drapeau : Drapeau = { (rouge,1), (vert,1)} Qu'on schématise sous la forme : Drapeau rouge 1 vert
2. Dépendances fonctionnelles et clé : Quand nous construisons une base de données nous sommes exposés à deux types de problèmes : – nous ne savons pas toujours où placer certaines colonnes (par exemple, l’adresse de livraison se met dans la relation des clients ou dans la relation des commandes?) ; – nous avons du mal à prévoir les relations de jonction intermédiaires (par exemple, la relation des interprétations qui est indispensable entre la relation des films et la relation des acteurs). Il est donc nécessaire de recourir à une étape préliminaire de conception. Les notions de dépendances fonctionnelles et de normalisation ont ainsi été introduites afin de formaliser la conception des bases de données.
Un attribut Y dépend fonctionnellement d’un attribut X si et seulement si une valeur de X induit une unique valeur de Y . On note une dépendance fonctionnelle par une flèche simple : X Y . Par exemple, si X est le numéro de client et Y le nom de client, alors on a bien X Y . Par contre, on n’a pas Y X, car plusieurs clients de numéros différents peuvent porter le même nom. Transitivité : si X Y et Y Z alors X Z. Par exemple, on a : numéro de commande numéro de client nom de client, donc on a aussi : numéro de commande nom de client. Mais la dépendance fonctionnelle numéro de commande nom de client est dite transitive, car il faut passer par le numéro de client pour l’obtenir.
Au contraire, la dépendance fonctionnelle numéro de client !nom de client est directe . Seules les dépendances fonctionnelles directes nous intéressent. Exemples : les DF suivantes sont elles directes ? numéro de livraison date de livraison numéro de livraison numéro du fournisseur numéro du fournisseur nom du fournisseur numéro de livraison nom du fournisseur
Un attribut Y peut avoir une dépendance fonctionnelle qui repose sur la conjonction de plusieurs attributs, auquel cas la dépendance est dite non élémentaire . Les dépendances fonctionnelles non élémentaires sont notées par une flèche unique mais comportant plusieurs points d’entrée Par exemple, la quantité commandée (d’un article dans une commande) dépend de deux attributs : le numéro de commande et le numéro d’article. Notons que cette dépendance numéro de commande , numéro d’article quantité est à la fois non élémentaire et directe. Les dépendances fonctionnelles traduisent ainsi les contraintes du problème à modéliser exprimées jusqu’alors en langage naturel.
Graphe de couverture minimale En représentant tous les attributs et toutes les dépendances fonctionnelles directes entre eux, nous obtenons un réseau appelé graphe de couverture minimale. nom du client numéro de commande numéro de client date de commande numéro d’article quantité commandée adresse du client désignation
Clés primaires : Les lignes d’une table doivent être uniques, cela signifie qu’une colonne (au moins) doit servir à les identifier. Il s’agit de la clé primaire de la table. Traduction vers un schéma relationnel : A partir du graphe de couverture minimale , le schéma relationnel correspondant apparaît naturellement , en suivant quelques étapes simples. Etape 1 : il faut repérer et souligner les clés primaires Etape 2 : tous les attributs qui dépendent directement d’une clé et d’une seule , forment une relation (avec la clé, bien sûr). Etape 3 : les attributs (non clés) qui dépendent de plusieurs clés sont les attributs d’une relation supplémentaire formée des clés et de ces attributs
Définition de la 1ère forme normale : les attributs de relation sont simples ou atomiques. Exemple : La table LIVRE(Numéro, titre, Nom-auteur) n’est en1NF que si un livre n’a qu’un seul auteur On peut envisager deux solutions le cas échéant LIVRE(Numéro, titre, auteur1,auteur2,...,auteurn) avec n connu Ecrit par(Numéro, Nom auteur) en introduisant autant de lignes pour un livre qu’il a d’auteurs
Définition de la 2ème forme normale : La clé peut être composée de plusieurs attributs mais les autres attributs de la relation doivent dépendre de la clé en entier (et non pas une partie de cette clé). Exemple : la table FOURNISSEUR ( Nom , Adresse, Article, prix) pour laquelle la clé définie est le couple (Nom, Article) et on a les DF : (Nom,Article) Prix et Nom adresse Où une partie de la clé Nom détermine l'attribut adresse n'appartenant pas à la clé donc la relation n'est pas en 2FN. Elle devra être décomposée en deux relations en 2NF: FOURNISSEUR (Nom, adresse) Et Produit (Nom,Article, prix)
Définition de la 3ème forme normale : Tous les attributs d’une relation doivent dépendre directement de sa clé et d’aucun autre attribut. Exemple : La relation Voiture (Numéro ,marque,type,puissance,couleur) n'est pas en 3FN, car l'attribut non clé type détermine marque et aussi Puissance. En effet, cette relation peut être décomposée en deux relations : Voiture (Numéro,type,couleur) Modèle ( Type , marque, puissance) Remarque : La troisième forme normale permet d'assurer l'élimination des redondances dues aux dépendances transitives.
3. Normalisations des schémas de relation Le processus de normalisation va contrôler la définition du schéma relationnel Éviter la redondance de l’information Le principe général est d’obtenir une décomposition de la relation d’origine R, définie par tous ses attributs, en un ensemble de relations Ri respectant certaines propriétés dans le but de minimiser les problèmes. Les propriétés choisies définiront une classification des schémas obtenus : première, seconde et troisième forme normale (1NF, 2NFet 3NF).
N° acteur N°film Nom acteur titre durée