Projet de Base de données



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

CREATION WEB DYNAMIQUE

Bases de données relationnelles

Cours Bases de données 2ème année IUT

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

SQL Historique

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Olivier Mondet

Création et Gestion des tables

Application web de gestion de comptes en banques

Langage SQL : créer et interroger une base

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

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

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

TP3 : Creation de tables 1 seance

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

Compétences Business Objects

1. Base de données SQLite

TP Contraintes - Triggers

Historisation des données

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

I4 : Bases de Données

Corrigés détaillés des exercices

A QUOI SERVENT LES BASES DE DONNÉES?

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Pratique et administration des systèmes

Les BASES de DONNEES dans WampServer

Gestion de base de données

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Master Exploration Informatique des données DataWareHouse

1 Position du problème

Le Langage De Description De Données(LDD)

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

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

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

BTS/CGO P10 SYSTEME INFORMATION Année

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

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

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

I. MySQL : Serveur et SGBD

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Le Langage SQL version Oracle

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Objectifs du TP : Initiation à Access

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Le commerce électronique (ou e-commerce)

Partie 0 : Gestion des tablespace et des utilisateurs... 3

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

OpenPaaS Le réseau social d'entreprise

A QUOI SERVENT LES BASES DE DONNÉES?

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Devoir Data WareHouse

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

Auto-évaluation Oracle: cours de base

Cours: Administration d'une Base de Données

Encryptions, compression et partitionnement des données

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

Stockage du fichier dans une table mysql:

.../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.

Les bases de données

Le langage SQL Rappels

PROJET 1 : BASE DE DONNÉES REPARTIES

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

SUPPORT DE COURS / PHP PARTIE 3

Cours SQL. Base du langage SQL et des bases de données

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Intégrité sémantique dans les bases de données relationnelles

FileMaker 13. Guide de référence SQL

BIRT (Business Intelligence and Reporting Tools)

Karine PEREIRA Animatrice manager Cyber-base de la Nièvre FOURCHAMBAULT / LA CHARITE SUR LOIRE

Mysql avec EasyPhp. 1 er mars 2006

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Comprendre les bases de données

Bases de Données Avancées

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Gestion des utilisateurs et de leurs droits

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Définition des Webservices Ordre de paiement par . Version 1.0

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

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

Intégrité des données

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

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

Transcription:

Julien VILLETORTE Licence Informatique Projet de Base de données Année 2007-2008 Professeur : Marinette Savonnet

Sommaire I) Introduction II) III) IV) Diagrammes a. Diagramme Use Case b. Diagramme de classes Modèle de données Création des tables sous Oracle V) Exemple d utilisation simpliste VI) Conclusion 2

I) Introduction Ebay est à l heure actuelle le site web de référence en matière de ventes aux enchères en ligne. Même si quelques concurrents existent, c est Ebay qui a posé les bases du marché en ligne actuel, et son fonctionnement est bien rodé. C est en grande partie la façon dont sont effectuées les enchères qui font sa force. C est pourquoi, nous allons ici essayer de reproduire un fonctionnement minimaliste du mécanisme d Ebay, en s appuyant sur des exemples de démarches de ventes, d inscriptions, etc. 3

II) Diagrammes a. Diagramme Use Case Un membre inscrit, est de base acheteur. S il veut devenir vendeur, il doit faire une demande en faisant vérifier son identité auprès des administrateurs du site. L acheteur cherche tout d abord un objet dans les différentes catégories qui l intéresse pour trouver ce qu il souhaite. Une fois l objet désiré trouvé, il enchérit dessus. Au préalable, cet objet a été déposé à la vente par un vendeur. Ce dernier en a fixé le prix minimum et/ou autres prix : prix de réserve, etc.). Les éventuelles enchères automatiques que peut faire un acheteur sont gérées par les administrateurs d Ebay. Au fur et à mesure que la transaction progresse, ces derniers mettent à jour les informations sur les différentes enchères des acheteurs. Lorsque que la période d enchère arrive à expiration, soit personne ne remporte l enchère prix de réserve non atteint, etc.), soit, comme dans la grande majorité des cas, l enchère est remportée par un acheteur lambda. Dans ce cas, l acheteur se doit d envoyer le payement, avant que le vendeur n envoie l objet concerné si celui-ci offrait la possibilité de livraison). Une fois la transaction terminée quelle qu en soit l issue), l acheteur note le vendeur, et vice-versa. C est ce qui permettra aux futurs vendeurs/acheteurs confronté à un membre, de savoir quel niveau de confiance lui accordé, et ainsi, mieux dirigé les recherches des acheteurs. 4

