Требования к базам данных — различия между версиями
Ageev (обсуждение | вклад) (Создана страница) |
(→Ограничения целостности) |
||
Строка 21: | Строка 21: | ||
== Ограничения целостности == | == Ограничения целостности == | ||
Для баз данных очень важны ограничения целостности. Мы заранее хотим прописать как можно больше проверок, которые не позволят добавить в базу невалидные данные. | Для баз данных очень важны ограничения целостности. Мы заранее хотим прописать как можно больше проверок, которые не позволят добавить в базу невалидные данные. | ||
− | * На отдельные значения (например Возраст как целое положительное число или Вероятность как вещественное от 0 до 1) | + | * На отдельные значения (например, ''Возраст'' как целое положительное число или ''Вероятность'' как вещественное от 0 до 1) |
− | * На записи (например Начало интервала меньше его Конца) | + | * На записи (например, ''Начало'' интервала меньше его ''Конца'') |
− | * На наборы записей одного типа (например Номера паспортов должны быть уникальными) | + | * На наборы записей одного типа (например, ''Номера'' паспортов должны быть уникальными) |
− | * На связи данных (например Студент учится ровно в одной Группе) | + | * На связи данных (например, ''Студент'' учится ровно в одной ''Группе'') |
Версия 23:03, 18 декабря 2021
Содержание
Разделение структуры и данных
Схема базы данных
В базах данных мы разделяем структуру и данные. У нас присутствует схема базы данных, в которой описано:
- Какие данные мы храним
- Как эти данные хранятся
- Права доступа к этим данным
Это не единственный возможный подход, так как мы можем хранить произвольные blob. Однако для осуществления каких-либо действий с этими данными мы должны иметь представление о том, что у нас хранится.
Данные
Важно. В зависимости от объема данных и требуемой скорости мы можем применять совершенно разные подходы к их хранению, и это совершенно нормально.
Типы данных
Есть несколько способов разделения типов данных на группы.
Простые и структурированные
- Простые типы данных: в терминах базы данных мы не оперируем их частями (например Целые числа, Дата или Фамилия).
- Структурированные данные: мы хотим оперировать их частями при выполнении запросов (например Адрес или Телефон)
Сущности и связи сущностей
- Сущности: соответствуют Entity Type (например Студент, Группа или Предмет)
- Связи сущностей: связи сущностей между собой (например Студент состоит в Группе или оценка Студента по Предмету)
Ограничения целостности
Для баз данных очень важны ограничения целостности. Мы заранее хотим прописать как можно больше проверок, которые не позволят добавить в базу невалидные данные.
- На отдельные значения (например, Возраст как целое положительное число или Вероятность как вещественное от 0 до 1)
- На записи (например, Начало интервала меньше его Конца)
- На наборы записей одного типа (например, Номера паспортов должны быть уникальными)
- На связи данных (например, Студент учится ровно в одной Группе)