computing & information sciences kansas state university wednesday, 03 sep 2008cis 560: database...

40
Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008 CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September 2008 William H. Hsu Department of Computing and Information Sciences, KSU KSOL course page: http://snipurl.com/1pq4c Course web site: http://www.kddresearch.org/Courses/Fall-2008/CIS560 Instructor home page: http:// www.cis.ksu.edu/~bhsu Reading for Next Class: Chapter 2, Silberschatz et al., 5 th edition – next week Problem Set 1 Relational Databases Discussion: Problem Set 1

Upload: morris-mosley

Post on 18-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Lecture 3 of 42

Wednesday, 03 September 2008

William H. Hsu

Department of Computing and Information Sciences, KSU

KSOL course page: http://snipurl.com/1pq4c

Course web site: http://www.kddresearch.org/Courses/Fall-2008/CIS560

Instructor home page: http://www.cis.ksu.edu/~bhsu

Reading for Next Class:

Chapter 2, Silberschatz et al., 5th edition – next week

Problem Set 1

Relational DatabasesDiscussion: Problem Set 1

Page 2: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Relational Algebra:Review

Relational Algebra:Review

Procedural language Six basic operators

select: project: union: set difference: – Cartesian product: x rename:

The operators take one or two relations as inputs and produce a new relation as a result.

Page 3: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Example QueriesExample Queries

Find the names of all customers who have a loan at the Perryridge branch.

Find the names of all customers who have a loan at the Perryridge branch but do not have an account at any branch of the bank.

customer_name (branch_name = “Perryridge”

(borrower.loan_number = loan.loan_number(borrower x loan))) –

customer_name(depositor)

customer_name (branch_name=“Perryridge”

(borrower.loan_number = loan.loan_number(borrower x loan)))

Page 4: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Example QueriesExample Queries

Find the names of all customers who have a loan at the Perryridge branch.

Query 2

customer_name(loan.loan_number = borrower.loan_number (

(branch_name = “Perryridge” (loan)) x borrower))

Query 1

customer_name (branch_name = “Perryridge” (

borrower.loan_number = loan.loan_number (borrower x loan)))

Page 5: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Example QueriesExample Queries Find the largest account balance

Strategy: Find those balances that are not the largest

Rename account relation as d so that we can compare each account balance with all others

Use set difference to find those account balances that were not found in the earlier step.

The query is:

balance(account) - account.balance

(account.balance < d.balance (account x d (account)))

Page 6: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Formal DefinitionFormal Definition

A basic expression in the relational algebra consists of either one of the following: A relation in the database

A constant relation

Let E1 and E2 be relational-algebra expressions; the following

are all relational-algebra expressions:

E1 E2

E1 – E2

E1 x E2

p (E1), P is a predicate on attributes in E1

s(E1), S is a list consisting of some of the attributes in E1

x (E1), x is the new name for the result of E1

Page 7: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Additional OperationsAdditional Operations

We define additional operations that do not add any power to the

relational algebra, but that simplify common queries.

Set intersection Natural join Division Assignment

Page 8: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Set-Intersection OperationSet-Intersection Operation

Notation: r s Defined as: r s = { t | t r and t s } Assume:

r, s have the same arity attributes of r and s are compatible

Note: r s = r – (r – s)

Page 9: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Set-Intersection Operation – ExampleSet-Intersection Operation – Example

Relation r, s:

r s

A B

121

A B

23

r s

A B

2

Page 10: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Notation: r s

Natural-Join OperationNatural-Join Operation

Let r and s be relations on schemas R and S respectively. Then, r s is a relation on schema R S obtained as follows: Consider each pair of tuples tr from r and ts from s.

If tr and ts have the same value on each of the attributes in R S, add a

tuple t to the result, where t has the same value as tr on r

t has the same value as ts on s

Example:R = (A, B, C, D)

S = (E, B, D) Result schema = (A, B, C, D, E) r s is defined as:

r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s))

Page 11: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Natural Join Operation – ExampleNatural Join Operation – Example

Relations r, s:

A B

12412

C D

aabab

B

13123

D

aaabb

E

r

A B

11112

C D

aaaab

E

s

r s

Page 12: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Division OperationDivision Operation

Notation: Suited to queries that include the phrase “for all”.

Let r and s be relations on schemas R and S

respectively where R = (A1, …, Am , B1, …, Bn )

S = (B1, …, Bn)

The result of r s is a relation on schema

R – S = (A1, …, Am)

r s = { t | t R-S (r) u s ( tu r ) }

Where tu means the concatenation of tuples t and u to

produce a single tuple

r s

Page 13: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Division Operation – ExampleDivision Operation – Example

Relations r, s:

r s: A

B

1

2

A B

12311134612

r

s

Page 14: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Another Division ExampleAnother Division Example

A B

aaaaaaaa

C D

aabababb

E

11113111

Relations r, s:

r s:

D

ab

E

11

A B

aa

C

r

s

Page 15: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Division Operation (Cont.)Division Operation (Cont.)

