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

ЭУМК_КИТ2012

.pdf
Скачиваний:
50
Добавлен:
15.02.2016
Размер:
5.61 Mб
Скачать

Рис. 5. Представление связей в сетевой модели данных

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

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

Над данными в сетевой базе могут выполняться следующие операции:

·Добавить – внести запись в базу данных.

·Извлечь – извлечь запись из базы данных.

·Обновить – изменить значение элементов предварительно извлеченной записи.

·Удалить – убрать запись из базы данных.

·Включить в групповое отношение – связать существующую подчиненную запись с записью-владельцем.

·Исключить из группового отношения – разорвать связь между записьювладельцем и записью-членом.

·Переключить – связать существующую подчиненную запись с другой записьювладельцем в том же групповом отношении.

Первоначально сетевая модель замышлялась как инструмент для программистов. В качестве базового языка программирования был выбран Cobol. Одна из первых сетевых моделей данных, разработанная группой CODASYL, была предложена в 1969 г. и развивалась до 80-х годов. К известным сетевым системам управления базами данных относятся: DBMS, IDMS, TOTAL, VISTA, СЕТЬ, СЕТОР, КОМПАС и др.

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

101

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

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

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

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

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

Реляционная модель базы данных была предложена американским математиком

Kоддом (Dr. Codd.). в 1969 году

Внастоящее время это самая распространенная модель баз данных .

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

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

Пусть заданы множества D1 , D2 , … Dn (n 1) необязательно различных.

N – арным отношением R называют подмножество декартова произведения

указных множеств D1 x D2 x … Dn.

 

Исходные множества D1 , D2 , … Dn

называются в модели доменами.

R D1 x D2 x … Dn

(1)

где D1 x D2 x … Dn - полное декартово произведение

Полное декартово произведение – это набор всевозможных сочетаний из n элементов, где каждый элемент берется из своего домена.

Пример:

102

D1 содержит номера трех заказов, D2 содержит набор из двух шифров фирм, D3 содержит три веса заказов.

D1 - {1021, 1022, 1023}

D2 - {АА, АС}

D3 - {100, 300, 120}

В этом случае полное декартово произведение содержит набор из 18 троек, где первый элемент – это один из номеров заказов, второй – это один из шифров фирмы, а третий – один из весов заказа.

<1021. АА. 100> <1021. АА. 300> <1022. АА. 100> <1022. АА. 300> <1023. АА. 100> <1023. АА. 300> <1021. АC. 100> <1021. АC. 300> <1022. АC. 100> <1022. АC. 300> <1023. АC. 100> <1023. АC. 300>

<1021. АА. 120> <1022. АА. 120> <1023. АА. 120> <1021. АC. 120> <1022. АC. 120> <1023. АC. 120>

Вхождение домена в отношение называется атрибутом. Строки отношения называются кортежами. Количество кортежей в отношении называется

мощностью отношения.

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

Таблица 1

R

Ном_зака

Шифр_

Вес_з

з

к

 

 

 

 

1021

АА

100

 

 

 

1021

АА

300

 

 

 

1021

АА

120

 

 

 

1021

АС

100

 

 

 

1021

АС

300

 

 

 

1021

АС

120

 

 

 

1022

АА

100

 

 

 

Таблица 2

R1

Ном_зака

Шифр_к

Вес_з

з

 

 

 

 

 

1021

АА

100

 

 

 

1022

АА

300

 

 

 

1023

АС

100

 

 

 

1023

АС

300

 

 

 

1023

АС

120

 

 

 

103

1022

АА

300

 

 

 

1022

АА

120

 

 

 

1022

АС

100

 

 

 

1022

АС

300

 

 

 

1022

АС

120

 

 

 

1023

АА

100

 

 

 

1023

АА

300

 

 

 

1023

АА

120

 

 

 

1023

АС

100

 

 

 

1023

АС

300

 

 

 

1023

АС

120

 

 

 

Теоретически всевозможные сочетания встречаются на практике редко, поэтому отношения могут моделировать реальную ситуацию. Например, отношение R может содержать только 5 строк (Сравним Таблицу 1- полное декартово произведение и реальную Таблицу 2).

Таким образом, существуют следующие соответствия в терминологии:

Отношение- таблица Атрибут– поле Кортеж - запись

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

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

Любая таблица реляционной (relationотношение) базы данных состоит из строк называемых также записями, и столбцов, называемых полями.

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

Пример:

104

Таблица Клиенты

Поля

 

Код

 

 

 

 

клиента

Клиент

Город

Улица

Записи

АА

БелТур

Минск

Правды 11

АБ

Сименс

Мюнхен

Лейбница 8

 

 

АС

ПМК –

Пуховичи

Широкая 1

 

 

23

 

 

 

АД

Атлант

Минск

Захарова 20

 

Данные в таблице удовлетворяют следующим принципам:

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

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

3.Каждая запись уникальна, т.е. в таблице не существует двух полностью совпадающих записей

4.Каждое поле имеет уникальное имя

5.Последовательность полей в таблице не существенна

6.Последовательность записей в таблице не существенна

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

Ключи и связи

Особенностью реляционных баз данных является то, что база данных состоит из нескольких таблиц.

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

105

В приведенном выше примере первичным ключом будет являться поле Код клиента.

Рассмотрим также таблицу Заказы

Номер

 

Дата

