Модель базы данных
Модель базы данных описывает, как организованы данные, какие объекты в ней существуют и каким образом они связаны. Для экзамена особенно важно распознавать реляционную модель, правильно понимать поля, записи, ключи и связи между таблицами.
Что такое модель базы данных
База данных — организованная совокупность взаимосвязанных данных, предназначенная для хранения, поиска и обработки информации. Однако сами данные можно организовать по-разному. Способ их представления называют моделью базы данных.
Модель базы данных — это набор правил, по которым описываются данные, объекты базы данных, свойства объектов и связи между ними.
Модель отвечает на несколько вопросов: какие объекты нужно хранить; какими свойствами они обладают; как один объект связан с другим; как найти нужные сведения и не допустить противоречий. Например, в базе данных школы объектами могут быть «Ученик», «Класс», «Предмет» и «Оценка».
Объект базы данных — отдельная сущность предметной области, о которой хранятся сведения. В таблице объект обычно представлен одной записью базы данных, а его свойство — отдельным полем базы данных.
Основные способы организации данных
В информатике выделяют иерархическую, сетевую, реляционную и объектную модели. На практике в школьных заданиях чаще всего встречается реляционная модель, но признаки остальных моделей тоже нужно знать.
| Модель | Как организованы данные | Главный признак |
|---|---|---|
| Иерархическая | В виде дерева | У каждого узла, кроме корневого, обычно один родитель |
| Сетевая | В виде сети связанных узлов | Объект может иметь несколько родителей и связей |
| Реляционная | В виде таблиц | Данные представлены строками и столбцами |
| Объектная | В виде объектов с данными и действиями | Объект объединяет свойства и операции над ними |
Иерархическая модель удобна, когда отношения имеют структуру «родитель — потомки»: например, страна — регион — город. Её ограничение состоит в том, что один элемент обычно подчинён только одному родителю.
Сетевая модель позволяет одному объекту быть связанным с несколькими другими объектами. Она гибче иерархической: например, студент может изучать несколько предметов, а один предмет изучают многие студенты.
Реляционная модель хранит сведения в таблицах. Таблица состоит из строк и столбцов: строка описывает один объект или один факт, а столбец — одно свойство. Связи между таблицами задаются с помощью ключей.
Если данные представлены таблицами, состоящими из строк и столбцов, перед нами реляционная модель. Слово «реляционная» связано с отношением: каждая таблица рассматривается как отношение между значениями полей.
Реляционная модель: таблицы, поля и записи
В реляционной модели данных каждая таблица обычно описывает один тип объектов или один тип связи. Например, таблица «Ученики» может содержать поля «Код ученика», «Фамилия», «Класс», а таблица «Предметы» — поля «Код предмета» и «Название».
Столбец таблицы называется полем. Поле имеет имя и тип данных: текстовый, числовой, логический, дата и другие. Конкретное значение поля — это значение свойства одного объекта. Подробнее о типах можно узнать на странице типы полей базы данных.
Строка таблицы называется записью. Она содержит значения всех или некоторых полей для одного объекта. Например, запись «Иванов | 9А | 27» может описывать ученика с фамилией Иванов, учащегося в 9А классе, с кодом 27.
В одной таблице не следует хранить повторяющиеся сведения без необходимости. Если название класса записывать в каждой записи ученика, изменение названия придётся выполнять многократно. Лучше создать отдельную таблицу «Классы» и связать её с таблицей «Ученики».
Каждая запись должна однозначно отличаться от других записей, а значение ключевого поля должно однозначно определять запись. Ключевое поле не должно содержать повторяющихся значений.
Ключевое поле содержит уникальный идентификатор записи: код ученика, номер товара или идентификатор заказа. Если одного поля недостаточно для уникальности, используют составной ключ из нескольких полей.
Связи между объектами и таблицами
Объекты базы данных редко существуют независимо. Между ними устанавливаются связи. Например, один класс объединяет многих учеников, один ученик может получать много оценок, а одна оценка относится к одному ученику и одному предмету.
| Тип связи | Смысл | Пример |
|---|---|---|
| Один к одному (1:1) | Одной записи соответствует не более одной записи другой таблицы | Человек — паспорт |
| Один ко многим (1:N) | Одной записи соответствует много записей | Класс — ученики |
| Многие ко многим (N:M) | Многим записям одной таблицы соответствуют многие записи другой | Ученики — предметы |
Связь «многие ко многим» обычно преобразуют в отдельную таблицу. Например, вместо прямой связи «Ученики — Предметы» создают таблицу «Изучение», где каждая строка содержит код ученика и код предмета. При необходимости туда добавляют класс, дату или оценку.
Связь таблиц базы данных строится через одинаковые по смыслу поля. В главной таблице хранится первичный ключ, а в зависимой таблице — внешний ключ, содержащий значения этого ключа.
Первичный ключ однозначно идентифицирует запись в своей таблице. Внешний ключ хранит ссылку на запись другой таблицы, обычно повторяя значение её первичного ключа.
Какая модель используется, если сведения представлены таблицами, а связь таблиц задаётся ключами?
Разобранный пример
В базе есть таблицы «Классы» и «Ученики». Таблица «Классы» содержит поля: «Код класса», «Название». Таблица «Ученики» содержит поля: «Код ученика», «Фамилия», «Код класса». Определим модель, ключи и тип связи.
В таблице «Классы» записаны строки: (1, 9А), (2, 9Б). В таблице «Ученики»: (101, Петров, 1), (102, Сидорова, 1), (103, Орлов, 2). Какой класс указан у ученика с кодом 102 и сколько учеников относится к классу 9А?
Ответ: ученица с кодом 102 относится к классу 9А; в классе 9А два ученика. Таблицы связаны по полю «Код класса». Для таблицы «Классы» это первичный ключ, а для таблицы «Ученики» — внешний ключ. Тип связи — один ко многим.
Как решать задания о модели базы данных
- Определите, что представляет собой одна строка: объект, событие или факт связи.
- Определите поля: какие столбцы описывают объект и какие значения они принимают.
- Найдите поле или набор полей, значения которых не повторяются. Это кандидат на ключ.
- Сравните одинаковые по смыслу поля в разных таблицах и установите связь.
- Проверьте тип связи: 1:1, 1:N или N:M.
- Если требуется отбор, примените условие к значениям поля и пересчитайте подходящие записи.
Не путайте поле и значение поля: «Фамилия» — поле, «Петров» — его значение. Не считайте номер строки ключом: при сортировке он может измениться. Не называйте внешнее поле первичным ключом зависимой таблицы, если его значения повторяются. При связи «многие ко многим» не пытайтесь хранить несколько кодов в одной ячейке — нужна отдельная таблица связей.
Чтобы найти связь, задайте вопрос: «Сколько объектов одной таблицы может соответствовать одному объекту другой?» Если ответ «много», ищите внешний ключ в таблице, где повторяются значения.
Быстрая проверка
Главное
- Модель базы данных задаёт правила описания объектов, их свойств и связей.
- В реляционной модели данные хранятся в таблицах, состоящих из полей и записей.
- Первичный ключ уникально определяет запись, а внешний ключ связывает таблицы.
- Основные типы связей: 1:1, 1:N и N:M; связь N:M реализуют через промежуточную таблицу.
- При решении задания сначала определите объекты и записи, затем поля, ключи, тип связи и условие отбора.