Computer Science

ECS 165B Database Systems

ECS 165B DATABASE SYSTEMS (4 units)

Format
Lecture: 3 hours
Discussion: 1 hour

Catalog Description:
Data modeling (object-relational, graph-based, spatiotemporal models). Querying semistructured data (XML). Database theory (normalization, integration, provenance). Database programming (stored procedures, embedded SQL, web programming). Advanced topics (data warehousing, parallel data processing).

Prerequisite: Course 165A

Credit restrictions, cross listings: None

Summary of course contents

  1. Data Modeling
    1. E/R alternatives: UML, Object-Role Modeling (ORM)
    2. Object-oriented and object-relational models
    3. Graph-based models
    4. Temporal and spatial models
    5. Metadata, data quality, data curation
  2. Semistructured Data on the Web (XML)
    1. XML DTDs, XML-Schema
    2. Querying XML: XPath, XQuery, XSLT
  3. Database Theory
    1. Normalization: functional dependencies, multivalued dependencies, BCNF
    2. Data integration
    3. Data provenance
  4. Database Programming
    1. Stored procedures
    2. Embedded SQL
    3. Web programming
  5. Selected Advanced Topics
    1. Data warehousing, OLAP
    2. Big data, parallel data processing, cloud databases
    3. NoSQL, linked data
    4. Geographic information systems

This course is heavily design-oriented. In at least three projects, students have to apply design and system concepts learned in class to design and implement real-world database applications on top of major database management system software. The projects establish certain techniques to be used, but then give open-ended design assignments to include programming and design opportunities.

The projects involve design, implementation and evaluation of database applications using a variety of database systems. The systems and tools used for these projects resemble those that are found in industry including standard web languages (XML) and query languages (SQL). Projects are graded based on the design, performance, and correctness, including documentation. Examination questions are based on database models and database design techniques discussed in the lecture and from the projects.

Goals: Students will: (1) learn the basic concepts and design issues of relational and non-relational database systems, database normalization, and data integration; (2) learn and apply advanced database programming concepts including stored procedures, embedded SQL, and web programming; and (3) learn and apply techniques underlying advanced database systems and applications, such as XML querying, web-based databases, data warehouses, and data mining.

Recommended reading

  • R. Elmasri and S. Navathe. Fundamentals of Database Systems, 6th edition.Addison-Wesley, 2010
  • A. Silberschatz, H. Korth, and S. Sudarshan. Database System Concepts, 6th edition. McGraw-Hill, 2010
  • H. Garcia-Molina, J. Ullman, and J. Widom. Database Systems: The Complete Book, 2nd edition. Prentice-Hall, 2008

Computer Usage:
Students work individually on projects in a UNIX/Linux workstation environment, using standard UNIX/Linux tools as well as major database software packages, including the Oracle RDBMS and major Web-based programming interfaces to database systems.

Engineering Design Statement:
The projects involve design, implementation and verification of database applications using a variety of database systems including object-oriented, object-relational and distributed database systems. The systems and tools used for these projects resemble those that would be found in industry to the extent possible, including the standard database query languages SQL and OQL. Projects are graded based on the design, performance, and correctness, including documentation. Examination questions are based on database models and database design techniques discussed in the lecture and from the projects.

ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units

GE3: Science & Engineering

Overlap: None

Instructors: B. Ludäscher

History: 2012.10.26 (B. Ludäscher): Changed catalog description, course contents. Prior version by M. Gertz (February 2006)

Outcomes

1 X an ability to apply knowledge of mathematics, science, computing, and engineering
2 X an ability to design and conduct experiments, as well as to analyze and interpret data
3 X an ability to design, implement, and evaluate a system, process, component, or program to meet desired needs, within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
4 an ability to function on multi-disciplinary teams
5 X an ability to identify, formulate, and solve computer science and engineering problems  and define the computing requirements appropriate to their solutions
6 an understanding of professional, ethical, legal, security and social issues and responsibilities
7 an ability to communicate effectively with a range of audiences
8 the broad education necessary to understand the impact of computer science and engineering solutions in a global and societal context
9 X a recognition of the need for, and an ability to engage in life-long learning
10 X knowledge of contemporary issues
11 X an ability to use current techniques, skills, and tools necessary for computing and engineering practice
12 X an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
13 X an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity
border