- •Часть I. Теория баз данных
- •Глава I. Системы файлов и базы данных
- •Оценка системы файлов
- •1.2. Понятие базы данных и системы управления базами данных.
- •1.3 Архитектура бд
- •Концептуальная модель
- •Внутренняя модель
- •Физическая модель
- •1.4 Модели баз данных
- •1.4.1 Иерархическая модель данных
- •1.4.2 Сетевая модель данных
- •1.4.3 Реляционная модель данных
- •Нормализация отношений
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Денормализация
- •Методы реализации денормализации
- •1.4.4. Объектно-ориентированная модель данных
- •1.4.4.1. Атрибуты
- •1.4.4.2. Состояние объекта. Сообщения и методы
- •1.4.4.3. Классы
- •1.4.4.4. Протокол
- •1.4.4.5. Суперклассы, подклассы, наследование
- •1.4.4.6. Единичное наследование. Множественное наследование.
- •1.4.4.7. Переопределение методов и полиморфизм
- •1.4.4.8. Абстрактные типы данных
- •1.4.4.9. Классификация объектов
- •1.4.4.10. Свойства объектно-ориентированных моделей данных
- •1.5.1 Сущности
- •1.5.2 Атрибуты
- •1.5.3. Связи
- •1.5.4. Сравнение обозначений в er-моделировании
- •1.5.5. Разработка er-диаграмм
Методы реализации денормализации
В Oracle 6 создавались специальные скрипты для таблиц, обеспечивающих проверку целостности денормализованных данных и выдачу сообщений о нарушениях. Эти скрипты должен был прогонять периодически администратор базы данных.
Пример скрипта для таблиц, построенных от сущностей Order и Order_Item (после денормализации):
Select Ord. Order#
From Orders, Ord
Where Ord.order_Price<>(Select sum (Oit.Item_Price) from Order_Items, Oit where Oit.Ord_Order#=Ord.Order#);
В Oracle 7 денормализация поддерживается при помощи триггеров базы данных. Однако, триггеры можно выключить. По этой причине старые диагностические скрипты могут понадобиться.
1.4.4. Объектно-ориентированная модель данных
Все более усложняющиеся практические задачи стимулируют появление других моделей, точнее отражающих реальный мир. Одной из таких моделей стала семантическая модель данных (SDM, semantic database model), разработанная в 1981 году.
SDM позволяет моделировать как данные, так и их отношения в единой структуре, называемой объектом. Поскольку основной структурой модели является объект, модель SDM получила название объектно-ориентированной модели базы данных (object oriented database model, OODM). В свою очередь OODM стала основой создания объектно-ориентированной модели БД (OODMB), управление которой осуществляется с помощью системы управления объектно-ориентированной базой данных (ООСУБД, OODMBS).
Объектно-ориентированная методология моделирования и разработки основана на объектно-ориентированных концепциях. При проектировании используются автономные компьютерные структуры, называемые объектами. Каждый объект – это сущность реального мира, взаимодействующая с другими объектами.
Идеи данного подхода берут свое начало в объектно-ориентированном программировании (Ada, Algol, LIST и др.). Эти языки – промежуточная ступень до появления языков с более выраженными ОО-концепциями. Наиболее популярные языки С++, Java.
Объектно-ориентированное программирование5 изменило не только способ написания программ, но и само поведение этих программ. Каждый объект может манипулировать данными, которые являются частью этого объекта, каждый объект может посылать сообщения для изменения данных в других объектах. Следовательно, ОО-инфраструктура обладает следующими свойствами:
набор данных не является больше пассивным;
данные и процедуры, будучи связанные друг с другом, образуют объект;
объект может воздействовать на самого себя.
Таким образом, можно определить объект как абстрактное представление сущности реального мира, имеющее уникальный идентификатор, встроенные свойства и возможность взаимодействовать с другими объектами, а также воздействовать на самого себя.
Основное отличие сущности от объекта заключается в том, что у сущности есть компоненты данных и связи, но сущность не обладает возможностью манипулирования данными. Объекты имеют общие свойства, но каждый объект существует во времени и пространстве независимо от других объектов. Например, объекты Иванов, Петров, Сидоров имеют общие свойства, такие как № студенческого билета, ФИО и др., но каждый из них имеет уникальную биологическую идентификацию и существует отдельно один от другого.
Объект имеет идентификатор объекта, уникальный для него (ID, OID). Идентификатор OID назначается системой в момент создания объекта и не может быть изменен ни при каких условиях.
Отличие первичного ключа реляционной модели и идентификатора объекта (OID) заключается в том, что основу первичного ключа составляют значения, определенные пользователем для данного атрибута, он может быть изменен в любое время, OID назначается системой, не зависит от значений атрибута и его нельзя изменить. Его можно удалить, если удаляется сам объект.
