Systèmes d’information et Bases de données Préparée et enseignée par Ouafae Baida Université Abdelamalek Essaâdi Faculté des Sciences et Techniques de Tanger Département Génie Informatique
Objectifs Modéliser un problème issu d’une situation réelle afin d’en déduire une structure de base de données Donner les savoir-faire nécessaires pour réussir à gérer et manipuler les bases de données
Systèmes d’information Le système d'information est un ensemble organisé de ressources qui permet de collecter, stocker, traiter et distribuer de l'information souvent grâce à un ordinateur
Base de données Une Base De Données (BDD) est un ensemble structuré de données enregistrées sur des supports informatique pour satisfaire simultanément plusieurs utilisateurs de façon sélective.
Système de gestion de bases de données (SGBD) Un Système de Gestion de Bases de données (SGBD) Un ensemble de logiciels systèmes permettant 1.Insérer 2.Modifier 3.Chercher 4.Supprimer 5.Partager 6.Protéger Efficacement, des données spécifiques dans une grande masse d’information.
Objectifs des SGBD Exploitation de gros volumes de données avec une structuration des données et méthodes d’accès efficaces. Exploitation par différents types d’utilisateurs avec des différents outils d’accès ou interfaces-utilisateurs. Gestion de données sensibles avec sécurité et fiabilité maximal.
Bonne représentation des données Etre capable de représenter individuellement les élèves les professeurs, les matières, …… de manière à ce qu'une action sur l'un n'entraîne pas systématiquement une action sur l'autre. Définir une méthode d'identification qui permette d'assurer que la même information est représentée une seule fois. Préserver le lien entre les élèves les professeurs, les matières, …… mais sans introduire de redondance.
Exemple : FST de Tanger la FST de Tanger veut developper une ipage web pour permettre aux étudiants de
La conception d'un système d'information Méthodologie MERISE
Définition MERISE est une méthode de conception, de développement et de réalisation de projets informatiques. Le but de cette méthode est d'arriver à concevoir un système d'information. La méthode MERISE est basée sur la séparation des données et des traitements à effectuer en plusieurs modèles conceptuels, logique et physiques.
Schéma de la méthodologie MERISE définit les flux d'informations à prendre compte les règles et les contraintes à prendre en compte représente un choix logiciel pour le système d'information. décrivant les contraintes dues à l'environnement
Schéma de la méthodologie MERISE Modèle conceptuel de communication Modèle conceptuel de données Modèle conceptuel logique Modèle conceptuel physique
Le Modèle Conceptuel des Communications (MCC) Diagramme représentant les Informations transmises et récupérées par le domaine de gestion. Les modèles de flux représentent ce qui doit être étudier dans le cadre du projet à partir de l’analyse des flux échangés. Le Modèle des flux de données permet de déterminer le système à modéliser (champ de l’étude) en indiquant ses frontières et en le décomposant en sous systèmes.
Le Modèle Conceptuel des Communications (MCC) Acteurs L’acteur représente une unité active intervenant dans le fonctionnement d’un système opérant. Un acteur peut : être stimulé par des flux o transformer des flux renvoyer des flux. Un acteur «fait quelque chose», il est actif
Le Modèle Conceptuel des Communications (MCC) Un acteur peut modéliser: Un partenaire extérieur à l’organisation: client, fournisseur,... Un domaine d’activité de l’organisation précédemment identifié: la comptabilité, la gestion du personnel,... Un ensemble d’activités: liquidation, contrôle,... Un élément structurel de l‘organisation: service, unité géographique, unité fonctionnelle.
Le Modèle Conceptuel des Communications (MCC) On distingue des acteurs internes ou externes Un acteur externe représente tout élément extérieur à l’organisation et échangeant des flux avec le domaine d’étude Un acteur interne peut être une personne physique ou morale appartenant au système, capable d’échanger des informations avec les autres acteurs ou partenaires.
Le Modèle Conceptuel des Communications (MCC) Flux Le flux représente un échange entre deux acteurs. Un flux a toujours son origine ou sa destination dans le domaine d’étude. Pour chaque flux, on indiquera: Son émetteur Son récepteur Le lot d’informations transmis (le message) Un flux est un passage d’objets d’un intervenant (l’émetteur) à un autre. L’objet est émis par un intervenant (l’émetteur) et transmis à un autre (le récepteur).
Exemple
Exemple : Gestion de commandes Les commandes des clients sont saisies au niveau des comptoirs d'accueils régionaux et sont transmises chaque soir au siège central de la société. Tous les matins, le service magasin du siège traite les commandes reçues la veille : il édite pour chaque commande des bons de réquisition. Ces bons sont transmis aux magasiniers qui sortent les articles des stocks, pointent manuellement les bons, puis apportent les articles au service emballage, afin qu'ils soient conditionnés le jour même. Dès le lendemain, le service emballage expédie les colis aux clients. En fin de semaine, le centre de traitement informatique du siège édite les factures qui correspondent aux commandes de la semaine.
Solution
Le Modèle Conceptuel de Traitement (MCT) Le modèle conceptuel des traitements permet de traiter la dynamique du système d'information, c'est-à-dire les opérations qui sont réalisées en fonction d'événements.
Les éléments de MCT
Etapes 1.Réaliser le graphe des flux (représentation des acteurs, événements et résultats externes 2.Pour chaque événement, recenser les opérations déclenchées, et/ou les événements internes produits. 3.Regrouper dans une même opération tous les traitements qui ont les mêmes déclencheurs dans une unité de temps, avec la même synchronisation
Représentation
Exemple MCT
Exercice Lorsqu’un client apporte une montre à réparer, le bijoutier évalue le montant des travaux. Si il estime qu’il atteindre la moitié de prix d’achat le bijoutier téléphone le client pour lui demande son accord. Quand la réparation est effectuée, le bijoutier Présente une facture qui place dans une enveloppe avec la montre réparé ainsi quand le client veut le bijoutier lui remis dans apparaît que le client est réglé ou qu’il présente la carte de garantie au bijoutier. Travail demandé : Etablir le M.C.T :
Le Modèle conceptuel des données (MCD) Définition Une représentation claire des données du SI en définissant les dépendances fonctionnelles de ces données entre elles. Objectif : représenter de façon structurée les données qui seront utilisées par le système d'information. Démarche Recenser et donner un nom à l’ensemble des données du domaine étudié. Etudier les relations existantes entre ces données (les dépendances fonctionnelles).
Les éléments de MCD MCD EntitépropriétéIdentifiantRelationCardinalité
Définition Une entité est une représentation d'un objet (physique ou abstraite) dans un Système d’information. La représentation d’une entité s’appelle une occurrence de l’entité. Chaque entité regroupe un ensemble de propriétés. Formalise Entité Nom de l’entité
Les propriétés : sont les informations de base qui décrivent les éléments (les entités) d’un Système d’information. Exemple: o Nom Etudiant o Prénom Etudiant o CIN o Adresse client sont des propriétés qui décrivent l’entité Etudiant Propriétés
Exemple Etudiant o Nom Etudiant o Prénom Etudiant o CIN o Adresse client
Exemples d’occurrences d’une entité: Concepts utilisés : Entité Etudiant o NomEtudiant: Alaoui o PrénomEtudiant: Ahmed o CIN: K o Adresse client: A1 Etudiant o NomEtudiant: saber o Prénom Etudiant : SARA o CIN : L o Adresse client: A2
Question : Dans les occurrences précédentes de l’entité etudiant. Est-ce qu’il est possible d’avoir 2 occurrences avec le même nom et prénom? c’est-à-dire, avoir 2 etudiantsdifférents mais avec le même nom et prénom ! Réponse : oui !!!
Définition C’est une propriété qui permet de connaître de façon unique et sûre les occurrences d’une entité donnée. Exemple d’une entité avec identifiant : Identifiant d’une entité Etudiant o CIN o NomEtudiant o Prénom Etudiant o Adresse client
Exemple d’occurrences avec identifiant choisis: Identifiant d’une entité
Exemple On désire automatiser les réservations des places disponibles dans les théâtres de la ville de Tanger. pour cela on dispose les informations suivantes : Nom de spectacle Durée par heur du spectacle Nom d’auteur Nom du théâtre Nombre de places de théâtre Adresse de théâtre Date début d’un spectacle dans un théâtre Date fin d’un spectacle dans un théâtre Nom de la personne ayant effectuée la réservation Numéro de CIN de la personne ayant effectuée la réservation Adresse de la personne ayant effectuée la réservation Date de réservation pour un spectacle dans un théâtre Nombre de places réservées par une personne dans un théâtre.
Une relation ou association est la liaison qui lie entre les entités d’un système d’information. Exemple: Un client peut commander des produits. o Les entités de notre SI sont : Client et Produit o La relation : Commander Relation ou association
Exemple Produit Client Commandé par quantité N° produit Référence ………… ……. N° client Nom Adresse ……….. propriétés Relation ou association 1,n 0, n Entités Cardinalités minimales Relation ou association Cardinalités maximal
Cardinalité d’une relation Une cardinalité est le nombre de fois où l’occurrence d’une entité participe aux occurrence de la relation.
Dans l’exemple précédent, nous devons poser les questions suivantes : 1.Combien de fois au minimum un client peut commander un produit ? 2.Combien de fois au maximum un client peut commander un produit ? 3.Un produit peut-être acheté au minimum par combien de clients ? 4.Un produit peut-être acheté au maximum par combien de clients ? Cardinalité d’une relation
Règles de base pour la construction d’un MCD Règles concernant les propriétés 1) Une propriété ne peut pas apparaître plusieurs fois dans un MCD Exemple : Une propriété Date ne peut pas apparaître simultanément dans une entité COMMANDE et une entité FACTURE Si c’était le cas, il faudrait remplacer Date par Date_commande et Date_facture par exemple
Règles de base pour la construction d’un MCD Règles concernant les entités Toute entité doit comporter un identifiant qui permet de distinguer entre elles toutes les occurrences d’une même entité. L’identifiant est placé en tête des propriétés et il est souligné.
Règles de base pour la construction d’un MCD Règles concernant les associations L’identifiant d’une association est implicitement formé par la concaténation des identifiants des entités liées. L’identifiant d’une association ne se représente pas au niveau du MCD. Une association peut avoir des propriétés, mais ce n’est pas obligatoire
Exemple On désire automatiser les réservations des places disponibles dans les théâtres de la ville de Tanger. pour cela on dispose les informations suivantes : Nom de spectacle Durée par heur du spectacle Nom d’auteur Nom du théâtre Nombre de places de théâtre Adresse de théâtre Date début d’un spectacle dans un théâtre Date fin d’un spectacle dans un théâtre Nom de la personne ayant effectuée la réservation Numéro de CIN de la personne ayant effectuée la réservation Adresse de la personne ayant effectuée la réservation Date de réservation pour un spectacle dans un théâtre Nombre de places réservées par une personne dans un théâtre. R1. un spectacle peut être joué dans plusieurs théâtres mais à des dates différentes R2. un spectacle n’est joué dans une seule période dans un théâtre.
Etapes de la construction d’un MCD 1.Détermination du dictionnaire de données 2.Identification des règles de gestion du système d’information a automatiser 3.Etablissement des dépendances fonctionnelles 4.Construction du modèle conceptuel de données
Dictionnaire des données Le dictionnaire de données représente l’ensemble des données qui circulent dans le système d’information à automatiser.
Dictionnaire des données Nom de la donnée Format : alphabétique, alphanumérique, numérique, date, logique Longueur : approximative ou exacte Type : on met une X pour préciser est ce que c’est une données élémentaire ou calculée Règle de calcul : la formule de calcul pour une donnée de type calculée Règle de gestion : on indique (si nécessaire) la règle de gestion relative à la donnée
Dictionnaire des données : exemple Exemple
Règles de gestion Les règles de gestion est l’ensembles des informations qui vont nous aider à modéliser et concevoir notre SI et que nous venons de déduire d’après : ◦ Les interviews avec les différents acteurs du projet ◦ Analyse de l’existant ◦ L’étude de tous les documents(les factures, les commandes, les bons de livraison, notes …).
Dépendances fonctionnelles Définition Une donnée (B) est en dépendance fonctionnelle d’une donnée (A), quand la connaissance d ’une valeur de la donnée (A) permet d ’identifier une et une seule valeur de la donné (B) Représentation A B
Dépendances fonctionnelles Exemple (Source) (But) Cod_Art Nom_Art Cod_Cli Nom_Cli, Pre_Cli
Dépendances fonctionnelles complètes Définition Une DFC est une DF dont la source est composée de plusieurs attributs et aucun sous ensemble d’attributs de la source n’est en dépendance avec le but Notation : (Attribut,.., Attribut) Attribut
Dépendances fonctionnelles complètes Exemples (Num_Cmd, Nom_Cli) Pre_Cli N’est pas une DFC (Num_Cmd, Cod_Art) Qte_Cmd Est une DFC
Notion de la Relation Une relation est un ensemble des attributs (données) caractérisée par un nom. La clé d’une relation est la source, d’une Dépendance Fonctionnelle, de tous les attributs de la relation.
Normalisation de dictionnaire de données Première forme normale Deuxième forme normale Troisième forme normale Forme normale de BOYCE/CODD
Normalisation de dictionnaire de données Première forme normale Une relation est en 1.F.N: Si elle possède une clé. Tous les attributs sont atomiques Exemples (Nom_cli, Pre_Cli) : n’est pas en 1FN (Num_Cmd, Date_Cmd, Total) : est p en 1FN
Normalisation de dictionnaire de données Deuxième forme normale Une relation est en 2.F.N: En 1.F.N Toute colonne qui n ’appartient pas à la clé n’est pas en dépendance fonctionnellement avec un sous ensemble strict de cette clé
Normalisation de dictionnaire de données Deuxième forme normale Exemples (Cod_cli, Num_Com, Date_Com) Est en 1FN mais, n’est pas en 2FN ??? Num_Com Date_Com
Normalisation de dictionnaire de données Troisième forme normale Une relation est en 3.F.N: En 2.F.N Toutes les dépendances fonctionnelles issus de la clé sont directes (Pas de transitivité de DF).
Normalisation de dictionnaire de données Troisième forme normale Exemples (Num_Com, Cod_cli, Date_Com, Nom_cli) Est en 2FN mais, n’est pas en 3FN ??? Num_Com Cod_cli Nom_cli
Passage des DF vers le MCD Règle 1: Toute DF sera transformée à une entité dont : L’identifiant est la source de la DF Les propriétés sont les buts de la DF Exemple : A B1, B2, B3 Nom entité A* B1 B2 B3
Passage des DF vers le MCD Règle 2: Dans le cas où le but d’une DF contient une propriété représente la source d’une autre DF alors les 2 DF seront liées par une relation
Passage des DF vers le MCD Exemple : A1 B1, B2, B3, A2 A2 C1, C2, C3 Nom entité A1* B1 B2 B3 Nom entité A2* C1 C2 C3 Nom Relation
Passage des DF vers le MCD Règle 3: Dans le cas où la source d’une DF est composée de deux propriétés A1 et A2. Alors cette DF sera transformée à une relation entre l’entité qui contient les propriétés de la 2 ème DF et l’entité contenant les propriétés de la 3 ème DF
Passage des DF vers le MCD Exemple 1: A1 + A2 C1, C2, C3 A1 B1, B2 A2 D1, D2 Nom entité A1* B1 B2 Nom entité A2* D1 D2 Nom Relation C1 C2 C3
Passage des DF vers le MCD Exemple 2: Si l’une des propriétés A1 ou A2 ne sont pas des sources d’une DF on doit crée une entité contenant la seule propriété A1 ou A2 A1 + A2 C1, C2, C3 A1 B1, B2 Nom entité A1* B1 B2 Nom entité A2* Nom Relation C1 C2 C3
Modèle Logique des données Le Modèle Logique des Données (MLD) définit l’organisation logique des données à partir du Modèle Conceptuel des Données (MCD) sous forme des tables ou des relations
Le MCD ne peut pas être implanté dans une base de données sans modification. Il est obligatoire de transformer ce modèle. On dit qu’on effectue un passage du modèle conceptuel de données vers le modèle logique de données. Le MLD pourra être implanté dans une base de données relationnelle
Règles de passage de MCD à MLD Règle numéro 1 a)Une entité du MCD devient une relation, c’est à dire une table. Dans un SGBD de type relationnel, une table est une structure tabulaire dont chaque ligne correspond aux données d'un objet enregistré et où chaque colonne correspond à une propriété de cet objet. Une table contiendra donc un ensemble d’enregistrements. Une ligne correspond à un enregistrement. Une colonne correspond à un champ. La valeur prise par un champ pour un enregistrement donné est située à l’intersection ligne-colonne correspondant à enregistrement-champ. Il n’y a pas de limite théorique au nombre d’enregistrements que peut contenir une table. Par contre, la limite est lié à l’espace de stockage.
Règles de passage de MCD à MLD Règle numéro 1 b) Son identifiant devient la clé primaire de la relation. La clé primaire permet d’identifier de façon unique un enregistrement dans la table. Les valeurs de la clé primaire sont donc uniques. Les valeurs de la clé primaire sont obligatoirement non nulles. Dans la plupart des SGBDR, le fait de définir une clé primaire donne lieu automatiquement à la création d’un index. c) Les autres propriétés deviennent les attributs de la relation. Exemple
Règles de passage de MCD à MLD Règle numéro 2 Une association de type 1:N (c’est à dire qui a les cardinalités maximales positionnées à « 1 » d’une côté de l’association et à « n » de l’autre côté) se traduit par la création d’une clé étrangère dans la relation correspondante à l’entité côté « 1 ». Cette clé étrangère référence la clé primaire de la relation correspondant à l’autre entité. Exemple
Règles de passage de MCD à MLD Règle numéro 3 Une association de type N :N (c’est à dire qui a les cardinalités maximales positionnées à « N » des 2 côtés de l'association) se traduit par la création d’une relation dont la clé primaire est composée des clés étrangères référençant les relations correspondant aux entités liées par l’association. Les éventuelles propriétés de l’association deviennent des attributs de la relation.. Exemple
MLD Langage de communicatio n SQL SGBD
SQL Le SQL (Structured Query Language) est un langage permettant de communiquer avec une base de données. Ce langage informatique est notamment très utilisé par les développeurs web pour communiquer avec les données d’un site web. SQL est un langage qui permet de lire, insérer, modifier et supprimer des données dans une base.
SQL & DATABASE La création d’une base de données en SQL est possible en ligne de commande. Même si les systèmes de gestion de base de données (SGBD) sont souvent utilisés pour créer une base, il convient de connaître la commande à utiliser, qui est très simple. Syntaxe CREATE DATABASE ma_base CREATE DATABASE IF NOT EXISTS ma_base L’option IF NOT EXISTS permet juste de ne pas retourner d’erreur si une base du même nom existe déjà. La base de données ne sera pas écrasée DROP DATABASE ma_base. supprimer toutes les tables et toutes les données de cette base.
SQL & TABLE Syntaxe CREATE TABLE nom_de_la_table( colonne1 type_donnees, colonne2 type_donnees, colonne3 type_donnees, colonne4 type_donnees ) type_donnees : (INT, DATE, TEXT …). NOT NULL : empêche d’enregistrer une valeur nulle pour une colonne. DEFAULT : attribuer une valeur par défaut si aucune données n’est indiquée pour cette colonne lors de l’ajout d’une ligne dans la table. PRIMARY KEY : indiquer si cette colonne est considérée comme clé primaire pour un index FOREIGN KEY: indiquer si cette colonne est considérée comme clé étrangère pour un index
SQL & TABLE Exemple CREATE TABLE utilisateur ( id INT PRIMARY KEY NOT NULL, nom VARCHAR(100), prenom VARCHAR(100), VARCHAR(255), date_naissance DATE, pays VARCHAR(255), ville VARCHAR(255), code_postal VARCHAR(5), nombre_achat INT )
SQL & TABLE La commande ALTER TABLE en SQL permet de modifier une table existante. Il est ainsi possible d’ajouter une colonne, d’en supprimer une ou de modifier une colonne existante, par exemple pour changer le type. Syntaxe Ajouter une colonne ALTER TABLE nom_table ADD nom_colonne type_donnees Supprimer une colonne ALTER TABLE nom_table DROP nom_colonne Modifier une colonne ALTER TABLE nom_table MODIFY nom_colonne type_donnee Renommer une colonne ALTER TABLE nom_table CHANGE colonne_ancien_nom colonne_nouveau_nom type_donnees Supprimer une table DROP TABLE nom_table
SQL & TABLE INSERT INTO : insérer des enregistrements UPDATE : mettre à jour les données des enregistrements DELETE FROM : supprimer des enregistrements SYNTAXE INSERT INTO nom-Table VALUES ("Valeur1","valeur2"); UPDATE nom-Table SET colonne2="valeur1", WHERE colonne 1="valeur"; DELETE FROM nom-Table WHERE colonne1=“valeur1"; EXEMPLE INSERT INTO Personnes VALUES ("Machin","Pierre"); INSERT INTO Personnes (Nom) VALUES ("Truc"); UPDATE Personnes SET Prénom="Henri" WHERE Nom="Truc";
SQL & SELECT L’utilisation la plus courante de SQL consiste à lire des données issues de la base de données. Cela s’effectue grâce à la commande SELECT, qui retourne des enregistrements dans un tableau de résultat. Cette commande peut sélectionner une ou plusieurs colonnes d’une table. Syntaxe SELECT nom_du_champ FROM nom_du_tableau Exemple SELECT ville FROM client Afficher les villes de tous les clients SELECT nom, prenom FROM client Afficher les noms et les prenoms de tous les clients SELECT * FROM client Afficher toutes les informations des clients
SELECT & DISTINCT Pour éviter des redondances dans les résultats il faut simplement ajouter DISTINCT après le mot SELECT. Syntaxe SELECT DISTINCT ma_colonne FROM nom_du_tableau EXEMPL SELECT DISTINCT prenom FROM client Afficher les prénoms des clients sans doublans
SELECT & WHERE La commande WHERE dans une requête SQL permet d’extraire les lignes d’une base de données qui respectent une condition. Cela permet d’obtenir uniquement les informations désirées. SYNTHAXE SELECT nom_colonnes FROM nom_table WHERE condition EXEMPLE SELECT * FROM client WHERE ville = 'paris'
SELECT & GROUPED BY La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et utiliser une fonction de totaux sur un groupe de résultat. Sur une table qui contient toutes les ventes d’un magasin, il est par exemple possible de liste regrouper les ventes par clients identiques et d’obtenir le coût total des achats pour chaque client SYNTAXE SELECT colonne1, fonction(colonne2) FROM table GROUP BY colonne1 EXEMPLE SELECT client, SUM(tarif) FROM achat GROUP BY client
SQL & fonctions de statistiques AVG() pour calculer la moyenne d’un set de valeur. Permet de connaître le prix du panier moyen pour de chaque client COUNT() pour compter le nombre de lignes concernées. Permet de savoir combien d’achats a été effectué par chaque client MAX() pour récupérer la plus haute valeur. Pratique pour savoir l’achat le plus cher MIN() pour récupérer la plus petite valeur. Utile par exemple pour connaître la date du premier achat d’un client SUM() pour calculer la somme de plusieurs lignes. Permet par exemple de connaître le total de tous les achats d’un client
Exemple Soit la base relationnelle de données suivante U(NumU, NomU, VilleU) P(NumP, NomP, Couleur, Poids) F(NumF, NomF, Statut, VilleF) PUF(NumP, NumU, NumF, Quantité) U : une usine est d’écrite par son numéro NumU, son nom,NomU et la ville VilleU où elle est située P : un produit est décrit par son numéro NumP, son nom NomP, sa couleur et son poids F : un fournisseur est décrit par son numéro NumP, son nom NomF, son statut (sous-traitant, client...) et la ville VilleF où il est domicilié PUF : le produit de numéro NumP a été délivré à l’usine de numéro NumU par le fournisseur de numéro NumF dans une quantité donnée
Questions Exprimez en SQL 1.Créer cette base de données 2.Ajouter un nouveau fournisseur avec les attributs de votre choix 3.Supprimer tous les produits de couleur noire et de numéros compris entre 100 et Changer la ville du fournisseur 3 par Toulouse 5.Donnez le numéro, le nom, la ville de toutes les usines 6.Donnez le numéro, le nom, la ville de toutes les usines de Paris 7.Donnez les numéros des fournisseurs qui approvisionnent l’usine de numéro 2 en produit de numéro Donnez les noms et les couleurs des produits livrés par le fournisseur de numéro 2 9.Donnez les numéros des fournisseurs qui approvisionnent l’usine de numéro 2 en un produit rouge 10.Donnez les noms des fournisseurs qui approvisionnent une usine de Paris ou de Créteil en produit rouge 11.Donnez les numéros des produits livrés à une usine par une fournisseur de la même ville