University of Southern California


CSCI 485: File and Database Management
Computer Science Department

University of Southern California
Spring 2013, MW 12-1:20pm (VHE 217)



Prof. Shahram Ghandeharizadeh


SAL 208


(213) 740-4781



Office Hours

Mondays: 9:00 to 10:00 am, 2:00 to 3:00 pm and Wednesdays: 2:00 to 4:00 pm


Jason Yap

TA Email


TA Office Hours

SAL 219- Thursdays 10:00am to 12:00pm



CS201:Data Structures, knowledge of an object-oriented programming language

Text Book (required)

Database System Concepts, Silberschatz, Korth & Sudarshan, 6th Edition. .

Quick overview

Online Syllabus


File input/output techniques, basic methods for file organization. File managers, principles of databases, conceptual data models, and query languages.
Presently, the relational database technology plays a pivotal role in the commercial arena. There is a growing interest in the use, design, and implementation of these systems. This course introduces students to the fundamental concept in relational databases. Students are introduced to: 1) Conceptual, logical and physical organization of data, 2) Use of both formal and commercial (e.g. SQL) query languages, 3) Indexing techniques for efficient retrieval of data, 4) The concept of a transaction, 5) Concurrency control and crash recovery techniques. These concepts are exercised further by a term project that involves design and implementation of services provided by a relational file system.

Expected Outcomes

At the end of the course, the students are expected to possess the following skills:

        Ability to apply knowledge of ER data model and relational algebra
        Knowledge of logical design of a database and reduction of an ER model to relational data model
        Ability to design a database and write SQL commands to retrieve and manipulate data
        Ability to describe different software layers to implement a database management system
        Knowledge of file system organization of relations and their records
        Ability to describe alternative persistent index structures and their use for query processing
        Knowledge of different storages (disk, memory) and their physical characteristics
        Knowledge of estimation techniques to implement a cost-based query optimizer
        An understanding of designs that preserve database consistency in the presence of concurrent users and system crashes
        Role of caching techniques and their performance
        An understanding of the concept of a transaction lock-based concurrency control protocols and log-based recovery techniques
        Terminology essential to communicate with database practitioners, e.g., normalization, index structures, relational algebra, etc




Exam I (1st midterm)


Exam II (2nd midterm)


Late assignments and projects will be accepted within 7 calendar days following the due date. Late assignments and projects will be penalized 15 + 3(N-1); where N is the number of calendar days late. Assignments and projects submitted more than 7 days will not be accepted and will receive a grade of 0.
“Make-up” exams will not be given.


Reading List

        Introduction and an overview (Chapter 1)
        Conceptual data Design, Database Design and E-R Model (Chapter 6)
        Relational database design (Chapter 7, and “A Simple Guide To Five Normal Forms in Relational Database Theory,” by       W. Kent, Communication of the ACM, Vol 16, Number 2, 1983)
        Relational data model, relational algebra, and SQL as a commercial query language (chapters 2 & 3)
        Design and implementation of a relational data base management system
          1.      physical organization of records (Chapter 11)
          2.      index methods: clustered and non-clustered B-tree, hash indexes, extendible hashing (Chapter 12)
        Query Processing Techniques in relational systems (Chapter 13)
        Transaction and the concept of atomicity (Chapter 15)
        Concurrency control (Chapter 16)
        Crash recovery (Chapter 17)


Academic Integrity Policy

All Assignments and projects must be solved and written independently, or you will be penalized for cheating. The USC Student Conduct Code prohibits plagiarism. All USC students are responsible for reading and following the Student Conduct Code.
In this course we encourage students to study together. This includes discussing general strategies to be used on individual assignments. However, all work submitted for the class is to be done individually.
Some examples of what is not allowed by the conduct code: copying all or part of someone else's work (by hand or by looking at others' files, either secretly or if shown), and submitting it as your own; giving another student in the class a copy of your assignment solution; consulting with another student during an exam. If you have questions about what is allowed, please discuss it with the instructor.
Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the University. Since dishonesty in any form harms the individual, other students, and the University, policies on academic integrity will be strictly enforced. We expect you to familiarize yourself with the Academic Integrity guidelines found in the current USCampus.
Violations of the Student Conduct Code will be filed with the Office of Student Conduct, and appropriate sanctions will be given.

Copyright 2013 DBLAB - Last updated: 01/12/13