introduction 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...

Post on 03-Apr-2015

106 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction aux Systèmes de Gestion de Bases de données

U U N I V E R S I T E D E G E N E VN I V E R S I T E D E G E N E V E E    TECFATECFA

Dess STAF

Miriano Romualdi

 

 

 

 

Programme:

09:00 – 10:00 Introduction sur système de gestion de BD10:00 – 10: 15 Organisation Ex: 1 et explications10:15 – 10: 40 Pause10:40 – 11:15 Ex: 111:15 – 12:00 Discussion12: 00 – 12:15 Introduction après-midi12: 15 – 12:30 Feed-back cours Dorel/Stephane

Midi

14:00 – 14:50 Les classes SQL/Mysql14:50 – 15: 30 Ex: 215:30 – 16:00 Discussion16: 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}

• Les données structurées :

• Description ou schéma de la BD– Chauffeur Mot– Ligne Mot– Véhicule Mot

Structuration des données

Boubou 2

A

56

86LuluBoubou 4

2

Chauffeur Ligne Véhicule

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

BD

PC

SGBD

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 utilisateursne 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 conceptuel Schéma interne

Niveau externe Niveau conceptuel Niveau interne

Schéma externe

Schéma externe

Domained’application

Modélisation

BD

ANSI-SPARC

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 

• Exemple : – Chauffeur (C), Véhicule (V), Permis (P)

• Modèle hiérarchique

• Modèle Réseau

C

V P

Modèles hiérarchique et réseau

C

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» …}

CHAUFFEURNoChauffeurNomPrénomAdresseChangerAdresseAjouterHeures

Modèle objet

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

INFORMATIONEcriture des résultats d’analyse,

Architecture informationnelle

INFORMATIQUEArchitecture informatique du SI

Savoir ce qu’il faut réaliser

DOMAINE

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éfinitionsModèles

Entité-associationRelationnelObjet

RelationnelObjet

Informatique

Conceptuel ouInformation

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

BooléensEntiersFlottantsChaine de caractèresDate

TexteMotOrdonné (Unité)-

Numérique (Unité)-

Booléen MotBooléens MotsDateDurée

Durée-secondeDurée-mn (/s)Durée-h (/mn/s)Durée-m(/h/mn/s)

Informatique

Conceptuel

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, NoChâssis, NoMoteur, DateCirculation)

• Dom(Catégorie) = {tramway, bus, trolleybus}

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ésentationEntité-Relation

ENTITE

IdentifiantAttribut1Attribut2...

VEHICULENoVéhiculeCatégorieMarqueNoChassisNoMoteurDateCirculation

ReprésentationObjet

CLASSEAttribut1[valuation]Attribut2…Methode1(signature)Methode2()...

VEHICULENoVéhiculeCatégorieMarqueNoChassisNoMoteurDateCirculation[1..n]Créer()Activer()Supprimer()Desactiver()Controler()Réparer()

Représentation

VEHICULE (NoChâssis / NoVéhicule / NoMoteur // Catégorie, Marque, DateCirculation)

NoChâssis / NoVéhicule / NoMoteur // Catégorie, Marque, DateCirculation

VéhiculeNoChâssis / NoVéhicule / NoMoteur //

Véhicule

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 verticalcolonnes : attributs

lignes : objetsAFF-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 objetsEn séquentiel : 40 pages d’E/S

Stockage horizontallignes : attributscolonnes : objets

correspondance entre oid et no de colonne

Trouver tous les objets qui sont « de réserve » pour StatutChauffeur avec NoAVS?

NoAVS et StatutChauffeur : 1mot1 page = 1000 valeurs10 pages pour Statut-Chauffeur10 pages pour NoAVS20 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]

sinonlgn[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

• En prise directe - en dérivation

• En temps réel - en différé

• Définitif - Modifiable • Présent - Historique

• Propriétés

ContrôleIntégrité

Confidentialité

Atteignabilité, accès

Composition-décomposition

Décalages entre le monde vivant et le monde artificiel

• Nature du lien entre mondes vivant et artificielconcré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

Question ou Action

informatique

Réponse informatiqueRéponse

Monde vivant Monde artificiel

Décalages entre le monde vivant et le monde artificiel

Question

ou Action

Question ou Action

informatique

Réponse informatiqueRéponse

Monde vivant Monde artificiel

Effort de traduction

Effort d’interprétation

Décalages entre le monde vivant et le monde artificiel

Question

ou Action

Question ou Action

informatique

Réponse informatiqueRéponse

Monde vivant Monde artificiel

ISOMORPHISME ?

Modélisation-Spécification-Implémentation-Exploitation-

Evolution

Modélisation-Spécification-Implémentation-Exploitation-

Evolution

INFORMATIONEcriture des résultats

d’analyse,

Architecture informationnelle

INFORMATIQUEArchitecture informatique du SI

Savoir ce qu’il faut réaliser

DOMAINE

modélisation spécification

Modélisation-Spécification-Conceptualisation-Implémentation-Exploitation-Evolution

INFORMATIONEcriture des résultats

d’analyse,

Architecture informationnelle

INFORMATIQUEArchitecture informatique du SI

Savoir ce qu’il faut réaliser

DOMAINE

modélisation spécification

analyse implémentation

exploitation

évolution

conceptualisation

déploiement

Modélisation-Spécification-Conceptualisation-Implémentation-Exploitation-Evolution

Avec le point de vue linéaire...

évolutionanalyse modélisation

conceptualisation

spécification

implémentation

déploiement

exploitation

é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 conceptuelAFF-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...)

top related