Главная » Статьи » Информационные системы

Понятие сущности в реляционных базах данных

Что такое сущность?

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

Таблица студентов

Идентификатор студента

Имя студента

Идентификатор группы

1

Иван

1

2

Оля

1

3

Петр

3

4

Антон

1

5

Света

3

 

Таблица группы

Идентификатор группы

Наименование группы

1

А1323

2

В31241

3

С314172

 

Представленный выше пример относится к типу связей один ко многим, так как у нас к одной группе прикрепляется несколько студентов. Идентификатор студента в таблице студентов – первичный ключ. Идентификатор группы в таблице группы – первичный ключ. Идентификатор группы в таблице студентов – внешний ключ для связи студента с группой.

  • В группе А1323 есть три студента с идентификаторами 1,2,4
  • В группе В31241 нет студентов
  • В группе С314172 есть два студента с идентификаторами 3,5

Все есть три способа для связи сущностей между собой внутри некой базы данных:

  1. Связь один к одному.
  2. Связь один ко многим.
  3. Связь многие ко многим.

Есть основная таблица и вторичная таблица в которой находится поле со внешним ключом. Во вторичной таблице поле со внешнем ключом, так же будет полем с первичным ключом для этой таблицы.

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

Зачетная книжка

Идентификатор студента

Номер зачетной книжки

3

461846 81468 14

5

47129 6846 872164

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

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

Таблица предметы

Идентификатор предмета

Наименование предмета

1

Русский

2

Математика

3

Базы данных

 

Таблица связи группа to предмет

Идентификатор группы

Идентификатор предмета

2

1

2

2

2

3

1

3

1

2

3

1

3

2

 

Таблица связи группы и предмета содержит идентификаторы, по которым мы можем определить какие предметы изучают студенты в группе. Возьмем группу с идентификатором 2. Эта группа изучает три предмета с идентификаторами 1,2,3 . Как мы видим таблица связности содержит только идентификаторы, поэтому если мы хотим получить информацию о наименовании предмета или наименованию группы, то нам нужно будет обратиться в таблицу предметов или таблицу групп.

 

Вот пример составленной схемы для университета. Я еще тут добавил сущность экзамен в которой составной ключ из трех полей даты, зачетной книжки (или идентификатора студента, так как между зачетной книжкой и студентом связь один к одному), идентификатора предмета. Такой ключ сделан для того, чтобы если в следующем году у студента снова будет курс русского языка мы могли добавить в таблицу экзамен запись с тем идентификатором студента и предмета, но уже с другой датой.

Категория: Информационные системы | Добавил: Алексей (27.01.2019) | Автор: Фролов Алексей Алексеевич E
Просмотров: 344 | Теги: MS Access, SQL, PostgreSQL, SQL Server, Базы данных | Рейтинг: 0.0/0
Всего комментариев: 0
avatar