Физическая модель базы данных — различия между версиями
(→Графическая нотация) |
м (rollbackEdits.php mass rollback) |
||
(не показано 15 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Определение | ||
+ | |definition = | ||
+ | '''Физическая модель базы данных''' — это модель данных, которая определяет, каким образом представляются данные, и содержит все детали, необходимые СУБД для создания базы данных.}} | ||
+ | '''Схема реляционной БД:''' | ||
+ | * Основные элементы | ||
+ | ** Таблицы | ||
+ | ** Ссылки между таблицами | ||
+ | * Дополнительные элементы | ||
+ | ** Триггеры | ||
+ | ** Представления | ||
+ | ** Хранимые процедуры | ||
+ | |||
+ | Рассмотрим основные элементы схемы реляционной БД. | ||
+ | |||
== Таблицы == | == Таблицы == | ||
− | Каждая таблица состоит из строк и столбцов и предназначена для хранения информации об однотипных объектах | + | Каждая таблица состоит из строк и столбцов и предназначена для хранения информации об однотипных объектах. |
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Запись''' | + | '''Запись''' — набор полей, содержащий информацию о конкретном объекте. Записям соответствуют строки таблицы. }} |
− | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Поле''' | + | '''Поле''' — значение определенного типа, отражающее конкретную характеристику объекта. Столбец таблицы содержит поля записей, отвечающие за одну характеристику. |
}} | }} | ||
+ | Пример таблицы, содержащей информацию о студентах: | ||
+ | {| class="wikitable" style="background-color:#FFF; text-align:center; padding:1000px" | ||
+ | !'''StudentId: int''' | ||
+ | !'''Name: varchar(60)''' | ||
+ | !'''Birth: Date''' | ||
+ | |- | ||
+ | |1 | ||
+ | |Иван Иванов | ||
+ | |01.01.1998 | ||
+ | |- | ||
+ | |2 | ||
+ | |Петр Петров | ||
+ | |02.02.1999 | ||
+ | |} | ||
== Ключи == | == Ключи == | ||
Строка 18: | Строка 45: | ||
** '''Простые''' (англ. ''simple'') {{---}} состоящие из одного поля, | ** '''Простые''' (англ. ''simple'') {{---}} состоящие из одного поля, | ||
** '''Составные''' (англ. ''composite'') {{---}} состоящие из нескольких полей. | ** '''Составные''' (англ. ''composite'') {{---}} состоящие из нескольких полей. | ||
− | * По | + | * По «естественности»: |
** '''Естественные''' (англ. ''natural'') {{---}} приходят из реальных данных, | ** '''Естественные''' (англ. ''natural'') {{---}} приходят из реальных данных, | ||
** '''Суррогатные''' (англ. ''surrogate'') {{---}} генерируются СУБД или придумываются специально для идентификации записи. Использование суррогатного ключа может быть обусловлено тем, что естественный ключ является длинным, составным или вовсе отсутствует. | ** '''Суррогатные''' (англ. ''surrogate'') {{---}} генерируются СУБД или придумываются специально для идентификации записи. Использование суррогатного ключа может быть обусловлено тем, что естественный ключ является длинным, составным или вовсе отсутствует. | ||
− | * По | + | * По «приоритету»: |
** '''Основной''' (англ. ''primary'') {{---}} ключ, используемый для того, чтобы ссылаться на таблицу. Использование различных ключей для ссылок считается плохой практикой. | ** '''Основной''' (англ. ''primary'') {{---}} ключ, используемый для того, чтобы ссылаться на таблицу. Использование различных ключей для ссылок считается плохой практикой. | ||
** '''Дополнительные''' (англ. ''secondary'') {{---}} ключи, позволяющие поддерживать уникальность поля или набора полей. Их не следует использовать для ссылок на таблицу. | ** '''Дополнительные''' (англ. ''secondary'') {{---}} ключи, позволяющие поддерживать уникальность поля или набора полей. Их не следует использовать для ссылок на таблицу. | ||
Строка 28: | Строка 55: | ||
== Ссылки == | == Ссылки == | ||
+ | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Внешним ключом''' (или '''ссылкой''' | + | '''Внешним ключом''' (или '''ссылкой''', англ. ''foreign key'') называют набор столбцов, соответствующий (как правило, основному) ключу другой или той же самой таблицы.}} |
+ | [[Файл:БД_ссылка_Students_Groups.png|400px|thumb|right|Пример ссылки на другую таблицу]] | ||
Типы ссылок: | Типы ссылок: | ||
* '''Простые''' (англ. ''simple'') {{---}} ссылки, состоящие из одного поля, | * '''Простые''' (англ. ''simple'') {{---}} ссылки, состоящие из одного поля, | ||
Строка 36: | Строка 65: | ||
== Графическая нотация == | == Графическая нотация == | ||
+ | [[Файл:ФМ_графическая_нотация.png|400px|thumb|right|Пример графической нотации для таблицы $Students$]] | ||
+ | [[Файл:FK Student Group.png|400px|thumb|right|Пример внешней ссылки]] | ||
+ | |||
Таблицы обозначаются прямоугольниками. В заголовке указывается имя таблицы. | Таблицы обозначаются прямоугольниками. В заголовке указывается имя таблицы. | ||
Таблица состоит из трех столбцов со следующим содержанием: | Таблица состоит из трех столбцов со следующим содержанием: | ||
− | * | + | * Имя поля |
− | * | + | * Тип поля |
− | * Свойства | + | * Свойства поля |
− | |||
{| class="wikitable" style="background-color:#FFF; text-align:center" | {| class="wikitable" style="background-color:#FFF; text-align:center" | ||
! style="background-color:#F0F8FF;" |Обозначение | ! style="background-color:#F0F8FF;" |Обозначение | ||
Строка 53: | Строка 84: | ||
|'''O''' | |'''O''' | ||
|Необязательное (англ. ''optional'') | |Необязательное (англ. ''optional'') | ||
+ | |- | ||
+ | |'''PK''' | ||
+ | |Основной ключ (англ. ''primary key'') | ||
+ | |- | ||
+ | |'''Kn''' | ||
+ | |Дополнительный ключ $n$ (англ. ''key'') | ||
+ | |- | ||
+ | |'''FKn''' | ||
+ | |Внешний ключ $n$ (англ. ''foreign key'') | ||
|} | |} | ||
− | + | ||
+ | '''Замечания:''' | ||
+ | * Так как любое поле обладает либо свойством обязательности, либо свойством необязательности, будем считать поля необязательными по умолчанию, не указывая это свойство явно. | ||
+ | * Основной ключ можно выделить, подчеркнув поля, входящие в него, сплошной линией. | ||
+ | |||
+ | Внешний ключ обозначается стрелкой, над которой указывается уникальный идентификатор ключа $FKn$. Этим идентификатором также отмечаются поля, выступающие в роли ссылки. Когда имена полей в таблицах различаются, на ссылке можно указать соответствие между полями. | ||
+ | |||
+ | ==Литература== | ||
+ | * Дейт К. Введение в системы баз данных (глава 14) | ||
+ | * Уидом Д., Ульман Д. Основы реляционных баз данных (глава 2) |
Текущая версия на 19:27, 4 сентября 2022
Определение: |
Физическая модель базы данных — это модель данных, которая определяет, каким образом представляются данные, и содержит все детали, необходимые СУБД для создания базы данных. |
Схема реляционной БД:
- Основные элементы
- Таблицы
- Ссылки между таблицами
- Дополнительные элементы
- Триггеры
- Представления
- Хранимые процедуры
Рассмотрим основные элементы схемы реляционной БД.
Содержание
Таблицы
Каждая таблица состоит из строк и столбцов и предназначена для хранения информации об однотипных объектах.
Определение: |
Запись — набор полей, содержащий информацию о конкретном объекте. Записям соответствуют строки таблицы. |
Определение: |
Поле — значение определенного типа, отражающее конкретную характеристику объекта. Столбец таблицы содержит поля записей, отвечающие за одну характеристику. |
Пример таблицы, содержащей информацию о студентах:
StudentId: int | Name: varchar(60) | Birth: Date |
---|---|---|
1 | Иван Иванов | 01.01.1998 |
2 | Петр Петров | 02.02.1999 |
Ключи
Определение: |
Ключом называется набор полей, уникально идентифицирующий запись. |
Выделяют следующие виды ключей:
- По структуре ключа:
- Простые (англ. simple) — состоящие из одного поля,
- Составные (англ. composite) — состоящие из нескольких полей.
- По «естественности»:
- Естественные (англ. natural) — приходят из реальных данных,
- Суррогатные (англ. surrogate) — генерируются СУБД или придумываются специально для идентификации записи. Использование суррогатного ключа может быть обусловлено тем, что естественный ключ является длинным, составным или вовсе отсутствует.
- По «приоритету»:
- Основной (англ. primary) — ключ, используемый для того, чтобы ссылаться на таблицу. Использование различных ключей для ссылок считается плохой практикой.
- Дополнительные (англ. secondary) — ключи, позволяющие поддерживать уникальность поля или набора полей. Их не следует использовать для ссылок на таблицу.
Так, например, идентификатор студента будет простым суррогатным ключом, а серия и номер паспорта — составным естественным ключом.
Ссылки
Определение: |
Внешним ключом (или ссылкой, англ. foreign key) называют набор столбцов, соответствующий (как правило, основному) ключу другой или той же самой таблицы. |
Типы ссылок:
- Простые (англ. simple) — ссылки, состоящие из одного поля,
- Составные (англ. composite) — ссылки, состоящие из нескольких полей.
Графическая нотация
Таблицы обозначаются прямоугольниками. В заголовке указывается имя таблицы.
Таблица состоит из трех столбцов со следующим содержанием:
- Имя поля
- Тип поля
- Свойства поля
Обозначение | Свойство поля |
---|---|
M | Обязательное (англ. mandatory) |
O | Необязательное (англ. optional) |
PK | Основной ключ (англ. primary key) |
Kn | Дополнительный ключ $n$ (англ. key) |
FKn | Внешний ключ $n$ (англ. foreign key) |
Замечания:
- Так как любое поле обладает либо свойством обязательности, либо свойством необязательности, будем считать поля необязательными по умолчанию, не указывая это свойство явно.
- Основной ключ можно выделить, подчеркнув поля, входящие в него, сплошной линией.
Внешний ключ обозначается стрелкой, над которой указывается уникальный идентификатор ключа $FKn$. Этим идентификатором также отмечаются поля, выступающие в роли ссылки. Когда имена полей в таблицах различаются, на ссылке можно указать соответствие между полями.
Литература
- Дейт К. Введение в системы баз данных (глава 14)
- Уидом Д., Ульман Д. Основы реляционных баз данных (глава 2)