Zum Inhalt springen

English:Databases and Structured Querying

Aus MOOCsWiki Staging
aiMOOC-Siegel

Databases and Structured Querying



Introduction

A database is an organized collection of data that can be stored, searched, connected, updated, and checked efficiently. Databases are behind many everyday systems: school libraries, online shops, transport apps, games, hospitals, streaming services, sports statistics, and social networks. In this aiMOOC, you will learn how relational databases organize information in tables and how Structured Query Language (SQL) lets you ask precise questions about that information.

This course is designed for Grades 9–10. You do not need previous database experience. You should already be comfortable with simple tables, logical comparisons such as greater than or equal to, and basic computer use. You will move from reading tables to designing a small database, writing SQL queries, connecting related tables, and thinking critically about data quality, privacy, and security.

By the end, you should be able to explain why structured data matters, identify rows and columns, choose useful keys, model relationships, read and write introductory SQL, interpret query results, and design a small relational database for a realistic problem.

Datei:Relational Model.svg

The image above represents the relational model: data is organized into tables whose rows describe individual records and whose columns describe attributes. As you work through the course, return to this idea often: a good database separates information into useful structures while preserving meaningful connections.

The following CS50 lecture introduces tables, databases, SQLite, SELECT, WHERE, ORDER BY, and aggregate functions. For a Grades 9–10 course, your teacher may select shorter sections rather than assign the whole lecture at once.


Learning Goals

After completing this aiMOOC, you can:

  1. Explain databases: Describe how a database differs from an ordinary document or spreadsheet and explain the role of a database management system.
  2. Interpret relational tables: Identify tables, rows, columns, records, fields, data types, primary keys, and foreign keys.
  3. Model information: Turn a real-world situation into entities, attributes, relationships, and a simple schema.
  4. Write structured queries: Use SELECT, FROM, WHERE, ORDER BY, LIMIT, DISTINCT, and basic aggregate functions.
  5. Combine related data: Explain why joins are needed and read or write a simple INNER JOIN.
  6. Protect data quality: Use ideas such as unique identifiers, required values, valid types, and referential integrity.
  7. Use data responsibly: Distinguish useful data collection from unnecessary collection and follow permission, privacy, and security rules.


What Is a Database?

Data are recorded facts or measurements. A person's name, a book title, a temperature reading, a bus arrival time, or a game score can all be data. A database stores related data in an organized way so that software can retrieve and change it systematically.

A database management system or DBMS is software that manages databases. It handles tasks such as storing data, finding records, applying rules, controlling access, and coordinating updates. Examples of relational database systems include SQLite, PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, and Oracle Database. Their SQL dialects differ in some details, but the core ideas in this course transfer between systems.

A database is especially useful when data grows, when many records must be searched, when different pieces of information are connected, or when multiple users need reliable access. A spreadsheet is excellent for many small calculations and lists, but a relational database is designed to manage structured relationships and repeated queries at larger or more complex scales.


Tables, Rows, and Columns

A table stores data about one general kind of thing. For example, a school database might have one table for students and another for clubs.

A row represents one record. In a Students table, one row might represent one student. A column represents one attribute or field, such as StudentID, Name, GradeLevel, or ClubID.

StudentID Name GradeLevel ClubID
101 Amira 9 2
102 Leo 10 1
103 Priya 9 2
104 Mateo 10 3

A table should have a clear purpose. Mixing unrelated facts into one large table often creates repetition and confusion. Good database design tries to store each fact in an appropriate place.

Datei:Sql sample table.png


Fields and Data Types

A database usually gives each column a data type. A type tells the DBMS what kind of value belongs in that column. Common ideas include text, integers, decimal numbers, dates, and Boolean values such as true or false.

Types matter because they help the database interpret, validate, sort, and compare values. A numeric column can be ordered mathematically; a date column can be compared chronologically. If every value is stored as free-form text, mistakes become harder to detect.

Consider these fields in a library database:

  1. BookID: An integer identifier such as 501.
  2. Title: Text such as The Hobbit.
  3. PublishedDate: A date value.
  4. Available: A true or false value indicating whether a copy can currently be borrowed.

