Unformatted text preview:

1The Relational ModelRamakrishnan & Gehrke, Chap. 3Review• Why use a DBMS? OS provides RAM and diskReview• Why use a DBMS? OS provides RAM and disk– Concurrency– Recovery– Abstraction, Data Independence– Query Languages– Efficiency (for most tasks)– Security– Data IntegrityGlossary• Byte• Kilobyte• Megabyte• Gigabyte• Terabyte– A handful of these for files in EECS– Biggest single online DB is Wal-Mart, >100TB– Internet Archive WayBack Machine is > 100 TB• Petabyte– 11 of these in email in 1999• Exabyte– 8 of these projected to be sold in new disks in 2003• Zettabyte• Yottabyte2Data Models• DBMS models real world•Data Model is link betweenuser’s view of the worldand bits stored incomputer• Many models exist• We will concentrate on theRelational Model1010111101Student(sid:Students(sid: string, name:string, login: string, age: integer, gpa:real)Why Study the Relational Model?• Most widely used model.– Vendors: IBM, Microsoft, Oracle, Sybase, etc.• “Legacy systems” in older models– e.g., IBM’s IMS• Object-oriented concepts have recently merged in–object-relational model• IBM DB2, Oracle 9i, IBM Informix• Will touch on this toward the end of the semester– Based on POSTGRES research project at Berkeley• Postgres still represents the cutting edge on some of thesefeatures!Relational Database: Definitions•Relational database: a set of relations.•Relation: made up of 2 parts:–Instance : a table, with rows and columns.• #rows = cardinality–Schema : specifies name of relation, plus name and type ofeach column.• E.g. Students(sid: string, name: string, login: string,age: integer, gpa: real)• #fields = degree / arity• Can think of a relation as a set of rows or tuples.– i.e., all rows are distinctExample Instance of Students Relationsid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8 • Cardinality = 3, arity = 5 , all rows distinct• Do all values in each column of a relation instance have to be distinct?3SQL - A language for Relational DBs• SQL: standard language• Data Definition Language (DDL)– create, modify, delete relations– specify constraints– administer users, security, etc.• Data Manipulation Language (DML)– Specify queries to find tuples that satisfy criteria– add, modify, remove tuplesSQL Overview• CREATE TABLE <name> ( <field> <domain>, … )• INSERT INTO <name> (<field names>) VALUES (<field values>)• DELETE FROM <name> WHERE <condition>• UPDATE <name> SET <field name> = <value> WHERE <condition>• SELECT <fields> FROM <name> WHERE <condition>Creating Relations in SQL• Creates the Students relation.• Note: the type (domain) of eachfield is specified, and enforced bythe DBMS– whenever tuples are added ormodified.• Another example: the Enrolledtable holds information aboutcourses students take.CREATE TABLE Students(sid CHAR(20), name CHAR(20), login CHAR(10), age INTEGER, gpa FLOAT) CREATE TABLE Enrolled(sid CHAR(20), cid CHAR(20), grade CHAR(2))Adding and Deleting Tuples• Can insert a single tuple using:INSERT INTO Students (sid, name, login, age, gpa) VALUES (‘53688’, ‘Smith’, ‘smith@ee’, 18, 3.2)• Can delete all tuples satisfying some condition(e.g., name = Smith):DELETE FROM Students S WHERE S.name = ‘Smith’F Powerful variants of these commands are available; more later!4Keys• Keys are a way to associate tuples in differentrelations• Keys are one form of integrity constraint (IC)sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8sidcidgrade53666Carnatic101C53666Reggae203B53650Topology112A53666History105BEnrolledStudentsPrimary Keys• A set of fields is a superkey if:– No two distinct tuples can have same values in all key fields• A set of fields is a key for a relation if :– It is a superkey– No subset of the fields is a superkey• >1 key for a relation?– one of the keys is chosen (by DBA) to be the primary key.• E.g.–sid is a key for Students.– What about name?– The set {sid, gpa} is a superkey.Primary and Candidate Keys in SQL• Possibly many candidate keys (specified usingUNIQUE), one of which is chosen as the primary key.CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid))• “For a given student and course,there is a single grade.”vs.“Students can take only onecourse, and receive a single gradefor that course; further, no twostudents in a course receive thesame grade.”• Used carelessly, an IC can preventthe storage of database instancesthat should arise in practice!CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade))Foreign Keys• A Foreign Key is a field whose values are keysin another relation.sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8sidcidgrade53666Carnatic101C53666Reggae203B53650Topology112A53666History105BEnrolledStudents5Foreign Keys, Referential Integrity•Foreign key : Set of fields in one relation that isused to `refer’ to a tuple in another relation.– Must correspond to primary key of the second relation.– Like a `logical pointer’.• E.g. sid is a foreign key referring to Students:– Enrolled(sid: string, cid: string, grade: string)– If all foreign key constraints are enforced, referentialintegrity is achieved (i.e., no dangling references.)Foreign Keys in SQL• Only students listed in the Students relation shouldbe allowed to enroll for courses.CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students )sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8sidcidgrade53666Carnatic101C53666Reggae203B53650Topology112A53666History105BEnrolledStudentsIntegrity Constraints (ICs)• IC: condition that must be true for any instanceof the database; e.g., domain constraints.– ICs are specified when schema is defined.– ICs are checked when relations are modified.• A legal instance of a relation is one that satisfiesall specified ICs.– DBMS should not allow illegal instances.• If the DBMS checks ICs, stored data is morefaithful to real-world meaning.– Avoids data entry errors, too!Where do ICs Come From?• ICs are


View Full Document

Berkeley COMPSCI 186 - The Relational Model

Documents in this Course
Load more
Download The Relational Model
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view The Relational Model and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view The Relational Model 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?