INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL



Documents pareils
Conception des bases de données : Modèle Entité-Association

Information utiles. webpage : Google+ : digiusto/

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

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

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

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

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

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

Mercredi 15 Janvier 2014

Introduction à la B.I. Avec SQL Server 2008

Bases de Données Avancées

UE 8 Systèmes d information de gestion Le programme

1 Introduction et installation

Bases de données relationnelles : Introduction

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Les bases de données Page 1 / 8

INTRODUCTION AUX BASES de DONNEES

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Cours Bases de données

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

Systèmes d information et bases de données (niveau 1)

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Introduction aux Bases de Données

Base de Données et Langage SQL

MERISE. Modélisation de Systèmes d Information. Pierre Gérard. DUT Informatique 2ème année 2004/2005. IUT de Villetaneuse - Université de Paris 13

THOT - Extraction de données et de schémas d un SGBD

Entrepôt de données 1. Introduction

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)

Introduction aux Bases de Données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

Dossier I Découverte de Base d Open Office

Nom de l application

Conception, architecture et urbanisation des systèmes d information

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Rappel sur les bases de données

Modèle conceptuel : diagramme entité-association

4.2 Unités d enseignement du M1

Conception d une base de données

Licence Professionnelle en Statistique et Informatique Décisionnelle (S.I.D.)

Master Informatique Aix-Marseille Université

Introduction aux SGBDR

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

QU EST-CE QUE LE DECISIONNEL?

Visual Paradigm Contraintes inter-associations

données en connaissance et en actions?

Les bases de données

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

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

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

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

Bases de Données. Plan

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

et les Systèmes Multidimensionnels

Gestion des bases de données

16H Cours / 18H TD / 20H TP

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

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

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

Bases de données avancées Introduction

Modélisation des données

UML (Diagramme de classes) Unified Modeling Language

Université de Bangui. Modélisons en UML

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Les Entrepôts de Données

Le langage SQL Rappels

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

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

CESI Bases de données

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Bases de données relationnelles

Didier MOUNIEN Samantha MOINEAUX

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Méthodologie de conceptualisation BI

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Bases de données cours 1

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Analyse de grandes bases de données en santé

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 Outils de gestion

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

BUSINESS INTELLIGENCE

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

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Bases de Données Avancées

LIVRE BLANC Décembre 2014

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

Bases de données élémentaires Maude Manouvrier

Introduction au datamining

DOSSIER SOLUTION CA ERwin Modeling. Comment gérer la complexité des données et améliorer l agilité métier?

INTRODUCTION AU DATA MINING

Bases de données. Chapitre 1. Introduction

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Introduction au Data-Mining

SQL SERVER 2008, BUSINESS INTELLIGENCE

Les bases de données relationnelles

Transcription:

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL Master2 Modélisation Statistique - Génie logiciel & Bases des données Laboratoire de Mathématiques CNRS - Université de Franche-Comté Département de mathématiques Table des matières I - ORGANISATION PEDAGOGIQUE DES COURS ET DES TPs 3 I.1 - Objectifs.............................................. 3 I.2 - Déroulement du parcours..................................... 3 I.3 - Trousseau avec les outils indispensables............................. 4 II - NOTIONS DE BASES DE DONNEES ET DE SYSTEMES DE GESTION DE BASES DE DONNEES (SGBD) 5 II.1 - Qu est-ce qu une base de données?............................... 5 II.2 - Un peu d histoire à partir des années 1900........................... 6 II.3 - Problématique de recherche et de cohérence des données................... 7 II.4 - Réponse par la modélisation................................... 7 II.5 - Les SGBD(R) : rôle et objectifs................................. 8 II.5.1 Gestion et accès....................................... 8 II.5.2 Principaux SGBDR et domaines d application....................... 8 II.6 - Une finalité : Analyse ou fouille de données avec le Data mining............... 9 II.6.1 Apprentissage statistique dans un contexte identifié et utilité.............. 9 II.6.2 Démarche, méthode et logiciels............................... 10 II.7 - Le NoSQL, pourquoi faire?................................... 11 III - CONCEPTION DE BASES DE DONNEES PAR LE MODELE ENTITE-ASSOCIATION (E-A) 12 III.1 - Introduction à la conceptualisation et à la modélisation.................... 12 III.2 - Composants du modèle E-A ou Entité-Association....................... 13 III.2.1 types-entités et entités.................................... 13 III.2.2 types-associations et associations.............................. 13 III.2.3 attributs, valeurs, clés d identification et schéma de relation.............. 14 III.2.4 cardinalités sur les type-entités et les type-associations.................. 14 III.3 - Normalisation........................................... 15 III.3.1 Pourquoi normaliser?.................................... 15 III.3.2 Dépendances fonctionnelles ou DF ou en anglais functional dependency........ 16 III.3.3 Décomposition........................................ 16 III.3.4 Les formes normales..................................... 17 III.4 - Guide pratique de la modélisation des données par étape................... 18 http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -1-

IV - REPRESENTATION PAR LE MODELE RELATIONNEL 21 IV.1 - Objectif de la représentation................................... 21 IV.2 - Comment passer du modèle Entiétés-Associations au modèle relationnel?.......... 21 IV.2.1 Règles générales et de base : Relation, domaine, cardinalité et degré.......... 21 IV.2.2 Règles particulières..................................... 22 IV.2.3 Intégrité des données : clés, valeur NULL et schéma relationnel............. 23 IV.2.4 Les types de données..................................... 24 IV.2.5 Les opérateurs relationnels................................. 25 V - LANGAGE SQL : QUE PERMET-IL DE FAIRE? 26 V.1 - Présentation et un bref historique................................ 26 V.2 - Définir et manipuler les données................................. 27 V.3 - Les actions possibles du langage SQL.............................. 28 V.3.1 Les créations de tables.................................... 28 V.3.2 Les requêtes simples..................................... 29 V.3.3 Les vues et les index..................................... 29 V.3.4 Les jointures......................................... 30 V.4 - Insérer et modifier les données.................................. 30 V.5 - Interroger des bases de données................................. 31 VI - LIENS INTERNET ET REFERENCES BIBLIOGRAPHIQUES 32 Selon T.Connoloy et C.Begg : On peut considérer que le système de bases de données est le plus important développement dans le domaine du génie logiciel. Les bases de données sont devenues, depuis plus de 20 ans, un domaine très productif en matière de l ingénierie logicielle (outils SGBD) et de développements en tout genre ; c est un domaine de recherche scientifique à forte productivité économique qui génère une multitude de services dans divers domaines et au sein des systèmes d information des entrprises. Jean Bodin disiat : Il n est de richesses que d hommes, mais c est surtout au quotidien que nous sommes amenés à utiliser d autres richesses, celles des bases de données en ligne. Il nous arrive souvent de retrouver des informations qui nous concernent au sein de bases de données et ce, parfois utilisée ou stockées à notre insu. Les achats sur internet, les consultations et mises à jour des stocks de produits, le retrait d un billet de train, le passage en caisse d un supermarché, votre inscription à l université, et bien d autres... ; toutes ces actions ont un point commun qui est l utilisation directe ou indirecte de bases de données. Actuellement en France, deux grandes bases de données dans les domaines de l enseignement et de la santé permettent de suivre les formations assurées (au moyen des interfaces TIC en ligne, comme les Espaces Numériques de Travail) et les dossiers médicaux des patients (comme le dossier médical informatisé). Cette informatisation au sein des bases de données se doit de respecter les obligations légales vis-à-vis de la loi sur la protection des données à caractère personnel (loi informatique et libertés du 6 janvier 1978). Le but de cette initiation est d appréhender une méthode pour la modélisation conceptuelle et relationnelle des bases de données et le langage SQL en essayant de démystifier par une mise en pratique des notions qui se cachent derrière les bases de données et les système de gestion de ces bases. Qu en est-il réellement? est-ce un pur hasard? Non, les bases de données ne relèvent pas du hasard, mais bien du domaine de la conception et de la modélisation selon un formalisme et des règles basés sur l algèbre relationnelle. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -2-

I - ORGANISATION PEDAGOGIQUE DES COURS ET DES TPs I.1 - Objectifs Le cours de bases de données, comportant cinq parties, est accompagné de travaux pratiques ou dirigés vise à initier à la conception et à la modélisation de bases de données. Il s agit également d acquérir des connaissances sur le modèle relationnel, sur la méthode MERISE et sur l existence d outils pour gérer et exploiter ces données. Il s agit donc de : Concevoir une base de données à partir d un contexte et d un besoin réel ; quel est exactement le problème à représenter et à modéliser? S approprier et de savoir identifier les concepts de base de données et de modèle relationnel ; Elaborer un modèle conceptuel de données selon la méthode Merise ou Entité-Association ; Traduire un modèle conceptuel en modèle logique de données ; Proposer une base de données normalisée avec des données ; Être capable d exploiter les données par les outils SGBD et le langage SQL. Dans ce cours il sera abordé les aspects de conception, de modélisation et de normalisation afin de voir que toute base de données ou tout un ensemble de données peut être utilisé par n importe quel outil SGBD (ACCESS, MYSQL, SAS, R,...) et pour différents traitements ou domaines d exploration. Auparavant, il fallait être informaticien de métier et il aurait fallu plusieurs semaines pour produire des résultats de requêtes...et ce, à prix fort! mais maintenant, un statisticien peut très rapidement créer et manipuler des bases de données en compagnie ou pas d informaticiens. Grâce aux nombreux développements et au nombreuses technologies, c est plutôt une équipe d utilisateurs qui devra faire preuve d une grande agilité. Ils auront parfois à créer et optimiser des bases de données ; mais, le plus souvent ils devront manipuler et exploiter des bases de données selon des rôles et des droits bien distincts : en tant que développeur, technicien, ou ingénieur statisticien... Les informations sous forme de données constituent la matière première et le point commun de tous ces utilisateurs qui trouvent tous leur compte dans leur mission et les objectifs qui leur sont confiés. I.2 - Déroulement du parcours 8 séances partagées entre cours et TD/TP Particularité : contrat de professionnalisation en alternance (dès le 5 octobre) 2 interventions extérieures programmées : la société SAS, sur le Data Mining ou en Biostatistique Exemples d illustration en cours et TP : gestion de films de cinéma, location de véhicules, gestion de commandes d articles, gestion d une bibliothèque Points non abordés en TP/TD : modélisation UML et orientée objets Projet en binôme et évalué 2 ou 3 sujets de projet au choix seront proposés en début de parcours 9eme séance : contrôle final Note finale = 1 note du contrôle final (70%) + 1 note de projet (30%) http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -3-

