The course 'Fundamentals of Database Systems' (CoSc2041) is a 3-credit hour course designed for second-year students, focusing on the principles, design, and implementation of database systems. It covers topics such as data models, ER diagrams, normalization, SQL, and file organization, with an emphasis on practical data retrieval and modification skills. The course includes lectures, laboratory sessions, and tutorials, and evaluates students through exams and project work.
The course 'Fundamentals of Database Systems' (CoSc2041) is a 3-credit hour course designed for second-year students, focusing on the principles, design, and implementation of database systems. It covers topics such as data models, ER diagrams, normalization, SQL, and file organization, with an emphasis on practical data retrieval and modification skills. The course includes lectures, laboratory sessions, and tutorials, and evaluates students through exams and project work.
Credit Hours: 3 ECTS: 5 Contact Hours: Lecture: 2hrs Laboratory: 3hrs Tutorial: 2hrs Prerequisite: None The course will be given on year II and semester I Course description This course is assumed to be the first course in database management systems. It starts by introducing what database is and database systems, and how it differs with the traditional file processing system. It then deals with data models, ER diagrams, database design methods, normalization, relational algeb=ra and calculus, file organizations and storage management, index structure for files, and SQL statements. The course mainly emphasizes on basics of database systems how to retrieve and modify data. It also deals with different database environments. Course objectives This course introduces the students to the overview, design and implementation of database systems. At the end of this course, students will be able to: ➢ Understand what database is, database system and DBMS ➢ Differentiate database system from file system ➢ Identify the pros and cons of manual approach, file based approach and database approach ➢ Understand the basic principles of database design systems using different database models ➢ Appreciate the use of database system in the real world. ➢ Design different types of databases ➢ Understand database normalization & functional dependency ➢ Understand the principles of relational database management systems and their languages ➢ Understand file organizations and storage management, and index structure for files ➢ Demonstrate queries in the relational algebra. ➢ Demonstrate queries in the tuple relational calculus. ➢ Create a relational database schema in SQL that incorporates key, entity integrity, and referential integrity constraints. Course outline Chapter 1: Introduction to Database Systems (2 hours) 1.1. Overview 1.2. Basics of Database 1.3. File organization verses Database approach 1.4. Users and actors of Database system 1.5. Characteristics of the Database Approach Chapter 2: Database System Architecture (2 hours) 2.1. Data models, Schemas, and Instances 2.2. Over view of data models 2.3. Architecture and Data Independence 2.4. Database Language and Interface 2.5. The Database System Environment 2.6. Classification of DBMS 2.7. Chapter 3: Database Modeling (6 hours) 3.1. The Entity Relationship (ER) Model 3.1.1.The high-level conceptual model 3.1.2.Entities, Attributes, and Keys 3.1.3.Relationships, Associations, and Constraints 3.1.4.The ER Diagrams 3.1.5.Mapping ER-models to relational tables 3.2. Enhanced Entity Relationship (EER) Model 3.2.1.Inheritance 3.2.2.Union 3.2.3.Aggregation and Association 3.2.4.Mapping EER model to relational model 3.3. The Relational Database Model 3.3.1.The Relational Model Concepts 3.3.2.The Relational Constraints and Relational Database Schemas 3.3.3.The Relational Operations Chapter 4: Functional Dependency and Normalization (4 hours) 4.1. Functional Dependency 4.2. Normal Forms 4.2.1.First Normal Form 4.2.2.Second Normal Form 4.2.3.Third Normal Form 4.2.4.Boyce Codd Normal Form Chapter 5: Record Storage and Primary File Organization (6 hours) 5.1. Introduction 5.2. Operations on Files 5.3. Files of Unordered Records (Heap Files) 5.4. Files of Ordered Records (Sorted Files) 5.5. Hashing Techniques 5.6. Index Structure for Files 5.7. Types of Single Level Ordered Index 5.8. Dynamic Multilevel indexes using B-Trees and B+ Trees 5.9. Indexes on Multiple Indexes Chapter 6: The Relational Algebra and Relational Calculus (5 hours) 6.1. Introduction 6.2. Relational Algebra 6.3. The Relational Calculus Chapter 7: The SQL Language (7 hours) 7.1. Structured Query Language 7.2. Datatypes 7.3. DDL, DML, TCL and DCL 7.4. Basic Queries in SQL 7.5. Nested Queries in SQL 7.6. Views 7.7. Comments 7.8. Constraints Evaluation Schemes (This may vary on the number of students per class, but general evaluation scheme is as below) ➢ Mid Exam 30% ➢ Lab Evaluation and Project Work 20% ➢ Final Exam 50% Text books and References: Textbook: 1. Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems, McGraw-Hill; 3rd edition, 2002 2. Elmasri, R., & Navathe, S. (2017). Fundamentals of database systems (7th Edition). Pearson. References 1. Osama Mustafa, Robert P. Lockard. (2019). Oracle Database Application Security, Apress, Berkeley, CA. 2. C. J. Date. (2019). Database Design and Relational Theory. 2nd Edition. Apress, Berkeley, CA. 3. Anthony Hack. (2019). SQL Computer Programming for Beginners. Independently published