Общая информация
Термины СУБД и БД
Системой управления базами данных (СУБД) называют программное средство, позволяющее хранить информацию и извлекать хранимую информацию. В каком-то смысле, даже обычный массив в языке Си вместе с операциями индексации и индексированного присваивания можно считать примером очень примитивной СУБД. Тем не менее, обычно к СУБД подобные элементарные вещи не относят.
Обычно СУБД поддерживают возможность изолировать подмножества хранимых данных друг от друга. Единицы изоляции называют базами данных (БД). Например, если в качестве СУБД рассматривать только вышеупомянутые операции индексации и индексированного присваивания языка Си, то отдельными БД для такой СУБД будут массивы.
По факту понятия СУБД и БД часто используют как синонимы: ни к какой особой путанице это не приводит.
Реляционные БД
В этой главе мы обсудим т.н. реляционную модель СУБД/БД. Реляционная БД (именно БД как единица изоляции) представляет собой набор именованных прямоугольных таблиц. Каждая таблица имеет некоторое фиксированное (на момент создания таблицы) множество именованных столбцов.
Единица хранения (т.н. запись) — строка таблицы. В таблицу в любой момент можно (эффективно) добавлять новые строки или удалять из неё уже имеющиеся там. Обычно разрешаются «неполные» строки: некоторые ячейки в такой строке могут быть пустыми.
Обратим внимание на главные отличия реляционных БД от похожей формы хранения и обработки информации — электронных таблиц:
- основное назначение БД (не только реляционных) — хранение и поиск информации; основное назначение электронных таблиц — преобразование информации
- в реляционных БД единицей хранимой информации является строка, в электронных таблицах — клетка
- как побочный эффект предыдущего: строки и столбцы электронных таблиц равноправны; строки и столбцы реляционной БД — нет
Основа реляционной модели — язык SQL, на котором строятся запросы к реляционной БД. Изначально (в 70х годах) этот язык не отождествлялся с реляционной моделью. В настоящее время, говоря о реляционных БД/СУБД, подразумевают обычно именно ту или иную реализацию языка SQL.