THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2023/2024

Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Introduction to Databases (INFR10080)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 10 (Year 3 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryData is one of the most important assets of any enterprise and plays a central role in many aspects of everyday life, from healthcare, to education, to commerce. In order to be turned into meaningful information that enables and supports decision making, data must be stored, maintained, processed and analysed. Database management systems are complex software programs that allow their users to perform these tasks in an efficient and reliable way. This course is an introduction to the principles underlying the design and implementation of relational databases and database management systems.

*This course replaces "Database Systems" (INFR10070) from academic year 2020/21*
Course description Databases encompass many areas of Computer Science, from formal logic to programming languages, from operating systems to algorithms and data structures. This course will cover in detail the main language for relational databases, SQL, which is an international standard supported by virtually all systems on the market today. It will also cover the theoretical query languages on which SQL's core is based, namely relational algebra and relational calculus. Other important topics covered during the course include normal forms, transaction processing, concurrency control, incomplete data and rudiments of query optimization.

Syllabus (core topics)
- The relational model and rudiments of SQL
- Query languages: relational algebra and calculus
- Multisets, grouping and aggregation
- Database design: constraints and normal forms
- Advanced SQL: nested queries, triggers, null values
- Transaction management: concurrent schedules, conflict-serializability, locking
- Database access from applications: using SQL in a host programming language
- Basics of indexing, query evaluation and optimisation

Syllabus (advanced topics, if time allows)
- Datalog and recursive queries
- Incomplete data and certain answers
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements Students are assumed to have a Computer Science background and familiarity with basic notions from discrete mathematics (sets, orders, combinations, permutations, graphs, propositional logic, algorithmic complexity). Predicate logic will be introduced during the course but previous experience with it is desirable. There are no specific programming requirements. Familiarity with the Unix command line is a plus, though not strictly required.
Information for Visiting Students
Pre-requisitesAs above.
High Demand Course? Yes
Course Delivery Information
Academic year 2023/24, Available to all students (SV1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 30, Summative Assessment Hours 2, Revision Session Hours 3, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 161 )
Assessment (Further Info) Written Exam 80 %, Coursework 20 %, Practical Exam 0 %
Additional Information (Assessment) 80% exam
20% coursework
Feedback Students will receive individual, automatically-generated feedback on the results of their coursework submissions. Common mistakes and correct solutions will be discussed during office hours.
Exam Information
Exam Diet Paper Name Hours & Minutes
Main Exam Diet S1 (December)Introduction to Databases (INFR10080)2:00
Resit Exam Diet (August)2:00
Learning Outcomes
On completion of this course, the student will be able to:
  1. compare strengths and weaknesses of different database designs
  2. process and analyse data by means of SQL statements
  3. formulate and manipulate queries in both declarative and procedural database languages
  4. reason about the correctness of concurrent database interactions among multiple users
Reading List
Lecture slides and tutorial exercises with fully worked solutions are posted on Learn. Lecture recordings are available for revision after each class.

Recommended textbooks:
- Raghu Ramakrishnan and Johannes Gehrke: Database Management Systems (Third Edition). McGraw-Hill, 2003.
- Serge Abiteboul, Richard Hull, and Victor Vianu: Foundations of Databases, Addison Wesley, 1995. [out of print, but freely available for personal use]
Additional Information
Graduate Attributes and Skills Cognitive skills: Problem-solving and critical/analytical thinking.
KeywordsData,Database,SQL,Introduction,Query Languages
Contacts
Course organiserDr Paolo Guagliardo
Tel: (0131 6)51 3835
Email: Paolo.Guagliardo@ed.ac.uk
Course secretaryMrs Michelle Bain
Tel: (0131 6)51 7607
Email: michelle.bain@ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Prospectuses
Important Information