Different database systems provide different exact type names. The important idea at this level is to choose a type that matches the meaning of the data.


Database, Spreadsheet, or Plain File?

The best tool depends on the task. A plain text file may be enough for a short note. A spreadsheet is useful for calculations, charts, and small tables that people edit directly. A database becomes especially useful when the structure is stable, relationships matter, queries repeat, or consistency rules must be enforced.

Imagine a school library with thousands of books and hundreds of borrowers. A spreadsheet could list everything, but repeated borrower details would appear many times. A relational database can store borrowers separately from loans and connect them using keys. That reduces repeated data and makes questions such as "Which books are currently borrowed by Grade 10 students?" much easier to express.


The Relational Model

A relational database stores data in relations, commonly presented as tables. The word "relational" does not simply mean "things are related." It refers to a mathematical model in which tables represent relations and operations can derive new result sets from stored data.

For school-level work, focus on three practical ideas:

  1. Tables: Each table represents one main type of entity or relationship.
  2. Keys: Keys identify records and connect tables.
  3. Queries: SQL describes what data you want the DBMS to return or change.


Primary Keys

A primary key is a column, or sometimes a combination of columns, chosen to identify each row uniquely. A good primary key does not repeat within its table.

In the Students table, StudentID can be a primary key. Two students might share the same name, but they should not share the same StudentID. This is why names, birthdays, or room numbers are often poor identifiers: they can repeat or change.

A primary key supports two important goals: uniqueness and stable reference. Other tables can point to a row through that key.


Foreign Keys and Relationships

A foreign key is a column whose values refer to a key in another table. Foreign keys create connections between tables.

Suppose the Clubs table is:

ClubID ClubName Room
1 Robotics Lab A
2 Eco Club Room 204
3 Debate Room 118

The ClubID column in Students can refer to ClubID in Clubs. Student 101 has ClubID 2, so Amira belongs to Eco Club. Storing the club name only once in the Clubs table avoids repeating "Eco Club" in every student record. If the meeting room changes, one club record can be updated instead of many student rows.

Datei:SQL ERD Example.png

The diagram above is an example of an entity-relationship design. An entity-relationship diagram or ER diagram helps you visualize entities, their attributes, and their relationships before creating tables.


One-to-One, One-to-Many, and Many-to-Many

A one-to-one relationship means one row in one table corresponds to at most one row in another. A one-to-many relationship means one record can connect to many records in another table. For example, one club can have many students.

A many-to-many relationship means many records on each side can connect. Students can enroll in many courses, and each course can have many students. Relational databases usually represent this using a third table, sometimes called a junction table. A StudentCourses table could contain StudentID and CourseID, with one row for each enrollment.

This design is powerful because it represents the relationship directly rather than adding a growing list of course columns to every student.

The next video explains relationships, ER diagrams, keys, subqueries, joins, sets, and groups.


Designing a Small Database

Database design begins before SQL. First decide what information the system needs, what real-world things the information describes, and how those things relate.

Imagine you are designing a database for a school library. Possible entities include Books, Authors, Students, and Loans. Each entity needs useful attributes.

A first draft might look like this:

Entity Possible attributes Possible key
Books Title, PublicationYear, ShelfCode BookID
Students Name, GradeLevel StudentID
Loans BorrowedDate, DueDate, ReturnedDate LoanID

The Loans table can also contain BookID and StudentID as foreign keys. That lets one query connect a loan to both the book and the borrower.


From Real-World Rules to a Schema

A schema describes the structure of a database: its tables, columns, types, keys, and relationships. Before building the schema, write simple rules in everyday language.

For the library example:

  1. A book copy: Each book copy has one BookID.
  2. A student: Each student has one StudentID.
  3. A loan: Each loan refers to one student and one book copy.
  4. A due date: Every active loan has a due date.
  5. A return: ReturnedDate may be empty until the book is returned.

These rules can be translated into table definitions and constraints.


Reducing Repetition Through Normalization

