Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Relational Database Model

Similar presentations


Presentation on theme: "The Relational Database Model"— Presentation transcript:

1 The Relational Database Model
Chapter 2 The Relational Database Model

2 In this chapter, you will learn:
That the relational database model takes a logical view of data That the relational database model’s basic components are entities and their attributes, and relationships among entities How entities and their attributes are organized into tables About relational database operators, the data dictionary, and the system catalog How data redundancy is handled in the relational database model Why indexing is important Hachim Haddouti and Rob & Coronel, Ch2

3 Hachim Haddouti and Rob & Coronel, Ch2
Logical View of Data Relational Database Designer focuses on logical representation rather than physical Use of table advantageous Structural and data independence Related records stored in independent tables Logical simplicity Allows for more effective design strategies Hachim Haddouti and Rob & Coronel, Ch2

4 Logical View of Data (con’t.)
Entities and Attributes Entity is a person, place, event, or thing about which data is collected Attributes are characteristics of the entity Tables Holds related entities or entity set Also called relations Comprised of rows and columns Hachim Haddouti and Rob & Coronel, Ch2

5 Table Characteristics
Two-dimensional structure with rows and columns Rows (tuples) represent single entity Columns represent attributes Row/column intersection represents single value Tables must have an attribute to uniquely identify each row Hachim Haddouti and Rob & Coronel, Ch2

6 Table Characteristics (con’t.)
Column values all have same data format Each column has range of values called attribute domain Order of the rows and columns is immaterial to the DBMS Hachim Haddouti and Rob & Coronel, Ch2

7 Hachim Haddouti and Rob & Coronel, Ch2
Keys One or more attributes that determine other attributes Key attribute Composite key Functional dependence ( knowing STU_NUM you can determine STU_LNAME) Entity integrity Uniqueness No ‘null’ value in key ( NULL= 0?) Example: AUI ID#, Invoice#, CIN# Hachim Haddouti and Rob & Coronel, Ch2

8 Hachim Haddouti and Rob & Coronel, Ch2
Keys (con’t.) Superkey Uniquely identifies each entity in a table Candidate key Minimal superkey Primary key Candidate key to uniquely identify all other attributes in a given row Secondary key Used only for data retrieval Foreign key (logical pointer) Values must match primary key in another table Hachim Haddouti and Rob & Coronel, Ch2

9 Hachim Haddouti and Rob & Coronel, Ch2
Keys (con’t.) Hachim Haddouti and Rob & Coronel, Ch2

10 Hachim Haddouti and Rob & Coronel, Ch2
Integrity Rules Entity integrity Ensures all entities are unique Each entity has unique primary key (not null) Referential integrity Foreign key must have null value or match primary key values (every non-null FK must reference an existing primary key) Makes it impossible to delete row whose primary key has mandatory matching foreign key values in another table No dangling references ( Links in HTML?) Hachim Haddouti and Rob & Coronel, Ch2

11 Relational Database Operators
Relational algebra determines table manipulations Basic operators SELECT PROJECT JOIN Other operators INTERSECT UNION DIFFERENCE PRODUCT Hachim Haddouti and Rob & Coronel, Ch2

12 Hachim Haddouti and Rob & Coronel, Ch2
Union Combines all rows Set-oriented union, duplicates will be eliminated (columns and domains must be identical), same Attribute characteristics Hachim Haddouti and Rob & Coronel, Ch2

13 Hachim Haddouti and Rob & Coronel, Ch2
Intersect Yields rows that appear in both tables Figure 2.6 Hachim Haddouti and Rob & Coronel, Ch2

14 Hachim Haddouti and Rob & Coronel, Ch2
Difference Yields rows not found in other tables Figure 2.7 Set-oriented difference columns and domains must be identical, same Attribute characteristics Hachim Haddouti and Rob & Coronel, Ch2

15 Product (Cartesian product)
Yields all possible pairs from two tables Hachim Haddouti and Rob & Coronel, Ch2

16 Hachim Haddouti and Rob & Coronel, Ch2
Select Yields a subset of rows based on specified criterion Figure 2.9 Hachim Haddouti and Rob & Coronel, Ch2

