# Chapter 2 Adapted from Silberschatz, et al. CHECK SLIDE 16.

## Presentation on theme: "Chapter 2 Adapted from Silberschatz, et al. CHECK SLIDE 16."— Presentation transcript:

Chapter 2 Adapted from Silberschatz, et al. CHECK SLIDE 16

Chapter 2: – Introduction to databases – Terminology – Basic concepts

Example of a Relation attributes (or columns) tuples (or rows)

Attribute Types The set of allowed values for each attribute is called the domain of the attribute Attribute values are normally required to be atomic; that is, indivisible The special value null is a member of every domain –The null value causes complications in the definition of many operations

Relation Schema and Instance A 1, A 2, …, A n are attributes R = (A 1, A 2, …, A n ) is a relation schema instructor = (ID (as A 1), name (as A 2), … dept_name, salary)

Relations are Unordered n Order of tuples is irrelevant (tuples may be stored in an arbitrary order) n Example: instructor relation with unordered tuples

Database A database consists of multiple relations Information about an enterprise is broken up into parts instructor student advisor Why is it a bad design to define as one relation? univ (instructor -ID, name, dept_name, salary, student_Id, advisor,..)

Database Bad design: univ (instructor -ID, name, dept_name, salary, student_Id, advisor..) –Duplicate information (two students have the same instructor) –The need for null values (representing a student with no advisor) –Makes it easy to create data inconsistency problems. (How would that occur?)

Schema Diagram for University Database

Keys You have used keys before – e.g. sorting, hash tables Identify key (attributes) to uniquely identify specific tuples See next

Keys Let K  R (The key(s) K must be a subset of the attributes) K is a primary key 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 primary keys of instructor. Foreign key constraint: Value in one relation must appear in another –Referencing relation –Referenced relation

Relational Notation Chapter 2 introduces relational algebra notation (more in Chapter 6)

Selection of tuples Relation r Select tuples with A=B and D > 5 σ A=B and D > 5 (r) Use sigma to denote selection; (r) indicates the relation

Selection of Columns (Attributes) Relation r: n Select A and C n Projection n Π A, C (r) Projection: output specified attributes; remove duplicates

Joining two relations – Cartesian Product (“join” later) nRelations r, s: nr x s: Cartesian product combines tuples from 2 relations; result contains all pairs of tuples, regardless of whether attribute values match α1 with each instance of C/D/E Same for β2

Union of two relations Relations r, s: n r  s: Relations are sets so we can perform standard set operations. Must be “similarly structured” tables.

Set difference of two relations Relations r, s: n r – s: What is in relation r that is not in relation s?

Set Intersection of two relations Relation r, s: r  s What’s in r and also in s?

Joining two relations – Natural Join Let r and s be relations on schemas R and S respectively. The “natural join” of relations R and S is a relation on schema R  S obtained as follows: –Consider each pair of tuples t r from r and t s from s –If t r and t s 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 t r on r t has the same value as t s on s

Natural Join Example Relations r, s: n Natural Join n r s Attributes B and D are common to both relations. Result of the natural join is all tuples merged based on these attributes (default)

Relations Sometimes helps see how to structure the SQL queries if you write out the relation first These (given in Chapter 2) are simple uses and not exhaustive More later in the course

End of Chapter 2

Figure 2.01

Figure 2.02

Figure 2.03

Figure 2.04

Figure 2.05

Figure 2.06

Figure 2.07

Figure 2.10

Figure 2.11

Figure 2.12

Figure 2.13