Развитие баз данных — различия между версиями
(→Достоинства) |
(→Недостатки) |
||
Строка 74: | Строка 74: | ||
=== Недостатки === | === Недостатки === | ||
* Представление только древовидных данных | * Представление только древовидных данных | ||
− | * Нет отношения многие-ко-многим | + | * Нет отношения многие-ко-многим (существенно меняющееся время запроса в зависимости от того кто выше в иерархии) |
+ | |||
=== Реализации === | === Реализации === | ||
* IBM Information Management System | * IBM Information Management System |
Версия 22:13, 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
- Выборка по свойствам
Пример
Ключ-значение
Представление данных
- Ключ
- Произвольное значение
Пример
Другие
Табличные
- Одна большая таблица
- Хранится построчно
Столбчатые
- Одна большая таблица
- Хранится по столбцам
Графовые
- Граф объектов
- Данные в узлах
- Данные на ребрах
Достоинства
- Большой выбор
- Гибкость
- Скорость работы
Недостатки
- Множество вещей делается в коде
- Нет оптимизатора
- Легко ошибиться