Mis à jour le 12/11/2024
Merise
Base de données
Toute entreprise a besoin de sauvegarder ses données.
Il existe plusieurs structures de sauvegardes :
Structure permettant d'agencer et de sauvegarder des données relatives à un ou plusieurs projets
Cette structure peut être relationnelle ou non (SGBD =/= SGBDR)
Les données doivent être protégées mais accessibles en continue
Nous allons utiliser SQL Server (T-SQL) & MySQL (plus tard)
BDD
Les données sont liées les unes aux autres entre les tables.
Ceci permettant d'avoir des données atomiques dans les tables tout en pouvant lier ses données grâce à des jointures.
Auteur |
---|
id |
... |
Article |
---|
id |
auteur_id |
date_parution_id |
Date |
---|
id |
jour_nom |
Pour modéliser correctement sa base de données il est fortement conseillé d'utiliser une méthode de modélisation.
! MERISE !
Il existe plusieurs types de données afin de les stocker. Ce qu'il faut comprendre c'est que le type de données défini un espace mémoire pour le stockage de cette donnée.
Quelques conseils :
Types
Aucun développement requis !
Merise est une méthodologie de modélisation de base de données relationnelles. Créé début 70’s par Hubert Tardieu, préconisé par CTI et CETE en 1978.
Elle se met en place à travers plusieurs diagrammes :
MCC
Modèle Conceptuel des Communications
MCD
Modèle Conceptuel des Données
MCT
Modèle Conceptuel des Traitements
MOT
Modèle Organisationnel des Traitements
MLD
Modèle Logique des Données
MPD
Modèle Physique des Données
Le dictionnaire de données permet de définir quelles données sont à prendre en compte dans notre base de données, c'est concrètement de l'analyse de texte à réaliser.
Quoi définir ?
Définissez l’intégralité du dictionnaire de données de l’exemple de règles métier pour une bibliothèque (règles métier présentées précédemment)
Ce sont les liens qui permettent grâce à une donnée de pouvoir en déduire une autre par relation.
Grosso-modo, on lie les champs associés à la donnée unique et on ajoute les « clés étrangères » qui permettent leur lien (Ce que l’on appellera par la suite les cardinalités dans cette formation),
En reprenant les données du dictionnaire précédent, on peut établir les dépendances fonctionnelles suivantes :
id_em → date_em, delai_em, id_i, ref_e
id_i → nom_i, prenom_i, rue_i, ville_i, cp_i, tel_i, tel_port_i, email_i, date_naissance_i
ref_e → id_l
id_l → titre_l, annee_l, resume_l, id_t, id_ed
id_t → libelle_t
id_ed → nom_ed
id_a → nom_a, prenom_a, date_naissance_a, id_p
id_p → nom_p
Ce diagramme est le diagramme le plus important de la série, il a pour objectif de définir entités, leurs association et les cardinalités.
Les entités
Les associations
Les cardinalités
L'un des principaux objectif de se diagramme est de prendre le temps de splitter au maximum ses données dans des entités liées.
Les cardinalités
Les types de cardinalités les plus utilisées :
Des outils permettent de modéliser une base de données, ils sont très utiles car la plupart d'entre eux permettent de générer les MLD, MPD et scripts de création de BDD correspondant à votre MCD.
Les outils :
Je conseil Analyse SI (jar file à DL)
Download link : https://launchpad.net/analysesi/+download
Exercice (Réaliser un MCD)
Installez et utilisez votre logiciel de modélisation pour faire le MCD du cas en cours d’analyse (bibliothèque)
FAITES BIEN ATTENTION AUX CARDINALITES
Exercice (Réaliser un MCD)
Pour respecter les formes normales, on aurait dû !
Exemple
Voici deux exemples (issue des entités «Edition» et « Exemplaire » de notre précédant MCD) :
Règles de conversion
Cardinalités 0/1, N – 0/1, N
On parle de relation associatives Création d’une entité / table pour l’association.
Finalité
Dans le cas d'associations porteuses de données, les données portées deviennent des attributs de la relation correspondante.
Règles de conversion
Conversion des associations ayant au moins une cardinalité de type 1,1
Exemple, l'association «est né en» et des entités «Auteur» et «Pays» :
Finalité
Dans ce cas :
Règles de conversion
Conversion des associations ayant au moins une cardinalité de type 0,1 (et dont les autres cardinalités sont de type 0,1/N)
Finalité
Rien de particulier par rapport à avant, MAIS... Il faut savoir que Si 0 est plus régulier que 1, on utilise cette méthode à des fins d’optimisation, mais ce n’est pas la méthode classique. Nous ferions ça :
Exercice (Réflexion MLDR)
Pour chaque entité /association, déduisez ce que donne la règle de conversion associée aux cardinalités.
Validez votre travail en utilisant la génération automatisée du MLDR via votre outil de modélisation.
Exercice (Trouver les règles de conversions)
Modèle logique des données que l’on déduit des cardinalités.
Règles de conversion - Cas particuliers
Associations réflexives
Association ternaire (n-aire) - Souvent utilisé pour de l'historisation
Il existe différents niveaux de formes normales. Les 3 premiers niveaux de normalisations sont les plus répandus et les plus appliqués.
La classification de ces trois premiers niveaux de normalisation repose sur les dépendances fonctionnelles entre la clef primaire de la relation et ses autres attributs.
Remarques :
Pour que le MLD soit valide, il faut que chacune de ses relations soit au moins en 3FN.
Si un MCD est correctement conçu et que les règles de conversion énoncées plus haut ont bien été respectées, les relations seront donc automatiquement normalisées en 3FN.
Exemple
0FN
Exemple
1FN
On applique l’atomicité et la référence à un identifiant unique
Exemple
2FN
On retire les dépendances qui n’ont pas de rapport avec la clé primaire.
0,1
Exemple
3FN
On retire les dépendances de transition.
Exercice (Appliquez les formes normales)
Appliquez une à une les formes normales sur cette entité.
Nous prendrons un de vos rendu pour faire le corrigé ensemble et en discuter.
La traduction d'un MLD conduit à un MPD qui précise le stockage de chaque donnée par son type et sa taille. C’est sur le MPD que l’on peut se permettre un certain nombre de libertés par rapport aux règles de normalisation afin d'optimiser les performances du système d'information :
Les cardinalités et associations disparaissent pour laisser place aux clés étrangères et primaires dans le modèle. Comme vu auparavant pour certaines cardinalités, une table intermédiaire est créée. Dans le MPD, ces tables sont présentes physiquement dans le modèle.
Exemple
Exercice (Script & adaptation)
Créer le script de création de base de données avec votre outil de modélisation, analysez les requêtes SQL créées.
Passez votre script en base de données SQL Server (ou MySQL), adaptez en fonction des problèmes détectés lors de l’analyse.
Exercice (MCD & MLDR)
Un historien souhaite établir des statistiques sur des soldats de la Première Guerre mondiale. Pour chaque soldat, outre l'état-civil (nom, prénom, sexe, date de naissance, pays de naissance,…), il souhaite avoir la trace :
Etablir le MCD et le MLDR adéquats
+ MLDR
Modèle conceptuel des traitements : permet de schématiser les opérations qui sont réalisées en fonction d’événements sur le système d'information,
Schéma
Modèle organisationnel des traitements c’est la représentation de l'activité étudié,
C'est le même principe que pour un diagramme d'activités, sauf qu'ici on parle des traitements à faire en base de données.
Schéma
Bases DL1 vieilles bases souvent associé à la technologie COBOL en entreprise. Un modèle hiérarchique structure les données sous formes d’arbres, en opposition au modèle relationnel qui dispose les données en « ligne ».
Modèle réseau, dérivé direct de CODASYL (Américain)
Modèle hiérarchique
Héritage sans contrainte
(IPersonne : Auteur / Inscrits)
Possibilité d’ajouter des contraintes que l’on doit gérer
dans le code applicatif ou par trigger également.
Schéma
Contraintes entre associations
Schéma
Envoyer le fichier exercice_complementaire_dictionnaire_to_mcd.docx
En partant de sujet réaliste, vous devez analyser le besoin et le reformuler, créer le dictionnaire de données, puis le MCD correspondant au sujet choisi.
Cet exercice se réalise en groupe de 2 (et un groupe de 3)
Vous devrez ensuite présenter votre travail à l'oral à la promotion.
BONUS : Pour eux qui finissent plus vite que les autres, commencez à faire de l'UML sur le sujet (Diagrammes de cas d'utilisations, activités, séquences, classes)
Démarrez votre modélisation MERISE pour le projet Cube (ressources relationnelles).
Mettez-vous dans les canaux de discussion discord par groupe et n'hésitez pas à me poser des questions.
Je peux soit venir dans le canal de discussion pour vous aider, soit vous "corriger" (plutôt vous faire des retours) votre MCD.
Bon courage !
L'installation se fait sur toutes les OS
WAMP : Windows
LAMP : Mac
XAMP : Unix
D'abord, il faut installer l'agent SQL, puis l'interface Mangement studio.
Ou, pour une installation plus rapide, voir ici :
Agent SQL : https://www.microsoft.com/fr-fr/sql-server/sql-server-downloads (choisir SQL Server 2019 express)
Management studio Express :
BON COURAGE !
Evaluation
Vous devez répondre à un questionnaire de questions ouvertes
BON COURAGE !
Evaluation
Réaliser toutes les tables de l'exercice précédent (Je vous donne un corrigé) avec des requêtes SQL