Topic 15 – Advanced Database Management Systems

Why do I need to learn about database design?

Database is the heart of any software systems, especially enterprise systems. A bad database design will eventually cause your system fail. Designing enterprise databases requires a lot of specific enterprise knowledge and in-depth understanding of the design of database system. That’s why you need to learn about advanced database design.

What can I do after finishing learning about database design?

You will know WHEN you should use a relational database management system or WHEN you should use a NoSQL database management system and HOW a database system works INTERNALLY.

You will be able to design databases for scalable and high availability software systems also.

That sounds useful! What should I do now?

After that please read this Abraham Silberschatz et al. (2019). Database System Concepts. McGraw-Hill Education book to learn about database system concepts.

After that please read
– this Martin Kleppmann (2017). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media book, and
– this Alex Petrov (2019). Database Internals. O’Reilly Media book to learn how to design distributed databases and how distributed databases work.

Terminology Review:

  • Database’s Files.
  • Storage Manager.
  • Database’s Pages vs. Hardware Pages vs. OS Pages.
  • Page Storage Architecture: Heap Files, Tree Files, Sequential / Sorted File Organization (ISAM), Hashing Files.
  • Page Directory.
  • Page Header.
  • Slotted Pages.
  • Tuple Layout.
  • Tuple Header.
  • Tuple Data.
  • Record Identifiers.
  • Log-Structured Storage: MemTable, SSTables, Compaction.
  • Index-Organized Storage.
  • Tuple Storage.
  • Word-Aligned Tuples.
  • Data Representation: Variable-Precision Numeric Type, Null Data Type, Large Values, Overflow Pages.
  • System Catalogs.
  • N-ary Storage Model (NSM).
  • Decomposition Storage Model (DSM).
  • Partition Attributes Across (PAX) Storage Model.
  • Columnar Compression: Run-Length Encoding (RLE), Bit-Packing Encoding, Bitmap Encoding, Delta Encoding, Dictionary Encoding.
  • Data-Intensive Applications.
  • Graph Databases.
  • Distributed Databases.
  • Distributed Relational Databases.

After finishing the books please click Topic 16 – Advanced Software Design to continue.

 

(Visited 66 times, 1 visits today)

Leave a Reply