Netskills PowerPoint Template (ver 7.0)
Download
Report
Transcript Netskills PowerPoint Template (ver 7.0)
Databases and the Web
An Introduction
NTW2000-T3
8A-1
Why is ‘Databases on the
Web’ Important?
NTW2000-T3
Databases are established technology
for managing large amounts of data
The Web is a good way to present
information
Separating data management from
presentation improves efficiency
updating
finding information
8A-2
Credit: Netskills
Examples of Websites
Using Databases
Organizational information services
employee directories
Booking & scheduling
airlines, university courses signup
Electronic commerce
Website automation
NTW2000-T3
www.yahoo.com
www.webmonkey.com
8A-3
How to Integrate Databases
and the Web?
NTW2000-T3
Databases
Integration tools
8A-4
Databases
Database
an organized collection of data
– paper-based
DBMS (database management system)
– software to enable user to create and maintain databases
Relational database
NTW2000-T3
organizes data into tables
RDBMS
8A-5
Examples of RDBMS
MS Access
MySQL, mSQL
mid-range
Oracle, Sybase, MS SQL Server
NTW2000-T3
desktop
large enterprise
8A-6
How to Integrate Databases
and the Web?
Databases
MS Access
MySQL, mSQL
Oracle, Sybase, MS SQL Server
Integration tools
PHP or CGI, Servlets, JSP, ASP etc.
“Middleware”: e.g. ColdFusion
http://www.allaire.com/
NTW2000-T3
8A-7
Application Interface to
Databases
CGI
CGI
Perl DBI
Perl DBD (DBD::mysql)
DBI
DBD::mysql DBD::oracle
ASP
ODBC (Open DataBase Connectivity)
– A standard for the MS world
ODBC driver comes with database
– MySQL supplies MyODBC
NTW2000-T3
Servlets/JSP — JDBC
8A-8
Relational Databases
Databases that organize data into tables
NTW2000-T3
Each table has
– A name
(For identification)
– One or more columns
(For attributes or fields)
– Rows
(For entries or records)
8A-9
Relational Database Design
NTW2000-T3
Logical database design
Physical database design
8A-10
Logical Database Design
(Entity-relationship modeling)
NTW2000-T3
Identify and model the entities
Identify and model the relationships
between the entities
Identify and model the attributes
Create unique identifier for each entity
Normalize
8A-11
Terminology
Term
Definition
Entity
A thing (person, place, event, etc.) which exists
outside of the database and is represented in it
Describes the properties of a particular entity
Attribute
Relationship
Describes the associations between two or more
entities
Normalization Prevents inefficiency by ensuring no duplicated data
in multiple tables
NTW2000-T3
8A-12
Physical Database Design
Entities become tables
Attributes become columns
choose appropriate data type for each
column
Unique identifiers become primary keys
Relationships are modeled as foreign keys
Foreign keys can be primary keys from other
tables
NTW2000-T3
8A-13
Structured Query Language (SQL)
Standard language for working with relational
databases
A type of ‘natural’ language
You may not have to write any code
There are tools for that e.g Access query tool
But necessary to understand basics, as
SQL is common to all nearly all the tools
covered today
NTW2000-T3
8A-15
Two Categories of SQL Statement
1.
Data manipulation
•
2.
SELECT, INSERT, DELETE
Data definition
•
•
NTW2000-T3
CREATE DATABASE, DROP DATABASE
CREATE TABLE, DROP TABLE
8A-16
SQL Statement: INSERT
INSERT INTO table
(col1, col2, col3, ...)
VALUES (‘text1’,’text2’...,num1,..);
mysql> INSERT INTO employee
-> (firstname, lastname, address,em_id)
-> VALUES(‘John’,’Doe’,’Somewhere’,1);
NTW2000-T3
8A-17
SQL Statement: DELETE
DELETE FROM table
WHERE condition;
mysql> DELETE FROM employee
-> WHERE lastname=‘Jones’;
NTW2000-T3
8A-18
SQL Statement: SELECT
SELECT column_list
FROM table
WHERE condition;
mysql> SELECT * from course;
mysql> SELECT description
-> FROM course
-> WHERE title LIKE ‘Using%’;
NTW2000-T3
8A-19
Use SELECT to join tables
SELECT table1.colx, table2.coly...
FROM table1, table2
WHERE condition;
mysql>
->
->
->
NTW2000-T3
SELECT course.title, course.description,
teacher.name
FROM course, teacher
WHERE course.teacher_ID=teacher.teacher_ID;
8A-20
Reference
Programming the Perl DBI
http://www.oreilly.com/catalog/perldbi/chapter/ch04.html
NTW2000-T3
8A-21
NTW2000-T3
8A-22
The End
NTW2000-T3
8A-23
Aside: Middleware
Adapted from Introduction to Distributed Systems: Slides for
CSCI 3171 Lectures by E. W. Grundke
References:
[TvS] A. Tanenbaum and M. van Steen
Distributed Systems: Principles and Paradigms, Prentice-Hall (2002)
<URL:http://www.prenhall.com/divisions/esm/app/author_tanenbaum/custom/dist_sys_1e/>
[CDK] G. Coulouris, J. Dollimore and T. Kindberg
Distributed System: Concepts and Design, Addison-Wesley (2001)
<URL:http://www.cdk3.net/ig/beida/index.html>
NTW2000-T3
8A-24
Layered Protocols: IP
Layers, interfaces, and protocols in the Internet model.
NTW2000-T3
8A-25
Layered Protocols: OSI
Layers, interfaces, and protocols in the OSI model.
2-1
TvS 2.2
NTW2000-T3
8A-26
Middleware Protocols
2-5
An adapted reference model for networked
communication.
TvS 2.6
NTW2000-T3
8A-27
Middleware
A software layer that
masks the heterogeneity of systems
provides a convenient programming abstraction
provides protocols for providing general-purpose
services to more specific applications, e.g.
authentication protocols
authorization protocols
distributed commit protocols
distributed locking protocols
high-level communication protocols
– remote procedure calls (RPC)
– remote method invocation (RMI)
NTW2000-T3
8A-28
Middleware
General structure of a distributed system as middleware.
1-22
TvS 1.24
NTW2000-T3
8A-29
Middleware and Openness
1.23
In an open middleware-based distributed system, the protocols
used by each middleware layer should be the same, as well as
the interfaces they offer to applications.
TvS 1.25
NTW2000-T3
8A-30
Middleware programming models
Remote
Calls
remote Procedure Calls (RPC)
distributed objects and Remote Method Invocation (RMI)
e.g. Java RMI
Common
Object Request Broker Architecture (CORBA)
cross-language RMI
Other
programming models
remote event notification
remote SQL access
distributed transaction processing
CDK Ch 1
NTW2000-T3
8A-31
End of Aside