Notion de Base de Données

publicité
Introduction aux Systèmes de
Gestion de Bases de données
U NIVERSITE
DE GENEV
TECFA
Dess STAF
Miriano Romualdi
E
Programme:
09:00 – 10:00 Introduction sur système de gestion de BD
10:00 – 10: 15 Organisation Ex: 1 et explications
10:15 – 10: 40 Pause
10:40 – 11:15 Ex: 1
11:15 – 12:00 Discussion
12: 00 – 12:15 Introduction après-midi
12: 15 – 12:30 Feed-back cours Dorel/Stephane
Midi
14:00 – 14:50 Les classes SQL/Mysql
14:50 – 15: 30 Ex: 2
15:30 – 16:00 Discussion
16: 00 – 16:15 Ex: home
PLAN
• Base de données (BD)
– introduction
– définition
– les données et leur structuration
• Systèmes de gestion de base de données
(SGBD)
• Modèles de données
Introduction
• Exemple : gestion d’une entreprise de transport
public
– L’entreprise « GPT » qui s ’occupe des transports publics de
la ville d’Evèneg, désire se doter d’un système informatique
pour la gestion de son réseau. Celui-ci comprend des lignes,
des véhicules ainsi que des chauffeurs.
– Le chauffeur « Boubou » est en congé le lundi 30 octobre.
Le 31 octobre, il assure la ligne 2 avec le véhicule 56….
Introduction
• Questions :
– Un véhicule doit-il toujours assurer la même ligne?
– Qui a assuré la ligne C le 3 octobre entre 16h et
18h?
Comment enregistrer et utiliser les
informations concernant l’entreprise?
Pourquoi des Bases de
données (BD)?
• Besoins :
– stocker de gros volumes d’informations
– partager des informations par une
communauté de personnes
– gérer l’accès à ces informations
– gérer des informations cohérentes et
non-redondantes
Notion de Base de Données
• Une BD doit traduire la connaissance :
– de faits élémentaires :
• Le chauffeur « Boubou » est affecté à la ligne 2
le 24 juin 1991.
– de propriétés :
• un chauffeur a un seul permis de conduire,
mais est compétent pour plusieurs types de
véhicule.
– d’événements :
• le véhicule 124 est supprimé de la circulation.
Définition
• Définition (Adiba, Delobel 1982):
– ensemble structuré de données
enregistrées sur des supports
informatiques pour satisfaire
simultanément plusieurs utilisateurs de
façon sélective et en temps opportun.
Les données
• Exemple :
– le chauffeur Boubou assure la ligne 2 avec le véhicule
56.
le chauffeur Boubou assure la ligne A avec le véhicule 4.
le chauffeur Lulu assure la ligne 2 avec le véhicule 86.
• Les données :
– Chauffeur = {Boubou, Lulu}
Véhicule = {25,4,56,86}
Ligne = {A,2}
Structuration des données
• Les données structurées :
Chauffeur Ligne Véhicule
Boubou
2
56
Boubou
Lulu
A
2
4
86
• Description ou schéma de la BD
– Chauffeur Mot
– Ligne Mot
– Véhicule Mot
Les données
• Une donnée prend
un lieu et y reste.
• Une donnée ne peut
être atteinte qu’au
travers de son nom,
autant par les
développeurs que
par les utilisateurs.
NOM
LIEU
VALEUR
PLAN
• Base de données (BD)
• Systèmes de gestion de base de données
(SGBD)
– principe
– fonctionnalités
• Modèles de données
Systèmes de Gestion de
Bases de Données
Programme
Terminal
SGBD
BD
PC
Fonctionnalités d’un SGBD
• description et utilisation des
informations (définition, interrogation,
mise-à-jour)
• gestion et contrôle d’intégrité
• mise en œuvre de la confidentialité
• gestion des accès concurrents
• assurance d’une certaine sécurité de
fonctionnement
Interrogation d’une BD
• Interroger les données de la BD
– programmer la recherche
– langage plus ou moins complexe
– interrogation visuelle, tactile, vocale ..
• Exploiter les liens entre données
• Dériver de nouvelles informations
Gestion de l’intégrité
• Les modifications de la base (insertion,
suppression, modification) doivent respecter
les coutumes du monde réel.
–structuration de la BD
–définition de règles d’intégrité
RI = propriété devant toujours être vérifiée par les
données
exemple : un chauffeur ne doit pas conduire plus de
40h par semaine.
Gestion de la confidentialité
• BD partagée par plusieurs utilisateurs
ne rendre accessibles certaines données
qu’aux personnes autorisées
–Définition de droits d’accès =
définir quelles informations doivent être
protégées de quelles personnes
–exemple : les usagers n’ont pas à connaître
les horaires des chauffeurs.
Concurrence d’accès
• Accès simultané aux données par
plusieurs utilisateurs
– détecter les éventuels conflits
– les traiter
exemple : vouloir affecter des chauffeurs à
plusieurs lignes simultanément
traiter les demandes séquentiellement
Sécurité de fonctionnement
• Assurer le redémarrage du système en
cas d’incident logiciel ou matériel
– remettre la BD dans un état satisfaisant
PLAN
• Base de données (BD)
• Systèmes de gestion de bases de données
(SGBD)
• Modèles de données
– définitions
– historique
Description d’une BD