Remarque 1 Des exemples de cas concrets permettront d illustrer les différents concepts à l oral, en TP et au tableau : la gestion des livres et auteurs, la gestion d une bibliothèque, la gestion des films de cinéma, la location de véhicules ou soit la gestion des commandes d artiche sur un site marchand en ligne. L exemple du contexte présenté sera la gestion des films de cinémas : pour chacun des films, il s agit de connaître leur genre, dans quelle salle de cinéma ils ont été projetés et à quelle date ; il s agit de savoir qui a été acteur et/ou réalisateur des films ; pour chacun des cinémas, il s agit de connaître le nombre de salles et leur capacité d accueil et leur adresse et il s agit également d effectuer un sondage sur les les films projetés afin de recueillir les impressions des spectateurs. L exemple de la location de voitures : il s agit de louer des catégories de voitures écologiques et économiques à différents clients pour se rendre à la nouvelle gare SNCF ; il s agit d afficher la liste des véhicules disponibles et leurs tarifs, d obtenir toutes les locations pour chacun des clients et leur taux de remise... L exemple des commandes d articles : il s agit d obtenir toutes les commandes d articles par client et les quantités commandées et leur date... Remarque 2 L exemple du contexte présenté sera la gestion d une bibliothèque afin d voir un historique des exemplaires de livres et des emprunts : les livres d une bibliothèque ont un numéro d exemplaire, un titre, des auteurs et des éditeurs ; il s agit de développer une application pour retrouver les différents exemplaires d un livre ; il s agit pouvoir retrouver les personnes qui empruntent à telle date tel ou tel exemplaire de livre et leur date de retour. chaque personne peut emprunter au maximum 25 livres en même temps et il s agit de retrouver la liste des livres empruntés par chaque personne. Remarque 3 Par ailleurs, ces différentes notions du cours sont illustrées souvent à l oral (et au tableau) et par un cas pratique : Les exemples cités portent sur les relations CLIENT et ARTICLE, ABONNE et LIVRE, ETUDIANT et ETABLISSEMENT, PERSONNE et VOITURE ; Un cas pratique (du chapitre III) portant sur la location de véhicules occupe deux séances de TP. Remarque 4 ATTENTION : Le département de mathématiques a développé une base de données AAE (Application Anciens Etudiants) au sein de laquelle vous devez entrez les informations liées à votre cursus en Modélisation et Statistique : Cette base de données est uniquement accessible en interne pour le moment ; Chaque étudiant devra renseigner (le plus tôt possible) ses informations personnelles et propres à son projet final et stage de M2 (nom entreprise,...). I.3 - Trousseau avec les outils indispensables Plusieurs outils sont nécessaires à la modélisation d une problématique et à l application de la méthode qui sera abordée par la suite. Un certain formalisme repris au sein de ces outils est indispensable car il permet d interagir avec les systèmes de gestion des bases de données. Un programme assez commun et assez simple appelé MySQL sera l outil de référence pour la gestion des bases de données ; il est sous licence GPL et propriétaire ; racheté par la société SUN en 2008, MySQL est maintenant sous la coupe de ORACLE depuis 2009 car celle-ci a racheté SUN. Alors jusqu à quand MySQL? mais si MariaDB (sous licence GPL) est le petit nouveau et encore trop jeune, alors il reste la possibilité de passer sur PostgreSql. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -4-

Un autre outil et programme PhpMyadmin" est une interface graphique et web permettant d interagir pleinement avec MySQL ; il s installe au sein de votre installation web ou se trouve au sein d un package ; et une fois installé, pour accéder à cette interface il faut saisir l adresse URL dans le navigateur internet http ://adresse_ip_machine/phpmyadmin (remplacer l adresse IP per localhost si c est sur une machine locale) Programme Microsoft Office Access de la suite bureautique Microsoft Office Pro Et un autre outil graphique MySQL Workbench qui permet de créer des schémas et de procéder au reverse engineering quand on ne connaît pas le schéma de conception d une base de données et qu il n est pas possible d obtenir une documentation ; la définition des tables permettra éventuellement de retrouver tout ou une partie du schéma de la base. Pour le SGBD PostgreSQL il faudra plutôt utiliser le programme SQL Power Architect qui est également en licence GPL version 3. II - NOTIONS DE BASES DE DONNEES ET DE SYSTEMES DE GESTION DE BASES DE DONNEES (SGBD) II.1 - Qu est-ce qu une base de données? Une base de données, n est surtout pas un logiciel qui gère des données! ; c est concrètement un jeu de données précis portant sur un domaine et des fichiers physiques qui comportent ces données. Ce n est aucunement des feuilles de calculs (comme des tableurs Excel...) ou des documents de traitement de texte (de type Word...), mais bien des fichiers organisés comportant des enregistrements ou des tuples. Définition 1 Les bases de données : (ou data base) sont des ensembles structurés et organisés de données permettant de stocker et de manipuler simplement des grandes quantités d informations. Les données sont structurées car elles stockent des informations propres à des objets ou à des entités. Et il existe souvent des relations entre les objets, appelées associations. La structure des informations stockées relève d une modélisation préalable. la modélisation : passe par plusieurs phases de conception qu il est courant d appeler le modèle conceptuel de données (MCD), le modèle logique de données (MLD) et le modèle physqiue de données (MPD) ; ce modèle est fondamental car il établit les relations entre les objets (entités) ; cela relève d une méthode appelée MERISE. la méthode MERISE : appelée Méthode d Etude et de Réalisation Informatique pour les Systèmes d Entrprise et conçue dans les années 70 mais opérationnelle dans les années 80, est une méthode systémique de de conceptualisation et de formalisation la plus connue et utilisée surtout en France et en Europe ; de façon concrète, tout projet de création et/ou d amélioration de bases de données sera basé sur des flux de données entrants et sortants. MERISE est basé sur des niveaux de modèles déjà cités ci-dessus : un niveau conceptuel qui fait abstraction de toutes contraintes techniques et organisationnelles ; un niveau logique qui fait également abstraction des propriétés techniques ; et un niveau physqiue qui organise techniquement le système. Il s agira de passer par une phase de réflexion afin d organiser les données, de voir quelles sont les tables (colonnes) à créer, de voir comment organiser les données dans chaque table et les relations présentes entre les tables ; cela est comparable aux fondations d une maison et il faut éviter que tout s écroule! http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -5-

Remarque 5 Plusieurs modèles de bases de données existent au sein des outils SGBD (Systèmes de Gestion des Bases de Données) : Les modèles dits de 1ere génération comme le modèle hiérarchique et en réseau, Les modèle dits de 2eme génération comme le modèle orienté objet et surtout le modèle relationnel qui est celui qui sera abordé dans ce cours. II.2 - Un peu d histoire à partir des années 1900 Remarque 6 Le terme de bases de données (data base) apparaît dans les années 60 avec les militaires américains ; le fichier classique est différent de la base de données qui reste une approche logique d informations. Les années 70 voient le développement des systèmes hiérarchiques et du réseau ; Le docteur chercheur de IBM, Ted CODD, invente la théorie des relations et des ensembles et l algèbre relationnelle ; La société ORACLE Corp. sort en 1976 la première version de se son système de gestion SGBDR appelé ORACLE ; Les années 80 voient plutôt l explosion de l informatique et des SGBD basés sur les modèles relationnels ; En 1982, c est l apparition du langage SQL complétant les modèles relationnels qui a été normalisé par la suite entre 1986 et 1990 ; Dans les années 90 se développent de nombreuses applications logicielles pour gérer les données ; Avec les années 2000 arrivent très vite les développements Web et des logiciels PHP et MySQL. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -6-

II.3 - Problématique de recherche et de cohérence des données De nombreuses données ou informations constituent notre monde réel avec des individus qui ont leur propre vision des choses...les statisticiens, que vous êtes et non informaticiens, devant des problèmes complexes et nombreux à résoudre formulent des requêtes qui peuvent être résolues par la conception et l utilisation de bases de données relationnelles. De nombreuses questions se posent à un moment donné : Quelles informationsou données (ou type d information) souhaite-t-on obtenir? Comment faire pour stocker et manipuler les données? Qui peut obtenir ou accéder aux informations? Quelles sont les possibilités d accès? Comment récupérer ou exploiter facilement telle ou telle information en évitant la redondance...? et ainsi de suite... Un début de réponse peut être trouvé avec les outils de modélisation et informatiques tels que les serveurs de fichiers, les fichiers, les réseaux interconnectés, les interactions possibles des utilisateurs avec les données via un SGBD ou un logiciel, mais cela ne semble pas suffisant! II.4 - Réponse par la modélisation Modéliser c est donner une représentation d un domaine ou d un contexte en choisissant ce qui est à décrire afin de voir les objets à représenter. La multitude des informations et l immense variété des phénomènes obligent à modéliser pour rechercher des informations, observer des tendances et des lois d évolution. Pour cela, si la statistique permet de mesurer alors que les bases de données et les SGBD sont les outils pour modéliser et simuler les situations aussi variées que possibles. Quotidiennement nous sommes confrontés aux problèmes de stockage, de recherche et de sélection des informations et à leur pérennité.la modélisation aboutit à des bases de données permettant d améliorer la qualité et la rapidité des informations obtenues, lesquelles informations permettent de prendre des décisions et de répondre au plus vite à des objectifs. Propriété 2 La modélisation s appuie sur 4 concepts : un domaine ; des types-entités ou des objets qui deviendront des relations et des tables ; des attributs qui sont les propriétés des types-entités ; des relations qui sont des liens sémantiques entre ces types-entités. Exemple 1 par exemple, pour commercialiser un prototype il est nécessaire de connaître tous les brevets déposés au préalable et donc les concurrents positionnés sur des parts de marché ; Ou encore un client désire acheter des articles sur un site de commerce en ligne. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -7-

II.5 - Les SGBD(R) : rôle et objectifs Les SGBDRs : ou les Systèmes de Gestion de Bases de Données Relationnels sont des système ou ensembles d outils logiciels supportant le modèle relationnel et permettant des actions de manipulations sur les données avec des opérateurs relationnels :. Ils sont très souvent relationnels et en architecture client-serveur, et possède un langage standard pour l accès aux données : SQL (Structured Query Language). II.5.1 Gestion et accès Les SGBDRs sont des outils permettant de gérer les bases de données et d assurer les différents niveaux d accès à ces bases. Ces systèmes possèdent des modèles de description de données qui sont surtout maintenant de type relationnel ou objet et comportent également un ensemble de programmes pour mémoriser, manipuler et traiter des ensembles et gros volumes de données. Outre l accès et le partage de données, les systèmes SGBD ont la capacité de résoudre un certain nombre de problèmes qui peuvent survenir sur les bases de données : des modifications et insertions de données qui mettent à mal la cohérence des données ; des pannes physiques sur des serveurs et sur des bases ; des accès multiples et concurrentiels aux bases. Il est courant de représenter les systèmes SGBD sous la forme de couches ou de niveaux : physique (système de gestion et de stockage de fichiers), pointeurs et index (accès rapide aux données) et interface (accès et présentation des données aux différents utilisateurs). Ils font appel au système de gestion de fichiers mais n ont pas du tout les mêmes objectifs. les objectifs des SGBDs sont multiples et fondamentaux car ils assurent : 1. la cohérence des données par la vérification des contraintes d intégrité, 2. la non redondance des données par la limitation des ressources matérielles et la facilité de maintenance ou de mise à jour, 3. l indépendance physique par la représentation des données indépendamment du matériel, 4. l indépendance logique par des visions différentes des données indépendamment du schéma conceptuel de base de données, 5. l accès partagé et sécurisé des données par des niveaux d accès autorisés à des utilisateurs non informaticiens ou techniciens (comme les statisticiens). II.5.2 Principaux SGBDR et domaines d application Les SGBDRs les plus connus sur le marché sont : 1. ACCESS : en environnement Windows, en licence commerciale, en mode monoposte ; 2. MYSQL, POSTGRESQL : en environnement Windows et Linux, en licence libre, en mode client et serveur ; 3. ORACLE : en environnement Windows et Linux, en licence commerciale, en mode client et serveur ; 4. SQL SERVER : en environnement Windows, en licence commerciale, en mode client et serveur. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -8-

Les domaines d application sont multiples... : un domaine portant sur des informations très structurées comme la gestion ( des stocks, de la paye... ), un domaine très courant portant sur les données textuelles comme la documentation (recherche documentaire en bibliothèque...), le domaine de l intelligence artificielle (IA), le domaine des entrepôts de données («Datawarehouse»), le domaine des bases de données et des statistiques («Data Mining»). II.6 - Une finalité : Analyse ou fouille de données avec le Data mining Faut-il avoir peu de données et de très bonne qualité, ou alors beaucoup de données avec de forts taux d erreur? on est envahi par le phénomène du Big Data et d un accroissement sans limite de la quantité de données qui fait que ces données ne peuvent ne peuvent plus être analysées manuellement ; la bio-informatique a connu par exemple un accroissement sans commune mesure avec 7200% environ du nombre de génomes et une augmentation associée du volume de stockage des données (en Téraoctets). Ce qui est sûr, il faut disposer de données de bonne qualité. Définition 2 Le terme de Data Mining signifie littéralement «forage de données» qui est le fait de fouiller dans un gros volume de données afin d extraire un ou plusieurs élément(s) comportant la connaissance de certaines données et de transformer ces données en connaissances. Il est encore appelé "Knowledge discovery in databases", "data/pattern analysis" ; ces connaissances extraites pourront permettre de décire un éventuel comportement ou de prédire un comportement à venir... ; Ensemble d algorithmes et de méthodes pour l analyse de données des grandes bases de données relationnelles en réunissant plusieurs disciplines ou domaines (bases de données, statistiques, science de l information, auto-apprentissage, visualisation,...) ; les techniques utilisées sont la recherche de motifs ou la technique descriptive, la technique prédictive ou l extrapolation de nouvelles informations à partir de données de départ. Exemple 2 Un exemple d algorithme de Data mining, Apriori, de Agrawal et Srikant en 1994. il permet de découvrir des règles d association ou relations entre plusieurs items ; mais pour cela, il analyse une ensemble de transactions qui comportent des items dans un ordre bien précis lesquels définissent un domaine d application ; une fréquence d items peut se dégager si un motif apparaît souvent dans la base de données ; après analyse des tickets de caisse d une chaîne de magasins américaine, une corrélation a été trouvée entre l achat de couches pour bébés et l achat de bières le samedi après-midi ; comme les femmes avaient envoyées leurs maris faire des courses le samedi après-midi ; la connaissance nouvelle fait qu en plaçant les bières toutes proches du rayon des couches avait fait augmenté les ventes de bières! II.6.1 Apprentissage statistique dans un contexte identifié et utilité Dans un contexte identifié, il s agit de définir le problème afin de repérer les objectifs à atteindre et de les traduire en un problème d apprentissage statistique ; pour cela : 1. voir les données historiques disponibles, http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -9-

2. voir les données variables au moment des prises de décision, 3. voir les variables dépendantes (temps,...), 4. voir les critères pour la mesure de qualité en fonction de chaque solution, 5. voir les solutions déjà existantes et leur pertinence, et procéder à des comparaisons. Le data mining est d une grande utilité pour plusieurs raisons car il permet : d améliorer la qualité et les processus au sein du système d information ; il n est ni plus ni moins qu un outil technologique associé à une fonction marketing...! d améliorer la connaissance d une partie de l environnement et des acteurs associés et de réaliser des modèles d un genre nouveau avec des relations entre des descriptions et des résultats mais pour cela, il faut appliquer le modèle sur certaines variables qui sont capables d expliquer des situations nouvelles pour d atteindre les résultats escomptés. II.6.2 Démarche, méthode et logiciels Le data mining n a rien à voir avec la statistique descriptive mais représente bien une analyse confirmatoire vers une analyse explorative (selon le grand statisticien américain John Wilder Tukey) qui permet de modéliser des grandes bases de données afin de découvrir des nouvelles relations entre certaines données selon : le théorie de l information avec les arbres de décision CART,... l intelligence artificielle (IA) avec les réseaux de neurones, les techniques heuristiques, les méthodes statistiques (analyse discriminante, arbre de décision CHAID, régression...). Remarque 7 Après avoir extrait les données brutes (du domaine informatique et des bases de données), il s agit de les analyser de façon statistique : Les données sont stockées au sein de bases de données relationnelles (tables, clés,...) permettant d élaborer des requêtes et des sripts pour l extraction de données souhaitées selon des échantillons (en provenance du logiciel SAS ou bien d autres) et ce dans un format exploitable ; un modèle le plus adapté possible peut être réalisé au moyen des outils statistiques et de visualisation permettant d importer les données extraites précédemment ; des calculs sont réalisés permettant d afficher des statistiques de base ou bi-variées entre des variables dépendantes ou indépendantes. L objectif du Data mining est de tenter de découvrir des nouvelles règles, de nouvelles tendances ou des structures particulières d informations au sein des SGBD : comportements, styles de vie, profils... Il s agit d anticiper et de décider selon un objectif au sein d un système d information ou d une organisation tout en analysant les risques. Et au final, cela permet d acquérir de la connaissance qui permettra de satisfaire ou non les besoins et les objectifs émis au départ. Cette acquisition ou exploration se fait : 1. en fonction des grands espaces ou volumes de données (des millions d individus ou populations et des centaines de variables numériques ou textuelles) ; 2. et dans des secteurs ou domaines économiques majeurs : hospitalier, banque, téléphonie, grande distribution... Face à la multitude des données présentes dans les bases de données, il est souvent possible de caractériser des tendances ou des comportements : Données vs Connaissances http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -10-

Multitude de données BDD relationnelles BDD transactionnelles Entrepôts de données BDD spatiales Données temporelles Données textuelles et multimédia BDD relationnelles objet Types de connaissances Associations, relations Comportements, profils, tendances Clustering classifications......... Quelques logiciels pour l aide décisionnelle outils logiciels WEKA (libre) TANAGRA ex-sipina(libre) R (libre) SAS SPSS Modeler Editeurs Université de Waikato (NZ) Université de Lyon (FR) Université d Auckland (NZ) SAS Institute IBM Quelques liens internet de ces logiciels http ://www.cs.waikato.ac.nz/ ml/weka/ http ://sipina.over-blog.fr/ http ://eric.univ-lyon2.fr/ ricco/tanagra/en/tanagra.html http ://www.r-project.org/ http ://www.sas.com/offices/europe/france/ http ://www-01.ibm.com/software/analytics/spss/products/modeler/ II.7 - Le NoSQL, pourquoi faire? Définition 3 Le NoSQL signifie littéralement «Not SQL ou Not only SQL» n est pas un nouveau langage SQL avec encore plus de rquêtes, mais plutôt une nouvelle façon d approcher le stockage des données. Ce concept est apparu dans les années 2000 et s est construit pour faire face à des problèmatiques difficiles liées à la multitude de données, et donc à des volumes d enregistrements stockés et modifiés en permanence ; souvent, les données sont réparties et stockées sur plusieurs machines et pas forcément sur le même réseau d entreprise C est une nouvelle technologie capable de proposer une architecture technique pouvant répondre à différents ou nouveaux problèmes et répondre à de nouvelles exigences de société.. Dans un contexte où les données sont considérables, certaines problématiques de gestion de ces données (et leurs bases) peuvent ne pas trouver de solution avec les bases de données classiques et de type relationnelles. Il s agit alors de faire appel à un moteur de bases de données de type NoSQL (comme HBase, Cassabdra, MongoDB ou CouchDB) afin de donner une nouvelle vision ou représentation de l information et donc du stockage, et en s affranchissant : http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -11-

1. des contraintes traditionnelles d atomicité, de cohérence, d intégrité et de durabilité, 2. de la notion de table ou de cellule permettant de stocker des valeurs, 3. du modèle SQL, 4. de la table avec la même structure, 5. tout en complétant les SGBD traditionnels, 6. avec des nouvelles structures de représentation (clé-valeur, document ou collection, colonne). Remarque 8 Le SGBD PostgreSQL qui est similaire à MySQL, comporte plus une approche NoSQL et reste un outil performant dans le monde des SGBD libres. le NoSQL constitue un système de gestion non relationnel, le NoSQL représente une autre façon de penser les bases de données, le NoSQL offre d autres possibilités de stockage des informations. Remarque 9 Il est possible d utiliser des moteurs NoSQL reposant sur différents types de données et en fonction de leur intérêt et selon un système de : clé-valeur : modèle de représentation très simple où chaque valeur est assignée à une clé et permettant un accès très rapide aux informations ; cela est fait pour permettre la gestion de cache et lorsque les opérations de lecture sont supérieures à celles d écriture, ou encore pour la réplication de données et la répartition de charge (moteur Redis pour Remote Dictionnary Server qui est développé en C), colonnes : un autre modèle de clé-valeur avec un très grand nombre de valeurs sur une seule ligne afin de permettre une montée en charge linéaire des opérations de lecture et/ou d écriture et de faire des requêtes par clé (moteur Cassandra pour le Big Data), documents : ajout au modèle clé-valeur d une association d une valeur à une structure formant des objets complexes dans lesquels des ensembles de documents sont rangés dans des collections et à partir desquels il sera possible de faire des requêtes multiples et variées (moteurs CouchDB ou MongoDB pour du stockage de données d applications et de développements web sous la forme de documents XML JSON), graphe : sous la forme de graphes mathématiques avec arrêtes et noeuds, sur lequel chaque noeud possède des propriétés propres et des relations (non évidentes ou variables) avec d autres noeuds. III - CONCEPTION DE BASES DE DONNEES PAR LE MODELE ENTITE-ASSOCIATION (E-A) III.1 - Introduction à la conceptualisation et à la modélisation La conceptualisation est basée sur le modèle conceptuel de de données ou encore appelé MCD qui est une vue d ensemble des données et des liens qui les caractérisent. C est une phase complexe mais essentielle pour la pérennisation et la pertinence des données stockées au sein des bases de données. Le MCD doit être construit le plus juste possible et doit correspondre à la sémantique du domaine modélisé afin de permettre de répondre aux requêtes (SQL notamment) faites par les SGBD. Le formalisme utilisé est le modèle entié-association repris par la méthode plus générale appelée MERISE (Méthode d Etude et de Réalisation Informatique pour les Systèmes d Eentreprise). Aujourd hui, de multiples méthodologies en 1994 (avec Grady BOOCH, James http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -12-

RUMBAUGH et Ivar JACOBSON) tend vers une unification et une normalisation en 2004 où UML2 devient le langage basé sur la programmation orientée objets. Le formalisme UML (Unified Modeling Language ou langage de modélisation objet unifié) constitue une alternative au modèle entité-association, qui est plus une modélisation orientée objet qui rapproche les données des traitements associés. MERIS2 ou UML sont des méthodes d analyse et de conception objet qui se représentent avec des diagrammes de classes qui sont plus expressifs que le modèle entité-association. Ces méthodes consistent à spécifier clairement le problème à résoudre en représentant le système par des concepts objets et un langage de modélisationorienté objets UML. Une description du système est faite de façon statique (type des objets) en terme de classes et de relations entre les classes ; et cela peut être vu comme une extension du modèle entité-association avec des associations et des sous-types d objets : l agrégation, la généralisation et la spécification au niveau des entités (rightarrow classes). La démarche retenue ici sera tout d abord non objet mais sous la forme d objets, globale et par niveaux (conceptuel, logique et physique) en hiérarchisant les étapes. Une expression conceptuelle des données permet la modélisation sous la forme d objets : entités et associations entre les entités. III.2 - Composants du modèle E-A ou Entité-Association L expression et la représentation se basent sur 3 objets ou concpets : des types-entités, des types-associations et des propriétés. III.2.1 types-entités et entités Si les propriétés constituent une petite part des informations au sein des types-entités et des types-associations, alors les types-entités quant à eux décrivent un ensemble d objets identiques ou entités. Définition 4 Le concept de types-entités Les types-entités sont un ensemble d entités comportant des caractéristiques communes. Les entités sont des objets concrets ou abstraits uniques au des types-entités. III.2.2 types-associations et associations Définition 5 Le concept de types-associations et associations. Les types-associations, encore appelés types-relations, sont un ensemble d associations comportant les mêmes caractéristiques et décrivent les liens ou relations entre les types-entités. Les associations, encore appelées relations, sont des liens entre les entités. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -13-

III.2.3 attributs, valeurs, clés d identification et schéma de relation Définition 6 Les concepts d attributs, de valeurs et de clés : Les attributs sont des propriétés qui caractérisent les types-entités et les types-associations et qui comportent des valeurs. Et chacun des attributs est défini sur un domaine de valeurs possibles avec un type bien précis (booléen, entier, texte...). Les entités ont donc des attributs comportant des valeurs sur le domaine y compris la valeur NULL. Les clés sont des identifiants (minimum d attributs) des types-entités ou des types-associations qui permettent d identifier de manière unique les entités ou associations des types-entités (et typesassociations). Un schéma de relation (noté R) constitue un ensemble fini d attributs ; et un schéma de la base de données comporte un ensemble fini de schémas de relation ; et l union de tous les schémas de relation obtenus (par normalisation) représentent le projet ou le schéma final de la base de données. III.2.4 cardinalités sur les type-entités et les type-associations Définition 7 Le concept de cardinalités : c est une étape indispensable pour arriver à normaliser et à typer les données qui seront stockées dans la base de données. Les cardinalités portent sur les types-entités et les types-associations car elles relient (par des pattes) les types-associations aux types-entités en donnant le nombre de fois maximal et minimal de relations des entités dans les associations. Les cardinalités minimales doivent être inférieures ou égales aux cardinalités maximales et sont nécessaires pour chacune des pattes des types-associations. Elles sont égalent au nombre d associations dans lesquelles les entités apparaissent, communément exprimées par 2 entiers (i,j) qui sont respectivement les cardinalités ou le nombre de fois minimales et maximales. Autrement dit, les cardinalités représentent le nombre de fois ou d occurrences où une entité participe à une relation. i = 0 ou 1, j = 1 ou n Les cardinalités minimales ou le nombre de relations sont toujours de 0 ou de 1 et les cardinalités maximales sont toujours de 1 ou de n (n même si ce nombre est parfois connu!) ; pour des raisons pratiques il est nécessaire de laisser n car cela peut évoluer avec le temps. Exemple 3 Pour reprendre l exemple du client qui commande des articles sur le site en ligne, il faut se poser deux questions : quel est le nombre de client qui peut commander des articles? ou combien de clients peuvent commander? combien d articles peuvent être commandés par chaque client? http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -14-

Propriété 3 Les cardinalités reconnues sont : 0,1 une occurrence du type-entité existe que si elle est impliquée dans aucune association et en même temps impliquée dans au maximum une association. 0,n une occurrence du type-entité existe que si elle est impliquée dans aucune association et en même temps impliquée dans plusieurs associations. 1,1 une occurrence du type-entité existe que si elle est impliquée ou concernée précisément par au moins et au plus une association. 1,n une occurrence du type-entité existe que si elle est impliquée ou concernée par au moins une association et n associations. Propriété 4 Il existe trois règles avec les cardinalités pour le passage du modèle conceptuel au modèle logique de données (du MCD au MLD) ; cela se traduit par des suppressions de relations et intégration dans des entités ou par des transformations en entités : pour une relation avec des cardinalités de type (0,n)/(1,1), (0,n)/(0,1), (1,n)/(1,1) et (1,n)/(0,1) : la transformation fait qu il y a disparition ou suppression de la relation et donc, absorption des propriétés associées dans l entité ayant la cardinalité la plus faible, (1,1) ou (0,1). pour une relation avec des cardinalités de type (0,n)/(0,n), (1,n)/(0,n), et (1,n)/(1,n) : la relation va se transformer en table avec les propriétés de départ avec comme clé primaire, composée des 2 clés étrangères faisant référence aux 2 entités. pour une relation avec des cardinalités de type (1,1)/(1,1) : qui est un cas particulier, il y a regroupement au sein d une seule et même entité ou table. III.3 - Normalisation III.3.1 Pourquoi normaliser? La normalisation est fondamentale et se base sur cinq formes normales afin d éviter des anomalies de conception et de modélisation. Le principe est que les types-entités et les types-associations sont en forme normale de niveau n que si elles sont déjà en forme normale de niveau n - 1. Le première étape dans la normalisation est déjà de définir précisément la clé qui identifie par un nombre minimal d attributs et de façon unique les types-entités et les types-associations. C est un processus qui remplace une relation donnée par des projections afin que la jointure de ces projections permette de retrouver la relation de départ et qu elle soit sans perte d information. Cela consiste à normaliser dans chacune des formes normales qui seront abordées ci-après du modèle entité-association (conception) au modèle relationnel ; les relations obtenues doivent être toutes en forme normale. Pour cela, ce sont les dépendances venant du monde réel et du contexte à modéliser qui vont être spécifiées afin que le SGBD puisse les traiter. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -15-

