Lecture: 3 hours
Discussion: 1 hour
Database modeling and design (E/R model, relational model), relational algebra, query languages (SQL), file and index structures, query processing, transaction management.
Prerequisite: Course 60
Credit restrictions, cross listings: None
Summary of course contents
This course includes a design project, intended to give students the opportunity to work with a full-featured, object-relational database system (PostgreSQL) and develop a simple end-to-end application. The project spans all phases of the development life-cycle, from E/R design, to load scripts, complex SQL queries, application programming, and browser-based visualization. Students are graded on creativity, design, programming methodology, documentation and satisfactory completion of stated tasks.
Goals: Students will: (1) learn the design of database applications starting from the conceptual design to the implementation of database schemas and user interfaces; (2) learn about database design concepts, data models (E/R model, relational model), the database query language SQL, and components of a database management system; and (3) learn data access structures, query processing and optimization techniques, and transaction management.
Students work individually on projects in a UNIX workstation environment, using standard UNIX tools as well as major database software packages, in particular the Oracle RDBMS.
This course includes three design projects, intended to give students the opportunity to work with major commercial database software packages. The projects establish certain database design concepts and techniques to be used, then give open-ended database design assignments that include conceptual design and database application programming. Students are graded on creativity, design, programming methodology, documentation and satisfactory completion of stated tasks
Engineering Design Statement:
The course is heavily design oriented. Three programming projects, counting 40% of the course, are based on student-originated design and implementation of database applications and the use of one major commercial database package at a database designer/programmer level. Students are required to follow guidelines to create their own applications in SQL, PL/SQL, Embedded SQL, test them, document them and submit executable code for grading each project.
In addition, both the midterm and final emphasize design-related questions dealing with selection of appropriate hardware/software configurations and the optimal use of systems and other software to optimize performance of database systems according to the specified requirements.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
GE3: Science & Engineering
Overlap: Minor overlap with ECS 166: both courses discuss database querying with SQL.
Instructors: B. Ludäscher
History: 2012.10.20 (B. Ludäscher): Changed catalog description, course contents, and overlap statement. Prior version by M. Gertz (October 2006)
|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||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|