Dr Cho, Instructor of CS 143
Dr Cho, Instructor of CS 143

CS 143 Course Overview

Database Systems

Description of the Course

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisite: course 111. Information systems and database systems in enterprises. File organization and secondary storage structures. Relational model and relational database systems. Network, hierarchical, and other models. Query languages. Database design principles. Transactions, concurrency, and recovery. Integrity and authorization. Letter grading.

Background students will need

CS143 should be accessible to a student with a solid Computer Science foundation that includes reasonable proficiency in programming and working knowledge of basic Computer Science theory (as in CS 31/32). That is, you should feel comfortable with the basic data structures and algorithms in Computer Science (e.g., hash table, graphs, trees, sorting algorithms, set theory) and should feel comfortable doing a fair amount of programming. Math 61 (Discrete Structures), CS 180 (Algorithms), and CS 131 (Programming Languages) are expected but not absolutely required.

The programming project will use the MySQL database management system and PHP. We do not expect any prior experience with relational database systems (such as MySQL), but we do assume that students either already know PHP or will be able to learn them during the quarter. We understand that most students may not be familiar with PHP, but please note that PHP is relatively easy to learn as long as you have done programming before. We will provide links to online resources to help you learn the language for the project. If you are generally a good programmer, we expect that you will be able to finish the class projects in a reasonable amount of time. We also assume that students are already familiar with the UNIX command line interface.

About the Instructor

Junghoo Cho is a professor in the Department of Computer Science at University of California, Los Angeles. He received a Ph.D. degree in Computer Science from Stanford University and a B.S. degree in physics from Seoul National University. His main research interests are in the study of the evolution, management, retrieval and mining of information on the World-Wide Web. He publishes research papers in major international journals and conference proceedings. He serves on program committees of top international conferences, including SIGMOD, VLDB and WWW. He is a recipient of the 10-Year Best-Paper Award at VLDB 2010, NSF CAREER Award, IBM Faculty Award, Okawa Research Award and Northrop Grunmann Excellence in Teaching Award.


  1. Introduction
  2. Relational Model
  3. Relational Algebra
  4. Basic SQL
  5. More SQL
  6. Constraints & Triggers
  7. Views & Authorization
  8. Disks & Files
  9. Indexing (ISAM, B+tree)
  10. Indexing (B+tree, Extendible hashing)
  11. Join Algorithms
  12. Join Algorithms (cont.)
  13. ER Model & ER to RDB
  14. FD, BCNF, Decomposition
  15. MVD, 4NF
  16. Transaction (Serializability)
  17. Transaction (Locking and logging)
  18. Transaction (Isolation levels)