* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 9
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
Clusterpoint wikipedia , lookup
Database model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Relational model wikipedia , lookup
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