Cours de Systèmes d'information et bases de données
…
1.2 Base de données et Système de Gestion de Base de Données
Bases de données
Définition : Une base de données est un ensemble structuré de données enregistrées avec le minimum de redondance pour satisfaire simultanément plusieurs utilisateurs de façon sélective en un temps opportun.
L'approche base de données est due à une triple évolution:
- évolution des entreprises (volumes importants de données, centralisées ou réparties, qui doivent être accessibles en temps utile,...)
- évolution du matériel (accroissement des performances, intégration des composants, diminution des coûts,...)
- évolution des logiciels (les systèmes d'exploitation, les architectures client serveur et les réseaux).
Exemple: Base de données commerciale
Les données sont relatives aux clients, aux produits, aux commandes, aux lignes de commandes... Les requêtes sont très variées :
- "liste des produits qui ont été commandés par un client déterminé" ;
- "quel est le client de la commande numéro X ?" ;
- "quelle est la date de la dernière commande du client s'appelant Y ?"
Systèmes de Gestion de Base de Données
Définition : Un SGBD (ou DBMS : Data Base Management System) peut être défini comme un ensemble de logiciels permettant de stocker et d'interroger un ensemble de fichiers interdépendants. Il peut aussi être défini comme un outil permettant de modéliser et de gérer les données d'une entreprise.
Ainsi, un SGBD permet à un utilisateur de communiquer avec une base de données pour: - décrire et organiser les données sur les mémoires secondaires (disques), - rechercher, sélectionner et modifier les données.
Un SGBD offre la possibilité à l'utilisateur de manipuler les représentations abstraites des données, indépendamment de leur organisation et de leur implantation sur les supports physiques (mémoires).
Un SGBD assure
- la description des données,
- leur recherche et mise à jour,
- la sûreté : sauvegarde et restauration des données ; limiter les erreurs de saisie et de manipulation,
- la sécurité : vérifier les droits d'accès des utilisateurs ; limiter les accès non autorisés,
- l'intégrité : définir des règles qui maintiennent l'intégrité de la base de données (contraintes d'intégrité),
- la concurrence d'accès : détecter et traiter les cas où il y a conflit d'accès entre plusieurs utilisateurs et les traiter correctement.
1.3. Avantages de l'approche base de données
Un système organisé autour d'une base de données est centré sur les données, contrairement aux systèmes de gestion de fichiers (SGF) basés sur les traitements (par exemple : traitement de la paye, facturation, gestion des stocks, etc .) .
1.3.1. Comparaison SGBD - SGF
Dans l'approche gestion de fichiers, les fichiers sont définis pour un ou plusieurs programmes de traitement. Les données d'un fichier sont directement associées à un programme par une description contenue dans le programme de traitement lui-même. Il n'existe aucune indépendance entre le programme et les données. Toute modification de la structure des données nécessite la réécriture du programme.
Gestion des données avec les SGF
Dans l'approche base de données, la partie de structuration et de description des données est unifiée et séparée des programmes d'application. Bien sûr la gestion de ces données (stockage, modification, recherche) qui est étroitement dépendante de leur structuration, est fournie par le système de gestion des données, les applications ne communiquant avec les données qu'au travers de l'interface de gestion. D'où l'indépendance entre les données et les applications, qui peuvent être modifiées indépendamment. Le programmeur des applications (l'utilisateur) n'a pas à connaître l'organisation physique des données.
Application 1 Application n
SGBD
Gestion des données avec les SGBDs
1.3.2. .r ganisation des données
Dans les deux approches, des fichiers de données sont constitués, permettant le stockage, l'organisation et l'accès aux différents enregistrements.
Ces fichiers peuvent être accédés selon différentes méthodes :
Définition : un index est une table (ou plusieurs tables) permettant d'associer à une clé d'enregistrement l'adresse relative de cet enregistrement.
1.3.3. Apports des SGBD
Les avantages des systèmes de bases de données par rapport aux systèmes traditionnels (méthodes papier ou approche de gestion de fichiers) sont :
De plus, le contrôle centralisé des données dans une base de données a pour résultat certains autres avantages tels que :
Exercices : Questions à choix multiples
Ql : Historique
Les Systèmes de Gestion de Bases de Données (SGBD) ont vu le jour
Q2 : Modèle hiérarchique Dans le modèle hiérarchique:
Q3 : Modèle réseau Dans le modèle réseau:
Q4 : Modèle relationnel Le modèle relationnel
Q5 : Comparaison SGF et SGBD Dans l'approche gestion de fichiers
Q6 : Comparaison SGF et SGBD Dans l'approche base de données
Q7 : BD et SGBD
Une base de données est:
Q8 : Fonctions d'un SGBD
Parmi les fonctions assurées par un SGBD :
Q9 : Apports des SGBD
Parmi les avantages des systèmes de bases de données par rapport aux systèmes traditionnels (méthodes papier ou approche de gestion de fichiers) :
Q10 : Index Un index est:
Chapitre 2
Architecture des SGBD
L'architecture ANSI/SPARC, dite aussi architecture de référence, se compose de trois niveaux appelés, respectivement, niveau interne, niveau conceptuel et niveau externe.
n Le niveau interne (ou niveau physique) est le niveau relatif à la mémoire physique. Il s'agit du niveau où les données sont réellement enregistrées.
n Le niveau externe (ou niveau logique utilisateur) est le niveau relatif aux utilisateurs. Il s'agit du niveau où les utilisateurs voient les données.
n Le niveau conceptuel (ou niveau logique communautaire ou logique) est le niveau intermédiaire entre les deux autres.
Par ailleurs, parmi les objectifs premiers d'un SGBD figurent l'indépendance physique et l'indépendance logique des programmes aux données.
2.1. Les trois niveaux
Les trois niveaux de l'architecture ANSI/SPARC 2.1.1. Le niveau interne
Le niveau interne est une représentation de bas niveau de l'ensemble de la base de données. Elle est constituée de plusieurs occurrences des divers types d'enregistrements internes. La vue interne est décrite par un schéma interne. Ce schéma ne définit pas seulement les divers types d'enregistrements mémoire mais spécifie également les index existants, comment les champs mémoires sont représentés, le séquencement physique des enregistrements, etc.
2.1.2. Le niveau externe
Le niveau externe est le niveau de l'utilisateur. Un utilisateur peut aussi bien être un programmeur d'application que tout autre utilisateur final ayant n'importe quel niveau de compétence. Ce niveau est représenté par plusieurs schémas externes appelés aussi vues.
2.1.3. Le niveau conceptuel
La vue conceptuelle donne la représentation de l'ensemble des informations contenues dans la base de données. Comme la vue externe, cette représentation est abstraite comparée à la représentation physique des données. En général, elle est également très différente de la vue qu'un utilisateur particulier a de la base de données.
La vue conceptuelle correspond aux diverses occurrences des types d'enregistrements conceptuels. Elle est définie par un schéma conceptuel.
2.2. Indépendance entre les niveaux
2.2.1. Indépendance physique
Un des objectifs essentiels des SGBD est de permettre de réaliser l'indépendance des structures de stockage aux structures de données du monde réel, c'est-à-dire entre le schéma interne et le schéma conceptuel.
Le schéma interne et le schéma conceptuel décrivent les données, mais à des niveaux différents. L'indépendance physique permet donc de modifier le schéma interne sans avoir à modifier le schéma conceptuel, en tenant compte seulement des critères de performance et de flexibilité d'accès.
On pourra par exemple ajouter un index, regrouper deux fichiers en un seul, changer l'ordre ou le codage des données dans un enregistrement, sans mettre en cause les entités et associations définies au niveau conceptuel.
2.2.2. Indépendance logique
Le schéma conceptuel résulte d'une synthèse des vues particulières de chaque groupe de travail utilisant la base de données, c'est-à-dire d'une intégration de schémas externes. Ainsi, chacun doit pouvoir se concentrer sur les éléments constituant son centre d'intérêt, c'est-à-dire qu'un utilisateur doit pouvoir ne connaître qu'une partie des données de la base au travers de son schéma externe, encore appelé vue.
L'indépendance logique est donc la possibilité de modifier un schéma externe (une vue) sans modifier le schéma conceptuel. Elle assure aussi l'indépendance entre les différents utilisateurs, chacun percevant une partie de la base via son schéma externe, selon une structuration voire un modèle particulier.
I l doit par exemple être possible d'ajouter des attributs, d'en supprimer d'autres, d'ajouter et de supprimer des associations, d'ajouter ou de supprimer des entités dans des schémas externes sans modifier la plus grande partie des applications.
Types d’indépendances et modèles d’une base de données
2.3. Importance de la conception d'une base de données
Pour pouvoir mettre en oeuvre les différents besoins des utilisateurs, l'équipe de conception doit planifier soigneusement les étapes de la conception. Diverses méthodes de conception (Merise, UML ...) existent définissant un ensemble d'étapes à suivre et de formalismes à adopter.
2.3.1. Etapes de conception
La conception d'une base de données suit généralement les trois étapes suivantes :
2.3.2. Equipe de conception et distribution des tâches
On met en place une équipe de conception constituée d'une ou de plusieurs personnes. L'équipe de conception typique d'un projet relativement important comporte principalement:
o définition des besoins opérationnels, des données et des fonctions
o analyse/modélisation des données
o modélisation des processus/fonctions
o responsables du codage
o conduisant les sessions de tests
o administre la base de données
o détermine l'emplacement physique de la base de données
o interagissent avec le système
o effectuent des tâches quotidiennes.
2.3.3. Outils de conception automatisée
Les outils de conception automatisée, encore appelés CASE (Computer Aided Systems Engineering) ou AGL (Atelier de Génie Logiciel) sont des applications à interface graphique (GUI : Graphic User Interface) qui facilitent la conception et la création d'une base de données.
Oracle Designer est, par exemple, l'un des AGL les plus puissants du marché.
Parmi les fonctionnalités de tels outils:
Exercices : Questions à choix multiples
Ql : Les trois niveaux
L'architecture ANSI/SPARC se compose des niveaux suivants:
Q2 : Les indépendances entre niveaux
Parmi les objectifs premiers d'un SGBD figurent
Q3 : Niveau externe Le niveau externe est:
Q4 : Niveau interne Le niveau interne est:
Q5 : Niveau conceptuel La vue conceptuelle
Q6 : Indépendance physique L'indépendance physique permet
Q7 : Indépendance logique L'indépendance logique permet
Q8 : Etapes de conception
Parmi les étapes suivies lors de la conception d'une base de données :
Q9 : Affinement du schéma logique
L'affinement du schéma logique consiste à :
Q10 : Equipe de conception
L'équipe de conception typique d'un projet relativement important comporte principalement:
Chapitre 3
Le modèle Entités/Associations
Les aspects importants de la réalité à représenter, ou domaines d'application, doivent être décrits d'une manière abstraite, indépendante de toute technologie. Le modèle Entité-association permet de décrire un domaine d'application sous la forme d'ensembles d'entités, dotées de propriétés et en association les unes avec les autres, et ce, sans référence aux notions techniques de tables, colonnes ou index.
3.1. Concepts de base 3.1.1. Entité
Une entité est un objet pourvu d'une existence propre et conforme aux choix de gestion de l'entreprise.
Le domaine d'application est perçu comme étant constitué d'entités concrètes ou abstraites. Ainsi, dans le contexte du commerce, on peut cerner un domaine d'application dans lequel on repère des clients, des commandes et des produits. On considère que chacun d'eux est une entité du domaine et que chaque entité appartient à une classe ou type d'entités. On définit naturellement quatre types d'entités qu'on nommera CLIENT, COMMANDE et PRODUIT. On représentera ces entités d'une manière graphique, comme indiqué sur la figure 1.
CLIENT
NumClt NomClt AdrClt COMMANDE
NumC DateC PRODUIT
Ref
Désignation PU
Figure 1 : Formalisme des entités
Ces quelques exemples montrent qu'une entité peut correspondre à des objets concrets inanimés (produits), des objets concrets animés (clients) ou des événements (commandes). Une occurrence d'une entité est un élément individualisé appartenant à cette entité.
3.1.2. Association
Une association entre entités est une association perçue dans le réel entre deux ou plusieurs entités. Une association est dépourvue d'existence propre.
Une commande est liée au client qui l'a passée; il existe donc une association entre cette commande et ce client. On dira que toutes les associations de cette nature appartiennent au type d'association Passer entre les deux entités CLIENT et COMMANDE.
Lorsqu'une entité intervient dans un type d'association, on dit qu'elle joue un rôle. On utilisera d'ailleurs ce terme pour désigner une des extrémités d'une association. Une même entité peut jouer deux rôles dans une même association.
On représentera une association d'une manière graphique, comme indiqué sur la figure 2.
Figure 2 : Formalisme d'une association
Propriétés d'une association
Soient deux entités E et F et une association A entre E et F.
Cette propriété décrit le nombre maximum d'occurrences de l'entité F pour chaque occurrence de l'entité E et inversement. On est ainsi amené à définir trois classes fonctionnelles d'associations : un à plusieurs, un à un et plusieurs à plusieurs.
- association de type 1:1 (ou un-à-un) si à une occurrence de l'entité E peut correspondre par l'association A au plus une occurrence de l'entité F et que, réciproquement à une occurrence de l'entité F ne peut correspondre au plus qu'une occurrence de l'entité E.
- association de type 1:n (ou un-à-plusieurs) : si à une occurrence de l'entité E peut correspondre par l'association A plusieurs occurrences de l'entité F mais à une occurrence de l'entité au plus une occurrence de l'entité E.
- association de type n:n (ou plusieurs-à-plusieurs) : si à une occurrence de l'entité E peuvent correspondre plusieurs occurrences de l'entité F et réciproquement.
On peut imposer qu'une association soit obligatoire pour une entité qui y participe.
Chaque entité participant à une association y est caractérisée par un couple de valeurs min¬max appelé cardinalités.
C'est le nombre d'entités participant à l'association. Une association entre deux entités est appelée association binaire. Une association entre trois entités est appelée association ternaire. Une association entre n entités est appelée association n-aire.
Exemple 1 : entre les entités ETUDIANT et ENSEIGNEMENT on peut considérer l'association binaire INSCRIT pour traduire le fait qu'un étudiant est inscrit à un enseignement.
INSCRIT
ETUDIANT ENSEIGNEMENT
Exemple 2:
L'association ternaire « Représente » ne peut être décomposée en deux associations binaires que si l'on sait que tout représentant travaillant pour un fournisseur représente tous les produits de ce fournisseur. La décomposition sera la suivante :
C'est une association d'une entité sur elle-même. En effet, il est parfaitement possible d'établir une association entre une entité et elle-même, définissant par là une association cyclique.
Exemple: pour traduire le fait que Irène Curie est la fille de Marie Curie on pourra utiliser une association A-POUR-MERE entre les deux entités représentant ces personnes.
A-POUR-MERE
PERSONNE PERSONNE
3.1.3 Attributs
Un attribut ou une propriété est une donnée élémentaire que l'on perçoit sur une entité ou sur une association entre objets.
Chaque client est caractérisé par un numéro, un nom et une adresse. On modélisera ces faits en dotant l'entité CLIENT des attributs NumClient, Nom et Adresse.
On spécifiera le type de chaque attribut : numérique, caractère, date, etc. ainsi que sa longueur.
Un attribut d'une association est une propriété qui dépend de toutes les entités intervenant dans l'association.
Exemple: L'association INSCRIT définie entre les entités ETUDIANT et MODULE a pour attribut l'année de première inscription de l'étudiant à l'enseignement. Cette année d'inscription est attribut de l'association et non de l'une des entités, car il faut connaître l'étudiant et le module pour pouvoir la déterminer.
3.1.4. Les identifiants
En général, une entité est dotée d'un attribut qui identifie les entités de ce type. L'entité CLIENT, par exemple, possède un attribut NumClient tel qu'à tout instant les occurrences de l'entité CLIENT ont des valeurs de NumClient distinctes. En d'autres termes, étant donné une valeur quelconque de NumClient, on a la garantie qu'il n'y aura, à aucun moment, pas plus d'une occurrence de l'entité CLIENT possédant cette valeur. On dira que NumClient est un identifiant de CLIENT. En outre, il peut arriver qu'une entité possède plus d'un identifiant. Dans ce cas, l'un d'eux peut être déclaré primaire tandis que tous les autres sont secondaires.
Il se peut que la valeur d'un attribut ne soit pas connue au moment où les informations sur l'entité sont enregistrées. Si on admet que cet attribut puisse ne pas avoir de valeur pour certaines occurrences de l'entité, on le déclarera facultatif. Sinon cet attribut est obligatoire.
L'identifiant d'une entité est un attribut particulier de l'entité tel qu'à chaque valeur de la propriété corresponde une et une seule occurrence de l'entité.
L'identifiant d'une association est l'identifiant obtenu par concaténation des identifiants des entités participant à la relation.
Dans le diagramme E/A, les clés sont soulignées.
3.1.5. Les Cardinalités
La cardinalité d'une entité par rapport à une association s'exprime par deux nombres appelés cardinalité minimale et cardinalité maximale.
La cardinalité minimale (égale à 0 ou 1) est le nombre de fois minimum qu'une occurrence d'une entité participe aux occurrences de l'association.
Si la cardinalité minimale est égale à 0, c'est qu'il existe parmi toutes les occurrences de l'entité au moins une occurrence ne participant pas aux occurrences de l'association.
Si la cardinalité minimale est égale à 1, ceci correspond au fait que chaque occurrence de l'entité participe toujours à une occurrence de l'association.
La cardinalité maximale indique le nombre de fois maximum qu'une occurrence de l'entité participe aux occurrences de la relation.