22
Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Embed Size (px)

Citation preview

Page 1: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Lecture 8Database Theory & Practice (2) : The Relational Data Model

UFCEKG-20-2 Data, Schemas & Applications

Page 2: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Origins of the Relational Modelo The relational model was developed by EF Codd in the early 1970s. o Commercial systems based on the relational model appeared in the

late 1970s. o At present there are several hundred relational DBMSs and most

computer vendors support 'relational' software. o Examples of well-known products include Oracle, DB2, Sybase,

MySQL, MS.SQL Server and MS Access.

Informally, a relational system is a system in which:1. The data is perceived by the user as tables (and nothing but tables).2. The operators available to the user for (e.g.) retrieval are operators that derive “new” tables from "old" ones. For example, there is one operator, restrict, which extract a subset of the rows of a given table, and another, project, which extracts a subset of columns - and a row subset and a column subset of a table can both be regarded in turn as tables in their own right.

Page 3: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Components and terminology (1)The model uses terminology taken from mathematics, particularly set theory and predicate logic.

Basic terminology used in relational theory includes:

o relation - this corresponds to a table or flat file with columns and rows

o tuple - a row of a relationo attribute - a named column of a relationo domain - the set of allowable values for one or more

attributeso degree of a relation - the number of attributes it contains o cardinality of relation - the number of tuples it contains.

Page 4: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Components and terminology (2)

Page 5: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Properties of relations

o There is only one data structure in the relational data model - the relation.

o Every relation and every attribute within a relation must have a distinct name.

o Attribute (column) values of a relation are atomic (i.e. single valued).

o All values in an attribute (column) are taken from same domain.

o The ordering of columns in a relation is not significant.o Duplicate tuples (rows) are not allowed (e.g. each row in a

relation must be distinct).o The ordering of tuples (rows) and attributes (columns) is

not significant.

Page 6: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra & relational calculuso Relational algebra (ra) and relational calculus (rc) are both

formal (mathematically based) languages defined by EF Codd.

o ra & rc are logically equivalent languages. ra is “procedural” and rc is “declarative” in nature.

o ra and rc are the formal grounding of the relational database model and illustrate the basic operations required by any data manipulation language such as SQL.

o Relational algebra is an offshoot of first-order logic, is a set of relations closed under operators. Operators operate on one or more relations to yield a relation.

o The “closure” property relates to the fact that from any given relational operation another relation is output - this is often referred to as the “relations in – relations out” property.

Page 7: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (1)

o Each relational operator takes one or more relations as its input and produces a new relation as output (closure). Codd originally defined eight operators, in two classes:

Set operators: UNION INTERSECTIONDIFFERENCE DIVIDE

The special relational operators:

RESTRICT PROJECT

JOIN Cartesian PRODUCT

Page 8: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (2)

Page 9: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (3)dept – emp – salgrade example (1)

Department : dept (depno, dname, location)Employee : emp (empno, ename, mgr, sal, deptno)Salary Grade : salgrade (grade, losal, hisal)

Page 10: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (4)dept – emp – salgrade example (2)

o dept table

deptno dname location10 Accounting New York20 Research Dallas30 Sales Chicago40 Operations Boston

Page 11: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (5)dept – emp – salgrade example (3)

empno ename mgr sal deptno7369 SMITH 7902 £800.00 207499 ALLEN 7698 £1,600.00 307521 WARD 7698 £1,250.00 307566 JONES 7839 £2,975.00 207654 MARTIN 7698 £1,250.00 307698 BLAKE 7839 £2,850.00 307782 CLARK 7839 £2,450.00 107788 SCOTT 7566 £3,000.00 207839 KING £5,000.00 107844 TURNER 7698 £1,500.00 307876 ADAMS 7788 £1,100.00 207900 JAMES 7698 £950.00 307902 FORD 7566 £3,000.00 207934 MILLER 7782 £1,300.00 10

o emp table

Page 12: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (6)dept – emp – salgrade example (4)

grade losal hisal

1 £700.00 £1,200.00

2 £1,201.00 £1,400.00

3 £1,401.00 £2,000.00

4 £2,001.00 £3,000.00

5 £3,001.00 £99,999.00

o salgrade table

Page 13: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (7)dept – emp – salgrade example (5)

o Restrict => subset of the Rows in a TableRESTRICT EMP WHERE sal > 2000

empno ename mgr sal deptno7566 JONES 7839 £2,975.00 207698 BLAKE 7839 £2,850.00 307782 CLARK 7839 £2,450.00 107788 SCOTT 7566 £3,000.00 207839 KING £5,000.00 107902 FORD 7566 £3,000.00 20

Page 14: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (8)dept – emp – salgrade example (6)

