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

Кудравцев Создание баз данных 2010

.pdf
Скачиваний:
83
Добавлен:
16.08.2013
Размер:
2.65 Mб
Скачать

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

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

№ Личного

Фамилия

Имя

Отчество

Дата

дела

 

 

 

рождения

 

 

 

 

 

16493

Сергеев

Петр

Михайлович

01.01.86

 

 

 

 

 

16593

Петрова

Анна

Владимировна

01.03.85

 

 

 

 

 

16693

Анохин

Андрей

Борисович

14.04.86

 

 

 

 

 

Рис. 1.2. Пример структурированных данных

Ядром любой базы данных является модель данных.

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

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

Наиболее распространенными являются три типа моделей данных:

иерархическая;

сетевая;

реляционная.

Иерархические и сетевые СУБД наиболее эффективны в производственных системах, где структура данных известна заранее и не подлежит существенным изменениям. В то же время в системах с произвольной структурой запросов целесообразно применять реляционные СУБД.

11

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

Иерархическая модель данных [1, 2] – модель данных, в которой все отношения структурированы в виде деревьев. Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево), вид которого представлен на рис. 1.3.

Рис. 1.3. Графическое изображение иерархической модели данных

Среди реализаций иерархической модели преобладает система

IMS (Information Management System), которая появилась в резуль-

тате совместной работы фирм IBM и Rockwell по созданию СУБД для поддержки лунного проекта Аполлон. В рамках данного проекта необходимо было хранить информацию о миллионах деталей космического аппарата связанных друг с другом иерархическим образом.

Косновным понятиям иерархической структуры относятся:

уровень;

элемент (узел);

связь.

Узел (элемент) — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами направленного графа. Каждый узел на

12

более низком уровне связан только с одним узлом, находящимся на более высоком уровне.

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

Факультет (специальность, название, декан)

010501

Кибернетики

Панферов В.В.

Группа (номер, староста)

К6-361

 

К7-368

 

К7-361

Петров И.Т.

 

Зайцев Р.В.

 

Никулин К.Л.

Студент (номер зачетной книжки, фамилия, имя, отчество)

 

 

 

 

 

 

 

 

98795

 

97695

 

 

98495

 

 

 

 

 

 

 

 

 

Сидоров Анд-

 

Черняева

 

Дроздов

рей Петрович

 

Юлия

 

Константин

 

 

 

Николаев-

 

Иванович

 

 

 

на

 

 

 

Рис. 1.4. Пример иерархической структуры БД

13

Сетевая модель данных

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

На рис. 1.5 изображена сетевая структура базы данных в виде графа. Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС.

Рис. 1.5. Графическое изображение сетевой структуры

Студент (номер зачетной книжки, фамилия, группа)

87695

 

85495

 

87495

Иванов

 

Петров

 

Сидоров

111

 

112

 

113

1006

 

1009

 

1008

 

1005

Сергеев П.И.

 

Некрасова Г.П.

 

Кириллов В.П.

 

Павлова И.М.

Информатика

 

Математика

 

Физика

 

Химия

 

 

 

 

 

 

 

Работа (шифр, руководитель, область)

Рис. 1.6. Пример сетевой структуры БД

14

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

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

Построение концептуальной модели

Базы данных и программные средства для их создания и ведения (СУБД) имеют многоуровневую архитектуру (рис. 1.7).

В соответствии с рекомендациями ANSI/X3/SPARC [9] различают внутренний, концептуальный и внешний уровни представления данных баз данных [1, 2].

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

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

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

15

Приложение

Приложение

Приложение

1

2

3

Логический

уровень

Внешняя модель А Внешняя модель В представления данных

Концептуальная модель БД

Внутренняя модель БД

Физический

уровень

представления

данных

Рис. 1.7. Многоуровневое представление данных БД

Проектирование базы данных состоит в построении комплекса взаимосвязанных объектов данных [10]. Проект базы данных надо начинать с анализа предметной области и выявления требований к ней отдельных пользователей (сотрудников организации, для которых создается база данных).

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

цептуальной (инфологической) моделью данных. В концепту-

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

Такая модель полностью независима от физических параметров среды хранения данных.

16

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

Концептуальная (инфологическая) модель предметной об-

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

На рис. 1.8 условно отображены этапы процесса проектирования базы данных.

Анализ предметной области

Проектирование базы данных

 

 

 

 

 

 

 

 

Концептуальное

 

Физическое

 

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

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

 

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

 