Concrètement, la normalisation consiste à procéder à une analyse et à une recherche des dépendances à l intérieur des tables afin d en éliminer les éventuelles redondances d informations et anomalies à venir. Un attribut devient redondant quand plusieurs de ses valeurs identiques apparaissent dans la même table et qu il peut être éliminié ou évacué au sein d autres tables sans perte d information. III.3.2 Dépendances fonctionnelles ou DF ou en anglais functional dependency Les dépendances fonctionnelles (ou les DF) sont les propriétés les plus élémentaires des relations. Définition 8 Pour un schéma de relation ou une relation R(A,B,C,D) : il existe une DF de A vers B (A > B), ou encore, un attribut B est fonctionnellement dépendant de l attribut A si à chacune des valeurs de A correspond une et une seule valeur de B ; et par conséquent, les attributs non clés dépendent de la clé d identification de manière unique. si deux lignes de R qui ont même valeur de A ont également même valeur de B (valeur au sens de ensemble d attributs pour A et ensemble d attributs pour B). est donc une fonction au sens mathématique où à une valeur de A correspond une seule valeur de B avec un déterminant à gauche et un déterminé à droite. Propriété 5 On a deux propriétés fondamentales : un identifiant d une table est un déterminant de chacune des autres colonnes de la table, et inversement, toute colonne ou groupe de colonnes qui est un déterminant pour chacune des autres colonnes est un identifiant. III.3.3 Décomposition La résolution de certains problèmes comme les phénomènes de redondance d informations passe souvent par la décomposition d une table en deux autres tables distinctes. C est un processus de décomposition tendant à normaliser les tables et le schéma relationnel de la base de données et ce, même au cours du temps et pour des évolutions futures. Après observation et analyse des problèmes potentiels, la décomposition s effectue selon la prise en considération des dépendances fonctionnelles au sein des tables ; Si une DF existe de B vers C, alors une table U(A,B,C) peut être décomposée en deux projections ou deux tables U(A,B) et V(B,C). Ainsi, les tables sont dites normalisées si tous les déterminants sont des identifiants ; et en l occurrence, B est le déterminant qui est l identifiant. On peut déjà voir une forme normale appelée Boyce-Codd ou une 3eme forme normale. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -16-

En plus des DF, Il existe également des dépendances multivaluées (DM) et des dépendances de jointure (DJ) : Les dépendances sont multivaluées lorsqu un sous-ensemble X multidétermine un sous-ensemble Y ou lorsqu il y a affectation de valeurs à chacune des propriétés de ces sous-ensembles. Les dépendances sont de jointure lorsque qu elles sont décomposées en trois ou plus de projections et si une des parties X constitue l ensemble des attributs de R ; et donc chacun des Xi contient une clé candidate de R. III.3.4 Les formes normales Les formes normales (ou normal forms) permettent de détecter des dépendances entre les attributs d une même table et d éliminer toute forme de redondance. Cette analyse permet au final d éviter les anomalies en tout genre sur la base de données : sur les insertions, les suppressions et mises à jour de données. L objectif est d arriver à normaliser en éléminant toute anomalie ; pour cela, il faut arriver à éliminer les dépendances fonctionnelles ( appelées souvent DF) qui ne caractérisent pas des clés, et donc à n avoir plus que des clé à vérifier. Propriété 6 Les formes normales constituant des propriétés doit vérifier le schéma de relation (R) afin d éliminer des anomalies ; elles sont au nombre de cinq pour les principales et sont les suivantes : Première forme normale ou 1FN : c est lorsque tous les attributs sont élémentaires et ne peuvent plus être décomposés et on obtient des valeurs dites atomiques. En relationnel, le schéma sera toujours en première forme normale. Chaque attribut ne peut être décomposé en plusieurs autres. C est une condition fondamentale du modèle relationnel qui va désigner de façon unique un attribut et sans aucune ambiguité. Deuxième forme normale ou 2FN : c est lorque la table est déjà en 1FN et que les attributs dépendent de l ensemble des attributs composant la clé d identification ; ou encore, il existe une relation de dépendance complète entre cette clé et chacun des autres attributs non clés (DF entre la clé et les autres attributs). Troisième forme normale ou 3FN : c est lorque c est en 2FN et qu au plus un attribut n appartient pas à la clé d identification ; et cela peut être des clés candidates. Quatrième forme normale ou 4FN : si et seulement si c est en BCNF et si ne possède pas de dépendance multivaluée au sein de la même table. Forme normale de Boyce-Codd ou BCNF : si et seulement si il n existe pas de dépendances où un attribut (non-clé) déterminant un autre attribut ; autrement dit, si les dépendances fonctionnelles élémentaires sont celles pour lesquelles une clé détermine un attribut non-clé ; cela concerne toutes les clés candidates. On parle de dépendances multivaluées (ou multi-valude dependency). Les dépendances peuvent être souvent transitives (transitive dependency) au sein des tables, à savoir des DF déduites des autres dépendances ; le 3eme FN interdit toute dépendance transitive par décomposition en sous-tables. Toutes les relations ont au moins une décomposition en 3FN telle que les dépendances fonctionnelles sont préservées et qu elles sont sans perte. Il est courant et de pratique d avoir des schémas de relations qui sont en 3FN mais pas forcément en BCNF. Les quatrième et cinquième formes normales concernent plus particulièrement des cas précis de redondance de données et qui ne peuvent pas s exprimer sous la forme de dépendances fonctionnelles. L application de ces formes normales permettent plus facilement de passer http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -17-

du modèle entité-association au schéma relationnel lorsque celui-ci est bien conçu. Les tables doivent comporter chacune une clé d identification accompagnée d une dépendance fonctionnelle entre cette même clé et chacun des attributs. Il peut y avoir également dans les tables ou sous-tables des clés composées et de dépendances fonctionnelles totales où les clés composées déterminent un attribut non clé. Et quand les tables ne comportent plus d attributs non clés la vérification pour les formes normales n est plus nécessaire. III.4 - Guide pratique de la modélisation des données par étape La réussite d un bon modèle entités-associations évite toute anomalie d incohérence et de redondance d informations sur une base de données. Le respect des règles de conception et de normalisation sont essentielles et complémentaires. En résumé, cela résulte dans la succession d étapes et de choix à faire : Il faut choisir des identifiants qui ne changeront pas au cours du temps et non composés de plusieurs attributs ; souvent, il est courant de choisir des identifaints de type entier pour les types-entités qui seront les clés primaires dans le schéma relationnel. Il faut choisir des noms uniques pour les types-entités, les types-associations et les attributs. Il ne faut pas hésiter à décomposer le plus possible les attributs, à savoir que si un attribut est multiple ou composite cela doit devenir nécessairement des types-entités ou des types-associations supplémentaires. Cela respecte donc les règles de formes normales et il est devient donc impossible de se retrouver, au sein de la base de données, avec des données dérivées! Il faut placer tous les attributs dans des types-associations lorsqu ils dépendent de toutes les entités en rapport avec les types-associations. UN GUIDE AVEC ETAPES et EXEMPLE 1. CONTEXTE A MODELISER Le contexte des données à modéliser est la location de véhicules alors...va pour deux séances de pratique! 2. ELABORER LE MODELE ENTITE-ASSOCIATION 2.1. Identifier les entités et les associations a) Entités et attributs A partir des constatations du contexte et des mots clés faire une liste de toutes les informations pertinentes à partir : chaque jour de location est facturé en fonction de la catégorie (tarif journalier de la catégorie), chaque kilomètre parcouru est facturé en fonction de la catégorie, chaque véhicule appartient à une catégorie de véhicules, chaque jour de location contient un fofait kilométrique dépendant de la catégorie, chaque client a un pourcentage de remise appliqué au moment de la location (remise client), chaque date correspond à une et une seule année, 5 types-entités repérés (categorie, vehicule, annee, date, client) 1 relation ternaire (location) entre (client, vehicule, date) afin de stocker les kilométrages parcourus, les dates de début et de fin de location et le montant de la location. Lister les attribts pour chaque type-entité et chaque type-association b) Choix des clés chaque type-entité repéré est identifiable de manière significative par une clé qui peut être soulignée et mise en gras (une distinction à mettre!) categorie (code_categorie), vehicule(immatriculation,...), client (code_client,... ), annee (annee), date (date_debutlocation) http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -18-

c) Associations et attributs A partir des phrases ou des constatations, il est possible de déduire des associations : appartient, correspond, location, tarif déterminer les attributs éventuels des associations et obtenir les schémas de relations : location (date_finlocation,km_parcourus, montant) tarif (prix_km, tarif_journalier, forfait) pour les associations appartient et correspond, pas de stockage d attributs spécifiques. 2.2. Déterminer les cardinalités a) Inventaire des liens entre entités (associations) 3. PASSER AU MODELE RELATIONNEL 3.1. Transformer le modème Entité-Association a) Application de la règle générale On obtient les relations categorie, vehicule, annee, date, client, categorie, vehicule, annee, date, client On obtient les relations suivantes à partir des associations : appartient (), correspond (), tarif ( prix_km,tarif_journalie et location ( date_finlocation,km_parcourus,montant) b) Cas particuliers des associations de cardinalité[1,1] lorsqu une des cardinalités d une association est de type [1,1], la relation représentant l association disparaît et fusionne avec la relation représentant l entité ou l objet comportant la cardinalité [1,1] «aspiration» de l association par l entité ; simplification du nombre de relationset les relations appartient et correspond disparaissent ; c est le cas pour les entités vehicule, date Voici la liste des relations ainsi constituées : 1. categorie (code_categorie) 2. vehicule (immatriculation_veh,marque_veh,modele_veh,kilometrage_veh,code_categorie) 3. annee (annee) 4. date (date_debutlocation,annee) 5. client (code_client,nom_client,adresse_client,tel_client,remise_client,type_client) 6. location (code_client,immatriculation_veh,date_debutlocation,date_finlocation,km_parcourus,montant) http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -19-