b. Diagramme de classes Explications : La classe Pays contient la liste de tous les pays, ainsi que l âge légal de la majorité dans le pays en question. La classe Categorie contient les différentes catégories dans lesquelles peuvent se trouver les objets en vente cf. opérations). Une catégorie peut être la sous-catégorie d une autre, l attribut id_parent permet donc de désigner la catégorie mère. Le nom et la description serviront à l utilisateur pour savoir quels types d objets se trouvent dans telle ou telle catégorie. 5

Un membre est caractérisé dans un premier temps par toutes les informations concernant son identité. Un numéro de membre lui est attribué quand il s inscrit. Deux booléens, précisent si le membre a le droit d acheteur et de vendre des objets si il en a reçu l autorisation). Un champ pour le numéro de carte bleue est aussi présent pour les vendeurs. Les deux derniers attributs, concernent les notes moyennes) qui sont attribuées au membre, suivant les cas où celui-ci est vendeur ou acheteur. La classe Autorisation_categorie est une classe association entre Categorie et Pays, elle permet de déterminer si une catégorie est autorisée ou non dans un pays. L identifiant est donc : id_cat,id_pays Un objet est vendu par un membre id_vendeur. Celui-ci fixe les différents prix possibles, s il veut un prix de réserve, un prix d achat immédiat, etc. Il donne une description détaillée de l objet, et en donne l état. Pour plus de facilité, l identifiant du membre qui propose la plus haute enchère, est enregistré, ainsi que le montant de celle-ci. Cette classe contient tous les codes de confirmation et les identifiants des membres en attente de validation pour devenir vendeurs. L attribut date_expiration, concerne la date jusqu à laquelle le membre peut confirmer son code. Passé ce délai, il devra faire une nouvelle demande. 6

Une note est généralement donnée à un vendeur par l acheteur, et vice-versa. Celui-ci est accompagné d un commentaire. L identifiant du membre qui met la note et celui de l objet permettent de savoir quel rôle a joué le membre qui dépose la note, lors de la transaction. Cette classe est faite pour les différents commentaires qui peuvent être fait sur par rapport à une transaction. Si l attribut id_parent est renseigné, c est que le commentaire en question est une réponse au commentaire dont l identifiant est contenu dans id_parent. La classe Enchere_auto, sert dans le cas particulier où un acheteur a demandé une enchère automatique sur un objet, à hauteur d un montant maximum. A chaque fois que le montant évolue, la nouvelle enchère est renseignée directement dans l historique. La classe Historique permet de pouvoir afficher les différentes enchères sur un objet, même après la fin de la transaction, mais aussi, grâce au montant, d obtenir l identifiant de l enchérisseur actuel c est-à-dire celui qui propose la plus grosse somme). 7

III) Modèle de données Nous pouvons traduire nos classes avec les relations suivantes : Membreid_mbr, is_acheteur, is_vendeur, nom, prenom, dt_naiss, adresse, Zip_code, ville, téléphone, pays, login, mot_de_passe, email, num_cb, note_vendeur, note_acheteur) Paysid_pays, majorite_pays) Vendeur_en_attentecode, id_mbr, date_expiration) Objetid_obj, id_vendeur, id_cat, frais_envoi, description, etat, prix_dep, prix_reserve, prix_achat_immediat, assurance_livraison, montant_acquisition, id_encherisseur_actuel, mini_surenchere, date_fin) Categorieid_cat, id_parent, nom_cat, description) Autorisation_catid_cat, id_pays, autorisee) Historiqueid_ench, id_obj, id_mbr, montant, date) Enchere_autoid_ench_auto, id_obj, id_mbr, ench_max, date) Noteid_note, id_obj, id_mbr, id_commentaire, note) Commentaireid_commentaire, id_parent, id_mbr, commentaire, date) 8

IV) Création des tables sous Oracle Voici les ordres SQL permettant de créer nos tables, en respectant les contraintes d intégrité : CREATE TABLE Pays id_pays integer PRIMARY KEY, majorite_pays int2) NOT NULL CREATE TABLE Membre id_mbr integer NOT NULL PRIMARY KEY, is_acheteur bool, is_vendeur bool, nom varchar30) NOT NULL, prenom varchar30) NOT NULL, dt_naiss date NOT NULL, adresse varchar60) NOT NULL, Zip_code varchar5) NOT NULL, ville varchar15) NOT NULL, téléphone NOT NULL, pays NOT NULL REFERENCES Paysid_pays), login varchar30) NOT NULL, mot_de_passe varchar30) NOT NULL, email varchar30) NOT NULL, num_cb integer, note_vendeur integer, note_acheteur integer CREATE TABLE Vendeur_en_attente code varchar30) NULL PRIMARY KEY, id_mbr NOT NULL REFERENCES Membreid_mbr), date_expiration date 9

