Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
01.05.2014
Размер:
669.7 Кб
Скачать

2.3.2. Отношение один-к-одному

Отношение один-к-одному имеет место, когда одной записи в родительской табли­це соответствует одна запись в дочерней таблице (рис. 2.4.).

Таблица «Сотрудники» Таблица «Информация

о сотрудниках»

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

Данное отношение встречается много реже, чем отношение один-ко-многим. Его используют, если не хотят, чтобы таблица БД «распухала» от второстепенной инфор­мации. Связь один-к-одному приводит к тому, что для чтения связанной информации в нескольких таблицах приходится производить несколько операций чтения, что замед­ляет получение нужной информации. Кроме того, базы данных, в состав которых вхо­дят таблицы со связью один-к-одному, не могут считаться полностью нормализован­ными (о нормализации см. ниже).

Подобно связи один-ко-многим, связь один-к-одному может быть жесткой и неже­сткой.

2.3.3. Отношение многие-ко-многим

На рис. 2.5 показаны таблицы, состоящие в отношении многие-ко-многим. Каждой учебной группе соответствует несколько преподавателей. Каждый преподаватель мо­жет вести, во-первых, несколько разных предметов и, во-вторых, преподавать в раз­ных группах.

Таблица «Учебные группы Таблица

и дисциплины» «Преподаватели»

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

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

2.3.4. Связи между записями одной таблицы

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

Пусть в реляционной БД необходимо хранить древовидную структуру произволь­ного уровня, например, структуру организации (рис. 2.6).

Департамент автоматизации, Техническое управление,

Отдел сетевого оборудования, Ремонтный отдел АТС,

Управление программными системами, Отдел эксплуатации,

Информационная группа, Административная группа,

Диспетчерское бюро, Отдел разработки

Рис. 2.6. Структура организации

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

подраз­деления

Название подразделения

подразделения предыдущего уровня

1

Департамент автоматизации

2

Техническое управление

1

3

Управление разработки и эксплуатации про­граммных систем

1

4

Отдел сетевого оборудования

2

5

Ремонтный отдел

2

6

АТС

2

7

Отдел эксплуатации

3

8

Отдел разработки

3

9

Информационная группа

7

10

Административная группа

7

11

Диспетчерское бюро

10

Рис. 2.7. Табличное представление структуры организации

Соседние файлы в папке Базы данных1