![Page 2: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/2.jpg)
What’s a database anyway?
2
![Page 3: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/3.jpg)
A database is …
• Structured
• Persistant
• Changable
• Digital
• True to integrity constraints
3
![Page 4: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/4.jpg)
DBMS
Database
==
Data collection managed by a
specialized software called a
Database Management System (DBMS)
4
![Page 5: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/5.jpg)
Banking, ticket reservations, customer records, sales records, product records, inventories, employee records, address books, demographic records, student
records, course plans, schedules, surveys, test suites, research data,
genome bank, medicinal records, time tables, news archives, sports results, e-commerce, user authentication systems, web forums, www.imdb.com, the world
wide web, …
Why a whole course in Databases?
Databases are
everywhere!
5
![Page 6: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/6.jpg)
Examples
• Banking– Drove the development of DBMS
• Industry– Inventories, personnel records, sales …– Production Control– Test data
• Research– Sensor data– Geographical data– Laboratory information management systems– Biological data (e.g. genome data)
6
![Page 7: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/7.jpg)
Why not a file system?
File systems are
• Structured
• Persistant
• Changable
• Digital
… but oh so inefficient!
7
![Page 8: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/8.jpg)
Modern DBMS
• Handle persistent data
• Give efficient access to huge amounts of data
• Give a convenient interface to users
• Guarantee integrity constraints
• Handle transactions and concurrency
8
![Page 9: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/9.jpg)
Database Management Systems
• Hierarchical databases:– ”Easy” to design if only one hierarchy
– Efficient access
– Low-level view of stored data
– Hard to write queries
• Network databases:– ”Easy” to design
– Efficient access
– Low-level view of stored data
– Very hard to write queries
9
![Page 10: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/10.jpg)
Database Management Systems
• Relational databases:– Hard to design
– Use specialized storage techniques– Efficient access– Provides high-level views of stored data
based on mathematical concepts– Easy to write queries
– Not all data fit naturally into a tabular structure
• Other databases (”NoSQL”):– Some based on semantic data models– Object-oriented database management systems
(OODBMS)– XML-based, Key-value based, …
10
![Page 11: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/11.jpg)
Relational DBMSs
• Very simple model
• Familiar tabular structure
• Has a good theoretical foundation from mathematics (set theory)
• Industrial strength implementations, e.g.
– Oracle, Sybase, MySQL, PostgreSQL, Microsoft SQL Server, DB2 (IBM mainframes)
• Large user community
11
![Page 12: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/12.jpg)
Database system studies
1. Design of databases, e.g.– Entity-Relationship modelling
– relational data model
– dependencies and normalisation
– XML and its data model
2. Database programming, e.g.– relational algebra
– data manipulation and querying in SQL
– application programs
– querying XML
3. Database implementation, e.g.– indexes, transaction management, concurrency control,
recovery, etc.
12
![Page 13: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/13.jpg)
Course Objectives
Design
Construction
Applications
Usage
13
![Page 14: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/14.jpg)
Course Objectives – Design
When the course is through, you should
– Given a domain, know how to design a database that correctly models the domain and its constraints
”We want a database that we can use for scheduling courses and lectures. This is how it’s supposed to work: …”
14
![Page 15: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/15.jpg)
Course Objectives – Design
• Entity-relationship (E-R) diagrams
• Functional Dependencies
• Normal Forms
Course
code
dept
name
responsible
Room
roomNr
name
building
InOf Lecture
day hour
15
![Page 16: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/16.jpg)
Course Objectives – Construction
When the course is through, you should
– Given a database schema with related constraints, implement the database in a relational DBMS
Courses(code, name, dept, examiner)
Rooms(roomNr, name, building)
Lectures(roomNr, day, hour, course)
roomNr -> Rooms.roomNr
course -> Courses.code
16
![Page 17: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/17.jpg)
Course Objectives – Construction
• SQL Data Definition Language (DDL)
CREATE TABLE Lectures (
lectureId INT PRIMARY KEY,
roomId REFERENCES Rooms(roomId),
day INT check (day BETWEEN 1 AND 7),
hour INT check (hour BETWEEN 0 AND 23),
course REFERENCES Courses(code),
UNIQUE (roomId, day, hour)
);
17
![Page 18: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/18.jpg)
Course Objectives – Usage
When the course is through, you should
– Know how to query a database for relevant data using SQL
– Know how to change the contents of a database using SQL
”Add a course ’Databases’ with course code ’TDA357’, given by …”
”Give me all info about the course ’TDA357’”
18
![Page 19: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/19.jpg)
Course Objectives – Usage
• SQL Data Manipulation Language (DML)
INSERT INTO Courses VALUES
(’TDA357’, ’Databases’,’CS’, ’Niklas Broberg’);
• Querying with SQL
SELECT * FROM Courses WHERE code = ’TDA357’;
19
![Page 20: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/20.jpg)
Course Objectives – Applications
When the course is through, you should
– Know how to connect to and use a database from external applications
”We want a GUI application for booking rooms for lectures …”
20
![Page 21: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/21.jpg)
Course Objectives – Applications
• JDBC
// Assemble the SQL command for inserting the
// newly booked lecture.
String myInsert = ”INSERT INTO Lectures ”
+ ”VALUES (” + room + ”, ”
+ day + ”, ” + hour + ”, ” + course + ”)”;
// Execute the SQL command on the database
Statement stmt = myDbConn.createStatement();
stmt.executeUpdate(myInsert);
21
![Page 22: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/22.jpg)
Course Objectives - Summary
You will learn how to
• design a database
• construct a database from a schema
• use a database through queries and updates
• use a database from an external application
22
![Page 23: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/23.jpg)
Examination
• Written exam: Mar 14 (Fri) 8:30-12:30– 60 points (3/4/5 = 24/36/48, G/VG = 24/42)
– Divided into 7 distinct blocks:• E-R diagrams (12)
• FDs and Normal Forms (12)
• SQL DDL (8)
• Relational Algebra (6)
• SQL (8)
• Transactions (6)
• XML (8)
23
![Page 24: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/24.jpg)
Non-standard Exam Structure
• Each block will have two or three sections: A, B and possibly C. Everyone is expected to know the A questions, while B and C questions are intended for those seeking higher grades.
• You can only get points from one section within each block!
– Less time spent on blocks that you know well.
– Harder to get ”stray” points.
– A’s give ~30
24
![Page 25: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/25.jpg)
Exam – E-R diagrams (12)
”A small train company wants to design a booking system
for their customers. …”
• Given the problem description above, construct an E-R diagram.
• Translate an E-R diagram into a database schema.
25
![Page 26: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/26.jpg)
Exam – FDs and NFs (12)
”A car rental company has the following, not very
successful, database. They want your help to improve
it. …”
• Identify all functional dependencies you expect to hold in the domain.
• Indicate which of those dependencies violate BCNF with respect to the relations in the database.
• Do a complete decomposition of the database so that the resulting relations are in BCNF.
26
![Page 27: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/27.jpg)
Exam – SQL DDL (8)
”A grocery store wants a database to store information
about products and suppliers. After studying their
domain you have come up with the following database
schema. …”
• Write SQL statements that create the relations as tables in a DBMS.
• Write a trigger that, whenever the quantity in store of an item drops below a given threshold, inserts an order for that product with the supplier.
27
![Page 28: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/28.jpg)
Exam – SQL (8)
”The grocery store wants your help in getting proper
information from their database. …”
• Write a query that finds the total value of the entire inventory of the store.
• List all products with their current price, i.e. the discount price where such exists, otherwise the base price.
28
![Page 29: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/29.jpg)
Exam – Relational Algebra (6)
”Here is a schema for a database over persons and their
employments. …”
• What does this relational-algebraic expression compute? …
• (Write a relational-algebraic expression that computes … .)
29
![Page 30: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/30.jpg)
Exam – Transactions (6)
”Here are some transactions that run in parallel. …”
• What will the end results given by the transactions be?
• What could happen if they were not run as transactions?
30
![Page 31: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/31.jpg)
Exam –XML (8)
”A medical research facility wants a database that uses a
semi-structured model to represent different degrees
of knowledge regarding the outbreak of epidemic
diseases. …”
• Suggest how to model this domain as a DTD.
• Discuss the benefits of the semi-structured model for this particular domain.
• What does this XQuery expression compute?
31
![Page 32: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/32.jpg)
Exam – Total (60)
• Design ~30 points
• Construction ~10 points
• Usage ~20 points
• Applications = 0 points (?)
32
![Page 33: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/33.jpg)
Lab Assignment
• Write a ”student portal” application in Java– Part I: Design
• Given a domain description, design a database schema using an E-R diagram.
– Part II: Design
• Given a domain description, find and act on the functional dependencies of the domain to fix the schema from Part I.
– Part III: Construction and Usage
• Implement the schema from Part II in Oracle.
• Insert relevant data.
• Create views to support key operations.
– Part IV: Construction
• Create triggers to support key operations.
– Part V: Interfacing from external Application
• Write a Java application that uses the database from Part III.
33
![Page 34: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/34.jpg)
Course Book
"Database Systems: The Complete Book, 2E", by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom
Approx. chapters 1-12
34
![Page 35: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/35.jpg)
Alternative versions
"First Course in Database Systems, A, 3/E" by Jeffrey D. Ullman and Jennifer Widom
"Database Systems: The Complete Book", by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom
Approx. chapters 1-835
![Page 36: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/36.jpg)
ScheduleMon Tue Wed Thu Fri
8-10 Tutorial, EL43 Lab, ED3507
10-12 Lab, ED3507 Tutorial, EL43 Lecture, HC2
13-15[Lecture, HC2]Tutorial, EL43
Lab, ED6225
15-17 Lecture, HC2
Course assistants:
• Jonas Almström Duregård
• Gregoire Detrez
No tutorials or lab sessions in week 1!
• Hamid Ebadi Tavallaei
• Evgenii Kotelnikov36
![Page 37: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/37.jpg)
Web resources
http://www.cse.chalmers.se/edu/course/TDA357/
http://groups.google.com/group/tda357-vt2014
• Course webpage:
• Google discussion group:
37
![Page 38: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/38.jpg)
Database design
Relations
38
![Page 39: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/39.jpg)
Course Objectives
Design
Construction
Application
Usage
39
![Page 40: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/40.jpg)
Course Objectives – Design
When the course is through, you should
– Given a domain, know how to design a database that correctly models the domain and its constraints
”We want a database that we can use for scheduling courses and lectures. This is how it’s supposed to work: …”
40
![Page 41: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/41.jpg)
Designing a database
• ”Map” the domain, find out what the database is intended to model
– The database should accept all data possible in reality
– The database should agree with reality and not accept impossible or unwanted data
• Construct the ”blueprint” for the database – the database schema
41
![Page 42: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/42.jpg)
Database Schemas
• A database schema is a set of relation schemas
• A relation schema has a name, and a set of attributes (+ types):
Courses(code, name, teacher)
name
attributes
42
![Page 43: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/43.jpg)
Schema vs Instance
• Schema – the logical structure of the relation (or database)– Courses(code, name, teacher)
• Instance – the actual content at any point in time{ (’TDA357’, ’Databases’, ’Niklas Broberg’),
(’TIN090’, ’Algorithms’, ’Devdatt Dubhashi’) }
(like a blueprint for a house, and the actual house built from it.)
tuples
43
![Page 44: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/44.jpg)
From schema to database
• The relations of the database schema become the tables when we implement the database in a DBMS. The tuples become the rows:
Courses(code, name, teacher)
code name teacher
’TDA357’ ’Databases’ ’Niklas Broberg’
’TIN090’ ’Algorithms’ ’Devatt Dubhashi’
relation schematable instance
44
![Page 45: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/45.jpg)
Why relations?
• Relations often match our intuition regarding data
• Very simple model
• Has a good theoretical foundation from mathematics (set theory)
• The abstract model underlying SQL, the most important database language today
45
![Page 46: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/46.jpg)
Keys
• Relations have keys – attributes whose values uniquely determine the values of all other attributes in the relation.
Courses(code, name, teacher)
{(’TDA357’, ’Databases’, ’Niklas Broberg’),
(’TDA357’, ’Algorithms’, ’Devdatt Dubhashi’)}
key
46
![Page 47: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/47.jpg)
Composite keys
• Keys can consist of several attributes
Courses(code, period, name, teacher)
{(’TDA357’, 3, ’Databases’, ’Niklas Broberg’),
(’TDA357’, 2, ’Databases’, ’Graham Kemp’)}
47
![Page 48: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/48.jpg)
Quiz time!
What’s wrong with this schema?
Courses(code, period, name, teacher)
{(’TDA357’, 3, ’Databases’, ’Niklas Broberg’),
(’TDA357’, 2, ’Databases’, ’Graham Kemp’)}
Courses(code, name)
CourseTeachers(code, period, teacher)
Redundancy!
48
![Page 49: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/49.jpg)
Scheduler database
”We want a database for an application that we will use to schedule courses. …”
– Course codes and names, and the period the courses are given
– The number of students taking a course
– The name of the course responsible
– The names of all lecture rooms, and the number of seats in them
– Weekdays and hours of lectures
49
![Page 50: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/50.jpg)
Naive approach
• Not using a structured design method means it’s easy to make errors.
• Learn from the mistakes of others, then you won’t have to repeat them yourself!
50
![Page 51: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/51.jpg)
First attempt
– Course codes and name, and the period the course is given
– The number of students taking a course
– The name of the course responsible
– The names of all lecture rooms, and the number of seats in them
– Weekday and hour of lectures
Schedules(code, name, period, numStudents,
teacher, room, numSeats, weekday, hour)
Quiz: What’s a key of this relation?
51
![Page 52: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/52.jpg)
First attempt
Schedules(code, name, period, numStudents, teacher,
room, numSeats, weekday, hour)
code name per. #st teacher room #seats day hour
TDA357 Databases 3 87 Niklas Broberg HC1 126 Monday 15:15
TDA357 Databases 3 87 Niklas Broberg HC2 94 Thursday 10:00
TDA357 Databases 2 93 Graham Kemp HC4 216 Tuesday 10:00
TDA357 Databases 2 93 Graham Kemp VR 228 Friday 10:00
TIN090 Algorithms 1 64 Devdatt Dubhashi HC1 126 Wednesday 08:00
TIN090 Algorithms 1 64 Devdatt Dubhashi HC1 126 Thursday 13:15
Quiz: What’s wrong with this approach?
52
![Page 53: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/53.jpg)
Anomalies
• Redundancy – same thing stored several times
• Update anomaly – we must remember to update all tuples
• Deletion anomaly – if no course has lectures in a room, we lose track of how many seats it has
code name per. #st teacher room #seats day hour
TDA357 Databases 3 87 Niklas Broberg HC1 126 Monday 15:15
TDA357 Databases 3 87 Niklas Broberg HC2 94 Thursday 10:00
TDA357 Databases 2 93 Graham Kemp HC4 216 Tuesday 10:00
TDA357 Databases 2 93 Graham Kemp VR 228 Friday 10:00
TIN090 Algorithms 1 64 Devdatt Dubhashi HC1 126 Wednesday 08:00
TIN090 Algorithms 1 64 Devdatt Dubhashi HC1 126 Thursday 13:15
53
![Page 54: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/54.jpg)
Second attempt
Rooms(room, numSeats)
Lectures(code, name, period, numStudents, teacher,
weekday, hour)
code name per #st teacher day hour
TDA357 Databases 3 87 Niklas Broberg Monday 15:15
TDA357 Databases 3 87 Niklas Broberg Thursday 10:00
TDA357 Databases 2 93 Graham Kemp Tuesday 10:00
TDA357 Databases 2 93 Graham Kemp Friday 10:00
TIN090 Algorithms 1 64 Devdatt Dubhashi Wednesday 08:00
TIN090 Algorithms 1 64 Devdatt Dubhashi Thursday 13:15
room #seats
HC4 216
VR 228
HC1 126
HC2 94
Lost connection between Rooms and Lectures!
… and still there’s redundancy in Lectures
Better? No!54
![Page 55: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/55.jpg)
Third attempt
Rooms(room, numSeats)
Courses(code, name)
CourseStudents(code, period, numStudents)
CourseTeachers(code, period, teacher)
Lectures(code, period, room, weekday, hour)
room #seats
HC4 216
VR 228
HC1 126
HC2 94
code name
TDA357 Databases
TIN090 Algorithms
code per #st
TDA357 3 87
TDA357 2 93
TIN090 1 64
code per teacher
TDA357 3 Niklas Broberg
TDA357 2 Graham Kemp
TIN090 1 Devdatt Dubhashi
code per room day hour
TDA357 3 HC1 Monday 15:15
TDA357 3 HC2 Thursday 10:00
TDA357 2 HC4 Tuesday 10:00
TDA357 2 VR Friday 10:00
TIN090 1 HC1 Wednesday 08:00
TIN090 1 HC1 Thursday 13:15 55
![Page 56: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/56.jpg)
Fourth attempt
Rooms(room, numSeats)
Courses(code, name)
CoursePeriods(code, period, numStudents, teacher)
Lectures(code, period, room, weekday, hour)
room #seats
HC4 216
VR 228
HC1 126
HC2 94
code name
TDA357 Databases
TIN090 Algorithms
code per #st teacher
TDA357 3 87 Niklas Broberg
TDA357 2 93 Graham Kemp
TIN090 1 64 Devdatt Dubhashi
code per room day hour
TDA357 3 HC1 Monday 15:15
TDA357 3 HC2 Thursday 10:00
TDA357 2 HC4 Tuesday 10:00
TDA357 2 VR Friday 10:00
TIN090 1 HC1 Wednesday 08:00
TIN090 1 HC1 Thursday 13:15
Yeah, this is good! 56
![Page 57: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/57.jpg)
Things to avoid!
• Redundancy
• Unconnected relations
• Too much decomposition
57
![Page 58: Databases TDA357/DIT620 · 2014-01-21 · Database Management Systems • Relational databases: – Hard to design – Use specialized storage techniques – Efficient access –](https://reader033.vdocument.in/reader033/viewer/2022042210/5eafc16d3bc2b06223213efd/html5/thumbnails/58.jpg)
Next Lecture
More on Relations
Entity-Relationship diagrams
58