chapter 10 application development with views. mcgraw-hill/irwin © 2004 the mcgraw-hill companies,...

34
Chapter 10 Chapter 10 Application Development with Views

Upload: joel-richards

Post on 03-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Chapter 10Chapter 10Application Development with Views

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Outline Outline

BackgroundCreating views and using viewsProcessing queries that reference viewsUpdatable viewsData requirements for hierarchical formsData requirements for reports

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

What is a View?What is a View?

Derived tableBehaves like a base table (virtual)Stored query

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

View AdvantagesView Advantages

Reduce impact of database definition changes

Simplify database usageUnit of database securityCan be a performance penalty on complex

views

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Three Schema ArchitectureThree Schema Architecture

View 1 View 2 View n

ConceptualSchema

InternalSchema

ExternalLevel

ConceptualLevel

InternalLevel

External toConceptualMappings

Conceptualto InternalMappings

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

View Definition ExampleView Definition ExampleExample 1: Create a view consisting of offerings taught by faculty in the MS department.

CREATE VIEW MS_View AS SELECT OfferNo, Course.CourseNo, CrsUnits, OffTerm, OffYear, Offering.FacSSN, FacFirstName, FacLastName, OffTime, OffDays FROM Faculty, Course, Offering WHERE FacDept = 'MS' AND Faculty.FacSSN = Offering.FacSSN AND Offering.CourseNo = Course.CourseNo

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Column RenamingColumn RenamingExample 2: create a view containing offering data and the number of enrolled students.

CREATE VIEW Enrollment_View ( OfferNo, CourseNo, Term, Year, Instructor, NumStudents ) AS SELECT Offering.OfferNo, CourseNo, OffTerm, OffYear, FacLastName, COUNT(*) FROM Offering, Faculty, Enrollment WHERE Offering.FacSSN = Faculty.FacSSN AND Offering.OfferNo = Enrollment.OfferNo GROUP BY Offering.OfferNo, CourseNo, OffTerm, OffYear, FacFirstName, FacLastName

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Using ViewsUsing ViewsExample 3 SELECT OfferNo, CourseNo, FacFirstName, FacLastName, OffTime, OffDays FROM MS_View WHERE OffTerm = 'SPRING' AND OffYear = 2003

Example 4 SELECT OfferNo, Instructor, NumStudents, CrsUnits FROM Enrollment_View, Course WHERE Enrollment_View.CourseNo = Course.CourseNo AND NumStudents < 5

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Processing View QueriesProcessing View Queries

Materialization– Execute two queries

– Large overhead

– Preferred in static environments Modification

– Substitute view definition for view references

– Execute one query

– Incurs little overhead

– Not possible for all view queries

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Modification ExampleModification ExampleExample 5: Query using a view

SELECT OfferNo, CourseNo, FacLastName

FROM MS_View

WHERE OffYear = 2003

Example 6: Modified query

SELECT OfferNo, Course.CourseNo, FacLastName

FROM Faculty, Course, Offering

WHERE FacDept = 'MS' AND OffYear = 2003

AND Faculty.FacSSN = Offering.FacSSN

AND Offering.CourseNo = Course.CourseNo

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Single Table Updatable ViewsSingle Table Updatable Views

Support modification statementsRules for single table updatable views

– 1-1 correspondence between view rows and base table rows

– View includes PK of base table– View includes all required columns– View definition does not have GROUP BY or

DISTINCT

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Updatable View ExamplesUpdatable View Examples

Example 7: Single table updatable view CREATE VIEW Fac_View1 AS SELECT FacSSN, FacFirstName, FacLastName, FacRank, FacSalary, FacDept, FacCity, FacState, FacZipCode FROM Faculty WHERE FacDept = 'MS'

Example 8: View update UPDATE Fac_View1 SET FacSalary = FacSalary * 1.1 WHERE FacRank = 'ASST'

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

View Update with Side EffectsView Update with Side Effects

• Modify column used in the WHERE condition of a view definition

• Use WITH CHECK OPTION clause to prevent

Example 9: Change the department of rows in the Fac_View1 UPDATE Fac_View1 SET FacDept = 'FIN' WHERE FacSalary > 100000

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Multiple Table Updatable ViewsMultiple Table Updatable Views

No industry standardOnly recently supportedMore complex rules than single table

updatable viewsAccess supports flexible view updates for

multi-table viewsOracle rules in Appendix 10.B

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

1-M Updatable Queries1-M Updatable Queries Associated with 1-M relationships Join column of the parent table: primary key or

unique Determine updatable tables Child table updatable

– Primary key – Foreign key: must include in the query result– Required columns of the child table

Include primary key and required columns to support insert operations on the parent table

Use join operator style

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

1-M Updatable Query Example1-M Updatable Query Example

Example 10: Save as Course_Offering_View1 SELECT Course.CourseNo, CrsDesc, CrsUnits, Offering.OfferNo, OffTerm, OffYear, Offering.CourseNo, OffLocation, OffTime, FacSSN, OffDays FROM Course INNER JOIN Offering ON Course.CourseNo = Offering.CourseNo

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Usage of a 1-M Updatable QueryUsage of a 1-M Updatable Query

