Изменения

Перейти к: навигация, поиск

Развитие баз данных

1349 байт добавлено, 19:36, 4 сентября 2022
м
rollbackEdits.php mass rollback
Предложена и реализована IBM в 1966.
==== Представление данных ====
Теперь мы храним дерево записей, при этом для каждой записи мы знаем ее тип и структуру. Таким образом исчезает проблема с ошибками в типах хранящихся данных. Так же для каждой записи имеет имеется произвольное количество подчиненных записей (детей).
* Дерево записей
* Отношения родитель – ребенок (как каталоги и подкаталоги)
==== Пример ====
Здесь в рамочки рамки обведены узлы дерева, где мы храним сами данные и их тип, а стрелочками обозначены отношения родитель-ребенок.
==== Пример ====
Здесь в рамочки рамки так же обведены узлы ориентированного графа, где мы храним сами данные и их тип. Теперь черными стрелочками обозначены отношения родитель-ребенок основной иерархии, а синие обозначают дополнительные отношения.
==== Пример ====
Здвесь Здесь в рамочки рамки обведены таблички таблицы с однотивными однотипными данными, а стрелки показывают общие идентификаторы, по коорым которым можно определить связи между ними.
[[Файл:Intro relational.png|400px]]
=== Достоинства ===
* Представление всех типов связей(теперь связи симметричные, а значит в отношении многие ко многим не будет основных и побочных иерархий)* Гибкая структура данных(из-за задания связей непосредственно в запросах)
* Математическая модель (благодаря этому можем находить более эффективные эквивалентные запросы)
=== Недостатки ===
* Сложность реализации(так как нужно дополнительно реализовывать и оптимизатор)* Сложность представления иерархических данных(когда в иерархии содержатся элементы одинакового типа)
* Сложность составления эффективных запросов (сильно зависит от оптимизатора)
Уметь хранить графы объектов в памяти очень полезно. Предложена в 1985. Сейчас такие базы данных в основном реализуются через слой трансляции в реляционную базу.
====Структура====
Структура аналогична тому, как этот объект хранится в памяти. Это и является основным преимуществом данной модели.
* Сущность – объект
* Связь – поле
* Ограничения целостности – определение объекта
 
==== Пример ====
Здесь в рамки обведены определения структуры объектов, а стрелкой обозначены ссылки от одного объекта к другому.
 
[[Файл:Intro object.png|400px]]
=== Достоинства ===
* Простота представления объектов (из-за ориентированности модели данных на данную задачу)
* Гибкая структура данных (так как можем хранить произвольные обьектыобъекты)
* Логичное направление ссылок (соответственно направлению в объектах)
* Сложность реализации (так как стандартный способ - трансляция в реляционную модель)
* Сложность миграции схемы (что будет с объектами в базе, если мы захотим добавить им поле)
* Малая распространенность(в основном используются через ORM)
=== Реализации ===
* Выборка по свойствам
==== Пример ====
В рамки обведены содержания отдельных документов. Как видно из примера они могут существенно отличаться.
 
[[Файл:Intro history document.png|400px]]
Имеем маленькие значения и хотим их быстро идентифицировать по ключам. Если хотим ссылки - храним в значении массивы ключей. В данной модели мы умеем только по ключу доставать небольшое значение.
==== Представление данных ====
Представляет собой ассоциативный массив.
* Ключ
* Произвольное значение
 
==== Пример ====
Здесь в рамки обведено определение ассоциативного массива.
 
[[Файл:Intro history keyvalue.png|400px]]
1632
правки

Навигация