top of page

Лекция №3

Тема: «Реляционная модель»

Используемая терминология

Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица. Дело в том, что Кодд, будучи опытным математиком, широко использовал математическую терминологию, особенно из теории множеств и логики предикатов. В этом разделе поясняется используемая в реляционной модели терминология, а также ее основные структурные понятия.

Структура реляционных данных

Отношение. Плоская таблица, состоящая из столбцов и строк.;

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

Атрибут. Именованный столбец отношения.

Домен. Набор допустимых значений одного или нескольких атрибутов.

Кортеж. Строка отношения.

Элементами отношения являются кортежи, или строки, таблицы. В отношении Branch каждая строка содержит семь значений, по одному для каждого атрибута. Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым, а значит, и иметь тот же смысл.

Описание структуры отношения вместе со спецификацией доменов и любыми другими ограничениями возможных значений атрибутов иногда называют его заголовком (или содержанием (intension)). Обычно оно является фиксированным, до тех пор, пока смысл отношения не изменится за счет добавления в него дополнительных атрибутов. Кортежи называются расширением (extension), состоянием (state) или телом отношения, которое со временем изменяется.

Степень. Степень отношения определяется количеством атрибутов, которое оно содержит,

Отношение Branch, показанное на рис. 3.1, имеет четыре атрибута, и, следовательно, его степень равна четырем. Это значит, что каждая строка таблицы является четырехэлементным кортежем, т.е. кортежем, содержащим  четыре значения. Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением (или одноэлементным кортежем). Отношение с двумя атрибутами называется бинарным (binary), отношение с тремя атрибутами — тернарным (ternary), а для отношений с большим количеством атрибутов используется термин п-арное (тг-агу). Определение степени отношения является частью заголовка отношения.

Кардинальность. Количество кортежей, которое содержится в отношении.

Количество содержащихся в отношении кортежей называется кардинальностью отношения. Эта характеристика меняется при каждом добавлении или удалении кортежей. Кардинальность является свойством тела отношения и определяется текущим состоянием отношения в произвольно взятый момент.

И наконец, мы подошли к определению самой реляционной базы данных.

Реляционная база данных. Набор нормализованных отношений, которые различаются по именам.

Реляционная база данных состоит из отношений, структура которых определяется с помощью особых методов, называемых нормализацией (normalization).

Альтернативная терминология

Терминология, используемая ≫ реляционной модели, порой может привести к путанице, поскольку помимо предложенных двух наборов терминов существует еще один — третий. Отношение в нем называется файлом (file), кортежи — записями (records), а атрибуты — полями (fields). Эта терминология основана на том факте, что физически реляционная СУБД может хранить каждое отношение в отдельном файле. В табл. 3.2 показаны соответствия, существующие между тремя упомянутыми выше группами терминов.

Математические отношения

Для понимания истинного смысла термина отношение рассмотрим несколько математических понятий. Допустим, существуют два множества, DI и D2 , где D!= {2,4} и D2= {1,3,5}. Декартовым произведением этих двух множеств (обозначается как D2XD2) называется набор из всех возможных упорядоченных пар, в которых первым идет элемент множества Dl t а вторым — элемент множества D2.

Альтернативный способ выражения этого произведения заключается в поиске всех комбинаций элементов, в которых первым идет элемент множества Dlf а вторым — элемент множества D3. В данном примере получим следующий результат:

DpOj = { (2,1) , (2,3) , (2,5) , (4,1) , {4,3} , (4,5) }

Любое подмножество этого декартова произведения является отношением.

Например, в нем можно выделить отношение R, показанное ниже.

R = { (2,1) , ( 4 , 1 ) }

Для определения тех возможных пар, которые будут входить в отношение, можно задать некоторые условия их выборки. Например, если обратить внимание на то, что отношение R содержит все возможные пары, в которых второй элемент равен 1, то определение отношения R можно сформулировать следующим образом:

