INTRODUCTION : Données structurées et accès simplifié



Documents pareils
1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Chapitre 1 : Introduction aux bases de données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Les bases de données

Le langage SQL Rappels

Cours Base de données relationnelles. M. Boughanem, IUP STRI

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de Données. Plan

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

1 Introduction et installation

SQL Historique

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Présentation du module Base de données spatio-temporelles

Bases de Données relationnelles et leurs systèmes de Gestion

Le Langage SQL version Oracle

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Dossier I Découverte de Base d Open Office

Business & High Technology

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Bases de données relationnelles

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Information utiles. webpage : Google+ : digiusto/

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Le Langage De Description De Données(LDD)

16H Cours / 18H TD / 20H TP

Utiliser Access ou Excel pour gérer vos données

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Entrepôt de données 1. Introduction

Introduction au Système de Gestion de Base de Données et aux Base de Données

MODE OPERATOIRE OPENOFFICE BASE

BUSINESS INTELLIGENCE

Comprendre Merise et la modélisation des données

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Introduction aux Bases de Données

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Cours Bases de données

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

et les Systèmes Multidimensionnels

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Chapitre 10. Architectures des systèmes de gestion de bases de données

SOMMAIRE. Travailler avec les requêtes... 3

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de données avancées Introduction

Du 10 Fév. au 14 Mars 2014

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

LE MODELE CONCEPTUEL DE DONNEES

Mise en œuvre du PGI dans les enseignements tertiaires

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

1/ Présentation de SQL Server :

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Bases de Données Avancées

TP Bases de données réparties

Notes de cours : bases de données distribuées et repliquées

Business Intelligence avec SQL Server 2012

Les bases de données Page 1 / 8

Vincent Augusto

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Bases de données élémentaires Maude Manouvrier

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

UE 8 Systèmes d information de gestion Le programme

Communiqué de Lancement

AGRÉGATION «ÉCONOMIE ET GESTION»

Méthodologie de conceptualisation BI

Business & High Technology

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Langage SQL : créer et interroger une base

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Bases de données Cours 1 : Généralités sur les bases de données

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Bases de données Outils de gestion

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

Le modèle de données

Le langage SQL (première partie) c Olivier Caron

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

et Groupe Eyrolles, 2006, ISBN :

Bases de données cours 1

Bases de données et sites WEB

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

LES FICHES Domaines. Domaine D1. Travailler dans un environnement numérique

Cours: Administration d'une Base de Données

MySQL / SQL EXEMPLES

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Mercredi 15 Janvier 2014

Les Entrepôts de Données

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Transcription:

