Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
baz_dan / Главы1-3.doc
Скачиваний:
52
Добавлен:
12.03.2015
Размер:
529.92 Кб
Скачать

Студент

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

ФИО

Номер_группы

Номер_факультета

Номер_специальности

…………………….

Набор атрибутов, однозначно идентифи-

цирующих конкретный экземпляр сущ-

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

ФИО

Номер_группы

Номер_факультета

Номер_специальности

ности, называется ключевым (этот атри-

бут подчеркивается).

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

Студент

№зач_книжк.

…………….

Преподаватель

Табельный№

………………

Табельный№

……………….

Дипломное

проектирование

Здесь присутствует связь М:1, т.к. Каждый преподаватель может руководить дипломным проектированием нескольких студентов, в то время, как руководитель у каждого студента только один.

Студент

№зач_книжк.

…………….

Преподаватель

Т№

……………….

Табельный№

……………..

Лекции

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

Таким образом, связи делятся по множественности и могут быть:

1:1 (один к одному), 1:М (один ко многим), М:М (многие ко многим).

Вернемся теперь к примеру «Библиотека» и представим ее ER модель.

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

Общая схема базы данных «Библиотека» представлена на рис.2.2

Рис.2.2. Концептуальная модель базы данных «Библиотека»

Этап 3. Выбор СУБД.

На этом этапе необходимо обосновать выбор той или иной СУБД, предварительно изучив их параметры. При этом можно обратить внимание

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

Иерархическая модель данных

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

Рис. 2.3. Графическое изображение иерархической структуры БД

Можно выделить основные особенности иерархической модели БД:

1. Все типы связей функциональные, т.е. 1:1, 1:М.

2. Структура связей древовидная.

3. Иерархия всегда начинается с корневого узла.

4. На первом уровне (i=1) может находиться только один узел - корневой.

5. На нижних уровнях (i = 2, 3, ..., n) находятся порожденные (зависимые) узлы.

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

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

8. Доступ к каждому порожденному узлу выполняется через его непосредственно исходный узел.

9. Существует единственный иерархический путь доступа к любому узлу, начиная от корня дерева.

Иерархический путь включает все связанные между собой узлы, начиная с корневого узла и кончая заданным. Иерархический путь является линейным, т. к. все узлы встречаются по одному разу. Среди систем, в основе которых лежат иерархические модели данных, наибольшее распространение получили ОКА и ИНЕС.

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

Сетевые модели

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

Рис.2.4. Примеры сетевых структур

Наиболее известными СУБД, поддерживающими сетевые структуры являются СИОД 1, СИОД 2, ПАРМА, ВИБ-СМ, СЕДАН (СЕТОР), Банк, СЕТЬ, Адабас, IDMS, IDS.

Особенности сетевой модели данных:

  1. Любой узел может быть как исходным, так и порожденным.

  2. Любой узел может иметь несколько исходных узлов.

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

  4. Любой узел может быть одновременно и в роли исходного, и в роли порожденного.

  5. В сетевой модели могут присутствовать связи : 1:1, 1:М, М:1, М:М.

Основной недостаток такой модели заключается в том, поиск информации – процесс не однозначный. Например, на рисунке 3.2 (первая модель) из узла с номером 1 в узел с номером 4 при поиске можно попасть разными путями:

1 – 2 - 4 или 1 – 3 – 4. Поэтому, появляется еще одна проблема, а именно, проблема определения оптимального поиска информации.

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

Один из самых естественных способов представления данных для пользователя - программиста - это двумерная таблица . Поэтому реляционную базу данных (РБД) можно представить в виде взаимосвязанных таблиц.

В табл.2.1 приведены термины, используемые в реляционных базах данных. Таблица 2.1

Формальный реляционный термин

Неформальный эквивалент

Отношение

Кортеж

Кардинальное число

Атрибут

Значение атрибута

Степень

Первичный ключ

Домен

Схема отношения

Тип данных

Таблица

Строка или запись

Количество строк

Столбец или поле

Значение поля в строке

Количество столбцов

Уникальный идентификатор

Общая совокупность допустимых значений

Строка заголовков столбцов таблицы

Тип значений элементов таблицы

Рассмотрим, например, отношение «Служащий», таблица 2.2

Схема отношения

Ключ Атрибут Таблица 3.2.

Номер

служащего

Имя

служащего

Дата

рождения

Должность

Зарплата

35

28

71

Иванов

Сидоров

Петров

10.03.58

25.10.63

11.06.36

Бухгалтер

Инженер

Программист

500

600

800

Значение

Кортеж атрибута Домен

Степень = 5, кардинальное число = 3.

Отношение (таблица) обладает следующими свойствами:

  1. Каждый элемент таблицы представляет собой один элемент данных, повторяющиеся группы отсутствуют.

  2. Все столбцы в таблице однородные (одинаковой природы).

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

4. В таблице нет двух одинаковых строк.

5. Строки и столбцы могут просматриваться в любом порядке.

6. Каждый кортеж должен иметь ключ - идентификатор.

Реляционная БД - это база данных, воспринимаемая пользователем как набор нормализованных отношений разной степени. Таблица может быть представлена в виде отношения (relation): R(A1,A2,…An), где n - атрибуты отношения.

Любая структура данных может быть сведена к двумерным плоским файлам в форме двумерных таблиц.

На рис.2.5 приведен пример приведения древовидной структуры к реляционной, основной ключ (соответствующий корню) при этом включается в подчиненные отношения, получая их расширение:

КОМПОНЕНТА (КОД_ИЗДЕЛИЯ, №_КОМПОНЕНТЫ, НАИМЕНОВАНИЕ)

