Database Design: Relational Model

Slides:



Advertisements
Similar presentations
The Relational Model and Relational Algebra Nothing is so practical as a good theory Kurt Lewin, 1945.
Advertisements

Relational Database. Relational database: a set of relations Relation: made up of 2 parts: − Schema : specifies the name of relations, plus name and type.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 The Relational Model Chapter 3.
SQL Lecture 10 Inst: Haya Sammaneh. Example Instance of Students Relation  Cardinality = 3, degree = 5, all rows distinct.
Overview Begin 6:00 Quiz15 mins6:15 Review Table Terms25 mins6:40 Short Break10 mins6:50 SQL: Creating Tables60 mins7:50 Break10 mins8:00 Lab – Creating.
The Relational Model Class 2 Book Chapter 3 Relational Data Model Relational Query Language (DDL + DML) Integrity Constraints (IC) (From ER to Relational)
SPRING 2004CENG 3521 The Relational Model Chapter 3.
The Relational Database Model:
1 Relational Model. 2 Relational Database: Definitions  Relational database: a set of relations  Relation: made up of 2 parts: – Instance : a table,
The Relational Model Lecture 3 Book Chapter 3 Relational Data Model Relational Query Language (DDL + DML) Integrity Constraints (IC) From ER to Relational.
10/3/2000SIMS 257: Database Management -- Ray Larson Relational Algebra and Calculus University of California, Berkeley School of Information Management.
CS 380 Introduction to Database Systems (Chapter 5: The Relational Data Model and Relational Database Constraints)
The Relational Model These slides are based on the slides of your text book.
Bordoloi Database Design: Relational Model Dr. Bijoy Bordoloi.
Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions 1 The Relational Model Chapter 3.
RAJIKA TANDON DATABASES CSE 781 – Database Management Systems Instructor: Dr. A. Goel.
1 Translation of ER-diagram into Relational Schema Prof. Sin-Min Lee Department of Computer Science.
Instructor: Churee Techawut Basic Concepts of Relational Database Chapter 5 CS (204)321 Database System I.
1 CSE 480: Database Systems Lecture 5: Relational Data Model.
SQL Structured Query Language Programming Course.
Data Integrity An empty database is a correct database.
1 The Relational Model. 2 Why Study the Relational Model? v Most widely used model. – Vendors: IBM, Informix, Microsoft, Oracle, Sybase, etc. v “Legacy.
FALL 2004CENG 351 File Structures and Data Management1 Relational Model Chapter 3.
Relational Data Model Ch. 7.1 – 7.3 John Ortiz Lecture 3Relational Data Model2 Why Study Relational Model?  Most widely used model.  Vendors: IBM,
Slide Chapter 5 The Relational Data Model and Relational Database Constraints.
Module Coordinator Tan Szu Tak School of Information and Communication Technology, Politeknik Brunei Semester
1 CS 430 Database Theory Winter 2005 Lecture 4: Relational Model.
The relational model A data model (in general) : Integrated collection of concepts for describing data (data requirements). Relational model was introduced.
CS34311 The Relational Model. cs34312 Why Relational Model? Currently the most widely used Vendors: Oracle, Microsoft, IBM Older models still used IBM’s.
DATA MODELING AND DATABASE DESIGN DATA MODELING AND DATABASE DESIGN Part 2.
Constraints and Views Chap. 3-5 continued (7 th ed. 5-7)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 The Relational Model Chapter 3.
1 CS122A: Introduction to Data Management Lecture #4 (E-R  Relational Translation) Instructor: Chen Li.
CENG 351 File Structures and Data Management1 Relational Model Chapter 3.
Chapter 2 The Relational Data Model. Outline Relational model basics Integrity rules Rules about referenced rows Relational Algebra.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3 The Relational Data Model and Relational Database Constraints تنبيه.
Database Constraints ICT 011. Database Constraints Database constraints are restrictions on the contents of the database or on database operations Database.
Database Constraints Ashima Wadhwa. Database Constraints Database constraints are restrictions on the contents of the database or on database operations.
Getting started with Accurately Storing Data
Logical Database Design and the Rational Model
Database Constraints Ashima Wadhwa.
Chapter 6: Integrity (and Security)
COP Introduction to Database Structures
RELATION.
CS 3630 Database Design and Implementation
Constraints and Triggers
Quiz Questions Q.1 An entity set that does not have sufficient attributes to form a primary key is a (A) strong entity set. (B) weak entity set. (C) simple.
CIS 207 The Relational Database Model
Lecture 2 The Relational Model
Lecture # 13 (After 1st Exam)
Translation of ER-diagram into Relational Schema
The Relational Database Model
Introduction lecture1.
Chapter 3 The Relational Database Model
Instructor: Mohamed Eltabakh
Chapter 4 The Relational Model Pearson Education © 2009.
The Relational Model Relational Data Model
Chapter 4 The Relational Model Pearson Education © 2009.
CS4222 Principles of Database System
Translation of ER-diagram into Relational Schema
The Relational Model Transparencies
Chapter 4 The Relational Model Pearson Education © 2009.
Relational Database Design
Chapter 4 The Relational Model Pearson Education © 2009.
Instructor: Mohamed Eltabakh
INSTRUCTOR: MRS T.G. ZHOU
Relational data model. Codd's Rule E.F Codd was a Computer Scientist who invented Relational model for Database management. Based on relational model,
Chapter 3 The Relational Model
RELATIONAL DATA MODEL - 1
Presentation transcript:

