ПБД (9) - Лекция №2 - Модели данных: различия между версиями

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
Строка 105: Строка 105:


==== Коллекции ====
==== Коллекции ====
 
<syntaxhighlight>
set <тип> - множество
set <тип> - множество
bag<тип> - мультимножество
bag<тип> - мультимножество
array<тип, количество>
array<тип, количество>
dictionary <тип (ключ), тип (значение)>
dictionary <тип (ключ), тип (значение)>
</syntaxhighlight>


==== Методы ====
==== Методы ====

Версия от 12:10, 2 ноября 2016

Модели данных

  • концептуальные
    • ER - сущность-связь
  • физические
    • реляционная;
    • объектная;
    • объектно-реляционная - отношение, содержащие дополнительные возможности;
    • полуструктурированных данных - и сами данные, и структуры, и сведения о них.

Entity-Relationship

Она же ER - модель "сущность-связь".

Нотации

Системы текстовых или иных обозначений, позволяющие описывать модель.

Мартина

IDEF/X

Бартера

Чена

Связи:

  • 1-1, один к одному;
  • 1-М, один ко многим;
  • М-1, многие к одному;
  • М-М, многие ко многим.

ISA-связи - базовая и производная сущности. Производная наследует атрибуты и ключ базовой.

Слабые сущности - не могут существовать сами по себе. В состав которой входят атрибуты (ключи) другой сущности, так как собственных атрибутов не достаточно. Другая сущность называется поддерживающей.

Пример:

Сущности:

  • Актёр (ИНН, ФИО, Образование);
  • Фильм (Название, Год, Длительность, Название студии);
  • Студия (Название студии, адрес);
  • Актёр-фильм (ИНН, Название, Год).

Три варианта преобразования ISA:

  • сущность преобразовывается в отношение, содержащее атрибуты самой себя и ключи базовой;
  • объектно-ориентированный подход: для каждой возможной информационной сущности создаётся собственное отношение со всеми необходимыми атрибутами.
    Плюс: нет дублирования, оптимизация объёма хранения.
    Минус: слишком много отношений;
  • нулевые отношения (null): одно отношение со всеми возможными атрибутами. То есть, если где-то какие-то атрибуты не требуются, то они заполняются null значениями.

Преобразование ER-модели в реляционную

  • Множество сущностей $$\rightarrow$$ отношение;
  • ключ $$\rightarrow$$ ключ;
  • связь 1-М $$\rightarrow$$ к сущности на стороне М добавляется внешний ключ, указывающий на первичный ключ сущности на стороне 1;
  • связь М-М $$\rightarrow$$ создается дополнительное отношение, содержащее ключи связанных таблиц;
  • слабая сущность $$\rightarrow$$ отношение с атрибутами слабой сущности плюс ключи поддерживающих сущностей. Например:
    Кафедра( Название кафедры, Название ВУЗа, заведующий кафедрой)

Объектная модель

Уникальный идентификатор объекта - OID. У объектов поддерживаются методы. Есть наследование, инкапсуляция и полиморфизм. Можно создавать собственные типы данных, составные типы (структуры, коллекции, ссылки). Разделение на интерфейс и реализацию.

Объекты - некоторая переменная, может изменять значение, характеризуется своим OID.

Литерал - может быть сколь угодно сложной структурой, но не может изменять своё значение. Если в нём что-то изменить, то получится уже другой литерал.

Объектная модель состоит из:

  • ODL (язык определения объектов) - для описания БД;
  • OML (язык манипулирования данными) - для работы с объектами, расширение для стандартного языка;
  • OQL (язык объектных запросов) - основан на SQL, имеет расширение.

Возможности описания объектных БД

Классы

ODL позволяет описывать классы - объектные типы.

class название
[extends базовый класс : интерфейсы]
(extent название key ключи)
{
	атрибуты
	методы
	связи
};

Интерфейсы

Интерфейс - аналог класса, который не имеет реализации и объектов.

interface название
[extends интерфейс1 : интерфейс2]
{
	атрибуты
	методы
	связи
};

Атрибуты

attribute тип название

Коллекции

set <тип> - множество
bag<тип> - мультимножество
array<тип, количество>
dictionary <тип (ключ), тип (значение)>

Методы

Связи