The course covers the basic concepts of databases, database system concepts and architecture, data modeling using ER diagram, relational model, SQL, relational algebra and calculus, normalization, transaction processing, concurrency control, and database recovery.
Introduction, Characteristics of the Database Approach, Actors on the Scene, Workers behind the Scene, Advantages of Using the DBMS Approach
Data Models, Schemas, and Instances, Three-Schema Architecture and Data Independence, Database Languages and Interfaces, Database System Environment, Centralized and Client/Server Architectures for DBMSs, Classification of Database Management Systems
High-Level Conceptual Data Models for Database Design, Entity Types, Entity Sets, Attributes, and Keys, Relationship Types, Relationship Sets, Roles, Structural Constraints, Weak Entity Types, ER Diagrams, Naming Conventions, Design Issues, Relationship Types of Degree Higher Than Two, Subclasses, Superclasses, Inheritance, Specialization and Generalization, Constraints and Characteristics of Specialization and Generalization
Relational Model Concepts, Relational Model Constraints and Relational Database Schemas, Update Operations, Transactions, and Constraint Violations
Unary Relational Operations: SELECT and PROJECT, Relational Algebra Operations from Set Theory, Binary Relational Operations: JOIN and DIVISION, Additional Relational Operations, Tuple Relational Calculus, Domain Relational Calculus
Data Definition and Data Types, Specifying Constraints, Basic and Complex Retrieval Queries, INSERT, DELETE, and UPDATE Statements, Views
ER-to-Relational Mapping, Informal Design Guidelines for Relational Schemas, Functional Dependencies, Normal Forms: 1NF, 2NF, 3NF, BCNF, 4NF, Properties of Relational Decomposition
Transaction Processing, Transaction and System Concepts, Desirable Properties of Transactions, Characterizing Schedules Based on Recoverability and Serializability
Two-Phase Locking Technique, Timestamp Ordering, Multiversion Concurrency Control, Validation (Optimistic) Techniques, Snapshot Isolation Concurrency Control
Writing database programs to create and query databases using SQL (basic and advanced features)