Modélisation des données, Big Data et Projet - I-ILIA-024 - DB.pdf

Summary

This document is a chapter from a course on data modeling, big data, and project management at the Université de Mons. It discusses the context, needs, and objectives of the course, including an example of a fire incident report. It shows how data is collected, processed and presented.

Full Transcript

Faculté Polytechnique SERVICE INFORMATIQUE, LOGICIEL ET INTELLIGENCE ARTIFICIELLE (ILIA) MODÉLISATION DES DONNÉES, BIG DATA ET PROJET (I-ILIA-024) CHAPITRE 01 : INTRODUCTION AUX BASES DE DONNÉES Titulaire : Pr. Sidi Ahmed Mahmoudi sidi.ma...

Faculté Polytechnique SERVICE INFORMATIQUE, LOGICIEL ET INTELLIGENCE ARTIFICIELLE (ILIA) MODÉLISATION DES DONNÉES, BIG DATA ET PROJET (I-ILIA-024) CHAPITRE 01 : INTRODUCTION AUX BASES DE DONNÉES Titulaire : Pr. Sidi Ahmed Mahmoudi [email protected] 17 Sep 2024 PLAN I. Contexte II. Besoins et objectifs III. Exemple 1 : rapport d’incendies V. Votre projet VI. Cahier de charges Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 2 PLAN I. Contexte II. Besoins et objectifs III. Exemple 1 : rapport d’incendies V. Votre projet VI. Cahier de charges Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 3 Pourquoi la gestion de bases de données ? Gestion du personnel de l’Université : étudiants, cours, inscriptions, etc. Gestion des comptes de clients d’une banque Système de réservation de chambres d’hôtel Gestion des commandes Jeux vidéos Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 4 Autres exemples Génération de rapports médicaux « Cancer du sein » Université de Mons Sidi Ahmed Mahmoudi Introductio n to Big Data 5 Autres exemples Gestion de données Multimédia avec Technologies Big Data Université de Mons Sidi Ahmed Mahmoudi Introductio n to Big Data 6 Autres exemples Fire Eyes Université de Mons Sidi Ahmed Mahmoudi Introductio n to Big Data 7 Autres exemples Coop’tech Université de Mons Sidi Ahmed Mahmoudi Introductio n to Big Data 8 PLAN I. Contexte II. Besoins et objectifs III. Exemple 1 : rapport d’incendies V. Votre projet VI. Cahier de charges Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 9 Besoins Travailler manuellement avec des dossiers individuels ; Superviser et accorder des droits d’accès aux utilisateurs ; Gérer la diversités d’informations. Tâche simplement trop difficile Offrir un traitement électronique, structuré et efficace des données ; Base de données électronique : couche logicielle entre le système d’exploitation et le programme d’application ; Développé dans les années 1960 L’une des innovations les plus importantes en informatique Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 10 Rôle des bases de données Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 11 Objectifs du cours (globalement) Rendre l'étudiant capable de construire un modèle de données grâce à l'algèbre relationnelle (SQL) et non relationnelle (NoSQL) Pouvoir prouver l'exactitude de ce modèle et ainsi assurer l'intégrité et la sécurité des données Favoriser le développement des qualités de collaboration et de communication par des travaux en groupe, des exposés en public et des rapports écrits de qualité. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 12 Objectifs du cours (techniquement) Montrer l’apport des Bases de données (BD) et des Systèmes de Gestion de Bases de Données (SGBD) Comprendre les concepts et techniques sur lesquels reposent les fonctions principales d'un SGBD Pouvoir représenter dans une BD le contenu d'information d'un domaine d'application Mettre en œuvre une application simple reposant sur une base de données (Analyse, conception, structuration des données, mise en œuvre d’une base de donnée avec interaction... ). Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 13 PLAN I. Contexte II. Besoins et objectifs III. Exemple 1 : rapport d’incendies V. Votre projet VI. Cahier de charges Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 14 Exemple : rapport d’incendies But : permettre à un service d’incendies de remplir et de gérer ses rapports concernant les interventions pour incendie. Comment procéderiez-vous ? Demander plus de détail au client Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies But Le but ici est de permettre à un service incendie de remplir et de gérer ses rapports concernant les interventions pour incendie. Chaque rapport ne concerne qu’un incendie bien précis et est identifié par un numéro de rapport unique. Sa date de création y est mentionnée, ainsi que la distance aller-retour parcourue à partir de la caserne pour arriver sur le lieu de l’incendie et en revenir et la date et l’heure d’arrivée sur le lieu d’incendie. Chaque rapport fait référence à l’endroit où a eu lieu l’incendie : sa location (rue, numéro et numéro de boite, tous ces champs référencé par un numéro) et sa ville (nom et code postal). Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Détail Dans le rapport sont mentionnés les informations liées aux moyens utilisés lors de l’intervention : le ou les véhicule(s) (plaque minéralogique, marque, type et code couleur) et les membres du personnel (N° de matricule, grade, statut - professionnel ou volontaire - et statut ambulancier – titulaire du brevet ou non -). Pour chaque membre du personnel étant intervenu, la date et l’heure de départ de la caserne et la date et l’heure de retour à la caserne sont enregistrés. Pour chaque incendie est indiqué la ou les implication(s) qu’il a eu (victimes ou sauvetages) avec comme renseignements l’âge ou une estimation d’âge de la personne impliquée, identifiée par un numéro et certains détails : l’état (blessée ou décédée) dans le cas d’une victime ou le moyen utilisé pour le sauvetage. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Voyez vous des informations manquantes ? Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Origine de l’information Dans le rapport L’appelant ayant signalé l’incendie, le propriétaire de l’endroit en feu ainsi que chaque membre du personnel sont encodés en tant que personne, chacune identifiée de manière unique par un numéro de référence. Le nom et prénom de chaque personne sont encodés, ainsi que la location et la ville où elle habite, si ces informations sont disponibles. Des numéros de téléphone fixe ou mobile peuvent être enregistrés pour chaque personne. Dans le cas de l’appelant, la date et heure de fin d’appel (donc le moment où l’alerte est donnée) et les informations transmises sont mémorisées. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Cahier des Charges !!? Une solution simple et naïve... 1fichier : Table: Incendie Membre Véhicule N°_Rapport date_Rap … N°_Matricule Grade … Plaq_Mineral Marq_Véhicul … 1 14/01/2015 9 A 12-LK- 986 TOYOTA 1 14/01/2015 3 B 12-LK- 986 TOYOTA 1 14/01/2015 4 B 12-LK- 986 TOYOTA 2 17/01/2015 9 A 12-LK- 986 TOYOTA 2 17/01/2015 8 D 12-LK- 986 TOYOTA 2 17/01/2015 1 A 12-LK- 986 TOYOTA 2 17/01/2015 4 B 12-LK- 986 TOYOTA … Anomalie d’insertion – Insérer un nouveau pompier qui n’a pas encore participé à un incendie peut poser des problèmes (sauf si champs vides). Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Problèmes de la solution à une seule table : Le nombre de lignes du fichier des données et sa taille après 4 ou 5 ans? Un membre change d’adresse, combien de lignes doivent être modifiées ? Inconvénients de la solution : Redondance des données : un membre participe à X incendies donc X lignes : duplication de toutes les informations du membre ! Incohérence en modification : la redondance de l’information entraîne des risques en cas de modification d’une donnée Anomalie d’insertion : insérer un nouveau membre qui n’a pas encore participé à un incendie peut poser des problèmes (sauf si champs vides). Anomalie de suppression Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Une solution simple et naïve... 1fichier : Table: Incendie Membre Véhicule N°_Rapport date_Rap … N°_Matricule Grade … Plaq_Mineral Marq_Véhicul … 1 14/01/2015 9 A 12-LK- 986 TOYOTA 1 14/01/2015 3 B 12-LK- 986 TOYOTA 1 14/01/2015 4 B 12-LK- 986 TOYOTA 2 17/01/2015 9 A 12-LK- 986 TOYOTA 2 17/01/2015 8 D 12-LK- 986 TOYOTA 2 17/01/2015 1 A 12-LK- 986 TOYOTA 2 17/01/2015 4 B 12-LK- 986 TOYOTA … Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies D’après le document suivant, quelles sont les informations pertinentes pour établir un rapport d’incendie ? Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Le but ici est de permettre à un service incendie de remplir et de gérer ses rapports concernant les interventions pour incendie. Chaque rapport ne concerne qu’un incendie bien précis et est identifié par un numéro de rapport unique. Sa date de création y est mentionnée, ainsi que la distance aller-retour parcourue à partir de la caserne pour arriver sur le lieu de l’incendie et en revenir et la date et l’heure d’arrivée sur le lieu d’incendie. Chaque rapport fait référence à l’endroit où a eu lieu l’incendie : sa location (rue, numéro et numéro de boite, tous ces champs référencé par un numéro) et sa ville (nom et code postal). Dans le rapport sont mentionnés les informations liées aux moyens utilisés lors de l’intervention : le ou les véhicule(s) (plaque minéralogique, marque, type et code couleur) et les membres du personnel (N° de matricule, grade, statut - professionnel ou volontaire - et statut ambulancier – titulaire du brevet ou non -). Pour chaque membre du personnel étant intervenu, la date et l’heure de départ de la caserne et la date et l’heure de retour à la caserne sont enregistrés. Pour chaque incendie est indiqué la ou les implication(s) qu’il a eu (victimes ou sauvetages) avec comme renseignements l’âge ou une estimation de l’âge de la personne impliquée, identifiée par un numéro et certains détails : l’état (blessée ou décédée) dans le cas d’une victime ou le moyen utilisé pour le sauvetage, dans ce dernier cas. L’appelant ayant signalé l’incendie, le propriétaire de l’endroit en feu ainsi que chaque membre du personnel sont encodés en tant que personne, chacune identifiée de manière unique par un numéro de référence. Le nom et prénom de chaque personne sont encodés, ainsi que la location et la ville où elle habite, si ces informations sont disponibles. Des numéros de téléphone fixe ou mobile peuvent être enregistrés pour chaque personne. Dans le cas de l’appelant, la date et heure de fin d’appel (donc le moment où l’alerte est donnée) et les informations transmises sont mémorisées. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Le but ici est de permettre à un service incendie de remplir et de gérer ses rapports concernant les interventions pour incendie. Chaque rapport ne concerne qu’un incendie bien précis et est identifié par un numéro de rapport unique. Sa date de création y est mentionnée, ainsi que la distance aller-retour parcourue à partir de la caserne pour arriver sur le lieu de l’incendie et en revenir et la date et l’heure d’arrivée sur le lieu d’incendie. Chaque rapport fait référence à l’endroit où a eu lieu l’incendie : sa location (rue, numéro et numéro de boite, tous ces champs référencé par un numéro) et sa ville (nom et code postal). Dans le rapport sont mentionnés les informations liées aux moyens utilisés lors de l’intervention : le ou les véhicule(s) (plaque minéralogique, marque, type et code couleur) et les membres du personnel (N° de matricule, grade, statut - professionnel ou volontaire - et statut ambulancier – titulaire du brevet ou non -). Pour chaque membre du personnel étant intervenu, la date et l’heure de départ de la caserne et la date et l’heure de retour à la caserne sont enregistrés. Pour chaque incendie est indiqué la ou les implication(s) qu’il a eu (victimes ou sauvetages) avec comme renseignements l’âge ou une estimation de l’âge de la personne impliquée, identifiée par un numéro et certains détails : l’état (blessée ou décédée) dans le cas d’une victime ou le moyen utilisé pour le sauvetage, dans ce dernier cas. L’appelant ayant signalé l’incendie, le propriétaire de l’endroit en feu ainsi que chaque membre du personnel sont encodés en tant que personne, chacune identifiée de manière unique par un numéro de référence. Le nom et prénom de chaque personne sont encodés, ainsi que la location et la ville où elle habite, si ces informations sont disponibles. Des numéros de téléphone fixe ou mobile peuvent être enregistrés pour chaque personne. Dans le cas de l’appelant, la date et heure de fin d’appel (donc le moment où l’alerte est donnée) et les informations transmises sont mémorisées. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exemple : rapport d’incendies Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet CREATE TABLE IF NOT EXISTS `mydb`.`implication` ( `id_personne_impliquee` INT NOT NULL AUTO_INCREMENT , `details` VARCHAR(45) NULL , `Age` VARCHAR(45) NULL , `Type` VARCHAR(45) NOT NULL , PRIMARY KEY (`id_personne_impliquee`) ) CREATE TABLE IF NOT EXISTS `mydb`.`telephone` ( ENGINE = InnoDB `num_telephone` VARCHAR(15) NOT NULL , DEFAULT CHARACTER SET = utf8; PRIMARY KEY (`num_telephone`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; CREATE TABLE IF NOT EXISTS `mydb`.`signale_par` ( `incendie_id_rapport` INT NOT NULL , `personne_id_personne` INT NOT NULL , `date_et_heure_alerte` DATETIME NULL , `informations` TEXT NULL , PRIMARY KEY (`personne_id_personne`, `incendie_id_rapport`) , INDEX `fk_incendie_has_personne_incendie1` (`incendie_id_rapport` ASC) , INDEX `fk_incendie_has_personne_personne1` (`personne_id_personne` ASC) , CONSTRAINT `fk_incendie_has_personne_incendie1` FOREIGN KEY (`incendie_id_rapport` ) REFERENCES `mydb`.`incendie` (`id_rapport` ) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_incendie_has_personne_personne1` FOREIGN KEY (`personne_id_personne` ) REFERENCES `mydb`.`personne` (`id_personne` ) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB DEFAULT CHARACTER Université de Mons SET = utf8; 165 03 – 02 – 2014 strSql = "SELECT plaque,marque,type,code_couleur FROM vehicule where plaque='" & plaque & "' or marque='" & marque & "' or type='" & type & "' or code_couleur='" & code_couleur & "'" ObjetCommand = New MySqlCommand(strSql) ObjetDataAdapter = New MySqlDataAdapter(ObjetCommand) ObjetCommand.Connection() = ObjetConnection ObjetDataAdapter.Fill(ObjetDataSet, "VehiRes") ListBoxRechVehi.DisplayMember = "VehiRes.type" ListBoxRechVehi.ValueMember = "VehiRes.plaque" ListBoxRechVehi.DataSource = ObjetDataSet TBplaque.DataBindings.Add("Text", ObjetDataSet, "VehiRes.plaque") TBmarque.DataBindings.Add("Text", ObjetDataSet, "VehiRes.marque") TBtype.DataBindings.Add("Text", ObjetDataSet, "VehiRes.type") TBcode_couleur.DataBindings.Add("Text", ObjetDataSet, "VehiRes.code_couleur") Université de Mons PLAN I. Contexte II. Besoins et objectifs III. Exemple 1 : rapport d’incendies V. Votre projet VI. Cahier de charges Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 32 Comment se déroulera votre projet ? Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Votre projet Projet Une définition - Actions à entreprendre afin de répondre à un besoin défini (avec une qualité suffisante), dans un délai fixé, mobilisant des ressources humaines et matérielles, possédant un coût. Conduite de projet - Organisation méthodologique mise en œuvre pour faire en sorte que l’ouvrage réalisé réponde aux attentes (qualité) du client dans les contraintes de délai et de coût. Direction de projet - Gestion des hommes : organisation, communication, animation - Gestion technique : objectifs, méthode, qualité - Gestion de moyens : planification, contrôle, coûts, délais Un projet répond à une demande - Identifier les objectifs : bien comprendre les besoins (clairement explicités) Établir les actions à mener pour répondre aux besoins - Mobiliser des personnes et des moyens, organiser cette mobilisation Plan d’actions, délais, coûts - Gérer des ressources humaines et matérielles Evaluation et suivi des tâches Repérer les éléments critiques et maitriser la communication - Être clair Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Votre projet Échéances : 1er rapport : Cahier de charges (06/10/2024) 2ème rapport : Cahier de charges + MCD + MLD (27/10/2024) Démonstration : Evaluation intermédiaire du projet sur PC (13/12/2024) Rapport final : Rapport final + Codes (Moodle) (10/01/2025) : à confirmer Structure du rapport : 1. Cahier de charges de l’application 2. MCD 3. MLD 4. MPD (quelques tables et relations) 5. Choix technologiques et Implémentation 6. Conclusion 7. Manuel d’utilisation + lien vers démonstration Quelques conseils sur le travail pratique : 1. Créer des tables, relations, formulaires, requêtes avec ou sans jointure, rapports, etc. 2. Editer des documents, trier des éléments, rechercher/modifier/supprimer des éléments, etc. 3. Justifier les choix technologiques et répondre aux besoins du client. 4. Fournir une interface simple et facile à utiliser pour les clients. 5. Remettre à temps le travail complet : codes, base de données, rapport, manuel d’utilisation et démo. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet PLAN I. Contexte II. Besoins et objectifs III. Exemple 1 : rapport d’incendies V. Votre projet VI. Cahier de charges Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 36 Cahier de charges Bien comprendre les besoins (clairement explicités) La spécification : cahier des charges Un client Quoi : ensemble des fonctionnalités du produit : données, requêtes, etc. peut assurer plusieurs Comment : spécification de l'interface homme machine voitures auprès de la Quand : dates ? compagnie. Chaque Mention explicite rigoureuse des différentes limites de fonctionnement du logiciel voiture est assurée par (pas de facture à zéro; €, $;Fr, Nl, GB; etc…). un seul … Un cahier des charges est un document nécessaire pour : o Fixer les détails des objectifs et services rendus par l’application/logiciel o Définir les contraintes à respecter impérativement o Être un outil de dialogue entre les différents interlocuteurs o Diminuer les risques d’erreur lors du développement. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Cahier de charges Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Format du Cahier de charges Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exercice 01 Contexte : application de gestion d’une bibliothèque ▪ Tous les livres de la bibliothèque possèdent un numéro de livre, un titre, un ou plusieurs auteurs et un éditeur. ▪ Lorsqu’une personne emprunte un livre, il faut mémoriser son nom, son prénom, son numéro de téléphone, son adresse, la date de l’emprunt et la date de retour une fois ce dernier réalisé. ▪ Toutes les informations doivent être conservées pour garder un historique des emprunts. Si on prend une solution simple et naïve ? N°Livre Titre Auteur Éditeur Nom Prénom Téléphone Adresse Date-emprunt Date-retour Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exercice 01: même inconvénients N°Livre Titre Auteur Éditeur Nom Prénom Téléphone Adresse Date-emprunt Date-retour inconvénients le nombre de lignes du fichier des données et sa taille après 2, 3 ou 5 ans? abonnée change d’adresse, combien de lignes doivent être modifiées ? Redondance des données – Un abonné emprunte X livres donc X lignes : duplication des informations de l’abonné ! Incohérence en modification – Redondance de l’information entraîne des risques en cas de modification d’une donnée. Anomalie d’insertion – Insérer un nouvel abonné qui n’a jamais emprunté de livre peut poser des problèmes (sauf si champs vides). Anomalie de suppression – Supprimer toutes les traces d’un livre dans le fichier de données, on fera disparaître tous les abonnés qui n’ont emprunté que ce livre. Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exercice 02 Un magasin de bureautique qui désire informatiser la gestion des commandes. Un fournisseur peut fournir 1 ou plusieurs articles (bureau, armoire, …). Pour chaque fournisseur, le magasin désire connaître son nom, sa ville, son code postal. Une commande peut contenir 1 ou plusieurs articles. Chaque article est caractérisé par son type (bureau, armoire, …) et sa quantité Si on prend une solution simple et naïve ? NOM_FOUR VILLE CD_POSTAL Article QTE_EXP F1 Mons 7000 Bureau 30 Redondance F1 Mons 7000 Ecran 50 Modification F1 Mons 7000 Armoire 20 Risques d'erreur F2 Charleroi 6000 Bureau 50 Mémoire F2 Charleroi 6000 Ecran 60 F3 Tamines 5060 Ecran 50 Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Exercice 02: solution FOUR NOM_FOUR VILLE CD_POSTAL F1 Mons 7000 F2 Charleroi 6000 F3 Tamines 5060 F4 Mons 7000 EXPEDITION NOM_FOUR PIECE QTE_EXP F1 Bureau 300 F1 Ecran 500 F1 Armoire 20 F2 Bureau 500 F2 Ecran 600 F3 Ecran 500 Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Conclusion 3. Implémentation d‘1 DB 1. Analyse de la situation 2. Création de modèles représentant existante et des besoins tous les aspects Rap_1 Rap_2 Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet Conclusion Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet QUESTIONS ? Université de Mons Sidi Ahmed Mahmoudi Modélisation de données, Big Data et Projet 47 Faculté Polytechnique SERVICE INFORMATIQUE, LOGICIEL ET INTELLIGENCE ARTIFICIELLE (ILIA) MODÉLISATION DES DONNÉES, BIG DATA ET PROJET (I-ILIA-024) BANQUE DE DONNÉES (I-ILIA-103) CHAPITRE 02 : SYSTÈMES DE GESTION DE BASE DE DONNÉES (SGBD) Titulaire : Pr. Sidi Ahmed Mahmoudi [email protected] 23 Sep 2024 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de bases de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 2 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de bases de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 3 Etapes et démarches de modélisation 3. Implémentation d‘1 DB 1. Analyse de la situation 2. Création de modèles représentant existante et des besoins tous les aspects Rap_1 Rap_2 Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 4 Etapes et démarches de modélisation Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 5 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de bases de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 6 Définitions Information : une donnée pertinente porteuse de sens sur un objet, un événement, une personne, etc. Exemple : le nom d'une personne, matricule, adresse, âge, … Système d’information : un système d'information est constitué par l'ensemble des informations relatives à un domaine bien défini. Exemples: Cimenterie : stock, commandes, ventes, personnes, etc. Faculté : étudiants, enseignants, locaux, etc. Un S. I. existe indépendamment des techniques informatiques. Il contient les données et les traitements nécessaires pour assimiler et stocker les informations entrantes et produire les informations sortantes. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 7 Définitions Un modèle (graphique) de base de données est un ensemble d’éléments qui décrit les données et permet d’exprimer les propriétés et les liens entre ces données Un schéma de base de données est une description de la structure des données à gérer. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 8 Définitions Une base de données « BD » est un ensemble structuré d'informations. Une base de données (BD) est un ensemble bien structuré de données (persistantes) relatives à un sujet global. Ces données peuvent être de nature et d'origine différentes. Les données sont des faits, connus et qui ont un sens pour l’utilisateur. Ces données doivent avoir une relation entre elles. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 9 Base de données “collection de données enregistrées ensemble, sans redondance pénible ou inutile, pour servir plusieurs applications, on y enregistre les données de façon à ce qu’elles soient indépendantes des programmes qui les utilisent, on utilise une approche commune et contrôlée pour ajouter, modifier, retrouver des données”. James Martin Une compilation ordonnée, interrogeable et modifiable d'informations Exemples: UMONS ⇨ BD ⇨ sur tous les étudiants. Une banque ⇨ BD ⇨ sur tous les clients. Société d'assurances ⇨ BD ⇨ contrats d’assurances & sinistres Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 10 Définitions Qu'attendre d’une base de données : Lorsqu’on a besoin de décrire et d’organiser les données en un ensemble structuré avec : Redondance réduite Intégrité assurée (35/15/2015 est impensable) Incohérence évitée Normes imposées Données partagées Restrictions de sécurité possibles Et stocker, consulter, modifier des informations, etc. Une base de données correctement construite permet une description globale des données à partager entre plusieurs utilisateurs, de restreindre l’accès ou la modification de ces données et d’en assurer l’intégrité tout en réduisant les redondances et en évitant les incohérences. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 11 Objectifs des bases de données Intégration ▪ Description unique et globale des données ▪ Eviter la redondance ▪ Eviter les incohérences Indépendance ▪ Indépendance données/traitement ▪ Séparation des descriptions logiques et physiques des données ▪ Répartition des données et traitements Sécurité ▪ Contrôle sémantique des données ▪ Protection contre les accès non autorisés ▪ Protection contre les pannes Facilité « utilisateur » ▪ Partage des données ▪ Vision haut niveau et personnalisée des données ▪ Manipulation « aisée » et efficace Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 12 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de base de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 13 Système de gestion de base de données Un système de gestion de bases de données (SGBD) est un programme qui permet la représentation informatique des données dans le but de créer, modifier et exploiter des bases de données. Ce système constitue donc notre interface pour accéder aux données. Poids : 2 Ko SGBD BD Logiciel gérant une BD et permettant à l’utilisateur de SGBD ▪ communiquer (requêtes) avec une base de données pour : rechercher, sélectionner et modifier les données, etc. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 14 Qu’attendre d’un SGBD ? Un SGBD assure et facilite - la description des données, - leur recherche et mise à jour, - la sûreté : vérifier les droits d’accès des utilisateurs ; limiter les accès non autorisés ; crypter les informations sensibles - la sécurité : sauvegarde et restauration des données ; limiter les erreurs de saisie, de manipulation - l’intégrité : définir des règles qui maintiennent l’intégrité de la base de données (contraintes d’intégrité) - la concurrence d’accès : détecter et traiter les cas où il y a conflit d’accès entre plusieurs utilisateurs et les traiter correctement. SGBD Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 15 SGBD et transactions Incidents Transactions Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 16 SGBD et transactions Un SGBD permet de réaliser des transactions (ACID) Atomiques, Cohérentes, Isolées et Durables. début transaction accès à la base (lire/écrire) calculs … fin transaction (COMMIT ou ROLLBACK) fin de la transaction avec succès ou échec) Atomicité : Une transaction doit effectuer toutes ses mises à jour ou ne rien faire du tout. En cas d’échec, le système doit annuler toutes les modifications. (pannes de programme/système/matériel) Cohérence : La transaction doit faire passer la base de données d’un état cohérent à un autre. En cas d’échec, l’état cohérent initial doit être restauré. Isolation : Résultats d’une transaction visibles seulement après validation de la transaction. Eviter les interférences avec autres transactions. Accès concurrents peuvent mettre en question l’isolation. Durabilité : Dès qu’une transaction valide ses modifications, le système doit garantir qu'elles seront conservées en cas de panne. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 17 SGBD et transactions Transaction validée : Transaction annulée : Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 18 SGBD et transactions Gestion d’une Transaction annulée : Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 19 Caractéristiques d’un SGBD L'architecture, de référence d'un SGBD, à trois niveaux définie par le standard ANSI/SPARC permet d'avoir une indépendance entre les données et les traitements. D'une manière générale, un SGBD doit avoir les caractéristiques suivantes : 1. Indépendance physique: le niveau physique peut être modifié indépendamment du niveau conceptuel 2. Manipulabilité: Utilisateur → requêtes sans faire référence à des éléments techniques de la DB (utilisateur final) 3. Rapidité des accès: des réponses aux requêtes le plus rapidement possible (algorithmes de recherche rapides) 4. Administration centralisée: permettre à l'administrateur de manipuler les données, insérer des éléments, vérifier son intégrité de façon centralisée Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 20 Caractéristiques d’un SGBD 5. Limitation de la redondance: le SGBD doit pouvoir éviter dans la mesure du possible des informations redondantes (mémoire, erreurs, etc.) 6. Vérification de l'intégrité: les données doivent être cohérentes entre elles, de plus lorsque des éléments font références à d'autres, ces derniers doivent être présents 7. Partageabilité des données: le SGBD doit permettre l'accès simultané à la base de données par plusieurs utilisateurs 8. Sécurité des données: le SGBD doit présenter des mécanismes permettant de gérer les droits d'accès aux données selon les utilisateurs. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 21 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de bases de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 22 Historique Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 23 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de base de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 28 Conception d’une base de données Liste non exhaustive de SGBD relationnels : 1. Adabas de Software AG 2. Access de Microsoft 3. DB2 : IBM 4. Informix : achetée par IBM 5. Ingres : Vax, IBM, Sun, HP, Dos 6. MS-sql 7. MySQL (logiciel libre) 8. Oracle : Oracle (multi plateforme) 9. Progress : Unix, Dos, VMS, OS/2 10. PostgreSQL (logiciel libre) 11. SqlServer de Microsoft 12. 13. Sybase de Sybase Etc. SGBD Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 29 Conception d’une base de données Quel SGBD choisir ? Publié le 1er mars 2003 - Mis à jour le 22 septembre 2010 De nombreux SGBD sont disponibles sur le marché, partant des SGBD gratuits jusqu'aux SGBD destinés spécialement aux professionnels, comportant de plus nombreuses fonctionnalités, mais plus coûteux. Ce document a pour but de vous aider à faire votre choix parmi les différentes possibilités en décrivant et comparant les différents SGBD. Version actuelle : Disponibilité : Comparatif : Licence : 28 SGBDR passés au crible Avantages Inconvénients Liens Les meilleurs outils pour SGBD !! http://fadace.developpez.com/sgbdcmp/ Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 30 Modèles de bases de données a) Hiérarchique: données classées hiérarchiquement, selon une arborescence descendante. Il utilise des pointeurs entre les différents enregistrements. Utilisé par IBM dans les années 60- 70 b) Modèle réseau: il utilise en plus des pointeurs vers des enregistrements. Moyennement souple, complexe pour développement, performance moyenne. c) Modèle relationnel (SGBDR, Système de gestion de bases de données relationnelles): données enregistrées dans des tables. Leur manipulation se fait selon la théorie mathématique des relations, théorie ensembliste. (du mathématicien CODD). Fort souple, aisé à développer. d) Modèle objet (SGBDO, Système de gestion de bases de données objet): les données sont stockées sous forme de classes. SGBDR: Position dominante sur le marché, théorie solide et normes reconnues. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 31 Modèles de bases de données a) Hiérarchique: données classées hiérarchiquement, selon une arborescence descendante. Il utilise des pointeurs entre les différents enregistrements. Utilisé par IBM dans les années 60- 70 b) Modèle réseau: il utilise en plus des pointeurs vers des enregistrements. Moyennement souple, complexe pour développement, performance moyenne. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 32 Architecture des SGBD Architecture Client- Architecture Centralisée Serveur Architecture répartie Architecture mobile Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 33 Architecture Centralisée Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 34 Architecture Client-Serveur Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 35 Architecture Client-Multi Serveur Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 36 Architecture répartie Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 37 Architecture mobile Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 38 ( Entrepôt de données ) L’Entrepôt de données (ou base de données décisionnelle, ou encore data warehouse) désigne une base de données utilisée pour collecter, ordonner, journaliser et stocker des informations provenant de bases de données opérationnelles et fournir ainsi un socle à l'aide à la décision en entreprise. « Le DataWareHouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées pour le support d'un processus d'aide à la décision. » Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 40 La Business Intelligence Objectif : transformer toutes les données de l’entreprise (internes et externes) en informations pertinentes aidant ainsi les membres de l’entreprise, de l’opérationnel à la direction, à prendre rapidement les meilleures décisions pour le futur de celle-ci. Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 41 La Business Intelligence Architecture Prises de décisions * hétérogènes * transactions en temps réel * SQL *… Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 42 PLAN I. Etapes et démarches de modélisation II. Définitions III. L’approche base de données a. Caractéristiques et architecture des SGBDR b. Brève historique de la gestion de bases de données c. Conception d’une base de données IV. Conclusion Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 43 Et nous ? Modèle de BD : relationnel ? SGBD ? Architecture SGBD ? Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 44 QUESTIONS ? Université de Mons Pr. Sidi Ahmed Mahmoudi I-ILIA-024 : Chapitre 02 "SGBD" 45 Faculté Polytechnique SERVICE INFORMATIQUE, LOGICIEL ET INTELLIGENCE ARTIFICIELLE (ILIA) MODÉLISATION DE DONNÉES, BIG DATA ET PROJET (I-ILIA-024) BANQUE DE DONNÉES (I-ILIA-103) CHAPITRE 03 : MODÉLISATION CONCEPTUELLE DES DONNÉES (MCD) Titulaire : Pr. Sidi Ahmed Mahmoudi [email protected] 04 Sep 2024 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 2 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 3 Introduction Selon la norme ANSI/SPARC (architecture de référence d'un SGBD). A chaque niveau correspond un schéma de représentation : Un client peut assurer plusieurs voitures auprès de la compagnie. Chaque voiture est assurée par un seul … Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 4 Comment l’utilisateur Schéma physique : Description voit les données du stockage des données Structure des données, propriétés et re lations sans soucis d'implémentation physique ni de la façon de s'en servir Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 5 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 6 Algèbre relationnelle Modèle relationnel : les données d’une base de données relationnelle sont organisées sous formes de tables, qu’on nomme des relations, qui sont associées entre elles. Le modèle relationnel doit respecter plusieurs contraintes : a. Contraintes de domaine : les attributs doivent tous appartenir à un ensemble défini lors de la création de la relation. Exemple : l’attribut nom appartenant à l’ensemble des chaines de caractères de longueur 10 ou 255 par exemple ; b. Contraintes d’identité : chaque enregistrement est défini de manière unique ; c. Contrainte de référence : pour faire des liens entre les relations « clés étrangères ». d. Contraintes d’utilisateurs : pour interdire à certains attributs de prendre des valeurs. particulières, par exemple un attribut âge peut avoir une contrainte âge > 65 Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 7 Algèbre relationnelle Algèbre relationnelle : langage de requêtes dans des bases de données relationnelles. Permet de réaliser des opérations sur les bases de données relationnelles dans le modèle relationnel : les opérations ensemblistes et les opérations relationnelles. Opérations ensemblistes : pour effectuer un recoupement entre les relations : union, intersection, différence et produit cartésien. Opérations relationnelles : éliminer des lignes ou des colonnes de relations « appelés aussi opérateurs unaires » : projection, sélection et jointure.. Ce langage a été inventé par Codd dans les années 1970. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 8 Algèbre relationnelle : opérations ensemblistes Opérations ensemblistes : Union Union : pour des relations qui ont les mêmes attributs, l’opération union unie les enregistrements en éliminant les éventuels doublons Exemple : Union entre T1 et T2 est notée par « T1 U T2 » Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 9 Algèbre relationnelle : opérations ensemblistes Opérations ensemblistes : Intersection Intersection : obtenir une relation qui ne contient que les enregistrements communs aux deux relations Exemple : Intersection entre T1 et T2 est notée par « T1 ∩ T2 » Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 10 Algèbre relationnel : opérations ensemblistes Opérations ensemblistes : Différence Différence : obtenir une relation où l’on a enlevé à une relation 1 les enregistrements de la relation 2. Exemple : La différence entre T1 et T2 est notée par « T1 / T2 » Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 11 Algèbre relationnelle : opérations ensemblistes Opérations ensemblistes : Produit cartésien Produit cartésien : s’applique à des relations qui n’ont aucun attribut en commun. Le produit cartésien de T1 par T2 : ajouter à chaque enregistrement de T1 les enregistrements de la relation 2. Exemple : Le Produit Cartésien entre T1 et T2 est notée par « T1 X T2 » Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 12 Algèbre relationnel : opérations relationnelles Opérations relationnelles : Projection Projection : sélectionner un ou plusieurs attributs de la relation. La nouvelle relation après projection s’appelle Exemple : La Projection de la relation « Relation » Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 13 Algèbre relationnelle : opérations relationnelles Opérations relationnelles : Sélection Sélection : sélectionner des enregistrements selon des conditions portant sur les attributs. La nouvelle relation qui répond aux conditions 1 à n se note : Exemple : Le Sélection de la relation « Livres » Pour les conditions, on peut rajouter des opérateurs booléens (AND, OR ou NOT). Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 14 Algèbre relationnelle : opérations relationnelles Opérations relationnelles : Jointure Jointure : associer plusieurs relations dans une même requête. Attention : les relations doivent être liés l’aide de clés étrangères. Exemple : La jointure entre les relations « Livres » et « EMPRUNTEURS » Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 15 Algèbre relationnelle : opérations relationnelles Opérations relationnelles : Jointure Jointure : associer plusieurs relations dans une même requête. Attention : les relations doivent être liés l’aide de clés étrangères. Exemple : La jointure entre les relations « Livres » et « EMPRUNTEURS » L’enregistrement associé à la valeur 1 de l’attribut id_livre n’apparait pas car celui- ci n’a pas été emprunté. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 16 Algèbre relationnelle : opérations ensemblistes et relationnelles Soit R(a1, a1, …, aN) une relation : ▪ Sélection : ▪ Projection : ▪ Exemple de Sélection : (R : Client) ▪ Exemple de Projection : Soient R(a1, a1, …, aN) et S(b1, b1, …, bM) deux relations ▪ Union : ▪ Différence : Produit Cartésien: ▪ Intersection: Jointure : Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 17 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 20 Schémas Externes (ESs) ES ES ES Définir la vue de la BD Vues SQL, Vbasic, orientés Web notamment (HTML, XML, etc.) Interfacer la BD avec des applications : JDBC, PHP, ASP, etc. Une BD est en général munie de plusieurs ESs différentes Mais tous ont le CS comme racine commune Université de Mons 21 Schéma Interne (IS) Comment transformer les objets? IS Comment ils ils seront stockés? Comment y accéder ? Définit la représentation interne de la BD Niveau interne ou physique ▪ Les disques, fichiers, arbres-B… contenant la BD ▪ La représentation physique de valeurs de données - Réel, entier, texte, OLE… - Encodage… Définit l’application du CS sur le IS Selon le principe de l’indépendance de niveaux logique et physique Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 22 Schéma Conceptuel (CS) MERISE (Méthode d’Étude et de Réalisation Informatique pour les Systèmes d’Entreprise) est une des méthodes de conception et de développement de projets informatiques. Cette méthode date de 1978-1979. Merise est certainement le langage de spécification le plus répandu dans la communauté de l’informatique des systèmes d’information, et plus particulièrement dans le domaine des bases de données. Une des caractéristiques principales de la méthode Merise est la séparation des données et des traitements du futur système d’information. Merise : concevoir une base de données relationnelle. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 23 Schémas de représentations Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 24 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 25 Modèle Relationnel Développé par Codd en 1970 : théorie mathématique des relations. Structure des données : Entités, Relations, Tables, Lignes/Colonnes, etc. Attention à la normalisation : Chapitre 04 Manipulation des données : comment exploiter ces tables L'intégrité des données: moyens mis à notre disposition par le SGBD, concourant à la validité de ces données, tels que les clés primaires, clés étrangères, assertions, triggers et contraintes diverses. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 26 Modèle Relationnel Objectifs du modèle relationnel: - proposer des schémas de données faciles à utiliser CLIENT Passer Commande Numéro Nom Numéro Description des … Date données. Quantité - Fournir une approche méthodologique dans la construction des schémas MCD → MLD …. - Améliorer l'indépendance logique et physique - Mettre à la disposition des utilisateurs des langages de haut niveau pouvant éventuellement être utilisés par des non informaticiens - Optimiser les accès à la base de données - Améliorer l'intégrité et la confidentialité. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 27 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 28 Composants d'une base de données relationnelle Quatre Types d’objets No. Libellé Prix Quantité Prix Article unitaire 233 Analyse 1000 € 1 1000 € 025 MCD 700 € 2 1400 € 1. Tables 142 MLD 1000 € 1 1000 € 2. Requêtes SELECT No, Prix FROM Nom_Table; 3. Formulaires 4. Rapports Université de Mons 29 M.R. 1. Les Tables Une table est une collection de données relatives à un domaine bien défini. N° Mat NOM SALAIRE Code post. Table : Employés_Disney 159 Donald 1500 € 7000 132 Obélix 1900 € 5060 Enregistrement , N_Uplet 1187 Picsou 1134 € 1000 354 ….. …. …. Valeurs de l’attribut Un champ de données (Attribut) Clé primaire : un ou de plusieurs champs permettant d'identifier de manière unique chaque enregistrement d'une table La clé primaire est indispensable pour définir des liens entre plusieurs tables. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 30 M.R. 2. Les requêtes S.Q.L. Les requêtes : "questions" qu'on pose au SGBD. « Structured Query Language », "langage structuré de requête" Le résultat : sous-ensemble d'une ou de plusieurs tables. pour interroger et gérer les bases de données relationnelles. SQL est un langage : * d'interrogation de la base (SELECT) * de manipulation des données (UPDATE, INSERT, DELETE ligne ) * de définition des données (CREATE, ALTER, DROP Table, Vues … ) * de gestion des transactions (SET TRANSACTION, LOCK, COMMIT, ROLLBACK) * de contrôle de l'accès aux données (GRANT, REVOKE). SQL utilisé par SGBDR : DB2, Oracle, … Chacun de ces SGBDR a cependant sa propre variante du langage. Formuler la requête SELECT * FROM Client; Pour chaque requête, nous Analyser et ? retrouvons le cycle suivant: Exécuter la requête Résultat de la requête Université de Mons 31 M.R. 3. Les formulaires (angl. Forms) Ajouter, modifier ou supprimer des données dans les tables Université de Mons 32 M.R. 4. Les rapport (angl. Report) Pas de dialogue interactif avec l’utilisateur Rapport généré à partir d’une ou plusieurs tables Résultat d’une requête Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 33 Conception d'une base de données Qu'est ce qu'un schéma de bases de données ? ▪ Une ou plusieurs relations ▪ Nombreux schémas possibles Qu'est ce qu'un bon schéma (« formes normales ») ? ▪ Ni perte d'information ni redondance ▪ Contraintes (d’intégrité) entre les valeurs des attributs ▪ But: indépendance données/applications Approche(s) ▪ On génère un schéma, on vérifie qu'il est bon, on le corrige s’il y a lieu; Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 34 Cycle d'abstraction de conception des S.I. Univers de Réel l’application CLIENT Passer Commande Numéro Indépendant du modèle de données Nom Numéro Niveau Conceptuel Indépendant du SGBD … Date Quantité Dépendant du modèle de données Niveau Logique Indépendant du SGBD Relationnel Objet XML … Dépendant du modèle de données Organisation physique des données Niveau Physique Dépendant du SGBD Structures de stockage des données Structures accélératrices (index) Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 35 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 36 Étapes de conception d’un modèle entités-associations Recueil des besoins Tri de l’information Identification des type-entités Identification des type-associations Modèle conceptuel des données MCD Vérification du modèle Concept Définition Exemples formelle CLIENT Passer Commande ENTITE Un objet que l’on peut Étudiant, Client, Fournisseur… Numéro distinguer Local, Employé, Département.. Nom Numéro … Date Quantité ASSOCIATION Relation connectant 2 Fréquenter (Étudiant, Local) ou plusieurs entités Affectation (Employé, Département) ROPRIETE Information pertinente Nom, N°matricule, Quantité, Adresse, sur une entité … Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 37 Le schéma conceptuel Un des modèles pour le schéma conceptuel : modèle “entité-association”. Proposé par Peter Chen en 1976, utilisé dans la méthodologie Merise. Traduire l’analyse du système réel établie préalablement en entités, en relations, en propriétés et en cardinalités. Entité : modéliser un ensemble 1, N 1,1 d’objets de même nature CLIENT Passer Commande Numéro Nom Numéro … Date Relations: liens sémantiques Quantité pouvant exister plusieurs entités Cardinalités: nombre d’interactions entre entités et “attributs Université de Mons 38 Le Modèle Conceptuel des Données (MCD) Analyse ⇨ (MCD) : "Schéma Entité-Relation" ou "Schéma Entité-Association". Relation ou Association ENTITE Nom d’entité Nom de la Relation COMMANDE CONCERNER PRODUIT No Cde 1, N Quantité Cdée 1, N No Prod Date Cde Désignation Prix Unitaire Propriété d’entité Propriété de la Relation l'entité Commande ∑ commandes S.I. et l'entité Produit ∑ produits S.I. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 39 Comment identifier les entités/relations/cardinalités ? Pour la construction du modèle conceptuel, plusieurs méthodes ont été mises en place mais aucune ne donne réellement satisfaction. On peut cependant les répartir en deux catégories : 1. modélisation directe : Elle consiste essentiellement à transformer des phrases décrivant certains aspects de la réalité en entités, relations et cardinalités en appliquant les règles suivantes : les noms deviennent des entités les verbes deviennent des relations Un étudiant enregistré dans le système fréquente au moins une classe au cours des années Etudiant Classe Fréquenter Numéro Nom Numéro … … … Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 40 Comment identifier les entités/relations/cardinalités ? 2. modélisation par analyse des dép. fonctionnelles Identifier toutes les propriétés du S.I. à analyser. Cette étape aboutit au dictionnaire des données épuré qui ne devra comporter ni synonyme, ni donnée calculée... Il semble que la bonne approche de construction d’un MCD soit un compromis entre la méthode directe, qui laisse une large part à l’intuition et la méthode basée sur l’étude des dépendances fonctionnelles. Quelle que soit la technique utilisée, le modèle doit être vérifié, normalisé et enrichi de tous les concepts étendus pour représenter le plus fidèlement possible l’univers de l’application. Il n’y a pas de règle absolue pour déterminer ce qui est entité, attribut ou relation. Université de Mons 41 ENTITE & Représentation Nom de l’entité PRODUIT NOM Propriété 1 No Prod Propriété 2 Identifiant Désignation Propriété 3 Prix Unitaire Propriété 4 Attributs Un identifiant est une colonne dont les valeurs permettent de repérer une seule ligne Règles de base: ??!! ▪ Une propriété ne peut pas figurer sur deux entités différentes. ▪ Une entité possède au moins une propriété : son identifiant. ▪ Une association peut ne pas avoir de propriété. Une même information ne doit se trouver qu’une fois dans la base de données Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 42 L’identifiant L'identifiant : propriété (une ou plusieurs) d'un objet telle qu'il n'existe pas 2 occurrences pour lesquelles cette propriété pourrait prendre une même valeur. Le choix d'un identifiant correct est très important pour la modélisation: Comme choix pour l'identifiant d'une entité nous distinguons généralement 3 possibilités: 1. Une propriété naturelle Exemples: Le nom d'un pays pour une entité Pays; Email d’une personne 2. Une propriété artificielle qui est inventée par le concepteur du MCD Exemple: Le numéro d'un client pour une entité Client, Produit, Commande, … 3. Une propriété composée d'autres propriétés naturelles Exemple: Le nom et la localité pour une entité Entreprise Évitez les identifiants susceptibles de changer au cours du temps (comme la plaque d’immatriculation d’un véhicule). Le MCD propose de souligner les identifiants Université de Mons 43 Associations ou Relations CLIENT VEHICULE CONTRAT APPARTIENT No SIGNE No Nom No Marque Adresse Type Modèle Date Année Cylindrée Personnes Obtenir Diplômes ID_Personne Code_diplôme Nom Titre_diplôme Prénom Abréviation Sexe Adresse Téléphone Email Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 44 Une relation peut être dotée de propriétés Obtenir Personnes Diplômes Année_d_obtention ID_Personne Code_diplôme Nom Titre_diplôme Prénom Abréviation Sexe Adresse Téléphone Email CLIENT COMMANDER PRODUIT Quantité Référence Cde Client Désignation Nom Prix Unitaire Adresse Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 45 Attention aux redondances Clients Passer Commandes Cde Client Référence Nom Désignation Adresse de livraison Prix Adresse de livraison Redondance ➔ Risque d’incohérence Si la valeur des deux attributs Adresse de livraison diffèrent ? Université de Mons 46 Cardinalités Les cardinalités précisent la participation de l'entité concernée à la relation. cardinalité minimale cardinalité maximale CLIENT 1, N Passer 1,1 Commande Numéro Numéro Nom Date Prénom … Adresse Code_postal Localité Entre l'entité CLIENT et la relation Passer, nous avons les cardinalités suivantes: * Cardinalité minimale = 1, : chaque client passe au moins une commande. * Cardinalité maximale= N, : chaque client peut passer plusieurs (N) commandes. Entre l'entité Commande et la relation Passer, nous retrouvons les cardinalités suivantes: * Cardinalité minimale = 1, donc chaque commande est passée par au moins un client. * Cardinalité maximale =1, chaque commande est passée au maximum par un seul client. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 47 Cardinalités : exemple N° 01 COMMANDE 1,N CONCERNER 0,N PRODUIT No Cde Quantité Cdée No Prod Date Cde Désignation Prix Unitaire Une occurrence de commande est concernée au moins 1 fois. Une occurrence de commande peut être concernée plusieurs (N) fois. Une occurrence de produit peut ne pas être concernée (0). Une occurrence de produit peut être concernée plusieurs (N) fois. CONTRAINTE Il n'est pas possible qu'une commande ne concerne aucun produit Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 48 Cardinalités : exemple N° 02 Employé Utiliser Ordinateur 0,N 1,N Numéro Numéro_PC Nom Type Prénom Configuration Adresse Code_postal Service Entre l'entité Employé et la relation Utiliser, nous avons: Cardinalité minimale = 0 Certains employés n'utilisent pas d'ordinateur Cardinalité maximale = N Entre l'entité Ordinateur et la relation Utiliser, nous avons: Cardinalité minimale = 1 Cardinalité maximale =N Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 49 Cardinalités : configurations possibles 0,1: une occurrence participe au moins 0 fois et au plus 1 fois à l’association 1,1: une occurrence participe exactement 1 fois à l’association 0,N: une occurrence peut ne pas participer ou participer plusieurs fois 1,N: une occurrence participe au moins 1 fois, voire plusieurs Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 50 PLAN Introduction I. Algèbre relationnelle & bases de données relationnelles II. Schémas de représentations a. Schémas externes (ESs) b. Schémas internes (IS) c. Schémas conceptuels (CS) III. Modèle relationnel a. Composants d’une base de données relationnelle b. Entités, relations et cardinalités c. Types de relations et associations Conclusion Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 51 Associations plurielles Université de Mons 52 Types de relations Une relation décrit un lien entre deux ou plusieurs entités. Chaque relation possède un nom, qui est généralement constitué par un verbe à l'infinitif. CLIENT Passer Commande Numéro Numéro Nom Date Relation binaire Prénom Quantité Adresse Code_postal Localité MCD CLIENT Commande Passer Relation ternaire Représentant EMPLOYE Relation réflexive CONJOINT N° Matricule (relation récursive) Université de Mons 53 Décomposition d’une association n-aire Passage d’un type-association n-aire (n>=2) vers des type-associations binaires : a. On remplace le type-association n-aire par un type-entité avec identifiant. b. On crée des type-associations binaire entre le nouveau type-entité et tous les type-entités de la collection de l’ancien type-association n-aire. c. La cardinalité de chacun des type-associations binaires créés est : - 1,1 du côté du type-entité créé (celui qui remplace le type-association n-aire) - 0,n ou 1,n du côté des type-entités de la collection de l’ancien type-association n-aire. Université de Mons 54 Détection d’erreur de modélisation par décomposition d’une association n-aire Ce modèle fait apparaître une erreur de conception qui était jusque là difficile à diagnostiquer : généralement, à un vol donné sont affectés plusieurs pilotes. Université de Mons 55 Attention Une base de données doit être créée par un cycle immuable : Modèle conceptuel => Modèle physique => implémentation Le passage du modèle conceptuel au modèle physique et à l'implémentation (script de création de la base, généralement en SQL) devrait être entièrement automatique. Le but du modèle physique n'étant là que pour visualiser l'imbrication de tables et faciliter l'écriture des requêtes par les développeurs. Bases de données non performantes : - impasse sur le modèle conceptuel - modification du modèle physique ou du script de création : perte de possibilité de revenir à un modèle conceptuel correct. Principales causes d’échecs de projets et de non maîtrise dans le temps des projets Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 56 Entité indépendante/dépendante CLIENT Disposer Carte_Membre 0,N 1,1 Numéro No_Carte Nom Type_Abonnement Prénom Date_création Adresse Code_postal Localité On dit que CLIENT est l'entité indépendante (cardinalité minimale = 0 ) par rapport à l'association Disposer, tandis que Carte_Membre est l'entité dépendante (cardinalité minimale = 1). Une occurrence d'un client peut très bien exister sans carte de membre, ! mais une carte de membre ne peut pas exister sans client. La cardinalité minimale indique quelle entité est indépendante(0) et quelle entité est dépendante(1). Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 57 Entité indépendante/dépendante Une relation ne peut pas être liée uniquement à des entités dépendantes qui ont une cardinalité maximale de 1. La modélisation suivante par exemple n'est pas correcte !!! CLIENT Carte_Membre Disposer Numéro No_Carte 1,1 1,1 Nom Type_Abonnement Prénom Date_création Adresse Code_postal Localité ! Dans ce cas, il faut réunir les propriétés des deux entités dans une seule. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 58 EXERCICE N° 01 : Coureur ? Un coureur provient d’un seul Pays. On peut représenter un seul pays Un pays peut être représenté par aucun ou plusieurs coureurs Un coureur appartient à une seule équipe Un coureur peut faire plusieurs étapes Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 59 1,1 : Un COUREUR Provient au min d’1 PAYS et au max d’1 PAYS. Un COUREUR Provient d’un et d’un seul PAYS. un plusieurs plusieurs 0,n : Un PAYS est représenté au min par 0 COUREUR et au max n. Un PAYS est représenté par aucun ou plusieurs COUREURS. plusieurs Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 60 Exercice N° 02 Laquelle des deux modélisations est correcte ? CLIENT Passer Commande CLIENT Passer Commande 1,N 1,1 0,N 1,1 Numéro Numéro Numéro Numéro Nom Date Nom Date Prénom … Prénom … Adresse Adresse Code_postal Code_postal … … Une commande est toujours passée par au moins un client. Une commande est également passée au maximum par un client. Une commande est donc toujours passée par un et un seul client. Un client passe au moins une commande et au maximum plusieurs (N) commandes. Cette modélisation ne tient pas compte des clients qui ne passent aucune commande. Un client est uniquement considéré comme tel s'il passe au moins une commande Un client peut passer aucune commande et au maximum plusieurs (N) commandes. Cette modélisation tient compte des clients qui ne passent aucune commande. Université de Mons Sidi Ahmed Mahmoudi Chapitre 03 : MCD 61 Exercice N° 03: Cardinalités? 1-N CLIENT 1-N APPARTIENT No SIGNE 0-N Nom 0-N 1-1 Adresse 1-1 CONTRAT No VEHICULE Type No Date Marque Modèle Année 0-N 1-N ACCIDENT Cylindrée CONCERNE No Date (Montant) Université de Mons Chapitre 03 : MCD 62 Exercice N° 04 Voici le résultat simplifié d'une analyse faite auprès d'une compagnie d'assurance qui désire informatiser la gestion des contrats auto. Un client peut assurer plusieurs voitures auprès de la compagnie. Chaque voiture est assurée par un seul contrat. Un contrat assure une seule voiture. En ce qui concerne un client, la compagnie désire connaître son nom, prénom, adresse complète, numéro de téléphone ainsi qu'un numéro de compte bancaire avec indication de la banque. Chaque contrat contient un numéro de contrat unique, la prime annuelle à payer, la date de paiement annuel. La voiture est caractérisée par sa marque, son modèle, son numéro d'immatriculation, sa valeur et sa date d'acquisition. Sidi Ahmed Mahmoudi Chapitre 03 : MCD 63 Autres exercices Exercice N° 05 Visites dans un centre médical Medicament Medecin Patient Marticul Code No_SS Nom Libelle Nom Mutuelle 0,N 0,N 1,N Donner Assister Prescrit Nb Prises 1,1 0,N Consultation 1,1 No_Cons Date 1. Un patient peut-il effectuer plusieurs visites? Oui 2. Un médecin peut-il recevoir plusieurs patients dans la même consultation? Non 3. Peut-on prescrire plusieurs médicaments dans une même consultation? Oui 4. Deux médecins différents peuvent-ils prescrire le même médicament? Oui Université de Mons 65 CLIENT Obtenir Exercice N° 06 " LabDB " Facture 1,N 1,1 No_Client No_Facture Nom Date Prénom Montant PARTIE 1 Adresse Code_postal LabDB SPRL Facture No. 0001 Localité 5, avenue SGBD La société "LabDB" 7000 FPMs Mons, le 15.02.2015 désire informatiser son Client système de facturation. Les factures devraient Nom : Nom_Client Prénom : Pre_Client se présenter de la façon Adresse : Serv. Info, 15 suivante: Code_postal : 7000 Localité : Mons Montant de la facture : 3400 € Créez un MCD, qui permet de modéliser correctement le système d'information nécessaire, sachant que: Un client peut bien sûr recevoir plusieurs factures, mais il est uniquement considéré comme tel à partir du moment ou il reçoit sa première facture. Une facture concerne un et un seul client. Sidi Ahmed Mahmoudi Chapitre 03 : MCD 66 Exercice 06_PARTIE 2 Le responsable de la facturation de la société désire rendre les factures plus informatives. Comme un client peut acheter plusieurs articles différents en même temps, la facture devrait indiquer pour chaque article le numéro , un libellé, le prix unitaire, la quantité vendue et le prix total pour ce type d'article. LabDB SPRL Facture No. 0002 Voici l'aspect que 5, avenue SGBD 7000 FPMs Mons, le 15.02.2015 la facture devrait avoir: Client Nom : Nom_Client Proposez un nouveau MCD qui Prénom : Pre_Client reflète ces modifi

Use Quizgecko on...
Browser
Browser