С.Д. Кузнецов - Основы баз данных (1121716), страница 9
Текст из файла (страница 9)
Ключевые слова: Реляционный подход к организации баз данных, реляционные базы данных, реляционная модель данных, тип данных, домен, атрибут, кортеж, отношение, первичный ключ, ограничение домена, заголовок отношения, тело отношения, значение отношения, переменная отношения, степень отношения, схема реляционной базы данных, возможный ключ, ограничение целостности, первая нормальная форма, целостность сущности, внешний ключ, целостность по ссылкам, неопределенное значение ((к(П ЬЬ).
37 Основы оаэ данных Курс Основные понятия реляционных баз данных Выделим следующие основные понятия реляционных баз данных; тип данных, домен, атрибут, кортеж, отношение, первичный ключ. Для начала покажем смысл этих понятий на примере отношения СЛУЖАЩИЕ, содержашего информацию о служащих некоторого предприятия (рис. 2.1). Типы данных Рис.
2.1. Соотношение основных понятий реляционного подхода Тип данных Значения данных, хранимые я реляционной базе данных, являются типизированными, т. е. известен тип каждого хранимого значения. Понятие типа данных в реляционной модели данных полностью соответствует понятию типа данных в языках программирования.
Напомним, что традиционное (нестрогое) определение типа данных состоит из трех основных компонентов: определение множества значений данного типа; определение набора операций, применимых к значениям типа; определение способа внешнего представления значений типа (литералов). 38 Лекция 2 Веедение а реляционную модель данных Обычно в современных реляционных базах данных допускается хранение символьных, числовых данных (точных и приблизительных), специализированных числовых данных (таких, как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Кроме того, в реляционных системах поддерживается возможность определения пользователями собственных типов данных (более подробно мы обсудим это в лекции 19, посвященной объектным расширениям языка КОЕ) В примере на рис.
2.1 мы имеем дело с данными трех типов: строки символов, целые числа н «деньги». Домен Понятие домена более специфично для баз данных, хотя и имеются аналогии с подтипами в некоторых языках программирования (более того, в своем» Третьем манигресее» Кристофер Дейт и Хью Дарвен вообще ликвидируют различие между доменом и типом данных). В общем виде домен опрелеляется путем задания некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу этого типа данных (ограничения домена).
Элемент данных является элементом домена в том и только в том случае, если вычисление этого логического выражения дает результат истина (для логических значений мы будем попеременно использовать обозначения исвина и ложь или йъе и Та(зе). С каждым доменом связывается имя, уникальное среди имен всех доменов соответствукпцей базы ланных. Наиболее правильной интуитивной трактовкой понятия домена является его восприятие как допустимого потенциального, ограниченного подмножества значений данного типа. Например, домен имЕМА в нашем примере определен на базовом типе символьных строк, но в число его значений могут входить только те строки, которые могут представлять имена (в частности, для возможности представления русских имен такие строки не могут начинаться с мягкого или твердого знака и не могут быть длиннее, например, 20 символов).
Если некоторый атрибут отношения определяется на некотором домене (как, например, на рис. 2.1 атрибут Олу ммя определяется на домене нменА), то в дальнейшем ограничение домена, в частности, играет роль ограничения целостности, накладываемого на значения этого атрибута. Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов МОмеРА пропускОВ и нОмеРА О.делОВ относятся к типу целых чисел, но не являются сравнимыми (допускать их сравнение было бы бессмысленно). 39 Курс Основы баэ данных Заголовок отношения, кортеж, тело отношения, значение отношения, переменная отношения Понятие отношения является наиболее Фундаментальным в реляционном подходе к организации баз данных, поскольку и-арное отношение является единственной родовой структурой данных, хранящихся в реляционной базе данных.
Это отражено и в общем названии падхода — термин реляционный (ге)аг(опа!) происходит от ге(агюп (отношение). Однако сам термин отношение является исключительно неточным, поскольку, говоря про любые сохраняемые данные, мы должны иметь в виду тип этих данных, значения этого типа и переменные, в которых сохраняются значения. Соответственно, для уточнения термина отношение выделяются понятия заголовка отношения, значения отношения и переменной отношения. Кроме того, нам потребуется вспомогательное понятие кортежа.
Итак, заголовком (или схемой) отношения: (Иг) называется конечное множество упорядоченных иар вида .А, т>, гле А называется именем атрибута, а т обозначает имя некоторого базового типа или ранее определенного домена. По определению требуется, чтобы все имена атрибутов в заголовке отношения были различны. В примере на рис. 2.1 заголовком отношения Од ущлщищ является множествопар (<сту номер, номера дрог1усков>, <слу имя, имена>, <слу зарп, размеры выплат>, <слу отд номер,номера отделов>). Если все атрибуты заголовка отношения определены на разных доменах, то, чтобы не плодить лишних имен, разумно использовать для именования атрибутов имена соответствующих доменов (не забывая, конечно, о том, что это всего лишь удобный способ именования, который не устраняет различия между понятиями домена и атрибута). Кортежем гг, соответствующим заголовку нг, называется множество упорядоченных трицлетов вида <А, т, у>, гю одному такому триплету для каждого атрибута в нг.
Третий элемент — « — триплета <А, т, у> должен являться допустимым значением типа данных или домена т. Заголовку отношения служлщии соответствуют, например, следующие кортежи: (<слу номер, номера цропусков, 2934>, <слу ммя, гогена, Иванов>, <слу зара, размеры выплат, 22.000>, <слу отд номер, нокера отде;ов, 310>), (<слу номер, номера дропусков, 2940>, <слу имя, имена, Кузнецов>, <слу зарп, размеры выплат, 35.000>, <слу отд номер, номера отделов, 320>). Телом вд отношения г называется произвольное множество кортежей гг. Одно из возможных тел отношения Олущдщии показано на рис.
2.1. Заметим, что в общем случае, как это демонстрируют, в частности, рис. 2, ! и пример предыдущего абзаца, могут существовать такие кортежи ьг, которые соответствуют Нг, но не входят в Бг. Значением чг отношения г называется пара множеств нг и вг. Одно из допустимых значений отношения ОЛУждщищ показано на рис. 2.1. Лекция 2 Введение в реляционную модель данных В изменчивой реляционной базе данных хранятся отношения, значения которых изменяются во времени. Переменной ЧАВг называется именованный контейнер, который может содержать любое допустимое значение уг. Естественно, что при определении любой УАВ гтребустся указывать соответствующий заголовок отношения нш Здесь стоит подчеркнуть, что любая принятая на практике операция обновления базы данных — тняквт (вставка кортежа в переменную отношения), Вдьдтк (удаление кортежа из значения-отношения переменой отношения) и нрплтк (модификация кортежа значения-отношения переменной отношения) — с молельной точки зрения является операцией присваивания переменной отношения некоторого нового значения-отношения.
Это совсем не означает, что перечисленные операции лолжны выполняться именно таким образом в СУБД: главное, чтобы результат операций соответствовал этой модельной семантике. Заметим, что в дальнейшем в тех случаях, когла точный смысл термина понятен из контекста, мы будем использовать термин отношение как в смысле значение отношения, так и в смысле переменная отношения. По опрелелению, степенью, или лариостью>, заголовка отношения, кортежа, соответствующего этому заголовку, тела отношения, значения отношения и переменной отношения является мощность заголовка отношения. Например, степень отношения СЛУЖАЩИЕ равна четырем, т. е. оно является 4-арным (кватернарным). При приведенных определениях разумно считать схемой реляционной базы данных набор нар <лмя тглвг, нгь, включающий имена и заголовки всех переменных отношения, которые определены в базе данных.
Реляционная база данных — это набор пар <УАВг, нх> (конечно, каждая переменная отношения в любой момент времени содержит некоторос значение-отношение, в частности, пустое). Заметим, что в классических реляционных базах данных после определения схемы базы данных могли изменяться только значения переменных отношений, Однако теперь в большинстве реализаций допускается и изменение схемы базы данных: определение новых и изменение заголовков существующих переменных отношений. Это принято называть эволюцией схемы базы данных. Первичный ключ и интуитивная интерпретация реляционных понятий По определению, первичным ключом переменной отношения является такое подмножество* 5 множества атрибутов ее заголовка, что в лю- ' В вырожденнои случае, когда заголовок переменной отношения является пустым множеством„первичный ключ этой переменной отношения состоит из пустого подмножества заголовка.
Легко проверить, что этот случай не противоречит общему определению. 4т Основы баа данных Курс бое время значение первичного ключа (составное, если в состав первичного ключа входит более одного атрибута) в любом кортеже тела отношения отличается от значения первичного ключа в любом другом кортеже тела этого отношения, а никакое собственное подмножество* д этим свойством не обладает. В следующем разделе мы покажем, что существование первичного ключа у любого значения отношения является следствием одного из фундаментальных свойств отношений, а именно того свойства, что тело отношения является множеством кортежей.