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

Рекурсивные связи

-возникают внутри одного и того же объекта.

Существует два типа рекурсивных связей:

-1:n;

-n:n;

  1. 1:n – например, отношение сотрудник- подчиненный на множестве подчиненных (но начальник тоже сотрудник).

n

1

Сотрудник в данном случае имеет роль начальника

Вводится понятие роль – это таблица, соединенная сама с собой. Для того чтобы различать объекты даем им разные роли.

  1. n:n

Пример:

Описание структуры изделие, изделие состоит из сборочных единиц.

Изобразим граф изделия:

В данном графе 2,3,4 – это узлы, а 5,6,7 – это детали. Числа рядом с линиями показывают в каком количестве детали входят в узлы, например, в узел 2 входят 3 детали 5, 2 детали 6 и 1 деталь 3.

Роль деталь имеют те сборочные единицы, которые где-то применяются: 2-7.

Узел собирается из нескольких сборочных единиц: 1-4.между ними существует связь:

В реальном проектировании связь М:М представляется в виде трех отношений, причем между 1 3 – 1:М, между 2 и 3 – 1:М.

Таблица 1:

Сборочная единица

1

2

3

4

5

6

7

Таблица 2 (сборка):

Роль- узел (1)

Роль- деталь (2)

Количество (3)

1

2

2

1

3

3

1

4

2

2

3

1

2

5

3

2

6

2

3

5

2

3

7

2

4

6

1

4

7

3

Из этих таблиц:

№изделий = 1\2;

№деталей = 2\1;

№узла = 12.

Представление связей более высокого порядка (не бинарных).

Связь бинарная если в нее вступает два объекта, если в связь вступает более двух объектов, то связь не бинарная.

Пример.

В конкретном концерте конкретный исполнитель исполнил песню конкретного композитора.

Link – это промежуточное отношение, его ключом является уникальная комбинация №концерта, №песни, №исполнителя, №композитора.

Избыточное дублирование.

Дублирование – повторение значений некоторого атрибута.

Иногда от дублирования невозможно избавиться, так как при этом может произойти потеря информации.

Пример.

№служащего

Фамилия начальника

№телефона начальника

123

Иванов

1111

157

Петров

1112

160

Петров

1112

200

Иванов

1111

Чтобы избавиться от избыточного дублирования нужно данную таблицу разбить на 2:

№служащего

Фамилия начальника

123

Иванов

157

Петров

160

Петров

200

Иванов

Фамилия начальника

телефон

Иванов

1111

Петров

1112

Реляционная модель данных.

Автор этой модели Тед Кодд, год рождения этой модели 1970. Основа этой модели – математическая теория отношений.

Отношение – это множество кортежей, среди которых нет повторений. Каждый объект описывает отдельный объект предметной области или связь между ними. Отношения в реляционной модели данных представлены в виде таблиц.

Например:

номер

название

вес

1

Гайка

17

2

Болт

13

3

Винт

14

Кортежи при этом не должны повторяться, каждый кортеж уникален. Кортежи могут следовать в произвольном порядке. Каждый объект характеризуется атрибутами, каждый атрибут может принимать значения их некоторого домен.

Домен = domсодержит множество возможных значений данного атрибута.

Любая таблица есть подмножество деккартового произведения доменов

table

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

Целый 1-1000;

Вес 1-1000 гр.

А ограничения цвета можно записать в виде списка.

Атрибуты в модели Кодда должны быть атомарными, т.е. неделимыми, из стандартного набора доменов.

При этом возможны следующие ситуации:

  1. Не всегда в предметной области атрибуты бывают атомарными (скалярными)

{13.03.2000}

  1. Атрибуты бывают повторяющимися – множество значений одного типа, которые вместе характеризуют какое-то свойство

    Песни, исполняемые в концерте.

    номер

    автор

    1

    Державин

    2

    Пахмутова

    2

    Добронравов

    3

    Добрынин

  2. Группа состоит из нескольких атрибутов разного типа:

....

адрес

....

Москва, ул. Ленина 17-18

Чтобы избавиться от групп, нужно разбить эту колонку на разные составляющие: город, улица, дом, квартира.

  1. Наличие повторяющейся группы – нескольких групповых атрибутов:

Например,

Ф.И.О.

адрес

Иванов...

Постоянной прописки

Временной прописки

Два адреса нельзя повторить, нужно снова ввести Ф.И.О. и новый адрес.

При этом могут возникнуть следующие аномалии:

  1. аномалия добавления

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

  1. Аномалия удаления

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

  1. Аномалия изменения

Пусть, например, Пахмутова записана несколько раз, тогда при изменении, например, фамилии, ее нужно изменить везде, а для этого надо просмотреть всю таблицу.

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

Название, вес, цвет, номерномер, название, цвет, вес.

Состав базу данных о поставщиках, деталях и поставках:

Создадим таблицу Поставщики (№поставщика, фамилия)

№ поставщика

фамилия

1

Иванов

2

Петров

3

Сидоров

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

Таблица Детали (№, название, цвет, вес) имеет вид:

№детали

Название детали

вес

цвет

1

Гайка

17

серый

2

Болт

13

черный

3

винт

14

красный

Таблица Поставка (№детали, №поставщика, количество):

№детали

№поставщика

количество

1

2

120

1

3

100

2

1

30

3

1

490

3

3

500

В таблице Поставки комбинация №поставщика и №детали является первичным ключом, а по отдельности они являются внешними ключами.

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

Соседние файлы в предмете Базы данных