📘 CodingMarble Learn

Базы данных: СУБД, отношения и ключи

Если хранить данные в отдельных файлах, они дублируются, расходятся и плохо защищены. База данных хранит связанные данные в одном упорядоченном месте, а СУБД (например, MySQL) — это программа, которая ими управляет. В реляционной модели данные лежат в таблицах (отношениях), состоящих из столбцов (атрибутов) и строк (кортежей); домен — это набор допустимых значений столбца. Потенциальный ключ однозначно определяет каждую строку; один из них выбирают первичным ключом, а остальные становятся альтернативными.

🎬 История по шагам

  1. Отдельные файлы дублируют данные, и копии расходятся. База данных хранит одну копию.
  2. СУБД стоит между пользователями и данными и управляет всем.
  3. Таблица — это отношение: столбцы — атрибуты, строки — кортежи.
  4. Домен — это набор значений, которые столбцу разрешено принимать.
  5. Потенциальные ключи определяют каждую строку. Один становится первичным ключом, остальные — альтернативными.
  6. Теперь твой ход: проверь каждый столбец, может ли он быть ключом.

Совет: тяни 3D-сцену, чтобы повернуть её. Двумя пальцами можно приблизить.

🤔 Частые сомнения — разобраны

Разве электронная таблица — это ещё не база данных?

Электронная таблица может хранить таблицу, но СУБД добавляет одновременную работу многих пользователей, правила (ключи, домены), защиту и мощные запросы.

Почему строки называют кортежами?

В математике упорядоченный набор значений называется кортежем. Каждая строка — это упорядоченный набор значений, по одному на каждый атрибут.

Кто решает, каким будет домен?

Проектировщик базы данных, исходя из реальных правил (классы 9–12, оценки 0–100). Потом СУБД отклоняет значения вне домена.

Если и AdmNo, и Email уникальны, почему выбирают AdmNo?

Он короткий, никогда не меняется и есть у каждого ученика. Электронная почта может меняться или отсутствовать.

Может ли ключ состоять из двух столбцов?

Да. Когда ни один столбец сам по себе не уникален, ключом может быть набор вроде (Class, RollNo). Это составной ключ.

Зачем нужна база данных?

В файловой системе каждый отдел хранит свои файлы. Из-за этого возникают проблемы:

База данных — это упорядоченный набор связанных данных, хранящийся в одном месте, чтобы им можно было делиться, поддерживать их согласованность и защищать.

Система управления базами данных (СУБД)

СУБД — это программа, которая создаёт, хранит, обновляет, ищет и ведёт базу данных, а ещё решает, кто может ею пользоваться. Примеры: MySQL, Oracle, PostgreSQL, SQLite, Microsoft Access.

Преимущества: меньше избыточности, согласованность, одновременная работа многих пользователей, защита паролями и правами доступа, резервные копии и восстановление, лёгкий поиск с помощью языка запросов (SQL).

Где это встречается каждый день: банки, продажа железнодорожных билетов, школьные журналы, интернет-магазины, больницы.

Реляционная модель: отношение, атрибут, кортеж, домен

В реляционной модели данных данные хранятся в таблицах.

Правила: у каждого столбца своё уникальное имя; порядок строк и столбцов не важен; нет двух абсолютно одинаковых строк; в каждой ячейке одно значение (или NULL, то есть значение неизвестно).

Ключи: потенциальный, первичный и альтернативный

Пример: STUDENT(AdmNo, Name, Class, Email). Name повторяется, Class повторяется, значит, ключами они не являются. AdmNo и (если он всегда заполнен и у всех разный) Email — потенциальные ключи. Выбираем AdmNo первичным ключом; Email становится альтернативным ключом.

Полезно знать и это: составной ключ использует два или более столбцов вместе (например, Class + RollNo); внешний ключ — это столбец одной таблицы, который ссылается на первичный ключ другой таблицы и так связывает их.

Попробуй сам: найди ключ в школьном пропуске

Возьми школьный пропуск или проездной. Выпиши все поля (имя, класс, номер по списку, номер личного дела, телефон). Для каждого задай два вопроса: может ли у двух учеников быть одинаковое значение? Может ли оно быть пустым? Запиши, какие поля — потенциальные ключи, а какое ты выбрал бы первичным. Потом проверь ту же идею в шаге 6 в 3D.

Главные формулы и определения

Разобранные примеры

1. В таблице 5 столбцов и 30 строк. Найди её степень и мощность.

Степень = 5, мощность = 30.

2. В таблицу 4 × 10 (степень 4, мощность 10) добавили 2 строки и 1 столбец. Каковы новые значения?

Степень = 5, мощность = 12.

3. EMPLOYEE(EmpID, Name, Aadhaar, Dept). Определи потенциальные, первичный и альтернативный ключи.

EmpID и Aadhaar уникальны → потенциальные ключи. Выбираем EmpID первичным ключом; Aadhaar — альтернативный ключ. Name и Dept могут повторяться.

4. Почему Name нельзя сделать первичным ключом в STUDENT?

У двух учеников может быть одинаковое имя, поэтому оно не определяет строку однозначно.

5. Укажи домен атрибута Gender, который хранится одной буквой.

{"M", "F", "O"} (или те коды, которые разрешила школа).

Частые ошибки

Тренировочный тест

1. Строка в отношении называется:
2. Число столбцов в отношении — это его:
3. Потенциальный ключ, не выбранный первичным, — это:
4. Что из этого является СУБД?
5. Одни и те же данные, хранящиеся во многих файлах, — это:

Практика: отвечай сам

Введи или выбери ответ и нажми «Проверить». Если застрял, возьми подсказку; полное решение появится после ответа.

Частые вопросы

Зачем нужна база данных?

Чтобы избежать дублирующихся и противоречивых данных в отдельных файлах, а также чтобы легко делиться данными, защищать их и искать.

Чем отличаются потенциальный, первичный и альтернативный ключи?

Каждый потенциальный ключ может однозначно определять строки; выбранный из них — первичный ключ; остальные — альтернативные.

Что такое степень и мощность?

Степень — число столбцов (атрибутов); мощность — число строк (кортежей) в отношении.

Где это изучают

ItalySecondaria di secondo grado – classe 3ªTools and foundations
ItalySecondaria di secondo grado – classe 4ªTools and foundations
NetherlandsHAVO 5 (eindexamenjaar)Elective theme: Databases
NetherlandsVWO 6 (eindexamenjaar)Elective theme: Databases
PolandLiceum ogólnokształcące, klasa IIProgramming and solving problems with computers
RomaniaClasa a X-aDatabases
RomaniaClasa a XII-aModule 1: Databases (compulsory)
RomaniaClasa a XII-aModule 2: Database management systems (optional)
RomaniaClasa a XII-aModern user skills
RomaniaClasa a XII-aWorking with a database application
Ukraine9 класInformation systems and data management
Ukraine10 класBase module: database systems
CBSE (India)Class 11Database Concepts and SQL
CBSE (India)Class 11RDBMS
England (GCSE, A level)Year 113.7 Relational databases and SQL
Japan高校1年Networks and data
Japan高校(専門学科)1〜3年Using Software
Japan高校(専門学科)1〜3年Computer Systems Technology
Japan高校(専門学科)1〜3年Databases
South Korea고등학교 2학년Understanding data science
South Korea고등학교 3학년Data and information
Germany (Bavaria)Jahrgangsstufe 10Data modelling and relational databases
FranceSecondeThemes
FrancePremièreTabular data
FranceTerminaleSpecific option — management information systems
Russia9 классTheoretical foundations
Russia11 классInformation technologies

Сначала изучи

Дальше изучай