Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Топчий_Отчет.doc
Скачиваний:
9
Добавлен:
13.08.2019
Размер:
4 Мб
Скачать
☆

4. Базы данных. Модели представления данных

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

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

Структурирование - это введение соглашений о способах представления данных.

Неструктурированными называют данные, записанные, например, в текстовом файле.

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

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

инструментария - системы управления базами данных.

База данных (БД) - это поименованная совокупность структурированных данных, относящихся к определенной предметной области.

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

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

Базы данных классифируются по нижеприведенным критериям.

1. По технологии обработки данных базы данных подразделяются на централизованные и распределенные.

Централизованная база данных хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Такой способ использования баз данных часто применяют в локальных сетях ПК.

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

2. По способу доступа к данным базы данных разделяются на базы данных с локальным доступом и базы данных с удаленным (сетевым) доступом.

Системы централизованных баз данных с сетевым доступом предполагают различные архитектуры подобных систем:

• файл-сервер;

• клиент-сервер.

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

рабочих станциях локальные БД, которые используются ими монопольно.

Клиент-сервер. В этой концепции подразумевается, что помимо хранения централизованной базы данных центральная машина (сервер базы данных) должна обеспечивать выполнение основного объема обработки данных. Запрос на данные, выдаваемый клиентом (рабочей станцией), порождает поиск и извлечение данных на сервере. Извлеченные данные (но не файлы) транспортируются по сети от сервера к клиенту. Спецификой архитектуры клиент-сервер является использование языка запросов SOL.

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

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

Имя. Например: Фамилия, Имя, Отчество, Дата рождения;

Тип. Например: символьный, числовой, календарный;

Длина. Например, 15 байт, причем будет определяться максимально

возможным количеством символов;

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

отображения дробной части числа.

Запись - совокупность логически связанных полей.

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

Таблица (файл) - совокупность экземпляров записей одной структуры.

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

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

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

Модель данных — совокупность структур данных и операций их обработки [4].

Существует три основных типа моделей данных: иерархическая, сетевая и реляционная.

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

  2. сетевая.

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

Иерархическая модель данных строится по принципу иерархии типов объектов, т.е. один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, - подчиненными. Между главным и подчиненными типами устанавливается взаимосвязь “один ко многим”. Иными словами, для данного главного типа объекта существует несколько подчиненных типов объекта. В то же время для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Таким образом, взаимосвязи между объектами напоминают взаимосвязи в генеалогическом дереве.

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

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

  1. Самый верхний уровень иерархии имеет один узел, называемый корнем.

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

Иерархическая древовидная структура всегда удовлетворяет следующим условиям:

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

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

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

4. Каждый узел, находящийся на уровне n+1, соединен с одним и только одним узлом на уровне n.

5. Исходный узел может иметь в качестве зависимых один или несколько порожденных узлов. Если узел не имеет ни одного зависимого узла, он не является исходным.

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

7. Возможно существование любого числа экземпляров узлов каждого уровня. Каждый экземпляр узла (за исключением корневого) соединен с экземпляром исходного узла, т.е. может существовать много экземпляров узла А. Каждый экземпляр узла А начинает логическую запись. Для каждого экземпляра узла А может существовать нуль, один или несколько экземпляров узла В и т.д [10].

Кнут дал следующее рекурсивное определение дерева: "конечное множество Т, состоящее из одного или более узлов, таких, что:

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

  2. остальные узлы (кроме корня) содержаться в m>=0 попарно не пересекающихся множествах Tl,...,Tm, каждое из которых в свою очередь является деревом. Деревья Tl,...,Tm называются поддеревьями данного корня.

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

Рисунок 4.1 - Пример данных в иерархической форме

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

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

Все атомы одного уровня в этой модели данных имеют одинаковую структуру и тип. Иерархическая модель данных — это частный случай сетевой модели данных.

В сетевой модели данных понятия главного и подчиненных объектов несколько расширены. Любой объект может быть и главным, и подчиненным (в сетевой модели главный объект обозначается термином “владелец набора”, а подчиненный – термином “член набора”). Один и тот же объект может одновременно выступать и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей [11].

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

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

Сетевая модель данных основывается на возможностях графов. Единственной структурой данных является граф.

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

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

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

№ дома

№ дома

Рисунок 4.2 – Пример данных в сетевой форме

Основные операции над данными – это навигационные операции в сети

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

Концепция реляционной модели данных была предложена Е.Ф. Коддом в 1970 году в связи с решением задачи обеспечения независимости представления и описания данных от прикладных программ [11].

Основной структурой данных является отношение (таблица), где колонки - свойства объектов из некоторой предметной области (атрибуты), строки - объекты (кортежи). Сама таблица является описанием предметной области.

№

Продукт

Энергетическая ценность

1

Шоколад

550

2

Мороженое

228

3

Чай

0

Рисунок 4.3 - Пример данных в реляционной форме

В теории отношений особое значение имеет понятие домена.

Домен - это пул значений, из которого извлекаются фактические значения, появляющиеся в данном столбце. Основным свойством реляционных структур данных является то, что связи между кортежами представлены исключительно значениями данных в столбцах, полученных из их общего домена. Особенность реляционного подхода в действительности состоит в том, что вся информация в базе данных, как "объекты", так и "связи" представлена в единой, унифицированной форме, а именно в форме таблиц. Этим свойством не обладают иерархический и сетевой подходы [5].

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

Число операций над данными в реляционной модели достигает сотни. Среди них выделяют следующие группы:

  1. навигационные (open, close, create table и др.);

  2. спецификационные (find, select, next, go top и др.);

  3. теоретико-множественные (проекция, селекция и пр.).

Отношения реляционной БД в зависимости от содержания подразделяются на два класса: объектные отношения и связные отношения.

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

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

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

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

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

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

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

  5. Должна соблюдаться ссылочная целостность для внешних ключей.

  6. Порядок следования строк в таблице несущественен, так как влияет лишь на скорость доступа к строке.

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

Состав атрибутов отношений базы данных должен удовлетворять двум основным требованиям:

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

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

Удовлетворение этих требований достигается нормализацией отношений БД. Нормализация отношений - это пошаговый, обратимый процесс декомпозиции (разложения) исходных отношений БД на другие, более мелкие и простые отношения. Аппарат нормализации отношений был разработан Е. Ф. Коддом. В нем определяются различные нормальные формы. Каждая нормальная форма ограничивает типы допустимых функциональных зависимостей отношения. Кодд выделил три нормальные Формы (1НФ, 2НФ, ЗНФ). Сегодня уже определены 4НФ, 5НФ.

Отношение приведено к 1НФ, если все его атрибуты простые (атомарные) [5].