2.1 Выбор логической модели
Хранимые в базе данные имеют определённую логическую структуру, то есть модель. Различают следующие основные модели представления данных в базе данных:
- иерархическую
- сетевую
- реляционную
- объектно-ориентированную
В иерархической модели данные представляются в виде древовидной иерархической структуры./3/ Достоинством данной модели является возможность реализовать очень быстрый поиск, когда условия запроса соответствуют иерархии в схеме БД, однако при работе с данными со сложными логическими связями иерархическая модель оказывается слишком громоздкой.
В сетевой модели данные организуются в виде произвольного графа./4/ Достоинством этой модели является высокая скорость поиска и возможность адекватно представлять данные для решения множества задач в самых различных предметных областях. Высокая скорость поиска основывается на классическом способе реализации сетевой модели - на основе списков. Недостатком сетевой модели является жесткость структуры и высокая сложность ее организации.
Кроме того, существенным недостатком иерархической и сетевой моделей является то, что структура данных задается на этапе проектирования БД и не может быть изменена при организации доступа к данным.
Реляционная модель получила свое название от английского термина relation (отношение) и была предложена в 1970-х годах сотрудником фирмы IBM Эдгаром Коддом. Реляционная БД представляет собой совокупность таблиц, связанных отношениями. Разница между таблицей в привычном смысле и понятием отношения заключается в том, что в отношении нет порядка - это неупорядоченное множество записей. Порядок определяется не отношением, а конкретной выборкой из отношения. Связь между таблицами существует на логическом уровне и определяется предметной областью. Практически связь между таблицами устанавливается путем использования логически связанных данных в разных таблицах.
Для работы с реляционными СУБД используется стандартизированный язык структурированных запросов SQL.
Достоинствами реляционной модели данных являются простота, гибкость структуры, удобство реализации на компьютере, высокая стандартизованность и использование математического аппарата реляционной алгебры и реляционного исчисления.
К недостаткам можно отнести атомарность, ограниченность и предопределенность набора возможных типов данных. Это затрудняет использование реляционных моделей для некоторых современных приложений. Названная проблема решается расширением реляционных моделей в объектно-реляционные.
В объектно-реляционной модели отдельные записи база данных представляются в виде объектов. Между записями базы данных и функциями их обработки устанавливаются взаимосвязи с помощью механизмов, подобных соответствующим средствам в объектно-ориентированных языках программирования. Объектно-ориентированные модели сочетают особенности сетевой и реляционной моделей и используются для создания крупных БД со сложными структурами данных.
Перейти к иерархической модели данных сложно, ввиду сложности реализации сложных связей через древовидные структуры (хотя реализация части сущностей и связей иерархии (см.п.1.6) через данную логическую модель достаточно просто). Гораздо больше подходит сетевая модель данных, однако мы выбираем реляционную модель, потому что
· представление данных в виде двухмерных таблиц проще, чем виде списков;
· большинство современных СУБД поддерживают реляционную модель данных, что облегчает нам выбор СУБД;
· реляционная модель проста, обладает гибкой структурой, удобна для реализации на компьютере.
Выбор объектно-реляционной модели решил бы проблемы с реализацией связей, однако возникли бы неоправданные проблемы с созданием математического представления и выбором СУБД./4/ Принимая во внимание всё вышесказанное, делаем выбор - реляционная модель данных.
2.2 Основные понятия
Реляционная модель данных - это представление данных в виде совокупности двумерных таблиц./4/
Свойства двумерных таблиц:
1) каждый элемент таблицы представляет собой один элемент данных, т.е. список не может быть значением;
2) все столбцы в таблице однородные, т.е. элементы столбца одной природы;
3) столбцам однозначно присвоены имена;
4) в таблице нет двух одинаковых строк;
5) строки и столбцы таблиц могут просматриваться в любом порядке, без учета их содержания и смысла.
Для математического описания реляционной модели нам понадобятся следующие понятия
Атомарные данные - это наименьшие единицы данных неразложимые с точки зрения модели.
Домен - это множество атомарных значений одного и того же типа.
Атрибут - это некоторое подмножество домена, имеющее уникальное имя.
Отношение на доменах D1, D2, ..Dn состоит из заголовка и тела.
R (A1, A2, ..An) D1D2D3
Заголовок состоит из такого фиксированного множества атрибутов
А1, A2, ..An , что существует отношение между атрибутами и их доменами.
Тело состоит из меняющихся во времени множества кортежей.
Кортеж состоит из значений каждого атрибута по одному значению на атрибут./6/
Таблица в реляционной теории соответствует отношению.
Строке соответствует кортеж.
Столбцу - атрибут.
Введем понятие ключа отношения.
Пусть А - множество атрибутов отношения
А = A1, A2,..An и пусть k - это подмножество А
k A
Возможным ключом отношения R является такое подмножество k, которое удовлетворяет следующему условию:
1) в произвольный момент времени никакие два различных картежа не имеют одного и того же значения для k
2) ни один из атрибутов не может быть исключен из k без нарушения первого условия.
2.3 Проектирование реляционной модели
Существует два основных метода проектирования реляционной модели:
1. метод декомпозиции (используется при количестве ключевых атрибутов не более 20);
2. на основе концептуальной модели.
Так как концептуальная модель уже построена, то воспользуемся вторым методом. Для осуществления перехода к реляционной модели необходимо рассмотреть некоторые алгоритмы перехода.
Алгоритмы перехода от концептуальной модели к реляционной
1. Реализация частичной связи для одной сущности (рис.2.1).
Рис 2.1
В этом случае строится два отношения по одному на каждую сущность. Ключ сущности с необязательной связью добавляется в качестве атрибута в отношении для сущности с обязательной связью.
2. Реализация бинарной связи один-ко-многим (рис.2.2)
Рис.2.2
В этом случае строится 2 отношения, при этом ключ односвязной сущности добавляется в отношение для многосвязной сущности.
По описанным выше алгоритмам получаем реляционную модель. В полученной модели есть ряд фиктивных отношений, предназначенных для реализации некоторых связей, организации целостности данных и выполнимости запросов (см.п.1.3).
3. МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ РЕЛЯЦИОННОЙ МОДЕЛИ
3.1 Описание доменов
Математическое описание реляционной модели необходимо для облегчения пользователю задачи написания программ ее реализации на разных языках программирования.
Введем следующие понятия:
Length(x) - функция, возвращающая значение длины x;
String(x) - функция определения длины строки х;
Dom(x) - домен атрибута х;
По результатам описания сущностей (см.п.1.4) и созданной реляционной модели (см.п.2.3), можно сделать вывод о типичности отношений, что позволяет нам не описывать все отношения, а остановиться на конкретных примерах.
Текстовые атрибуты
К таким атрибутам можно отнести, например, атрибуты "Наименование заказчика" или "Адрес" и подобные им.
Dom (Отношение. Текстовый атрибут) = String(x); где x - цепочка следующих друг за другом символов.
{String(x) = true, если Length(x) < С} or {String(x) = false, если Length(x) С},
где С-константа.
Её можно взять из таблицы атрибутов (см.табл.1.2). Приведём два примера.
1. Dom (Заказчики. Наименование заказчика) = x ;
где x - цепочка следующих друг за другом символов.
{String(x) = true, если Length(x) < 20} or {String(x) = false, если Length(x) 20}
2. Dom (Поставщики. Адрес) = x ; где x - цепочка следующих друг за другом символов.
Это правило распространяется на все текстовые атрибуты. Отличие заключается в ограничение на длину строки. Конкретную цифру получаем из таблицы атрибутов в столбце "Метод контроля" (см.табл.1.2).
Числовые атрибуты
К этой категории относят атрибуты отношений, например "Код поставщика", "Цена", "Количество" и т.д. Домены числовых атрибутов записываются так:
Dom (Отношение. Числовой атрибут) = {с1..с2}, где с1 и с2 - соответственно начало и конец диапазона.
Например,
Dom (Заказчики. Код заказчика) = {0…10000}.
Диапазон значений {с1..с2} определяется для каждого атрибута описан в таблице атрибутов в столбце "Метод контроля" (см.табл.1.2).
Атрибуты Дата/Время
К этой категории относят атрибуты "Дата накладной", "Дата оформления счета", "Дата договора" и т.д.
Домены атрибутов Дата/Время записываются так:
Dom (Отношение. Атрибут Дата/Время) = {с1..с2},
где с1 и с2 - соответственно начало и конец диапазона.
Приведём примеры с атрибутами "Дата накладной", "Дата оформления счета"
Dom (Накладная. Дата накладной) = 01.01.1996 x 31.12.2025
Dom (Счет. Дата оформления счета) = 01.01.1996 x 31.12.2025
Страницы: 1, 2, 3, 4