• Database System Architecture: data abstraction; external, conceptual, and internal schemata; data independence; data definition and data manipulation languages.
• Data models: Entity-relationship and relational data models; data structures, integrity constraints, and operations for each data model; relational query languages: SQL, algebra, calculus, QBE.
• Theory of database design: Functional dependencies; normal forms; dependency preservation; information loss.
• Storage Strategies: Indices, B-trees, hashing. Advanced access methods: advanced hashing and multi-key access methods.
- Data stream management systems. Study of current database systems.
The work in the database systems laboratory aims at the understanding and practical application of the design and implementation procedures of the relational DBMSs using MySQL. The laboratory is divided into 4 modules: (1) Requirements analysis and DB design (ER diagram, relational schema), (2) Creating a DB (create, insert), (3) DB queries (select, update, delete), Programming in DBMSs (triggers, stored procedures). The laboratory is done through lectures followed by laboratory exercises. It concludes with the design of a full-scale DB, creating tables and importing data via appropriate SQL statements, SQL queries implementation, and building an application in Java to communicate with the DB, retrieve data and update data.