CSC 280: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS Dr. Adam Anthony Fall 2012
Lecture 2 Introduction to the Relational Model Views of Data Definition of a Relation Schemas and Keys
Different Views of Data Disk (physical) level: Where does each bit go on the drive, and how do we retrieve it when we need it? Logical level: What is the picture in our head of how the data is arranged? May or may not differ from reality of the disk level View level: That portion of the logical level that we can see Sometimes a refined version of the logical level
What is a Relation? UNLEARN: In a database context, a relation is NOT a link between two different entities (e.g. a family tree relation) Though we can represent such data RE-LEARN: A relation is actually a theoretical collection of potential entities with common attributes Imagine the data to describe a single instructor Imagine a relation for instructor as being a data table, but you don’t know what instructors are listed in that table yet Any instructor who ever exists MIGHT be in the table
A Relation Instance Given a Relational Definition: Instructor(ID, name, dept_name, salary) We create a data file with actual data: IMPORTANT: OPERATIONS DEFINED ON RELATIONS WILL BE INDEPENDENT OF ANY ACTUAL DATA
In-Class Exercise Same groups as last time: Use the relation schema definition format: relation-name(attribute1,attribute2,…) To define at least three relations you might see in a music database
Terminology Relation: a data table with defined column types Tuple: a single row in a relation table Attribute: a single column in a relation or tuple Relation Instance: a data table with specific data entries already in it Order-Independent: the rows in a relation are not ordered; if the tuples are the same but in different order, the relations are equal. Domain: indicates the kind of values allowed for an attribute (integer range, characters, date/time, etc) Should be atomic, or, single-valued
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?
Find the Keys Determine good primary keys for part of the university schema (underline your choice): Instructor(ID,name,dept_name,salary) Department(dept_name,building,budget) Student(ID,name,dept_name,tot_cred) Advisor(s_id,i_id) Takes(ID,course_id,sec_id,semester,year,grade) Classroom(building,room_number,capacity) Time_slot(time_slot_id,day,start_time,end_time)
Foreign Keys Foreign key constraint: Value in one relation must appear in another Referencing relation Referenced relation
Textbook University Schema Diagram
In-Class Activity Draw a schema diagram for the music database from earlier. Underline primary keys, and use arrows for foreign keys.