7. tarif (code_catégorie,annee,prix_km,tarif_journalier,forfait) 3.2. Vérifier la conformité des formes normales a) Première forme normale (1FN) Chaque champ possède une valeur atomique (pas de multiples valeurs) b) Deuxième forme normale (2FN) Chaque relation vérifiée devient une sous-table La relation tarif devient une sous-table avec une clé composite (code_categorie, annee) et des valeurs nécessaires (prix_km, tarif_journalier, forfait) c) Troisième forme normale (3FN) Il s agit de voir les informations ou champs qui ne font pas partie de la clé d une relation toutes les relations ne sont pas forcément dans cette forme et cela reste acceptable! 3.3. Contrôler les types de données et contraintes a) Les types de données Uniquement d un point de vue MySQL restriction sur les valeurs Description du type est obligatoire NOT NULL quand les valeurs sont obligatoirement renseignées b) Les contraintes d intégrité (CI) sont des expressions logiques qui doivent être vraies à tout moment au sein de la base de données et qui assure une certaine cohérence ; il existe des contraintes d unicité assurées par le SGBD (clés d identification uniques), des contraintes de domaine (valeurs sur un domaine bien défini) et des contraintes d intégrité référentielle (clé étrangère faisant référence à la clé de la table référencée). un véhicule ne pourra jamais avoir 2 numéros d immatriculation ; une location ne peut être faite que si le client est identifié et enregistré avec sa remise... définir un domaine bien précis (restriction) concernant les attributs du véhicule en regardant l ensemble des valeurs possibles pour l attribut modèle, marque, couleur, état, kilométrage... 3.4. Créer les tables a) Manuellement à l aide des requêtes SQL par l interface PhpMyadmin ou par un terminal Sql b) Par un fichier.sql à importer en lançant par exemple sous Linux un éditeur GEDIT avec un fichier.sql à importer par l interface PhpMyadmin ou par un terminal Sql 4. INTERROGER LA BASE DE DONNEES ET APPLIQUER DES TRAITEMENTS...avec les requêtes SQL http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -20-

IV - REPRESENTATION PAR LE MODELE RELATIONNEL Il s agit de présenter les notions essentielles de la modélisation relationnelle se différenciant des ensembles de données. IV.1 - Objectif de la représentation Il existe différentes terminologies quand on parle d ensemble ou de modèle mathématique, de bases de données et de SGBD : modèle mathématique bases de données SGBD relations tables f ichiers t-uplets (tuples) lignes enregistrements attributs colonnes champs La représentation par le modèle relationnel consiste à avoir un ensemble logique de tables indépendamment de la façon dont sont stockées les données. Cette représentation des relations entre les données se base sur la théorie relationnelle basée elle-même sur la théorie mathématique des ensembles. les données sont organisées sous la forme de tables ou de relations ; les données sont manipulées par des opérateurs relationnels ; des contraintres d intégrité sont définies afin de préserver la cohérence du schéma de la base de données. IV.2 - Comment passer du modèle Entiétés-Associations au modèle relationnel? IV.2.1 Règles générales et de base : Relation, domaine, cardinalité et degré Le passage du modèle entités-associations vers le modèle relationnel doit respecter quelques règles : 1. Chaque type-entité donne un schéma de relation avec ses propres attributs, ses clés (primaires, et étrangères) ; 2. Chaque type-association maillé (cardinalité maximale n) donne également lieu à un schéma de relation avec ses attributs et dont l dentifiant sera composé de l ensemble des identifiants des types-entités faisant partie des types-associations ; 3. Chaque type-association binaire (cardinalité maximale 1) ne donne PAS un schéma de relation car c est une dépendance fonctionnelle ; et donc, seulement l attribut clé étrangère est rajouté au type-entité venant de l autre type-entité avec un type-association ayant une cardinalité maximale de 1 ; 4. La phase de normalisation est supposée être appliquée comme expliqué ci-avant, ceci afin d être conforme au modèle entité-association. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -21-

Définition 9 La notion de relation est à la base du modèle relationnel. Une relation R porte sur un ensemble de domaines D1,D2,...,Dn est vue comme une table à deux entrées : ensemble de colonnes ou d attributs fixés et un ensemble de lignes ou t-uplets. Les lignes correspondent à des informations alors que les colonnes correspondent une partie de ces informations. Définition 10 La notion de domaine. Le domaine correspond à un ensemble de valeurs selon les attributs de la table. Chaque attribut est donc défini dans un domaine. Définition 11 La notion de cardinalité. La cardinalité de la relation est le nombre de t-uplets ou de lignes d informations ou encore d occurrences composant la relation. Définition 12 La notion de degré de la relation. Le degré est le nombre d attributs de la relation. IV.2.2 Règles particulières Un type-association ayant des cardinalités maximales 1 vers 1 : Cela ne se traduit pas au niveau relationnel par un schéma de relation. Chaque type-entité récupère une clé étrangère qui fait référence à l autre type-entité ou au schéma de relation de celui-ci. Comme le type-association est complètement matérialisé dans le schéma de relation des types-entités en tant que clés étrangères, alors son schéma disparaît et un choix est fait pour faire migrer la clé primaire en tant que clé étrangère sur l un des types-entités. Par exemple, pour le schéma relationnel avec le type-association Localiser entre les tables CINEMA et ADRESSE, alors on obtient : ADRESSE (id_adresse,adresse,code_postal,ville,id_cinema) où id_cinema est une clé étrangère qui fait référence au schéma de relation CINEMA CINEMA (id_cinema,nom_cinema,tel_cinema,id_adresse) où id_adresse est une clé étrangère qui fait référence au schéma de relation ADRESSE Le choix de la matérialisation fait est que seule la clé id_adresse migre vers le type-entité CINEMA. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -22-

Un type-entité n ayant que sa clé comme attribut : Dans ce cas il n y a pas forcément un schéma de relation car il n amènerait pas réellement d informations. Cela se matérialise au niveau du type-association qui récupère comme clés étrangères les clés primaires des de chacun des types-entités en plus de son attribut. IV.2.3 Intégrité des données : clés, valeur NULL et schéma relationnel Les SGBD préservent de façon automatique la cohérence des données en vérifiant les données lors de mises à jour et en les répercutant au sein des tables possèdant des contraintes de référence et lors de leur chargement. Par ailleurs, d autres règles permettent également de préserver l intégrité des données comme : les clés d identification uniques, les clés étrangères qui sont des contraintes de références entre des relations, les contraintes de domaine par rapport aux attributs. Propriété 7 Une clé dans l espace relationnel (pour une relation R) peut avoir plusieurs formes tout en étant unique. la super-clé pour une relation R est un sous-ensemble de l ensemble des attributs de R identifiant de façon unique chaque t-uplet de la relation R ; une relation peut avoir plusieurs clés candidates qui sont un ensemble de valeurs ou d attributs qui identifient bien une information ; la clé primaire est unique car elle est choisie parmi les clés candidates permettant un adressage dans la relation et un repérage de leurs t-uplets ; la clé étrangère dans R est un sous-ensemble C, de l ensemble des attributs de R tel qu il existe une relation R comportant une clé candidate C ; il y a un lien entre les relations R et R car les valeurs sont identiques. La valeur NULL permet de ne pas renseigner les données dans les tables de la base de données. C est une convention de la relation R pour laquelle la valeur d un attribut est inconnue ou non indispensable qui représente l absence de valeur. Cela a l avantage de pouvoir traiter l ensemble des données et même quand elles n existent pas dans la base. Pour cela, il faut préciser lors de la création des tables de la base si un attribut peur prendre ou non la valeur NULL (NULL ou NOT NULL). Par conséquent, les attributs composant la clé primaire d une relation ne peuvent pas prendre la valeur NULL. En revanche, une clé étrangère pourrait se voir affecter une valeur NULL si l intégrité référentielle est respectée. Des régles de mise à jour peuvent être évoquée afin que l intégrité référentielle et la cohérence de la base soient préservées (RESTRICTED, NO ACTIOn, CASCADE, NO CHECK...). Exemple 4 Par exemple, pour la table CINEMA, il pourra être possible de voir pour l attribut Tel_cinema la valeur NULL (3, MEGARAMA, 18 Rue Ecole Valentin, Besançon, 25000, NULL) Le schéma relationnel est composé de l ensemble des schémas de relations avec les clés primaires et étrangères. La base de données est donc relationnelle étant donné qu elle comporte tous les n-uplets des différentes relations du schéma relationnel. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -23-

IV.2.4 Les types de données Un certain nombre de types de données existe afin de définir exactement les données correspondant aux attributs des relations du modèle relationnel. 1. Les données de type numérique : des entiers ou des réels. 2. Les données de type chaînes de caractère : du texte au sens littéral avec un nombre de caractère à préciser. 3. Les données de type date : stockant heure, mois, année et jour. 4. Les données de type booléen : stockant des valeurs binaires comme vrai/faux, 0 ou 1. 5. D autres type de données : images, vidéos, sons... TYPE DESCRIPTION REMARQUE LONGTEXT objet longueur max 4294967295 CHAR Chaîne chaîne VARCHAR Chaîne taille variable de n variable de 1 à 255 caractères BOOLEAN Booléen DATE Date DATETIME Date et heure TIME Heure mesure de l heure TIMESTAMP Date et heure en secondes 1970 à 2037 YEAR Année DECIMAL(m,n) nbre en virgule f ixe ou f lottante FLOAT Réel sur n bits REAL Réel SMALLINT Entier sur 16bits INTEGER Entier sur 32 bits entier non signé 0 4294967295 TEXT ou BLOB Objet tout type photo ou fichier max 65535 http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -24-