Example 11: Insert a row into the Course_Offering_View1.

INSERT INTO Course_Offering_View1 ( OfferNo, Offering.CourseNo, OffTerm, OffYear, OffLocation, OffTime, FacSSN, OffDays ) VALUES ( 7799, 'IS480', 'Spring', 2003, 'BLM201', #1:30PM#, '098-76-5432', 'MW' )

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Extensions to Multiple TablesExtensions to Multiple Tables

Apply rules to each 1-M relationshipFK of each child table in the query resultUsually only the lowest level child table is

updatableExamples

– Course-Offering, Faculty-Offering– Offering-Enrollment, Faculty-Offering

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Hierarchical FormsHierarchical Forms

Formatted window for data entry and displayMain formSubformProvide attractive interface for a 1-M

relationshipSpecification of data requirements is important

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Revised University DatabaseRevised University Database

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Example Hierarchical FormExample Hierarchical Form

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Analysis of Data RequirementsAnalysis of Data Requirements

Identify the 1-M relationshipIdentify the linking fieldsDetermine other tables in the main form and

the subformDetermine updatable tablesWrite queries for the main form and subform

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Data Requirements for the Data Requirements for the Registration FormRegistration Form1-M relationship: Registration-EnrollmentLinking fields: Registration.RegNo,

Enrollment.RegNoOther tables

– Main form: Student– Subform: Offering, Course, Faculty

Updatable tables: Registration, Enrollment

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Registration Main Form QueryRegistration Main Form Query

SELECT RegNo, RegTerm, RegYear, RegDate, Registration.StdSSN, Registration.StdSSN, RegStatus, StdFirstName, StdLastName, StdClass, StdCity, StdState FROM Registration INNER JOIN Student ON Registration.StdSSN = Student.StdSSN

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Registration Subform QueryRegistration Subform QuerySELECT RegNo, Enrollment.OfferNo, OffTime, Offering.CourseNo, OffLocation, OffTerm, OffYear, Offering.FacSSN, FacFirstName, FacLastName,

CrsDesc, CrsUnits FROM ( ( Enrollment INNER JOIN Offering ON Enrollment.OfferNo = Offering.OfferNo ) INNER JOIN Course ON Offering.CourseNo = Course.CourseNo ) LEFT JOIN Faculty ON Faculty.FacSSN = Offering.FacSSN

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Faculty Assignment FormFaculty Assignment Form

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Data Requirements for the Data Requirements for the Faculty Assignment FormFaculty Assignment Form

Step 1: Faculty (parent table), Offering (child table)

Step 2: Faculty.FacSSN, Offering.FacSSNStep 3: Course table in the subform Step 4: update Offering.FacSSN

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Faculty Assignment QueriesFaculty Assignment Queries

Main formSELECT FacSSN, FacFirstName, FacLastName, FacDept FROM Faculty

SubformSELECT OfferNo, Offering.CourseNo, FacSSN, OffTime, OffDays, OffLocation, CrsUnits FROM Offering INNER JOIN COURSE ON Offering.CourseNo = Course.CourseNo

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Hierarchical ReportsHierarchical Reports

Stylized presentation of data appropriate to a selected audience

Use nesting (or indentation) to provide a visually appealing layout

Vocabulary– Group: sorted field; usually indented– Detail line: innermost field

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Example Hierarchical ReportExample Hierarchical Report

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Summary Data in Detail LinesSummary Data in Detail Lines

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Query Formulation Skills for Query Formulation Skills for ReportsReports

Less difficult than skills for formsInspect report

– Match fields in the report to database columns– Determine the needed tables– Identify the join conditions

Determine the level of detail– Row data versus summary data– Query should provide data for the detail lines

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

Faculty Work Load QueryFaculty Work Load QuerySELECT Offering.OfferNo, FacFirstName, FacLastName, FacDept, OffTerm, CrsUnits, OffLimit, Count(Enrollment.RegNo) AS NumStds, NumStds/Offlimit AS PercentFull, (NumStds/Offlimit) < 0.25 AS LowEnrollment FROM Faculty, Offering, Course, Enrollment WHERE Faculty.FacSSN = Offering.FacSSN AND Course.CourseNo = Offering.CourseNo AND Offering.OfferNo = Enrollment.OfferNo AND ( ( Offering.OffTerm = 'Fall' AND Offering.OffYear = 2002 ) OR ( Offering.OffTerm = 'Winter' AND Offering.OffYear = 2003 ) OR ( Offering.OffTerm = 'Spring' AND Offering.OffYear = 2003 ) ) GROUP BY Offering.OfferNo, FacFirstName, FacLastName, FacDept, OffTerm, CrsUnits, OffLimit

McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved.

SummarySummary

Significant benefits with a modest performance penalty

Foundation of application data requirements

Updatable views important for hierarchical forms

Carefully analyze data requirements before developing forms and reports