Title: Introduction aux Syst
1Introduction aux Systèmes de Gestion de Bases de
données
- U N I V E R S I T E D E G E N E V E
- TECFA
- Dess STAF
- Miriano Romualdi
-
-
-
-
2Programme0900 1000 Introduction sur
système de gestion de BD1000 10 15
Organisation Ex 1 et explications1015 10 40
Pause1040 1115 Ex 11115 1200
Discussion12 00 1215 Introduction
après-midi12 15 1230 Feed-back cours
Dorel/StephaneMidi1400 1450 Les classes
SQL/Mysql1450 15 30 Ex 21530 1600
Discussion16 00 1615 Ex home
3PLAN
- 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
4Introduction
- Exemple gestion dune entreprise de transport
public - Lentreprise GPT qui s occupe des transports
publics de la ville dEvèneg, désire se doter
dun 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.
5Introduction
- 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 lentreprise?
6Pourquoi des Bases de données (BD)?
- Besoins
- stocker de gros volumes dinformations
- partager des informations par une communauté de
personnes - gérer laccès à ces informations
- gérer des informations cohérentes et
non-redondantes
7Notion 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.
8Dé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.
9Les 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
10Structuration des données
- Les données structurées
- Description ou schéma de la BD
- Chauffeur Mot
- Ligne Mot
- Véhicule Mot
Chauffeur
Ligne
Véhicule
Boubou
2
56
A
Boubou
4
86
2
Lulu
11Les données
- Une donnée prend un lieu et y reste.
- Une donnée ne peut être atteinte quau travers de
son nom, autant par les développeurs que par les
utilisateurs.
NOM
VALEUR
LIEU
12PLAN
- Base de données (BD)
- Systèmes de gestion de base de données (SGBD)
- principe
- fonctionnalités
- Modèles de données
13Systèmes de Gestion de Bases de Données
14Fonctionnalités dun SGBD
- description et utilisation des informations
(définition, interrogation, mise-à-jour) - gestion et contrôle dintégrité
- mise en œuvre de la confidentialité
- gestion des accès concurrents
- assurance dune certaine sécurité de
fonctionnement
15Interrogation dune 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
16Gestion de linté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 dinté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.
17Gestion de la confidentialité
- BD partagée par plusieurs utilisateurs
- ne rendre accessibles certaines données quaux
personnes autorisées - Définition de droits daccès
- définir quelles informations doivent être
protégées de quelles personnes - exemple les usagers nont pas à connaître les
horaires des chauffeurs.
18Concurrence daccè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
19Sécurité de fonctionnement
- Assurer le redémarrage du système en cas
dincident logiciel ou matériel - remettre la BD dans un état satisfaisant
20PLAN
- Base de données (BD)
- Systèmes de gestion de bases de données (SGBD)
- Modèles de données
- définitions
- historique
21Description dune BD
Domaine dapplication
???
Schéma externe
??
Modélisation
Schéma conceptuel
Schéma interne
Schéma externe
??
Schéma externe
BD
???
Niveau externe
Niveau conceptuel
Niveau interne
ANSI-SPARC
22Modèle de données
- Définition ensemble de concepts et des
notations pour décrire une vision dun domaine
dapplication - 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 ...
23Historique
- 1960 les modèles hiérarchiques
- 1970 les modèles réseaux
- 1980 les modèles relationnelles
- 1990 les modèles objets
24Modèles hiérarchique et réseau
- Exemple
- Chauffeur (C), Véhicule (V), Permis (P)
- Modèle hiérarchique
- Modèle Réseau
C
V
P
25Modèle relationnel
- Relation représentation dune 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
26Modèle objet
CHAUFFEUR NoChauffeur Nom Prénom Adresse ChangerAd
resse AjouterHeures
27Modèle objet
- De nombreux concepts classe, opération,
association, héritage, agrégation - concepts principaux
- classe ensemble dobjets ayant la même
structure de données et le même comportement - association liens entre les objets des classes
- Opération/méthode sapplique aux objets dune
classe.
28Modè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 ...
29Introduction et Définitions
30Introduction et Définitions
Lignes
E
Ensemble
1,2,3,4,5,6,7,8, A,B,C,D,E,F
e1, e2, e3 en
élément
31Introduction et DéfinitionsModèles
Conceptuel ou Information
Entité-association Relationnel Objet
Informatique
Relationnel Objet
32Propriétés dune classe
- Les objets dune 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 quils prennent pour les
attributs. - des états
- que des méthodes ou des traitements font prendre
aux objets.
33Domaine 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
34Domaine(s) opérations
- Domaine
- Texte aucune
- Mot ?
- Ordonné ? gt lt
- Numérique ? gt lt -
- Booléen et ou non
- Booléens et ou non
- Date ? pré post
- Durée ? gt lt -
- Domaines
- ltdategt-ltdategt gt ltduréegt
- ltdategtltdategt gt
- ltdategtltduréegt gt ltdategt
- ltpoidsgt est-un ltnumériquegt
- ltmonnaiegt est-un ltnumériquegt
- ltpoidsgtltmonnaiegt gt ltmonnaiegt
- ...
35Classe - Attribut - Domaine
- CL (A1,A2,A3)
- Un objet o de CL prend une ou plusieurs valeurs
du domaine de lattribut A1 oA1 Î dom(A1). - VEHICULE (NoVéhicule, Catégorie, Marque,
NoChâssis, NoMoteur, DateCirculation) - Dom(Catégorie) tramway, bus, trolleybus
- "veh Î Véhicule vehCaté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.
36Attribut multivalué, groupe dattributs
- 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 dattributs (modèle objet)
- VEHICULE (NoVéhicule, Catégorie, Marque,
NoChâssis, (NoMoteur, DateCirculation))
37Attribut 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 nest pas obcure est claire.
- VEHICULE (NoVéhicule-, Catégorie, Marque,
NoChâssis, NoMoteur, DateCirculation-) - Les attributs NoVéhicule et DateCirculation
admettent des valeurs obscures.
38Attribut permanent
- Un attribut A dune 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
39Méthode
- Méthode dune 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)
40Etat
- Etat attribut mis-à-jour seulement par des
transactions (ou traitements) - Un état donne une trace du travail dune 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 dune 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.
41Identifiant / Clé
- Comment retrouver un objet parmi tous les objets
de sa classe? - Rép. technologique en lui donnant un
identificateur dobjet (oid) - Rép. conceptuelle un ensemble dattributs 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 oK ? oK - K est minimal il nexiste aucun sous-ensemble
de K vérifiant la propriété précédente.
42Identifiants 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)
43Identifiant/Clé
- K est un identifiant dune 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 oK ? oK - K est minimal il nexiste aucun sous-ensemble
de K vérifiant la propriété précédente. - Remarque un simple identifiant ne permet pas
didentifier tous les objets de la classe, à
cause des valeurs obcures. - Il nest obligé dêtre permanent.
- VEHICULE (NoChâssis / NoVéhicule / NoMoteur //
Catégorie, Marque, DateCirculation)
44Représentation
45ReprésentationEntité-Relation
ENTITE Identifiant Attribut1 Attribut2 ...
46ReprésentationObjet
CLASSE Attribut1valuation Attribut2 Methode1(s
ignature) Methode2() ...
47Représentation
VEHICULE (NoChâssis / NoVéhicule / NoMoteur //
Catégorie, Marque, DateCirculation)
Véhicule
NoChâssis / NoVéhicule / NoMoteur //
Véhicule
NoChâssis / NoVéhicule / NoMoteur // Catégorie,
Marque, DateCirculation
Véhicule
48Forme normale
49Forme 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 laccès aux données par leur nom.
50Forme non normale de classe
- Une classe nest pas en forme normale si elle
admet un (ou plusieurs) attribut (ou groupe
dattributs) multivalué (modèle objet). - ClPers(OidPerson, Adresse, Salaire))
- attributs multivalués avec deux situations
- - aucune différence entre les adresses dune même
personne ok. - - comment trouver le salaire du mois de février
dune personne? - Il faut toujours pouvoir atteindre une
information par son nom, sans avoir besoin de
connaître son mode dimplémentation (indépendance
donnée-stockage).
51Prise en compte informatique
52Prise en compte informatique
- Stockage des objets
- Patitionnement
- Mécanisme de clés (identifiant) et dindex
- Choix dune clé primaire
53Stockage 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
- 10000 objets 1 page 250 objets
- En séquentiel 40 pages dE/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 dE/S
54Décomposition
- CHAUFFEUR
- (NoAVS//Nom, Prénom, Adresse, DateNaissance,
Sexe, TotalH) - Un objet de Chauffeur 100 mots
- Une page 1000 mots
- gt 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 dun
chauffeur - Un objet de Chauffeur-Trv 2 mots
- Une page 1000 mots
- gt 1 E/S 500 objets
55Mécanisme de clés et dindex
- 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 dun objet sassurer quil nexiste
aucun autre objet de même clé. - Clé ou index
- Tables spéciales contenant pour chaque valeur
dindex la possibilité de retrouver tous les
objets concernés (1 seul objet si lindex est
clé).
56Opérations et langage
57Opérations et langage
- Langage de spécification
- Langage dinterrogation
- Langage de manipulation
- Confidentialité
- Evolution
58Langage 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.
59Règle dintégrité statique mono-classe
60Règle dintégrité statique monoclasse
- Une règle dintégrité se définit à laide dun
prédicat. Si la ri est monoclasse, elle ne
concerne quune classe et son prédicat a comme
variables les attributs de la classe. - Une ri est statique si elle ne concerne pas la
transformation dobjets, mais seulement les
objets eux-mêmes.
61Règle dintégrité statique monoclasse
- LIGNE (CodeLigne, Catégorie, TypeLigne,
ArrêtDépart, ArrêtArrivée) - Pour toute lgn de LIGNE
- si lgnTypeLigne circulaire alors
- lgnArrêtDépart lgnArrêtArrivée
- sinon
- lgnArrêtDépart ? lgnArrêtArrivée
- finsi
62DECALAGES ENTRE LE MONDE VIVANT ET LE MONDE
ARTIFICIEL
63Décalages
- Pour prendre en compte
- les objets des classes
- En prise directe - en dérivation
- En temps réel - en différé
- Définitif - Modifiable
- Présent - Historique
- Propriétés
- Contrôle
- Intégrité
- Confidentialité
- Atteignabilité, accès
- Composition-décomposition
64Dé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 dun système, support des
activités - Non seulement analyser,observer, mais créer,
concevoir, puis contrôler
65Décalages entre le monde vivant et le monde
artificiel
Question ou Action
Question ou Action informatique
Réponse informatique
Réponse
Monde vivant
Monde artificiel
66Décalages entre le monde vivant et le monde
artificiel
Effort de traduction
Question ou Action
Question ou Action informatique
Effort dinterprétation
Réponse informatique
Réponse
Monde vivant
Monde artificiel
67Décalages entre le monde vivant et le monde
artificiel
Question ou Action
Question ou Action informatique
ISOMORPHISME ?
Réponse informatique
Réponse
Monde vivant
Monde artificiel
68Modélisation-Spécification-Implémentation-Exploita
tion-Evolution
69Modélisation-Spécification-Implémentation-Exploita
tion-Evolution
70Modélisation-Spécification-Conceptualisation-Implé
mentation-Exploitation-Evolution
71Modélisation-Spécification-Conceptualisation-Implé
mentation-Exploitation-Evolution
Avec le point de vue linéaire...
évolution
conceptualisation
implémentation
exploitation
analyse
modélisation
spécification
déploiement
évolution
72De la relativité des étapes ex la redondance
- Dans le cadre de lanalyse et de la modélisation
- utile pour recouper les résultats, faciliter la
prise dinformations danalyse - 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 lintroduire que pour faciliter des accès
- Dans le cadre de limplémentation
- Ne pas en introduire de supplémentaire
73Ex de la redondance
- Analyse, modélisation
- AFF-CHAUFFEUR(NoAVS, TotalHeures, Catégorie,
Date, StatutChauffeur, NoSérie,
(CodeLigne//Catégorie)) - La personne responsable de laffectation dun
chauffeur à une série veut sassurer 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...)