Database Design
Database design principles is a course that teaches the basics of how to create, manage, and use database systems. Databases are systems that store and organize data in a structured way, allowing users to query, manipulate, and analyze the data efficiently. Database design is the process of defining the structure, relationships, and constraints of the data in a database.
Objectives
The learning objectives of this course are:
-
To understand the concepts and principles that underlie how databases work, such as data models, schemas, keys, normalization, and transactions.
-
To learn the different types of databases and database management systems, such as relational, hierarchical, network, object-oriented, and NoSQL databases.
-
To acquire the skills to use a database language, such as SQL (Structured Query Language), to create, read, update, and delete data in a database.
-
To apply the knowledge and skills to design and implement a simple database system for a given problem or scenario.
-
To explore the current trends and challenges in database technology, such as big data, data warehousing, data mining, and cloud computing.
Schedule
- Relational Data Models (1 week)
- Relational Algebra (1 week)
- Structured Query Language (SQL) (3 weeks)
- Database Design (2 week)
- Database Normalization (2 week)
- Complex Data Types (1 week)
- Application Development (2 week)
- Advanced Topics (Big data and NoSQL DBs) (2 week)
- Exams (1 week)
Grading policy
- Homework –- individual works (4-5 points)
- Writing assignments (WAs)
- Programming assignments (PAs)
- Project –- works in groups of three students (4 points)
- Class activities (1 point)
- Midterm exam –- paper based/ practical exam (4-5 points)
- Final exam –- paper based (6 points)
- Additional activities -- works in groups of three students ([−1, 3] points)
- Research work with in-class presentations
- We have time for three in class presentation
- Homework design
- Course material design
- Research work with in-class presentations
Instructor
Morteza Zakeri, Ph.D.
ACM Professional Member