o Project => subset the Columns in a TablePROJECT EMP [EMPNO, SAL,DEPTNO]

empno sal deptno

7369 £800.00 20

7499 £1,600.00 30

7521 £1,250.00 30

7566 £2,975.00 20

7654 £1,250.00 30

7698 £2,850.00 30

7782 £2,450.00 10

7788 £3,000.00 20

7839 £5,000.00 10

7844 £1,500.00 30

7876 £1,100.00 20

7900 £950.00 30

7902 £3,000.00 20

7934 £1,300.00 10

Page 15: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (9)dept – emp – salgrade example (7)

o Restrict-ProjectRESTRICT EMP WHERE SAL >2000PROJECT EMP[EMPNO, SAL, DEPTNO]

empno sal deptno7566 £2,975.00 207698 £2,850.00 307782 £2,450.00 107788 £3,000.00 207839 £5,000.00 107902 £3,000.00 20

call this EMPXCould you reverse these operations - always? ( project then restrict?)

Page 16: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (10)dept – emp – salgrade example (8)

o Product => combine each row of one table with each row of the otherPRODUCT DEPT with EMPXempno sal EMPX.

deptno dept.

Depnodname loc

7566 £2,975.00 20 10 Accounting New York

7698 £2,850.00 30 10 Accounting New York

7782 £2,450.00 10 10 Accounting New York

7788 £3,000.00 20 10 Accounting New York

7839 £5,000.00 10 10 Accounting New York

7902 £3,000.00 20 10 Accounting New York

7566 £2,975.00 20 20 Research Dallas

7698 £2,850.00 30 20 Research Dallas

7782 £2,450.00 10 20 Research Dallas

7788 £3,000.00 20 20 Research Dallas

7839 £5,000.00 10 20 Research Dallas

7902 £3,000.00 20 20 Research Dallas

Page 17: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (11)dept – emp – salgrade example (9)

7566 £2,975.00 20 30 Sales Chicago

7698 £2,850.00 30 30 Sales Chicago

7782 £2,450.00 10 30 Sales Chicago

7788 £3,000.00 20 30 Sales Chicago

7839 £5,000.00 10 30 Sales Chicago

7902 £3,000.00 20 30 Sales Chicago

7566 £2,975.00 20 40 Operations Boston

7698 £2,850.00 30 40 Operations Boston

7782 £2,450.00 10 40 Operations Boston

7788 £3,000.00 20 40 Operations Boston

7839 £5,000.00 10 40 Operations Boston

7902 £3,000.00 20 40 Operations Boston

continued from last page :

Page 18: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (12)dept – emp – salgrade example (10)

o Product (Cartesian product)

DEPT has 4 recordsEMPX has 6 records

so DEPT x EMPX has 24 records

but not very useful

Page 19: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (13)dept – emp – salgrade example (11)

o Equi-Join =>product restricted to rows which have matching common domain

empno

sal EMPX. deptno

dept. deptno

dname loc

7566 £2,975.00 20 20 Research Dallas7698 £2,850.00 30 30 Sales Chicago7782 £2,450.00 10 10 Accounting New York7788 £3,000.00 20 20 Research Dallas7839 £5,000.00 10 10 Accounting New York7902 £3,000.00 20 20 Research Dallas

Page 20: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Relational algebra operators (14)dept – emp – salgrade example (12)

o Natural Join =>equi-join projected with the duplicate column removed

empno sal deptno

dname loc

7566 £2,975.00 20 Research Dallas7698 £2,850.00 30 Sales Chicago7782 £2,450.00 10 Accounting New York7788 £3,000.00 20 Research Dallas7839 £5,000.00 10 Accounting New York7902 £3,000.00 20 Research Dallas

Page 21: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Basic SQL

o SELECT * FROM EMP WHERE SAL > 2000;

o SELECT ENAME,SAL,DEPTNO FROM EMP;

o SELECT ENAME,SAL,DEPTNO FROM EMP WHERE SAL > 2000;

o SELECT * FROM EMP, DEPT WHERE SAL > 2000;

o SELECT * FROM EMP,DEPT WHERE SAL > 2000 AND EMP.DEPTNO =

DEPT.DEPTNO;

o SELECT EMPNO, SAL, DEPTNO, DNAME FROM EMP,DEPT WHERE SAL >

2000 AND EMP.DEPTNO = DEPT.DEPTNO;

Page 22: Lecture 8 Database Theory & Practice (2) : The Relational Data Model UFCEKG-20-2 Data, Schemas & Applications

Bibliography / Readings

Bibliography- An Introduction to Database Systems (8th ed.), C J Date, Addison Wesley

2004- Database Management Systems, P Ward & G Defoulas, Thomson 2006

Readings- Introduction to SQL, McGraw-Hill/Osbourne (handout)