Normalization is a family of design principles used to reduce unnecessary repetition and certain update problems. At this level, you do not need to memorize every formal normal form. Instead, learn to notice repeated groups and facts stored in the wrong place.

Suppose a Loans table stores StudentID, StudentName, StudentEmail, BookID, BookTitle, and DueDate in every loan row. If one student borrows ten books, the student's name and email appear ten times. If the email changes, multiple rows must be updated. Missing one row creates inconsistent data.

A better design stores student details in Students, book details in Books, and loan-specific facts in Loans. Loans keeps only the keys needed to connect those tables plus dates that describe the loan itself.

This does not mean "never repeat any value." Repetition can be legitimate. The goal is to avoid storing the same independent fact in many places when one authoritative location would be clearer.


Seeing a Large Real Schema

Real production databases can contain many tables and relationships. The following MediaWiki schema image is far more complex than the database you need to build in Grades 9–10. Use it to notice scale: the same ideas of tables, columns, keys, and relationships can grow into a large information system.

Datei:MediaWiki 1.41.0 database schema.png

The next CS50 lecture focuses on database design, normalization, CREATE TABLE, data types, and constraints.


Structured Query Language

SQL is a language for working with relational databases. SQL statements can define structures, retrieve data, insert records, update values, and delete records. This course emphasizes querying because it gives you a safe way to learn the logic of structured data.

SQL keywords are often written in uppercase for readability, although many systems accept lowercase keywords too. Table and column names depend on the schema.


The SELECT Statement

The basic shape of a query is:

SELECT column_name
FROM table_name;

To retrieve student names:

SELECT Name
FROM Students;

To retrieve more than one column:

SELECT Name, GradeLevel
FROM Students;

The asterisk can request all columns:

SELECT *
FROM Students;

For learning and quick inspection, SELECT * is convenient. In larger applications, selecting only the columns you need is often clearer and can reduce unnecessary data transfer.

Fehler beim Erstellen des Vorschaubildes:


Filtering with WHERE

A WHERE clause keeps only rows that satisfy a condition.

SELECT Name, GradeLevel
FROM Students
WHERE GradeLevel = 9;

Common comparison operators include =, <, >, <=, >=, and <>. Some systems also support != for "not equal." Text values are usually written inside single quotation marks.

SELECT ClubName
FROM Clubs
WHERE Room = 'Lab A';

You can combine conditions with AND and OR:

SELECT Name
FROM Students
WHERE GradeLevel = 10 AND ClubID = 3;

Parentheses can make mixed AND and OR logic clearer. Always read the condition as a logical statement before running it.


Sorting, Limiting, and Removing Duplicates

ORDER BY sorts query results.

SELECT Name, GradeLevel
FROM Students
ORDER BY Name;

DESC requests descending order:

SELECT Name, GradeLevel
FROM Students
ORDER BY GradeLevel DESC;

LIMIT can restrict the number of returned rows in systems such as SQLite, PostgreSQL, and MySQL:

SELECT Name
FROM Students
ORDER BY Name
LIMIT 3;

DISTINCT removes duplicate result values:

SELECT DISTINCT GradeLevel
FROM Students;

Remember that a query result is not automatically a permanent new table. It is a result set produced from the stored data.


Working with Missing Values

SQL uses NULL to represent a missing or unknown value. NULL is not the same as zero and not the same as an empty text string.

You normally test for NULL using IS NULL or IS NOT NULL:

SELECT LoanID
FROM Loans
WHERE ReturnedDate IS NULL;

That query can identify loans without a recorded return date. Writing ReturnedDate = NULL does not express the intended comparison in standard SQL logic.


Pattern Matching with LIKE

LIKE can match text patterns. In many SQL systems, the percent sign represents any sequence of characters.

SELECT Name
FROM Students
WHERE Name LIKE 'A%';

This searches for names beginning with A. The exact behavior of letter case can depend on the database system and settings, so test your environment rather than assuming every SQL engine behaves identically.


Aggregating Data

An aggregate function combines values from multiple rows into a summary. Common examples include COUNT, SUM, AVG, MIN, and MAX.

