Лекция 4. Иерархическая, сетевая, реляционная модель данных: определение, элементы данных. Типы моделей данных Ядром любой БД является модель данных. Модель данных – это совокупность структуры данных и операций их обработки. Кратко рассмотрим основные виды моделей данных и выявим их основные преимущества и недостатки, при этом будем учитывать факторы, характеризующие принципиальные особенности моделей, а также факторы, связанные с реализацией этих моделей на ЭВМ. 1. Иерархическая модель данных. Представляет собой совокупность элементов, связанных по строго определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф. Основными понятиями иерархической модели данных являются: уровень, узел (или элемент) и связь. Такая модель данных обладает следующими свойствами: каждый узел связан только с одним вышестоящим узлом, кроме вершины; иерархическая модель данных имеет только одну вершину, узел не подчинен более никаким узлам; от каждого узла существует единственный путь к вершине; связь не может быть установлена между объектами, находящимися через уровень; связь между узлами первого уровня не определяется. Примеры: 1) Файловая структура организации информации. 2) Структура организации (директор, заместитель, руководители отделов, сотрудники) (рис.1). Рисунок 1. Иерархическая структура данных Преимущества: 1. Простота. 2. Минимальный расход памяти. Недостатки: 1. Отсутствие универсальности – не всякую информацию можно выразить в иерархической модели данных. 2. Исключительно навигационный принцип доступа к данным. 3. Доступ к данным только через корневой элемент. 2. Сетевая модель данных. Элементами этой модели являются: уровень, узел, связь. Отличия в том, что элемент одного уровня может быть связан с любым количеством элементов соседнего уровня, и не существует подчиненности уровней друг другу. Свойства сетевой модели: связь не может быть установлена между объектами, находящимися через уровень; связь между узлами первого уровня не определяется. Пример. Рассмотрим работу над проектами: можно выделить три вида объектов – сотрудники, проекты, заказчики (рис. 2). Рисунок 2. Сетевая структура данных Преимущества: 1. Универсальность. 2. Возможность доступа к данным через значения нескольких отношений. Недостатки: 1. Сложность – обилие понятий, вариантов их взаимосвязей и способов реализации. 2. Допустимость только навигационного принципа доступа к данным. 3. Реляционная модель данных (табличная). Это способ представления данных в виде таблиц. Элементы: поле (столбец), запись (строка) и таблица (отношение). В дальнейшем мы будем рассматривать именно реляционную модель данных, которая используется в реляционных системах. Под реляционной системой понимается система, основанная на следующих принципах: данные пользователя представлены только в виде таблиц; пользователю предоставляются операторы, генерирующие новые таблицы из старых (для выборки данных). Преимущества: 1. Простота. В такой модели всего одна информационная конструкция, формализующая табличное представление. Она наиболее привычна для пользователя. 2. Теоретическое обоснование. Существуют строгие методы нормализации данных в таблицах (будет подробно рассмотрено в лекциях 10-11). 3. Независимость данных. При изменении БД, ее структуры необходимы бывают лишь минимальные изменения прикладных программ. Недостатки: 1. Низкая скорость, т.к. требуются операции соединения. 2. Большой расход памяти в силу организации всех данных в виде таблиц. Реляционная модель данных Реляционная модель данных - созданная Эдгаром Коддом логическая модель данных, описывающая: структуры данных в виде (изменяющихся во времени) наборов отношений; теоретико-множественные операции над пересечение разность и декартово произведение; данными: объединение, специальные реляционные операции: селекция, проекция, соединение и деление; специальные правила, обеспечивающие целостность данных. Реляционная модель данных — это способ рассмотрения данных, то есть предписание для способа представления данных (посредством таблиц) и для способа работы с таким представлением (посредством операторов). Она связана с тремя аспектами данных: структурой (объекты), целостностью и обработкой данных (операторы). Цели создания реляционной модели данных: обеспечение более высокой степени независимости от данных; создание прочного фундамента для решения семантических вопросов и проблем непротиворечивости и избыточности данных; расширение языков управления данными за счёт включения операций над множествами. Структура данных в реляционной модели данных Реляционная модель данных предусматривает структуру данных, обязательными объектами которой являются: отношение; атрибут; домен; кортеж; степень; кардинальность; первичный ключ. Отношение — это плоская (двумерная) таблица, состоящая из столбцов и строк: Атрибут — это поименованный столбец отношения. Домен — это набор допустимых значений для одного или нескольких атрибутов. Кортеж — это строка отношения. Степень определяется количеством атрибутов, которое оно содержит Кардинальность — это количество кортежей, которое содержит отношение. Первичный ключ — это уникальный идентификатор для таблицы. Соответствие между формальными терминами реляционной модели данных и неформальными: отношение (формальный термин) - таблица (неформальный термин); атрибут - столбец; кортеж - строка или запись; степень - количество столбцов; кардинальное число - количество строк; первичный ключ - уникальный идентификатор; домен - общая совокупность допустимых значений. Ключи отношения в реляционной модели данных Ключи отношения могут быть следующими: суперключ; потенциальный ключ; первичный ключ; внешний ключ; суррогатный ключ. Ключ отношения — это подсхема исходной схемы отношения, состоящая из одного или нескольких атрибутов, для которых декларируется условие уникальности значений в кортежах отношений. При объявлении схемы базового отношения могут быть заданы объявления нескольких ключей. Ключ отношения может быть простым или составным. Простой ключ – это ключ, состоящий из одного и не более атрибута. Составной ключ -ключ, состоящий из двух и более атрибутов. Суперключ — это атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения. Он может включать дополнительные атрибуты. Суперключ не обладает свойством неизбыточности. Потенциальный ключ — это подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и неизбыточности. Он обладает следующими свойствами. Уникальность: в таблице нет двух разных строк с одинаковыми значениями в нашем потенциальном ключе. Неизбыточность: нельзя убрать один из столбцов из ключа, так, чтобы он не потерял уникальности. В отношении может быть больше одного потенциального ключа. Первичный ключ (primary key, PK) — это один из потенциальных ключей отношения, выбранный в качестве основного ключа. Допустимо объявление одного и только одного первичного ключа. Атрибуты первичного ключа не могут принимать значения Null. Внешний ключ (foreign key, FK) — это ключ, объявленный в базовом отношении, который при этом ссылается на первичный того же самого или какого-то другого базового отношения. Суррогатный ключ — это служебный атрибут, добавленный к уже имеющимся информационным атрибутам отношения. Предназначение суррогатного ключа - служить первичным ключом отношения. Значение этого атрибута генерируется искусственно. Целостность данных в реляционной модели данных Понятия реляционной целостности: определитель NULL; целостность сущностей; ссылочная целостность; корпоративные ограничения целостности. Определитель NULL. Значение Null обозначает тот факт, что значение не определено. Null не принадлежит никакому типу данных и может присутствовать среди значений любого атрибута, определенного на любом типе данных. Двуместная «арифметическая» операция с Null даёт Null. Операция сравнения с Null даёт UNKNOWN. Целостность сущностей. Требование целостности сущности означает, что первичный ключ должен полностью идентифицировать каждую сущность, а поэтому в составе любого значения первичного ключа не допускается наличие неопределенных значений. Значение атрибута должно быть атомарным. Ссылочная целостность. Требование целостности по ссылкам состоит в том, что для каждого значения внешнего ключа, появляющегося в кортеже значения-отношения ссылающейся переменной отношения, либо в значенииотношении переменной отношения, на которую указывает ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть полностью неопределенным. Существуют правила удаления кортежа из отношения, на которое ведет ссылка. Ссылочная целостность: удаление кортежа. Существует три подхода удаления кортежа из отношения, на которое ведет ссылка. 1. Ограничение удаления–Delete: Restrict. 2. Каскадное удаление–Delete: Cascade. 3. Установка значения NULL, перевод значения внешнего ключа в неопределённое состояние – Delete: Set NULL. Ограничение удаления. Запрещается производить удаление кортежа, для которого существуют ссылки. Сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа. Каскадное удаление. При удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи. Установка значения NULL. При удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится полностью неопределенным.