Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
The Relational Model By Elena Ciriani CS157A February 19, 2004 Professor Lee 1 INTRODUCTION The relational model is the most used data model for commercial data-processing because it is simple to use and to maintain. A relational data model is based on a collection of tables. The user of the database system may query these tables, insert new tuples, and update (modify) tuples. There are several languages for expressing these operations. 2 TOPICS • Structure of Relational database – A row in a table represents a relationship among a set of values where the columns are the representation of the attributions • The Relational Algebra – It defines a set of algebraic operations that operate on tables, and output tables as their results. These operations can be combined to get expressions that express desired queries. 3 Structure of Relational Database (Section 3.1) • • • • • 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 Basic Structure Database Schema Keys Schema Diagram Query Languages 4 Basic Structure The account table below represents a relation in the relational model. The three columns titles are the attributes and their domains. Each row is called a tuple. An account is a subset of the set of all possible tuples. account-number branch-name balance A-101 Downtown 500 A-102 Perryridge 400 A-201 Brighton 900 A-215 Mianus 700 5 Database Schema • Database Schema is the logical design of the database • Database instance is a snapshot of the data in the DB at a given instance in time • Relation instance is the programming language notion of a value of a variable 6 Database Schema Relation schema consists of a list of attributes and their corresponding domain. As a convention, uppercase letter are used so Account-schema=(account-number, branchname, balance) This means that account is a relation on Account-schema by account(Account-schema) 7 Database Schema Relation instance is the set of values of a relation at a specific moment in time. This values may change in time causing a change in the relation as it is updated. 8 Keys • Superkey is a set of one or more attributes that allow us to identify uniquely an entity in the entity set. • Candidate Key are minimal superkey in an entity, one of those keys is selected to be the primary key • Primary Key is a candidate key that is chosen to identify entities within an entity set • Foreign Key is a primary key of another relation schema 9 Keys If K of R is a superkey for R, then the relation r(R) does not have two tuples with the same value. So if t1 and t2 are in r t1 = t2 10 How to determine keys • Strong entity set: the entity primary key becomes the relation primary key • Weak entity set: the primary key of the relation is the union of the strong entity set primary key and the discriminator • Relation set: the union of the primary keys of the related entity sets becomes a superkey of the relation 11 How to determine keys • Combined tables: in a many-to-one, the primary key of the many becomes the relation primary key. In a one-to-one either primary key can be used • Multivalued attributes: the entity primary key becomes the primary key 12 Schema Diagram A database schema with primary and foreign key dependencies relation primary account account-number branch-name balance branch shade indicates primary key depositor customer customer-name account-number customer-name dependency loan branch-name loan-number branch-city assets branch-name amount customer-street customer-city borrower customer-name loan-number 13 Query Languages Users use query languages to request information from the database SQL is the most spread. Database uses two types of query languages: Procedural language: the user instructs the system to perform a sequence of operations on the database Nonprocedural language: the user describes the desired information without giving a specific procedure for obtain the information 14 The Relational Algebra Topics(section 3.2) • 3.2.1 Fundamental Operations – – – – – – – 3.2.1.1 3.2.1.2 3.2.1.3 3.2.1.4 3.2.1.5 3.2.1.6 3.2.1.7 The Select Operation The Project Operation Composition of Relational Operations The Union Operation The Set Difference Operation The Cartesian-Product Operation The Rename Operation 15 Relational Algebra The relational algebra is a pure procedural query language. It consists of a set of operations that take one or two relations as input in an expression and produced a new relation as their result. A constant relation is written inside {} A general expression is construct in subexpressions If they works on one relation are called unary operation otherwise are said to be binary 16 Unary Operations • Select operation: choose the tuples that satisfy a given predicament. –σ branch-name = “Perryridge”(loan) • Project operation: allows the user to select particular attributes of a relationship – Πloan-number, amount (loan) • Rename operation: give a name to the results of relational algebra expressions – ρbig-loans(σamount > 1200 (loan)) 17 Binary Operation • Union operation: allows the user to unify two different relations and display the result – Πcustomer-name (borrower) U Πcustomer-name (depositor) • Difference operation: finds the tuples that are in one relation but not in another – Πcustomer-name (borrower) - Πcustomer-name (depositor) 18 Binary Operation • Cartesian-product: combines information from any two relations – σ branch-name = “Perryridge”(borrower x loan) • Composition of operation: means that to find information we can associate more operation into an expression – Πcustomer-name (σ customer-city = “Harrison”(customer)) 19 The Relational Algebra(continued) (Section 3.2.3) • 3.2.3 Additional Operations The following operations make a relational algebra query easier when the basic expression may become lengthy – – – – 3.2.3.1 3.2.3.2 3.2.3.3 3.2.3.4 The Set-Intersection Operation The Natural-Join Operation The Division Operation The Assignment Operation 20 Additional Operation • Set-Intersection Operation: find all the attributes that appear in both relations – Πcustomer-name (borrower) ∩ Π customer-name (depositor) – Πcustomer-name (borrower) – (Πcustomer-name (borrower) – Πcustomer-name (depositor)) 21 Additional Operation • Natural-Join Operation: forms a Cartesian product of its two arguments, performs a selection forcing equality on those attributes that appears in both relations and removes any duplicates – Πcustomer-name, loan-number, amount (borrower – Πcustomer-name, loan-number, amount loan) (borrower.loan-number = loan.loan-number (borrower x loan)) 22 Additional Operation • Division operation: is suited to queries that include the phrase “for all” – Πcustomer-name, branch-name (depositor account) Πbranch-name (σ branch-city = “Brooklyn”(branch)) 23 Additional Operation • Assignment operation: write part of a relational expression to a temporary relation variable. This variable is used later in expression of a query – temp1 ← Πcustomer-name (borrower) – temp2 ← Πcustomer-name (depositor) – Result = temp1 – (temp1 – temp2) 24