Instructor: Feifei LI
[Overview] [Announcements] [Syllabus] [Textbook] [Schedule] [Slides] [Written Assignments] [Project] [Additional Resources] [Contact]
Graduate-level introduction to database systems and implementation. Reviews the relational data model and commercial relational query languages: SQL. Examines in depth file organization, database storage, indexing and hashing, query evaluation and optimization, transaction processing, concurrency control and recovery, database integrity and security. Furthermore, students will participate in a semester-long project and build a mini-database system by implementing several core modules in a database system. In summary, this course is about the principles of designing a database system. Please note that this is NOT a course on database applications, i.e., you will not learn from this course how to build an application that connects to and queries the database.
08/23/07: Course
website is up. Course syllabus is ready for review.
09/03/07: IMPORTANT--Please make sure
that you have an account in the computer science department and you are able to access the unix server diablo(.cs.fsu.edu).
09/03/07: Please review relational algebra
from your introduction to database course.
09/08/07:
Following our discussion in the last lecture, w.r.t Dave's question why
self-join is important? The reason becomes clear "when you want to compare
values in a column to other values in the same column". Please refer to the
example in the following site for more details--
CLICK HERE.
09/10/07:
IMPORTANT -- We will start working on
Project 1 soon. It is VERY IMPORTANT to get yourself familiar with the
MiniBase system that you will be implementing throughout the semester. Please
find the general information for MiniBase from
HERE. The
important things to read is "The
Overview of Single-User MiniBase". Please make sure that you thoroughly read
through the relevant documents following that link. In particular for project 1,
you should understand the
HeapFile
related topic. In addition to that, you should also learn the
Error protocol
(including the details in
Error Interface) in MiniBase system which will be useful for all projects
throughout the course.
09/14/07: Solution to WA1 is posted and Project 1
is out. WA2 will be out soon... (it is out now)
10/02/07: Solution to WA2
is posted. Get it from diablo with similar directory path as for WA1 solution.
10/08/07:
Midterm will cover: SQL, IC, Buffer and Disk, File and Index (exclude B+tree
insert/delete).
10/08/07: Project 2 is
out. Please start early as this one is much more difficult than the first
project. The instructor will explain some of the details in the class.
10/11/07: WA3 is posted.
Solution to the Midterm is available at the diablo course folder.
10/23/07: Solution to WA3 is posted.
11/10/07: WA4 is posted.
11/11/07: Project 3 will be posted at 12AM, Monday Nov 12.
11/12/07: Project 3
is posted.
11/27/07:
Solution to WA4
is posted.
11/29/07:
WA5
is posted.
Syllabus for the course in PDF format:
Please pay
special attention to the pre-requisite requirement for the course.
Database Management System by R. Ramakrishnan and J. Gehrke, 3rd Edition. Details and additional material supporting this book could be found here.
Lecture: Tue and Thu, 5:15pm - 6:30pm, 103 Love.
Office Hour: Mon 10am-11am; Wed 4pm-5pm.
Exam: Midterm Thu 10/11/07 in class; Final Thur 12/13/07 103 Love 5:30-7:30pm
Detailed weekly schedule could be found in the course syllabus.
Slides will be posted before each lecture. Updates to slides may happen after
the lecture.
Lecture 1: Course Administration and Introduction, Overview of Database
Systems
![]()
Lecture 2: Relational Model
Lecture 3a: SQL-1
Lecture 3b: SQL-2
Lecture 3c: SQL-3
(we will cover up to slide 26. The rest is for you to read if you are
interested.)
Lecture 4: Disks and Files
Lecture 5: File Organizations and Indexing
![]()
Lecture 6: Tree-Based Indexing
![]()
Lecture 7: B+ Tree Example
![]()
![]()
Lecture 8: Hash-Based Indexing
![]()
Lecture 9: External Sorting
Lecture 10: Single Table Query Evaluation
![]()
Lecture 11: Query Evaluation
![]()
Lecture 12: Query Optimization
Lecture 13: Concurrency Control
![]()
Lecture 14: Concurrency Control More
Lecture 15:
Recovery
![]()
1. Assignment will be posted after it is announced in the class.
2. Solution will be posted once the assignment due date is passed.
WA1: Part A
and Part B
WA2:
WA3:
It is ready.
Solution: as usual...
WA4:
It is ready. It
will be due on Tuesday in class, Nov. 20th. Solution:
as usual...
WA5:
It is ready. It
will be due on Thursday in class, Dec. 6th.
1. Project description will be available when it is announced in the class.
2. Sample solution to the project will not be posted, however, the output for the test traces will be available.
Projcet1: Implementing
HeapPage for the disk manager in the DBMS.
Projcet2: Implementing
the disk-based B+ tree with buffer management support.
Projcet3:
Implementing the sort merge join algorithm.
Database Research: ACM SIGMOD VLDB IEEE ICDE
Database Products: ORACLE Microsoft SQL Server IBM DB2 PostGre MySQL
Feifei
Li
Grader: Justin Marshal