Formation au référentiel 1 STG (Sciences et technologie de la gestion) LE MODÈLE RELATIONNEL - LA BASE DE DONNÉES Stéphane Le Gars - Mars 2004
Les bons de commande sont obtenus à l’aide de cette base. LA BASE DE DONNÉES INFORMATISÉE La SARL « EXEMPLE » gère ses commandes à l’aide d’une base de données informatisée avec un logiciel de type SGBDR (système de gestion de base de données relationnel). Les bons de commande sont obtenus à l’aide de cette base. 4
LES TYPES DE DONNÉES En examinant le bon de commande issu de la base de données informatisée, on peut différencier deux types de données : - les données saisies par l’utilisateur Exemples : Numéro de commande, Nom du client, Désignation du produit, etc... - les données calculées : obtenues par traitement à partir des données saisies Exemple : Montant = Prix unitaire * Quantité 5
LA LISTE DES DONNÉES La liste des données nécessaires au traitement des commandes a été établie sans retenir les données calculées, car celles-ci peuvent être déterminées à tout moment à partir des données saisies. Numcom Datecom Numcli Nomcli Adresseruecli AdresseCPcli Adressevillecli Refprod Designprod PUprod Quantite Un nom différent est attribué à chacune des données pour éviter qu’un même nom identifie plusieurs d’entre elles (polysèmes). Exemple : « Numcom » et « Numcli » Les données doivent être détaillées pour permettre une interrogation plus précise de la base. Exemple : Trois données pour détailler l’adresse : « adresseruecli », « adresseCPcli » et « adressevillecli » Deux noms différents ne peuvent représenter la même donnée (synonymes). Exemple : « designprod » et « libelleprod » pour le nom des produits Le nom choisi doit être phonétiquement compréhensible pour permettre d’identifier facilement la donnée. Il doit éviter de comporter des espaces et certains symboles tel que °. Exemple : « numcom » pour n° de la commande 6
LES TABLES L’analyse de la liste des données saisies permet de mettre en évidence des ensembles homogènes. Exemples : - données concernant les clients - données concernant les produits Chacun de ces ensembles est représenté par une table. Exemples : - la table « client » - la table « produit » 7
DÉPENDANCE FONCTIONNELLE STRUCTURE D’UNE TABLE Une table se compose: - de colonnes où sont indiquées les différents attributs - de lignes où sont rangées les valeurs des différents attributs. L’ensemble des valeurs d’une ligne est appelé un enregistrement. DÉPENDANCE FONCTIONNELLE La connaissance d’une valeur de l’attribut clé primaire détermine de façon unique la connaissance des valeurs des autres attributs, on dit qu’il existe entre eux une dépendance fonctionnelle. Exemple : la connaissance du numéro de client nous permet de retrouver son nom et son adresse. Un attribut principal appelé clé primaire doit permettre d’identifier chaque enregistrement sans ambiguïté. Les valeurs de l’attribut clé primaire doivent donc obligatoirement être uniques. Pour la table client, « Numcli » répond le mieux à ce critère. La clé primaire est généralement située en première colonne. 8
CRÉATION D’UNE TABLE Lors de la création d’une table, la clé primaire et l’appartenance des données à un type doivent être obligatoirement définies. D’autres éléments peuvent être posés pour assurer le confort et la sécurité de la saisie. Contrainte de clé primaire : Une fois que la clé primaire sera désignée et le champ déclaré sans doublons, les saisies de valeurs identiques seront impossibles. Choix du type : Il s’agit de préciser quel type de valeurs sera stocké dans le champ. Il existe trois grands types (numérique, date, texte). Pour les champs de type texte, il est possible d’intervenir sur la taille du champ, de manière à optimiser la place occupée sur le support de stockage. Contrôle de la saisie : Pour faciliter la saisie, un masque, une valeur par défaut, peuvent être mis en place. Contrainte de domaine : Il est possible, pour un champ donné, de limiter les valeurs autorisées à la saisie. Celles-ci sont indiquées dans la case « Valide si », un message d’erreur peut y être associé. 9
DÉPENDANCE FONCTIONNELLE ENTRE DEUX TABLES La connaissance d’un numéro de commande nous permet de retrouver de façon unique un numéro de client. Dépendance fonctionnelle Il existe donc une dépendance fonctionnelle entre deux tables (commande et client). Pour matérialiser ce lien, une colonne (numcli) sera ajoutée à la table source de la dépendance fonctionnelle. Celle-ci sera appelée clé étrangère. Attribut commun aux deux tables matérialisant la dépendance fonctionnelle. 10
CONTRAINTES D’INTÉGRITÉ RÉFÉRENTIELLE Il est recommandé de poser des contraintes d’intégrité référentielle sur le lien entre clé primaire et clé étrangère unissant les deux tables. Examinons les contraintes posées entre les tables « client » et « commande » de la société « Exemple ». Interdiction de la saisie de la commande d’un client inconnu de la base : Un numéro de client ne pourra pas être saisi en tant que clé étrangère dans la table commande, s’il n ’existe pas en tant que clé primaire dans la table client. Possibilité de mise à jour du numéro de client : Un numéro de client pourra être modifié dans la table contenant la clé primaire et se répercuter dans la table contenant la clé étrangère. Interdiction de la suppression d’un client lié par des commandes : Un enregistrement de la table contenant la clé primaire ne pourra pas être supprimé s’il existe des enregistrements correspondants dans la table contenant la clé étrangère. 11
DÉPENDANCE FONCTIONNELLE COMPOSÉE La connaissance du numéro de commande et de la référence du produit nous permet de retrouver de façon unique la quantité commandée. Dépendance fonctionnelle composée Il existe donc une dépendance fonctionnelle multiple ou composée à partir des tables « PRODUIT » et « COMMANDE ». Pour matérialiser ce double lien, une table supplémentaire « COMPRENDRE » sera créée. Celle-ci sera composée d’une clé primaire concaténée « Numcom+Refprod » et de l’attribut « quantite ». 12
LE MODÈLE PHYSIQUE L’ensemble des tables et des liens créés par la présence d’attributs communs à plusieurs tables (clés primaires et clés étrangères) forme le modèle physique. Aucune table ne peut rester isolée. Le modèle physique peut être visionné dans le logiciel Access à l ’aide du (menu Outils, commande Relations). 13
PRODUIT (Refprod, Designprod, PUprod ) LE MODÈLE RELATIONNEL Le modèle physique est issu d’une réflexion préalable structurée appelée modèle relationnel. Le modèle relationnel est une présentation logique et rationnelle des données permettant de les rendre exploitables par un logiciel de type SGBDR. Dans ce modèle, les tables sont appelées des relations et obéissent aux règles de présentation suivantes : Nom de la relation en majuscules suivi entre parenthèses des différents attributs qui la composent. L’attribut clé primaire indiqué en premier est souligné. Si la relation comprend un attribut clé étrangère, celui-ci sera placé à la fin et précédé du signe #. Dans le cas d’une clé primaire concaténée, l’ensemble des attributs formant la clé est souligné. PRODUIT (Refprod, Designprod, PUprod ) CLIENT (Numcli, Nomcli, Adresseruecli , AdresseCPcli, Adressevillecli) COMMANDE (Numcom, Datecom, #Numcli) COMPRENDRE (Numcom, Refprod, Quantite) 14
La projection consiste en un découpage vertical. LES OPÉRATEURS RELATIONNELS : LA PROJECTION Une requête est une interrogation de la base de données portant sur le contenu d’une ou plusieurs relations. Elle met en jeu des opérateurs (projection, restriction, jointure). Requête1 : On souhaite obtenir les noms des clients et ceux des villes où ils sont domiciliées. Pour cela, nous allons utiliser l’opérateur de projection. La projection consiste en un découpage vertical. 15
LES OPÉRATEURS RELATIONNELS : LA RESTRICTION Requête2 : On souhaite obtenir les noms des clients domiciliés à Paris. Nous conserverons le nom de la ville dans l’affichage. Pour cela, nous allons utiliser les opérateurs de projection et de restriction. La restriction consiste en un découpage horizontal. La projection consiste en un découpage vertical. 16
LES OPÉRATEURS RELATIONNELS : LA JOINTURE Requête3 : On souhaite obtenir les dates des commandes passées par les clients domiciliés à Paris Pour cela, nous allons utiliser les opérateurs de projection, de restriction et de jointure. La jointure permet de lier deux tables ayant un attribut commun. La restriction consiste en un découpage horizontal. La projection consiste en un découpage vertical. 17
SELECT liste des champs à afficher FROM liste des tables utilisées LE LANGAGE DE REQUÊTES SQL Le requêteur graphique est un langage visuel propre à chaque logiciel, ses possibilités sont limitées lors de cas complexes. Les logiciels SGBDR intègrent également un langage textuel de programmation de requêtes : le SQL (Structured Query language) . Celui-ci est universel, normalisé et capable de traiter toutes les difficultés. Les requêtes en SQL ont généralement la structure suivante: L’instruction SELECT permet de lister les champs que l’on souhaite obtenir, il correspond à l ’opérateur de PROJECTION. SELECT liste des champs à afficher FROM liste des tables utilisées WHERE champ et critère de condition AND champ commun aux tables utilisées ORDER BY champ à trier ASC ou DESC L’instruction FROM permet de lister les tables utiles à la requête. Les instructions WHERE et AND sont liées. Elles permettent d’introduire : - les critères de conditions correspondant à l ’opérateur de RESTRICTION. - les champs communs aux tables utilisées correspondant à l’opérateur de JOINTURE. L’instruction ORDER BY permet de demander un tri sur un champ (ASC pour croissant et DESC pour décroissant). 22
LE RESPECT DE LA SYNTAXE SQL Pour écrire une requêtes en SQL, sous Microsoft Access, le respect d’une syntaxe est nécessaire, notamment en matière de ponctuation. Les noms de champs et de tables sont séparés par des virgules. Les requêtes se terminent par un point-virgule sous access. Celui-ci n’est pas obligatoire. Les critères sont placés entre guillemets pour un champ texte et entre # pour un champ date. Aucune ponctuation n’est nécessaire pour un champ numérique. 23
Lorsque qu ’un champ est commun à plusieurs tables, le nom de la table suivi d’un point doit obligatoirement précéder le nom du champ. 24
Base de données « commandes » LES DROITS SUR LA BASE DE DONNÉES Pour éviter les redondances, faciliter les mises à jour et les sauvegardes, la base de données d’une entreprise est unique. Dans le cadre d’une configuration réseau, elle est implantée sur un serveur et accessible des stations clients. SERVEUR Base de données « commandes » En fonction du type de poste occupé, les employés auront une vue restreinte de la base de données, et des droits leur seront attribués par l’administrateur de la base. Ces restrictions permettent de garantir l’intégrité et la sécurité de la base. CONNEXION REPRESENTANT CONNEXION SECRETAIRE Droits appliqués dans la société « Exemple » : Lorsqu’un représentant se connectera à la base, il verra l’ensemble des tables, mais n’aura que les droits suivants : - Création, Interrogation, et Mise à jour sur les tables « client », « commande » et « comprendre ». - Interrogation sur la table « produit ». - Aucun droit de Suppression. Lorsqu’un secrétaire se connectera à la base, il ne verra que la table « client » avec un droit d’Interrogation et de Mise à jour. Aucun droit de Création et de Suppression. 25