Развитие баз данных — различия между версиями
 (→Иерархические базы данных)  | 
				 (→Сетевая модель данных)  | 
				||
| Строка 82: | Строка 82: | ||
== Сетевые базы данных ==  | == Сетевые базы данных ==  | ||
=== Сетевая модель данных ===  | === Сетевая модель данных ===  | ||
| + | Нет единой строгой иерархии, могут существовать дополнительные.  | ||
====Представление данных====  | ====Представление данных====  | ||
* Ориентированный граф записей  | * Ориентированный граф записей  | ||
| Строка 87: | Строка 88: | ||
==== Пример ====  | ==== Пример ====  | ||
[[Файл:Intro network.png|400px]]  | [[Файл:Intro network.png|400px]]  | ||
| + | |||
=== Достоинства ===  | === Достоинства ===  | ||
* Представление всех типов связей  | * Представление всех типов связей  | ||
Версия 22:20, 18 декабря 2021
Содержание
Простые и структурированные файлы
Модель данных простого файла
Структура
- Заголовок (названия столбцов)
 - Данные (просто текст)
 
Пример
ФИО,Предмет,Оценка Иванов И.И.,Java,4 Иванов И.И.,Базы данных,5 Петров П.П.,Java,5 Петров П.П.,Базы данных,4
Модель данных структурированного файла
Структура
- Заголовок (названия столбцов, типы и длины)
 - Данные (записи одинаковой структуры)
 
Пример
ФИО Предмет Оценка String, 14 String, 12 Number, 1 Иванов И.И. Java 4 Иванов И.И. Базы данных 5 Петров П.П. Java 5 Петров П.П. Базы данных 4
Достоинства
- Простота чтения
 - В структурированном файле можем быстро находить строчку по номеру
 
Недостатки
- Сложность поиска
 - Сложность обработки (в каждом месте для этого нужен будет свой код)
 - Сложность хранения данных разны типов (например для дат не понятно в каком порядке идут данные)
 - Нет проверки целостности (но можно проверять количество столбцов или добавить модуль чтения и записи типизированных файлов)
 
Реализации
- Данные на перфокартах
 - dBase
 - Excel / LibreOffice Calc
 
Файловые системы
Файловая модель данных
Представление данных
- Файл – одна запись
 - Каталоги – подчиненные записи
 
Пример
- Иванов И.И./Данные – ФИО, адрес, etc
 - Иванов И.И./Оценки/Java – 4
 - Иванов И.И./Оценки/Базы данных – 5
 - Петров П. П./Данные – ФИО, адрес, etc
 - Иванов П. П./Оценки/Java – 5
 - Петров П. П./Оценки/Базы данных – 4
 
Достоинства
- Структурирование данных
 - Простота реализации
 
Недостатки
- Сложно извлекать требуемые данные (в примере сложно посчитать среднюю оценку по предмету)
 - Нет проверки целостности (но можно например добавить проверку уникальности)
 - Большое количество файлов (не все файловые системы такое потянут)
 
Реализации
- FATx, ExtX, NTFS, APFS
 - DOM
 
Иерархические базы данных
Иерархическая модель данных
Иерархия это полезно, но складывать это в файловую систему не очень эффективно.
Представление данных
- Дерево записей
 - Отношения родитель – ребенок (как каталоги и подкаталоги)
 
Пример
Достоинства
- Проверка целостности записей и отношений (так же можем разрешать добавлять дубликаты где необходимо)
 - Последовательное расположение записей
 - Эффективность реализации (за счет группировки данных одного типа)
 
Недостатки
- Представление только древовидных данных
 - Существенно меняющееся время запроса в отношении многие-ко-многим в зависимости от того кто выше в иерархии. Можно хранить две версии, однако возникает проблема с их согласованием, то есть в этот момент мы начинаем допускать некорректные данные.
 
Реализации
- IBM Information Management System
 - Windows registry
 
Сетевые базы данных
Сетевая модель данных
Нет единой строгой иерархии, могут существовать дополнительные.
Представление данных
- Ориентированный граф записей
 - Отношения владелец – запись
 
Пример
Достоинства
- Представление всех типов связей
 - Возможность описания структуры
 - Эффективность реализации
 
Недостатки
- Сложность реализации
 - Жесткое ограничение структуры
 
Реализации
- Integrated Data Store
 - Integrated Database Management System
 - TurboIMAGE
 
Реляционные базы данных
Реляционная модель данных
Структура
- Данные хранятся в таблицах
 - Проверка целостности заданных связей
 - Связи задаются в запросах
 
Пример
Достоинства
- Представление всех типов связей
 - Гибкая структура данных
 - Математическая модель
 
Недостатки
- Сложность реализации
 - Сложность представления иерархических данных
 - Сложность составления эффективных запросов
 
Реализации
- Oracle Database
 - SQLite
 
Объектные базы данных
Объектная модель данных
Структура
- Сущность – объект
 - Связь – поле
 - Ограничения целостности – определение объекта
 
Пример
Достоинства
- Простота представления объектов
 - Гибкая структура данных
 - Логичное направление ссылок
 
Недостатки
- Сложность реализации
 - Сложность миграции схемы
 - Малая распространенность
 
Реализации
- Oracle Database Objects
 - ObjectDB
 
NoSQL
Документ-ориентированные
Представление данных
-  Слабоструктурированные документы
- XML
 - JSON
 
 - Выборка по свойствам
 
Пример
Ключ-значение
Представление данных
- Ключ
 - Произвольное значение
 
Пример
Другие
Табличные
- Одна большая таблица
 - Хранится построчно
 
Столбчатые
- Одна большая таблица
 - Хранится по столбцам
 
Графовые
- Граф объектов
 - Данные в узлах
 - Данные на ребрах
 
Достоинства
- Большой выбор
 - Гибкость
 - Скорость работы
 
Недостатки
- Множество вещей делается в коде
 - Нет оптимизатора
 - Легко ошибиться