Физическая модель базы данных — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Ссылки)
м (rollbackEdits.php mass rollback)
 
(не показано 12 промежуточных версий 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'') {{---}} ключи, позволяющие поддерживать уникальность поля или набора полей. Их не следует использовать для ссылок на таблицу.
Строка 31: Строка 58:
 
{{Определение
 
{{Определение
 
|definition =
 
|definition =
'''Внешним ключом''' (или '''ссылкой''') (англ. ''foreign key'') называют набор столбцов, соответствующий (как правило, основному) ключу другой таблицы.}}
+
'''Внешним ключом''' (или '''ссылкой''', англ. ''foreign key'') называют набор столбцов, соответствующий (как правило, основному) ключу другой или той же самой таблицы.}}
 
[[Файл:БД_ссылка_Students_Groups.png|400px|thumb|right|Пример ссылки на другую таблицу]]
 
[[Файл:БД_ссылка_Students_Groups.png|400px|thumb|right|Пример ссылки на другую таблицу]]
 
Типы ссылок:
 
Типы ссылок:
Строка 39: Строка 66:
 
== Графическая нотация ==
 
== Графическая нотация ==
 
[[Файл:ФМ_графическая_нотация.png|400px|thumb|right|Пример графической нотации для таблицы $Students$]]
 
[[Файл:ФМ_графическая_нотация.png|400px|thumb|right|Пример графической нотации для таблицы $Students$]]
 +
[[Файл:FK Student Group.png|400px|thumb|right|Пример внешней ссылки]]
  
 
Таблицы обозначаются прямоугольниками. В заголовке указывается имя таблицы.
 
Таблицы обозначаются прямоугольниками. В заголовке указывается имя таблицы.
Строка 62: Строка 90:
 
|'''Kn'''
 
|'''Kn'''
 
|Дополнительный ключ $n$ (англ. ''key'')
 
|Дополнительный ключ $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) — ссылки, состоящие из нескольких полей.

Графическая нотация

Пример графической нотации для таблицы $Students$
Пример внешней ссылки

Таблицы обозначаются прямоугольниками. В заголовке указывается имя таблицы.

Таблица состоит из трех столбцов со следующим содержанием:

  • Имя поля
  • Тип поля
  • Свойства поля
Обозначение Свойство поля
M Обязательное (англ. mandatory)
O Необязательное (англ. optional)
PK Основной ключ (англ. primary key)
Kn Дополнительный ключ $n$ (англ. key)
FKn Внешний ключ $n$ (англ. foreign key)

Замечания:

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

Внешний ключ обозначается стрелкой, над которой указывается уникальный идентификатор ключа $FKn$. Этим идентификатором также отмечаются поля, выступающие в роли ссылки. Когда имена полей в таблицах различаются, на ссылке можно указать соответствие между полями.

Литература

  • Дейт К. Введение в системы баз данных (глава 14)
  • Уидом Д., Ульман Д. Основы реляционных баз данных (глава 2)