Module Information
Course Delivery
Delivery Type | Delivery length / details |
---|---|
Lecture | 40 x 1 Hour Lectures |
Assessment
Assessment Type | Assessment length / details | Proportion |
---|---|---|
Semester Exam | 2 Hours Written Exam | 60% |
Semester Assessment | Regular Worksheets | 10% |
Semester Assessment | Design a Multi-table Relational Database | 30% |
Supplementary Exam | 2 Hours Written Exam | 60% |
Supplementary Assessment | Design Database Note - Students must resit failed examination and/or resubmission of failed/non-submitted coursework components or ones of equivalent value. | 40% |
Learning Outcomes
On successful completion of this module students should be able to:
Design and validate a database from a given enterprise description, justifying design decisions.
Implement a database design using a modern DBMS.
Access a database through an appropriate programmatic interface.
Explain and provide a rationale for relational, semi-structured and alternative data model concepts.
Explain key principles of database and information security.
Aims
This module will provide a theoretical background in modelling persistent data using both relational databases and NoSQL systems. It will also introduce key concepts in information security.
Brief description
This module develops the concepts of database design, and implementation and use. The emphasis is on relational and semi-structured (XML) systems but object databases are introduced. It covers practical topics concerned with modelling and effective use of the facilities provided by a modern Database Management System (DBMS). Theoretical topics include data modelling, placing particular emphasis on the data model, relational algebra and the realisation of the relational model in a DBMS.
Content
Review and persistence, outline history. The value of general models: relational; object oriented; semi-structured. Databases, DBMS and applications programs. DBMS as reuse.
2. Relational Modelling
Entities and relationships. Connection traps. The design of relations. Transformation of an E-R model into a relational schema. Use of UML.
3. The Relational Model
Domains, relations and tuples. Primary and foreign keys. Referential integrity. Relational algebra. Null values and the outer join. Data normalisation. Validating a design.
4. SQL and implementation
Introduction. Status. DDL statements. SELECT clauses. Constraints. Built-in functions. Queries and views. Nested SELECT. Stored procedures.
5. Additional relational integrity constraints
Table and database level constraints. Triggers. Use of stored procedures.
6. Transactions
Introduction to transactions. ACID properties. Rollback.
7. Integration with general high level languages
Embeddings and APIs. DBMS connections and services. ODBC, JDBC. Application development. The data dictionary.
8. The semi-structured database model and XML
The model: outline; perceived advantages. The XML standard. XMLSchema: overview; type constraint; keys and keyrefs; comparison with SQL. XPath and XQuery: syntax; power. XML databases: native databases; extensions to RDBMS.
9. Database and Information Security
Threats to database and information. Techniques to secure persistent data, such as cryptography, steganography, access control and hashing.
10. Not Only SQL (NoSQL)
The original NoSQL, a collection of shell utilities. Object-relational databases. Not only SQL, implemetations and applications.
11. The Java Persistence API
Introduction to and practical demonstation of the Java Persistence API.
Module Skills
Skills Type | Skills details |
---|---|
Application of Number | Database programming involves higher level mathematical concepts. |
Communication | Exam and report writing develop written communication skills. |
Improving own Learning and Performance | Independent learning is necessary to complete the online quizzes. |
Information Technology | Information and communications technology is intrinsic to Computer Science. |
Personal Development and Career planning | There is a substantial demand for database programmers. |
Problem solving | Problem solving is intrinsic to programming in general, and to database programming in particular. |
Research skills | In order to develop a database application, it is necessary to research user requirements and available technologies. Additionally an understanding of databases enhances all research skills, as research materials now all reside in databases. |
Subject Specific Skills | Application of data modelling tools and technologies. |
Team work | This module will require individual rather than team work. |
Notes
This module is at CQFW Level 5