Основные понятия теории реляционных систем баз данных
База данных - совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. Реляционная база данных - это база данных, в которой информация представлена в виде двумерных таблиц, сохраняемых в файлах. Таблица состоит из строк, называемых записями, записи состоят из столбцов, называемых полями.
Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. Пользователей СУБД можно разделить на три большие группы:
разработчики базы данных отвечают за написание прикладных программ, использующих базу данных;
конечные пользователи работают с базой данных либо через некоторую информационную систему, либо пользовательский интерфейс системы управления базами данных;
администраторы базы данных обеспечивают поддержание работоспособности базы данных, сохранность и безопасность данных, настройку работы базы данных.
Базовой архитектурой СУБД является трехуровневая модель, в рамках которой СУБД представляется состоящей из внешнего, концептуального и внутреннего уровня. На внешнем уровне содержимое СУБД представляется так, как его видит отдельный пользователь. На концептуальном уровне данные СУБД описываются в обобщенной модели предметной области, для которой создается информационная система. Внутренний уровень - это собственно данные, расположенные в файлах. В ведении СУБД также находится словарь данных, содержащий сведения обо всем, что хранится в базе данных (имена всех таблиц и представлений, хранимых процедур и триггеров, учетные записи пользователей СУБД и т.п.). Сведения такого рода принято называть метаданными.
Реляционная модель данных основывается на математических принципах теории множеств и математической логике. Эти принципы были впервые использованы для моделирования данных в 60-х годах прошлого века Коддом. Реляционная модель определяет, каким образом данные могут быть представлены (структура данных), каким образом данные могут быть защищены от некорректных изменений (целостность данных) и какие операции могут быть выполнены с данными (операции с данными). Основные понятия реляционной модели:
все данные концептуально представляются как упорядоченное набор строк и столбцов, называемых отношением;
все данные являются скалярными;
строка данных называется кортежем, количество кортежей называется кардинальным числом;
каждый столбец в кортеже называется атрибутом, количество атрибутов называется степенью отношения;
отсутствие информации описывается значением NULL;
потенциальный ключ K для отношения R - это подмножество множества атрибутов R, всегда обладающее свойством уникальности (т.е. нет двух кортежей в отношении R с одинаковым значение K) и свойством не избыточности (т.е. никакое из подмножеств K не обладает свойством уникальности). Потенциальный ключ, состоящий из более чем одного атрибута, называется составным, а из одного - простым. Первичный ключ - это потенциальный ключ, по которому физически упорядочены кортежи в отношении.
внешний ключ определяется следующим образом. Пусть R2 - некоторое отношение. Тогда внешний ключ FK в отношении R2 - это такое подмножество множества атрибутов R2, что существует отношение R1 с потенциальным ключом K и значение FK в любом кортеже R2 всегда совпадает со значением K некоторого кортежа в R1. Ограничение, по которому значения внешнего ключа должны быть адекватны значениям соответствующего потенциального ключа, называют ссылочным ограничением. Соответственно, под ссылочной целостностью понимают требование того, чтобы в базе данных не было нарушений ссылочных ограничений.
Следующие операции допустимыми над данными в реляционной модели:
проекция возвращает отношение, содержащие все кортежи заданного отношения после исключения из него некоторых атрибутов;
произведение возвращает отношение, содержащие кортежи, которые являются всеми возможными сочетаниями кортежей, принадлежащих двум исходным отношениям;
объединение возвращает отношение, содержащие все кортежи, принадлежащие двум исходным отношениям;
соединение возвращает отношение, кортежи которого являются соединением двух кортежей, принадлежащих исходным отношениям и имеющим общее значение для одного или более атрибутов исходных отношений; при этом общее значение атрибутов встречается в результирующем кортеже только один раз.