Undergraduate Course: Introduction to Databases (INFR10080)
Course Outline
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 |
SCQF Credits | 20 |
ECTS Credits | 10 |
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.
* 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-requisites | Same as other requirements |
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:
- 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
|
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. |
Keywords | Data,Database,SQL,Introduction,Query Languages |
Contacts
Course organiser | Dr Paolo Guagliardo
Tel: (0131 6)51 3835
Email: |
Course secretary | Mrs Michelle Bain
Tel: (0131 6)51 7607
Email: |
|
|