38
MAT 3530-20 Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on & register for course on Moodle. Take survey. Review HTML (esp. forms). Review Flash/ActionScript.

Creating Databases for Web applications

  • Upload
    takoda

  • View
    785

  • Download
    0

Embed Size (px)

DESCRIPTION

Creating Databases for Web applications. Introductions & overview Administration Moodle HW: Sign on & register for course on Moodle. Take survey. Review HTML (esp. forms). Review Flash/ActionScript. Introductions. Jeanine Meyer, Math/Computer Science & New Media. Ph.D. in Computer Science - PowerPoint PPT Presentation

Citation preview

Page 1: Creating Databases for Web applications

MAT 3530-20

Creating Databases for Web applications

Introductions & overview

Administration

Moodle

HW: Sign on & register for course on Moodle. Take survey. Review HTML

(esp. forms). Review Flash/ActionScript.

Page 2: Creating Databases for Web applications

MAT 3530-20

Introductions• Jeanine Meyer, Math/Computer Science & New

Media.– Ph.D. in Computer Science

– IBM Research, IBM EduQuest (corporate grants). Pace University. Consulting/k-12 Faculty development

– books: Multimedia in the Classroom, Programming Games using Visual Basic, Creating Databases Web Applications with PHP and ASP, Beginning Scripting through Game Creation

• Learning assistant: William Killoran

• You

Page 3: Creating Databases for Web applications

MAT 3530-20

General objectives

• Learn how to learn– Practice looking up and using sources

• Learn how to build large[r] applications– Make proposals, make and use diagrams

• Work in teams• Make presentations• Practice concise writing

– Blog entries, abstracts (1-pagers)

Page 4: Creating Databases for Web applications

MAT 3530-20

Moodle• Instructional support tool

• IT IS A REQUIREMENT that you check this regularly.– You will be required to make postings to

specific Discussion Forums. Hopefully, you will make additional postings.

– You are required to read postings.

Page 5: Creating Databases for Web applications

MAT 3530-20

Books

• There will be assignment(s) to find and describe on-line sources

• Reference: Creating Web Databases with PHP and ASP– Note: Coding examples in book for old php. – Much is relevant: general background on middleware,

HTML, SQL. Design of examples.

• MANY other books

Page 6: Creating Databases for Web applications

MAT 3530-20

Course structure• Each day will include lecture, demonstration, discussion,

exercises • Postings, homework• team presentations (explanation and enhancements of

sample projects)• midterm & final quiz, plus • one original project (can be team)

– initial presentation, with diagrams– Final presentation, including demonstration, showing of working

code

• Extra credit: talks on suggested topics (for example, alternatives to php such as ASP.net, Ruby on Rails, etc.)

Page 7: Creating Databases for Web applications

MAT 3530-20

Course content

Course content: practical and (some) theoretical tools for creating Web applications involving databases.

• (Systems design) Describe (logical) function using diagrams– Entity relationship – Data Flow diagrams– Storyboard

• (Systems build) Requires middleware=server-side tools. We will use Open Source software (PHP and MySQL)

Page 8: Creating Databases for Web applications

MAT 3530-20

What is a data base?

• A data base is organized information. A data base management system is a product that supports implementation & use of databases.

• HOWEVER, generally, the term database is reserved for something using a standard DBMS product– DBMS is the product/tool: MySQL, Access, (Oracle,

DBII, etc.)– The specific database, for example, the [toy] database

examples for this course, are implemented using a particular DBMS

Page 9: Creating Databases for Web applications

MAT 3530-20

Database as distinct from:

• Flat file – For example, will show php code used for the state

capital quiz. This is an example of parallel structures: two arrays, one for the names of the states and one for the names of the capitals.

• XML file• Linked lists• Hash table• ?

Page 10: Creating Databases for Web applications

MAT 3530-20

A Database• …consists of tables

– Tables hold records (= rows)• Records hold fields = attributes (= columns)

• A relational database supports fields in a record that point to/link/refer to records in the same or other tables.

