42
Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle. Post source on php.

Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Embed Size (px)

Citation preview

Page 1: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Creating Databases for Web applications

Introductions & overview

Administration

Moodle

HW: Sign on, register for course, introduce yourself on Moodle. Post

source on php.

Page 2: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Introductions• Jeanine Meyer, Mathematics/Computer Science

– Ph.D. in Computer Science– IBM Research, IBM EduQuest (corporate grants)

Pace UniversityConsulting/K-12 Faculty development

– books: Multimedia in the Classroom, Programming Games using Visual Basic, Creating Databases for Web Applications with PHP and ASP, Beginning Scripting through Game Creation, The Essential Guide to HTML5, HTML5 and JavaScript projects, Elementary Number Theory with Programming

– Hobbies/Interests: piano, flute, politics, community volunteer, origami, grandchildren, programming!

• You

Page 3: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

NOTE

• The HTML5 and JavaScript Projects book (on reserve in Library) has chapters– HTML, php for sending email– HTML, php, MySQL example

Page 4: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 5: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 6: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

References

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

• Many online and off-line reference– Note: Creating Web Databases with PHP

and ASP out-of-date!• Coding examples in book for old php. • though much is relevant: general background on

middleware, HTML, SQL. Design of examples.

– HTML5 and JavaScript Projects book better!

Page 7: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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

exercises • Required postings, homework• Team presentations: explanation and enhancements of

sample projects• Midterm plus pop quizzes• 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; alternatives to SQL; Big Data; etc.)

Page 8: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 9: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

What is a data base?

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

• HOWEVER, generally, the term database is reserved for something using a standard relational DBMS tool– 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 10: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Examples of things not a relational database

• 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• Key-value pairs

Page 11: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Big Data

• partially a marketing term / buzz word• Attributes are

– volume -- big– velocity – changes a lot…– variability – greatly variable in formats

• plus attribute that the organization using it may not control the data

• Example: analyzing uses of a term (say, "fiscal cliff") in twitter posts over a set time frame OR last N postings.

• Requires mixture of techniques.

Page 12: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

A relational 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 13: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

All together now

• Database– Tables

• Records– Fields

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

Page 14: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Database terminology• Primary key: field that uniquely defines a record.

Often generated automatically by DBMS• foreign key: field in record in one table that

‘is’/points to a record in another table• Or to a record in the same table. The field with the foreign

key would not be the primary key field.

– orderlist = table of orders. Each order includes as one of the fields a customer id. This customer made the order.

Page 15: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Work up example

• Information is: courses, sections, enrollments, teachers, schedule, more?

• What are the tables?

• What are records in each table?

• NOTE: it takes time to design a database.

Page 16: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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

standards. Everything said so far applies to MySQL, Access, Oracle, PostgreSQL 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 17: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 18: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 19: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 20: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 21: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Player

Editor

Play game

Edit questions

Questions DB

Player scores

Data flow diagram (process diagram) for quiz show

History DB

Page 22: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 23: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 24: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 25: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 26: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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, playing of video or audio, etc.

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

Page 27: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 28: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 29: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Three tier logic model

• Presentation

• Business logic

• Information

Page 30: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Cloud computing

• extends / replaces 3 tier model.• NOTE: much use of data NOT in an

organization's possession or control.– Note: company can use ("rent") storage &

processing in "the cloud" and still control/own the data.

OR– Use data from other organizations

• Example: access Twitter for latest tweets.

Page 31: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

HTML5• new features include form validation: specifying what is

expected in input elements of forms and promising that browser will perform those checks

• Show– http://faculty.purchase.edu/jeanine.meyer/html5

/html5logoscale.html Shows slider (range)

– http://faculty.purchase.edu/jeanine.meyer/html5/bouncingballinputsimg.html Checks for numbers in the indicated range

– http://faculty.purchase.edu/jeanine.meyer/html5/addmessage.html radio buttons. Opera browser supplies color palette

Page 32: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Server-side / Middleware

• Files (aka scripts) ‘in’ PHP (or ASP, cold fusion, ruby on rails, perl, 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.

• HTML5 term: localStorage

• (Flash term: sharedstorage)

extra credit opportunity

Page 33: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Development / testing for class

• Create / register to have MySql database• We/you will create html/JavaScript files

PLUS php files• Upload all files to your site (account)• Some php files (aka scripts) will access

(read & write) MySql • Some html and php files will populate (put

data into) html tables

Page 34: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Contrast

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

Page 35: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 36: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 37: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 38: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

$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 39: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

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 40: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Confirmation on information so far

• What is a database?

• A database is made up of ….

• Describe 3 tier model– operationally (implementation) in terms of

[what] code– functionally (logic) in terms of what function

Page 41: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

continued…

• What does browser do? What does it interpret?

• What is done on/by the server?

• What is done by the DBMS (MySQL)?

Page 42: Creating Databases for Web applications Introductions & overview Administration Moodle HW: Sign on, register for course, introduce yourself on Moodle

Homework• Go to students.purchase.edu and sign up for

webspace AND database– Don't sign up for webspace if you already have it and don't sign

up for database if you already have it.– You will get an email with information. Your account will be on

socialsoftware.purchase.edu

• Visit Moodle course site.– Introduce yourself on Introductions, etc. forum.– Find, briefly review and post your assessment of an on-line

source for PHP on Resources YOU find forum. – Must be unique. If someone has done "yours", find another site.– NOTE: will repeat this for other topics