Undergraduate Course: Introduction to Databases (INFR10080)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 10 (Year 3 Undergraduate)
||Availability||Available to all students
|Summary||Data 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.
* Ths course replaces "Database Systems" (INFR10070) from academic year 2020/21.*
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)
||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-requisites||Same as other requirements
|High Demand Course?
Course Delivery Information
|Academic year 2020/21, Available to all students (SV1)
|Learning and Teaching activities (Further Info)
Lecture Hours 30,
Seminar/Tutorial Hours 8,
Summative Assessment Hours 2,
Revision Session Hours 3,
Programme Level Learning and Teaching Hours 4,
Directed Learning and Independent Learning Hours
|Assessment (Further Info)
|Additional Information (Assessment)
||Assessed coursework will consist of an SQL assignment (25%), an online test (25%), and active participation in weekly tutorials (10%).
||The formative coursework is automatically marked (not for credit) and students will receive automatically-generated feedback on the results of their submission.
Additional group feedback is given during tutorials, where the correct solutions to the coursework are discussed.
||Hours & Minutes
|Main Exam Diet S1 (December)||2:00|
|Resit Exam Diet (August)||2:00|
On completion of this course, the student will be able to:
- Compare strengths and weaknesses of different database designs
- Process and analyse data by means of SQL statements
- Formulate and manipulate queries in both declarative and procedural database languages
- Reason about the correctness of concurrent database interactions among multiple users
|Lecture slides and tutorial exercises with fully worked solutions are posted on Learn (and Piazza). |
Lecture recordings are available for revision after each class.
- 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]
|Graduate Attributes and Skills
||Cognitive skills: Problem-solving and critical/analytical thinking.
|Course organiser||Dr Paolo Guagliardo
Tel: (0131 6)51 3835
|Course secretary||Mrs Michelle Bain
Tel: (0131 6)51 7607