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