CSE3DMS is a subject you either love or hate. Put simply, only take this class if you have a passion for databases. If you have taken the core subject CSE2DBF (Database Fundamentals), do not expect DMS to be similar. DBF is all about logical design with absolutely no emphasis on performance and optimisation. DMS is concerned about database performance. The nuts and bolts of database management systems.
The subject is broken into 4 major topics:
1. Indexing: You will learn all about various database indexes including B+Trees, Bitmap, static and dynamic hashing indexes.
2. Query optimisation: Selection algorithms, join algorithms (nested-loop join, single-loop join, sort and merge join, hash join), query trees, denormalisation, etc.
3. Transaction management: Serializability, recoverability, etc.
4. Concurrency control: Two-phase locking, timestamp protocols, deadlocks, etc.
If you don't know SQL then do yourself a favour and don't do this subject. However, if you're a fast learner you can quickly pick the language up. PL-SQL is not covered since the majority of the content is theoretical rather than practical.
The labs are really tough but I recommend trying to complete them. Solutions are posted weekly on LMS. Jinli is a fantastic lecturer who is always willing to answer your questions.
If you want to work with databases in the future, this subject is a must.
Topics:
* Introduction to database management systems
* B+ Tree Index, Bitmap, clustering, primary/secondary indexes, hash index
* Hashing techniques including static/extendible hashing
* Algorithms for query processing and optimisation - Selection algorithms and Join algorithms
* Translating SQL to relational algebra
* Query Trees
* Database tuning (i.e. denormalisation)
* ACID transactions
* Concurrency control techniques - 2PL and timestamp protocols
* Oracle Cost Based Optimizer (CBO)
* Database Recovery Techniques