Chap1 Intro BDs
Chap1 Intro BDs
Chap1 Intro BDs
Objectif général : permettre à l’étudiant de développer les aptitudes à faire une analyse et
une conception de système d’information informatisé
Chap 5: Normalisation
➢ Oracle est un SGBD relationnel (et Relationnel-Objet dans ses dernières versions)
très reconnu pour les applications professionnelles.
Exemple de SGBD
➢ Oracle
Exemple de SGBD
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
Exemple de SGBD
MySQL
Exemple de SGBD
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.
Eléments de comparaison entre les SGBDs
Eléments de comparaison entre les SGBDs
Eléments de comparaison entre les SGBDs
Tableau de quelques SGBDs
Pourquoi des SGBD ?
Avant l'avènement des SGBD, chaque application
informatique dans l'entreprise impliquait à l’entreprise
d’avoir:
✓ 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.
Problèmes
Les conséquences précédemment citées se répercutent
sur l'entreprise en générant des 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
✓ Tout changement de la structure des données nécessite
de modifier les programmes
Observations
En réalité les applications ne sont jamais totalement disjointes.
Il y a des données similaires (le cœur de l'information
d'entreprise) qui sont toujours à la base des traitements.
On peut citer typiquement les données relatives:
✓ À la comptables
✓ Aux clients et fournisseurs
✓ à la gestion des stocks
✓ aux livraisons
✓ Au marketing, commerciales et communication
✓ au personnel
✓ aux Etudiants .
Caractéristiques des SGBD
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,
✓ Mais à des langages interactifs et structurants
Les SGBD se fixent les objectifs suivants
Indépendance physique des données
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 ou des langages assertionnels
simples.
Administration facilitée des données
Le SGBD fournit un ensemble d'outils (dictionnaire de données, audit, tunning, statistiques, etc.)
pour améliorer les performance et optimiser les stockages.
Optimisation de l'accès aux 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
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 à des sauvegardes et à des
journaux qui gardent une trace persistante des opérations effectuées.
La prise de point de contrôle pour remettre la BD dans un état satisfaisant.
Notions générales
Architecture d’un SGBD (ANSI/X3/SPARC)
Les trois niveaux, conceptuel, externe et interne, sont les trois
niveaux distingués par le groupe de normalisation ANSI/X3/SPARC
en 1975.
Architecture d’un SGBD (ANSI/X3/SPARC)
1 - 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 Langage de Définition des Données (LDD) permet de spécifier le schéma conceptuel :
✓ définition et dénomination des catégories d'objets,
✓ définition et dénomination des relations entre les objets,
✓ expression des contraintes sur les données.
Architecture d’un SGBD (ANSI/X3/SPARC)
✓ 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.).
Générations de modèles
✓ 1ère génération :
– hiérarchique (IMS d’IBM)
– réseau (CODASYL et SOCRATE)
✓ 2ème génération :
– relationnel
– entité-association
✓ 3ème génération :
– modèle orienté objet
– modèle objet-relationnel
– UML
✓ 4ème génération (les données du Web)
– XML
Exemple
✓ Soit une BD décrivant les livres d’une bibliothèque et leurs
auteurs.
✓ On suppose qu’un livre est identifié par sa cote et un
auteur par son nom.
✓ On se place à l’instant où la bibliothèque contient:
– un seul livre,
– ayant la cote BD01 et le titre « Oracle 9i sous Linux »,
– écrit par Gilles BRIARD né en 1960 et Peter S. GORDON né en
1953.
Exemple en relationnel
✓ Schéma
livre(cote: texte, titre: texte)
auteur(nom: texte, prénom: texte, année_naissance: entier)
écrire(cote=>livre: texte, nom => auteur: texte)
Exemple en orienté objet
✓ Schéma
– classe livre
› attribut cote: texte
› attribut titre: texte
› attribut écrit_par: liste(auteur)
– classe auteur
› attribut nom: texte
› attribut prénom: texte
› attribut année_naissance: entier
– méthode age(): entier {année_courante - self->année_naissance}
– livres: ensemble(livre)
– auteurs: ensemble(auteur)
✓ Instances
– (l1, {cote = "BD01", titre = " Oracle 9i sous Linux ", écrit_par = [a1,a2]})
– (a1, {nom = "BRIARD", prénom = « Gilles", année_naissance = 1960})
– (a2, {nom = "GORDON", prénom = « Peter", année_naissance = 1953})
✓ Variables persistantes
– livres = {l1}
– auteurs = {a1, a2}
Exemple en XML (DTD)
<!ELEMENT bd (livres, personnes)
<!ELEMENT livres (livre*)>
<!ELEMENT livre (cote, titre, écrit_par*)>
<!ELEMENT cote (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT écrit_par EMPTY>
<!ATTLIST écrit_par ref IDREF>
<!ELEMENT auteurs (personne*)>
<!ELEMENT auteur (nom, prénom, année_naissance)>
<!ATTLIST auteur id ID>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prénom (#PCDATA)>
<!ELEMENT année_naissance (#PCDATA)>
Exemple en XML (Document)
<bd>
<livres>
<livre>
<cote>BD01</cote>
<titre> Oracle 9i sous Linux </titre>
<écrit_par ref="a1"/><écrit_par ref="a2"/>
</livre>
</livres>
<auteurs>
<auteur id="a1">
<nom>BRIARD</nom>
<prénom>Gilles</prénom>
<année_naissance>1960</année_naissance>
</auteur>
<auteur id="a2">
<nom>GORDON</nom>
<prénom>Peter</prénom>
<année_naissance>1953</année_naissance>
</auteur>
</auteurs>
</bd>
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.
Le dictionnaire des données est aussi appelé
– Catalogue des données,
– Ou Métabase
Architecture de référence
Architecture de référence
✓ Analyseur
Analyse syntaxique et sémantique des requêtes
✓ Traducteur
Traduire les références externe en des références internes, c à d par
exemple les nom en adresse physique
✓ Optimiseur
Selon la base théorique optimise le processus de recherche de la réponse
› Exécuteur
Exécute le chemin de solution proposé par l’optimiseur
Architecture opérationnelle
✓ On distingue 4 grands types d’architecture :
✓ architecture centralisée,
✓ architecture client-serveur,
✓ architecture trois-tiers,
✓ architecture décentralisée.
Notion de langage de données
✓ 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.
✓ Exemple : SQL (Structured Query Language)
SQL est le langage orienté données consacré aux SGBD
relationnels et relationnels-objet.
Notion de langage de données
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).
✓ 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.
✓ 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.
Notion de langage de données
✓ Exemple : Définition de données en SQL
create table Etudiant (
id Number (5),
nom Varchar (20),
prenom Varchar (20),
ville Varchar (20),
constraint Etudiant_PK primary key (id)
) ;.
Cette instruction permet de créer une relation "Etudiant" comportant les propriétés id, nom,
prenom, ville, et une contrainte de clé primaire sur id.
Notion de langage de données
✓ Exemple : Contrôle de données en SQL
GRANT ALL PRIVILEGES ON Etudiant TO TP_USER;
Cette instruction permet de rechercher les noms de tous les étudiants habitant la ville de Banfora.
Notion de Transactions
Notion de Transactions
✓ Pour un SGBD l’unité de traitement est la transaction.
✓ Une transaction est un fragment de programme qui fait passer une BD d’un état cohérent à un
autre état cohérent, par une suite d’actions élémentaires.
Notion de Transactions
Déroulement d'une transaction ✓ Tant qu'une transaction n'a pas été terminée
1. DEBUT correctement, elle doit être assimilée à une
2. TRAITEMENT tentative ou une mise à jour virtuelle, elle reste
– Accès aux données en lecture incertaine.
– Accès aux données en écriture ✓ Une fois terminée correctement la transaction
3. FIN ne peut plus être annulée par aucun moyen.
– Correcte : Validation des modifications
– Incorrecte : Annulation des modifications
Propriétés ACID d'une transaction
Une transaction doit respecter quatre propriétés
fondamentales :
✓ L'atomicité
✓ La cohérence
✓ L'isolation
✓ La durabilité
Propriétés ACID d'une transaction
L'atomicité
✓ Les transactions constituent l'unité logique de travail,
✓ toute la transaction est exécutée ou bien rien du tout, mais jamais une partie seulement de la
transaction.
Propriétés ACID d'une transaction
La cohérence
✓ Les transactions préservent la cohérence de la BD,
✓ c'est à dire qu'elle transforme la BD d'un état cohérent à un autre (sans nécessairement que
les états intermédiaires internes de la BD au cours de l'exécution de la transaction respectent
cette cohérence
Propriétés ACID d'une transaction
L'isolation
✓ Les transactions sont isolées les unes des autres,
✓ c'est à dire que leur exécution est indépendante des autres transactions en cours.
✓ Elles accèdent donc à la BD comme si elles étaient seules à s'exécuter, avec comme corollaire
que les résultats intermédiaires d'une transaction ne sont jamais accessibles aux autres
transactions.
Propriétés ACID d'une transaction
La durabilité
✓ Les transactions assurent que les modifications qu'elles induisent perdurent, même en cas de
défaillance du système.
Exemple de Transactions
✓ Un exemple classique de transaction est l’opération qui transfère d’un crédit S d’un numéro A
à un numéro B :
début transaction
solde(A) = solde(A) - S
solde(B) = solde(B) + S
fin transaction
✓ Il est clair que cette opération ne doit pas être interrompue entre le débit de A et le crédit de
B
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.