IV.2.5 Les opérateurs relationnels Les langages relationnels, permettant d effectuer des traitements sur les bases de données, sont fondés sur l algèbre relationnelle et donc un ensemble d opérateurs algébriques. Ces opérateurs s appliquent toujours à des tables des bases de données et sont de deux types : ensemblistes et relationnels. Le princpe est d appliquer ces opérateurs, de façon combinée ou non sur deux tables R et S pour obtenir une nouvelle table de résultats ou relations. Les opérateurs ensemblistes sont les opérateurs portant sur des ensembles : Intersection, union, différence et produit cartésien. Intersection : créé une relation T faisant apparaître tous les t-uplets (ou enregistrements) présents à la fois dans les tables R et S (T = R S); Union : créé une nouvelle relation T faisant apparaître tous les t uplets (sans les doublons) d au moins une des deux relations et S(T = R S); Différence : créé une relation T faisant disparaître de R tous les t uplets qui sont également présents dans S (T = R S); P roduitcartésien : créé une nouvelle relation T résultant de la combinaison des t uplets des deux tables R et S (T = RXS). D autres opérateurs relationnels qui portent sur des tables : Projection, sélection et jointure. L opérateur de projection est symbolisé par le caractère Pi noté π; cet opérateur construit à partir de la table R, une sous table dont les attributs sont définis dans M. L opérateur de sélection est symbolisé par le caractère sigma noté σ, qui extrait des tuples d une table R selon un critère de sélection ou une f ormule F (attributs précis ou constantes liés entre eux par des opérateurs comme AND, OR, NOT <, > ou =); σ F (R). L opérateur de jointure (ou équi jointure avec l opérateur égal =)représenté par le symbole x qui combine deux tables R et S en une nouvelle table selon une condition de jointure P : R X ps; cela peut être vu comme un simple produit cartésien restreint quand il n y a pas de condition. Et des opérateurs comme la division, autres jointures L opérateur de division notée, sur deux tables R et S (R) produit une sous table R est divisée par S à condition que S soit une sous table de R cet opérateur peut s exprimer en fonction des opérateurs de projection, de dif f érence et du produit cartésien. etd autresjointures... Tous ces opérateurs de l algèbre relationnelle vont permettre d optimiser les requêtes de type SQL au sein du langage du SGBD. http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -25-

V - LANGAGE SQL : QUE PERMET-IL DE FAIRE? V.1 - Présentation et un bref historique SQL signifie Structured Query Language ou langage d interrogation structuré 1. 2. Il est relationnel au même titre que QUEL (Query Language) ou QBE (Query by Example) et bien d autres ; il manipule des bases de données relationnelles en donnant les caractéristiques des données sans se soucier de leur chemin d accès ; il est associé à un système SGBDR (MysSQL ou PostgreSQL) qui comporte un interpréteur de commandes avec des instructions lesquelles s appuient sur les opérateurs de l algèbre relationnelle. il est un langage normalisé (SQL2 ou 3) et déclaratif avec des expressions car il permet d obtenir des réponses à des requêtes faites sur la base de données ; il réalise un calcul en donnant un résultat par des expressions logiques sur des tuples ou des enregistrements de données. Une histoire entre IBM et ORACLE SQL a été créé au début dans les années 1970 par IBM et sa première version commercialisable a vu le jour en 1979 ; depuis il a été repris par le groupe ORACLE qui a lancé son premier SGBDR et a été normalisé par l ANSI en 1986 et ratifié par l ISO en 1987 ; Exemple 5 L architecture SQL retenue est MySQL : est un outil basé sur le modèle relationnel, est basé sur le modèle client-serveur, est une application légère la plus répandue et souvent utilisée pour le Web, développée par la société ABSoft et rachetée par SUN en 2008 et maintenant sous licence GPL pour un usage libre, possède une grande interopérabilité. MySQL est le plus souvent en mode réseauau sein d une entreprise : 1. un serveur avec un SGBDR comportant MySQL ou autres... ; 2. accessible via une adresse IP (exemple : 192.168.0.222) ou un nom de machine (serveur.entreprise.fr) ; 3. utilisant un port ou protocole par défaut comme le 3306. MySQL peut être utilisé en local ce qui est la cas pour les TDs et TPs, où l architecture serveur est également cliente sur une adresse IP de type 127.0.0.1 (ou localhost). MySQL est accessible via une interface ou en ligne de commande 1. si c est par l interface web, il faut utiliser le programme PhpMyAdmin via l adresse http ://locahost/phpmyadmin 2. des utilitaires sont mis à disposition comme mysqldump, mysqladmin 3. des options générales existent en ligne de commande dans un shell mysql : -u [user] -p [password] -h [hote]... http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -26-

V.2 - Définir et manipuler les données A ce niveau de langage, il devient possible de donner le schéma physique de la base de données avec les données à stocker au sein des tables. Et il devient possible de faire des requêtes sur les tables préalablement créées par des ordres ou des commandes qui souvent classées en quatre groupes : DQL (Data Query Language) correspondant à l interrogation des données par la commande principale : SELECT ; DDL (Data Definition Language) correspondant à la définition des données par les commandes : CREATE, DROP, RENAME et ALTER ; DML (Data Manipulation Language) correspondant à la manipulation des données par les commandes : DELETE, INSERT et UPDATE ; DCL DCL (Data Control Language) correspondant au contrôle par les commandes : GRANT, COMMIT, REVOQUE. Propriété 8 Pour cela, il faut satisfaire : des contraintes sémantiques ou des règles de nommage des contraintes de domaine correspondant à des valeurs d attributs valides ce qui permet de créer des tables avec des attributs avec l instruction CREATE TABLE des contraintes de nullité imposant que la valeur d un attribut soit renseignée et NOT NULL des contraintes d unicité avec des clés d identification uniques ou primaires (PRI- MARY KEY) des contraintes de référence ou de clés étrangères où des valeurs d une table doivent correspondre à des valeurs d une autre table (REFERENCE) http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -27-

V.3 - Les actions possibles du langage SQL Propriété 9 Les actions possibles du langage SQL sur les bases de données sont de plusieurs sortes : interroger les données instruction SELECT pour interroger des tables de la base instructions INSERT, UPDATE pour ajouter, modifier des lignes dans une table instruction DELETE pour supprimer des lignes créer, modifier et supprimer des occurrences dans une relation et les relations dans une base de données instructions CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE, DROP VIEW, DROP INDEX mettre à jour les données instructions INSERT INTO, UPDATE Exemple 6 1. la structure de base SELECT attributs FROM tables WHERE condition ; 2. l instruction SELECT correspond à l opérateur de projection SELECT * FROM table, SELECT attributs FROM table ; 3. l instruction WHERE avec conditions de type jointures et opérateurs AND et OR SELECT * FROM table WHERE attribut1= XX AND attribut2= YY ; 4. l instruction FROM correspond au produit cartésien de tables FROM tables WHERE condition ; 5. fonctions prédéfinies ou intégrées et appelées dans l instruction SELECT SELECT COUNT, SELECT SUM, SELECT AVG V.3.1 Les créations de tables Une fois que tous les attributs et toutes les contraintes ont été définis, alors seulement il devient possible de créer les tables. Cela consiste à spécifier les colonnes des tables avec leurs noms, leurs types et éventuellement leurs contraintes afin de respecter l intégrité des données. Exemple 7 Pour créer la table cinema avec ses attributs il faut utiliser l instruction CREATE TABLE NOM_Table (Nom_attribut1 type1, Nom_attribut2 type2,...) ; CREATE TABLE CINEMA ( id_cinema NUMBER, nom_cinema VARCHAR(30), ville_cinema VARCHAR(30), tel_cinema VARCHAR(14) ) ; http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -28-

V.3.2 Les requêtes simples Le langage SQL permet de manipuler les données des bases de données par des requêtes simples de consultation, d ajout, de suppression et de modification de données. Ces instructions peuvent comporter plusieurs clauses pouvant être couplées à des fonctions d agrégation (COUNT, MAX, MIN, AVG). SELECT liste_atttributs, ou SELECT DISTINCT prenant en compte que des valeurs distinctes évitant les doublons, caractère pour tous les attributs d une table, AS cela permet de renommer une colonne ou de nommer les résultats dans une requête, FROM liste les tables pour indiquer les relations utilisées par la requête, ou définir une relation qui est le produit cartésien de relations, ou de déclarer des jointures, WHERE critères de sélection pour indiquer les t-uplets dans une relation ou dans un produit cartésien de relations, ou pour définir des critères de sélection, GROUP BY liste les attributs par groupe V.3.3 Les vues et les index Il est courant d utiliser des vues pour des données qui ne sont pas toujours stockées dans des bases données physiques sur des serveurs centraux. Ce sont souvent des données temporaires ou permanentes délocalisées et permettant une visualisation ou une exploitation directe des informations. Définition 13 On appelle les vues, des tables de données virtuelles qui font référence à d autres tables réelles stockées physiquement sur les serveurs de bases de données. Les vues ne stockent donc pas les données mais bien les références à ces données se situant dans une ou plusieurs tables via des requêtes. Elles constituent le résultat de requêtes de type SELECT faîtes sur la base de données. Propriété 10 Les possibilités d utilisation des vues sont multiples : permettre à des usagers ou utilisateurs d accéder qu à certaines données de la base ou des tables afin d exploiter éventuellement ces données qui portent sur un domaine bien précis ; cela permet donc de dissocier l aspect visuel des données de l aspect conceptuel pour un groupe d utilisateurs extérieurs (des statisticiens par exemple) à la conception de la base de données ou pour un domaine précis ; simplifier l utilisation de cartaines tables qui comportent de nombreuses colonnes et lignes afin d améliorer la lisibilité des données ; fournir des données toujours actualisées pour des requêtes utilisées régulièrement. Exemple 8 Pour créer une vue CREATE VIEW Nom_View AS SELECT...FROM...WHERE... ; CREATE VIEW Cinema_Belfort AS SELECT * FROM CINEMA WHERE ville_cinema = BELFORT ; http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -29-

