Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Introduction to Relational Model
©Silberschatz, Korth and Sudarshan2.2Database System Concepts - 6 th Edition Example of a Relation attributes (or columns) tuples (or rows)
©Silberschatz, Korth and Sudarshan2.3Database System Concepts - 6 th Edition 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
©Silberschatz, Korth and Sudarshan2.4Database System Concepts - 6 th Edition Relation Schema and Instance A 1, A 2, …, A n are attributes R = (A 1, A 2, …, A n ) is a relation schema Example: instructor = (ID, name, dept_name, salary) Formally, given sets of values D 1, D 2, …. D n, a relation r is a subset of D 1 x D 2 x … x D n Thus, a relation is a set of n-tuples (a 1, a 2, …, a n ) where each a i D i The current values (relation instance) of a relation are specified by a table. An element t of r is a tuple, represented by a row in a table.
©Silberschatz, Korth and Sudarshan2.5Database System Concepts - 6 th Edition Relations are Unordered Order of tuples is irrelevant (tuples may be stored in an arbitrary order) Example: instructor relation with unordered tuples
©Silberschatz, Korth and Sudarshan2.6Database System Concepts - 6 th Edition Relations are Unordered Why is the order of tuples irrelevant? An unordered collection of elements is a set: {1, 2, 3} = {2, 1, 3}. An ordered collection of elements is a list: (1, 2, 3) (2, 1, 3). A set is used to express (expressiveness). We care you are a student, but we don’t care when you register (the order). A list is used to process (efficiency).
©Silberschatz, Korth and Sudarshan2.7Database System Concepts - 6 th Edition Schema Diagram for University Database
©Silberschatz, Korth and Sudarshan2.8Database System Concepts - 6 th Edition Relational Operators
©Silberschatz, Korth and Sudarshan2.9Database System Concepts - 6 th Edition Selection of tuples Relation r Select tuples with A=B and D > 5 σ A=B and D > 5 (r)
©Silberschatz, Korth and Sudarshan2.10Database System Concepts - 6 th Edition Selection of Columns (Attributes) Relation r: Select A and C Projection Π A, C (r)
©Silberschatz, Korth and Sudarshan2.11Database System Concepts - 6 th Edition Joining two relations – Cartesian Product Relations r, s: r x s:
©Silberschatz, Korth and Sudarshan2.12Database System Concepts - 6 th Edition Union of two relations Relations r, s: r s:
©Silberschatz, Korth and Sudarshan2.13Database System Concepts - 6 th Edition Set difference of two relations Relations r, s: r – s:
©Silberschatz, Korth and Sudarshan2.14Database System Concepts - 6 th Edition Set Intersection of two relations Relation r, s: r s
©Silberschatz, Korth and Sudarshan2.15Database System Concepts - 6 th Edition Joining two relations – Natural Join Let r and s be relations on schemas R and S respectively. Then, 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
©Silberschatz, Korth and Sudarshan2.16Database System Concepts - 6 th Edition Natural Join Example Relations r, s: Natural Join r s