Introduction to Database Systems
|
This course introduces the theory and practice of modern database design and application, with an emphasis on data modeling and data-driven application design. Relational and non-relational data models, cloud and distributed storage systems, database performance, writing effective database queries, and current topics in database systems are introduced. Topics include entity-relationship modeling; relational algebra; relational, dimensional, and non-relational data models; normalization techniques; SQL; data-driven application design, authentication and access control; transactions, concurrency and performance optimization; CAP theorem; and distributed and cloud computing environments. Lab assignments reinforce class topics.
|
Prerequisite: CS-2851/CS-285
Course structure: 3-2-4 (class hours/week, laboratory hours/week, credits).
|
Requried:
Notebook computer required
Optional:
Database Management Systems, 3rd ed. Ramakrishnan and Gehrke, McGraw Hill, 2002
NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot
Persistence 1st Edition, by Pramod J. Sadalage, 2016.
The Essence of SQL: A Guide to Learning Most of SQL in the Least Amount of
Time, David Rozenshtein.
Database Systems: The Complete Book (2nd Edition) by Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom.
High Performance MySQL: Optimizaton, Backups, Replication, and More, Schwartz, Tkachenko, Zawodny, Lentz, Balling.
• High Performance MySQL: Optimizaton, Backups, Replication, and More,
Schwartz, Tkachenko, Zawodny, Lentz, Balling.
|
Upon successful completion of this course, the student will:
- Be able to design database models using entity-relationship, relational, dimensional, and non-relational modeling.
- Understand how to refine a database design using normalization techniques.
- Understand database properties of atomicity, consistency, independence and durability.
- Understand the concepts and tradeoffs and consistency, availability, and partition tolerance in distributed database systems.
- Be able to use standard database languages (e.g. SQL) for querying, manipulating, and basic management of databases.
- Be able to design and deploy scalable, distributed database and data processing applications such as Apache Hadoop and Spark
- Be able to describe the CAP theorem and apply it to proper database selection and design.
- Be aware of modern trends in the area of database systems.
|
|