Виды моделей данных
Архитектура БД
Схема КМД – это описание структуры модели данных с точки зрения администратора.
Схема ВМД – это описание внутренней или физической модели. Здесь хранится описание физического расположения данных на носителях. Схема хранит прямые указания на размещение данных в памяти (томах, дисках).
Схема КМД описывает структуру данных, записей и полей.
Все СУБД поддерживают три основных вида моделей данных:
1. Иерархическая модель. Она предполагает некоторую корневую запись. От корней идут ветви.
Не все объекты удобно описывать подобным образом. В иерархии нет связей и характерна большая избыточность информации.
2. Сетевая модель. Позволяет правильно отобразить все сложности взаимосвязей.
Модель удобна для представления связей с данными внешней среды, но менее удобна для описания в БД, что приводит к дополнительному труду пользователя по изучению навигации по связям.
3. Реляционная модель. В основе лежит математический термин Relation – отношение, а попросту – таблица. Например, прямоугольная двухмерная.
Реляционная структура данных была разработана в конце 60-х годов рядом исследователей, из которых наиболее значимый вклад внес сотрудник фирмы IBM Эдгар Кодд. При реляционном подходе данные представляются в виде двумерных таблиц – наиболее естественном для человека. В то же время, для обработки данных Кодд предложил использовать аппарат теории множеств – объединение, пересечение, разность, декартово произведение.
Тип данных – это понятие имеет такой же смысл, как и в языках программирования (т.е. тип данных определяет внутреннее представление в памяти компьютера и способ хранения экземпляра данных, а также множество значений, которые может принимать экземпляр данных и множество допустимых операций над данными). Все существующие современные базы данных поддерживают специальные тины данных, предназначенные для хранения данных целого типа, дробного с плавающей точкой, символов и строк, календарных дат. У многих серверов баз данных реализованы и другие типы, например, у сервера Interbase имеется специальный тип данных для хранения крупных массивов бинарной информации (BLOB).
Домен – это потенциальное множество значений простого типа данных, он имеет сходство с подтипом данных в некоторых языках программирования. Домен определяется двумя элементами – типом данных и логическим выражением, которое применяется к данным. Если результат этого выражения равен значению «истина», то экземпляр данных принадлежит домену.
Отношение – это двумерная таблица особого вида, состоящая из заголовка и тела.
Заголовок – это фиксированное множество атрибутов, каждый из которых определен на каком-то домене, причем между атрибутами и определяющими доменами существует взаимно однозначное соответствие.
Каждый из атрибутов определен на своем домене. Домен представляет собой тип данных «целый», а логическое условие - n>0. Заголовок является неизменным во времени, в отличие от тела отношения. Тело отношения – это совокупность кортежей, каждый из которых представляет собой пару «атрибут - значение».
Мощностью отношения называется число его кортежей, а степенью отношения – число атрибутов.
Степень отношения является для данного отношения величиной постоянной, тогда как мощность отношения изменяется во времени. Мощность отношения еще называют кардинальным числом.
Приведенные выше понятия являются теоретическими и используются при разработке языковых средств и программных систем реляционных СУБД. В повседневной работе вместо них используются их неформальные эквиваленты:
отношение – таблица;
атрибут- колонка или поле;
кортеж - запись или строка.
Таким образом, степень отношения – это число колонок в таблице, а кардинальное число - количество строк.
Так как отношение представляет собой множество, а в классической теории множеств по определению множество не может содержать совпадающих элементов, то у отношения не может быть двух одинаковых кортежей. Поэтому для данного отношения всегда существует набор атрибутов, однозначно идентифицирующих кортеж. Такой набор атрибутов называетсяключом.
Ключ должен удовлетворять следующим требованиям:
· должен быть уникальным;
· должен быть минимальным, то есть удаление любого атрибута из ключа ведет к нарушению уникальности.
Как правило, число атрибутов в ключе меньше степени отношения, однако, в крайнем случае, ключ может содержать все атрибуты, так как комбинация всех атрибутов удовлетворяет условию уникальности. Обычно отношение имеет несколько ключей. Из всех ключей отношения (их еще называют «возможными ключами») один выбирается в качестве первичного ключа. При выборе первичного ключапредпочтение обычно отдается ключу с наименьшим числом атрибутов. Нецелесообразно также использовать ключи с длинными строковыми значениями.
На практике в качестве первичного ключа часто применяют специальный числовой атрибут - автоинкрементное ноле, значение которого может генерироваться триггером (триггер – специальная процедура, вызывающаяся в момент внесения изменений в БД) или специальными средствами, определенными в механизме СУБД.
Описанные в данной главе основные понятия не относятся к какой-либо конкретной реализации базы данных, а являются общими для них всех. Таким образом, эти понятия являются основой определенной общей модели, которая называется реляционной моделью данных.
Основатель реляционного подхода Дейт установил, что реляционная модель состоит из трех частей:
· структурной;
· манипуляционной;
· целостной.
В структурной части модели фиксируются отношения, как единственная структура данных, используемая в реляционной модели.
В манипуляционной части фиксируются два базовых механизма манипулирования реляционными базами - реляционная алгебра и реляционное исчисление.
Под целостной частью понимают некий механизм обеспечения не разрушаемости данных. Целостная часть заключает в себе два основных требования целостности реляционных баз данных - целостность сущностей и целостность по ссылкам.
Требование целостности сущностей состоит в том, что любой кортеж любого отношения должен быть отличим от любого другого кортежа этого отношения, то есть другими словами, любое отношение должно обладать первичным ключом. Это требование должно выполняться, если выполняются базовые свойства отношений.
Требование целостности по ссылкам - это ограничение, налагаемое на реляционную базу данных вследствие того, что отношения в базе данных ассоциированы друг с другомсвязями.
В языке манипулирования данными, а также на языке запросов, исполняется математический аппарат, называемый алгеброй отношений, для определены следующие действия:
1. Стандартные операции: – пересечение, – объединение, \ – разность, X – декартово произведение.
2. Специфические: проекция, ограничение, соединение, деление.
Примеры:
a. Объединение.
ШД ШМ ЕИ НР
R1(шифр детали, шифр материала, единицы измерения, норма расхода)
R2(ШД, ШМ, ЕИ, НР)
Необходимо найти
Предполагается присоединение множеств R1 и R2. В этой операции степень сохраняется, а мощность результирующего множества
b. Пересечение.
- выделение совпадающих строк.
Мрез = 1
c. Разность.
- исключение из R1 кортежей, совпадающих с R2.
d. Декартово произведение.
Здесь производится конкатенация кортежей .
Каждая строка одного множества конкатенирует с каждой строкой другого.
Даны два множества:
Декартово произведение имеет следующий вид:
В этом случае S-степень равна , а , т.е. получится 12 строк и 5 столбцов.