Развитие баз данных — различия между версиями
(→Channel Attention Module: picture added) |
(Добавлена страница) |
||
Строка 60: | Строка 60: | ||
* Отношения родитель – ребенок | * Отношения родитель – ребенок | ||
==== Пример ==== | ==== Пример ==== | ||
+ | [[Файл:Intro hierarch.png|400px]] | ||
+ | === Достоинства === | ||
+ | * Проверка целостности записей и отношений | ||
+ | * Последовательное расположение записей | ||
+ | * Эффективность реализации | ||
+ | === Недостатки === | ||
+ | * Представление только древовидных данных | ||
+ | * Нет отношения многие-ко-многим | ||
+ | === Реализации === | ||
+ | * IBM Information Management System | ||
+ | * Windows registry | ||
+ | == Сетевые базы данных == | ||
+ | === Сетевая модель данных === | ||
+ | ====Представление данных==== | ||
+ | * Ориентированный граф записей | ||
+ | * Отношения владелец – запись | ||
+ | ==== Пример ==== | ||
+ | [[Файл:Intro network.png|400px]] | ||
+ | === Достоинства === | ||
+ | * Представление всех типов связей | ||
+ | * Возможность описания структуры | ||
+ | * Эффективность реализации | ||
+ | === Недостатки === | ||
+ | * Сложность реализации | ||
+ | * Жесткое ограничение структуры | ||
+ | === Реализации === | ||
+ | * Integrated Data Store | ||
+ | * Integrated Database Management System | ||
+ | * TurboIMAGE | ||
+ | == Реляционные базы данных == | ||
+ | === Реляционная модель данных === | ||
+ | ====Структура==== | ||
+ | * Данные хранятся в таблицах | ||
+ | * Проверка целостности заданных связей | ||
+ | * Связи задаются в запросах | ||
+ | ==== Пример ==== | ||
+ | [[Файл:Intro relational.png|400px]] | ||
+ | === Достоинства === | ||
+ | * Представление всех типов связей | ||
+ | * Гибкая структура данных | ||
+ | * Математическая модель | ||
+ | === Недостатки === | ||
+ | * Сложность реализации | ||
+ | * Сложность представления иерархических данных | ||
+ | * Сложность составления эффективных запросов | ||
+ | === Реализации === | ||
+ | * Oracle Database | ||
+ | * SQLite | ||
+ | == Объектные базы данных == | ||
+ | === Объектная модель данных === | ||
+ | ====Структура==== | ||
+ | * Сущность – объект | ||
+ | * Связь – поле | ||
+ | * Ограничения целостности – определение объекта | ||
+ | ==== Пример ==== | ||
+ | [[Файл:Intro object.png|500px]] | ||
+ | === Достоинства === | ||
+ | * Простота представления объектов | ||
+ | * Гибкая структура данных | ||
+ | * Логичное направление ссылок | ||
+ | === Недостатки === | ||
+ | * Сложность реализации | ||
+ | * Сложность миграции схемы | ||
+ | * Малая распространенность | ||
+ | === Реализации === | ||
+ | * Oracle Database Objects | ||
+ | * ObjectDB | ||
+ | == NoSQL == | ||
+ | === Документ-ориентированные === | ||
+ | ==== Представление данных ==== | ||
+ | * Слабоструктурированные документы | ||
+ | ** XML | ||
+ | ** JSON | ||
+ | * Выборка по свойствам | ||
+ | ==== Пример ==== | ||
+ | [[Файл:Intro history document.png|400px]] | ||
+ | === Ключ-значение === | ||
+ | ==== Представление данных ==== | ||
+ | * Ключ | ||
+ | * Произвольное значение | ||
+ | ==== Пример ==== | ||
+ | [[Файл:Intro history keyvalue.png|400px]] | ||
+ | === Другие === | ||
+ | ==== Табличные ==== | ||
+ | * Одна большая таблица | ||
+ | * Хранится построчно | ||
+ | ==== Столбчатые ==== | ||
+ | * Одна большая таблица | ||
+ | * Хранится по столбцам | ||
+ | ==== Графовые ==== | ||
+ | * Граф объектов | ||
+ | * Данные в узлах | ||
+ | * Данные на ребрах | ||
+ | === Достоинства === | ||
+ | * Большой выбор | ||
+ | * Гибкость | ||
+ | * Скорость работы | ||
+ | === Недостатки === | ||
+ | * Множество вещей делается в коде | ||
+ | * Нет оптимизатора | ||
+ | * Легко ошибиться |
Версия 21:38, 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
- Выборка по свойствам
Пример
Ключ-значение
Представление данных
- Ключ
- Произвольное значение
Пример
Другие
Табличные
- Одна большая таблица
- Хранится построчно
Столбчатые
- Одна большая таблица
- Хранится по столбцам
Графовые
- Граф объектов
- Данные в узлах
- Данные на ребрах
Достоинства
- Большой выбор
- Гибкость
- Скорость работы
Недостатки
- Множество вещей делается в коде
- Нет оптимизатора
- Легко ошибиться