CREATE TABLE Categorie id_cat NOT NULL PRIMARY KEY, id_parent NOT NULL REFERENCES Categorieid_cat), nom_cat varchar30), description TEXT CREATE TABLE Objet id_obj NOT NULL PRIMARY KEY, id_vendeur NOT NULL REFERENCES Membreid_mbr), id_cat NOT NULL REFERENCES Categorieid_cat), frais_envoi integer, description TEXT, etat ENUM'neuf', 'bon', 'moyen', 'mauvais'), prix_dep integer, prix_reserve integer, prix_achat_immediat integer, assurance_livraison bool, montant_acquisition integer, id_encherisseur_actuel NOT NULL REFERENCES Membreid_mbr), mini_surenchere integer, date_fin date CREATE TABLE Autorisation_cat id_cat integer NOT NULL REFERENCES Categorieid_cat), id_pays integer NULL REFERENCES Paysid_pays), autorisee bool --ajout de la contrainte ALTER TABLE Autorisation_cat ADD CONSTRAINT pk_auto_cat PRIMARY KEYid_cat, id_pays CREATE TABLE Historique id_ench integer NOT NULL PRIMARY KEY, id_obj integer NULL REFERENCES Objetid_obj), id_mbr integer NULL REFERENCES Membreid_mbr), montant integer NOT NULL, date date 10

CREATE TABLE Enchere_auto id_ench_auto integer NOT NULL PRIMARY KEY, id_obj integer NULL REFERENCES Objetid_obj), id_mbr integer NULL REFERENCES Membreid_mbr), ench_max integer NOT NULL, date date CREATE TABLE Commentaire id_commentaire NOT NULL PRIMARY KEY, id_parent integer NULL REFERENCES Commentaireid_commentaire), id_mbr integer NULL REFERENCES Membreid_mbr), commentaire TEXT, date date CREATE TABLE Note id_note NULL PRIMARY KEY, id_obj integer NULL REFERENCES Objetid_obj), id_mbr integer NULL REFERENCES Membreid_mbr), id_commentaire integer REFERENCES Commentairesid_commentaire), note integer NOT NULL 11

V) Exemple d utilisation simpliste Dans notre exemple, nous allons considérer les membres suivant, comme étant inscrit sur Ebay : Id_mbr Login Note_vendeur Note_acheteur 9083 Lala 90 100 2130 Truc 86 94 1304 Machin 100 95 Le membre Lala veut vendre une montre aux enchères sur le site, il l ajoute donc : Id_obj Id_vendeur Id_cat Frais_envoi Description Etat Prix_dep Prix_reserve 67926 9083 68 5 blabla Bon 80 NULL Prix_achat_immédiat Assurance_livraison Montant_acquisition Id_encherisseur_actuel Mini_surenchere 130 False 80 NULL 10 La requête suivante a été nécessaire pour ajouter cet objet : INSERT INTO Objetid_obj, id_vendeur, id_cat, frais_envoi, description, etat, prix_dep, prix_achat_immediat, assurance_livraison, montant_acquisition, mini_surenchere) Values, 9083, 68, 5, blabla, bon, 80, 130, false, 80, 10)) ; Imaginons que Truc commence, en acceptant l enchère de Lala : UPDATE Objet SET id_encherisseur_actuel=2130 WHERE id_obj=67926 ; Il faut aussi ajouter cette enchère dans l historique : INSERT INTO Historiqueid_obj, id_mbr, montant, date) Values67926, 2130, 80, sysdate Machin veut ensuite faire une enchère plus élevée, d au minimum 10 euros, il faut donc mettre à jour la table Objet, et d insérer une nouvelle valeur dans l historique : UPDATE Objet SET id_encherisseur_actuel=1304, montant_acquisition=90 WHERE id_obj=67926 ; 12

INSERT INTO Historiqueid_obj, id_mbr, montant, date) Values67926, 1304, 90, sysdate La date de fin d enchère est arrivée, et personne n a renchérit, Machin remporte donc la montre de Lala. Truc, étant frustré d avoir raté l enchère, veut consulter l historique. La requête suivante est donc nécessaire : SELECT m.login, h.montant, h.date FROM Membre m, Historique h WHERE m.id_mbr=h.id_mbr AND h.id_obj=67926 ORDER BY h.date DESC; Ainsi, Truc peut constater que Machin a remporté l enchère. 13

VI) Conclusion Penser et concevoir une base de données pour un site tel qu Ebay, demande beaucoup de réflexion et d organisation. Celle-ci doit être pensée pour que l utilisateur puisse avoir accès aux informations qu il désire, le plus simplement et facilement possible. L administration doit elle aussi pouvoir se faire sans difficulté. La plus grande difficulté est de ne rien oublier. En effet, en simuler le fonctionner du site est le meilleur moyen de s assurer que l on n oublie pas quelque chose de vitale dans notre modélisation. De plus il faut rendre la base évolutive, et ne pas la bloquer. 14