Creating databases for web applications

advertisement
Creating databases for web
applications
New example: last lecture
Systems design. ER diagrams.
Data flow diagrams. Storyboards.
Homework: Plan database and
applications for a library: produce
ERD and DFD
Added example
• Students: name, gpa, department
• Go to last lecture for code
• http://newmedia.purchase.edu/~Jeanine/d
b/studentexample/showstudents.php
• http://newmedia.purchase.edu/~Jeanine/d
b/studentexample/showdepartments.php
• http://newmedia.purchase.edu/~Jeanine/d
b/studentexample/enterstudent.html
System analysis and design
• Tools for planning
– communication with clients (specific diagrams
may not always be shown, but used to
support discussion)
– communication with builders
• Attempt to focus on function before
implementation
– logical design versus physical design
non-tech
meaning of
term
Models
• Information model = Entity relationship diagrams
– Ask yourself: what is the critical information? What
are the relationships (what fields in one table point to
other records?)
• Process model = data flow
– What are the (main) processes? Who initiates these
processes? What data stores are used and/or
changed?
• Story board
– What are the Web pages—the interfaces to the user
(client/player/employee)? What is the flow from one
Web page to another?
ER models
• Done before creating the tables as part of
planning and after creating the tables, as
documentation
• Logical/analysis level (what is in examples
here) just defines fields and relationships.
Physical/Design/Implementation level: data
types and also estimates on number of
records.
Entity-relationship
• Entity = the things (products, people,
places, business concepts)
– attributes = fields = properties
• Relationships = connections between
things, as represented by a field in one
table (attribute of an entity) pointing to an
entity.
Primary keys and foreign keys
• A field (attribute) that uniquely defines a
record in a table can be its primary key.
– sometimes generated automatically by dbms
• In another table, the way to refer to this record
would be by using the primary key value. This is
called a foreign key in that other table.
Entity Relationship diagrams
• Blocks represent the records in the table.
Typically, they list all the fields.
• Lines between the blocks represent
relationships. The marks on the lines
indicate the numbers, e.g., one to many,
one to one. They also indicate what a
minimum would be.
– 0 means that an entity in one table may not
be referenced in the other at all.
Example: trivia quiz
Tables are
• Questions
• Players
• History (that is, a question was asked [of]
a player on a specific date, with outcome
correct or not correct
– Each item in History relates to a specific
player and a specific question
Players table
player_id
Question databank table
Player name
question_id
Score
Question
lastplayed date
Answer (answer pattern)
Value
0
history table
question_id
Category
player_id
whenplayed
0
correct
Course pre-req example
• In this design, each course has at most
one pre-requisite course.
Course
0
course title
Division
Pre-requisite
0
Course pre-reqs, more complete
• Each course can have no, 1, or any
number of pre-requisites.
• TWO TABLES!
– Courses
– Statements of pre-reqs
Course
00
Course title
Statement of prerequisites
Course to be taken
0
Division
pre-required course
(prior course)
Each statement of pre-requisites refers to exactly one course and
exactly one 'pre-req'. A course can be in either position, zero, one
or several times.
Creating Web Documents is a pre-req for
Creating Dynamic Web Docs & Creating DBs for Web
Some courses may have pre-requisites of more than one course.
clip tag table
• Video archive application has table of clips
and tags similar to the pre-req tables.
• Demonstrate
• NOTE: I removed entries on 2 videos and
then restored them with shorter names!
Data design
• Sometimes done by taking the artifacts (forms, reports,
screens) and writing down all those fields into first draft
of records
– These artifacts can be from the current system or the proposed
materials for a new system
• Apply a technique called normalization to get welldefined entities and relationships.
– First step is making sure each record has fixed number of fields.
• For example, not indefinite number of pre-reqs
– Subsequent steps ensure that data is not repeated, so
information only needs to be updated in one place
• Make customer data be in a customer file NOT in each transaction
file
– EXTRA CREDIT opportunity for posting
Process diagram
Focus on
• Blocks
– processes
– agents (this could be people in specific roles or 'the
system' triggered by events, including a time
condition)
– data stores: more general term than databases
• Connections
– Agent engaged with process
– Process using data store
Data flow diagram (process
diagram) for quiz show
Player
History DB
Play
game
Player scores
Questions DB
Edit questions
Editor
Story board
• more implementation based than the
others
• Therefore, part of system build, not system
design, or, perhaps, System Physical
Design not Logical Design
• focus on the scripts and how the scripts
call each other
Create quiz tables (php
only)
Include/Required
file: opendbq
Input Questions
(handles form input)
Choose category
Ask question
Check answer
Clear tables
Show
scores
Entities for store
Initial design
• catalog of products
• orders
– one or more ordered items
• customer list
Enhanced design
• Need 1 more table: call it ordered items
ER diagram for on-line store
Product catalog
Product id
Product name
Picture
Cost
Customer list
Customer ID
first name
last name
Billing information
E-mail
Password
0
0
Ordered items
Order ID
Product
Quantity
Order list
Order ID
Customer ID
Date
Status
Total
Data flow (process)
diagram for on-line
store.
Customer
Catalog
Browse/
Order
Customer list
Current orders
Billing
Ordered items
Shipping
Billing system
(timed event)
Shipping clerk
Note that this is the information/data flow, not the flow of goods. The
shipping operation produces a physical product: the collection of
ordered items, packed and set off for delivery.
Storyboard of partial
implementation: ordering
Create tables
(php only)
Input products
Include/require:
opendbo
Delete current
customer cookie
Order product
makeorder
Submit order
Shopping cart
Include/require:
displaycartfunction
Video archive: main table
$fields = "fileaddr varchar(15) NOT
NULL,cliptitle varchar(50) NOT NULL,";
$fields = $fields . "clipdate
varchar(10),clipgroup varchar(15),
sequence int(6), PRIMARY KEY
(fileaddr)";
NOTE: example of primary key NOT created
by DBMS.
Video archive: tag table
$fields = "fileaddr varchar(15) NOT
NULL,tag varchar(20) NOT NULL";
ER for video clip archive
Video clips
Tags
File addr
File addr
Clip title
Tag
Clip group
Sequence
Grid Design example
• Designs generated in Flash application
stored as variable length strings in
database
– Alternative would be to store design elements,
like the ordered items
• Application could use sign on procedure!
ER for design
Members
Designs
Member id
Design id
Member name
Member id
Member email
Design name
Member password
Design string
Song with features example
•
•
•
•
Bare bones
Song table and Feature table plus
A song can have 0 or more features
Intention is to provide way of detecting
songs similar to a given song
– Complex SQL statement!
Song features
feature
id
name
description
song
id
Name
Description
0
Year
feature of song
0
fisid
fid
fid
Song with features storyboard
createtables.php
deletefeaturesinsongs.php
listallfeaturesinsongs.php
addsong.html
addsong.php
addfeature.html
opendbe.php (included in
all php files)
addfeature.php
addfeaturestosong1.php
findothers1.php
addfeaturestosong2.php
findothers2.php
Songs with features DFD
Add
songs
Admin
Add
feature
Add
features to
song
Edit info
Song info
Identify
songs
Finder
Agents
• Of course in these toy applications such
as the songs with features, there is just
one agent (me!) but
• Important to plan what are roles of system
builders versus system users
• Some social networking song sites do
allow users to add songs, specify features,
add features, etc.
Opportunity for improvement
• Functions mentioned but not implemented (in
orange)
• Navigation could be better
– specifically, going back or 'coming out of' steps.
Where to go
• Teams will review and enhance these projects
and present whole thing to the class.
Homework
• Design ER and DFD for a library.
• YOUR job is to define entities,
relationships, agents, data stores,
processes.
• Logical design, not physical design
• Note: a data store could be manual. Don't
be concerned with that.
Download