ПБД (9) - Лекция №2 - Модели данных
Модели данных
- концептуальные
- ER - сущность-связь
- физические
- реляционная;
- объектная;
- объектно-реляционная - отношение, содержащие дополнительные возможности;
- полуструктурированных данных - и сами данные, и структуры, и сведения о них.
Entity-Relationship
Она же ER - модель "сущность-связь".
Нотации
Системы текстовых или иных обозначений, позволяющие описывать модель.
Мартина
IDEF/X
Бартера
Чена
Связи:
- 1-1, один к одному;
- 1-М, один ко многим;
- М-1, многие к одному;
- М-М, многие ко многим.
ISA-связи - базовая и производная сущности. Производная наследует атрибуты и ключ базовой.
Слабые сущности - не могут существовать сами по себе. В состав которой входят атрибуты (ключи) другой сущности, так как собственных атрибутов не достаточно. Другая сущность называется поддерживающей.
Пример:
Сущности:
- Актёр (ИНН, ФИО, Образование);
- Фильм (Название, Год, Длительность, Название студии);
- Студия (Название студии, адрес);
- Актёр-фильм (ИНН, Название, Год).
Три варианта преобразования ISA:
- сущность преобразовывается в отношение, содержащее атрибуты самой себя и ключи базовой;
- объектно-ориентированный подход: для каждой возможной информационной сущности создаётся собственное отношение со всеми необходимыми атрибутами.
Плюс: нет дублирования, оптимизация объёма хранения.
Минус: слишком много отношений; - нулевые отношения (null): одно отношение со всеми возможными атрибутами. То есть, если где-то какие-то атрибуты не требуются, то они заполняются null значениями.
Объектная модель
Уникальный идентификатор объекта - OID. У объектов поддерживаются методы. Есть наследование, инкапсуляция и полиморфизм. Можно создавать собственные типы данных, составные типы (структуры, коллекции, ссылки). Разделение на интерфейс и реализацию.
Объекты - некоторая переменная, может изменять значение, характеризуется своим OID.
Литерал - может быть сколь угодно сложной структурой, но не может изменять своё значение. Если в нём что-то изменить, то получится уже другой литерал.
Объектная модель состоит из:
- ODL (язык определения объектов) - для описания БД;
- OML (язык манипулирования данными) - для работы с объектами, расширение для стандартного языка;
- OQL (язык объектных запросов) - основан на SQL, имеет расширение.
Возможности описания объектных БД
Классы
ODL позволяет описывать классы - объектные типы.
class название
[extends базовый класс : интерфейсы]
(extent название key ключи)
{
атрибуты
методы
связи
};
Интерфейсы
Интерфейс - аналог класса, который не имеет реализации и объектов.
interface название
[extends интерфейс1 : интерфейс2]
{
атрибуты
методы
связи
};
Атрибуты
attribute тип название