| Introduction to a DBMS |
- Define the term database and explain the purpose of having a database.
- Explain the high-level objectives of a database management system (DBMS), and explain how a DBMS relates to a database. List benefits that result from the usage of a DBMS.
|
| Data Modeling (E-R Diagrams) |
- Explain the purpose of an E-R diagram, and explain the differences between entities, attributes, domains, and relationships.
- Describe the different types of keys: search, candidate, primary, alternate, foreign, and super(key).
- Explain the types of questions that you would ask a knowledgeable user in order to create a data model (E-R diagram) about a given business process.
- Given a problem description, create an E-R diagram with the correct entities and relationships that accurately model the problem’s data. Justify the decisions you make for entities, relationships, keys, key constraints, participation constraints, aggregations, etc.
- Given a problem domain/description that contains entities that: depend on other entities, inherit from other entities, or have n-ary relationships with other entities, create an E-R diagram that accurately represents them. Justify your decisions.
- Given a problem description, identify alternative representations of the problem, and evaluate the choices.
- For a given domain/problem, compare alternative E/R diagrams or techniques, and identify their strengths and weaknesses.
|
| Relational Model & DDL |
- Compare and contrast logical and physical data independence.
- Define the components (and synonyms) of the relational model: tables, rows, columns, keys, associations, etc.
- Create and modify tables, including attributes, keys, field lengths, etc., using Data Definition Language (DDL).
- Create a view for a table. Explain the purpose of a view.
- Explain and differentiate the kinds of integrity constraints in a database (e.g., primary key constraints).
- Explain the purpose of referential integrity.
- Enforce referential integrity in a database using DML. Determine which delete, insert, or update policy to use when coding rules/defaults for referential integrity. Analyze the impact that a poor choice has.
- Map E-R diagrams to the relational model (i.e., DDL), including constraints, weak entity sets, etc.
|
| SQL |
- Justify the use of SQL as a standard. In particular, explain why SQL was developed, and compare it to programming-based approaches to extract data from a database (e.g., data structure traversal via pointers).
- Given the schemas of a relation, create a simple query in SQL that qualifies the search using WHERE-clause arguments.
- Create more complex queries in SQL that join multiple tables.
- Create SQL queries that appropriately use the keywords: SELECT, FROM, WHERE, ORDER BY, EXISTS, NOT EXISTS, UNIQUE, NOT UNIQUE, ANY, ALL, and DISTINCT.
- Create SQL queries that aggregate data, using the GROUP BY and HAVING clauses.
- Show that there are alternative ways of coding SQL queries to yield the same result. Determine whether or not two SQL queries are equivalent.
- Given an SQL query, table schemas, and instances, compute the result of the query.
- Create SQL statements that appropriately use the keywords: INSERT, UPDATE, and DELETE.
- Debate the use of NULLs and 3-valued logic to appropriately represent missing attribute values (“unknowns”). Argue that NULLs can be ambiguous in certain contexts. Suggest alternate ways of handling “unknowns” as an alternative to NULLs.
- Identify the pros and cons of using of general table constraints (e.g., CONSTRAINT, CHECK), stored procedures, and triggers in databases.
- Explain the role and advantages of embedding SQL in application programs.
- Write embedded SQL that requires database access using Python.
- Write embedded SQL in Python that requires database access and cursors.
|
| Data Warehousing and OLAP |
- Compare and contrast OLAP and OLTP processing (e.g., focus, clients, amount of data, abstraction levels, concurrency, and accuracy).
- Explain the ETL tasks (i.e., extract, transform, load) for data warehouses.
- Explain the differences between a star schema design and a snowflake design for a data warehouse, including potential tradeoffs in performance.
- Argue for the value of a data cube in terms of:
- The type of data in the cube (numeric, categorical, temporal, counts, sums)
- The goals of OLAP (e.g., summarization, abstractions), and
- The operations that can be performed (drill-down, roll-up, slicing/dicing).
- Write SQL statements to perform operations (e.g., drill-down, roll-up, slicing/dicing) in a data cube.
|
| Data Mining |
- Define the term knowledge discovery.
- Explain the general steps involved in the knowledge discovery in databases (KDD) process
- Comment on the benefits and challenges that data mining has when dealing with imperfect data quality, especially in large datasets (e.g., data mining can point out anomalies (outliers), optimize the use of human time, detect patterns in data (including patterns that are there just by chance).
- Explain the value of finding frequent itemsets and association rules. Provide some real-world examples of their use (e.g., retailing, biology).
- Explain the purpose of association rules.
- Apply the Apriori Algorithm and compute frequent itemsets and association rules (by hand, for a small dataset).
- Explain how k-clustering works and apply an algorithm to find n clusters.
- Critique issues surrounding the collection and mining of data.
|
| NoSQL |
- Explain the differences between the relational and NoSQL model and state considerations that would help you decide which type of database would be more suitable for a given situation.
- Identify situations where you would want to use a NoSQL database over a relational database.
- Compare and constrast the different types of NoSQL databases.
- Explain the benefits of using one type of NoSQL database over another.
- Summarize the difference between Cassandra vs. MongoDB and list considerations that would impact whether you would use one over another.
- Use Python to access a NoSQL database (MongoDB) to access and manipulate data.
- Write MQL queries to solve a given problem.
|
| Query Evaluation |
- Explain the need for indexing
- Explain how B+-trees can be used to search for, insert, update, and delete entries.
- Perform an insert/update/delete an entry on a B+ tree.
- Explain how extendible and linear hashing work.
- Perform an insert/update/delete operation using a linear hash index.
|
| Miscellaneous |
- List and explain the importance of ACID properties.
- Compare ACID and BASE properties.
- Explain how the ARIES algorithm works.
- Explain what MapReduce is and how it can be used to perform data analysis.
- Recognize situations where MapReduce should be used.
|