Conception de Base de Données Explication sur la Conception de Base de Données



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

Bases de Données. Plan

Le langage SQL Rappels

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. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Base de données relationnelle et requêtes SQL

Mercredi 15 Janvier 2014

1 Modélisation d une base de données pour une société de bourse

1 Introduction et installation

Les bases de données

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

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

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

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

Gestion des bases de données

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

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

MODE OPERATOIRE OPENOFFICE BASE

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

Optimisations des SGBDR. Étude de cas : MySQL

Création de Sous-Formulaires

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

PHP 5. La base de données MySql. A. Belaïd 1

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

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Dossier I Découverte de Base d Open Office

Bases de données et interfaces Génie logiciel

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

Les bases de données Page 1 / 8

Armand PY-PATINEC 2010

Java DataBaseConnectivity

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Bases de données élémentaires Maude Manouvrier

CATALOGUE FORMATIONS DOMAINE Bases de données

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Les Utilisateurs dans SharePoint

Developpement de sites web

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

Introduction aux SGBDR

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

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

CONCEPTS ET MANIPULATIONS DE BASE

Bases de données relationnelles

CREATION WEB DYNAMIQUE

Créer une base de données

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

Diminuer les taches administratives, mieux gérer les objectifs, valoriser le travail, mettre à disposition un support de vente de qualité.

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Installation d'un serveur FTP géré par une base de données MySQL

RÉALISATION D UN SITE DE RENCONTRE

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

La présente publication est protégée par les droits d auteur. Tous droits réservés.

TP Bases de données réparties

Mise en œuvre du PGI dans les enseignements tertiaires

Contrat d'assistance Technique PyKota entre :

Tickets 3:3. ChevauxPartants

Langage SQL : créer et interroger une base

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

A. Introduction. Chapitre 7

CESI Bases de données

Conception d une base de données

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

Introduction à JDBC. Accès aux bases de données en Java

A QUOI SERVENT LES BASES DE DONNÉES?

.../5. Gestion de Bases de Données (J. Wijsen) 27 janvier 2011 NOM + PRENOM : Orientation + Année : Cet examen contient 8 questions. Durée : 2 heures.

Atelier 1. Portails documentaires : BioLib et Cemadoc

TD n 10 : Ma première Base de Données

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Cours: Administration d'une Base de Données

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

Serveur Hôte : Serveur physique configuré et administré par GROUPE PULSEHEBERG.

Plan. Excalibur. Les opérations sur données. SQL or not SQL? Backups. Inter opérabilité

Compétences fonctionnelles et techniques

PROJET DE PORTAIL INTRANET YNNA

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Utiliser une base de données

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Catalogue De Formation Pour Les Entreprises

Bases de données cours 1

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Chapitre 07 Le modèle relationnel des données

LoReNa : pour dynamiser votre Relation Client (CRM)

A5.2.4 Étude d une technologie, d'un composant, d'un outil

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

Une famille d'applications permettant à toute organisation d'optimiser le suivi et la gestion de ses ressources internes vous présente

Java et les bases de données

PROCEDURE D HEBERGEMENT D UN SITE WEB

Initiation à Excel. Frédéric Gava (MCF)

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)

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

--- SIDOMTECH (Auto-Entreprise) ---

Bases de données avancées Introduction

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

16H Cours / 18H TD / 20H TP

SQL Server et Active Directory

Transcription:

