Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari



Relaterede dokumenter
3. SEMESTER 2. PROJECT MULB Gruppe september 2015

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

Titel: Database 1. projekt - 3. semester Multimediedesigner uddannelsen - Lyngby

3. semester, 2. projekt: Database

Jayne Alice Jensen [Link til portfolio]

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Database. Pr jekt. Hold CLmul-a14e Gruppe 3 3. semester Vejledere: Tue Becher Ivan R. Frederiksen

Views etc. Databaser

Projekt 1 - Database. Cphbusiness Lyngby Multimediedesigner, 3. semester. MulB13e, gruppe 4

DATABASE Projekt 1-3. semester

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Projekt database. (vores htmlside)

Gruppe nr. MULB2, Multimediedesign 3. semester hold B. Tue Becher Jesper Hinchely

Web DB project semester - 3. projekt - Gruppenr. 23 MULA - September 2015

Data lagring. 2. iteration (implement backend)

-- Først opretter vi databasen CREATE DATABASE projekt_database; -- og så benytter vi den: USE projekt_database;

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

CFunding-IT. Web DB Multimediedesigner 3. Semester Gruppe 15

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Eksamen, DSDS, forår 2009

MODUL 2 ASSIGNMENT 3 PHP/DB SYSTEM 9. OKTOBER 2016

CLmul-b14e Gruppe 2 2. Database projekt

Introduktion til SQL queries

Projekt: Database. Multimedia Design: Semester 3 - projekt 01. Sabine Larsen cph-sl176@cphbusiness.dk. Anastasia Keller cph-ak186@cphbusiness.

DB undervisning 01-01

Eksamen, DSDS, efterår 2007

Eksamen, DSDS, efterår 2008

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

PROJEKT WEB_DB CROWDFUNDING

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Elaboration fase 2. semester projekt Gruppe 4

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

A11: Last Year s Exam

Introduktion til programmering

Projekt 1 - Database. Indholdsfortegnelse. Intro...4 Indledning...5 Projektbeskrivelse...5 Problem felt...6 Problem formulering...

Workshop Persistence

Databasesystemer. IT Universitetet i København 8. juni 2006

Import af rekursivt (parent-child) hierarki i Palo

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

En Kort Introduktion til Oracle

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

WebSite og databaseprojekt

(fig.1. Eksempel på en almindelig entity)

Databaseadgang fra Java

Databasesystemer. IT Universitetet i København 16. januar 2006

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.

Eksamen, DSDS, forår 2008

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

Databaser Obligatorisk opgave 1

WEBSITE DB. Copenhagen Business Academy Multimediedesigner. 3 semester 2 projekt, oktober 2014 Gruppe 1 MulA

Databasesystemer. IT Universitetet i København 8. juni 2006

Reeksamen, DSDS, forår 2008

Få sin querystring til at fungere. (Nybegyndere)

Database design for begyndere

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, "Bjarne Larsen");

1. Indholdsfortegnelse

Søren Løbner (lobner) ddb Databaser

Obligatorisk opgave 2. SQL, relationel algebra og relationel kalkyle

Undervisningsbeskrivelse

Afleveringsopgave. Efterår 2001

Database. lv/

VIDEO AND DATABASE. Copenhagen Business Academy

Anne Randorff Højen

SQL Server 2016 Data Adgang

Relationel Algebra og SQL

Database programmerings tips

Skriftlig eksamen i kurset. Informationssystemer

Design Diaries.

Databasesystemer. IT Universitetet i København 7. juni 2005

Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus, byer og regning..

Eksempel på en database: studenter, kurser, eksamener

1. Basal select med (stjerne)

Practical Intermodal Communication. How-To WebBooking Customer Cap-Flex. Version

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Convey-IT. Gruppe : Titel: WEB-Project. Hold: CLmul-b12e 3. semester efterår URL:

Ratingsystem i PHP og MySQL

The Design Diaries. Link til blog

Air Crash Booking System

Projekt 3: Interaktionsudvikling 11/04.14

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

FORCE Inspect Online Manual v FORCE Inspect Online Manual. 1 af 18