ДЕТАЛЬ (К0Д_ИЗДЕЛИЯ. КОД_СБ._ЕДИНИЦЫ. КОД_ДЕТАЛИ)

УЗЕЛ (КОД_ИЗДЕЛИЯ. КОД_СБ._ЕДИНИЦЫ. КОД_УЗЛА)

ИЗДЕЛИЕ (КОД_ИЗДЕЛИЯ, СБОРОЧНАЯ_ЕДИНИЦА, КОМПОНЕНТА) СБОРОЧНАЯ_ЕДИНИЦА (НАИМЕНОВАНИЕ, КОД_ЕДЕНИЦЫ, ДЕТАЛЬ, УЗЕЛ)

КОМПОНЕНТА (НОМЕР, НАИМЕНОВАНИЕ)

ДЕТАЛЬ (КОД_ДЕТАЛИ)

УЗЕЛ (КОД_УЗЛА)

Рис.2.5. Пример приведения древовидной структуры к реляционной.

Таким образом, общий вид РБД может быть записан так:

R1(A11 , A12 , A13 , ……, A1n )

R2(A21 , A22 , A23 , ……, A2k )

………………………………

Rm(Am1 , Am2 , Am3 , ……, Aml )

Одним из самых важных характеристик отношения являются ключи. Рассмотрим их подробнее и дадим основные определения:

  1. Первичный ключ – это один или несколько атрибутов, которые единственным образом идентифицируют каждую строку таблицы. Удаление какого-либо атрибута из сложного ключа нарушает идентификацию.

  2. Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения. Все эти комбинации называются возможными ключами. Любой из них может быть выбран первичным кличем. Например, в отношении «Студент» возможными ключами являются атрибуты:

Номер_зачетной_книжки или Номер_группы, ФИО.

Как правило, первичным ключом выбирается Номер_зачетной_книжки, т.к. он короче, а значит, им удобнее пользоваться и уменьшается возможность ошибки в ключе.

Ключи используются для:

  • исключения дублирования кортежей;

  • упорядочения кортежей, а, следовательно, сокращения времени обработки данных;

  • организации связей между отношениями.

Связывание отношений

Рассмотрим пример организации связей между отношениями в РБД:

«Успеваемость студентов», состоящей из трех отношений.

R1: Успеваемость - первичный ключ

ФИО

Название_дисциплины

Оценка

- внешний ключ - внешний ключ

R2: Студент R3:Дисциплины

ФИО

Группа

Специальность

Название_дисциплины

Часы

Пусть в отношении R1 имеется не ключевой атрибут А, значения которого являются значениями ключевого атрибута другого отношения R2. Тогда говорят, что атрибут А отношения R1 есть внешний ключ.

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

При связывании двух отношений выделяют основное (R2 и R3) и дополнительное (подчиненное отношение). Логическое связывание производится с помощью ключа связи. Ключ связи – это один или несколько атрибутов (они могут быть ключевыми и обычными).

Связь – это установление соответствия атрибутов связи основного и дополнительного отношений. Между двумя отношениями могут быть связи: 1:1, 1:М, М:1, М:N.

Контроль целостности

Так как чаще всего используется связь 1:М, рассмотрим именно ее.

Контроль целостности для двух этих отношений (рис.2.6.) означает:

  1. Каждому кортежу основного отношения соответствует 0(ноль) или более кортежей дополнительного отношения.

  2. В дополнительном отношении нет кортежей, которые не имеют «родительских» кортежей в основном отношении.

Главное отношение Дополнительное отношение

Рис.2.6. Связывание таблиц.

  1. Каждый кортеж дополнительного отношения имеет только один «родительский» кортеж в основном отношении.

Как правило, если в РБД установлена связь между отношениями, то СУБД автоматически отслеживает целостность.

Переход от ER модели к реляционной

Вернемся вновь к вопросам проектирования БД и рассмотрим методику перехода от ERмодели к реляционной модели.

  1. Каждой сущности ERмодели ставится в соответствие отношение реляционной модели данных. При этом имена отношений и сущностей могут и не совпадать, например «Книга» вERмодели и «Books» в РБД.

  2. Каждый атрибут сущности становится атрибутом отношения, возможно с другим именем. Для каждого атрибута отношения при этом определяется тип данных, допустимый для данного СУБД, обязательность или необязательность (NULLилиNOTNULL) данного атрибута.

  3. Первичный ключ сущности становится первичным ключом отношения.

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

Вернемся, к примеру ERмодели «Библиотека» и представим связь между отношениями «Книга» и «Экземпляр».

R1: Книги

ISBN

Автор

Название

. . .

. . .

. . .

. . .

. . .

. . .

. . .

R2: Экземпляр Внешний ключ

Инвентарный_номер

ISBN

. . .

. . .

Вопросы

1.Назовите основные этапы проектирование БД.

2. Дайте характеристику этапу системного анализа ПО.

3. Что означает инфологическое проектирование.

  1. Дайте определение «сущности» в ER модели.

  2. Дайте определение «атрибута сущности» в ER модели.

  3. Дайте определение «экземпляра сущности» в ER модели.

  4. Дайте определение ключа в ER модели.

  5. Как графически представляется сущность в ER модели.

  6. Что означают связи 1:1, 1:М и М:М между сущностями.

  7. Особенности иерархической модели БД.

  8. Особенности сетевой модели БД.

  9. Особенности реляционной модели БД.

  10. Основная терминология, используемая в РБД.

  11. Дать определение возможных и первичных ключей.

  12. Свойства отношения.

  13. Связывание отношений.

  14. Что означает внешний ключ.

  15. Что означает контроль целостности при связывании двух отношений.

  16. Правила перехода от ЕR модели к реляционной.

Соседние файлы в папке baz_dan