• Database(s) most probably exist on campus– student table: major, gpa, address.– course table: section, instructor, time, location– enrollments: section & student, semester

Page 11: Creating Databases for Web applications

MAT 3530-20

All together now

• Database– Tables

• Records– Fields

• Relationships: fields that refer to records in the same or other tables.

Page 12: Creating Databases for Web applications

MAT 3530-20

Database terminology

• Primary key: field that uniquely defines a record. Often generated automatically by DBMS

• foreign key: field in record in table that ‘is’/points to a record in another database– orderlist = table of orders. Each order includes

as one of the fields a customer id. This customer made the order.

Page 13: Creating Databases for Web applications

MAT 3530-20

Structured Query Language• Unlike much else in computing, databases follow

standards. Everything said so far applies to MySQL, Access, etc.

• SQL is … [a] structured query language.– SELECT question, answer, points FROM questions

WHERE category = chosencategory

– INSERT INTO customers VALUES (fname, lname, billing, email, pass)

Syntax (format & punctuation) is tricky!

Page 14: Creating Databases for Web applications

MAT 3530-20

MySQL

• Open source dbms we will use with php.

• (some actions) done using phpmyadmin– May do initial definition of tables– May use for debugging

• did my php script put something in my database?

• We (our php code) create(s) SQL to access / modify the database

Page 15: Creating Databases for Web applications

MAT 3530-20

Systems Design

• …refers to functional specification of system (what it should do, not especially how it looks or how it is done)

• Use diagrams to specify databases, processes, scripts/Web pages.– tools (computer aided systems

engineering=CASE tools) & methodologies exist. We will be less formal. Create diagrams using PowerPoint or any drawing tool.

Page 16: Creating Databases for Web applications

MAT 3530-20

Diagrams

• Are important!

• Will use [at least] 3 types in this course– Entity relationship

• Show data and relationships

– Data flow• Show agents, programs, data stores

– Story board• Connections between programs (scripts)

Page 17: Creating Databases for Web applications

MAT 3530-20

Question databank table

question_id

Question

Answer (answer pattern)

Value

Category

Players table

player_id

Player name

Score

lastplayed date

history table

question_id

player_id

whenplayed

correct0

0

ER diagram

Page 18: Creating Databases for Web applications

MAT 3530-20

Player

Editor

Play game

Edit questions

Questions DB

Player scores

Data flow diagram (process diagram) for quiz show

History DB

Page 19: Creating Databases for Web applications

MAT 3530-20

Create quiz tables (php only)

Input Questions (handles form input)

Choose category

Ask question

Check answer

Clear tables

Include/Required file: opendbq

Show scores

Storyboard

Page 20: Creating Databases for Web applications

MAT 3530-20

Product catalogProduct idProduct namePictureCost

Customer listCustomer IDfirst namelast nameBilling informationE-mailPassword

Order listOrder IDCustomer IDDateStatusTotal

Ordered itemsOrder IDProductQuantity

0

ER diagram for on-line store

0

Page 21: Creating Databases for Web applications

MAT 3530-20

Customer

Billing system (timed event)

Browse/Order

Billing

Catalog

Customer list

Current ordersOrdered items

Shipping clerk

Shipping

Data flow (process) diagram for on-line store.

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.

Page 22: Creating Databases for Web applications

MAT 3530-20

Storyboard of partial implementation: ordering

Create tables (php only)

Include/require: opendbo

Input products

Order product

makeorder

Shopping cart

Submit order

Delete current customer cookie

Include/require: displaycartfunction

Page 23: Creating Databases for Web applications

MAT 3530-20

Web terminology: standard • Web files are stored on the server computer.

• The browser (IE, Firefox, Opera, etc.) is on the client computer.

• Hypertext Markup Language (HTML) files are requested by the browser from the server and interpreted by the browser. This could include display of image files, FLASH, etc.

• Stateless system: server does not ‘remember’ anything between requests.

Page 24: Creating Databases for Web applications

