- This course satisfies the project requirement.
REQUIRED TEXTBOOK : Database Management Systems by Ramakrishnan and Gehrke, 3rd edition, McGraw Hill, 2003
COURSE OUTCOMES: This course introduces the underlying concepts behind data modeling and database systems using relational database management systems (RDBMS, specifically Oracle), the structured query language (SQL), and web applications (Perl DBI in CGI) as examples. Students learn:
- How to model domains and data using the entity-relationship model
- How to design a normalized schema in the relational data model
- How to implement schemas using SQL
- How to keep data consistent and safe with using the ACID properties of a modern RDBMS
- How to query data using SQL
- How to interface to a modern RDBMS from a modern programming language
- How such interfaces are used to create web applications
- How an RDBMS provides quick access to data using indices, and how indices are implemented
- How an RDBMS manages storage and the storage hierarchy
- How an RDBMS optimizes and executes queries using the relational algebra, the theoretical underpinning of database systems
- Hierarchical (including XML), network , object and object-relational data models
- Current topics
Detailed information can be found at http://www.cs.northwestern.edu/~pdinda/db
COURSE COORDINATOR: Peter Dinda
PREREQUISITES: ( EECS 213 or (EECS 205 and EECS 231)) and EECS 311
PREREQUISITE FOR: EECS 464
DETAILED COURSE TOPICS:
- Introduction to database-backed web applications
- Web systems, CGI and other application models
- Introduction to Perl
- Introduction to SQL and ACID
- Waterfall versus spiral models of development
- Entity-relationship data model
- Design principles
- Referential integrity and other constraints
- Relational data model
- Schemas and keys
- Functional and multi-valued dependencies
- Normalization and normal forms
- Translating ER schemas to relational schemas
- Other data models and current topics
- Hierarchical, network, object-oriented, object-relational
- XML
- Search in structured and unstructured P2P networks
- Relational algebra
- Bags and sets
- Basic operators
- Joins
- Grouping
- Expressions and constraints (statements)
- Equivalent expressions and optimization
- SQL in depth
- Writing constraints
- Advanced data types
- Regular expressions
- Nulls and 3-valued logic
- Indices
- Views
- Transactions
- Triggers
- Security (access control, SQL injection attacks)
- Storage systems and records
- Disks and RAID
- Record layout / free space management
- Buffer management
- B-Tree indices
- B+Tree
- Query and join implementations
- Hash indices
- Extensible hashing
- Linear hashing
- Query and join implementations
- Bitmap indices
- Query and join implementations
- Brief introduction to transaction implementation
- Logging (undo, redo, redo/undo)
- Locking (deadlock, lock ordering, two-phase locking)
HOMEWORK ASSIGNMENTS:
1. Entity-Relationship data model
2. Relational data model
3. Relational Algebra
4. Implementation of Databases
LABORATORY PROJECTS:
- Extending Microblog: Add new features to the Microblog database-backed web app
- Self-defined Project: Propose, design, and implement your own database-backed web app
- Database Systems Project: Implement a B+Tree index