To count students:

SELECT COUNT(*)
FROM Students;

To find the average value in a numeric Score column:

SELECT AVG(Score)
FROM Results;

GROUP BY can calculate summaries for categories:

SELECT GradeLevel, COUNT(*)
FROM Students
GROUP BY GradeLevel;

This returns one row per grade level with a count for each group.

A HAVING clause can filter groups after aggregation, while WHERE filters individual rows before grouping. That distinction becomes important in more advanced queries.


Joining Tables

A join combines rows from related tables. Joins are necessary because good database design often stores different kinds of facts in separate tables.

Suppose Students contains ClubID and Clubs contains ClubID and ClubName. An INNER JOIN can connect them:

SELECT Students.Name, Clubs.ClubName
FROM Students
INNER JOIN Clubs
ON Students.ClubID = Clubs.ClubID;

Read this query in steps:

  1. SELECT: Return the student's name and the club's name.
  2. FROM: Start with Students.
  3. JOIN: Connect the Clubs table.
  4. ON: Match rows whose ClubID values are equal.

The output might contain Amira with Eco Club, Leo with Robotics, Priya with Eco Club, and Mateo with Debate.

Datei:SQL Joins.svg

The diagram above compares several SQL join ideas using sets. At this level, master INNER JOIN first. A LEFT JOIN is a useful next step because it can keep every row from the left table even when no matching row exists on the right.


Why Joins Matter

Without joins, you might copy club names into the Students table. That seems easy at first, but copied values can become inconsistent. A join allows the database to store the relationship once through a key and assemble readable information when needed.

A join is also a reasoning task. Before writing SQL, ask:

  1. Which entities: Which tables contain the facts I need?
  2. Which key: What column connects the tables?
  3. Which output: Which columns should appear in the result?
  4. Which conditions: Do I need only some rows?

If you cannot answer these questions in words, the SQL is likely to be confusing.


Creating and Changing Data

SQL can also define tables and change stored data. These commands are powerful, so practice them only in a teacher-approved sandbox database.

A simple table definition might look like:

CREATE TABLE Clubs (
    ClubID INTEGER PRIMARY KEY,
    ClubName TEXT NOT NULL,
    Room TEXT
);

INSERT adds a row:

INSERT INTO Clubs (ClubID, ClubName, Room)
VALUES (4, 'Chess', 'Room 110');

UPDATE changes existing rows:

UPDATE Clubs
SET Room = 'Room 112'
WHERE ClubID = 4;

DELETE removes rows:

DELETE FROM Clubs
WHERE ClubID = 4;

The WHERE clause is especially important in UPDATE and DELETE. Without an appropriate WHERE condition, many or all rows may be changed. In a learning environment, make backups or work with disposable practice data.


Constraints and Data Integrity

Data integrity means data remains accurate, consistent, and valid enough for its intended use. A database can enforce rules called constraints.

Useful constraint ideas include:

  1. PRIMARY KEY: Identifies rows uniquely.
  2. NOT NULL: Requires a value in a column.
  3. UNIQUE: Prevents duplicate values where duplicates are not allowed.
  4. FOREIGN KEY: Links a value to an existing row in another table when referential integrity is enforced.
  5. CHECK: Requires values to satisfy a condition in systems that support the rule.

Constraints do not guarantee that every fact is true. A database cannot automatically know whether a student typed the wrong birth date if the value still looks like a valid date. Good data quality also depends on careful collection, clear definitions, validation, and review.


Query Results and Evidence

A query result is evidence produced by applying rules to stored data. To interpret it well, check the schema, the query, the dataset, and the meaning of missing values.

For example, a query that counts "active club members" is only meaningful if the database defines what active means. Does a missing end date mean active? Does every membership have a status field? Database questions are partly technical and partly about definitions.

Datei:SQL Query Result.png

When presenting query results, include enough context that another person can understand what was counted, filtered, grouped, or joined. Do not treat a number as self-explanatory.


Debugging SQL

Errors are normal when learning SQL. Debugging means finding the reason a query does not work or does not return the intended result.

