La notion de fichier

publicité
É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
Téléchargement