Базы данных. Курс лекций. Учебное пособие. Рамиля Рамисовна Латыпова

Читать онлайн.
Название Базы данных. Курс лекций. Учебное пособие
Автор произведения Рамиля Рамисовна Латыпова
Жанр Техническая литература
Серия
Издательство Техническая литература
Год выпуска 0
isbn 9785392191512



Скачать книгу

если рассматривается таблица «Студенты», то в качестве первичного ключа нельзя использовать фамилию, имя или дату рождения, поскольку эта информация не уникальна.

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

      Первичный ключ является разновидностью более общего понятия потенциального ключа, т. е. ключа, который может быть выбран в качестве первичного.

      Между двумя и более таблицами БД могут существовать отношения подчиненности. Это означает, что для каждой записи главной таблицы (родительской, или мастер-таблицы (англ.: master)) может существовать одна или несколько записей в подчиненной (или детальной (англ.: detail)) таблицы.

      Связывание таблиц выполняется для устранения избыточности информации.

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

      1. Связь «один-ко-многим» (или «многие-к-одному»);

      2. Связь «один-к-одному»;

      3. Связь «многие-ко-многим».

      Связываемые поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных.

      Отношение «один-ко-многим» является самым распространенным, оно моделирует иерархию данных.

      Рассмотрим пример, когда одной записи в родительской таблице соответствует несколько записей в дочерней таблице (рис. 6). В этом примере одной записи в родительской таблице «Товары» соответствует несколько записей в дочерней таблице «Отпуск товаров».

      Отношение «один-к-одному» применяется тогда, когда стремятся сократить объем информации в одной таблице или защитить часть информации от доступа. Но здесь приходится выполнять больше операций чтения при извлечении связанных данных. В этом случае одной записи в главной таблице соответствует одна запись в подчиненной таблице (рис. 7).

      

      Рис. 6. Связь «один-ко-многим»

      

      Рис. 7. Связь «один-к-одному»

      Такие связи также могут быть жесткими и нежесткими.

      Рассмотрим отношение «многие-ко-многим». В этом случае возможны два варианта:

      записи в родительской таблице соответствует более одной записи в дочерней таблице;

      записи в дочерней таблице соответствует более одной записи в родительской таблице.

      Пример приведен на рис. 8.

      

      Рис. 8. Связь «многие-ко-многим»

      Здесь имеется в виду, что один преподаватель читает разные курсы, а один и тот же курс могут читать разные преподаватели.

      Любая связь «многие-ко-многим» может быть заменена на одну или более связей «один-ко-многим». Для этого нужно ввести промежуточную таблицу (рис. 9).

      

      Рис. 9. Преобразование связи «многие-ко-многим»

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

      Рассмотрим наиболее часто встречающуюся связь «один-ко-многим». Пример приведен на рис. 10.

      

      Рис. 10. Пример связывания таблиц

      Эти