A useful process is:

  1. Check syntax: Look for missing commas, quotation marks, keywords, or semicolons.
  2. Check names: Verify table and column names against the schema.
  3. Check types: Make sure comparisons use suitable values.
  4. Check conditions: Read WHERE logic in plain English.
  5. Check joins: Confirm that the ON clause connects matching keys.
  6. Test small: Run a simpler SELECT first, then add one clause at a time.

Consider this incorrect query:

SELECT Name GradeLevel
FROM Student
WHERE GradeLevel = 'nine'

Possible problems include a missing comma, a table name that may not match the schema, and a value whose type may not match the GradeLevel column. Good debugging does not guess blindly; it checks each assumption against the database design.


Database Security, Privacy, and Ethics

Database skills come with responsibility. You should query or change only data and systems you have permission to use. A classroom database should contain safe practice data or properly authorized information.

Privacy asks whether personal data should be collected, who may use it, how long it should be kept, and whether people understand the purpose. Security focuses on protecting data and systems from unauthorized access, alteration, or loss. Ethics asks broader questions about fairness, necessity, consequences, and power.

For a student project, collect the minimum data needed. If you are tracking library books, you probably do not need students' home addresses. If you conduct a survey, explain how the data will be used and follow your school's rules.

Passwords should not be stored as ordinary readable text in a real authentication system. Professional systems use carefully designed password-hashing practices and access controls. You do not need to implement authentication in this introductory course, but you should recognize that storing sensitive information safely requires specialized security knowledge.


SQL Injection as a Security Idea

SQL injection is a class of vulnerability that can occur when an application treats untrusted input as part of an SQL command instead of as data. The safe design principle is to keep user input separate from SQL structure by using parameterized queries or prepared statements in application code.

This course does not ask you to attack systems. Learn the defensive lesson: never test security weaknesses on a system without explicit authorization, and do not build SQL commands by blindly combining raw user input with query text.


A Guided Mini-Project: School Clubs Database

You will now connect the main ideas in one small model. Imagine a school wants to record students, clubs, and memberships. Because one student can join several clubs and one club can have several students, the relationship is many-to-many.

Use three tables:

Table Key Important fields
Students StudentID Name, GradeLevel
Clubs ClubID ClubName, Room
Memberships MembershipID StudentID, ClubID, JoinedDate

Memberships is the junction table. StudentID and ClubID act as foreign keys. A row such as StudentID 101 and ClubID 2 means that student 101 belongs to club 2.


Guided Query One: Find Grade 9 Students

SELECT StudentID, Name
FROM Students
WHERE GradeLevel = 9
ORDER BY Name;

Before running it, predict the result. Then compare your prediction with the actual output. If they differ, inspect both the data and your assumptions.


Guided Query Two: Count Members in Each Club

A join plus grouping can count memberships by club:

SELECT Clubs.ClubName, COUNT(*) AS MemberCount
FROM Memberships
INNER JOIN Clubs
ON Memberships.ClubID = Clubs.ClubID
GROUP BY Clubs.ClubName
ORDER BY MemberCount DESC;

The alias MemberCount gives the calculated column a readable name. This query demonstrates an important idea: a database can combine stored facts to create new summaries without storing those summaries as permanent duplicated data.


Guided Query Three: Find a Student's Clubs

SELECT Students.Name, Clubs.ClubName
FROM Memberships
INNER JOIN Students
ON Memberships.StudentID = Students.StudentID
INNER JOIN Clubs
ON Memberships.ClubID = Clubs.ClubID
WHERE Students.Name = 'Amira';

This query joins three tables. Do not memorize it as a block. Trace the path: Memberships connects StudentID to Students and ClubID to Clubs. The WHERE clause then selects one student's rows.


From Small Models to Real Systems

Real database work adds many topics: indexes for faster lookup, transactions for reliable groups of changes, views for reusable queries, permissions for access control, backups for recovery, and application code that communicates with the database.

At Grades 9–10, the goal is not to master every feature. The goal is to build a strong mental model: structured data lives in a schema; keys create reliable connections; queries express questions; and results must be interpreted in context.

