CS 411: Database Systems

CS 411: Database Systems

Course Description

As the first introductory course for databases, this course studies the fundamentals of using and implementing relational and non-relational database management systems. First, from the user perspective (i.e., how to use a database system), the course will discuss conceptual data modeling, physical data modeling, computing on data, designing schemas, querying databases, and manipulating databases. We will study both the relational and “NoSQL” databases such as document and graph databases. Further, from the system perspective (i.e., how to design and implement a database system), the course will study data representation, data accessing and indexing, query processing and optimization, and transaction processing.

Course Prerequisite

.     Background: CS225 Data Structures.

.     Programming: You should be comfortable in programming and can quickly learn a new language if needed. You should be able to use major programming languages such as Python and Java.

Course Goals

By the end of the course, you will be able to:

.     Use a database system for storing, managing, and querying data.

.     Design and create a data-driven application using a database system.

.     Identify the differences between relational and non-relational (NoSQL) systems and their target usage and application settings.

.     Describe the internal architecture and key components of a database system.

.     Design and implement data indexing, query processing and optimization, and transaction processing algorithms.

Textbook

Database Systems: The Complete Book, 2nd edition, by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer D. Widom.

Course Schedule

Week

Topic

Relevant Concepts and Techniques

1

Introduction

Course format, exams, projects, database introduction and overview.

2

Conceptual Data Modeling

Data modeling, ER model, UML.

3

Physical Data

Modeling

Relational model, translating from ER to relational model, object-oriented and object-relational models, NoSQL models--key-value model, document mode, graph model.

4

Computing on Data

Relational algebra, map-reduce framework.

5

Designing

Schemas

Schema redundancy and anomalies, functional dependencies, normal forms, Boyce-Cod Normal Form, Third Normal Form, lossless and dependency-preserving decomposition, multi-valued dependencies.

6

Querying

Databases: The Relational Way

SQL, basic select-from-where, null values, subqueries, set operationsdealing with duplicates, aggregates.

7

Querying

Databases: Non- relational Way

Querying document databases, MongoDB querying, basic operations, handling complex structures, aggregate framework, the case for joins.

8

Querying

Databases: Non- relational Way

Querying graph databases, Neo4j querying, basic operations, advanced capabilities.

9

Manipulating

Databases

Creating and modifying databases, views, constraints, checks and assertions, triggers.

10

Spring Break

11

Accessing and

Indexing Data

Accessing data, indexing data,

index-sequential access method,

tree-based indexing, binary tree,

b+treequad treehash-based

indexing, linear hashing, extensible hashing.

12

Query

Processing

Database machine cost models, query operators, one-pass

algorithms.

13

Query

Processing

Two-pass algorithms, index-based algorithms.

14

Query

Optimization

Algebraic laws, optimizer, rule- based optimization, cost-based optimization, dynamic

programming, physical query plans, estimating sizes.

15

Transaction

Management

Transactions, correctness of

transactions, recovery, undo

logging, redo logging, undo/redo logging.

16

Conclusion

Review and discussion of the state of industry and research.

Elements of This Course

The course is comprised of the following elements:

.     Lecture Video. Each topic will be covered through about 6 to 10 individual lecture videos that range from 5 to 20 minutes long each.

.    Assignments. Assignments are given in the form of practice quiz. Each week has one practice quiz with 10 questions. Practice quizzes must be attempted and will be graded based on completion (you will receive full credit as long as you make a meaningful effort taking these quizzes). You will have unlimited attempts on practice quiz.

.    Quizzes. Each week has one graded quiz with 10 questions. Graded quizzes contribute to the course overall grading.

.     Programming Assignments. Four programming assignments are given in this class. Programming assignments will be autograded.

.     Exams. Two proctored exams (via ProctorU) will be given in this class.

.     Project. A semester-long project, with deliverables scheduled throughout the semester.

Assignment Deadlines

For all assignment deadlines, please refer to the Course Deadlines, Late Policy, and Academic Calendar page.

Grading Distribution and Scale

Grading Distribution

Your final grade will be calculated based on the activities listed in the table below. Your official final

course grade will be listed inEnterprise. The course grade you see displayed in Coursera may not match your official final course grade.

Component

Percentage

Assignment

5%

Graded Quizzes

25%

Programming Assignments

20%

Proctored Exams

25%

Project

25%

Total

100%

Grading Scale

Total

Grade

90 - 100

A (A-, A, A+)

80 - 89

B (B-, B, B+)

70 - 79

C (C-, C, C+)

60 – 69

D (D-, D, D+)

Below 60

F

发表评论

电子邮件地址不会被公开。 必填项已用*标注