Мой дядя самых честных правил,
Когда не в шутку занемог,
Он уважать себя заставил
И лучше выдумать не мог.
А. С. Пушкин. Евгений Онегин, гл. 1,1
Создание моделей в среде Oracle SQL Developer Data Modeler базируется на теории реляционных баз данных. База данных – это совокупность данных, организованных с определенной целью.
В этом определении слово «организованных» означает, что указанная совокупность включает данные, которые сохраняются, имеют определенный формат (отформатированы), к ним может быть обеспечен доступ (доступны), они могут быть представлены потребителю информации в приемлемом виде [DM9].
Упоминанием в определении слова «цели» подчеркивается, что состав данных должен соответствовать некой задаче: с одной стороны, в базе не должны содержаться данные, не имеющие отношения к задаче, а с другой – в ней должна содержаться вся информация, касающаяся задачи.
Хорошим примером БД может служить телефонный справочник. Он содержит данные, имеющие прямое отношение к его назначению – имена абонентов, которые открывают доступ к номеру телефона. В справочнике отсутствует избыточная информация (скажем, цвет аппарата абонента), т. е. в этой простейшей базе содержатся сведения, непосредственно связанные с целью ее создания.
Приведем определение СУБД (система управления базой данных). Это есть программный комплекс, обеспечивающий функционирование базы данных. СУБД играет роль кладовщика при данных, отвечает за их сохранность, безопасность, целостность, взаимное соответствие и обеспечивает доступ пользователей к данным.
Реляционный подход к управлению базами данных основан на математической модели, использующей методы реляционной алгебры и реляционного исчисления.
Наличие солидной теоретической базы является одним из преимуществ реляционного подхода. Вот как об этом пишет Дейт: «Реляционная фактически означает различная. Она является различной, поскольку не является специальной. Старые же системы, напротив, имели специальное назначение; они предоставляли решение для определенных задач того времени, но у них не было твердой теоретической базы. А у реляционных систем такая база есть..., а это означает, что [они] надежны как скала... Благодаря этому твердому основанию, поведение реляционных систем отличается предсказуемостью; пользователь (возможно, не осознавая этого) держит в голове простую модель этого поведения, и это позволяет ему предвидеть, что сделает система в той или иной ситуации. Сюрпризов быть не может (или не должно быть). Предопределенность означает, что пользовательский интерфейс прост для понимания, обучения, изучения, использования и запоминания» [DATE6].
Тем не менее большинство действительно необходимых нам определений из области управления базами данных скорее относятся к практической, чем к теоретической стороне этого вопроса.
Кодд (Е. F. Codd), автор реляционной модели, разработал список критериев, которым должна удовлетворять реляционная модель. Описание этого списка, называемого правилами Кодда, требует введения сложной терминологии и теоретических выкладок. Мы опишем эти правила в несколько упрощенном виде.
Итак, чтобы считаться соответствующей реляционной модели, СУБД должна [DM10]:
представлять всю информацию в виде таблиц;
поддерживать логическую структуру данных, независимо от их физического представления;
использовать язык высокого уровня для структурирования, выполнения запросов и изменения информации в БД (обычно для этого используется язык SQL);
поддерживать основные реляционные операции (выбор, проектирование и соединение), а также теоретико-множественные операции, такие, как объединение, пересечение, вычитание и декартово произведение;
поддерживать виртуальные таблицы (представления), обеспечивая пользователям альтернативный способ просмотра данных в таблицах;
различать в таблицах неизвестные значения (null), нулевые значения и пропуски в данных;
обеспечивать механизмы для поддержки целостности, авторизации, транзакции и восстановления данных.
Рассмотрим эти правила, являющиеся основными законами реляционного мира.