The following full university-level course is optional enrichment. Use chapters selectively if you want to continue beyond this aiMOOC.


Interactive Tasks


Quiz: Test Your Knowledge

What is the main purpose of a primary key in a table? (To identify each row uniquely) (!To sort every query automatically) (!To store only text values) (!To hide the table from users)




Which SQL clause filters rows according to a condition? (WHERE) (!ORDER BY) (!FROM) (!CREATE)




What does one row in a well-designed Students table usually represent? (One student record) (!One database server) (!One SQL language) (!One column name)




What is a foreign key used for? (To connect a row to related data in another table) (!To encrypt every value in a table) (!To rename all columns automatically) (!To replace every primary key)




Which statement retrieves the Name column from the Students table? (SELECT Name FROM Students) (!WHERE Name FROM Students) (!SELECT Students INTO Name) (!ORDER Name BY Students)




What does ORDER BY do in a query? (It sorts the result) (!It deletes duplicate tables) (!It creates a new database) (!It changes a primary key)




Which expression correctly checks for a missing SQL value? (IS NULL) (!EQUALS NULL) (!LIKE EMPTY) (!IS ZERO)




Why is a junction table useful? (It can represent a many to many relationship) (!It converts every number to text) (!It removes the need for keys) (!It stores only one row)




Which function is commonly used to count rows? (COUNT) (!SORT) (!MATCH) (!NUMBER)




What is the safest rule for classroom database practice? (Use only data and systems you are authorized to use) (!Test public systems without permission) (!Store real passwords as readable text) (!Collect as much personal data as possible)





Memory Game

Table A structured set of related rows and columns
Record One complete row describing an instance
Column A named attribute stored for many records
Primary key A value chosen to identify each row uniquely
Foreign key A field that refers to a related row in another table
Query A structured request for data or a database action





Drag and Drop

Match the correct terms. Topic
SELECT Chooses the columns or expressions to return
FROM Names the source table
WHERE Filters rows using a condition
ORDER BY Sorts a query result
JOIN Combines related rows from tables




...


Crossword Puzzle

Schema What word names the planned structure of tables, columns, keys, and relationships?
Query What word means a structured request sent to a database?
Record What word commonly describes one complete row of stored data?
Column What word describes a vertical field category in a table?
Index What database structure can help speed up certain lookups?
Join What SQL operation combines related rows from tables?





LearningApps


Cloze Text

Complete the text.

A relational database organizes information into

. Each row usually represents one

. A column stores one type of

across many rows. A primary key should identify each row

. A foreign key creates a

between tables. SQL uses the

statement to retrieve values. The WHERE clause applies a

to filter rows. ORDER BY changes the

of a result. An INNER JOIN combines rows with matching

. Good database work also requires attention to privacy, security, and data

.




Open-Ended Tasks


Easy

  1. Database Detective: Identify three databases you interact with during an ordinary week, describe what data each one might store, and explain why a database is more suitable than a plain text file for each case.
  2. Paper Table Model: Create two small paper tables for Students and Clubs with at least four sample records, underline the primary keys, circle the foreign key, and explain one relationship in two or three sentences.
  3. Query Translation: Write five everyday questions about the sample Students table and translate each question into a SELECT query using at least one of WHERE, ORDER BY, DISTINCT, or LIMIT.
  4. Data Ethics Poster: Design a one-page image or poster showing the difference between useful data collection and unnecessary personal data collection in a school project.


Standard

  1. Mini Library Schema: Design a three-table database for Books, Students, and Loans, choose primary and foreign keys, and create an ER diagram that another learner can understand without explanation.
  2. SQL Practice Lab: In a teacher-approved SQLite practice database, create sample data and run at least eight read-only queries that demonstrate filtering, sorting, counting, grouping, and one join; annotate what each query is meant to answer.
  3. Interview a Data User: Interview a librarian, teacher, coach, office worker, or another person who regularly works with structured information; ask how they search, update, validate, and protect data, then summarize the interview in a short report.
  4. ER Diagram Video: Record a two- to four-minute explanatory video in which you walk through an ER diagram, identify its entities and keys, and explain one one-to-many or many-to-many relationship.


