Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSc340 1b1 The Relational Model Chapter 2 Database Schema Keys Schema Diagrams Relational Query Languages Relational Operations.

Similar presentations


Presentation on theme: "CSc340 1b1 The Relational Model Chapter 2 Database Schema Keys Schema Diagrams Relational Query Languages Relational Operations."— Presentation transcript:

1 CSc340 1b1 The Relational Model Chapter 2 Database Schema Keys Schema Diagrams Relational Query Languages Relational Operations

2 CSc340 1b2 Go Over Homework/Project E-Mail with your Background Anyone feeling underwhelmed or overwhelmed with course? Name & General Description of Project e.g. "Hannay Reels" Manufactures Steel & Aluminum Reels for Hose & Cable in Industrial Applications Applications: Customer Relations Management, Order Entry, Accounts Receivable, Purchasing, Accounts Payable, Inventory, Manufacturing Control, Payroll, etc. Sample Projects: http://cs.union.edu/csc340http://cs.union.edu/csc340

3 Example of a Relation attributes (or columns) tuples (or rows)

4 Attribute Types The set of allowed values for each attribute is called the domain of the attribute Attribute values are (normally) required to be atomic; that is, indivisible The special value null is a member of every domain The null value causes complications in the definition of many operations

5 Relation Schema and Instance A 1, A 2, …, A n are attributes R = (A 1, A 2, …, A n ) is a relation schema Example: instructor = (ID, name, dept_name, salary) Formally, given sets D 1, D 2, …. D n a relation r is a subset of D 1 x D 2 x … x D n Thus, a relation is a set of n-tuples (a 1, a 2, …, a n ) where each a i  D i n The current values (relation instance) of a relation are specified by a table n An element t of r is a tuple, represented by a row in a table

6 Relations are Unordered n Example: instructor relation with unordered tuples n Order of tuples is irrelevant (tuples may be stored in an arbitrary order)

7 Database A database consists of multiple relations Information about an enterprise is broken up into parts instructor student advisor Bad design: univ (instructor -ID, name, dept_name, salary, student_Id,..) results in repetition of information (e.g., two students have the same instructor) the need for null values (e.g., represent an student with no advisor) Normalization theory (Chapter 7) deals with how to design “good” relational schemas

8 Keys Let K  R K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) Example: {ID} and {ID,name} are both superkeys of instructor. Superkey K is a candidate key if K is minimal Example: {ID} is a candidate key for Instructor One of the candidate keys is selected to be the primary key. which one? Foreign key constraint: Value in one relation must appear in another Referencing relation Referenced relation

9 Schema Diagram for University Database

10 Relational Query Languages Procedural vs.non-procedural, or declarative “Pure” languages: Relational algebra Tuple relational calculus Domain relational calculus Relational operators

11 Selection of tuples n Relation r n Select tuples with A=B and D > 5 σ A=B and D > 5 (r)

12 Selection of Columns (Attributes) Relation r n Select A and C Projection Π A, C (r)

13 Joining two relations – Cartesian Product nRelations r, s nr x s

14 Union of two relations Relations r, s n r  s

15 “Reel” Life Example of “Union” [1 of 2] CSc340 1b15

16 “Reel” Life Example of “Union” [2 of 2] The Query (UPR00100=PayrollNameAddr; UPR00400=PayMaster; UPR00500=DeductionMaster) CSc340 1b16 SELECT UPR00100.EMPLOYID, UPR00100.EMPLCLAS, UPR00100.LASTNAME, UPR00100.FRSTNAME, UPR00100.MIDLNAME, UPR00100.BRTHDATE, UPR00100.GENDER, UPR00100.STRTDATE, UPR00400.PAYRCORD, UPR00400.PAYRTAMT, UPR00500.DEDUCTON FROM UPR00100 INNER JOIN UPR00400 ON UPR00100.EMPLOYID = UPR00400.EMPLOYID LEFT OUTER JOIN UPR00500 ON UPR00100.EMPLOYID = UPR00500.EMPLOYID WHERE (UPR00400.PAYRCORD = 'WEEKLY' OR UPR00400.PAYRCORD = 'HOURLY') AND (UPR00100.EMPLCLAS IN (@emplClass)) AND (UPR00500.DEDUCTON IN (@wchMED)) UNION SELECT UPR00100_1.EMPLOYID, UPR00100_1.EMPLCLAS, UPR00100_1.LASTNAME, UPR00100_1.FRSTNAME, UPR00100_1.MIDLNAME, UPR00100_1.BRTHDATE, UPR00100_1.GENDER, UPR00100_1.STRTDATE, UPR00400_1.PAYRCORD, UPR00400_1.PAYRTAMT, 'NONE' AS DEDUCTON FROM UPR00100 AS UPR00100_1 INNER JOIN UPR00400 AS UPR00400_1 ON UPR00100_1.EMPLOYID = UPR00400_1.EMPLOYID WHERE (UPR00400_1.PAYRCORD = 'WEEKLY' OR UPR00400_1.PAYRCORD = 'HOURLY') AND (UPR00100_1.EMPLCLAS IN (@emplClass)) AND (NOT EXISTS (SELECT EMPLOYID FROM UPR00500 AS UPR00500_1 WHERE (EMPLOYID = UPR00100_1.EMPLOYID) AND (DEDUCTON LIKE 'MED%')))

17 Set difference of two relations Relations r, s n r – s

18 Set Intersection of two relations Relation r, s r  s

19 Joining two relations – Natural Join Let r and s be relations on schemas R and S respectively. Then, the “natural join” of relations R and S is a relation on schema R  S obtained as follows: Consider each pair of tuples t r from r and t s from s. If t r and t s have the same value on each of the attributes in R  S, add a tuple t to the result, where t has the same value as t r on r t has the same value as t s on s

20 Natural Join Example Relations r, s n Natural Join r s

21 Figure in-2.1

22 MySQL Workbench Handout Relationships between tables in HannayReels sample Customer Tables CSc340 1b22

23 "Live" "Reel" Database Example email automatically sent today Draw relation between Invoices table and Payments table on board Show Query in Reporting Services FIX problem on Tuesday using SQL CSc340 1b23

24 CSc340 1b24 Homework/Project Homework due Next Class: 1.1, 1.3, 1.5, 1.6 Homework due in One Week: 2.1, 2.2, 2.4, 2.6, 2.7, 2.8 Project due Next Class: Name of Your Enterprise General Description

25 CSc340 1b25 To the Computers “All your base are belong to us” http://en.wikipedia.org/wiki/All_your_base_are_belong_to_us Examining Relations (Customers) In OpenOffice “BASE” Tools Menu  Relationships In MS Access “Database Tools” Tab  “Relationships” button Start Creating a few Tables for Your DB In MySQL Workbench (see HannayReels.mwb) If you are unsure on project, try a few


Download ppt "CSc340 1b1 The Relational Model Chapter 2 Database Schema Keys Schema Diagrams Relational Query Languages Relational Operations."

Similar presentations


Ads by Google