Главная » Статьи » Информационные системы |
Что такое сущность? В представлении реляционной базы данных сущность – таблица, которая состоит из строк и заголовков. Записи в таблице необходимо идентифицировать с помощью первичного ключа. Первичный ключ простой или составной позволяет точно сказать, что строка с этими значениями первичного ключа встречаться в таблице только раз. Сущности могут соединяться друг с другом с помощью отношений (внешних ключей). В качестве внешнего ключа в одной из таблиц используется столбец, в котором храниться значения первичного ключа другой таблицы. Допустим у нас есть таблица студенты и группы. В одной группе может быть от одного и более студентов, но студент может принадлежать только одной группе. Попробуем представить это с помощью таблиц. Ниже представлен пример таких таблиц в реляционной базе данных. Таблица студентов
Таблица группы
Представленный выше пример относится к типу связей один ко многим, так как у нас к одной группе прикрепляется несколько студентов. Идентификатор студента в таблице студентов – первичный ключ. Идентификатор группы в таблице группы – первичный ключ. Идентификатор группы в таблице студентов – внешний ключ для связи студента с группой.
Все есть три способа для связи сущностей между собой внутри некой базы данных:
Есть основная таблица и вторичная таблица в которой находится поле со внешним ключом. Во вторичной таблице поле со внешнем ключом, так же будет полем с первичным ключом для этой таблицы. Добавим в пример выше сущность зачетку. Конечно, информацию о зачетке можно хранить в таблице студентов, но в качестве примера я создам отдельную сущность. Зачетная книжка
Как видно по таблице зачетная книжка – всего у двух студентов есть зачетные книжки. Поле идентификатор студента является первичным ключом для таблицы зачетная книжка и внешним ключом для связи с таблицей студентов. Таким образом для зачетной книжки всегда будет соответствующая строчка с записью о студенте в таблице студентов. Для создания связи ко многие нужно добавить таблицу, которая будет хранить данные для связи записей из одной таблицы к другой. Создавать новую таблицу для связи нужно, так как мы не можем использовать соединение для связи многие ко многим. Доступ мы хотим отразить связь между предметами и группами. У каждой группы может быть несколько предметов по которым она учиться. У каждого предмета есть список групп, которые проходят студенты из группы в течение учебного года. Таблица предметы
Таблица связи группа to предмет
Таблица связи группы и предмета содержит идентификаторы, по которым мы можем определить какие предметы изучают студенты в группе. Возьмем группу с идентификатором 2. Эта группа изучает три предмета с идентификаторами 1,2,3 . Как мы видим таблица связности содержит только идентификаторы, поэтому если мы хотим получить информацию о наименовании предмета или наименованию группы, то нам нужно будет обратиться в таблицу предметов или таблицу групп.
Вот пример составленной схемы для университета. Я еще тут добавил сущность экзамен в которой составной ключ из трех полей даты, зачетной книжки (или идентификатора студента, так как между зачетной книжкой и студентом связь один к одному), идентификатора предмета. Такой ключ сделан для того, чтобы если в следующем году у студента снова будет курс русского языка мы могли добавить в таблицу экзамен запись с тем идентификатором студента и предмета, но уже с другой датой. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Просмотров: 1063 | | |
Всего комментариев: 0 | |