Property Let q = r s Then q is the largest relation satisfying q x s r

Definition in terms of the basic algebra operation

Let r(R) and s(S) be relations, and let S R

r s = R-S (r ) – R-S ( ( R-S (r ) x s ) – R-S,S(r ))

To see why R-S,S (r) simply reorders attributes of r

R-S (R-S (r ) x s ) – R-S,S(r) ) gives those tuples t in

R-S (r ) such that for some tuple u s, tu r.

Page 16: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Assignment OperationAssignment Operation

The assignment operation () provides a convenient way to express complex queries. Write query as a sequential program consisting of

a series of assignments followed by an expression whose value is displayed as a result of the query.

Assignment must always be made to a temporary relation variable.

Example: Write r s as

temp1 R-S (r )

temp2 R-S ((temp1 x s ) – R-S,S (r ))

result = temp1 – temp2

The result to the right of the is assigned to the relation variable on the

left of the .

May use variable in subsequent expressions.

Page 17: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Bank Example QueriesBank Example Queries

Find the names of all customers who have a loan and an account at bank.

customer_name (borrower) customer_name (depositor)

Find the name of all customers who have a loan at the bank and

the loan amount

) ( loanborrowerountnumber, amame, loan-customer-n

Page 18: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Query 2

customer_name, branch_name (depositor account)

temp(branch_name) ({(“Downtown” ),

(“Uptown” )})

Note that Query 2 uses a constant relation.

Bank Example QueriesBank Example Queries

Find all customers who have an account from at least the “Downtown” and the Uptown” branches.

Query 1

customer_name (branch_name = “Downtown” (depositor account ))

customer_name (branch_name = “Uptown” (depositor account))

Page 19: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Find all customers who have an account at all branches located

in Brooklyn city.

Example QueriesExample Queries

customer_name, branch_name (depositor account)

branch_name (branch_city = “Brooklyn” (branch))

Page 20: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Extended Relational-Algebra-OperationsExtended Relational-Algebra-Operations

Generalized Projection Aggregate Functions Outer Join

Page 21: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Generalized ProjectionGeneralized Projection

Extends the projection operation by allowing arithmetic functions to be used in the projection list.

E is any relational-algebra expression

Each of F1, F2, …, Fn are are arithmetic expressions involving

constants and attributes in the schema of E. Given relation credit_info(customer_name, limit, credit_balance),

find how much more each person can spend:

customer_name, limit – credit_balance (credit_info)

)( ,...,,21

EnFFF

Page 22: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Aggregate Functions and OperationsAggregate Functions and Operations

Aggregation function takes a collection of values and returns a single value as a result.

avg: average valuemin: minimum valuemax: maximum valuesum: sum of valuescount: number of values

Aggregate operation in relational algebra

E is any relational-algebra expression G1, G2 …, Gn is a list of attributes on which to group (can be empty)

Each Fi is an aggregate function

Each Ai is an attribute name

)()(,,(),(,,, 221121E

nnn AFAFAFGGG

Page 23: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Aggregate Operation – ExampleAggregate Operation – Example

Relation r:

A B

C

7

7

3

10

g sum(c) (r) sum(c )

27

Page 24: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Aggregate Operation – ExampleAggregate Operation – Example

Relation account grouped by branch-name:

branch_name g sum(balance) (account)

branch_name account_number balance

PerryridgePerryridgeBrightonBrightonRedwood

A-102A-201A-217A-215A-222

400900750750700

branch_name sum(balance)

PerryridgeBrightonRedwood

13001500700

Page 25: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Aggregate Functions (Cont.)Aggregate Functions (Cont.)

Result of aggregation does not have a name Can use rename operation to give it a name For convenience, we permit renaming as part of aggregate

operation

branch_name g sum(balance) as sum_balance (account)

Page 26: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Outer JoinOuter Join

An extension of the join operation that avoids loss of information. Computes the join and then adds tuples form one relation that

does not match tuples in the other relation to the result of the join.

Uses null values: null signifies that the value is unknown or does not exist All comparisons involving null are (roughly speaking) false by

definition.We shall study precise meaning of comparisons with nulls later

Page 27: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Outer Join – ExampleOuter Join – Example

Relation loan

Relation borrower

customer_name loan_number

JonesSmithHayes

L-170L-230L-155

300040001700

loan_number amount

L-170L-230L-260

branch_name

DowntownRedwoodPerryridge

Page 28: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Query 2

customer_name, branch_name (depositor account)

temp(branch_name) ({(“Downtown” ),

(“Uptown” )})

Note that Query 2 uses a constant relation.

Bank Example QueriesBank Example Queries

Find all customers who have an account from at least the “Downtown” and the Uptown” branches.

Query 1

customer_name (branch_name = “Downtown” (depositor account ))

customer_name (branch_name = “Uptown” (depositor account))

Page 29: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Deletion:Review

Deletion:Review

A delete request is expressed similarly to a query, except instead of displaying tuples to the user, the selected tuples are removed from the database.

Can delete only whole tuples; cannot delete values on only particular attributes

A deletion is expressed in relational algebra by:

r r – E

where r is a relation and E is a relational algebra query.

Page 30: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Deletion Examples:Review

Deletion Examples:Review

Delete all account records in the Perryridge branch.

Delete all accounts at branches located in Needham.

r1 branch_city = “Needham” (account branch )

r2 branch_name, account_number, balance (r1)

r3 customer_name, account_number (r2 depositor)

account account – r2

depositor depositor – r3

Delete all loan records with amount in the range of 0 to 50

loan loan – amount 0and amount 50 (loan)

account account – branch_name = “Perryridge” (account )

Page 31: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Insertion:Review

Insertion:Review

To insert data into a relation, we either: specify a tuple to be inserted write a query whose result is a set of tuples to be inserted

in relational algebra, an insertion is expressed by:

r r E

where r is a relation and E is a relational algebra expression. The insertion of a single tuple is expressed by letting E be a

constant relation containing one tuple.

Page 32: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Insertion Examples:Review

Insertion Examples:Review

Insert information in the database specifying that Smith has $1200 in account A-973 at the Perryridge branch.

Provide as a gift for all loan customers in the Perryridge branch, a $200 savings account. Let the loan number serve as the account number for the new savings account.

account account {(“Perryridge”, A-973, 1200)}

depositor depositor {(“Smith”, A-973)}

r1 (branch_name = “Perryridge” (borrower loan))

account account branch_name, loan_number,200 (r1)

depositor depositor customer_name, loan_number (r1)

Page 33: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Updating:Review

Updating:Review

A mechanism to change a value in a tuple without charging all values in the tuple

Use the generalized projection operator to do this task

Each Fi is either

the I th attribute of r, if the I th attribute is not updated, or, if the attribute is to be updated Fi is an expression, involving only

constants and the attributes of r, which gives the new value for the attribute

)(,,,, 21rr

lFFF

Page 34: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Update Examples:Review

Update Examples:Review

Make interest payments by increasing all balances by 5 percent.

Pay all accounts with balances over $10,000 6 percent interest and pay all others 5 percent

account account_number, branch_name, balance * 1.06 ( BAL 10000 (account ))

account_number, branch_name, balance * 1.05 (BAL 10000 (account))

account account_number, branch_name, balance * 1.05 (account)

Page 35: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Create Table with Integrity Constraints: Review

Create Table with Integrity Constraints: Review

not null primary key (A1, ..., An )

Example: Declare branch_name as the primary key for branch and ensure that the values of assets are non-negative.

create table branch (branch_name char(15), branch_city char(30), assets integer, primary key (branch_name))

primary key declaration on an attribute automatically ensures not null in SQL-92 onwards, needs to be explicitly stated in SQL-89

Page 36: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Drop and Alter Table Constructs:Review

Drop and Alter Table Constructs:Review

The drop table command deletes all information about the dropped relation from the database.

The alter table command is used to add attributes to an existing relation:

alter table r add A D

where A is the name of the attribute to be added to relation r and D is the domain of A. All tuples in the relation are assigned null as the value for the

new attribute.

The alter table command can also be used to drop attributes of a relation:

alter table r drop A

where A is the name of an attribute of relation r Dropping of attributes not supported by many databases

Page 37: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Basic Query Structure:Review

SQL is based on set and relational operations with certain modifications and enhancements

A typical SQL query has the form:

select A1, A2, ..., An

from r1, r2, ..., rm

where P

Ai represents an attribute Ri represents a relation P is a predicate.

This query is equivalent to the relational algebra expression.

The result of an SQL query is a relation.

))(( 21,,, 21 mPAAA rrrn

Page 38: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System Concepts

Test for Absence ofDuplicate Tuples

Test for Absence ofDuplicate Tuples

The unique construct tests whether a subquery has any duplicate tuples in its result.

Find all customers who have at most one account at the Perryridge branch.

select T.customer_name from depositor as T where unique (

select R.customer_name from account, depositor as R where T.customer_name = R.customer_name and

R.account_number = account.account_number and

account.branch_name = ‘ Perryridge’ )

Page 39: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System ConceptsCIS 560: Database System Concepts

SummarySummary

Relational Algebra Relational Joins

Based on mathematical relations Operators

Page 40: Computing & Information Sciences Kansas State University Wednesday, 03 Sep 2008CIS 560: Database System Concepts Lecture 3 of 42 Wednesday, 03 September

Computing & Information SciencesKansas State University

Wednesday, 03 Sep 2008CIS 560: Database System ConceptsCIS 560: Database System Concepts

TerminologyTerminology

Database Management Systems (DBMS) Data Manipulation Languages (DMLs) Data Description Languages (DDLs) Client-Server Architecture Relational Databases

Entity Relationship

Relations Subsets of Cartesian product of two or more sets Functions

Functions One-to-one (into function, injection) Onto (surjection) One-to-one & onto (bijection, permutation, invertible function)