This is my first course that I have completed in my first semester (Fall 2020) at Georgia Tech. If you are curious, this program is called OMSCS program, and the course name is CS6400 Database System Concepts and Design.

Topics Covered

In this course, we learn about database concepts, techniques and tools to develop a database application from scratch. Here's the list of very brief topics that touches upon in this course:

  • What is Model? Why use Model?
  • Data Modeling vs. Process Modeling
  • Database Architecture and Database Management System (DBMS)
  • Relational models, data structures, constraints, operations
  • Data integrity (reflects reality) vs. data consistency (no internal conflicts)
  • ANSI/SPARC 3-Level DB architecture & DBMS framework
  • System Metadata (critical in DBMS) vs Business Metadata (critical in data warehouse)
  • Methodology: Analysis -> Specification -> Design -> Implementation
  • Information flow diagram (IFD)
  • Entity relationship (ER) vs. Extended entity relationship (EER)
  • Entity types, property types, relationship types, constraints
  • Relational algebra vs. relational calculus
  • SQL queries
  • WAMP/LAMP/MAMP and PhpMyAdmin
  • When to do indexing?
  • Rules when normalize a relation - no redundancy/cluttering of facts, must preserve information/functional dependencies
  • Normal Forms: NF^2 (non-first normal form), 1NF, 2NF, 3NF, BCNF (Boyce-Codd normal form)
  • Armstrong's rules for functional dependencies: reflexivity, augmentation, transitivity
  • Computer architecture: memory, CPU, disk, etc.

Course Review

Generally speaking, I think this class is not very difficult (other reviews might say otherwise). Exams are a huge part of the overall grade (50% total), and they are a little bit tricky, but if you know your stuff really well (watch lecture videos and read textbooks) and be super careful when doing the exam questions, you probably would be doing just fine. The group project is manageable (35% total), you will work with your teammates (3-4 persons in each group). Instructions and deliverables are given at each phase so you will know what to work on and what the expectations are. The rest (15% total) are free points for you as long as you finish all the remaining items (ex: participation, review, etc).

One thing I have also learned is that make sure to ask questions when in doubt (by that time, we were using Piazza to communicate with the TAs/instructors). The TA is super responsive and your question would be probably answered in within 3 minutes (though sometimes the response is vague and hard to comprehend).

Honestly, it is also quite an eye-opening experience for me. First of all, I have never had a class that involves so many students from all over the world in a remote environment. Most of the students are working adults and they are pretty smart and knowledgeable too. I had my first shock when I got back my first exam score, I found out that I was merely on the average score line (~80%). I used to be the "smart" one (not the actual intelligent smart, but someone who is just good at taking exams and things like that). It really had me thinking that I need to work much harder and so that I can do better next time. Secondly, I have managed to learn so much about the database systems concepts, technical terms and also learn how to design a good database schema for the application that we built for the project. Last but not least, I had the opportunity to relearn and practice writing lots of SQL queries as well as coding a website using (W|L|M)AMP stack in the last phase of the project.

Given that this is my first course, I think this is still a decent course to take or begin with. The material is not very difficult to comprehend, and the workload is not that heavy, so it might be good to couple with another course in the same semester. However, if you are already very good at databases and you are not required to take this class, you might be better off taking other classes as I feel like things that are taught in the class is kind of basic and general, and it might be more worthwhile to enroll in other classes that are more interesting and high quality.

Difficulty : ★★★☆☆ (3 out of 5)
Quality : ★★★☆☆ (3 out of 5)
Workload : 0 - 10 hours / week
Overall Rating : ★★★☆☆ (3 out of 5)

Post was published on , last updated on .

Like the content? Support the author by paypal.me!