INTRODUCTION : Données structurées et accès simplifié À l'origine de l'informatique, le stockage d'information se faisait sur cartes perforées. Ces supports pauvres ne permettaient pas de définir la structuration et les relations existant entre les objets représentés. Puis sont venus les supports magnétiques et les fichiers. On pouvait alors stocker une information structurée et, grâce au langage COBOL en particulier, automatiser un certain nombre de tâches par des commandes évoluées (tris, enregistrement de données structurées, etc). Cependant, la plupart du travail d'accès et de parcours restait à la charge du programmeur. Les bases de données sont nées du besoin de rendre accessibles des informations en grande quantité structurées et liées les unes aux autres, à des utilisateurs non spécialistes, grâce à un langage qui ne demande pas de connaître le mode d'implantation (fichiers, nature des enregistrements, lieu de stockage, etc). Toutes les fonctions de gestion du stockage, de l'accès Fichiers aux informations, d'indexation des données et de gestion de la sécurité (verrous, droits d'accès, etc) sont prises en charge par un logiciel spécifique : le système de gestion de bases de données (SGBD). L'utilisateur interroge ces fonctions à travers un langage simple de requêtes qui ne nécessite que la connaissance de l'implantation des tables : le langage Structured Query Language (SQL) est normalisé, quel que soit le SGBD, il a la même syntaxe. I QU'EST CE QU'UNE BASE DE DONNEES? Il y a plusieurs approches pour définir ce qu'est une base de données, selon le SGBD qui la gère : pour un SGBD micro (ACCESS, Approach, Open Office, Filemaker, 4D, etc) on peut voir la base comme l'ensemble des tables, requêtes, formulaires et états gérant un domaine d'activité de l'entreprise (gestion commerciale, gestion comptable, gestion de produits, gestion des ressources humaines, etc) ; pour un SGBD de grande ampleur (ORACLE, DB2, SQL Server, etc), la base de données est un ensemble plus global pouvant traiter de plusieurs domaines. Elle ne comporte que les données, les contraintes et les éléments de sécurité, mais est indépendante des éléments d'interface. 1.1 Table Utilisateur Stockage SGBD Système d'exploitation La table est le composant de base d'une BDD. Elle correspond à la structure d'un objet identifié, autonome et indissociable. Elle comporte un ensemble de champs ou colonnes typés (entiers, caractères, dates, etc). L'ensemble des valeurs décrivant un exemplaire particulier de l'objet est nommé occurrence (ou tuple ou n uplet). Clé primaire ou identifiant Pour distinguer les occurrences les unes des autres sans ambiguïté, pour accéder à chaque ligne d'une table de manière directe et pour faire référence à une table liée, on doit particulariser chaque objet. Une information doit donc identifier de manière unique chaque ligne, si bien que sa valeur ne peut apparaître qu'une seule fois pour l'ensemble des occurrences de la table. On appelle cette information clé primaire. Elle peut être constituée par un champ ou par la concaténation de plusieurs propriétés. SQL Langage de pr ogr ammation Accès Gestion des index Sécurité Document2 Page 1