Projekt 2 - Website with Database

Anvisning i aflevering af bitemporale data

Database kursus Forår 2013

Undervisningsbeskrivelse

Gæstebog med validering opbygget med MySQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

ConveyIT - Visualisation of your dreams 3. semester - 2. projekt

The Design Diaries PHP projekt

Efterår 2002 Note 10. Temaopgave

Introduktion til programmering

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Arvid Nilsson Webshop Adgang til webshoppen

Software Projekt NoSQL vs RMDB

Transkript:

Projekt titel Databaseprojekt 1 Projekt navn Ferrari Gruppe medlemmer Christian Lund (christiandevries.dk) Alexander Kofod (thisisalex.dk) Mark Halding (haldingweb.dk) Klasse/Gruppenummer MulA - gruppe 6

Indholdsfortegnelse Indledning...3 Projektplan...4 - Planning sheet - Sprint Backlog Burndown - Burndown Chart ER-model... 6 Table og A"ributes... 7 Naviga!onsdiagram... 8 Use Case....9 Use Case Model... 10 CRUD...11 SQL-kode...12 SQL statements...14 2

Indledning I det første projekt på 3. semester skulle det handle om databaser. Databaser bruges!l at gemme mange forskellige former for data, alt fra små databaser som feks. en husmoders samling af madopskri"er,!l store tunge databaser som feks. folkeregistret. I de#e!lfælde er vi et sted midt i mellem, nemlig en database!l en e-handelsløsning. Opgaven gik ud på at analysere og opbygge en funk!onel database!l en webshop hos et selvvalgt firma. Vi har valgt at beskæ"ige os med bilfabrikanten Ferrari. 3

Projektplan (Planning sheet) Projektplan (Sprint Backlog Burndown) 4

Projektplan (Burn Down Chart) Nedenfor vises et Burn Down Chart 50 45 45 40 42 41 38 35 34 34 Effort left 30 25 20 30 31 27 28 22 24 21 PLANNED DONE 15 10 5 17 17 17 14 14 13 10 9 7 5 3 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Days in Sprint 5

ER-model (3. NF) 6

Table of aributes Tabellen!l højre er en oversigt over alle en!teter, aribuer, datatyper og deres rela!oner. Samme informa!oner vil kunne ses i ER-modellen i SQL Workbench filen. Tabellen viser hvilke aributer og datatyper hver enkelt en!tet og om det er en Primary Key (PK), Not Null (NN) og/eller Auto Increment (AI). 7

Navigaonsdiagram De!e navigaonsdiagram tager udgangspunkt i www.ferrari.dk - her er det dog ikke muligt at beslle bilerne online, men blot en prøvekørsel i en af de eksklusive sportsvogne. Fra Ferrari s hjemmeside betaler man ikke med det samme, da man først skal kontaktes af Ferrari og have en personlig godkendelse. I diagrammet l højre vises dog et eksempel over hvordan det ville se ud hvis man kunne foretage en online beslling/betaling af en prøvekørsel i en Ferrari. 8

Use Case 1 - Opree en ny bruger Use Case 2 - Søgning af vare(r) Use Case 3 - Bes!lling af vare Idenfier UC1 Descripon Kunden skal have mulighed for at opree sig som ny bruger på hjemmesiden. Idenfier UC2 Descripon Bruger skal have mulighed for at søge e"er en eller flere varer på hjemmesiden. Idenfier UC3 Descripon Bruger skal have mulighed for at bes!lle en eller flere varer på hjemmesiden. Goal Målet er at kunden kan opree sig som ny bruger. Precondions Kunden skal have en ak!v internet forbindelse. Frequency Ca. 100 gange pr. dag. Basic course Kunden indtaster valide data. Alternate course A Kunden indtaster non valide data og oprees derfor ikke i systemet. Postcondions Kunden har success med at opree sig som kunde på websitet. Kunden indtaster non valide data og bliver derfor ikke opreet som kunde i systemet. Actors Kunde System administrator Goal Målet er at brugeren kan finde en eller flere varer på hjemmesiden. Precondions Kunden skal have en ak!v internet forbindelse. Frequency Op!l 10000 gange pr. dag. Basic course Kunden søger e"er en given vare på hjemmesiden Alternate course A Kunden finder ikke sin vare. Postcondions Kunden har success med at finde de søgte varer og kan evt. komme dem i indkøbskurven. Actors Kunde System administrator Goal Målet er at brugeren kan placere en ordre. Precondions Kunden skal have en ak!v internet forbindelse. Varen skal findes i lager. Frequency Op!l 1000 gange pr. dag. Basic course Kunden lægger varen i indkøbskurven. Kunden placerer ordren. Alternate course A Kunden fortryder og handelen a%rydes Postcondions Kunden har success med at placere en ordre. Actors Kunde System administrator 9

