Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 2002 by Prentice Hall 1 SI 654 Database Application Design Winter 2003 Dragomir R. Radev.

Similar presentations


Presentation on theme: "© 2002 by Prentice Hall 1 SI 654 Database Application Design Winter 2003 Dragomir R. Radev."— Presentation transcript:

1 © 2002 by Prentice Hall 1 SI 654 Database Application Design Winter 2003 Dragomir R. Radev

2 © 2002 by Prentice Hall 2 David M. Kroenke Database Processing Eighth Edition Chapter 8 Foundations of Relational Implementation

3 © 2002 by Prentice Hall 3 Review Relational Model Terminology Relation is a two-dimensional table Attributes are single valued Each attribute belongs to a domain –A domain is a physical and logical description of permittable values No two rows are identical Order is unimportant The row is called a tuple

4 © 2002 by Prentice Hall 4 Data Definition Language (DDL) In order to create the tables and structures within a database, the DBMS must provide (often using SQL) a data definition language (DDL). The DDL is used to define (i.e., Create, Drop, and Alter) everything in the database… –Tables –Columns –Indexes –Users, etc.

5 © 2002 by Prentice Hall 5 Data Manipulation Language (DML) When thinking about SQL, most people think of the Data Manipulation Language (DML) aspects of the language The DML allows users to insert, delete, modify, and retrieve information –Select –Delete –Insert –Update

6 © 2002 by Prentice Hall 6 DML Alternatives A DBMS must provide at least one DML. Several options exist… –Query/Update language (e.g., SQL) –Query-by-Example –Query-by-Form

7 © 2002 by Prentice Hall 7 Query/Update Language SELECT Name, Age FROM PATIENT WHERE Physician = ‘Levy’

8 © 2002 by Prentice Hall 8 Query by Form

9 © 2002 by Prentice Hall 9 Application Program Interface (API) Some applications provide an Application Program Interface (API) The API is a DML typically used by programmers To retrieve or update data contained within the application, a programmer submits requests to the application’s API.

10 © 2002 by Prentice Hall 10 Relational Algebra Relational algebra defines a set of operators that may work on relations. Recall that relations are simply data sets. As such, relational algebra deals with set theory. The operators in relational algebra are very similar to traditional algebra except that they apply to sets.

11 © 2002 by Prentice Hall 11 Relational Algebra Operators Relational algebra provides several operators: –Union –Difference –Intersection –Product –Projection –Selection –Join

12 © 2002 by Prentice Hall 12 Union Operator The union operator adds tuples from one relation to another relation A union operation will result in combined relation This is similar to the logical operator ‘OR’

13 © 2002 by Prentice Hall 13 Union Operator JUNIOR and HONOR-STUDENT relations and their union: (a)Example of JUNIOR relation (b)Example HONOR- STUDENT relation (c)Union of JUNIOR and HONOR- STUDENT relations

14 © 2002 by Prentice Hall 14 Difference Operator The difference operator produces a third relation that contains the tuples that appear in the first relation, but not the second This is similar to a subtraction

15 © 2002 by Prentice Hall 15 Difference Operator JUNIOR relation HONOR- STUDENT relation JUNIOR minus HONOR- STUDENT relation

16 © 2002 by Prentice Hall 16 Intersection Operator An intersection operation will produce a third relation that contains the tuples that are common to the relations involved. This is similar to the logical operator ‘AND’

17 © 2002 by Prentice Hall 17 Intersection Operator JUNIOR relation HONOR- STUDENT relation Intersection of JUNIOR and HONOR- STUDENT relations

18 © 2002 by Prentice Hall 18 Product Operator A product operator is a concatenation of every tuple in one relation with every tuple in a second relation The resulting relation will have n x m tuples, where… n = the number of tuples in the first relation and m = the number of tuples in the second relation This is similar to multiplication

19 © 2002 by Prentice Hall 19 Projection Operator A projection operation produces a second relation that is a subset of the first. The subset is in terms of columns, not tuples The resulting relation will contain a limited number of columns. However, every tuple will be listed.

20 © 2002 by Prentice Hall 20 Selection Operator The selection operator is similar to the projection operator. It produces a second relation that is a subset of the first. However, the selection operator produces a subset of tuples, not columns. The resulting relation contains all columns, but only contains a portion of the tuples.

21 © 2002 by Prentice Hall 21 Join Operator The join operator is a combination of the product, selection, and projection operators. There are several variations of the join operator… –Equijoin –Natural join –Outer join Left outer join Right outer join

22 © 2002 by Prentice Hall 22 Data for Join Examples SIDNameMajorGradeLevel 123JonesHistoryJR 158ParksMathGR 271SmithHistoryJR 105AndersonManagementSN StudentNumberClassNamePositionNumber 123H3501 105BA4903 123B4907

23 © 2002 by Prentice Hall 23 Join Examples Equijoin Natural Join Left Outer Join

24 © 2002 by Prentice Hall 24 Expressing Queries in Relational Algebra 1. What are the names of all students? STUDENT [Name] 2. What are the student numbers of all students enrolled in a class? ENROLLMENT [StudentNumber]

25 © 2002 by Prentice Hall 25 Expressing Queries in Relational Algebra 3. What are the student numbers of all students not enrolled in a class? STUDENT [SID] – ENROLLMENT [StudentNumber] 4. What are the numbers of students enrolled in the class ‘BD445’? ENROLLMENT WHERE ClassName = ‘BD445’[StudentNumber]

26 © 2002 by Prentice Hall 26 Expressing Queries in Relational Algebra 5. What are the names of the students enrolled in class ‘BD445’? STUDENT JOIN (SID = StudentNumber) ENROLLMENT WHERE ClassName = ‘BD445’[STUDENT.Name]

27 © 2002 by Prentice Hall 27 Expressing Queries in Relational Algebra 6. What are the names and meeting times of ‘PARKS’ classes? STUDENT WHERE Name = ‘PARKS’ JOIN (SID=StudentNumber) ENROLLMENT JOIN (ClassName = Name) CLASS [CLASS.Name, Time]

28 © 2002 by Prentice Hall 28 Expressing Queries in Relational Algebra 7. What are the grade levels and meeting rooms of all students, including students not enrolled in a class? STUDENT LEFT OUTER JOIN (SID = StudentNumber) ENROLLMENT JOIN (ClassName = Name) CLASS [GradeLevel, Room]

29 © 2002 by Prentice Hall 29 Summary of Relational Algebra Operators


Download ppt "© 2002 by Prentice Hall 1 SI 654 Database Application Design Winter 2003 Dragomir R. Radev."

Similar presentations


Ads by Google