Using DBMS as a black box: ER Model, relational model and algebras, SQL, normalization. Internals of relational DBMS: file organizations, indexing (tree, hash, and bitmap), implementation of relational operators. Transaction management: ACID properties, concurrency control, crash recovery. Non-relational DBMS: consistency and availability trade-offs, NoSQL DBMS (key-value, document, and graph).
Practical: Using a relational DBMS: Writing SQL queries, accessing a DBMS from an external application. Implementing of parts of DBMS such as various file organizations, indexing methods (Tree/ Hash/ Bitmap), external sorting algorithms, concurrency control schemes, and crash recovery schemes. Non-relational DBMS; performance comparison of a non-relational DBMS with a relational DBMS for an application.
Texts:
References: