Introduction aux bases de données
Mehdi HAJJI [email protected]
Conception BD – II2
Plan du cours
Définitions SGBD Notion de données Notion de modèle de données Notion de schéma de données Notion de langage de données Notion d’administration de données Conception d’une base de données
Introduction aux bases de données
-M. HAJJI-
2
Définitions Base de données
Une BD est un ensemble volumineux, structuré et minimalement redondant de données, reliées entre elles, stockées sur supports numériques centralisés ou distribués, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables par un ou plusieurs utilisateurs
travaillant potentiellement en parallèle.
Exemple
Une BD de gestion de l'activité d'une compagnie aérienne
concernant les voyageurs, les vols, les avions, le personnel, les réservations, etc.
Une telle BD pourrait permettre la gestion des réservations, des disponibilités des avions en fonction des vols à effectuer, des affectations des personnels volants, etc.
Introduction aux bases de données
-M. HAJJI-
3
Définitions
Banque de données
Une banque de données est un ensemble, pas forcément structuré d’informations, généralement regroupées (sous forme de fichiers manuels ou informatiques, id sunt des "BASES de données")
Aussi a-t-on l’habitude d’affirmer (même si ce n’est pas
directement lié à leur définition), qu’une BANQUE de données est composée de BASES de données (mais ce n’est pas tout à fait la réalité)
Introduction aux bases de données
-M. HAJJI-
4
SGBD
Un SGBD est un logiciel qui prend en charge la
structuration, le stockage, la mise à jour et la maintenance d'une base de données.
Il est l'unique interface entre les informaticiens et les données (définition des schémas, programmation des applications), ainsi qu'entre les utilisateurs et les données (consultation et mise à jour).
Introduction aux bases de données
-M. HAJJI-
5
SGBD
Exemples:
Oracle est un SGBD relationnel (et Relationnel-Objet dans ses
dernières versions) très reconnu pour les applications professionnelles.
MySQL est un SGBD relationnel libre (licence GPL et commerciale),
simple d'accès et très utilisé pour la réalisation de sites Web dynamiques. Depuis la version 4 MySQL implémente la plupart des fonctions attendues d'un SGBD relationnel.
PosgreSQL est un SGBD relationnel et relationnel-objet très puissant qui offre une alternative open-source aux solutions commerciales comme Oracle ou IBM.
Access est un SGBD relationnel Microsoft, qui offre une interface conviviale permettant de concevoir rapidement des applications de petite envergure ou de réaliser des prototypes à moindre frais.
Introduction aux bases de données
-M. HAJJI-
6
SGBD Avant l'avènement des SGBD, chaque application informatique
dans l'entreprise impliquait sa propre équipe de développement, ses propres supports physiques, ses propres fichiers, ses propres normes, ses propres langages, etc. Conséquences: L'existence conjointe et croissante de ces applications indépendantes a des effets négatifs, tels que : La multiplication des tâches de saisie, de développement et de
support informatique
La redondance anarchique des informations dans les fichiers L'incohérence des versions simultanées de fichiers La non-portabilité des traitements en raison des différences dans les
formats et langages.
La multiplication des coûts de développement et de maintenance des
applications.
Introduction aux bases de données
-M. HAJJI-
7
SGBD
Problèmes humains et matériels.
Coûts en personnels qualifiés et en formations Remise des pouvoirs de décision entre les mains de spécialistes
informatiques
Tout changement matériel ou logiciel a un impact sur les
applications
Publicité
Tout changement de la structure des données nécessite de
modifier les programmes
Introduction aux bases de données
-M. HAJJI-
8
SGBD : Caractéristiques
La conception d'un système d'information pour être
rationnelle à l'échelle d'une entreprise se doit d'adopter un certain nombre de principes, tels que : Une description des données indépendante des traitements Une maintenance de la cohérence de données Le recours à des langages non procéduraux, interactifs et
structurants
Dans ce cadre les SGBD se fixent les objectifs suivants : Indépendance physique des données
Le changement des modalités de stockage de l'information
(optimisation, réorganisation, segmentation, etc.) n'implique pas de changements des programmes.
Introduction aux bases de données
-M. HAJJI-
9
SGBD : Caractéristiques Indépendance logique des données
L'évolution de la structure d'une partie des données n'influe pas sur
l'ensemble des données.
Manipulation des données par des non-informaticiens
L'utilisateur n'a pas à savoir comment l'information est stockée et calculée par la machine, mais juste à pouvoir la rechercher et la mettre à jour à travers des IHM [Interface Homme Machine] ou des langages assertionnels simples. Administration facilitée des données
Le SGBD fournit un ensemble d'outils (dictionnaire de données,
audit, statistiques, etc.) pour améliorer les performances et optimiser les stockages.
Optimisation de l'accès aux données
Les temps de réponse et de débits globaux sont optimisés en
fonctions des questions posées à la BD.
Introduction aux bases de données
-M. HAJJI-
10
SGBD : Caractéristiques Contrôle de cohérence (intégrité sémantique) des données Le SGBD doit assurer à tout instant que les données
respectent les règles d'intégrité qui leurs sont imposées.
Partageabilité des données
Les données sont simultanément consultables et modifiables.
Sécurité des données
La confidentialité des données est assurée par des systèmes d'authentification, de droits d'accès, de cryptage des mots de passe, etc.
Sûreté des données
La persistance des données, même en cas de panne, est
assurée, grâce typiquement à des sauvegardes et des journaux qui gardent une trace persistante des opérations effectuées.
Introduction aux bases de données
-M. HAJJI-
11
Notion de données
Type de données
Ensemble d'objets qui possèdent des caractéristiques similaires
et manipulables par des opérations identiques.
Exemple
Entier = { 0, 1, 2, ... , N } Véhicule = (immatriculation, marque, type, couleur)
Donnée
Elément effectif, réel, correspondant à une type de données. Exemple
L'entier 486 Le véhicule (460HP59, Renault, Megane, Jaune)
Introduction aux bases de données
-M. HAJJI-
12
Notion de modèle de données
Ensemble de concepts et de règles de composition de ces concepts permettant de décrire des données (Gardarin, 1999).
Un modèle est souvent représenté au moyen d'un
formalisme graphique permettant de décrire les données (ou plus précisément les types de données) et les relations entre les données.
On distingue trois niveaux de modélisation pour les bases
de données : Le modèle conceptuel
Il permet de décrire le réel sans prendre en compte les contraintes
techniques.
Publicité
Introduction aux bases de données
-M. HAJJI-
13
Notion de modèle de données
Le modèle logique
Il permet de décrire une solution, en prenant une orientation informatique générale (type de SGBD typiquement), mais indépendamment de choix d'implémentation précis.
Le modèle physique
Il correspond aux choix techniques, en terme de SGBD choisi et de sa
mise en œuvre (programmation, optimisation, etc.).
Introduction aux bases de données
-M. HAJJI-
14
Notion de schéma de données
Description, au moyen d'un langage formel, d'un ensemble
de données dans le contexte d'une BD.
Un schéma permet de décrire la structure d'une base de données, en décrivant l'ensemble des types de données de la base. L'occurence d'une base de données est constituée de l'ensemble des données correspondant aux types du schéma de la base.
Exemple de schéma de base de données
Etudiant (NumEtud, nom, ville) Module (NumMod, titre) Inscription (NumEtud, NumMod, date)
Introduction aux bases de données
-M. HAJJI-
15
Notion de schéma de données
Exemple instance d’une base de données
Etudiant (172, 'Dupont', 'Lille') Etudiant (173, 'Durand', 'Paris') Etudiant (174, 'Martin', 'Orléans') Module(1, 'SGBD') Module(1, 'Systèmes d'exploitation') Inscription(172, 1, 2002) Inscription(172, 2, 2002) Inscription(173, 1, 2001) Inscription(174, 2, 2002)
Introduction aux bases de données
-M. HAJJI-
16
Notion de schéma de données On distingue trois niveaux d'abstraction de schémas : Le niveau conceptuel
Il permet de décrire les entités et les associations du monde réel. Il s'agit du schéma global de la base de données, il en propose une vue canonique.
Le niveau conceptuel correspond au modèle conceptuel.
Le niveau externe (notion de vue)
Il permet de décrire les entités et les associations du monde réel, mais vues d'un utilisateur ou d'un groupe d'utilisateurs particuliers (on parle d'ailleurs également de "vue" pour un schéma externe). Il s'agit d'une restriction du schéma conceptuel orientée vers un usage précis. Il existe généralement plusieurs schémas externes pour un même schéma conceptuel.
Le niveau externe correspond à un sous ensemble du modèle conceptuel restreint aux points de vue de certains utilisateurs.
Introduction aux bases de données
-M. HAJJI-
17
Notion de schéma de données
Le niveau interne
Il correspond à l'implémentation physique des entités et
associations dans les fichiers de la base.
Le niveau interne correspond aux modèles logiques et
physiques.
Introduction aux bases de données
-M. HAJJI-
18
Notion de langage de données
Langage informatique permettant de décrire et de
manipuler les schémas d'une BD d'une une manière assimilable par la machine.
Un langage de données peut être décomposé en trois
sous langages : Le Langage de Définition de Données
Le LDD [Langage de Définition de Données] permet d'implémenter le schéma conceptuel (notion de table en SQL) et les schémas externes (notion de vue en SQL).
CREATE TABLE Etudiant ( NumEtu : integer, Nom : string, Ville : string)
Introduction aux bases de données
-M. HAJJI-
19
Notion de langage de données
Le Langage de Contrôle de Données
Le LCD [Langage de Contrôle de Données] permet d'implémenter
les droits que les utilisateurs ont sur les données et participe donc à la définition des schémas externes.
GRANT ALL PRIVILEGES ON Etudiant FOR 'Utilisateur'
Publicité
Le Langage de Manipulation de Données
Le LMD [Langage de Manipulation de Données] permet
l'interrogation et la mise à jour des données. C'est la partie du langage indispensable pour exploiter la BD et réaliser les applications.
SELECT Nom FROM Etudiant WHERE Ville = 'Compiègne'
Introduction aux bases de données
-M. HAJJI-
20
Notion d’administration de données Administrateur Personne ou groupe de personnes responsables de la
définition des différents niveaux de schéma.
On distingue un type d'administrateur par niveau de
schéma : L'administrateur entreprise est en charge de la gestion du schéma conceptuel et des règles de contrôle des données. L'administrateur de données est en charge de la gestion des schémas externes et de leur correspondance avec le schéma conceptuel.
L'administrateur base de données est en charge de la gestion du schéma interne et de sa correspondance avec le schéma conceptuel.
Introduction aux bases de données
-M. HAJJI-
21
Notion d’administration de données Dictionnaire des données Le dictionnaire de données d'un SGBD contient les informations relatives aux schémas et aux droits de toutes les bases de données existantes au sein de ce SGBD.
Il s'agit d'un outil fondamental pour les administrateurs. Les dictionnaires de données sont généralement
implémentés sous la forme d'une base de données particulière du SGBD, ce qui permet de gérer les données relatives aux bases de données de la même façon que les autres données de l'entreprise (i.e. dans une base de données).
Introduction aux bases de données
-M. HAJJI-
22
Conception d’une base de données
Etapes de la conception d'une base de données 1. Analyse de la situation existante et des besoins 2. Création d'une série de modèles conceptuels (canonique et vues externes) qui permettent de représenter tous les aspects importants du problème
3. Traduction des modèles conceptuels en modèle logique et
4.
optimisation (normalisation) de ce modèle logique Implémentation d'une base de données dans un SGBD, à partir du modèle logique
Introduction aux bases de données
-M. HAJJI-
23
Conception d’une base de données
Introduction aux bases de données
-M. HAJJI-
24
Conception d’une base de données
L'importance de l'étape d'analyse
La première étape de la conception repose sur l'analyse de
l'existant et des besoins. De la qualité de la réalisation de cette première étape dépendra ensuite la pertinence de la base de données par rapports aux usages. Cette première étape est donc essentielle et doit être menée avec soins.
Si la première étape est fondamentale dans le processus de conception, elle est aussi la plus délicate. En effet, tandis que des formalismes puissants existent pour la modalisation conceptuel puis pour la modélisation logique, la perception de l'existant et des besoins reste une étape qui repose essentiellement sur l'expertise d'analyse de l'ingénieur.
Introduction aux bases de données
-M. HAJJI-
25
Conception d’une base de données
L'importance de l'étape de modélisation conceptuelle
Le modèle conceptuel étant formel, il va permettre de passer d'une spécification en langage naturel, et donc soumise à interprétation, à une spécification non ambigüe. Le recours aux formalismes de modélisation tels que E-A ou UML est donc une aide fondamentale pour parvenir à une représentation qui ne sera plus liée à l'interprétation du lecteur.
La traduction d'un cahier des charges spécifiant l'existant et les
besoins en modèle conceptuel reste néanmoins une étape délicate, qui va conditionner ensuite l'ensemble de l'implémentation informatique. En effet les étape suivantes sont plus mécaniques, dans la mesure où un modèle logique est déduit de façon systématique du modèle conceptuel et que l'implémentation logicielle est également réalisée par traduction directe du modèle logique.
Introduction aux bases de données
-M. HAJJI-
26
En résumé
Introduction aux bases de données
-M. HAJJI-
27
Merci…
Introduction aux bases de données
-M. HAJJI-
28