Pour supprimer une vue DROP VIEW Nom_View Par ailleurs, la création d un index évitera de parcourir les données de toute la table et ce, du premier jusqu au dernier enregistrement ; cela va créer le plus souvent comme un arbre binaire ou B-tree (ou arbre B) ; face à une augmentation toujours croissante des données, la présence d un index permet d accélérer les recherches. Souvent, la clé primaire ou d identification unique est un index lors de la création de la base de données et souvent créé par l outil SGBD. Exemple 9 Pour une table de 1000 tuples ou enregistrements, la recherche se fait 100 fois plus rapidement avec la présence d un index. Pour créer un index CREATE INDEX Nom_index USING BTREE ON Nom_table (champ_nom) ; CREATE INDEX Client_index USING BTREE ON Client (Nom) ; V.3.4 Les jointures Les jointures permettent d extraire les données de plusieurs tables selon des conditions sur les colonnes. C est un produit cartésien entre les tables. Définition 14 On appelle les jointures, des opérations composées d un produit cartésien et d une sélection. Les possibilités de création des jointures sont multiples : avec la clause WHERE ou jointure interne (INNER JOIN ou JOIN) Exemple 10 SELECT * FROM R, S WHERE condition de jointure ; SELECT * FROM FILM,PROJECTION WHERE FILM.Titre = PROJECTION.Titre ; avec l opérateur JOIN (INNER JOIN pour des jointures internes, OUTER JOIN pour des jointures externes) Exemple 11 SELECT * FROM R opérateur-de-jointure ON condition-de-jointure ; SELECT * FROM FILM INNER JOIN PROJECTION ON FILM.Titre = PROJECTION.Titre ; SELECT * FROM FILM LEFT OUTER JOIN PROJECTION ON FILM.Titre = PROJECTION.Titre ; V.4 - Insérer et modifier les données C est la commande INSERT qui permet d insérer des données et donc une ligne d informations dans les tables. Il s agit donc d insérer des valeurs pour chacun des types d attributs prédéfinis. Exemple 12 Pour insérer dans la table cinema avec ses attributs il faut utiliser l instruction INSERT INTO NOM_Table [(nom_colonne1(ou nom attribut1), nom_colonne2,...)] VALUE (valeur1_colonne1, valeur2_colonne2,...) ; CREATE TABLE CINEMA ( id_cinema NUMBER, nom_cinema VARCHAR(30), code_postal VARCHAR(5), ville_cinema VARCHAR(30), tel_cinema VARCHAR(14) ) ; http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -30-

C est la commande UDAPTE qui permet de modifier des données et donc des lignes d informations dans les tables. Exemple 13 Pour insérer dans la table cinema avec ses attributs il faut utiliser l instruction UPDATE NOM_Table SET NOM_colonne1(ou attribut1) = expression(ou valeur1),...,expression(ou valeurn) WHERE condition ; UPDATE CINEMA ( SET code_postal = 25030 WHERE ville_cinema = Besançon ) ; Attention, avant de supprimer des objets ou des informations de la base de données! Pensez à faire une sauvegarde avant de procéder à ces modifications. Exemple 14 Pour supprimer une table, un index ou un titre de film, il faut utiliser l instruction : DROP TABLE NOM_Table ; DROP INDEX NON DELETE FROM TABLE WHERE condition ; DELETE FROM FILM ( WHERE titre = ROBOCOP ) ; V.5 - Interroger des bases de données C est la commande SELECT qui permet d interroger les bases de données par des requêtes en sélectionnant certaines colonnes (par une projection) et certaines lignes d une table selon leur contenu (par une sélection), en réalisant des jointures de toutes sortes qui combinent des informations de plusieurs tables. La combianison de plusieurs actions ou opérations sur les tables et relations permet d obtenir des résultats temporaires ou permanents. La syntaxe appropriée avec SELECT prend la forme suivante avec des apostrophes pour les chaînes de caractères et des apostrophes doubles pour des noms de tables ou de colonnes : la clause SELECT précise les attributs en sachant que le caractère (*) équivant à tous les attributs de la table ; elle réalise une projection. la clause FROM précise les tables sur lesquelles porte la requête et équivant au produit cartésien des tables concernées ; elle permet de réaliser également des jointures. la clause WHERE est une opération de sélection qui énonce donc éventuellement une condition. la clause GROUP BY précise si l on souhaite réaliser des groupes ou des sous-ensembles. la clause HAVING précise éventuellement un filtre sur le résultat d un regroupement. la clause avec des opérateurs ensemblistes (UNION, INTERSECT, EXCEPT). l opérateur AS permet de renommer une colonne ou de nommer une colonne pour la requête la clause ORDER BY permet de trier les lignes de résulat de la requête. La clause SELECT : le caractère (*), récupère automatiquement tous les attributs de la table générée par la clause FROM ; l opérateur DISTINCT (avec la clause SELECT) permet d éliminer tous les doublons, sinon c est l opérateur ALL qui est utilisé par défaut ; http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -31-

Exemple 15 SELECT [ALL DISTINCT] * expression [AS resultataafficher] ; SELECT DISTINCT id_personne,nom,prenom FROM PERSONNE,JOUE WHERE PERSONNE.id_personne = JOUE.id_film ; SELECT * FROM CINEMA ; SELECT COUNT(*) FROM CINEMA ; SELECT ville_cinema, nom_cinema AS liste FROM CINEMA ; SELECT id_personne,nom,prenom FROM PERSONNE ORDER BY nom DESC ; SELECT * FROM PERSONNE WHERE PERSONNE.prenom = Robert AND PERSONNE.date_naissance = 15/10/1967 ; Exemple 16 Pour intérroger la base afin de savoir les genres qui n ont pas de films : SELECT GENRE.id_genre,GENRE.nom ( FROM GENRE WHERE FILM.id_film IS NULL ) ; VI - LIENS INTERNET ET REFERENCES BIBLIOGRAPHIQUES liens internet Présentation d http ://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/presen des-bases-de-donnees-2ss p art 1 Wiki sur les tuples en anglais http ://en.wikipedia.org/wiki/tuple Wiki sur les bases de données http ://fr.wikipedia.org/wiki/base_de_données Site Wiki sur Edgar_F CODD http ://en.wikipedia.org/wiki/edgar_f._codd Publications de Thomas CONNOLLY http ://cis.uws.ac.uk/thomas.connolly/index.htmpublications lien internet sur MySQL http ://www.mysql.fr/ téléchargement de AnalyseSI - a Merise analysis tool https ://launchpad.net/analysesi lien internet sur PostgreSQL http ://www.postgresql.org/ lien sur une classification en ligne des génomes http ://www.genomesonline.org/cgi-bin/gold/index.cgi lien internet sur MariaDB https ://mariadb.org/ lien internet sur PhpMyAdmin http ://www.phpmyadmin.net/home p age/index.php sondage 2012 sur les domaines d application du Data mining http ://www.kdnuggets.com/polls/2012/whereapplied-analytics-data-mining.html lien sur les algorithmes appliqués au Data mining http ://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.219.6784 comparatif des bases de données NoSQL http ://www.journaldunet.com/developpeur/outils/comparatifdes-bases-nosql/ lien sur l outil WAMPSERVER http ://www.wampserver.com/ http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -32-

lien sur le respect des normes SQL avec MySQL version 5.7 http ://dev.mysql.com/doc/refman/5.7/en/compatibility.h lien sur le manuel de référence MySQL version 5.7 http ://dev.mysql.com/doc/refman/5.7/en/index.html lien vers LAMP sur Ubuntu http ://doc.ubuntu-fr.org/lamp lien sur l outil EASYPHP http ://www.easyphp.org/ Références bibliographiques Andreas Meier, Introduction pratique aux bases de données relationnelles, Collection IRIS Springer, 2006 (ISBN 2-287-25205-3) Codd, E.F. "A Relational Model of Data for Large Shared Data Banks", CACM 13 N6 juin 1970 (Article de base qui introduit les concepts fondamentaux) Laurent AUDIBERT, Bases de données de la modélisation au SQL, Ellipses, 2009 (ISBN 978-2-7298-5120- 0) Georges GARDARIN, Bases de Données, Ed. Eyrolles, 2003 (EAN13 : 9782212112818) Hubert TARDIEU, Arnold ROCHEFELD, René COLETTI, La méthode Merise. Principes et outils, Ed. Editions d Organisation, 1983 Arnold ROCHEFELD, Jose MOREJON, La méthode Merise - Tome 3, Ed. Editions d Organisation, 1989 (EAN13 : 9782708110571) Jacky AKOKA et Isabelle COMYN-WATTIAU, Conception des Bases de Données Relationnelles, Ed. Vuibert, 2001 (ISBN 2-7117-8678-1) Jérôme GABILLAUD, SQL et Algèbre Relationnelle, 3eme édition ENI, 2010 (ISBN 978-2-7460-5472-1) Rudi BRUCHEZ, Les bases de données NoSQL, Eyrolles, avril 2013 (EAN13 : 9782212135602) Jean-Luc HAINAUT, Bases de données, 2eme édition DUNOD, 2012 (ISBN 978-2-10-057410-0) Eric GODOC, SQL les fondamentaux du langage, édition ENI, 2011 (ISBN 978-2-7460-7010-8) R.STEPHENS, R.PLEW, A.JONES, SQL 5eme édition, Pearson, 2012 (ISBN 978-2-7440-7582-7) http://lmb.univ-fcomte.fr/richard-ferrere richard.ferrere@univ-fcomte.fr -33-