17 Hachim Haddouti and Rob & Coronel, Ch2
Project Yields all values for selected attributes (vertical subset of a table) Hachim Haddouti and Rob & Coronel, Ch2

18 Hachim Haddouti and Rob & Coronel, Ch2
Join Information from two or more tables is combined by equal AGENT_CODE Hachim Haddouti and Rob & Coronel, Ch2

19 Hachim Haddouti and Rob & Coronel, Ch2
Natural Join Process Links tables by selecting rows with common values in common attribute(s) Three-stage process Product creates one table Select yields appropriate rows Project yields single copy of each attribute to eliminate duplicate columns Hachim Haddouti and Rob & Coronel, Ch2

20 Hachim Haddouti and Rob & Coronel, Ch2
Other Joins EquiJOIN Links tables based on equality condition that compares specified columns of tables Does not eliminate duplicate columns Join criteria must be explicitly defined Theta JOIN EquiJOIN that compares specified columns of each table using operator other than equality one Outer JOIN Matched pairs are retained Unmatched values in other tables left null Two types: right and left Hachim Haddouti and Rob & Coronel, Ch2

21 Data Dictionary and System Catalog
Provides detailed account of all tables found within database Metadata Attribute names and characteristics System catalog Detailed data dictionary System-created database Stores database characteristics and contents Tables can be queried just like any other tables Automatically produces database documentation Hachim Haddouti and Rob & Coronel, Ch2

22 Hachim Haddouti and Rob & Coronel, Ch2
Indexes Points to location Makes retrieval of data faster Figure 2.31 Hachim Haddouti and Rob & Coronel, Ch2

23 Hachim Haddouti and Rob & Coronel, Ch2
Example 1 Identify and describe the components of the database table shown below using correct terminology. Hachim Haddouti and Rob & Coronel, Ch2

24 Hachim Haddouti and Rob & Coronel, Ch2
Example 1 cont. ·   1 entity set: EMPLOYEE. ·   5 attributes: EMP_NUM, EMP_LNAME, etc. ·  10 entities: the workers Friedman, Olansky, Fontein, and Cruazona. · one primary key: the attribute EMP_NUM because it identifies each row uniquely. two foreign keys: the attribute DEPT_CODE, which probably references a department to which the employee is assigned and the attribute JOB_CODE which probably references another table in which you would find the description of the job and perhaps additional information pertaining to the job. Hachim Haddouti and Rob & Coronel, Ch2

25 Hachim Haddouti and Rob & Coronel, Ch2
Example1 cont. Cutomer_no is superkey, (Customer_no, Customer_Name) is also superkey for the entity set CUSTOMER The combination of primary keys of the participating entity sets forms a super key of a relationship set. (customer-id, account-number) is the super key of depositor Concept of superkey is not sufficient PS: depositor (customer-name, account-number) Hachim Haddouti and Rob & Coronel, Ch2

26 Hachim Haddouti and Rob & Coronel, Ch2
Example 2: Banking branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number) Stands for PROJECT,  for SELECT, &  for Union & INTERSECTION Hachim Haddouti and Rob & Coronel, Ch2

27 Example 2 Queries amount > 1200 (loan)
Find all loans of over DH1200 amount > 1200 (loan) Find the loan number for each loan of an amount greater than DH1200 loan-number (amount > 1200 (loan)) Hachim Haddouti and Rob & Coronel, Ch2

28 Example 2 Queries Find the names of all customers who have a loan, an account, or both, from the bank customer-name (borrower)  customer-name (depositor) Find the names of all customers who have a loan and an account at bank. customer-name (borrower)  customer-name (depositor) Hachim Haddouti and Rob & Coronel, Ch2

29 Example 2 Queries Find the names of all customers who have a loan at the Ifrane branch of an amount greater than DH1200. customer-name ( amount > 1200 (borrower.loan-number = loan.loan-number(borrower x loan))) Find the names of all customers who have a loan at the branch IFRANE. customer-name (branch-name=“IFRANE” (borrower.loan-number = loan.loan-number(borrower x loan))) Hachim Haddouti and Rob & Coronel, Ch2


Download ppt "The Relational Database Model"

Similar presentations


Ads by Google