Accessibility Skip to Global Navigation Skip to Local Navigation Skip to Content Skip to Search Skip to Site Map Menu

COSC344 Database Theory and Applications

An introduction to fundamental database technology, including database theory, database design, and extensive practical work.

Paper title Database Theory and Applications
Paper code COSC344
Subject Computer Science
EFTS 0.15
Points 18 points
Teaching period Semester 1 (On campus)
Domestic Tuition Fees (NZD) $1,141.35
International Tuition Fees Tuition Fees for international students are elsewhere on this website.

^ Top of page

COSC 203 or COSC 242
COSC 444
Recommended Preparation
COSC 201
Schedule C
Arts and Music, Science

Computer Science Adviser,

Teaching staff

Lecturers: Dr Haibo Zhang
Dr Yawen Chen

Paper Structure

The aim of COSC 344 is to teach the principles of designing a database, use of a database management system and the design and implementation of the underlying database management system software. Issues of data modelling and database design are explored. The relational model, relational algebra and operators are covered, as well as functional dependencies and normalisation. The query language, SQL, and programming within the database are explored.

Database recovery and protection, issues of transactions, concurrent access and query optimisation are covered. The underlying storage structures and access methods are explained. Distributed databases are introduced. Advanced data models such as NoSQL are explored.


  • Assignment and lab work 40%
  • Final exam 60%
Teaching Arrangements
There are two 1-hour lectures and a 2-hour lab per week. Weekly exercises also have to be completed.

Elmasri, R. & Navathe, S., Database Systems: Models, Languages, Design, and Application Programming (7th Edition), 2016.

Course outline
View the course outline for COSC 344
Graduate Attributes Emphasised
Lifelong learning, Critical thinking, Self-motivation.
View more information about Otago's graduate attributes.
Learning Outcomes

Students will:

  • Master the skills in analysing a miniworld, designing a database and implementing a database in Oracle
  • Use SQL language to manipulate data in a database
  • Implement user-friendly interface using C, Java and PHP programming languages to interact with a database
  • Understand the mechanisms inside the database management system and learn how to optimise a database and a query
  • Understand key technologies for distributed databases
  • Practise on database security
  • Get familiar with advanced NoSQL data models for representing a database

^ Top of page


Semester 1

Teaching method
This paper is taught On Campus
Learning management system

Computer Lab

Stream Days Times Weeks
Attend one stream from
A1 Wednesday 10:00-11:50 9-14, 16-22
A2 Wednesday 12:00-13:50 9-14, 16-22


Stream Days Times Weeks
A1 Monday 09:00-09:50 9-14, 16-22
Wednesday 09:00-09:50 9-14, 16-22