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

Материал из Викиконспекты
Версия от 22:04, 18 декабря 2021; Roman Ageev (обсуждение | вклад) (Недостатки)
Перейти к: навигация, поиск

Содержание

Простые и структурированные файлы

Модель данных простого файла

Структура

  • Заголовок (названия столбцов)
  • Данные (просто текст)

Пример

ФИО,Предмет,Оценка
Иванов И.И.,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

Иерархические базы данных

Иерархическая модель данных

Представление данных

  • Дерево записей
  • Отношения родитель – ребенок

Пример

Intro hierarch.png

Достоинства

  • Проверка целостности записей и отношений
  • Последовательное расположение записей
  • Эффективность реализации

Недостатки

  • Представление только древовидных данных
  • Нет отношения многие-ко-многим

Реализации

  • IBM Information Management System
  • Windows registry

Сетевые базы данных

Сетевая модель данных

Представление данных

  • Ориентированный граф записей
  • Отношения владелец – запись

Пример

Intro network.png

Достоинства

  • Представление всех типов связей
  • Возможность описания структуры
  • Эффективность реализации

Недостатки

  • Сложность реализации
  • Жесткое ограничение структуры

Реализации

  • Integrated Data Store
  • Integrated Database Management System
  • TurboIMAGE

Реляционные базы данных

Реляционная модель данных

Структура

  • Данные хранятся в таблицах
  • Проверка целостности заданных связей
  • Связи задаются в запросах

Пример

Intro relational.png

Достоинства

  • Представление всех типов связей
  • Гибкая структура данных
  • Математическая модель

Недостатки

  • Сложность реализации
  • Сложность представления иерархических данных
  • Сложность составления эффективных запросов

Реализации

  • Oracle Database
  • SQLite

Объектные базы данных

Объектная модель данных

Структура

  • Сущность – объект
  • Связь – поле
  • Ограничения целостности – определение объекта

Пример

Intro object.png

Достоинства

  • Простота представления объектов
  • Гибкая структура данных
  • Логичное направление ссылок

Недостатки

  • Сложность реализации
  • Сложность миграции схемы
  • Малая распространенность

Реализации

  • Oracle Database Objects
  • ObjectDB

NoSQL

Документ-ориентированные

Представление данных

  • Слабоструктурированные документы
    • XML
    • JSON
  • Выборка по свойствам

Пример

Intro history document.png

Ключ-значение

Представление данных

  • Ключ
  • Произвольное значение

Пример

Intro history keyvalue.png

Другие

Табличные

  • Одна большая таблица
  • Хранится построчно

Столбчатые

  • Одна большая таблица
  • Хранится по столбцам

Графовые

  • Граф объектов
  • Данные в узлах
  • Данные на ребрах

Достоинства

  • Большой выбор
  • Гибкость
  • Скорость работы

Недостатки

  • Множество вещей делается в коде
  • Нет оптимизатора
  • Легко ошибиться