R = { (х,у) |xeD1( yeD2 и y=l}

На основе тех же множеств можно сформировать другое отношение, S, в котором первый элемент всегда должен быть в два раза больше второго. Тогда определение отношения S можно сформулировать так:

S = { (х,у) |xeD1 (yeD2 и х=2у}

В этом примере заданному условию соответствует только одна возможная пара данного декартова произведения:

S = {(2,1)}

Понятие отношения можно легко распространить и на три множества. Пусть имеются три множества — Dl t D2 и D3 > Декартово произведение D^xD2xD^ этих трех множеств является набором, состоящим из всех возможных упорядоченных троек элементов, в которых первым идет элемент множества Dl t вторым — элемент множества D2, а третьим — элемент множества D3. Любое подмножество этого декартова произведения является отношением. Рассмотрим следующий пример трех множеств и вычислим их декартово произведение:

D! = { ( 1 , 3 ) } , D2 = { ( 2 , 4 ) } и Da = { ( 5 , 6 ) }

DiXD^XDa =

{ ( 1 , 2 , 5 ) , ( 1 , 2 , 6 ) , ( 1 , 4 , 5 ) , ( 1 , 4 , 6 ) , ( 3 , 2 , 5 ) , ( 3 , 2 , 6 ) , ( 3 , 4 , 5 ) , ( 3 , 4 , 6 ) }

Любое подмножество из приведенных выше упорядоченных троек элементов является отношением. Увеличивая количество множеств, можно дать обобщенное определение отношения на п доменах. Пусть имеется п множеств Db D2, ..., Dn .Декартово произведение для этих п множеств можно определить следующим образом:

DiXDzX. . .xDn = {(d1 (d2 , dj l^eD^djeDa, . - . ,dneDn}

Обычно это выражение записывают в таком символическом виде:

Любое множество л-арных кортежей этого декартова произведения является отношением п множеств. Обратите внимание на то, что для определения этих отношений необходимо указать множества, или домены, из которых выбираются значения.

Отношения в базе данных

Реляционная схема. Именованное отношение, которое определено на основе множества пар атрибутов и имен доменов

Схема реляционной базы данных.

Множество реляционных схем, различающихся по именам.

Свойства отношений

Отношение обладает следующими характеристиками.

• Отношение имеет имя, которое отличается от имен всех других отношений в реляционной схеме.

• Каждая ячейка отношения содержит только одно элементарное (неделимое) значение.

• Каждый атрибут имеет уникальное имя.

• Значения атрибута берутся из одного и того же домена.

• Каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может.

• Порядок следования атрибутов не имеет значения.

• Теоретически порядок следования кортежей в отношении не имеет значения. (Но практически этот порядок может существенно повлиять на эффективность доступа к ним.)

Большая часть свойств реляционных отношений происходит от свойств математических отношений.

• При вычислении декартова произведения множеств с простыми однозначными элементами (например, целочисленными значениями) каждый элемент в каждом кортеже имеет единственное значение. Аналогично, каждая ячейка отношения содержит только одно значение. Однако математическое отношение не нуждается в нормализации. Кодд предложил запретить применение повторяющихся групп с целью упрощения реляционной модели данных.

• Набор возможных значений для данной позиции отношения определяется множеством, или доменом, на котором определяется эта позиция. В таблице все значения в каждом столбце должны происходить от одного и того

же домена, определенного для данного атрибута.

• В множестве нет повторяющихся элементов. Аналогично, отношение не может содержать кортежей-дубликатов.

• Поскольку отношение является множеством, то порядок элементов не имеет значения. Следовательно, порядок кортежей в отношении несуществен.

Реляционные ключи

Суперключ (superkey). Атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения.

Суперключ однозначно обозначает каждый кортеж в отношении. Но суперключ может содержать дополнительные атрибуты, которые необязательны для уникальной идентификации кортежа, поэтому нас будут интересовать суперключи, состоящие только из тех атрибутов, которые действительно необходимы для уникальной идентификации кортежей.

Потенциальный ключ. Суперключ, который не содержит подмножества, также являющегося суперключом данного отношения.

Потенциальный ключ К для данного отношения R обладает двумя свойствами.

• Уникальность. В каждом кортеже отношения R значение ключа К единственным образом идентифицируют этот кортеж.

• Неприводимость. Никакое допустимое подмножество ключа К не обладает свойством уникальности.

Первичный ключ. Потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения.

Внешний ключ. Атрибут или множество атрибутов внутри отношения, которое соответствует потенциальному ключу некоторого (может быть, того же самого) отношения.

Реляционная целостность

В предыдущем разделе была рассмотрена структурная часть реляционной модели данных. Как упоминалось в разделе 2.3, модель данных имеет две другие части: управляющую часть, которая определяет типы допустимых операций с данными, и набор ограничений целостности, которые гарантируют корректность данных. В этом разделе рассматриваются реляционные ограничения целостности, а в следующем — реляционные операции управления данными.

Поскольку каждый атрибут снязан с некоторым доменом, для множества допустимых значений каждого атрибута отношения определяются так называемые ограничения домена. Помимо этого, задаются два важных правила целостности, которые, по сути, являются ограничениями для всех допустимых состояний базы данных. Эти два основных правила реляционной модели называются целостностью сущностей и ссылочной целостностью. Однако, прежде чем приступить к изучению этих правил, следует рассмотреть понятие пустых значений.

Пустые значения

Пустое значение. Указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого кортежа.

Пустое значение (которое условно обозначается как NULL) следует рассматривать как логическую величину "неизвестно". Другими словами, либо это значение не входит в область определения некоторого кортежа, либо никакое значение еще не задано. Ключевое слово NULL представляет собой способ обработки неполных или необычных данных. Однако NULL не следует понимать как нулевое численное значение или заполненную пробелами текстовую строку. Нули и пробелы представляют собой некоторые значения, тогда как ключевое словоNULL обозначает отсутствие какого-либо значения. Поэтому NULL следует рассматривать иначе, чем другие значения. Некоторые авторы используют термин "значение NULL", но на самом деле NULL не является значением, а лишь обозначает его отсутствие, поэтому термин "значение NULL" можно использовать лишь с определенными оговорками.

Целостность сущностей

Первое ограничение целостности касается первичных ключей базовых отношений. Здесь базовое отношение определяется как отношение, которое соответствует некоторой сущности в концептуальной схеме (см. раздел 2.1). Более точное определение этого понятия приводится в разделе 3.4.

Целостность сущностей. В базовом отношении ни один атрибут первичного, ключа не может содержать отсутствующих значений, обозначаемых как NULL.

По определению, первичный ключ — это минимальный идентификатор, который используется для уникальной идентификации кортежей. Это значит, что никакое подмножество первичного ключа не может быть достаточным для уникальной идентификации кортежей. Если допустить присутствие NULL в любой части первичного ключа, это равносильно утверждению, что не все его атрибуты необходимы для уникальной идентификации кортежей, что противоречит определению первичного ключа. Например, поскольку branchNo является первичным ключом отношения Branch, то нельзя допустить вставку в отношение Branch кортежа, содержащего NULL в атрибуте branchNo. В качестве еще одного примера рассмотрим составной первичный ключ отношения Viewing, который состоит из атрибутов номера арендатора (clientNo) и номера объекта собственности (propertyNo).

В отношение Viewing не допускается вставка кортежей, содержащих NULL в атрибуте clientNo или propertyNo, или и в том и в ином атрибуте.__

Ссылочная целостность

Второе ограничение целостности касается внешних ключей.

Ссылочная целостность. Если в отношении существует внешний ключ, то значение внешнего ключа должно либо соответствовать значению потенциального ключа некоторого кортежа в его базовом отношении! либо внешний ключ должен полностью состоять из значений HULL.

Корпоративные ограничения целостности

Корпоративные ограничения целостности. Дополнительные правила поддержки целостности данных, определяемые пользователями или администраторами базы данных.

Терминология

Те отношения, с которыми мы имели дело до сих пор, называются базовыми отношениями.

Базовое отношение. Именованное отношение, соответствующее сущности в концептуальной схеме, кортежи которого физически хранятся в базе данных.

Понятие представления определяется на основе базовых отношений.

•Представление. Динамический результат, одной или нескольких реляционных операций над базовыми отношениями с целью создания некоторого иного отношения. Представление является виртуальным отношением, которое реально в базе данных не существует, но создается по требованию отдельного пользователя в момент поступления этого требования.

Назначение представлений

Механизм представлений может использоваться по нескольким причинам.

• Он предоставляет мощный и гибкий механизм защиты, позволяющий

скрыть некоторые части базы данных от определенных пользователей.

Пользователь не будет иметь сведений о существовании каких-либо атрибутов или кортежей, отсутствующих в доступных ему представлениях.

• Он позволяет организовать доступ пользователей к данным наиболее удобным для них образом, поэтому одни и те же данные в одно и то же время могут рассматриваться разными пользователями совершенно различными способами.

• Он позволяет упрощать сложные операции с базовыми отношениями. Например, если представление будет определено на основе соединения двух отношений (см. раздел 4.1), то пользователь сможет выполнять над ним

простые унарные операции выборки и проекции, которые будут автоматически преобразованы средствами СУБД в эквивалентные операции с выполнением соединения базовых отношений.

Представление следует проектировать, выбирая такой способ поддержки

внешней модели, который был бы наиболее удобен пользователю. Ниже приведены примеры применения подобного подхода на практике.

• При работе с записями отношения Branch пользователям, помимо различных атрибутов из записей этого отношения, может потребоваться выбирать имена и другие сведения о соответствующих менеджерах. Подобное представление создается путем соединения отношений Branch и Staff с последующей его проекцией по значению атрибута Manager.

• Большинство пользователей при работе с записями отношения staff не

должны иметь доступ к атрибуту salary.

• Атрибуты могут переименовываться, так что пользователь, который привык использовать вместо номеров отделений (атрибут branchNo) их полное название (Branch Number), сможет использовать соответствующий текст в качестве заголовка столбца.

• Каждому сотруднику может быть предоставлено право просматривать записи с характеристиками только тех объектов недвижимости, за которые он отвечает.

© 2015 Селюн Екатерина Викторовна. 

bottom of page