Database Design: Relational Model Dr. Bijoy Bordoloi Bordoloi

Relational Database A relational database is a database that is perceived by its users as a set of tables and nothing but tables Bordoloi

Relational Model Tabular data structure - table, row, column, data type, null value Eight operators - restrict, project, join, union, difference, intersect, product, divide Integrity rules - primary and foreign keys, entity integrity, referential integrity Three parts of relational model correspond to information, process, and integrity disciplines of software engineering Bordoloi

Data Structure Table approximates the formal term relation and the physical file Row approximates the formal term tuple and the physical record Column approximates the formal term attribute and the physical field Data type approximates the formal term domain Bordoloi

Characteristics 0f a Relation (Table) The order of rows and columns immaterial. All values are atomic – each row/column intersection represents a single value. In other words, ‘repeating groups’ are not allowed. Every value in a column must be a member of a conceptual set of atomic values called a domain. A value may be null, that is, not known or inapplicable A relation, by definition, cannot have duplicate rows. Every table must have a ‘Primary Key’ which guarantees that there are no duplicate rows (discussed in depth later). Bordoloi

Data Structure TABLE NAME

Example: Repeating Groups Bordoloi

Importance of Attribute Domain and Data Types A relational DBMS can relate any data field in one table to any data field in another table as long as the two tables share a data field that is defined on the same ‘domain’ (the same data type). Bordoloi

Attribute Domain and Data Types Consider the the following two tables, Student and Employee. Do these tables share any ‘common’ columns? Student: Employee: SSN (Number (9)) St_Name (Char (16)) SSN (Char (9)) E_Name (Char (22)) Phone (Number (10)) Bordoloi

Semantic Data Types (User Definable Data Types) User-friendly data type names User-friendly value sets Composite data types Bordoloi

