Общая информация

Термины СУБД и БД

Системой управления базами данных (СУБД) называют программное средство, позволяющее хранить информацию и извлекать хранимую информацию. В каком-то смысле, даже обычный массив в языке Си вместе с операциями индексации и индексированного присваивания можно считать примером очень примитивной СУБД. Тем не менее, обычно к СУБД подобные элементарные вещи не относят.

Обычно СУБД поддерживают возможность изолировать подмножества хранимых данных друг от друга. Единицы изоляции называют базами данных (БД). Например, если в качестве СУБД рассматривать только вышеупомянутые операции индексации и индексированного присваивания языка Си, то отдельными БД для такой СУБД будут массивы.

По факту понятия СУБД и БД часто используют как синонимы: ни к какой особой путанице это не приводит.

Реляционные БД

В этой главе мы обсудим т.н. реляционную модель СУБД/БД. Реляционная БД (именно БД как единица изоляции) представляет собой набор именованных прямоугольных таблиц. Каждая таблица имеет некоторое фиксированное (на момент создания таблицы) множество именованных столбцов.

Единица хранения (т.н. запись) — строка таблицы. В таблицу в любой момент можно (эффективно) добавлять новые строки или удалять из неё уже имеющиеся там. Обычно разрешаются «неполные» строки: некоторые ячейки в такой строке могут быть пустыми.

Обратим внимание на главные отличия реляционных БД от похожей формы хранения и обработки информации — электронных таблиц:

  • основное назначение БД (не только реляционных) — хранение и поиск информации; основное назначение электронных таблиц — преобразование информации
  • в реляционных БД единицей хранимой информации является строка, в электронных таблицах — клетка
  • как побочный эффект предыдущего: строки и столбцы электронных таблиц равноправны; строки и столбцы реляционной БД — нет

Основа реляционной модели — язык SQL, на котором строятся запросы к реляционной БД. Изначально (в 70х годах) этот язык не отождествлялся с реляционной моделью. В настоящее время, говоря о реляционных БД/СУБД, подразумевают обычно именно ту или иную реализацию языка SQL.