Summary

Ce document fournit une introduction à la conception des bases de données et des systèmes d'information, en se concentrant sur les modèles conceptuels (UML, Merise), ainsi que sur la modélisation et l'analyse des besoins.

Full Transcript

# Les niveaux de conception d'une BD ## Analyse des besoins (Vues des utilisateurs) - Indépendant du modèle de données - Description graphique des données et leurs liens | Médecin | effectue | Visite | |---|---|---| ## Description de la structure de la BD - Indépendant du SGBD ### Nivea...

# Les niveaux de conception d'une BD ## Analyse des besoins (Vues des utilisateurs) - Indépendant du modèle de données - Description graphique des données et leurs liens | Médecin | effectue | Visite | |---|---|---| ## Description de la structure de la BD - Indépendant du SGBD ### Niveau **Interne** - Dépendant du modèle de données - Indépendant du SGBD ### Modèle **Logique** - Dépendant du modèle de données - Dépendant du SGBD ### Modèle **Physique** - Organisation physique des données - Structures de stockage des données - Structures accélératrices (index) # Concevoir une Base de Données-Etapes - Analyse du besoin: Construction du dictionnaire des données - Modèle conceptuel: Description graphique des données et leurs liens - Modèle logique: Description de la structure de la BD - Modèle Physique: Mise en œuvre dans un SGBD # Analyse des besoins - Avant la modélisation conceptuelle des données il faut faire une analyse des besoins - Analyse des documents représentatifs des données que l'on souhaite modéliser - Documents papier - Fichiers - Compte-rendu d'entretien oral - Liste complète des données à représenter dans la base - Liste des besoins fonctionnels connus # Exemple - On souhaite gérer des étudiants qui suivent différents enseignements d'un diplôme. - On dispose de: - la liste des étudiants avec leurs données personnelles - Les bulletins de notes des étudiants - La liste des enseignants avec pour chacun la matière enseignée - Règles de gestion: - Un étudiant a 1 note par matière - Un enseignant enseigne 1 seule matière # Dictionnaire des données - Extraire les informations élémentaires - attributs ou champs du dictionnaire des données - Pour chaque attribut on précisera: - Nom - Descriptif - Type de donnée - Contraintes d'intégrité - Règle de calcul # Objectifs de la Modélisation - Permettre une meilleure compréhension - Le monde réel est trop complexes - Abstraction des aspects cruciaux du problème - Omission des détails - Permettre une conception progressive - Abstractions et raffinements successifs - Possibilité de prototypage rapide - Découpage en modules ou packages - Génération des structures de données (et de traitements) # La modélisation conceptuelle de la BD - Isoler les concepts fondamentaux - Que vont représenter les données de la BD? - Découvrir les concepts élémentaires du monde réel - Décrire les concepts agrégés et les sous-concepts - Le schéma conceptuel exprime une vue abstraite de la base de données. - Cette vue est représentée de manière graphique - on parle de diagramme, de schéma et de modèle. - Compréhension visuelle et non seulement intellectuelle # Avantages de la modélisation conceptuelle - L'attention est portée sur les applications - Indépendante des technologies - Portabilité - Longévité - Orientée utilisateur - Compréhensibilité - Support du dialogue concepteurs / utilisateurs - Permet la collaboration et la validation par les utilisateurs - Spécifications formelles, non ambigües # Méthodes - Méthodes d'analyse et de décomposition hiérarchiques - le génération basée sur des arbres fonctionnels - Diviser pour régner (Problème --> Sous-problème) - Warnier, SADT, Jackson, De Marco - Méthodes d'analyse et de représentation systémiques - 2e génération basée sur entité-association - Séparation des données et traitements - Merise, Axial, SSADM - Méthodes d'analyse et de conception orientées objets - 3e génération basée sur les objets - Réconciliation données et traitements - Réutilisation de composants - UML, OMT # Merise - La méthode Merise est une évolution ou plus précisément une standardisation du modèle entité-association. - Merise est une méthode d'analyse, de conception et de réalisation de systèmes d'informations. - Cette méthode préconise plusieurs étapes pour passer d'un système d'informations manuel à un système d'informations automatisé. - Dans la méthode Merise, le modèle conceptuel correspond au modèle entité-association; celui-ci s'appelle le Modèle Conceptuel de Données: MCD. - La méthode Merise propose d'autres modèles tels que: - Les Modèles de Traitement (**MOT**, MCT) qui permettent de modéliser les événements, les opérations et les processus. - Les Modèles de Communication (**MCC**) qui permettent de modéliser les interactions. - Ces aspects de la méthode ne seront pas développés ici car ils sont plus orientés application que base de données. # UML - **UML** (Unified Modeling Language ou langage de modélisation unifié) est un langage de modélisation graphique et textuel, standardisé par l'**OMG** (Object Management Group). - UML permet de construire plusieurs modèles d'un système: - Certains montrent le système du point de vue des utilisateurs. - D'autres montrent sa structure interne. - D'autres encore en donnent une vision globale ou détaillée. - Les modèles se complètent et peuvent être assemblés. - Ils sont élaborés tout au long du cycle de vie du développement d'un système (depuis le recueil des besoins jusqu'à la phase de conception) # Axes de modélisation des diagrammes - **UML** modélise le système selon trois modes de représentations: - **Fonctionnel**: décrit les services fonctionnels rendus par le système; - **Statique**: décrit la structure statique du système; - **Dynamique**: concerne le dynamique fonctionnel du système. - Les trois représentations sont nécessaires et complémentaires pour schématiser la façons dont le système est composé et le fonctionnement de ses composants. # Terminologie - Modèle conceptuel de données (**Merise**) - **Entité-association** - **Entité** - **Association (Relation)** - **Occurrence** - **Cardinalité** - **UML** - **Classe** - **Association (Relation)** - **Objet** - **Multiplicité** - **Diagramme de classes** # Entité / Classe - Un objet du monde réel qui peut être identifié et que l'on souhaite représenter - **La classe d'entité** correspond à une collection d'entités décrites par leur type commun (le format) - **L'instance d'entité** correspond à un élément particulier de la classe d'entité (un objet) - **Attention**: souvent on dit entité pour les deux! Comprendre selon le contexte. - Il existe généralement plusieurs instances d'entités dans une classe d'entité. # Instance d'entité - Représentation d'un objet du monde réel ayant une existence propre # Classe d'entités: - Représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques. # Attributs - Description des propriétés des entités **Exemple**: - No=2, Nom=«Ahmed Chaouki», DateNaiss=16/03/1987,Sexe=<<M>> # Identifiant ou Clé - Un identifiant, aussi appelé clé, est un attribut qui permet de retrouver une instance d'entité unique à tout instant parmi celles de la classe. **Exemple**: - Matricule dans Voitures, CIN dans Personnes - Un identifiant peut être constitué de plusieurs attributs (clé composée) - [No, Rue, Ville] pour Maisons - [Nom, Prénom] pour Personnes # Clés candidates et clés primaires - **Une clé candidate** est un ensemble d'attributs permettant d'identifier de manière unique une instance d'une entité - Parmi les clés candidates, on en choisit une, qu'on nomme **clé primaire** qui va identifier l'entité. # Association - Les entités sont reliées ensemble par des associations - Entre instances: par exemple 1 véhicule est associé à 1 personne - Entre classes: abstraction des associations entre instances - Une association peut avoir des attributs (propriétés) - Elle peut relier plusieurs entités ensemble - Il est possible de distinguer le rôle d'une entité (elle peut en avoir plusieurs) | Cardinalité | nom | Cardinalité | rôle | |---|---|---|---| # Exemple d'association - **Merise** - Une personne peut exercer une profession | Personne | Profession | |---|---| | 0,1 | 0,N | | Exerce | | - **UML** | Personne | Profession | |---|---| | * | 0..1 | | Exerce | | - Une profession peut être exercée par plusieurs personnes - Les cardinalités d'une association binaire dans le modèle de Merise sont inversées par rapport au modèle UML au niveau de l'axe de représentation de l'association. # Cardinalités, Multiplicités - Elle apparaît à chaque extrémité d'une association et indique Le nombre d'instance d'une entité pour chaque instance de l'autre. ###### Merise - **Cardinalités** Lecture: - **0,1** : Lien vers 0 ou 1 - **1,1**: Lien vers 1 - **0,n**: Lien vers 0 ou N - **1,n**: Lien vers 1 ou N ###### UML - **Multiplicités** Lecture: - **0..1**: Lien vers 0 ou 1 - **1**: Lien vers 1 - **\***: Lien vers 0 ou plusieurs - **1..**: Lien vers 1 ou plusieurs # Association avec attributs - Une association peut être raffinée et avoir ses propres attributs, qui ne sont disponibles dans aucune des entités/classes qu'elle lie. ###### Merise - **Entité 1** - Lie - Attribut_1 - **Entité 2** - **Classe-association** ###### UML - **Classe 1** - **Classe 2** - Lie - **Classe Asso** - Attribut_1 # Association avec attributs (Exemple UML) - L'association **Emploie** possède comme propriétés le salaire et la date d'embauche. - Ces deux propriétés n'appartiennent ni à l'entreprise, qui peut employer plusieurs personnes, ni aux personnes, qui peuvent avoir plusieurs emplois. | Entreprise | Emploi | Personne | |---|---|---| | nom* | date Embauche; salaire | nom; naissance| | | 1..* | | # Rôle d'une association - Décrit le rôle d'une classe dans une association - Utile surtout dans deux cas: # `L'association réflexive` - **Merise** - Se lit: << Un poste client est relié à un seul serveur >>> - Se lit: « Un poste serveur relie zéro ou plusieurs postes >>> - `Serveur` - nserie - adr_IP - typeposte - `Poste_travail` - nserie - adr_IP - typeposte - **UML** - `Poste_travail` - nserie - adr_IP - typeposte - `est_client_de` (0..*) - `est_serveur_de` (0..1) # `Exercice 2` - **Inscription des étudiants** - Lors de son inscription en début d'année scolaire, chaque étudiant remplit une fiche sur laquelle il indique certains renseignements comme son code d'identification nationale (**cin**), ses nom et prénom(**nom**, **prenom**), son adresse (**adresse**) et la liste des modules (**MD**) qu'il s'engage à suivre (8 au plus sur les 15 possibles). Un code lui est automatiquement attribué (**codetu**). - Un MD est caractérisé par un code (**codemd**) et un intitulé (**intmd**). Par exemple le code **CIP41** identifie Math V. Chaque MD est placée sous la responsabilité d'un enseignant identifié par ses initiales (**initens**) et caractérisé par un nom (**nomens**), un numéro de bureau (**bureauens**) et un numéro de téléphone(**telens**). Cet enseignant se rend disponible un jour de la semaine(**isem**) et durant une plage horaire précise(**hrens**) afin de donner tout renseignement concernant les MD qu'il dirige. # `Exercice 2 - suite` - Composer le schéma conceptuel de type Merise afin de modéliser les faits ci-dessus. - Que faut-il modifier pour qu'un enseignant se rende disponible à différents moments (un seul créneau par MD qu'il dirige)? - Que faut-il modifier pour que différents créneaux soient disponibles par MD qu'il dirige? # Conception du modèle pour - Il n'existe pas de modèle de données idéal. - Le modèle doit correspondre à un besoin précis. - Il est indispensable que chaque décision, chaque façon de faire soit réfléchie. - En cas de multiples possibilités, il faut s'assurer que le fonctionnement mis en place répondra au besoin. - Il peut être tentant de créer un modèle le plus généraliste possible. - **Attention**: - Ce type de modèles mèneront à des bases de données trop complexes. - Les performances seront alors moindre et les fonctionnalités mise en place pas forcément utilisées. # Interprétation (1/3) - Une base données doit permettre de stocker toutes les informations nécessaires à son utilisation. - Toute la complexité réside dans l'organisation de ces attributs. - Toute redondance est interdite. # Interprétation (2/3) - Un choix difficile est notamment le fait d'utiliser un attribut dans l'entité ou de créer une association. - **Exemple:** - **Personne** - ID - Nom - Prenom - Adresse - CP - Ville - **Personne** - ID - Nom - Prenom - 0,1 Réside - ON Adresse - ID - Rue - CP - Ville # Interprétation (3/3) - Le choix des cardinalités est également primordial. - **Exemple:** - **Personne** - ID - Nom - Prenom - 0.1 Réside - ON Adresse - ID - Voie - CP - Ville - **Personne** - ID - Nom - Prenom - 1,N Réside - date debut - date fin - ON Adresse - ID - Voie - CP - Ville # Exemple - **Modélisation du S.l. lié à un livre de recettes** - **Recettes** - **Une recette** = - **sel** - **beurre** - **eau** - **flour** - **ingrédient** - Un ingrédient peut en remplacer un autre - **Etudiant** - **cin** - **nom** - **adresse** - **codetu** - **Prenom** - **Module** - 4,N INSCRiT - **SQL** - **AG** - **R** # Etudiant - **cin** - **nom** - **adresse** - **codetu** - **Prenom** Etudiant - cin - nom - adresse - codetu - Prenom # MODULE(M) - **codemd** - **intmd** - **1,4 RESPO BLAN ** # Enseignant - **initens** - **nomenS** - **bureauens** - **telens** - **Jsem** - **hrens** # CRENGAY - **Ste-cre** - **JSEM** - **hromy** # DISPONIBIKE

Use Quizgecko on...
Browser
Browser