Advanced

  1. Normalization Challenge: Start with one deliberately repetitive table that mixes students, clubs, rooms, and membership dates; redesign it into several related tables and write a before-and-after explanation of which update problems your design reduces.
  2. Query Performance Experiment: Create a teacher-approved SQLite table with a sufficiently large set of generated non-personal records, compare the execution plan or observed timing of selected lookups before and after adding a suitable index, and explain why small datasets may not show a clear difference.
  3. Community Data Audit: Visit a library, school office, museum, sports club, or other approved place that manages structured information; document which fields seem essential, which could be sensitive, and how a carefully designed schema could support the work without collecting unnecessary data.
  4. Database Capstone: Build a small relational database for a realistic problem such as equipment loans, club memberships, garden observations, or media collections; submit the schema, ER diagram, sample data, at least ten useful queries, a short demonstration video, and a reflection on privacy and data quality.



Learning Assessment

  1. Schema Reasoning Assessment: Given a single table that repeats author and publisher information for many books, identify at least two risks of the design and propose a clearer set of related tables with keys.
  2. Query Construction Assessment: Given a new dataset and five natural-language questions, write SQL queries that answer them and explain how each clause changes the result.
  3. Join Explanation Assessment: Use two related tables to predict the result of an INNER JOIN before running it, then compare your prediction with the output and explain any difference.
  4. Data Quality Assessment: Review a sample dataset containing duplicates, missing values, inconsistent spellings, and impossible values; classify the problems and recommend database rules or collection practices that could reduce them.
  5. Privacy Transfer Assessment: Compare two database proposals for a school event app, decide which fields are necessary and which are excessive, and justify your decision using privacy and data-minimization principles.
  6. Database Design Transfer Assessment: Choose a new domain not used in the course, such as sports fixtures or science experiments, and produce a schema that includes at least three entities, a meaningful relationship, primary keys, foreign keys, and two example queries.




Evidence of Learning

Strong evidence of learning includes both what you know and what you can create or explain.

Knowledge evidence includes accurate explanations of tables, rows, columns, data types, schemas, keys, relationships, SQL clauses, joins, NULL, aggregation, constraints, privacy, and data integrity.

Skill evidence includes turning a real-world problem into entities and relationships, choosing sensible keys, reading an ER diagram, writing and debugging introductory SQL, predicting query results, and explaining how a join connects tables.

Product evidence can include a working practice database, a schema diagram, a set of documented queries, a data-quality audit, an interview report, a poster, a short tutorial video, or a capstone project.

Transfer evidence means you can apply the same ideas to a new context. For example, you can recognize that a sports league, museum collection, laboratory log, or equipment-loan system can also be modeled using entities, keys, relationships, and queries.

Responsible-use evidence includes working only with authorized systems, minimizing personal data, explaining how privacy affects design choices, and recognizing why real authentication and security systems require stronger safeguards than a classroom project.




OERs on the Topic

The English Wikipedia article on databases provides an open reference for extending your understanding of database concepts, models, and systems.

You can also use the embedded Wikimedia Commons diagrams in this aiMOOC as visual study aids. When comparing diagrams, ask which entities are represented, how keys are shown, and whether the visual structure helps you understand the relationships.



Linked Learning Areas

The central idea of this course is that structured information becomes more useful when its meaning is modeled clearly. Tables organize records, keys identify and connect them, SQL expresses questions, joins reconstruct related information, constraints support integrity, and responsible design protects people and data.

Related learning areas include Computer science, Information technology, Data literacy, Programming, Statistics, Cybersecurity, Digital citizenship, and Information management. These connections matter because databases are not isolated tools: they support software, research, organizations, and evidence-based decisions.


aiMOOC Projects

MOOCwiki · Deutsch

Nach dem Lernen ist vor dem Lernen

Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.

Zur MOOCwiki-Hauptseite

Mediathek

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...