Download Chapter 9

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Operational transformation wikipedia , lookup

Serializability wikipedia , lookup

Tandem Computers wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Oracle Database wikipedia , lookup

Relational algebra wikipedia , lookup

Microsoft Access wikipedia , lookup

Concurrency control wikipedia , lookup

Versant Object Database wikipedia , lookup

Database wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Relational model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

SQL wikipedia , lookup

PL/SQL wikipedia , lookup

Transcript
Slide 9- 1
Chapter 9
Introduction to SQL Programming
Techniques
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe
Views in SQL


A view is a “virtual” table that is derived from
other tables
Allows for limited update operations


Since the table does not physically be stored
Allows full query operations
Slide 9- 8
Specification of Views

SQL command: CREATE VIEW

a table (view) name

a possible list of attribute names (for example,
when arithmetic operations are specified or when
we want the names to be different from the
attributes in the base relations)

a query to specify the view contents
Slide 9- 9
SQL Views: An Example

Specify a different WORKS_ON table
CREATE VIEW WORKS_ON_NEW AS
SELECT FNAME, LNAME, PNAME, HOURS
FROM EMPLOYEE, PROJECT, WORKS_ON
WHERE SSN=ESSN AND PNO=PNUMBER
GROUP BY PNAME;
Slide 9- 10
SQL Views: An Example
Slide 9- 11
Using a Virtual Table

We can specify SQL queries on a newly create
table (view):
SELECT FNAME, LNAME
FROM WORKS_ON_NEW
WHERE PNAME=‘Seena’;

View is always up-to-date


Responsibility of the DBMS and not the user
When no longer needed, a view can be dropped:
DROP WORKS_ON_NEW;
Slide 9- 12
Updatable Views

Update on a view defined on a single table
without any aggregate functions:


Update may map to an update on the underlying
base table
Views involving joins:

Often not possible for DBMS to determine which of
the updates is intended
Slide 9- 13
Un-updatable Views

Views defined using groups and aggregate
functions are not updateable

Views defined on multiple tables using joins are
generally not updateable

WITH CHECK OPTION: must be added at the end of
the view definition if a view is to be updated
Slide 9- 14
Database Programming

Objective:


To access a database from an application program
Why?

An interactive interface is convenient but not
sufficient

A majority of database operations are made thru
application programs (increasingly thru web
applications)
Slide 9- 15
Database Programming Approaches

Embedded commands:


Database commands are embedded in a generalpurpose programming languag
Library of database functions:

Available to the host language for database calls;
known as an API

API standards for Application Program Interface
Slide 9- 16
Steps in Database Programming
1. Client program opens a connection to the
database server
2. Client program submits queries to and/or
updates the database
3. When database access is no longer needed,
client program closes (terminates) the
connection
Slide 9- 18
Embedded SQL


Most SQL statements can be embedded in a
general-purpose host programming language
such as COBOL, C, Java
An embedded SQL statement is distinguished
from the host language statements by enclosing it
between EXEC SQL or EXEC SQL BEGIN and a
matching END-EXEC or EXEC SQL END (or
semicolon)


Syntax may vary with language
Shared variables (used in both languages) usually
prefixed with a colon (:) in SQL
Slide 9- 19
Transactions

Sequence of SQL statements that are treated as
a single unit of work

Transaction ends when you issue

EXEC SQL COMMIT;
Slide 9- 34
Cursors




Used for fetching multiple rows of data
First, declare it.
EXEC SQL DECLARE emp_cursor CURSOR FOR
SELECT ename, empno, sal
FROM emp
WHERE deptno = :dept_number;
Then, open it.
 EXEC SQL OPEN emp_cursor;
Fetch the records (move the cursor to the next tuple).
for (;;)
{
EXEC SQL FETCH emp_cursor INTO :emp_name1, :emp_no1,
:salary1;
}
Slide 9- 35