École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Chapitre I : Les Systèmes de Gestion des Fichiers. I-1 La notion de fichier Comme avec plusieurs aspects de la vie humaine, la plupart des données présentes entre elles un certain ordre naturel. Généralement, les données sont groupées sous forme de fichiers ; étant la méthode d’organisation des données la plus simple et la pu répandue en informatique. II- Définitions II-1 Fichier Un fichier renferme un ensemble d'informations plus ou moins structurés, se rapportant à un groupe d’individus ou d’objets. On ne parle cependant de fichier que dans le cas où ces informations sont stockées sur des supports qui leur permettent une durée de vie assez longue, et ce sans avoir besoin de trop d'entretien, comme, par exemple, les disquettes ou les bandes magnétiques. Les fichiers peuvent contenir absolument tous les types de données que l'on veut. Ainsi, toutes les informations concernant les employés d’une entreprise peuvent être groupées dans un fichier « Personnel » de l’entreprise. Un fichier est un groupe organisé et structuré d’articles de la même nature. Ainsi , chaque fichier est divisé en plusieurs articles. II-2 Article L’article (ou enregistrement logique) d’un fichier donné contient toutes les informations relatives au même individu ou bien au même objet. C’est l'ensemble minimum de données qui peut être manipulé par une seule opération élémentaire du fichier. Il est souvent constitué de diverses données élémentaires, que l'on peut décrire dans le langage de programmation utilisé, comme le montre la figure 1-1. Dans cet exemple, le fichier est constitué d'une collection d'enregistrements qui ont la structure d'EMPLOYE. 01 EMPLOYE 02 NOM PICTURE X(30) 02 PRENOM PICTURE X(20) 02 NUM-S-S 03 SEXE PICTURE 9 03 DATE-NAISSANCE 04 ANNEE PICTURE 99 04 MOIS PICTURE 99 03 ADRESSE 04 REGION PICTURE 99 04 VILLE PICTURE 999 02 CODE-INTERNE PICTURE 9999 Fig. 1-1. Exemple de description en COBOL d'un enregistrement logique II-3 Champ Cours préparé par : Joseph BARHOUM. 2009 - 2010 1 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Un attribut (ou attribut) est une variable qui renseigne sur une caractéristique d'une entité. C’est un groupe d’informations élémentaires. Par exemple l’adresse dans le fichier « Personnel » constitue une donnée qui rassemble plusieurs informations élémentaires : Région et Ville. Le Num-S-S représente un sous article du fichier « Personnel ». Un article alors peut être divisé en différents niveaux de champs (ou sous articles). Un caractère correspond au groupe de bits le plus petit (0, 1). Une zone ou un mot correspond à un groupe de caractères successifs représentant les informations accessibles dans l’opération de traitement.la longueur d’une zone est le nombre de caractère de cette zone. Ainsi : Groupe de Caractères Zone ou Mot. Groupe de Mots Champ. Groupe de Champs Article. Groupe d’Article Fichier. II-4 Domaine de l'attribut Le domaine de l'attribut est l'ensemble des valeurs qu'il peut prendre. Pour un attribut de type nominal (par exemple : nom, occupation, type de culture), le domaine est défini par un ensemble de valeurs possibles (l'ensemble des types de cultures possibles dans une région). Cet ensemble est habituellement fini mais est parfois difficile à cerner (domaine des noms de familles). Pour les attributs de type quantitatif (pente, température, âge), le domaine se définit souvent par des bornes minimales et maximales. Le respect du domaine des attributs contribue grandement à l'intégrité référentielle. Il est d'usage de créer une table contenant l'ensemble des valeurs du domaine d'un attribut de type nominal afin d'offrir à la personne qui saisit les données une liste correcte des valeurs possibles. Il s'agit alors d'une table de consultation. III- Les structures des Fichiers III-1 Les fichiers séquentiels Les fichiers à organisation séquentielle représentent la forme la plus simple de stockage d’informations en mémoire de masse. On place dans le fichier les enregistrements les uns derrière les autres au fur et à mesure de leur saisie. La saisie d’un enregistrement se fera toujours en fin du fichier. L'accès à un enregistrement de rang n ne peut se faire que par le parcours des n-1 précédents (parcours séquentiel). L’accès séquentiel est l’unique accès possible sur un fichier à organisation séquentiel. Avantage : simplicité de mise en place et d’utilisation. Inconvénient : lenteur d’accès à l’information. Fig. 1-2.Organisation séquentielle d’un fichier. III-2 Les fichiers directes Cours préparé par : Joseph BARHOUM. 2009 - 2010 2 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Ce type d’organisation de fichier est plus efficace lorsqu’on désire obtenir des enregistrements particuliers. Les enregistrements sont stockés sur un disque à une adresse particulière qui peut être déterminée à partir de leur champ clé. Cette adresse est calculée via une technique connue sous le nom de HASHING. Ces programmes de hashing transforment par des opérations mathématiques, la valeur numérique du champ clé en une adresse particulière de stockage. Ces programmes sont utilisés premièrement pour stocker les enregistrements, puis pour les accéder ailleurs. Ces fichiers sont stockés seulement sur disques. Avantage : localisation rapide des enregistrements donnés. Inconvénient : couteux, besoin d’un très grand espace de stockage. Et pas trop efficace quant aux grand nombre de modifications et d’enregistrements. Fig. 1-3.Organisation Directe d’un fichier. III-3 Les fichiers séquentiels indexes C’est un compromis entre l’organisation directe des fichiers et l’organisation séquentielle. Les enregistrements sont stockés dans un fichier selon un ordre séquentiel. Un tableau d’index est utilisé pour localiser les enregistrements. Dans ce tableau on trouve les clés de chaque enregistrement ainsi que leur adresse correspondante sur le disque. Ainsi, pour trouver un enregistrement donné dans un fichier indexé séquentiel, une recherche dans le tableau d’index est effectuée pour trouver la clé de l’enregistrement donné, puis une fois trouvé, la valeur de l’adresse physique sur le support est connue, et l’enregistrement est trouvé. Remarque : la clé d’index que l’on peut nommer clé primaire est identifiante : elle identifie de façon unique l’enregistrement auquel elle appartient. Donc une clé d’index ou clé primaire caractérise la connaissance d’un seul enregistrement dans un fichier à organisation séquentielle indexée. Avantage : Accès sélectif rapide à un enregistrement à partir de la valeur de sa clé. Accès séquentiel efficace selon l’ordre des clés. Taille du fichier variable au cours du temps. Inconvénient : Insertions / suppressions parfois coûteuses en E/S. Cours préparé par : Joseph BARHOUM. 2009 - 2010 Fig. 1-4.Organisation Séquentielle Indexée d’un fichier. 3 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Fig. 1-5.Différents types d’index. Cours préparé par : Joseph BARHOUM. 2009 - 2010 4 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Dans cette organisation (séquentielle indexée), la clé est composée d’un ou plusieurs attributs; elle est un identifiant des enregistrements du fichier (pas de doubles). L’index plus les enregistrements du fichier constituent un B−arbre. Les enregistrements sont donc triés selon l’ordre de la clé. On dit que l’index est "plaçant". L’accès séquentiel selon l’ordre des clés est très efficace. Les index secondaires Objectif: permettre l’accès par plusieurs attributs (ou groupes d’attributs) différents et qui ne sont pas nécessairement identifiants. Par exemple sur un fichier des étudiants, accéder par le nom (homonymes possibles), par l’année de naissance, ... Pour chaque attribut (ou groupe d’attributs), appelé clé secondaire, on crée un index (avec plusieurs entrées de même valeur de clé dans le cas de clé non identifiante) organisé en B−arbre. Ces index sont appelés index secondaires ou fichiers inversés. Ils ne sont ni plaçants, ni denses. Exemple: Avantage des index secondaires: Plusieurs accès sélectifs selon des clés différentes possibles, en plus des accès dus à l’organisation de base du fichier. Inconvénients: Multiplier les index secondaires multiplie les E/S lors des mises à jour des fichiers. de Arbre B+ Les fichiers séquentiels indexés perdent leurs performances quand leur taille grandit. On propose donc des organisations différentes tels que les fichiers indexés par arbre B+ (B Balanced, équilibré) , qui sont très utilisés si l’on a des modifications fréquentes. Ils sont efficaces, quelque soit les opérations d'insertion ou d'effacement de données. Servitude lors des opérations d'insertion ou de suppression. Un arbre B+ est sous la forme d'un arbre équilibré. Arbre B Les fichiers indexés par arbre B ont le même aspect que les arbres B+ mais les redondances des clés de tri sont éliminés. Néanmoins la structure des nœuds non terminaux est différente. Il y a moins de nœuds que les arbre B+. Dans le cas d'une recherche, on n’est pas obligé d'aller au bout d'un chemin. L’accès aux données : Les données stockées en mémoire sont perdues dès la sortie du programme. Les fichiers sur support magnétique (bande, disquette, disque) sont par contre conservables, mais au prix d'un temps d'accès aux données très supérieur. On peut distinguer les fichiers séquentiels (on accède au contenu dans l'ordre du stockage) ou à accès direct Cours préparé par : Joseph BARHOUM. 2009 - 2010 5 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données (on peut directement accéder à n'importe quel endroit du fichier). Les fichiers sont soit binaires, soit formaté ASCII. Organisation avec blocage possible des enregistrements (1 bloc = plusieurs enregistrements lus/écrits en une E/S): ♦ n = nombre d’enregistrements dans le fichier. ♦ b = nombre d’enregistrements par bloc. ♦ n/b = N = nombre de blocs nécessaires. � Intérêt du blocage: ♦ gain de place en MS ♦ gain d'E/S lors des accès Blocage Fixe : Les enregistrements dans le fichier ont tous la même longueur et sont donc de longueur fixe. C'est à dire que ces enregistrements sont tous composés d'un même nombre constant de rubriques (zones) qui, elles aussi, sont chacune de longueur fixe. Une même rubrique est toujours de la même longueur et de la même nature d'un enregistrement à un autre. Blocage Variable : Les enregistrements dans le fichier sont de longueur variable. C'est à dire qu'ils n'ont pas tous la même longueur. On peut trouver parfois des enregistrements de même longueur dans le fichier mais ils sont quand même dits de longueur variable dans la mesure où ils comportent un compteur d'enregistrement au début. Les enregistrements peuvent être ou ne pas être tous composés d'un même nombre de rubriques (zones) qui, à leur tour, peuvent être également de longueur fixe ou variable. Une même rubrique peut ne pas être toujours de la même longueur mais cependant et en principe toujours de la même nature d'un enregistrement à un autre. Il arrive même parfois que certaines rubriques existent dans un enregistrement et n'existent plus dans le suivant. Le blocage n'est pas obligatoire mais préférable sur les supports bandes magnétiques pour des raisons d'économie de place sur ces supports. Cours préparé par : Joseph BARHOUM. 2009 - 2010 6 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Différents types de fichier Il s'agit d'une topologie suivant la durée de vie du fichier. Permanente on les nomme: Fichiers permanents (P) Tous les attributs du fichier sont de type structurel (nom, adresse, date de naissance…). Les valeurs de ces attributs ne sont jamais modifiées, elles sont simplement consultée car leur mise à jour est souvent réalisée ailleurs par des traitements. Les informations contenues dans le fichiers sont "stables" dans le temps. Les traitements possibles sont la création, la mise à jour (ajout, suppression, modification), le tri sur un critère, la fusion ou l'éclatement. Mouvement on les nomme Fichier de mouvements (M) Ils représentent les événements qui doivent être traités et qui ont été saisis et contrôlés au préalable lors d'un traitement transactionnel. Ils sont lus séquentiellement. Existe jusqu'à la mise à jour du fichier permanent à modifier. Archive on les nomme Fichier d'archive (H) Durée de vie quasi illimitée. Il s'agit de l'équivalent d'une photographie d'un fichier à l'instant t. Les événements qui ont été traités ou certains résultats obtenus peuvent être enregistrés de façon définitive dans des fichier d'archives. En plus, on a : - Les fichiers Liaison (L): fichier permettant de lier deux traitements ; un fichier résultant d'un premier traitement utilisé pour un second traitement. Sa durée de vie correspond à celle de l'application qui l'a créé. - Les fichiers Travail (TR): fichier créé pour un traitement, utilisé puis détruit ; il existe lors du temps de l'opération. - Les fichiers Table (T): petit fichier ne concernant que des données de type paramètre. - Les fichiers d'attente (A) :Lorsqu'un mouvement ne peut être traité car il manque certaines données, il est placé dans un fichier d'attente pour pouvoir être traité ultérieurement lorsque toutes les conditions auront été réunies. Par exemple une commande est mise en attente si la quantité en stock du produit commandé est insuffisante pour pouvoir livrer et facturer la commande. - Les fichiers temporaires (T) Ce type de fichier correspond à des données stockées provisoirement pour être reprises un peu plus loin. Un fichier temporaire a une durée de vie limitée. Il est créé en cours d'exécution, et est détruit après son utilisation. Le cas le plus courant de fichier temporaire est celui obtenu en résultat d'un tri. Caractéristiques des fichiers Les fichiers sont caractérisés par plusieurs données représentant l'utilisation qui est faîte de ces fichiers. - Volume : taille d'un fichier en nombre de caractère (unité : octet) - Taux de croissance : (nombre d'articles créés moins nombre d'articles supprimés) / nombre d'article en début de période. - Taux de mouvement : nombre d'articles ajoutés, supprimés, modifiés pendant la période / nombre d'articles en début de période. - Taux de consultation : nombre d'articles consultés / nombre d'articles existant. Cours préparé par : Joseph BARHOUM. 2009 - 2010 7 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Cours préparé par : Joseph BARHOUM. 2009 - 2010 8 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Chapitre II : Les Systèmes de Gestion de Base de Données. Base de données 1. Introduction 1.1 Qu’est-ce qu’une base de données ? Dans la vie de tous les jours on entend beaucoup de gens parler de base de données; certains en parlent à tort et travers et d'autres certainement ont en tête la dimension informatique de la définition et je vous en donne une possible : 1.2 Définition Une base de données est une collection de données organisées et reliées entre elles de telle sorte que l'on puisse accéder à une quelconque d'entre elles par l'intermédiaire d'un programme informatique. Les données doivent être exhaustives (la base contient toutes les informations requises pour le service que l'on en attend), non redondantes (la même information n'est présente qu'une seule fois). Une base de données est donc une entité logiquement cohérente, représentant des éléments abstraits ou concrets du monde réel et qui véhicule une certaine sémantique permettant sa gestion. 2. Caractéristiques 2.1 Mini-monde et catalogue Commençons d'abord par définir ce que c'est que le monde réel quand on travaille avec une base de données. Fréquemment on est emmené à garder des informations et à les gérer via l'outil informatique. Pour illustrer notre propos, prenons comme exemple un responsable de magasin qui veut contrôler son stock (savoir ce qui il a vendu pour pouvoir approvisionner à temps le stock ou adapter les prix de vente par rapport au délai de péremption). Dans ces genres de situations réelles, on utilise une base de données; elle permet de réunir les éléments importants de cette situation réelle qu'on appelle Mini-monde. On définit clairement chaque entité de ce mini-monde en prenant soin de bien dégager ses attributs ; il faut tout faire pour aboutir à une situation permettant de constituer un référentiel de données accessibles par les utilisateurs de la BD. La conception d'une base de données capable de traiter sans ambiguïté les informations provenant de telle situation nécessite une spécification des types de données, de leurs structures et des contraintes nécessaires à son bon fonctionnement. 2.2 Le catalogue système ou dictionnaire de données C'est un élément important au cœur de la communication d'une BDD. Il contient toutes les méta-données utiles au système. Les méta-données sont les représentations permettant la description des données (type, taille, valeurs autorisées, etc...), des autorisations d’accès, des vues et autres éléments systèmes. Le catalogue renferme aussi la description des différents schémas des trois niveaux (physique, conceptuel et externes -voir ci-dessous-) ainsi que les règles de passage d’un schéma vers l’autre. Tout ce travail de description d'un mini-monde et de définition de catalogue d'une BDD nécessite un certain niveau d'abstraction des données. Cours préparé par : Joseph BARHOUM. 2009 - 2010 9 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données 2.3 Abstraction des données Dans la définition des BD énoncée ci-dessus, on voit bien que l'intérêt d'une Base de Données est de permettre la gestion des données qui sont dedans à partir d'un système informatique qu'on appelle communément SGBD (un système de gestion de base de données). Dans un SGBD (il y a un certain nombre sur le marché) les programmes qui traitent les données, les programmes applicatifs implémentant les opérations du SGBD sont indépendants des données ; cette propriété importante des bases de données s'appelle abstraction des données. Ainsi, qu'on soit en présence d'un système de base de données relationnel (SGBDR) ou un système de base de données orienté objet, l'utilisateur travaille avec une représentation conceptuelle des données. 2.4 Modèle de données Un modèle de données est un mode de représentation des informations issues d'un "mini-monde" caractérisé par : 1. Les structures des données 2. Les contraintes qui permettent de spécifier les règles que doit respecter une base de données. 3. Les opérations permettant de manipuler les données (interroger ou mettre à jour la base). 4. Les deux premières caractéristiques relèvent du DDL(Langage de Définition des Données) un langage utilisé pour décrire le schéma d’une base de données. La troisième caractéristique (opérations) est la base du DML (Langage de Manipulation de Données) dont le représentant le plus célèbre est SQL. Dans le contexte des bases de données, la principale qualité d’un modèle de données est d’être indépendant de la représentation physique. Cette indépendance permet de séparer totalement les tâches respectives des administrateurs de la base chargés de l’optimisation de ses performances et des développeurs d’application ou utilisateurs finaux qui n’ont pas à se soucier de la manière dont le système satisfait leurs demandes. Il existe différents modèles de données et les plus connus sont : Le modèle conceptuel de données (appelés aussi modèle de haut niveau), le modèle de données physique (ou modèle de bas niveau) et le modèle de données représentationnel. 2.4.1 MCD (Modèle conceptuel de données) Les concepts utilisés pour la description de la structure des bases de données permettent de classer les modèles; le modèle conceptuel de données propose des concepts proches de l'utilisateur final notamment les concepts comme " entités", "attributs" et "relations". Ces concepts décrivent les objets du monde réel indépendamment de toute technique d’organisation et d’implémentation des données. Prenons comme exemple de mini-monde une entreprise ; si on décrit et on traduit dans une base de données ses éléments importants, dans un premier temps, on aboutit aux termes "Employé", "projets", "services" qui sont des entités ayant chacune des propriétés qu'on appelle communément attributs. Entre ses entités on définit des Relations ; par cette approche on parle de modèle entités-relations(ou entitéAssociation). Cours préparé par : Joseph BARHOUM. 2009 - 2010 10 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données En général on part de ce modèle entités-relations pour développer le modèle le plus utilisé actuellement à savoir le modèle de données relationnel . 2.4.2 Schémas d'une base de données Schémas Au cours de la conception d'une base de données, on la décrit avec précision en définissant clairement les entités qui ont un rôle dans les applications qui seront traitées et ensuite on réalise un Schéma de données; ce schéma, description de cette BdD dans le langage de description des données, peut évoluer au cours de la conception. Il est souvent représenté par un diagramme qui montre la structure de chaque enregistrement. 2.5 Architecture des systèmes ANSI/SPARC Architecture tri schématique ou architecture Dans l'architecture tri schématique on établit trois niveaux de description du système de base de données qui sont : le niveau interne, le niveau conceptuel et le niveau externe. Le processus de transformation des requêtes et des résultats qui sortent d'un niveau à un autre s'appelle correspondance ou mapping. 2.5.1 Le niveau externe Le niveau externe (appelé aussi niveau vue), comprend une quantité de vues utilisateurs ; chaque utilisateur décrit une partie de la base qui convient à ses besoins. Chaque groupe d'utilisateurs s'intéresse uniquement à son propre schéma externe et les SGBD doivent transformer toute demande d'utilisateur de haut niveau en requêtes de schéma conceptuel puis en requêtes de schéma interne appliquées aux données stockées. 2.5.2 Le niveau conceptuel Dans le niveau conceptuel on décrit la structure générale de la base de données du point de vu de la communauté des utilisateurs ; c'est un schéma conceptuel qui masque les détails des structures de stockage physique des données et qui ne se soucie pas de l’implémentation physique des données ni de la façon dont chaque groupe d'utilisateurs voudra se servir de la base de données ; ce niveau se concentre sur la description des entités, du type des données, des relations existant entre les entités et des opérations des utilisateurs. Dans le cas des SGBD relationnels, il s’agit d’une vision tabulaire où la sémantique de l’information est exprimée en utilisant les concepts de relation, attributs et de contraintes d’intégrité. Le niveau conceptuel est défini au travers du schéma conceptuel. 2.5.3 Le niveau interne Le niveau interne est un schéma qui décrit la structure de stockage physique de la base de données. IL s’appuie sur un système de gestion de fichiers pour définir la politique de stockage ainsi que le placement des données. Le niveau physique est donc responsable du choix de l’organisation physique des fichiers ainsi que de l’utilisation de méthodes d’accès en fonction de la requête. 3 Indépendances des données Cours préparé par : Joseph BARHOUM. 2009 - 2010 11 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données 3.1 Indépendance logique L'architecture à trois niveaux définit ci-dessus permet de garantir l'indépendance des données par rapport aux programmes ; elle permet de modifier le schéma de la base de données à un niveau sans restructurer les autres. L'indépendance logique des données est la possibilité qui fait qu'on puisse modifier le niveau conceptuel sans remettre en cause les schémas externes ou les programmes d'application. L'ajout ou le retrait de nouveaux objets ne modifient pas les éléments qui n'y font pas explicitement référence. 3.2 Indépendance physique Quand on peut changer le schéma physique et qu'on peut modifier l'organisation physique des fichiers, rajouter ou supprimer des méthodes d'accès sans remettre en cause le schéma conceptuel, alors on a une indépendance physique de la BD Indépendance physique Pouvoir modifier les structures de stockage ou les index sans que cela ait de répercussion au niveau des applications Les disques, les méthodes d’accès, les modes de placement, le codage des données ne sont pas apparents Indépendance logique Permettre aux différentes applications d’avoir des vues différentes des mêmes données Permettre au DBA de modifier le schéma logique sans que cela ait de répercussion au niveau des applications Cours préparé par : Joseph BARHOUM. 2009 - 2010 12 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données 4 Des fichiers aux Base de Données Les données de la BDD sont décrites hors des programmes dans la base elle-même. Les données des fichiers sont décrites dans les programmes. La multiplication des fichiers entraînait la redondance des données, ce qui rendait difficile les mises à jour. D'où l'idée d'intégration et de partage des données Avec base de données • Une information n'est stockée qu'une seule fois • Une seule base pour toutes les applications. • …mais chaque application ne voit que ce qu'elle doit voir (contrôle par les filtres ou vues). 5 Types d'utilisateurs • L'administrateur de la base est chargé – Du contrôle de la base de données, en particulier, permettre l'accès aux données aux applications ou individus qui y ont droit. – De conserver de bonnes performances d'accès à ces données. – Des sauvegardes et des procédures de reprise après les pannes. L’administrateur (une personne ou une équipe). Il définit le schéma conceptuel de la BDD et le fait évoluer. Il fixe les paramètres de l’organisation physique de façon à optimiser les performances. Il gère les droits d’accès et les mécanismes de sécurité. • Le programmeur – Écrit des applications qui utilisent la base de données. – Il crée les tables et les structures associées (vues, index,...) utilisées par ses applications. Les programmeurs d’application : ils définissent les schémas externes et construisent les programmes qui alimentent ou exploitent la BDD en vue d’application particulières. Ils utilisent pour cela le langage de BDD du SGBD éventuellement couplé avec un langage de programmation classique. • L'utilisateur final Cours préparé par : Joseph BARHOUM. 2009 - 2010 13 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données – N'a accès qu'aux données qui lui sont utiles par l'intermédiaire d'applications en interrogeant directement les tables ou vues sur lesquelles l'administrateur lui a accordé des droits. Les utilisateurs finaux : ils accèdent à la BDD au travers des outils construits par les programmeurs d’applications ou pour les plus avertis au travers du langage de requêtes. 6 Types de SGBD • SGBD hiérarchique : – Les données sont représentées dans la base sous la forme d'un arbre. – La structure d'arbre utilise des pointeurs et détermine le chemin d'accès aux données • SGBD réseau : – Les données sont représentées dans la base sous la forme d'un graphe quelconque. – La structure de graphe utilise des pointeurs et détermine le chemin d'accès aux données • Pour les SGBD hiérarchiques et réseaux, les programmes ne sont pas indépendants de la structure logique de la base. – Doivent indiquer le chemin d'accès aux données. – Utilisent un langage complexe pour travailler avec les données SGBD relationnel • La théorie des SGBDR est fondée sur la théorie mathématique des relations. • Représentation très simple des données sous forme de tables constituées de lignes et de colonnes. • Plus de pointeurs qui figent la structure de la base. • Langage non procédural, puissant et simple d'emploi. • Langage SQL est un standard parmi ces langages. • Dominent le marché des SGBD. SGBD Orienté Objet • Les SGBDOO enregistrent les données sous forme d'objets ; les données sont enregistrées avec les procédures et les fonctions qui permettent de les manipuler • Ils supportent la notion d'héritage entre classes d'objets. • Très simple de rendre les objets persistants. • Meilleures performances pour la gestion d'objets complexes (les pointeurs remplacent les jointures pour les structures hiérarchiques). 7 Objectifs d'un SGBD (critères de Codd) 1. Indépendance physique ; 2. Indépendance logique ; 3. Manipulation des données par des langages non-procéduraux ; 4. Administration facilité des données ; 5. Efficacité des accès aux données ; 6. Redondance contrôlée des données ; 7. Cohérence des données ; 8. Partage des données ; 9. Sécurité des données. Faciliter la représentation et la description de données Cours préparé par : Joseph BARHOUM. 2009 - 2010 14 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Indépendance physique : Plus besoin de travailler directement sur les fichiers physiques (tels qu’ils sont enregistrés sur disque). Un SGBD nous permet de décrire les données et les liens entre elles d’une façon logique sans se soucier du comment cela va se faire physiquement dans les fichiers. On parle alors d’image logique de la base de données, (ou aussi description logique ou conceptuelle ou encore de schéma logique). Ce schéma est décrit dans un modèle de données par exemple le modèles de tables, appelé le modèle relationnel. La manipulation des données doit être facilitée en travaillant directement sur le schéma logique. On peut insérer, supprimer, modifier des données directement sur l’image logique. Le SGBD va s’occuper de faire le travail sur les fichiers physiques. Indépendance logique : Un même ensemble de données peut être vu différemment par des utilisateurs différents. Toutes ces visions personnelles des données doivent être intégrés dans une vision globale. Manipulations des données par des non informaticiens. Il faut pouvoir accéder aux données sans savoir programmer ce qui signifie des langages « quasi naturels ». Efficacité des accès aux données : Ces langages doivent permettre d’obtenir des réponses aux interrogations en un temps « raisonnable ». Il doivent donc être optimisés et, entre autres, il faut un mécanisme permettant de minimiser le nombre d’accès disques. Tout ceci, bien sur, de façon complètement transparente pour l’utilisateur. Administration centralisée des données : Des visions différentes des données (entre autres) se résolvent plus facilement si les données sont administrées de façon centralisée. Cohérence des données. Les données sont soumises à un certain nombre de contrainte d’intégrité qui définissent un état cohérent de la base. Elles doivent pouvoir être exprimées simplement et vérifiées automatiquement à chaque insertion, modification ou suppression de données, par exemple : l’âge d’une personne supérieur à zéro Salaire supérieur à zéro Etc Dés que l’on essaie de saisir une valeur qui ne respecte pas cette contrainte, le SGBD le refuse. Non redondance des données : Afin d’éviter les problèmes lors des mises à jour, chaque donnée ne doit être présente qu’une seule fois dans la base. Partageabilité des données : Il s’agit de permettre à plusieurs utilisateurs d’accéder aux mêmes données au même moment. Si ce problème est simple à résoudre quand il s’agit uniquement d’interrogations et quand on est dans un contexte mono-utilisateur, cela n’est plus le cas quand il s’agit de modifications dans un contexte multiutilisateurs. Il s’agit alors de pouvoir : Permettre à deux (ou plus) utilisateurs de modifier la même donnée « em même temps »; Assurer un résultat d’interrogation cohérent pour un utilisateur consultant une table pendant qu’un autre la modifie. Sécurité des données. Les données doivent pouvoir être protégées contre les accès non autorisés. Pour cela, il faut pouvoir associer à chaque utilisateur des droits d’accès aux données. Résistance aux pannes : Que se passe-t-il si une panne survient au milieu d’une modification, si certains fichiers contenant les données deviennent illisibles? Les pannes, bien qu’étant assez rares, se produisent quand même de temps en Cours préparé par : Joseph BARHOUM. 2009 - 2010 15 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données temps. Il faut pouvoir, lorsque l’une d’elles arrive, récupérer une base dans un état « sain ». Ainsi, après une panne intervenant au milieu d’une modification deux solutions sont possibles : soit récupérer les données dans l’état dans lequel elles étaient avant la modification, soit terminer l’opération interrompue. Contrôles réalisés par le SGBD Partage de données : accès à la même information par plusieurs utilisateurs en même temps. Le SGBD inclut un mécanisme de contrôle de la concurrence basé sur des techniques de verrouillage des données ( pour éviter par exemple qu’on puisse lire une information qu’on est en train de mettre à jour) Intégrité des données grâce à la définition de contraintes sur les données. Le SGBD veille à ce que toutes les contraintes soient vérifiées à chaque insertion, suppression, ou modification d’une donnée. Confidentialité : plusieurs utilisateurs peuvent utiliser en même temps une base de données, se pose le problème de la confidentialité des données. Des droits doivent être gérés sur les données, droits de lecture, mise à jour, création; … qui permettent d’affiner. Sécurité : une base de données est souvent vitale dans le fonctionnement d’une organisation, et il n’est pas tolérable qu’une panne puisse remettre en cause son fonctionnement de manière durable. Les SGBD fournissent des mécanismes pour assurer cette sécurité. Indépendance par rapport aux traitements Pour faciliter la maintenance, un SGBD doit favoriser l'indépendance des traitements – Par rapport à l'implantation physique des données (codage, support enregistrement, ordre dans lequel les données sont enregistrées,…). – Et même, si possible, par rapport à l'implantation logique des données (existence d'index, décomposition en "fichiers logiques",…). Quelques SGBD (relationnels du marché) Micro : ACCESS, Paradox, Dbase, PostSQL, MySQL, … Gros système : DB2, ORACLE, SYBASE, … 8- Architecture Architecture centralisée programme d'application et SGBD sur même machine (même site). premiers systèmes Architecture du type client-serveur (client-server architecture) programme d'application = client interface (« GUI ») + traitement du domaine d’application. SGBD = serveur (de données « data server »). machines (sites) différentes. deux couches, niveaux, strates (“two tier ”). Cours préparé par : Joseph BARHOUM. 2009 - 2010 16 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Architecture client / serveur BD Réseau Programme d'application Logiciel intermédiaire Pilote de télécommunication SGBD Logiciel intermédiaire Pilote de télécommunication Client Serveur Architecture 3 tiers BD Réseau Réseau Interface Application SGBD Logiciel intermédiaire Pilote de télécommunication Logiciel intermédiaire Pilote de télécommunication Logiciel intermédiaire Pilote de télécommunication Client mince Serveur d'application Serveur de données Cours préparé par : Joseph BARHOUM. 2009 - 2010 17 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Base de données distribuées BD locale Réseau Programme d'application Logiciel intermédiaire Pilote de télécommunication Client BD locale Réseau SGBD réparti SGBD réparti Logiciel intermédiaire Pilote de télécommunication Logiciel intermédiaire Pilote de télécommunication Serveur de données Serveur de données Base de données parallèles Unité de traitement Disque Unité de traitement Disque Unité de traitement Disque Disque Mémoire vive Disque Entrepôt de données BD opérationnelle (OLTP) BD opérationnelle (OLTP) Extraction : filtrage, synthèse, transformation, fusion Entrepôt de données (« data wharehouse ») Analyse (OLAP), prospection Autre source de données Cours préparé par : Joseph BARHOUM. 2009 - 2010 18 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Entrepôt de données Base de données opérationnelle traitement des données quotidiennes et récentes. OLTP (“ On Line Transaction Processing ”). Entrepôt de données (data wharehouse) grand volume de données historiques extraites de bases opérationnelles pour le support à la prise de décision. OLAP (“ On Line Analytical Processing ”) Prospection de données, ou forage, fouille, exploration de données, ou découverte de connaissances dans les BD (data mining, analysis, dredging, archeology, knowledge discovery in databases - KDD) extraction non triviale d'informations implicites, inconnues et utiles apprentissage machine, statistiques. Cours préparé par : Joseph BARHOUM. 2009 - 2010 19 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données • Décrire les données qui seront stockées indépendamment des applications. Grâce au langage de définition des données DATA DEFINITION LANGUAGE (DDL) • Manipuler ces données (ajouter, modifier, supprimer des informations), interroger et mettre à jour les données sans préciser d'algorithme d'accès dire QUOI sans dire COMMENT langage de requêtes déclaratif ex.: quels sont les noms des produits de prix < 100F ? Et ceci grâce au langage de manipulation des données DATA MANIPULATION LANGUAGE (DML). • Consulter les données et traiter les informations obtenues (sélectionner, trier, calculer, agréger,...). • Définir des contraintes d'intégrité sur les données (contraintes de domaines, d'existence,...). Intégrité : les données dans une bdd doivent respecter un certain nombre de contraintes dites d’intégrité. Un SGBD doit assurer que les contraintes d’intégrité soient respectées. Concurrence : en général, plusieurs utilisateurs se partagent la même BDD. Plusieurs transactions peuvent donc s’exécuter en même temps. Un SGBD doit assurer que les éventuels conflits entre ces transactions ne mettent pas la BDD dans état incohérent. • Définir des protections d'accès (mots de passe, autorisations,...). Contrôler les données, Intégrité vérification de contraintes d'intégrité ex.: le salaire doit être compris entre 400F et 20000F. Confidentialité, contrôle des droits d'accès, autorisation. Un SGBD doit permettre d’interdire à certaines personnes de réaliser certaines opérations sur une partie ou sur toute la BDD. langage de contrôle des données DATA CONTROL LANGUAGE (DCL) • Résoudre les problèmes d'accès multiples aux données (blocages, interblocages). Le Partage une BDD est partagée entre plusieurs utilisateurs en même temps. Le contrôle des accès concurrents notion de transaction L'exécution d'une transaction doit préserver la cohérence de la BDD • Prévoir des procédures de reprise en cas d'incident (sauvegardes, journaux,...). Après une panne, qu’elle soit d’origine logicielle ou matérielle, un SGBD doit être capable de restaurer la BDD dans un état cohérent, le même ou le plus proche de celui précédant la panne. Indépendance données – traitements : L’indépendance données – traitements est indispensable pour pouvoir faire évoluer facilement l’organisation logique ou physique d’une BDD ou bien l’architecture matérielle du SGBD qui la gère. L’indépendance données – traitements permet si elle est atteinte : - de modifier l’organisation physique (par exemple ajouter un index pour un accès plus rapide) sans modifier le schéma conceptuel ou les programmes d’application. - De modifier le schéma conceptuel (par exemple ajouter un nouveau type d’entité ou d’association) sans modifier les programmes d’application. • Performances d'accès index (hashage, arbres balancés ...). Cours préparé par : Joseph BARHOUM. 2009 - 2010 20 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Programme source avec LMD enchâssé Programmeur Programme source incorporant des appels à une librairie spécialisée pour le SGBD pré-compilateur Utilisateur expert Utilisateur Administrateur de base de données (ABD) Compilateur Utilitaire d'édition et d'interprétation de commandes du LMD Utilitaire d'édition du schéma Interprète du LDD Programme d'application Utilitaire convivial de manipulation de données Evaluateur de requête (LMD) Système de gestion de base de données (SGBD) Dictionnaire de données (contient le schéma ou méta-données) Base de données (contient les données) Mémoire secondaire permanente Cours préparé par : Joseph BARHOUM. 2009 - 2010 21 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Chapitre III : Les Systèmes de Gestion de Base de Données Relationnels. a- Un peu d'histoire 1960 Uniquement des systèmes de gestion de fichiers plus ou moins sophistiqués. 1970 Début des systèmes de gestion de bases de données réseaux et hiérarchiques proches des systèmes de gestion de fichiers. Ces systèmes de gestion de bases de données avaient rempli certains des objectifs précédents mais on ne pouvait pas interroger une base sans savoir où était l'information recherchée (on "naviguait") et sans écrire de programmes. Sortie du papier de CODD sur la théorie des relations, fondement de la théorie des bases de données relationnelles. 1980 Les systèmes de gestion de bases de données relationnels apparaissent sur le marché. 1990 Les systèmes de gestion de bases de données relationnels dominent le marché. Début des systèmes de gestion de bases de données orientés objet. b- Le modèle relationnel Le modèle relationnel a été formalisé par CODD en 1970. Quelques exemples de réalisation en sont : DB2(IBM), INFORMIX, INGRES, ORACLE. Dans ce modèle, les données sont stockées dans des tables, sans préjuger de la façon dont les informations sont stockées dans la machine. Un ensemble de données sera donc modélisé par un ensemble de tables. Le succès du modèle relationnel auprès des chercheurs, concepteurs et utilisateurs est dû à la puissance et à la simplicité de ses concepts. En outre, contrairement à certains autres modèles, il repose sur des bases théoriques solides, notamment la théorie des ensembles et la logique mathématique. Les objectifs du modèle relationnel : - améliorer l'indépendance logique et physique, - mettre à la disposition des utilisateurs des langages de haut niveau pouvant éventuellement être utilisés par des non informaticiens, - optimiser les accès à la base de données, - améliorer l'intégrité et la confidentialité, - fournir une approche méthodologique dans la construction des schémas. De façon informelle, on peut définir le modèle relationnel de la manière suivante : - Les données sont organisées sous forme de tables à deux dimensions, encore appelées relations et chaque ligne n-uplet ou t-uple, - les données sont manipulées par des opérateurs de l'algèbre relationnelle, - l'état cohérent de la base est défini par un ensemble de contraintes d'intégrité. Au modèle relationnel est associée la théorie de la normalisation des relations qui permet de se débarrasser des incohérences au moment de la conception d'une base de données. c- Définitions Domaine : Ensemble fini ou infini de valeurs distinctes que peut prendre une donnée élémentaire (entiers, booléens...) Un n-uplet ou t-uple : élément <v1, v2, …., vn> du produit cartésien d’un ensemble de domaines D1, D2, …., Dn note D1xD2x…..xDn tel que quelque soit i dans Di. Cours préparé par : Joseph BARHOUM. 2009 - 2010 22 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Exemple : Si D1 = {a, b, c} et D2 = {1, 2} alors D1xD2 = {<a, 1> ; <a, 2> ; <b, 1>, <b, 2> ; <c, 1> ; <c, 2>}. N.B. : Le produit cartésien peut être généralisé sur des ensembles quelconques et, en particulier, des ensembles de t-uples. Exemples de domaines Des domaines : nom = {Dupont, Martin, Robert, Denou, Bellamy, ...} � prénom = {Franck, Isabelle, Adrien, Michelle, Jean, Gustave, ... } note = [0..20] Des t-uples : Nom x prénom = {(Dupont, Franck), (Dupont, Isabelle), ..., (Martin, Franck), (Martin, Isabelle), ... } Nom x note = {(Dupont, 0), (Dupont, 1)... } Table/Relation : une table ou relation est un sous-ensemble du produit cartésien d'une liste de domaines. Elle est identifiée par un nom. En d'autres termes, une relation est table dans laquelle chaque colonne correspond à un domaine et porte un nom. Représentation : tableau dont les lignes sont les t-uples. Les noms de colonne sont les attributs de la table. Chaque attribut est unique. Exemples : NOM_ELV = {Dupont, Durant} PREN_ELV = {pierre, paul, jacques} DATE_NAISS = {Date entre 1/1/1990 et 31/12/2020} NOM_SPORT = {judo, tennis, foot} La relation ELEVE ELEVE ⊂ NOM_ELV × PREN_ELV × DATE_NAISS ELEVE = {(Dupont, pierre, 1/1/1992), (Durant, jacques, 2/2/1994) } La relation INSCRIPT INSCRIPT ⊂ NOM_ELV × NOM_SPORT INSCRIPT = { (Dupont, judo), (Dupont, foot), (Durant, judo) } N.B.1 : L'ordre des lignes et des colonnes est sans importance ; N.B.2 : Tous les t-uples doivent être distincts (notion de clé) ; Le degré d'une relation : nombre d'attributs. (Noté δ(…)) La cardinalité d'une relation : nombre de t-uples. (Notée card(…)) Attribut : Colonne d'une relation caractérisée par un nom. Schéma de relation : Nom de la relation, suivi de la liste des attributs avec leurs Domaines. Le schéma d'une relation : le nom de la table, l'ensemble des noms des attributs, les contraintes, Exemples: ELEVE (NOM, PRENOM, NAISS) INSCRIPT (NOM_ELV, SPORT) Cours préparé par : Joseph BARHOUM. 2009 - 2010 23 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données Le schéma d'une base de données : ensemble des schémas de toutes les tables. Notez la différence entre : - Le schéma de la BDR qui dit comment les données sont organisées dans la base. - L'ensemble des n-uplets de chaque relation, qui représentent les données stockées dans la base. Base de données relationnelles : Base de données dont le schéma est un ensemble de schémas de relations et dont les occurrences sont les t-uples de ces relations. Une expression relationnelle : une expression de syntaxe précise composée de noms de relations, d'attributs, de constantes et d'opérations. Elle décrit une relation. Un langage relationnel : permet d'écrire des expressions relationnelles. Exemple de BDR Étudiants noetu 1 28936E 2 46283B 3 86719E 4 99628C 5 99321C 6 99322C nom Dupont Dupont Martin Robert Denou Dupont prénom Franck Isabelle Adrien Adrien Michelle Isabelle Avec δ(Étudiant) = 3 et Card(Étudiant) = 6. Système de gestion de bases de données relationnel : C'est un logiciel supportant le modèle relationnel, et qui peut manipuler les données avec des opérateurs relationnels. d- Dépendance fonctionnelle Soit R(A1, A2, ...., An) un schéma de relation Soit X et Y des sous ensembles de {A1,A2,...An) On dit que Y dépend fonctionnellement de X (X→Y) si à chaque valeur de X correspond une valeur unique de Y On écrit : X → Y On dit que : X détermine Y Ex.: PRODUIT (no_prod, nom, prix) no_prod → (nom, prix) NOTE (no_contrôle, no_élève, note) (no_contrôle, no_élève) → note • une dépendance fonctionnelle est une propriété sémantique, elle correspond à une contrainte supposée toujours vrai du monde réel. D.F. élémentaire D.F. X → A mais A est un attribut unique non inclus dans X et il n’existe pas de X’ inclus dans X tel que X’ →A Cours préparé par : Joseph BARHOUM. 2009 - 2010 24 École Technique de Zahlé – Classe de TS2 Informatique de Gestion Cours de Base de Données La clé d’une relation Attribut (ou groupe minimum d'attributs) qui détermine tous les autres Ex.: PRODUIT (no_prod, nom, prix) no_prod → (nom, prix) no_prod est une clé • Une clé détermine un n-uplet de façon unique • Pour trouver la clé d'une relation, il faut examiner attentivement les hypothèses sur le monde réel • Une relation peut posséder plusieurs clés, on les appelle clés candidates Ex.: Dans la relation PRODUIT, nom est une clé candidate (à condition qu'il n'y ait jamais 2 produits de même nom). Clé primaire choix d'une clé parmi les clés candidates Clé étrangère ou clé secondaire attribut (ou groupe d'attributs) qui fait référence à la clé primaire d'une autre relation Ex.: CATEG (no_cat, design, tva) PRODUIT(no_prod, nom, marque, no_cat, prix) no_cat dans PRODUIT est une clé étrangère. CLÉ ÉTRANGÈRE = CLÉ PRIMAIRE dans une autre relation. Cours préparé par : Joseph BARHOUM. 2009 - 2010 25