290 likes | 463 Views
Introduction to Relational Database Systems. Lecture 4. Relational database systems. data objects relations / tables operators applied to tables generate tables. Relations / tables. explicit data values extensionally defined atomic keys integrity design
E N D
Relational database systems • data objects • relations / tables • operators • applied to tables • generate tables
Relations / tables • explicit data values • extensionally defined • atomic • keys • integrity • design • includes how to organise data in tables
Data about departments Depts
Data about employees Emps
Atomic values no access to individual items
Primary and foreign keys foreign primary
Integrity • restrictions on data defined by users • on individual tables • age > 18; salary < 100k • on more than one table • if budget < 10M then salary < 50k • implicit in the data model
Primary key integrity incorrect model
Foreign key integrity incorrect model ?
Relational operators • characteristics • set at a time • base and derived tables • ‘closed’ with respect to relations / tables • nested expressions • include • RESTRICT • PROJECT • JOIN
RESTICT RESTRICT Depts WHERE Budget > 8M
PROJECT PROJECT Depts OVER Dept_id, Budget
JOIN JOIN Depts AND Emps OVER Dept_id
Nested statements • “the members of all departments that have the budget greater than 7M” • JOIN (RESTRICT Depts WHERE Budget > 7M) AND Emps OVER Dept_id
Relational model • a data model in which all data is modelled as relations • a way of looking at data • a prescription for a way of • representing data • manipulating data • representing integrity constraints
Relational database systems • relational DBMS • implements the relational model • not in its entirety • may add new features • relational database system • a database application developed in the relational model and implemented in a relational DBMS • physical details hidden from the user
Relational DBMS - features • views • security • the optimiser • the data catalogue / data dictionary
Views (in relational systems) • named derived table • the definition stored in the catalogue • evaluated only when used • optimisation • used as if it were a real table • problems with updates • views • ANSI/SPARC • relational
Views • CREATEVIEW TopEmp AS • PROJECT • (SELECT Emps WHERE Salary > 33K) • OVER E_name, Salary
Views - usage • SELECT TopEmp WHERE Salary <= 40 • SELECT • PROJECT • SELECT Emps WHERE Salary > 33 • OVER E_name, Salary • WHERE Salary <= 40
Security and views • how would you use the view mechanism in conjunction with the security system? DEFINE SECURITY RULE AS ...
The optimiser • operators - set level • the DBMS decides how to best perform the operations, based on • strategies of evaluation • information about the DB (in the catalogue)
The best evaluation strategy • PROJECT • SELECT Emps WHERE E_id = E2 • OVER E_name, Salary
The catalogue • information about the database • schemas • mappings • integrity rules • views definition • security rules ... • other modules that need it • the optimiser • the security system ...
The system table “Tables” PROJECT Tables OVER Coulcount, Rowcount
Summary • relational model • relations • operators • integrity • relational DBMSs • implement the relational model • views + security • the optimiser • the catalogue • next lecture : SQL