Развитие баз данных — различия между версиями
(→Недостатки) |
(→Иерархическая модель данных) |
||
Строка 60: | Строка 60: | ||
== Иерархические базы данных == | == Иерархические базы данных == | ||
=== Иерархическая модель данных === | === Иерархическая модель данных === | ||
+ | Так как иерархия это полезно, но складывать это в файловую систему не очень эффективно | ||
==== Представление данных ==== | ==== Представление данных ==== | ||
* Дерево записей | * Дерево записей | ||
− | * Отношения родитель – ребенок | + | * Отношения родитель – ребенок (как каталоги и подкаталоги) |
==== Пример ==== | ==== Пример ==== | ||
[[Файл:Intro hierarch.png|400px]] | [[Файл:Intro hierarch.png|400px]] | ||
+ | |||
=== Достоинства === | === Достоинства === | ||
* Проверка целостности записей и отношений | * Проверка целостности записей и отношений |
Версия 22:10, 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
- Выборка по свойствам
Пример
Ключ-значение
Представление данных
- Ключ
- Произвольное значение
Пример
Другие
Табличные
- Одна большая таблица
- Хранится построчно
Столбчатые
- Одна большая таблица
- Хранится по столбцам
Графовые
- Граф объектов
- Данные в узлах
- Данные на ребрах
Достоинства
- Большой выбор
- Гибкость
- Скорость работы
Недостатки
- Множество вещей делается в коде
- Нет оптимизатора
- Легко ошибиться