Conception de Base de Données Explication sur la Conception de Base de Données Introduction A la vue de plusieurs questions sur les bases de données, et surtout la conception du schéma de base. En effet, bien souvent les problèmes de certaines personnes sont dus à des bases mal pensées à la base, et qui par la suite peuvent empêcher certaines possibilités qui peuvent être demandées dans la vie d'un projet. Cet article n'est pas à but théorique mais va être développé à partir d'un exemple de façon à mieu comprendre l'importance de la réalisation du schéma de base, avant de s'attaquer au codage (que ce soit en ASP ou PHP). Projet de Site Marchand Je vais choisir un exemple simple que tout le monde pourra facilement comprendre, car tout le monde a déjà été confronté à un site marchand avec vente d'articles en ligne. Définition du projet Ce site va être très simple avec une demande d'identification de l'acheteur afin de mémoriser les articles déjà commandés pour chaque acheteur. On va faire un site simple avec une liste d'articles proposés très basique et des information basique pour les utilisateurs, on peut encore bien plus perfectionner la base. Définition des besoins On va simplement stocker les informations basiques concernant les articles (Nom, Prix Définition, Marque) et les informations nécessaires à l'envoie de ces produits à l'acheteur (Nom, Prénom, Adresse, Code Postal, Ville, Pays, Mot de passe). Donc d'aspect on peut déjà dire que les informations à stocker sont très simples et que la base ne va pas être très compliquée à monter. NB : Dans tous les projets, il existe un cahier des charges. Il est soit implicite (cas d'un développement personnel), soit explicite (quand le projet est demandé par une autre personne). De même, il peut être écrit (cas des contrats entre client et vous) soit oral (cas où un supérieur vous demande de lui faire un site ou une page,...). Quoi qu'il en soit, celui-ci devra toujours rester à l'esprit de la personne qui va réaliser le projet, car il sera le fil conducteur de celui-ci. Dans le cas contraire, on risque de déroger à la demande originale et de finir complètement hors sujet.

Donc, pour cet exemple, nous avons besoin : Une Liste des articles afin de présenter ceux-ci à l'acheteur potentiel Un stockage des informations sur le client pour son historique des achats Un enregistrement de l'utilisateur avec identification par mot de passe, afin que celuici puisse voir ce qu'il a déjà acheté (un peu comme Amazon) On voit ici que la même marque peut arriver plusieurs fois (donc on va scinder la table article en 2 avec une table article réelle et une table Marque, avec un lien entre les 2) De la même facon pour le Pays et la ville qui sont des données redondantes On a donc la liste des besoins référencés, on va donc voir comment représenter les données et donc la base. Données à stocker Pour chaque table, on va lister les données à stocker dans cette base, table par table, en précisant le type de donnée qui va être choisi (non obligatoire). ARTICLES id_article (Clé unique primaire et autoincrémentée) nom_article (Champ type texte) prix_article (Champ type numérique) definition_article (Champ type texte à taille variable - memo(sous Access) ou nvarchar(sous SQL Server)) marque_article (Champ numérique en liaison avec la table MARQUE, correspondra à l'id de la marque) MARQUE id_marque (Clé unique primaire et autoincrémentée) nom_marque (Champ type texte) ACHETEUR id_article (Clé unique primaire et autoincrémentée) nom_acheteur (Champ type texte) prenom_acheteur (Champ type texte) adresse_acheteur (Champ type texte) code_postal_acheteur (Champ type texte) ville_acheteur (Champ numérique en liaison avec la table VILLE, correspondra à l'id de la ville) pays_acheteur (Champ numérique en liaison avec la table PAYS, correspondra à l'id du pays) password_acheteur (Champ type texte) VILLE id_ville (Clé unique primaire et autoincrémentée) nom_ville (Champ type texte) PAYS id_pays (Clé unique primaire et autoincrémentée) nom_pays (Champ type texte)

On voit ici le schéma avec les relations entre les tables : Donc la nous avons une base qui nous permet d'avoir la liste des produits et la liste des utilisateurs en utilisant des jointures simples entre 2 tables (ARTICLE-MARQUE) de la même façon pour la table ACHETEUR. Ainsi pour avoir les informations complètes d'un article, il suffit de faire une requette du type : SELECT * FROM MARQUE m, ARTICLE a WHERE a.marque_article=m.id Je vous laisse imaginer la même pour les acheteurs (pour les requettes, voir ici )

Il nous manque maintenant un système afin de pouvoir avoir la liste des produits achetés par les visiteurs. Pour ça il va falloir passer par une table intermédiaire qui va permettre d'avoir la liste des utilisateurs ayant acheté des produits. Cette table va donc contenir trois champs numériques simples. LISTE_ACHATS id_liste_achats (Clé unique primaire et autoincrémentée) id_acheteur (Champ numérique en liaison avec la table ACHETEUR, correspondra à l'id de l'acheteur) id_article (Champ numérique en liaison avec la table ARTICLE, correspondra à l'id de l'article) On a donc le schéma final avec les relations entre les tables : Vous vous demandez certainement pourquoi mettre une clé unique dans cette table de liaison, c'est simplement pour la maintenance de cette table afin qu'il 'y ai jamais de doublons, car les doublons sont toujours problématiques dans les bases de données. Ainsi si on veut modifier l'id de l'utilisateur ou du produit sur un achat xxx, ça sera simple. Téléchargement de l'exemple Le téléchargement se fait ici : - http://fromelard.free.fr/scripts/conception_base/

Conclusion J'espère que cette petite explication vous aura aidé dans la réalisation de vos projets. Toutefois, je vous conseille de commencer par des bases simples. Cette explication est applicable sur tous les types de base de données relationnelle (SGBDR), que ce soit Access ou MySQL ou encore ORACLE, c'est un principe général et on peut une fois la base comprise gérer des bases avec énormément de tables (pour info mon futur produit en cours de développement fait 26 Tables, mais ça sera un autre article :)) ) F