Similar presentations:
! модели данных (2)
1. Модели данных
2. Модели данных
• Модель данных – это формализованноеописание, отражающее состав и типы
данных, а также взаимосвязь между ними
• Модель данных состоит из трех частей:
– Набора типов структур данных
– Множества допустимых операций, выполняемых в
структуре данных
– Ограничения для контроля целостности данных
3. Типы структур
• Структурированная запись базируетсяна использовании концепций
«агрегации» и «обобщения».
• Один из первых вариантов
структуризации данных был предложен
Ассоциацией по языкам обработки
данных (Conference of Data Systems
Languages, CODASYL)
Элемент
данных
Агрегат
данных
Запись
Набор
База
данных
4. Типы структур
• Элемент данных – наименьшаяпоименованная единица данных, к
которой СУБД может обращаться
непосредственно и с помощью которой
выполняется построение всех
остальных структур.
• Для каждого элемента данных должен
быть определен его тип
5. Типы структур
• Агрегат данных – поименованнаясовокупность элементов данных внутри
записи, которую можно рассматривать
как единое целое.
• Агрегат может быть простым (включает
только элементы данных) и составным
(включает элементы данных и другие
агрегаты)
6. Типы структур
• Агрегат данных .А(предприятие)
А(дата)
число
месяц
А(название)
год
название
А(адрес)
индекс
город
улица
и дом
7. Типы структур
• Запись – поименованная совокупностьэлементов и агрегатов данных.
• Запись – это агрегат, не входящий в
состав других агрегатов
• Различают понятия тип записи (ее
структура) и экземпляр записи (т.е.
запись с конкретными значениями
элементов данных)
• Одна запись описывает свойства одной
сущности ПО
8. Типы структур
• Запись.№
А
Дата
Паспорт Пол
пропуска (ФИО) рождения
Должность
индекс
фамилия
имя
отчество
Оклад
А
(адрес)
город
улица
и дом
9. Типы структур
• Среди полей записи выделяются одно илинесколько ключевых полей.
• Значения ключевых полей позволяют
классифицировать сущность, к которой
относится конкретная запись.
• Потенциальный ключ – это любой из ключей
записи
• Один из ключей назначается первичным,
остальные являются вторичными.
• Значение первичного ключа должно быть
уникальным и обязательным для записей одного
типа
10. Типы структур
• Набор (групповое отношение)–поименованная совокупность записей,
образующих двухуровневую структуру.
• Каждый тип набора представляет собой
связь между двумя или несколькими
типами записей.
• Для каждого типа набора один тип
записи объявляется владельцем
набора, остальные – членами набора.
11. Типы структур
• Набор (групповое отношение)–• Каждый экземпляр набора должен
содержать только один экземпляр типа
владельца и столько экземпляров
записей типа членов набора, сколько их
связано с владельцем.
• Для группового отношения также
различают тип и экземпляр.
12. Типы структур
• Наборы (групповые отношения) удобноизображать с помощью диаграммы Бахмана.
• Диаграмма Бахмана представляет собой
ориентированный граф: вершины – типы записей,
дуги – наборы (групповые отношения)
Поликлиники
Организации
работают
диспансеризация
Жители
проживают
Квартиры
Ремонтно-эксплуат.
управления
обслуживают
13. Типы структур
• База данных – поименованная совокупностьэкземпляров групп и групповых отношений.
Это самый высокий уровень структуризации.
• Примечание: структуризация данных по
версии CODASYL используется в сетевой и
иерархической моделях данных. В
реляционной модели принята другая
структуризация, основанная на теории
множеств
14. Операции над данными
• Модель данных определяет множестводействий, которые допустимо производить
над некоторой реализацией БД для ее
перевода из одного состояния в другое.
• Это множество соотносят с языком
манипулирования данными (Data
Manipulation Language, DML)
• Любая операция над данными включает в
себя селекцию данных (select)
• Условие селекции – это некий критерий
отбора данных
15. Операции над данными
По типу производимых действий различаютследующие операции:
• Идентификация данных и нахождение их
позиции в БД
• Выборка (чтение) данных из БД
• Включение (запись) данных в БД
• Удаление данных из БД
• Модификация данных БД
16. Операции над данными
• Обработка данных в БД осуществляется спомощью процедур БД – транзакций
• Транзакция – это упорядоченное множество
операций, переводящих БД из одного
согласованного состояния в другое.
• Транзакция либо выполняется полностью,
т.е. выполняются все входящие в нее
операции, либо не выполняется совсем, если
в процессе ее выполнения возникает ошибка.
17. Ограничение целостности
• Это правила, которым должны удовлетворятьзначения элементов данных.
• Ограничения целостности (integrity constraint)
делятся на внутренние и явные.
Определение
• Ограничения, обусловленные возможностями
конкретной СУБД, называют «внутренними
ограничениями целостности»
Определение
• Ограничения, обусловленные особенностями
хранимых данных о конкретной ПО, называют
«явными ограничениями целостности»
18. Ограничение целостности
• За выполнением целостности следит СУБД впроцессе своего функционирования: если какаялибо команда нарушает ограничение
целостности, она не будет выполнена и система
выдаст соответствующее сообщение об ошибке.
• Ограничения целостности обеспечивают
логическую непротиворечивость данных при
переводе БД из одного состояния в другое.
19. Модели данных
• Модели первого поколения– Иерархическая
– Сетевая
• Модели второго поколения
– Реляционная
• Модели третьего поколения
– Объектно-ориентированная
– Объектно-реляционная
20. Иерархическая модель данных
ИЕРАРХИЧЕСКАЯ МОДЕЛЬДАННЫХ
21. Иерархическая модель данных
• Организация данных в СУБД иерархическоготипа определяется в терминах: элемент,
агрегат, запись (группа), групповое
отношение, база данных.
• Иерархическая модель реализуется
древовидной структурой, объекты которой
представлены узлами дерева
22. Иерархическая модель данных
1. Свойства иерархической модели1. Существует корень
2. Узел содержит атрибуты
3. Исходный и зависимый узлы находятся в отношении
«непосредственный предок и потомок»
4. Потомок соединен единственной связью с предком
5. Предок может иметь несколько потомков
6. Доступ к данным производится через предка
7. Может существовать множество экземпляров узла
8. При удалении узла удаляется все его поддерево
23. Иерархическая модель данных
• Корневая запись каждого дерева обязательнодолжна содержать ключ с уникальным
значением.
• Ключи некорневых записей должны иметь
уникальное значение только в рамках
группового отношения
• Каждая запись идентифицируется полным
сцепленным ключом, под которым понимается
совокупность всех записей от корневой по
иерархическому пути
24. Иерархическая модель данных
Пример: Рассмотрим следующую модель данныхпредприятия
• предприятие состоит из отделов, в которых работают
сотрудники. В каждом отделе может работать
несколько сотрудников, но сотрудник не может
работать более чем в одном отделе.
• Для автоматизации учета контрактов с заказчиками
необходимо создание еще одной иерархической
структуры : заказчик - контракты с ним - сотрудники,
задействованные в работе над контрактом.
25.
АОТДЕЛ
ЗАКАЗЧИК
Наименование
Наименование
Число работников
Адрес
B
СОТРУДНИК
СОТРУДНИК
КОНТРАКТ
КОНТРАКТ
Фамилия
Фамилия
Номер
Номер
Должность
Должность
Дата
Дата
Оклад
Оклад
Сумма
Сумма
ИСПОЛНИТЕЛЬ
ИСПОЛНИТЕЛЬ
ИСПОЛНИТЕЛЬ
Фамилия
Фамилия
Фамилия
Должность
Должность
Должность
Наименов_отдела
Наименов_отдела
Наименов_отдела
КОНТРАКТ
КОНТРАКТ
Номер
Номер
Дата
Дата
Сумма
Сумма
C
26. Иерархическая модель данных
2. Операции над данными:– ДОБАВИТЬ в БД новую запись. Для корневой
записи обязательно формирование значения ключа
– ИЗМЕНИТЬ значение данных выбранной записи.
Ключевые данные не должны подвергаться
изменениям
– УДАЛИТЬ некоторую запись и все подчиненные ей
записи
– ИЗВЛЕЧЬ
• Корневую запись по ключу
• Следующую запись (в порядке левостороннего обхода
дерева)
27. Иерархическая модель данных
3. Ограничения целостности• Поддерживается только целостность связей
между владельцами и членами группового
отношения.
• Не обеспечивается автоматическое
поддержание соответствия парных записей,
входящих в разные иерархии
28. Иерархическая модель данных
• При работе с иерархической БД возможнынежелательные явления, которые называют
аномалиями.
– Аномалия включения: в варианте C нельзя
добавить новый контракт без добавления
исполнителей
– Аномалия удаления: при удалении отдела,
удаляются и данные о его сотрудниках
29. Иерархическая модель данных
• Достоинства:– Простота в использовании и обслуживании
– Высокая скорость доступа
• Недостатки
– Невозможность реализации отношения «многие ко
многим» в рамках одной БД
– Возможны аномалии в работе с БД
Первая иерархическая СУБД IMS компании IBM (1969 г.)
30. Сетевая модель данных
СЕТЕВАЯ МОДЕЛЬ ДАННЫХ31. Сетевая модель данных
Сетевая модель данных определена в тех жетерминах, что и иерархическая модель данных
1. Отличия сетевой и иерархической моделей:
– Запись может быть членом более чем одного группового
отношения
– Каждое групповое отношение именуется
– Тип группового отношения определяет свойства общие
для всех экземпляров данного типа
– Экземпляр группового отношения представляется
записью-владельцем и множеством (возможно пустым)
подчиненных записей
– Экземпляр записи не может быть членом двух
экземпляров групповых отношений одного типа
32.
ОТДЕЛЗАКАЗЧИК
Наименование
Наименование
Число работников
Адрес
СОТРУДНИК
СОТРУДНИК
КОНТРАКТ
КОНТРАКТ
Фамилия
Фамилия
Номер
Номер
Должность
Должность
Дата
Дата
Оклад
Оклад
Сумма
Сумма
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
СОТРУДНИК_КОНТРАКТ
33. Сетевая модель данных
• Выделяют три класса членства подчиненныхзаписей в групповых отношениях:
– Фиксированное. Подчиненная запись жестко связана с
записью владельцем и ее можно исключить из
группового отношения только удалив
– Обязательное. Допускается переключение подчиненной
записи на другого владельца, но невозможно ее
существование без владельца. Для удаления записивладельца необходимо, чтобы она не имела
подчиненных записей с обязательным членством
– Необязательное. Можно исключить запись из
группового отношения, но сохранить ее в базе не
прикрепляя к другому владельцу.
34. Сетевая модель данных
2. Операции над данными:– ДОБАВИТЬ в БД новую запись в зависимости от
режима включения, либо включить ее в групповое
отношение, где она объявлена подчиненного, либо
не включать ни в какое групповое отношение.
– ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ связать
существующую подчиненную запись с записьювладельцем
– ПЕРЕКЛЮЧИТЬ связать существующую
подчиненную запись с другой записью-владельцем
в том же групповом отношении.
– ОБНОВИТЬ изменить значение элементов
предварительно извлеченной записи
35. Сетевая модель данных
• Операции над данными:– ИЗВЛЕЧЬ извлечь записи последовательно по значению
ключа, а также использую групповые отношения – от
владельца перейти к записям-членам, а от подчиненной
записи к владельцу набора.
– УДАЛИТЬ убрать из БД запись. Если эта запись
является владельцем группового отношения, то
анализируется класс членства подчиненных записей.
• Обязательные члены должны быть предварительно исключены
из группового отношения
• Фиксированные удалены вместе с владельцем
• Необязательные останутся в БД.
– ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ
разорвать связь между записью-владельцем и записью –
членом.
36. Сетевая модель данных
3. Ограничения целостности• Поддерживается только целостность связей
между владельцами и членами группового
отношения.
37. Сетевая модель данных
• Достоинства:– Реализуется отношение «многие ко многим»
– Высокая производительность
• Недостатки
– Трудность реорганизации БД
– В процессе эксплуатации за счет некорректных удалений, сбоев и
т.д. накапливается мусор – данные к которым нет доступа
– Слабая выразительность языка запросов. Обычно он позволяет
манипулировать лишь одной запись одновременно, программист
во время работы должен хорошо представлять пути доступа к
данным
Первая сетевая СУБД IDMS компании Computer Associates
(1971 г.). Другой пример – СУБД IMAGE/1000 фирмы
Hewlett-Packard
38. Реляционная модель данных
РЕЛЯЦИОННАЯ МОДЕЛЬДАННЫХ
database