представлений данных

 

 

 

 

 

 

для приложений

 

 

 

 

 

 

 

 

Рис. 1.8. Этапы процесса проектирования базы данных

Предварительная концептуальная модель строится на предпроектной стадии и затем уточняется на более поздних стадиях проектирования баз данных. На основе концептуальная модели строятся внутренняя (физическая) и внешняя модели представления данных. Рассмотрим в качестве примера предметную область, посвященную экзаменам, которые сдают студенты. Как известно, экзамены сдаются по разным предметам, их принимают разные преподаватели, и результаты экзамена заносятся в экзаменационную ведомость. На основе вышеизложенного можно выделить следующие объекты («сущности»), участвующие в данной предметной области:

студент;

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

экзаменационный предмет;

собственно экзамен (экзаменационная ведомость).

Следует отметить, что в данном случае не учитываются вопросы, на которые отвечал студент, длительность подготовки по билету и т.п. Таким образом, предметная область ограничена только конечными итогами экзамена. Удобно представлять объекты

17

предметной области и их взаимосвязи в графическом виде. Так на рис. 1.9 представлена графическая форма концептуальной модели, связывающей информационные объекты (сущности): Экзамен, Студент, Предмет, Преподаватель.

Экзамен

 

 

Предмет

 

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

Студент

 

 

 

 

 

 

 

Рис. 1.9. Пример графического представления инфологической модели

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

CASE-средства построения концептуальных моделей

Одной из наиболее популярных форм представления концептуальных моделей данных является модель «сущностьсвязь» (часто называемая также ER-моделью (ER-диаграммой) — по первым буквам английских слов Entity (сущность) и Relation (связь)). Модель была предложена Ченом в 1976 г. Кроме модели Чена известны другие модели:

семантическая модель данных Хаммера и Маклеода; функциональная модель Шипмана и др.

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

странение в CASE (Computer-Aided System Engineering)-средствах,

предназначенных для автоматизированного проектирования реляционных баз данных.

Для моделирования структуры данных используются ERдиаграммы (диаграммы «сущность—связь»), которые в наглядной

18

форме представляют связи между сущностями. Наиболее популяр-

ными являются CASE-системы ERwin, Design/IDEF, Power Designer, в которых диаграммы создаются в соответствии со стандартом

IDEF1X.

Основные понятия ER-диаграммы:

сущность;

атрибут;

связь.

Построение ER-диаграммы предполагает определение сущностей предметной области, атрибутов этих сущностей и установление связей между ними.

Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущность — это реальный или виртуальный объект, имеющий существенное значение для рассматриваемой предметной области, информация о котором подлежит хранению.

Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как «тип сущности» и «экземпляр сущности». Понятие «тип сущности» относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д.

Каждая сущность должна обладать следующими свойствами:

иметь уникальный идентификатор;

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

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

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

Атрибут является характеристикой сущности, значимой для рассматриваемой предметной области. Атрибут – поименованная характеристика сущности.

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

19

чением и именоваться существительным в единственном числе. Например, сущность СТУДЕНТ представляет из себя множество студентов группы, факультета, университета (в зависимости от рассматриваемой предметной области). Экземпляром этого множества является конкретный студент. Атрибутами сущности СТУДЕНТ будут:

фамилия;

имя;

отчество;

дата рождения и т.п.

Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Каждый атрибут хранит информацию об определенном свойстве сущности, причем каждый экземпляр сущности, как и каждый элемент объектного множества, должен быть уникальным. Атрибут или группа атрибутов, однозначно идентифицирующие сущность, называются первичным ключом. Для сущности СТУДЕНТ ключевым атрибутом может выступать «фамилия», если в качестве предметной области рассматривается учебная группа. Если в группе имеются однофамильцы, то атрибут «фамилия» не может выступать в качестве первичного ключа, и тогда на роль ключа можно выбрать группу атрибутов, например «фамилия», «имя». Однако и данная комбинация может оказаться неприемлемой. Поэтому в качестве первичного ключа очень часто используют абстрактные идентификаторы или суррогатные ключи, которые представляют собой некие порядковые номера (перечисления) не имеющие смысла вне базы данных. Для этих целей все современные базы данных поддерживают специальный тип данных – «счетчик», который автоматически увеличивается при добавлении новых записей в базу данных.

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

Связь — это соединение (ассоциирование) двух или более сущностей, при котором каждый экземпляр одной сущности, называемой родительской сущностью, ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности,

20