This page collects together all of the “outcomes” associated with individual modules. Outcomes identify what students will know and be able to do if they master the material.
At the end of this class, the successful student will:
- have a broad understanding of database concepts and database management system software
- have a high-level understanding of major DBMS components and their function
- be able to model an application’s data requirements using conceptual modeling tools like ER diagrams and design database schemas based on the conceptual model.
- be able to write SQL commands to create tables and indexes, insert/update/delete data, and query data in a relational DBMS.
- be able to program a data-intensive application using DBMS APIs.
Students mastering the material in this course will achieve the following Student learning outcomes for the ICS undergraduate degree program
- [A] Students can apply knowledge of computing and mathematics appropriate to the discipline.
- [B] Students can analyze a problem, and identify and define the computing requirements appropriate to its solution.
- [C] Students can design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
- [I] Students can use current techniques, skills, and tools necessary for computing practice.
- [J] An ability to use and apply current technical concepts and practices in the core information technologies.
- [K] An ability to identify and analyze user needs and take them into account in the selection, creation, evaluation and administration of computer-based systems.
Understand how to succeed in ICS 321
- You understand the goals, structures, and procedures for learning in ICS 321.
- Your computer and its software is adequate to support the experiences you will have in this course.
Understand what is a database system
- You understand what is a DBMS and what it provides
- You know when to use files and when to use a DBMS
- You understand how data can be encoded and stored in
- You can write a program to query large CSV files
Worlds of Database Systems
Understand the relational model of data
- You understand what is the relational model
- You can conceptualize data using the
- You understand what basic relational algebra operators
under set semantics.
- You can express queries using relational algebra.
- You can create tables using SQL DDL
- You understand integrity constraints
- You can specify primary key and foreign key constraints
in CREATE TABLE statements
The relational model of data
Understand query languages for databases
- You understand the difference between different types of
- You understand set semantics and bag semantics
- You understand relational algebra operators including
extended operators under both set and bag semantics
- You understand datalog
- You can express queries using both relational algebra
Algebraic and logical query languages
Be proficient in SQL
- You can write single block SQL queries.
- You can compose SQL queries using set (and bag)
- You can write SQL queries with correlated subqueries.
- You can write SQL aggregation queries involving GROUP BY
and HAVING clauses.
- You can translate a query in English to SQL.
Be able to write a program that interacts with a DBMS server
- You understand client-server computing in the context of
- You understand how a host programming language environment
interacts with the SQL environment
- You are proficient in writing Java programs that interacts
with a DBMS server via the JDBC API.
SQL in a server environment
Structure Data using Data Models
- You are able to conceptualize data using different data
- You are able to use data modeling tools like
- You are able to translate data models into relational
table schema (DDLs)
High-level database models
Understand Data Normalization
- You understand functional dependencies and their
relationship to keys
- You understand BCNF and 3NF
- You can find keys given a set of functional dependencies
- You can identify tables that are not normalized
- You can decompose unnormalized tables into BCNF and/or 3NF compliant
Design theory for relational databases
Understand constraints, views, triggers, and indexes in Databases
- You understand what constraints are for and how to use them.
- You understand what views are for and how to use them.
- You understand what triggers are for and how to use them.
- You understand what indexes are for and how to use them.
- You know how to decide what indexes to create for a given workload.
Constraints, triggers, view, indexes
Understand query processing in DBMSs
- You understand how queries are processed, optimized and
evaluated in a DBMS.
- You understand what is a query execution plan
- You understand how query execution plans are
- You understand how the cost of a query execution plan is
Understand basic transaction processing concepts
- You understand transactions and their properties (ACID)
- You understand the anomalies that occur without ACID
- You understand the locking protocols used to ensure Isolation
- You understand the logging techniques used to ensure Atomicity
- You understand Recovery techniques used to recover from
Understand how data is stored and indexed in a DBMS
- You understand storage media and their basic properties
- You understand how data is stored using storage media in
- You understand how different indexing techniques work
- You understand why and how data needs to be indexed
- You can analyze the performance of different storage and
Storage and indexing
Understand how to store & query semi-structured data
- You understand what is a semi-structured data model and
why it is useful
- You understand how semi-structured data can be stored
- You understand how to query semi-structured data
Semi-structured data and XML