MAT 3530-20

but, stateless-ness wasn’t good enough

• … to support real, practical applications involving – files and databases

– state information—information valid across multiple pages

• Need for so-called middleware / server-side• Alternatives were/are Common Gateway Interface

(cgi) programming and Java applets.

Page 25: Creating Databases for Web applications

MAT 3530-20

Three-tier implementation model

• Code to be run on the client (by browser)– HTML and JavaScript

• Code to be run on the server– php

• Code (queries) executed by the DBMS– SQL queries constructed by php code

Page 26: Creating Databases for Web applications

MAT 3530-20

Three tier logic model

• Presentation

• Business logic

• Information

Page 27: Creating Databases for Web applications

MAT 3530-20

Server-side / Middleware• Files (aka scripts) ‘in’ PHP (, ASP, cold fusion,

etc.) are requested by browser. However, the server processes the PHP instructions in the files to– produce an HTML file for interpretation by the browser

and– access & modify data (files, databases) on the server.

NOTE: database(s) are on the server!– store & access so-called cookies on the client computer.

Cookie is a special, small file.

extra credit opportunity

Page 28: Creating Databases for Web applications

MAT 3530-20

Development / testing for class

• Create / register to have MySql database• We/you will create html files, swf files PLUS php

files• Upload all files to your site (account)• Some php files (aka scripts) will create tables• Some html and php files will populate (put data

into) tables• Some html and php files will implement working

applications

Page 29: Creating Databases for Web applications

MAT 3530-20

Contrast

• This is not like general practice of testing on your computer and later uploading complete tested application!

Page 30: Creating Databases for Web applications

MAT 3530-20

Objects

• General computer science concept

• An object (object instance) contains data (attributes, properties) and programs (methods, operations)

• Object oriented programming system = OOPS

Page 31: Creating Databases for Web applications

MAT 3530-20

PHP

• Personal Home Page PHP: Hypertext Preprocessor

• Language plus a set of built-in procedures and properties – language includes support for user-defined

objects.

• Open Source

Page 32: Creating Databases for Web applications

MAT 3530-20

Warnings

• SQL is a very powerful language.– It may take time to produce 1 SQL statement

• The equivalent of many lines of code in another programming language.

• Writing php code, including code generating SQL statements, can involve complex syntax– For example, single quotes within double quotes

– References to variables within quoted strings.

Page 33: Creating Databases for Web applications

MAT 3530-20

General format of SELECT

SELECT [modifier such as DISTINCT] field1, field2, expression [COUNT(field)]FROM tablea, tableb, …WHERE condition(s)

GROUP BY fieldxORDER BY fieldyHAVING conditionLIMIT n, m

Page 34: Creating Databases for Web applications

MAT 3530-20

$sel="SELECT question_id, question, ans, value from questions "; $sel= $sel . " WHERE category= '" . $pickedcategory. "'"; $result=mysql_db_query($DBname, $sel, $link);

$NoR=mysql_num_rows($result);

Single quote within double quotes

Page 35: Creating Databases for Web applications

MAT 3530-20

Reprise• When we write php, we write

– plain HTML– php that uses functions that use operating system on

server• read/write files• send email

– php that produces HTML– php that sends SQL to MySQL and gets results back

that php uses to produce HTML

Page 36: Creating Databases for Web applications

MAT 3530-20

Preview

• We may use Microsoft Access (and Open Office Base) to demonstrate stand-alone use of a DBMS

• Note: previous classes uses Access and asp on the server

Page 37: Creating Databases for Web applications

MAT 3530-20

Homework

• Visit Moodle course site.– Take First Day survey

• Find, briefly review and post assessment of on-line source for PHP

NOTE: will repeat this for other topics

• Review HTML forms and Flash ActionScript– See my on-line examples

Page 38: Creating Databases for Web applications

MAT 3530-20

Homework, cont.

• New procedures for obtaining web publishing space AND MySQL accounts.

• Sign up for this and save all information.