Introduction to Databases COM417

COM417 Learning Journey

Why is this module important?

Databases are a major component of ICT systems. Mobile apps, social networks, video games and most software systems deploy databases or deal with data somehow. In this module you are introduced to the skills and concepts required to develop and use relational databases. You will learn how to write programs interacting with databases and how to create them. This provides a solid foundation to prepare for modules involving web, internet or software development elsewhere on your course.

What you will be able to do after the module:

  1. Explain key issues in the development and administration of relational databases and their role in modern IT systems.
  2. Discuss the use of SQL functionality to create information from data.
  3. Apply conceptual modelling techniques to the design and implementation of a simple database.
  4. Apply enterprise-level database software tools in the development, implementation and testing of SQL-based database solutions.
  5. Evaluate data using statistical techniques to provide meaningful information.
  6. Describe the appropriate ethical and legal methods for data collection, usage and storage.

What you will learn on this module

Retrieving Data

  • Basic concepts of relational model
  • SQL for queries including joins, grouping and sub-queries
  • SQL functions for statistical analysis

Database Design and Implementation

  • Normalisation
  • ER modelling
  • SQL to create tables including inserting/updating/deleting records
  • Primary and referential integrity for single column keys
  • Check constraints

Monitoring and Administering Databases

  • Authenticated access to database tools and applications
  • Monitoring of database usage
  • Access control and user permissions

Programming for databases

  • Key programming concepts
  • Using cursors in programming languages
  • Writing PLSQL procedures
  • Creating Triggers and Functions
  • Legal Requirements concerning data
  • Including GDPR, Computer Misuse Act

Block 1 - Retrieving data using SQL Queries Basic queries

  • Functions
  • Inner and Outer Joins
  • Aggregation
  • Comparing and combining result sets
  • Nested queries

Block 2 - Design and implementation

  • Database lifecycle
  • Conceptual, logical and physical design
  • Types of relationships
  • ERD and EERD
  • Generalisation and specialisation
  • Types of constraints
  • Database Implementation
  • Testing constraints

Block 3 - Programming with Databases

  • Writing programs with embedded SQL
  • Transaction control
  • Minimising SQL injection attacks
  • Using Pandas to export and import data to a SQL database.

We use SQLite and Python for the delivery but teach ANSI standard SQL so it can be applied to any flavour of SQL. Our students get an introduction to Python in semester 1 and study Databases in semester 2 which builds on those Python skills and seems to work well.

Summative assessment details

AE1 Weighting: 100%

Portfolio including software artefacts 2000 words

Module Descriptor