Use Case Model 10

CRUD C = Create R = Read U = Update D = Delete Til højre ses vores CRUD-tabel med udgangspunkt i når man bes!ller en prøvekørsel i en Ferrari fra www.ferrari.dk. 11

SQL-kode DROP DATABASE IF EXISTS sqldb; CREATE DATABASE sqldb; use sqldb; DROP TABLE IF EXISTS customer; CREATE TABLE customer ( cid int(4) PRIMARY KEY auto_increment, -- customer_ id(cid) er sat!l auto increment fordi vi ønsker at nye kunder skal!ldeles et unique id automa!sk 1,2,3 osv. cname VARCHAR(45), caddress VARCHAR(45), zip int, sectorid int DROP TABLE IF EXISTS orders; CREATE TABLE orders ( oid int PRIMARY KEY, cid int DROP TABLE IF EXISTS products; CREATE TABLE products ( pid int PRIMARY KEY auto_increment, pname varchar(45), price varchar(45), p_stock int(3), no_stock int(4), min_stock int(3) DROP TABLE IF EXISTS shoppingcart; CREATE TABLE shoppingcart ( DROP DATABASE IF EXISTS sqldb; CREATE DATABASE sqldb; use sqldb; DROP TABLE IF EXISTS customer; CREATE TABLE customer ( cid int(4) PRIMARY KEY auto_increment, -- customer_ id(cid) er sat!l auto increment fordi vi ønsker at nye kunder skal!ldeles et unique id automa!sk 1,2,3 osv. cname VARCHAR(45), caddress VARCHAR(45), zip int, sectorid int DROP TABLE IF EXISTS orders; CREATE TABLE orders ( oid int PRIMARY KEY, cid int DROP TABLE IF EXISTS products; CREATE TABLE products ( pid int PRIMARY KEY auto_increment, pname varchar(45), price varchar(45), p_stock int(3), no_stock int(4), min_stock int(3) DROP TABLE IF EXISTS shoppingcart; CREATE TABLE shoppingcart ( oid int, pid int, quan!ty int, PRIMARY KEY (oid,pid) DROP TABLE IF EXISTS sector; CREATE TABLE sector ( sectorid int PRIMARY KEY, sname VARCHAR(45), cid int DROP TABLE IF EXISTS zipcodes; CREATE TABLE zipcodes ( zip int PRIMARY KEY, city VARCHAR(45) -- For at bibeholde den referencielle integritet har vi lavet nogle constraints, man kan altså ikke opre"es som kunde hvis man ingen addresse har osv. ALTER TABLE customer ADD CONSTRAINT `zip_pk` FOREIGN KEY (`zip`) REFERENCES `zipcodes` (`zip` ALTER TABLE orders ADD CONSTRAINT `customerid_pk` FOREIGN KEY (`cid`) REFERENCES `custo- 12

SQL-kode mer` (`cid` ALTER TABLE shoppingcart ADD CONSTRAINT `orderid_ PK` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid` ALTER TABLE shoppingcart ADD CONSTRAINT `produc- d_pk` FOREIGN KEY (`pid`) REFERENCES `products` (`pid` commit; -- Her importeres data l databasen, rækkefølgen er ikke lfældig, men udvalgt ud fra de ovenoverstående constraints. -- Post nr og by INSERT INTO zipcodes (zip, city) VALUES ( 2000, Frederiksberg ), ( 2100, København Ø ), ( 2200, København N ), ( 2300, København S ), ( 2400, København NV ), ( 2450, København SV ), ( 2500, Valby ), ( 2600, Glostrup ), ( 2605, Brøndby ), ( 2610, Rødovre -- kunder, addresse, post nr og sektor. values ( Per Hansen, Jernbane Alle 14 st, 2000, 11 values ( Poul Poulsen, Lyngbyvej 1, 2100, 12 values ( Ib Glindeman, Lampevej 435, 1th, 2200, 13 values ( Bo Bentsen, Gedevej 12, 3tv, 2300, 14 values ( Bent Bentsen, Afrikavej 90, 2400, 15 values ( Line Larsen, Bredgade 11, 4th, 2450, 16 values ( Lone Rasmussen, Frederiksundsvej 87, 2500, 17 values ( Lars Larsen, Billundsvej 32, 2600, 18 values ( Rasmus Boesen, Frederiksvej 87, 2605, 19 values ( Shiko Sikusen, Banjovej 12, st, 2610, 20 -- produkter INSERT INTO products (pname, price, p_stock, no_ stock, min_stock) VALUES ( 360 Spider, 2000000, 1, 2, 1 ), ( 550 Barche!a, 2500000, 2, 5, 1 ), ( 575M Maranello, 3000000, 3, 4, 1 ), ( Enzo Ferrari, 1650000, 4, 6, 1 ), ( Challenge Stradale, 1890000, 5, 3, 1 ), ( Challenge Stradale, 4750000, 6, 1, 1 ), ( 612 Scaglie", 3750000, 7, 11, 1 ), ( Superamerica, 2250000, 8, 8, 1 ), ( F430 Spider, 1750000, 9, 8, 1 ), ( 430 Scuderia, 3500000, 10, 4, 1 ), ( 612 Sessanta, 4500000, 11, 8, 1 ), ( 599 GTB Fiorano, 1500000, 12, 5, 1 ), ( Scuderia Spider 16M, 2000050, 13, 9, 1 -- Ordre insert into orders (oid, cid) Values ( 100,10 insert into orders (oid, cid) Values ( 101,8 insert into orders (oid, cid) Values ( 102,5 -- indkøbskurv insert into shoppingcart (pid, quanty, oid) Values (1,2,100 insert into shoppingcart (pid, quanty, oid) Values (4,1,101 insert into shoppingcart (pid, quanty, oid) Values (5,2,102 insert into shoppingcart (pid, quanty, oid) Values (7,2,100 insert into shoppingcart (pid, quanty, oid) Values (8,1,101 insert into shoppingcart (pid, quanty, oid) Values (8,1,100 -- sektor insert into sector (sectorid,sname) values (11, Snedker insert into sector (sectorid,sname) values (12, Maler 13

SQL-kode insert into sector (sectorid,sname) values (13, Ingenør insert into sector (sectorid,sname) values (14, Mulmedie designer insert into sector (sectorid,sname) values (15, Ha e mager insert into sector (sectorid,sname) values (16, Gartner insert into sector (sectorid,sname) values (17, Direktør insert into sector (sectorid,sname) values (18, Gøgler insert into sector (sectorid,sname) values (19, Atlet insert into sector (sectorid,sname) values (20, Landsbytosse SQL-statements -- vælg et produkt der har en lavere pris end 2500000 SELECT*FROM products WHERE price < 2500000 ; -- ordre.oid og shoppingcart.oid sammensæ es SELECT orders.oid, shoppingcart.pid FROM shoppingcart inner join orders on shoppingcart.oid = orders.oid; -- kunde navn og address ved ordren 100 SELECT orders.oid,cname,caddress From customer,orders where customer.cid = orders.cid AND orders.oid in (SELECT oid FROM shoppingcart where oid=100 -- hvad ordre 100 indeholder SELECT shoppingcart.oid,shoppingcart.quanty, products.pname,products.price FROM products inner join shoppingcart on shoppingcart.pid = products. pid Where oid=100; 14