Clé étrangère Certains objets doivent, pour être complets, faire référence à d'autres objets. Cette référence distante peut être unique (un produit peut faire partie d'une famille) ou multiple (une commande est passée pour plusieurs produits). Dans le premier cas, on va ajouter une propriété à la table dépendante, dont le contenu devra correspondre à la clé primaire de l'autre objet et prendre ses valeurs dans l'ensemble des valeurs disponibles sur cette clé primaire. On parle d'une clé étrangère. Dans le second cas, il n'est pas possible d'ajouter à une table autant de références distantes. De plus, dans la relation plusieurs à plusieurs qui est ainsi instaurée, il peut y avoir d'autres éléments d'information qui entrent en compte : quantité, date, tarif, etc. Il est donc nécessaire de créer une nouvelle table qui comporte une clé étrangère vers chaque table participant à la relation. Pour identifier cette nouvelle table sans ajouter d'information fictive, on choisira comme clé primaire la concaténation des clés étrangères. Il ne peut donc exister un ensemble identique de valeurs pour l'ensemble de ces propriétés. 1.2 Contraintes d'intégrité Pour compléter la description des tables et limiter les actions d'insertion, modification et suppression, les SGBD permettent de définir des contraintes sur le contenu des champs : unicité (pour les clés primaires en général), valeurs autorisées (notion de domaine ou type), contenu obligatoire (on interdit un champ vide), référence forcée à une information préexistante (pour les clés étrangères) etc On parle de contraintes d'intégrité. Elles peuvent être paramétrées en SQL (ADD CONSTRAINT ou lors de la création) ou grâce à des outils graphiques (l'outil relations sous Access par exemple). 1.3 Sécurité Qu'il s'agisse d'une base micro ou d'un système client serveur, l'accès aux informations d'une base de données nécessite la mise en place de systèmes plus ou moins sécurisés selon les attentes. Les SGBD travaillent principalement sur deux domaines : l'autorisation d'accès associée à un compte identifié et le maintien d'une base stable (sans erreur, sans valeurs incomplètes, gérant les conflits d'accès) Droits d'accès Selon leur niveau de complexité, les SGBD peuvent définir les droits d'accès, de modification et suppression sur le contenu (on parlera de droits sur les objets) ou sur la structure de la base de données (on parlera de droits sur le système). L'ordre GRANT et son opposé, REVOKE, sont utilisés en SQL pour paramétrer ces informations. Intégrité et Verrous Une base de données étant un système "vivant", et souvent partagé, des mécanismes vont veiller : à conserver la base dans un état toujours pertinent et stable, et respectant les contraintes d'intégrité, à ce que les accès multiples à une même ligne ou une même table n'entrent pas en conflit (modifications simultanées d'une même ligne, suppression d'une table en cours de modification, etc) en posant des verrous sur la table, la ligne ou le champ. 1.4 Client/serveur Comme tout système accessible en réseau, une BDD peut proposer un service central offrant diverses fonctionnalités à des utilisateurs distants. On appelle serveur le système central capable de recevoir des interrogations (SQL, demande d'exécution de procédures stockées, synchronisation, etc). Le client est la partie logicielle en place sur le poste utilisateur permettant de contacter le serveur et formulant les interrogations selon la syntaxe du SGBD central. Dans des architectures plus conséquentes, la base de données peut être gérée par plusieurs serveurs (un par établissement, un par service). Ils entretiennent aussi une relation client/serveur dans la mesure où ils auront Document2 Page 2

besoin de partager l'information, de synchroniser leurs données, d'agir en concertation ou de se répartir les rôles de manière hiérarchique. Dans tous les cas, le client est le demandeur, le serveur est le pourvoyeur de service. Répartition / Duplication Dans le cas d'une base gérée par plusieurs serveurs, la base de données est en fait le regroupement de plusieurs sous ensembles partagées par l'ensemble des serveurs. Il existe plusieurs possibilités pour organiser ce partage : Base de données répartie ou distribuée : les différentes parties de la base ne se recouvrent pas. Les interrogations portant sur une partie distante passent par une requête au serveur distant en mode synchrone (accès direct aux données distantes). Base de données dupliquée : l'information existe sur une machine de référence et est reproduite à l'identique sur des serveurs de déport qui rapprochent l'information du lieu d'utilisation et limitent les accès distants. L'accès est asynchrone, au sens où les données sont répliquées à un instant donné, dans un état figé. Middleware et ODBC Pour ne pas limiter l'accès au SGBD par les seuls outils propre à l'éditeur, un principe d'accès universel aux différents SGBD a été défini : cet intermédiaire prend des demandes au format standard SQL et les transforme dans la syntaxe propre au SGBD sollicité. On appelle ces outils des middlewares (ou intergiciels), dont l'exemple le plus connu est ODBC (Open DataBase Connectivity) promu par Microsoft. INTERGICIEL Application. SQL Ordres SQL Serveur Client (Pilote) Ordres SGBD SGBD Échange avec le module Middleware 1.5 PGI et Bases de données Les Programmes de Gestion Intégrés (ou Entreprise Resource Planning ERP) utilisent les bases de données pour constituer un accès unique à l'ensemble des domaines de gestion. Ils sont dit intégrés car ils rassemblent sous un programme et une interface unique l'ensemble des fonctions de gestion de l'entreprise. Ils permettent d'alimenter le système d'information par les outils du système opérant et produisent l'information synthétique nécessaire au système de pilotage. BDD Tableaux de bord, statistiques, PGI Comptabilité Production RH Commercial Sous système de pilotage Sous système d'information Application bureautique, outils PGI Sous système opérant Document2 Page 3

II MODELISATION ET REPRESENTATION Le modèle conceptuel des données (MCD) Il s'agit d'une représentation graphique permettant d'inventorier les objets et les relations qui existent entre eux. Il existe diverses modélisations, mais la plus courante est la représentation Entité Association. Il correspond à une construction normalisée répondant à des contraintes très précises sur le contenu des objets (3 ème ACHETER ACH_PrixHT ACH_Qté 1,n forme normale). Il est précédé par un inventaire des données MATIERE PREMIERE (dictionnaire des données) et par la modélisation des MP_Code MP_Libellé dépendances fonctionnelles entre ces informations. Les MP_StockAlerte MP_Unité données présentes dans ces conteneurs sont des propriétés, 1,n jjmmaa PRODUIRE dont l'une sert à identifier l'entité : l'identifiant. PRD_Qté COMPOSER Il est conçu par les analystes (informaticiens) et ne donne CMP_Qté qu'une représentation générale des données, sans typage. PRODUIT Il précise les cardinalités dans les relations entre objets 1,n Pro_Nom (Entités et Associations) en définissant le nombre minimum Pro_Description Pro_PrixHT et maximum de liens pouvant exister entre deux occurrences. Pro_StockAlerte Il peut aussi servir à représenter les contraintes sur les données et/ou les relations. Remarque : Cette partie de modélisation n'est pas inscrite dans le programme de la section STG. Le modèle relationnel ou modèle logique Il est obtenu à partir du MCD ou extrait depuis la base de données (modèle physique). Il représente les différents conteneurs d'information (équivalant aux Entités/Associations ou aux Tables) : on parle de relations. On détaillera pour chaque relation l'ensemble des attributs qu'elle contient et le domaine dans lequel ils puisent leurs valeurs (type des attributs). Le modèle relationnel précise aussi le rôle des propriétés : Représentation Textuelle Matiere_Premiere(MP_Code, MP_Libellé, MP_StockAlerte, MP_Unité) Produit(, Pro_Nom, Pro_Description, Pro_PrixHT, Pro_StockAlerte) Fournisseur(Fou_Code, Fou_RaisonSociale, Fou_Adresse, Fou_CP, Fou_Ville) Client(Cli_Code, Cli_nom, Cli_Adresse, Cli_CP, Cli_Ville, Cli_Fidelite) Acheter(#MP_Code, #Fou_Code,#jjmmaa, Ach_Qté, Ach_PrixHT) Composer(#, #MP_Code, CMP_Qté) Vendre(#, #jjmaa, #Cli_Code, VenQté) Produire(#, #jjmmaa, PRD_Qté) Remar ques: on a supprimé la relation Date qui ne présente pas d'intérêt Les identifiants sont soulignés # clé étrangère : elle fait référence à une clé primaire d'une autre relation et indique un lien de dépendance référentielle entre l'attribut de la relation et la clé primaire de la relation référencée. Elle est généralement précédée ou suivie d'un signe # dans une écriture à plat ou signalée par une une flèche vers l'identifiant de l'autre relation dans une représentation graphique avec éventuellement une mise en forme spécifique ou une indication sur la flèche (quels sont les attributs mis en relation par la flèche). Lorsqu'il est déduit du MCD, le modèle relationnel peut réaliser une simplification en supprimant les relations dont la présence physique identifiant ou clé primaire : la ou les propriétés qui permet de distinguer les lignes les unes des autres. Elle est soulignée dans une représentation textuelle, ou précisée en tête de relation dans une représentation graphique. Document2 Page 4 DATE VENDRE VND_Qté 1,n FOURNISSEUR FOU_Code Fou_RaisonSociale Fou_Adresse FOU_CP FOU_VILLE CLIENT Cli_Code 1,n Cli_Nom Cli_adresse Cli_CP Cli_Ville Cli_Fidélité Représentation Graphique (sur un autre sujet, d'après un document de www.reseaucerta.org)

n'aura pas d'intérêt : typiquement, les entités n'ayant d'autre propriété que l'identifiant. Lorsqu'il est reproduit à partir d'une base de données, il se contente de reproduire la structure des tables. C'est l'outil privilégié de l'interrogation SQL. En effet, en ne représentant, à plat, que les attributs, les clés primaires et étrangères, il donne la vision minimale nécessaire à pouvoir interroger la base en sachant précisément où trouver l'information et quels liens suivre (clé étrangère clé primaire). Le modèle physique Il est la dernière étape de constitution d'une base, et le seul point de vue réel des utilisateurs. Il s'agit de la représentation de la base elle même, avec le nom précis des tables, des champs, le type de ces derniers, avec les contraintes éventuelles. Le modèle physique peut encore simplifier le modèle relationnel en n'implantant pas toutes les tables ou en dénormalisant les relations (ajout de champs calculés, fusion de tables, ajout de champs importés, etc) pour des soucis d'efficacité ou de simplification de traitements. Ce modèle est essentiellement utilisé pour inventorier les informations d'une base existante grâce aux représentations graphiques fournies par les SGBD. Il peut aussi être le point de départ à l'automatisation de la création d'une base à partir d'un atelier de génie logiciel (WinDesign, AMC Designor, Module WinDev, etc). Les dépendances fonctionnelles et la 3 ème forme normale C'est un outil de construction ou de vérification d'une base de données. Elle consiste à identifier quelle donnée détermine un ensemble d'autres informations, de manière à repérer les objets (Entités) et les relations entre ces objets (Associations). On peut aussi contrôler que les champs présents dans une table répondent bien à la 3 ème forme normale. Dépendances entre propriétés Le dictionnaire des données constitue le premier inventaire de l'ensemble des informations liées au domaine. Il dresse une liste à plat des données nécessaires. Il faut ensuite les organiser en ensembles cohérents représentant des objets ou des relations entre objets. Pour cela, on va représenter les informations sous forme d'arbre ou d'une liste de dépendances entre une propriété source et une propriété but ou cible. On dit que la propriété source détermine la propriété cible et on le note source cible. Pour simplifier, on pourra aussi noter source cible1, cible2, cible3. Cette hiérarchisation permettra de repérer : les données dépendant d'une information unique et qui créeront des relations identifiées par une clé simple, les données qui sont déterminées par un ensemble de propriétés déjà repérées au point précédent comme identifiants et qui formeront des relations basées sur une clé composée (source1 + source2, cible1, cible2, ) les liens d'égal à égal entre des propriétés identifiantes et qui donneront aussi des relations à clé composée les dépendances entre propriétés simples et identifiants et qui donneront lieu à une clé étrangère. 3ème forme normale Les concepteurs du modèle relationnel ont défini un ensemble de règles permettant de s'assurer de la validité d'un modèle relationnel, limitant les erreurs dans la représentation et simplifiant les opérations (accès, ajout, modification, suppression). Approche en trois étapes, elle doit aboutir à une représentation en troisième forme normale respectant les règles page suivante (entre parenthèse, le niveau de forme normale à laquelle correspond chaque règle). Document2 Page 5 lien_50 MATIERE PREMIERE MP_Code MP_Libellé MP_CMUP MP_StockAlerte MP_Unité lien_49 COMPOSER MP_Code CMP_Qté lien_48 lien_114 PRODUIT Pro_Nom Pro_PrixHT Pro_StockAlerte Pro_Description ACHETER MP_Code FOU_Code jjmmaa ACH_PrixHT ACH_Qté lien_51 PRODUIRE jjmmaa PRD_Qté lien_52 FOURNISSEUR FOU_Code Fou_RaisonSociale Fou_Adresse FOU_CP FOU_VILLE VENDRE Cli_Code jjmmaa VND_Qté lien_53 Remarque : On a ajouté un champ calculé MP_CMUP CLIENT Cli_Code Cli_Nom Cli_adresse Cli_CP Cli_Ville Cli_Fidélité

tous les attributs ont des valeurs atomiques (1), ce qui permet de pouvoir réaliser toutes les opérations sur des propriétés simples chaque attribut qui n'appartient pas à la clé dépend complètement de la clé (ou bien ne dépend pas uniquement d'une partie de la clé) (2). Les dépendances fonctionnelles sont donc complètes ou pleines et non partielle. L'attribut but ne peut être en dépendance d'un sous ensemble de la clé (2) aucun des attributs non clés n'est source de dépendance fonctionnelle d'un autre attribut non clé (3), évitant des problèmes de redondance En clair, une relation est en troisième forme normale si elle comporte des propriétés simples et qu'il n'y a pas de mélange entre plusieurs objets dans une même relation. Dénormalisation La troisième forme normale est un outil de validation et de limitation des erreurs dans la phase de conception. Cependant, dans la pratique, on peut être amené à ne pas la respecter pour des questions de productivité, de simplification d'accès, de limitation du nombre de tables, etc. La dénormalisation consiste principalement à : Ajouter des propriétés qui stockent le résultat d'un calcul obtenu à partir d'autres propriétés de la base : on limitera les interrogations lourdes en SQL, par exemple pour les coûts moyens unitaires pondérés, pour des quantités calculées, pour des résultats statistiques Ajouter des propriétés déjà existantes dans d'autres tables : on facilitera l'interrogation en évitant des jointures sur des propriétés systématiquement utilisées (par exemple le libellé associé à un objet connu par son code) Fusionner des tables : on évitera la multiplication de tables et on simplifiera les interrogations, en intégrant par exemple les informations du type d'un produit dans la table produit. L'inconvénient est que la dénormalisation nécessite des interventions plus contraignantes dans la mise à jour et la maintenance de la cohérence (mettre à jour les données redondantes, recalculer les données de synthèse périodiquement, etc). III LE LANGAGE SQL ET L'ALGEBRE RELATIONNELLE C'est un langage normalisé permettant d'interroger une base de données relationnelles en se contentant de définir les éléments à afficher (clause SELECT), les tables nécessaires (FROM) et les conditions pour réaliser l'interrogation (WHERE), avec un tri éventuel (ORDER BY). Afin de calculs, on pourra réaliser des regroupements sur certains attributs (GROUP BY) et réaliser des conditions sur les résultats des calculs (HAVING). Ce langage permet aussi de gérer la structure de la base (CREATE, ALTER et DROP), et de manipuler le contenu des tables (INSERT, UPDATE et DELETE). Algèbre relationnelle Au langage SQL est associé une algèbre spécifique, avec une syntaxe particulière et un vocabulaire propre : Projection: permet de ne retenir que les champs à afficher Clause SELECT Sélection ou Restriction : permet d'émettre des conditions sur le contenu des champs clause WHERE (attention à l'ambiguïté entre le terme Sélection et la clause SELECT) Jointure : permet de préciser le lien de dépendance fonctionnelle existant entre deux champs Clause WHERE Regroupement : permet de réaliser des agrégations de lignes afin de réaliser des calculs clause GROUP BY Union : permet de regrouper l'ensemble des valeurs présentes à deux sous ensembles clause UNION Intersection : permet de regrouper l'ensemble des valeurs communes à deux sous ensembles clause INTERSECT Document2 Page 6

Construire une requête simple 1. La construction d'une requête commence par l'identification des informations à afficher Clause SELECT 2. On détermine ensuite les restrictions nécessaires à l'obtention du résultat clause WHERE 3. On repère ensuite dans le modèle relationnel ou physique les tables concernées par l'ensemble des champs mis en œuvre dans les points 1 et 2 : on en déduit les tables nécessaires à la clause FROM 4. On retrace sur le modèle relationnel l'ensemble des liens permettant de joindre les tables retenues au 3. Si nécessaire, on ajoutera à la clause FROM les tables traversées et non présentes au 3. 5. Enfin, on indique les jointures (égalités entre champs clé étrangère et la clé primaire référencée) dans la clause WHERE. 6. On triera enfin grâce à la clause ORDER BY éventuelle. Construire une requête avec calcul On appliquera le déroulement ci dessus, en ajoutant les étapes suivantes : A. identifier le calcul à réaliser et les champs sur lesquels il porte: moyenne (AVG), somme de valeurs numériques (SUM), comptage de lignes (COUNT), plus grande valeur (MAX), plus petite valeur (MIN), etc. Ajouter ce calcul à la clause SELECT, en ajoutant éventuellement les tables à la clause FROM et les jointures à la clause WHERE B. identifier les éventuels champs sur lesquels réaliser des regroupements clause GROUP BY C. ajouter les champs de la clause GROUP BY à la clause SELECT (pas toujours obligatoire, mais plus pertinent d'un point de vue affichage) D. Ajouter tout champs complémentaire de la clause SELECT à la clause GROUP BY E. Traiter les restrictions éventuelles sur les calculs clause HAVING F. Il n'y a pas de ORDER BY, la clause GROUP BY réalisant un tri. Quelques règles de base Pour n tables dans la clause FROM, on trouvera (n 1) jointures dans la clause WHERE. Tout champ affiché (SELECT) en plus d'un calcul (AVG, SUM, COUNT, etc) doit faire partie de la clause GROUP BY. Il peut y avoir plus de champs hors calculs dans le GROUP BY que dans le SELECT mais jamais l'inverse Les restrictions portant sur les fonctions de calcul ne peuvent apparaître qu'après avoir effectué le regroupement, c'est à dire dans la clause HAVING La somme (SUM) porte nécessairement sur un champ numérique précis (ou un calcul à partir de champs numériques), alors que le comptage (COUNT) porte sur un identifiant ou les lignes d'une table Remarque : Le support d'eric Even disponible sur le site académique ou celui d'alain Van Sante et Michel Auguste sur le site du Certa présentent en détail la syntaxe de ce langage et son utilisation dans le cadre de la section STG. IV BASE DE DONNEES ET STG En tant que support privilégié de l'information dans les entreprises, aussi bien pour le système opérant que pour le système décisionnel, les bases de données sont présentes dans l'ensemble des outils professionnels des métiers de la gestion. En comprendre les principes, en maîtriser le vocabulaire ou être capable d'en exploiter les possibilités à travers le langage SQL doit faire partie du bagage obligatoire des futurs utilisateurs, exploitants ou concepteurs que sont les élèves de la section STG. Le retrait de la modélisation conceptuelle place évidemment nos élèves dans la position d'exploitants et d'opérateurs de maintenance plus que du côté concepteur (qui est renvoyé à un niveau post bac). Il implique aussi pour le professeur la constitution de bases de données (dans le domaine de la gestion) prête à l'interrogation SQL, que les élèves devront valider (dépendances fonctionnelles et forme normale) et compléter (SQL ou interface graphique). Il est donc évident que les enseignants en STG doivent maîtriser l'ensemble des domaines et du vocabulaire liés à les bases de données. Document2 Page 7

VOCABULAIRE Terme Explication 3 ème Forme Normale (3FN) Ensemble des règles de validité du modèle relationnel permettant d'éviter les erreurs de conception et garantissant un fonctionnement standard d'une base de données. Base de données hiérarchique Base de données optimisée pour les accès en lecture utilisée pour les annuaires par exemple Base de données relationnelle Base de données reposant sur des relations et Clé étrangère Contrainte d'intégrité référentielle assurant qu'une propriété d'une table fasse référence à une clé primaire d'une autre table Clé primaire/identifiant Contrainte d'intégrité d'une table s'assurant de l'unicité de la valeurs du ou des champs identifiants dans l'ensemble des occurrences Client / Serveur Relation hiérarchique entre deux applications : le demandeur (client) et le pourvoyeur de service (serveur) Contrainte d'intégrité Limite définie pour une propriété ou un enregistrement : référence à une clé étrangère, valeur obligatoire, valeurs autorisées, etc Dépendance fonctionnelle Relation hiérarchique entre propriétés Droit d'accès Limitations pour un compte utilisateur, soit sur le contenu d'un objet, soit sur sa structure Enregistrement Structure d'information correspondant à l'ensemble des propriétés d'un objet Index Information référençant les valeurs d'une propriété (les clés, les données souvent accédées) pour en faciliter l'accès Jointure Élément du langage d'interrogation permettant de retrouver le lien logique entre deux tables Occurrence/Tuple/N uplet Ensembles des valeurs des champs pour un enregistrement PGI Programme de Gestion Intégré : Logiciel regroupant dans une base de données unique et sous une interface commune l'ensemble des opérations de gestion. On parle d'erp (Entreprise Resource Planning) en anglais. Propriété/champ Information unitaire décrivant une caractéristique particulière d'un objet SGBD Micro Système de gestion de base de données assurant des fonctions minimales, généralement destiné à un usage mono utilisateur ou avec peu d'utilisateurs. SGBD Serveur Système de gestion de base de données de forte capacité (stockage, exécution de requêtes, traitements annexes et sécurité) destiné à un usage réseau et multiutilisateurs SQL Structured Query Language : langage normalisé pour la manipulation, la description et l'interrogation de bases de données Table/ Relation Structure et ensemble des valeurs relatifs à un objet Verrou Système de sécurisation empêchant les modifications simultanées d'une même information par deux utilisateurs Document2 Page 8