Schéma externe

Schéma externe
Domaine
d’application
Modélisation
Schéma conceptuel
Schéma interne

Schéma externe
BD

Niveau externe
ANSI-SPARC
Niveau conceptuel
Niveau interne
Modèle de données
• Définition : ensemble de concepts et des
notations pour décrire une vision d’un
domaine d’application
• Très nombreux modèles :
– modèles conceptuels :
• Entité-Association, relationnel, Merise, objet, UML, Z
...
– modèles « systèmes » (offerts par les SGBD) :
• hiérarchique, relationnel, objet ...
Historique
•
•
•
•
1960 : les modèles hiérarchiques
1970 : les modèles réseaux
1980 : les modèles relationnelles
1990 : les modèles objets
Modèles hiérarchique et
réseau
• Exemple :
– Chauffeur (C), Véhicule (V), Permis (P)
• Modèle hiérarchique
C
V
P
C
• Modèle Réseau
V
P
Modèle relationnel
• Relation = représentation d’une association
particulière entre certains constituants
• exemple :
Chauffeur(NoCh//Nom,Prénom,Adresse,…)
{le chauffeur ayant pour numéro NoCh, pour
nom «Nom», pour prénom «Prénom» et pour
adresse «Adresse» …}
Modèle objet
CHAUFFEUR
NoChauffeur
Nom
Prénom
Adresse
ChangerAdresse
AjouterHeures
Modèle objet
• De nombreux concepts : classe,
opération, association, héritage, agrégation…
• concepts principaux :
– classe = ensemble d’objets ayant la même
structure de données et le même comportement
– association = liens entre les objets des classes
– Opération/méthode = s’applique aux objets d’une
classe.
Modèle de données
• Concepts généraux :
– des entités/classes appelées aussi
relations :
• des chauffeurs, des véhicules, des lignes
– des relations/associations entre des
entités/classes
• un chauffeur assure une ligne, conduit un
véhicule ...
Introduction et Définitions
INFORMATION
Ecriture des résultats d’analyse,
Architecture informationnelle
DOMAINE
INFORMATIQUE
Architecture informatique du SI
Savoir ce qu’il faut réaliser
Introduction et Définitions
Ensemble
élément
E
{e1, e2, e3… en}
Lignes
{1,2,3,4,5,6,7,8,…
A,B,C,D,E,F…}
Introduction et Définitions
Modèles
Conceptuel ou
Information
Entité-association
Relationnel
Objet
Informatique
Relationnel
Objet
Propriétés d’une classe
Les objets d’une classe partagent en commun
un schéma informationnel comprenant:
– des attributs associés à des domaines de valeurs
• pour lesquels les objets vont prendre une ou plusieurs
valeurs de leur domaine.
– des méthodes
• qui, appliquées aux objets de la classe, transforment les
valeurs qu’ils prennent pour les attributs.
– des états
• que des méthodes ou des traitements font prendre aux
objets.
Domaine : type
Conceptuel
Texte
Mot
Ordonné (Unité)Numérique (Unité)Booléen Mot
Booléens Mots
Date
Durée
Durée-seconde
Durée-mn (/s)
Durée-h (/mn/s)
Durée-m(/h/mn/s)
Informatique
Booléens
Entiers
Flottants
Chaine de caractères
Date
Domaine(s) : opérations
Domaine
•
•
•
•
•
•
•
•
Texte : aucune
Mot : = ≠
Ordonné : = ≠ >≥ ≤ <
Numérique : = ≠ > ≥ ≤ < + Booléen : et ou non
Booléens : et ou non
Date : = ≠ pré post
Durée : = ≠ > ≥ ≤ < + -
Domaines
•
•
•
•
•
•
•
<date>-<date> => <durée>
<date>+<date> => ¿
<date>±<durée> => <date>
<poids> est-un <numérique>
<monnaie> est-un <numérique>
<poids>*<monnaie> =>
<monnaie>
...
Classe - Attribut - Domaine
• CL (A1,A2,A3…)
• Un objet o de CL prend une ou plusieurs valeurs du domaine
de l’attribut A1 : o[A1] dom(A1).
• VEHICULE (NoVéhicule, Catégorie, Marque,
NoMoteur, DateCirculation)
• Dom(Catégorie) = {tramway, bus, trolleybus}
NoChâssis,
"veh  Véhicule veh[Catégorie] = tramway  bus trolleybus
• Attribut monovalué : un objet prend au plus une valeur pour lui.
• Attribut multivalué : un objet peut prendre plusieurs valeurs pour
lui.
Attribut multivalué, groupe d’attributs
• Attribut multivalué (modèle objet)
VEHICULE (NoVéhicule, Catégorie, Marque, NoChâssis,
NoMoteur, DateCirculation*)
– Un objet de Véhicule peut alors prendre plusieurs valeurs pour
DateCirculation
• Groupe d’attributs (modèle objet)
VEHICULE (NoVéhicule, Catégorie, Marque, NoChâssis,
(NoMoteur, DateCirculation)*)
Attribut : valeurs obscures
• Pour chaque attribut A de CL, il faut indiquer si un objet de CL
peut prendre une valeur obscure pour A.
• Valeur obscure : valeur inconnue, valeur impossible…
• Une valeur qui n’est pas obcure est claire.
• VEHICULE (NoVéhicule-, Catégorie, Marque, NoChâssis,
NoMoteur, DateCirculation-)
• Les attributs NoVéhicule et DateCirculation admettent des
valeurs obscures.
Attribut permanent
• Un attribut A d’une classe est permanent, si la valeur claire prise
pour A par tout objet de la classe ne peut être modifiée.
• VEHICULE (NoVéhicule-=, Catégorie=, Marque=, NoChâssis=,
NoMoteur, DateCirculation-)
– Un objet de Véhicule conserve les valeurs prises pour NoVéhicule,
Catégorie, Marque et NoChassis, alors que son NoMoteur, sa
DateCirculation peuvent être modifiés
Méthode
• Méthode d’une classe CL : une action
qui concerne un objet de cette classe.
• VEHICULE (NoVéhicule-=, Catégorie=, Marque=, NoChâssis=,
NoMoteur, DateCirculation-)
– méthode créer (véhicule : Véhicule)
– méthode activer (véhicule : Véhicule)
– méthode supprimer (véhicule : Véhicule)
– méthode désactiver (véhicule : Véhicule)
– méthode contrôler (véhicule : Véhicule)
– méthode réparer (véhicule : Véhicule)
Etat
• Etat : attribut mis-à-jour seulement par des transactions (ou
traitements)
• Un état donne une trace du travail d’une méthode sur un objet
VEHICULE (NoVéhicule-=, Catégorie=, Marque=, NoChâssis=,
NoMoteur, DateCirculation-)
Si DateCirculation est un état contrôlé par activer et désactiver :
- activer (véhicule) fait passer sa datecirculation d’une valeur
obscure à une valeur claire, la date du jour.
- désactiver (véhicule) la fait passer de claire à obscure.
Alors DateCirculation est un attribut-état de la classe VEHICULE.
Identifiant / Clé
• Comment retrouver un objet parmi tous les
objets de sa classe?
– Rép. technologique: en lui donnant un identificateur d’objet
(oid)
– Rép. conceptuelle : un ensemble d’attributs K de CL forme
un identifiant (clé) obligatoire de CL si
• Tous les attributs de K sont monovalués, sans valeur
obscure, permanents;
• Deux objets o et o’ de CL ne peuvent prendre les mêmes
valeurs pour K : o[K] ≠ o’[K]
• K est minimal : il n’existe aucun sous-ensemble de K
vérifiant la propriété précédente.
Identifiants primaires
– Au niveau conceptuel, il peut exister plusieurs identifiants
primaires.
– Au niveau technologique, il y en a un qui est privilégié.
VEHICULE (NoChâssis / NoVéhicule // Catégorie, Marque,
NoMoteur, DateCirculation)
Identifiant/Clé
• K est un identifiant d’une classe CL si
• Tous les attributs de K sont monovalués;
• Deux objets o et o’ de CL ne peuvent prendre les mêmes
valeurs pour K : o[K] ≠ o’[K]
• K est minimal : il n’existe aucun sous-ensemble de K
vérifiant la propriété précédente.
• Remarque : un simple identifiant ne permet pas d’identifier tous
les objets de la classe, à cause des valeurs obcures.
Il n’est obligé d’être permanent.
VEHICULE (NoChâssis / NoVéhicule / NoMoteur // Catégorie,
Marque, DateCirculation)
Représentation
Représentation
Entité-Relation
ENTITE
Identifiant
Attribut1
Attribut2
...
VEHICULE
NoVéhicule
Catégorie
Marque
NoChassis
NoMoteur
DateCirculation
Représentation
Objet
CLASSE
Attribut1[valuation]
Attribut2
…
Methode1(signature)
Methode2()
...
VEHICULE
NoVéhicule
Catégorie
Marque
NoChassis
NoMoteur
DateCirculation[1..n]
Créer()
Activer()
Supprimer()
Desactiver()
Controler()
Réparer()
Représentation
VEHICULE (NoChâssis / NoVéhicule / NoMoteur //
Catégorie, Marque, DateCirculation)
Véhicule
Véhicule
NoChâssis / NoVéhicule / NoMoteur //
NoChâssis / NoVéhicule / NoMoteur //
Catégorie, Marque, DateCirculation
Véhicule
Forme normale
Forme normale de classe
– Une classe est en forme normale si tous
ses attributs sont monovalués. Ses objets
prennent une seule valeur par attribut
(modèle relationnel).
– Objectif
éviter les tableaux
permettre l’accès aux données par leur nom.
Forme non normale de classe
• Une classe n’est pas en forme normale si elle admet un (ou
plusieurs) attribut (ou groupe d’attributs) multivalué (modèle
objet).
• ClPers(OidPerson, Adresse*, Salaire*))
attributs multivalués avec deux situations :
- aucune différence entre les adresses d’une même personne:
ok.
- comment trouver le salaire du mois de février d’une
personne?
Il faut toujours pouvoir atteindre une information par son nom, sans
avoir besoin de connaître son mode d’implémentation
(indépendance donnée-stockage).
Prise en compte informatique
Prise en compte informatique
• Stockage des objets
• Patitionnement
• Mécanisme de clés (identifiant) et
d’index
• Choix d’une clé primaire
Stockage des objets
Stockage vertical
colonnes : attributs
lignes : objets
AFF-CHAUFFEUR (NoAVS, Date,
StatutChauffeur, NoSérie)
Trouver tous les objets qui sont
«
de
réserve
»
pour
StatutChauffeur
avec
leur
NoAVS?
1 objet = 4 mots; 1 page= 1000
mots;
10’000 objets; 1 page = 250 objets
En séquentiel : 40 pages d’E/S
Stockage horizontal
lignes : attributs
colonnes : objets
correspondance entre oid et no
de colonne
Trouver tous les objets qui sont
« de réserve » pour
StatutChauffeur avec NoAVS?
NoAVS et StatutChauffeur : 1mot
1 page = 1000 valeurs
10 pages pour Statut-Chauffeur
10 pages pour NoAVS
20 pages d’E/S
Décomposition
CHAUFFEUR
(NoAVS//Nom,
Prénom,
Adresse,
DateNaissance,
Sexe, TotalH)
Un objet de Chauffeur : 100
mots
Une page = 1000 mots
=> 1 E/S : 10 objets
CHAUFFEUR-ADM
(NoAVS//Nom, Prénom, Adresse,
DateNaissance, Sexe)
CHAUFFEUR-TRV
(NoAVS // TotalH)
E/S plus efficaces pour les
traitements ne concernant que
les heures de travail d’un
chauffeur
Un objet de Chauffeur-Trv: 2 mots
Une page = 1000 mots
=> 1 E/S : 500 objets
Mécanisme de clés et d’index
• Clé primaire :
– recherche avec oid : correspondance entre une clé primaire
et un oid, puis entre un oid et un lieu physique
– recherche sans oid : correspondance entre une clé primaire
et un lieu physique par le mécanisme de hash code ou des
arbres balancés…
– rajout d’un objet : s’assurer qu’il n’existe aucun autre objet
de même clé.
• Clé ou index :
– Tables spéciales contenant pour chaque valeur d’index la
possibilité de retrouver tous les objets concernés (1 seul
objet si l’index est clé).
Opérations et langage
Opérations et langage
•
•
•
•
•
Langage de spécification
Langage d’interrogation
Langage de manipulation
Confidentialité
Evolution
Langage de spécification
• Classe
CHAUFFEUR (Nom, Prénom, NoAVS, Adresse,
DateNaissance, Sexe, TotalHeures)
• Prédicat
Pour chaque chauffeur, identifié soit par son numéro
AVS soit par son nom et prénom, on conserve son
adresse, sa date de naissance ainsi que son sexe.
L'entreprise “GPT” désire également conserver le
nombre total d'heures de conduite de chaque
chauffeur.
Règle d’intégrité
statique mono-classe
Règle d’intégrité statique monoclasse
• Une règle d’intégrité se définit à l’aide d’un prédicat.
Si la ri est monoclasse, elle ne concerne qu’une
classe et son prédicat a comme variables les attributs
de la classe.
• Une ri est statique si elle ne concerne pas la
transformation d’objets, mais seulement les objets
eux-mêmes.
Règle d’intégrité statique monoclasse
• LIGNE (CodeLigne, Catégorie, TypeLigne, ArrêtDépart,
ArrêtArrivée)
Pour toute lgn de LIGNE
si lgn[TypeLigne] = « circulaire » alors
lgn[ArrêtDépart] = lgn[ArrêtArrivée]
sinon
lgn[ArrêtDépart] ≠ lgn[ArrêtArrivée]
finsi
DECALAGES ENTRE LE MONDE
VIVANT ET LE MONDE ARTIFICIEL
Décalages
Pour prendre en
compte
les objets des classes
• Propriétés
Contrôle
• En prise directe - en
dérivation
• En temps réel - en
différé
• Définitif - Modifiable
• Présent - Historique
Atteignabilité, accès
Compositiondécomposition
Intégrité
Confidentialité
Décalages entre le monde vivant
et le monde artificiel
• Nature du lien entre mondes vivant et artificiel
concrétiser : rendre concret ce qui était abstrait.
concret : qui exprime quelque chose de réel sans que l'on en isole une notion de
qualité, de relation; qui désigne ou qualifie un être réel (sujet); qui peut être
perçu par les sens ou imaginé.(Petit Robert).
modélisation : représentation non ambigüe et fidèle des composants d'un
phénomène naturel, nécessaires à la compréhension de la partie étudiée du
phénomène.
modèle : ensemble de concepts mathématiques qui permet de recueillir une
modèlisation de n'importe quel phénomène d'une même classe.
• En fait création d’un système, support des activités
– Non seulement analyser,observer, mais créer, concevoir, puis
contrôler
Décalages entre le monde vivant
et le monde artificiel
Question ou
Action
Réponse
Monde vivant
Question ou Action
informatique
Réponse
informatique
Monde artificiel
Décalages entre le monde vivant
et le monde artificiel
Effort de traduction
Question
ou Action
Question ou Action
informatique
Effort d’interprétation
Réponse
Monde vivant
Réponse
informatique
Monde artificiel
Décalages entre le monde vivant
et le monde artificiel
Question
ou Action
Question ou Action
informatique
ISOMORPHISME ?
Réponse
Monde vivant
Réponse
informatique
Monde artificiel
Modélisation-SpécificationImplémentation-ExploitationEvolution
Modélisation-SpécificationImplémentation-ExploitationEvolution
modélisation
DOMAINE
INFORMATION
Ecriture des résultats
d’analyse,
Architecture informationnelle
spécification
INFORMATIQUE
Architecture informatique du SI
Savoir ce qu’il faut réaliser
Modélisation-Spécification-ConceptualisationImplémentation-Exploitation-Evolution
conceptualisation
modélisation
analyse
DOMAINE
INFORMATION
Ecriture des résultats
d’analyse,
Architecture informationnelle
évolution
déploiement
exploitation
spécification
implémentation
INFORMATIQUE
Architecture informatique du SI
Savoir ce qu’il faut réaliser
Modélisation-Spécification-ConceptualisationImplémentation-Exploitation-Evolution
Avec le point de vue linéaire...
évolution
conceptualisation
analyse
modélisation
implémentation exploitation
spécification
déploiement
évolution
De la relativité des étapes :
ex la redondance
– Dans le cadre de l’analyse et de la modélisation :
• utile pour recouper les résultats, faciliter la prise d’informations
d’analyse
• ou impossible à éviter car seule la consolidation de résultats va
permettre de la dégager : ex de classes avec plusieurs
identifiants.
– Dans le cadre du niveau conceptuel
• l’éliminer et ne la réintroduire qu’à cause de valeurs obscures
– Dans le cadre de la spécification :
• Ne l’introduire que pour faciliter des accès
– Dans le cadre de l’implémentation :
• Ne pas en introduire de supplémentaire
Ex de la redondance
• Analyse, modélisation
AFF-CHAUFFEUR(NoAVS,
TotalHeures, Catégorie*, Date,
StatutChauffeur,
NoSérie,
(CodeLigne//Catégorie)*)
La personne responsable de l’affectation
d’un chauffeur à une série veut
s’assurer que le chauffeur a bien le bon
permis pour conduire les véhicules de
la ligne.
•
Modèle conceptuel
AFF-CHAUFFEUR (NoAVS, Date //
StatutChauffeur, NoSérie)
PERMIS (NOAVS, Catégorie//DatePermis)
CHAUFFEUR (NoAVS // TotalHeures...)
TRANCHE-SERIE
(NoSérie, CodeLigne // …)
LIGNE (CodeLigne // Catégorie…)
•
Modèle de spécification avec
redondance
TRANCHE-SERIE (NoSérie, CodeLigne //
Catégorie...)
Téléchargement