Semantic Data Types CREATE DATATYPE ID [1 . . . 9999] CREATE DATATYPE SOCSEC INTEGER CREATE DATATYPE SEX [M, F] CREATE DATATYPE GIVENNAME CHAR (12) CREATE DATATYPE FAMILYNAME CHAR (25) CREATE DATATYPE FULLNAME (GIVENNAME, GIVENNAME, FAMILYNAME) CREATE TABLE EMPLOYEE ( EMP# ID SOCSEC SOCSEC NAME FULLNAME SEX SEX . . . ) Bordoloi

Checking for Compatible Data Types Operations combining different data types are disallowed in general… SELECT FNAME, LNAME FROM EMPLOYEE WHERE EMP# = SOCSEC …however DBMS might automatically convert physical dimensions… …or user may define appropriate conversion procedures Bordoloi

Benefits of Semantic Data Types Automatic validation of column values and checking for compatible data types reduces errors. Data type names provide additional semantic information for users. Productivity benefits of composite data types. Bordoloi

Null Values Null – a special symbol, independent of data type, which means either unknown or inapplicable. Result of comparison operators is null when either argument is null. Result of arithmetic operators is null when either argument is null. Bordoloi

Examples of Operations on Nulls Table: Compensation EMP# JOBCODE SALARY COMMISSION E10 SALES 12500 32090 E11 NULL 25000 8000 E12 SALES 44000 0 E13 SALES 44000 NULL E14 PROG 19500 NULL E15 CLERK NULL NULL Bordoloi

Examples of Operations on Nulls What is the output of the following query? SELECT EMP# FROM COMPENSATION WHERE JOBCODE = “SALES” AND (SALARY + COMMISSION) > 30000 Bordoloi

Table Definition in SQL (DB2) CREATE TABLE EMPLOYEE ( EMP# SMALLINT NOT NULL, SOCSEC INTEGER, FNAME VARCHAR (12) NOT NULL, LNAME VARCHAR (25) NOT NULL, SEX CHAR (1), SPOUSE SMALLINT, SALARY FLOAT, JOBCODE VARCHAR (6), DIVNAME VARCHAR (12) NOT NULL, DEPT# SMALLINT NOT NULL ) Each column has a name that is unique within the table and is specified to store a specific type of data including whether NULL values are allowed or not. Bordoloi

Oracle: NOT NULL Constraint A NOT NULL constraint means that a data row must have a value for the column specified as NOT NULL. A fairly standard practice is to assign each constraint a unique constraint name. In Oracle, if constraints are not named, then Oracle assigns meaningless system-generated names to each constraint. Bordoloi

Oracle Example: Not Null Constraint fname VARCHAR2(15) CONSTRAINT nn_emp_last_name NOT NULL, lname VARCHAR2(25) CONSTRAINT nn_emp_first_name NOT NULL, Bordoloi

Characteristics 0f a Relation (Table) The order of rows and columns immaterial. All values are atomic – each row/column intersection represents a single value. In other words, ‘repeating groups’ are not allowed. Every value in a column must be a member of a conceptual set of atomic values called a domain. A value may be null, that is, not known or inapplicable A relation, by definition, cannot have duplicate rows. Every table must have a ‘Primary Key’ which guarantees that there are no duplicate rows (discussed in depth later). Bordoloi

Relational DBMS uses associative addressing. KEYS Relational DBMS uses associative addressing. Identify and locate rows by value Physical address is transparent to user Bordoloi

KEYS A B C C X Y C Z ASSOCIATIVE ADDRESSING A B C * * X Y * Z * PHYSICAL ADDRESSING Bordoloi

KEYS Associative addressing is simpler for the end-user. Physical data independence – storage structures and access paths are transparent to user and application programs Bordoloi

KEYS Associative addressing is based on keys – a column, or group of columns, used to identify rows. Simple key – a key formed from a single column Composite key – a key formed from several columns The relational model has five kinds of keys Super Candidate Primary Alternate (secondary) Foreign Bordoloi

KEYS In relational DBMS, a key is not the same as an index! Keys identify rows (logical design) Indexes locate rows (physical design) Bordoloi

Candidate Keys Candidate Key – any (simple or composite) column of a table which is both unique and minimal. Uniqueness – no two rows in a table may have same candidate key value at any time. Minimality – every column of a composite candidate key must be necessary for uniqueness. Bordoloi

Primary Key Primary Key – a candidate key chosen by the database designer to identify rows of a table in queries The primary key is the only guaranteed way to identify rows in queries UPDATE COMPENSATION SET SALARY = 30000 WHERE EMP# = E3 Primary keys must be unique, minimal, non-null, and preferably time-invariant. Alternate key – any candidate key which is not a primary key – may have null values. Bordoloi

Candidate Keys/Primary Key EMPLOYEE EMP-ID SS-NUM EMP- NAME PHONE Assume every employee has a phone#, only one phone# , and must have a phone# and that no two employees share the same phone#. What is(are) the Candiadate Key(s)? What would you choose as the Primary Key of table EMPLOYEE? Bordoloi

Primary Key The Primary Key MUST of course be a Determinant - i.e., all the other non-key attributes of a table must be functionally dependent on the primary key. In other words, for any given value of the primary key, one should get one and only value of the one non-key attributes Bordoloi

Functional Dependency Example SOC_SEC_NBR EMP_NME SOC_SEC_NBR EMP_NME One and only one EMP_NME for a specific SOC_SEC_NBR SOC_SEC_NBR is the determinant of EMP_NME EMP_NME is functionally dependent on SOC_SEC_NBR Bordoloi

Determinants and Keys What is (are) the determinant (s) Determinants and Keys What is (are) the determinant (s)? What is (are) the candidate key (s)? What is the primary key? Table: Student-Dorm-Fee SID DORM FEE 101 Oracle 1000 102 103 DB2 800 104 105 Sybase 500 Bordoloi

EMP-ID SS-NUM EMP- NAME PHONE Primary Key EMPLOYEE EMP-ID SS-NUM EMP- NAME PHONE Assume every employee must have a phone# , can have more than one phone #, and more than one employee share the same phone#. What is the Primary Key? Bordoloi

EMP-ID SS-NUM EMP- NAME PHONE Primary Key EMPLOYEE EMP-ID SS-NUM EMP- NAME PHONE Assume every employee must have a phone# , can have more than one phone #, but no two employees can share the same phone#. What is the Primary Key? Bordoloi

Entity Integrity Entity Integrity – If the primary key (PK) is a composite key then all columns of the primary key must be non-null. The primary key is the only guaranteed way to positively identify rows in queries Bordoloi

Questions What similarities and differences do you find between an Entity and a Table? Bordoloi

Foreign Keys Foreign key – a (simple or composite) column which refers to the primary key of some table in a database. Foreign and primary keys must be defined on same data type. A foreign key may be contained in a primary key or another foreign key. Bordoloi

Foreign Keys Defined A foreign key is a column or columns in a table that matches a primary key in some table in the database. Are there any other foreign keys? Bordoloi

In-Class Exercise To be handed out in class Bordoloi

Referential Integrity Referential Integrity – a foreign key which identifies primary key of table T must either be wholly null or match the value of the primary key of some row in T Bordoloi

Rationale for Referential Integrity Any non-primary key column may be unknown or inapplicable (wholly null). An unmatched non-null foreign key identifies a non-existent object and is in error Bordoloi

Referential Integrity Rules (Foreign Key Rules) How is referential integrity maintained in a database? Some operations that may cause a violation … Insert of PK values – no problem Update of PK values – what happens to matching foreign keys? Delete of PK values – what happens to matching foreign keys? Insert of FK values – disallowed unless matching primary key exists Update of FK values – disallowed unless matching primary key exists Delete of FK values (FK Values set to NULL) – no problem as long as NULL values are allowed in the FK Bordoloi

Referential Integrity Rules So, for each FK in each table the database designer must specify: Whether or not NULLs allowed in the FK What should happen to the FK values should the related PK values in the PK table are deleted or updated Bordoloi

Null Rule Alternatives Nulls allowed in foreign key columns (minimum cardinality 0) Nulls disallowed in foreign key columns (minimum cardinality 1) Bordoloi

Delete Rule Alternatives Delete of primary key cascades to foreign keys Delete of primary key nullifies foreign keys Delete of primary key is restricted if there are any matching foreign keys Bordoloi

Update Rule Alternatives Update of primary key cascades to foreign keys Update of primary key nullifies foreign keys Update of primary key is restricted if there are any matching foreign keys Bordoloi

Rule Alternatives: Meaning (Oracle Syntax) On Delete/Update Cascade: Any delete/update made to the PK table should be cascaded through to the FK table. NOTE: If a PK value is deleted in the PK table then all the rows in the FK table with matching FK values are also deleted in entirety. Bordoloi

Rule Alternatives: Meaning (Oracle Syntax) On Delete/Update Set Null: Any PK values that are deleted/updated in the PK table, cause affected FK values in the FK table to be set to null. Unlike Delete Cascade, the entire row is not deleted, only the affected FK values are set to null. Bordoloi

Rule Alternatives: Meaning On Delete/Update Restrict: Any updates made to the PK table that would delete or change a primary key value will be rejected unless no foreign key references that value in the FK table(s). In other words, you are restricted to deleting or updating only those PK values in the PK table which do NOT appear as FK values. Example: Bordoloi

Referential Integrity : Examples What might be the appropriate referential integrity rules for the tables Employee, Division and Department? Bordoloi

Documentation Database designer specifies Primary keys Alternate keys Foreign keys Foreign key rules, for each foreign key Semantic data types Default values (optional) Bordoloi

Enhanced SQL Bordoloi

Example (DB2) Bordoloi

Example (Oracle) Bordoloi

IN-Class Exercise Distributed in class Bordoloi