Вес

заказа

Код клиента

заказа

заказа

1021

АС

01.02.07

250

1022

АА

10.04.07

300

1023

АД

12.04.07

450

1024

АВ

20.05.07

200

1025

АС

01.06.07

600

1026

АД

10.07.07

550

 

 

 

 

Поле Код клиента этой таблицы содержит идентификатор клиента, разместившего конкретный заказ. Если мы хотим знать, как называется фирма, разместившая заказ, мы должны поискать это же значение идентификатора клиента поле Код клиента к таблицы Клиенты и в найденной строке прочесть значения поля Фирма. Иными словами, нам нужно связать две таблицы, Клиенты и Заказы.

Столбец, указывающий на запись в другой таблице, связанную с данной записью,

называется внешним ключом (foreign key).

В случае таблицы Заказы внешним ключом является столбец Код клиента.

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

Клиенты

 

Заказы

Код клиента (ПК)

 

Номер заказа

Клиент

 

Код клиента (ВК)

Город

 

Дата заказа

Улица

 

Вес заказа

Телефон

 

 

 

106

 

Подобное взаимоотношение между таблицами называется связью (relationsship). Связь между двумя таблицами устанавливается путем присвоения значения внешнего ключа одной таблицы значениям первичного ключа другой.

Таблица, содержащая внешний ключ, называется detail – таблицей, а таблица, содержащая первичный ключ, называется masterтаблицей.

Графическое изображение связи таблиц называется схемой данных.

Манипуляции с данными в базах данных, такие как выбор, вставка, удаление, обновление называются запросами к базе данных (query). Язык запросов называется SQL (Structured Query Language). Более подробно язык SQL будет изучаться в следующих лекциях.

Реляционная (ссылочная) целостность.

Основное правило реляционной (ссылочной) целостности гласит:

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

СУБД должна контролировать уникальность первичных ключей. При попытке присвоить первичному ключу значение, уже имеющееся в другой записи, СУБД генерирует сообщение об ошибке первичного ключа. Если две таблицы связаны отношением masterdetail, то внешний ключ должен содержать только те значения, которые уже имеются среди значений первичного ключа master– таблицы. Если СУБД не контролирует значение внешних ключей, то может произойти нарушение ссылочной целостности. Например, если из таблицы Клиенты удалить запись, имеющую хотя бы одну запись в таблице Заказы, то в таблице Заказы окажутся записи о заказах, размещенных неизвестно кем. В случае контроля ссылочной целостности со стороны СУБД генерируется сообщение об ошибке внешнего ключа либо при попытке присвоить внешнему ключу значение, отсутствующее среди значений первичных ключей, либо при удалении или модификации записей master – таблицы. Большинство современных СУБД контролируют ссылочную целостность.

Отношения между данными в базе данных

Данные об объектах в базе данных связаны между собой отношениями (связями).

Существуют четыре основных типа отношений.

1. Отношение один- к- одному (1:1) означает, что каждому экземпляру объекта А может соответствовать только один экземпляр объекта В и наоборот.

107

Пример: ФАКУЛЬТЕТ : ДЕКАН

2. Отношение одинко- многим (1: М ) означает, что каждому экземпляру объекта А может соответствовать несколько экземпляров объекта В, но каждому экземпляру объекта В может соответствовать только один экземпляр объекта А.

Пример: ФАКУЛЬТЕТ : СТУДЕНТЫ

3. Отношение многие- к- одному (М: 1) означает, что каждому экземпляру объекта А может соответствовать только один экземпляр объекта В, но каждому экземпляру объекта В может соответствовать несколько экземпляров объекта А.

Пример: СТУДЕНТЫ : ФАКУЛЬТЕТ

4. Отношение многиеко- многим (M: N) означает, что каждому экземпляру объекта А может соответствовать много экземпляров объекта В и наоборот

Пример: ПРЕПОДАВАТЕЛИ : ПРЕДМЕТЫ

ПОСТРЕЛЯЦИОННАЯ, МНОГОМЕРНАЯ И ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ МОДЕЛИ ДАННЫХ

Постреляционная модель

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

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

·Данные в реляционной системе пассивны, и для описания их поведения требуется создавать прикладные программы.

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

108

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

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

Сопоставим реляционную и постреляционную модели данных на примере. В таблицах 7 и 8 отражена поставка товара в реляционной базе, а в таблице 9 – в постреляционной. Как видно из приведенного примера, в постреляционной базе данные хранятся более компактно, и не требуется выполнять операции связи двух таблиц. Такое хранение обеспечивает высокую наглядность представления данных и повышение эффективности их обработки.

Таблица 7

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

109

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

Постреляционная модель данных реализована в СУБД uniVers, Bubba и Dasdb.

Многомерная модель

Одновременно с реляционной моделью данных появилась многомерная модель. Однако хоть идеи многомерной модели возникли одновременно с реляционной, но в ту пору практической реализации таких моделей не было. И лишь в 90-х годах ХХ века к ним стал проявляться интерес. Это было вызвано появлением статьи Э. Кодда, в которой он сформулировал 12 требований к системам класса OLAP (Online Analytical Processing – оперативная аналитическая обработка), связанных с возможностью представления и обработки многомерных массивов.

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

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

Основными понятиями для многомерной модели являются: агрегируемость,

историчность, прогнозируемость.

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

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

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

110