ISEA2001 Databases (4 op)
Kuvaus
Almost every software system uses a database to store and retrieve information. We learn how to describe data clearly, turn that description into tables, and use a query language to build and test a working database.
The central key ideas are:
1. ER model (Entity–Relationship model): a conceptual map of the data in the problem domain.
The user lists the things one cares about (entities, e.g., Student, Course), their properties (attributes, e.g., name, id), and how they are related (relationships, e.g., Student enrolls in Course).
This is usually drawn as a simple diagram before building anything.
2. Relational model: how that conceptual map becomes tables (relations) with rows and columns in a real database.
SQL (Structured Query Language): the language you use to create tables, insert data, and ask questions about the data.
In addition, the course will introduce to emerging technologies: a high-level look at newer database approaches , such as, cloud databases, NoSQL/graph/document stores, or streaming data, and when they might be useful.
The students will practice:
1. Requirements: Figuring out what information needs to be stored and what questions the system must answer.
2. Analysis & design: Drawing an ER diagram and then converting it to a set of tables with keys and relationships.
3. Implementation in SQL: Creating the tables and writing queries.
4. Validation: Checking that your tables are consistent, avoid unnecessary duplication, and support required queries.
5. Optimization: Making queries run faster and use less space (e.g., indexes, better table structure).
Osaamistavoitteet
After completing the course, the student is able to:
1. Model a problem domain by creating an Entity–Relationship (ER) diagram that correctly identifies entities, attributes, and relationships, including appropriate cardinalities and keys.
2. Transform an ER diagram into a relational schema (tables) with primary/foreign keys and apply basic normalization (up to 3NF) to reduce redundancy.
3. Implement the relational schema in a DBMS using SQL DDL (CREATE/ALTER) and populate it with sample data.
4. Query the database using SQL DML (SELECT/INSERT/UPDATE/DELETE), including joins, filtering, grouping/aggregation, and simple subqueries to answer given information needs.
5. Validate and improve the database design by checking integrity constraints, eliminating anomalies, and applying indexes and basic query tuning to achieve correct and more efficient execution.
6. Explain how operational databases maintain correctness (ACID, constraints) and compare relational databases to newer models (document, key–value, graph) to make appropriate technology choices for typical applications.
7. Evaluate and use AI responsibly by assessing the reliability, provenance, biases, and limits of AI‑generated information.
8. Collaborate effectively in teams by managing one’s own work, communicating respectfully, and contributing meaningfully to shared goals.
Esitietojen kuvaus
Basic programming skills.
Kirjallisuus
- Elmasri R. & Navathe S. Fundamentals of Database Systems, Addison-Wesley.
- McCreary, D. & Kelly, A. Making Sense of NoSQL, Manning.