Требования к базам данных

Материал из Викиконспекты
Версия от 18:23, 18 декабря 2021; Ageev (обсуждение | вклад) (Создана страница)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Разделение структуры и данных

Схема базы данных

В базах данных мы разделяем структуру и данные. У нас присутствует схема базы данных, в которой описано:

  • Какие данные мы храним
  • Как эти данные хранятся
  • Права доступа к этим данным

Это не единственный возможный подход, так как мы можем хранить произвольные blob. Однако для осуществления каких-либо действий с этими данными мы должны иметь представление о том, что у нас хранится.

Данные

Важно. В зависимости от объема данных и требуемой скорости мы можем применять совершенно разные подходы к их хранению, и это совершенно нормально.

Типы данных

Есть несколько способов разделения типов данных на группы.

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

  • Простые типы данных: в терминах базы данных мы не оперируем их частями (например Целые числа, Дата или Фамилия).
  • Структурированные данные: мы хотим оперировать их частями при выполнении запросов (например Адрес или Телефон)

Сущности и связи сущностей

  • Сущности: соответствуют Entity Type (например Студент, Группа или Предмет)
  • Связи сущностей: связи сущностей между собой (например Студент состоит в Группе или оценка Студента по Предмету)

Ограничения целостности

Для баз данных очень важны ограничения целостности. Мы заранее хотим прописать как можно больше проверок, которые не позволят добавить в базу невалидные данные.

  • На отдельные значения (например Возраст как целое положительное число или Вероятность как вещественное от 0 до 1)
  • На записи (например Начало интервала меньше его Конца)
  • На наборы записей одного типа (например Номера паспортов должны быть уникальными)
  • На связи данных (например Студент учится ровно в одной Группе)