ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 10883
Скачиваний: 43
56
Глава 3. Реляционная модель
держащим множество кортежей
(a
1
, a
2
, . . ., a
n
) таких, что для
всех кортежей
(b
1
, b
2
, . . ., b
m
) ∈ S в отношении R должен суще-
ствовать кортеж
(a
1
, a
2
, . . ., a
n
, b
1
, b
2
, . . ., b
m
).
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Рассмотрим пример: пусть в БД имеются два отношения «ВУЗ» и «Направле-
ния подготовки», необходимо найти вузы, в которых осуществляется обучение по
всем направлениям подготовки (рис. 3.18).
Рис. 3.18 – Пример выполнения операции деления
3.4.3 Реляционное исчисление
Реляционное исчисление является прикладной ветвью формального механизма
исчисления предикатов первого порядка. Базисными понятиями исчисления явля-
ются понятие переменной с определенной для нее областью допустимых значений
и понятие правильно построенной формулы, опирающейся на переменные, преди-
каты и кванторы [1].
Реляционное исчисление основано на исчислении кортежей, где областью опре-
деления переменных являются тела отношений БД, т. е. допустимым значением
каждой переменной является кортеж тела отношения, и на исчислении доменов,
где областью определения переменных являются домены, на которых определе-
ны атрибуты отношения, т. е. допустимым значением каждой переменной является
значение домена.
Исчисление кортежей было введено Коддом в 1971 году — это нотация для
определения результата запроса через описание его свойств. В исчислении корте-
жей задача состоит в нахождении таких кортежей, для которых предикат является
истинным.
Пусть имеется БД, в состав которой входят два отношения «Студенты» с заго-
ловком (Stud_id, № зачетной книжки, ФИО студента, Место рождения, Дата рож-
дения, № группы) и отношение «Успеваемость» с заголовком (Stud_id, Наименова-
ние дисциплины, Семестр, Оценка). Необходимо получить список студентов и на-
именований дисциплин, по которым получены неудовлетворительные оценки во
втором семестре.
3.4 Технология манипулирования данными в реляционной модели
57
В результате формирования такого запроса с помощью операций реляционной
алгебры получилось бы алгебраическое выражение, которое читалось бы следую-
щим образом:
1) выполнить операцию соединения отношений «Студенты» и «Успеваемость»
по условию: (Студенты.Stud_id = Успеваемость.Stud_id);
2) ограничить результирующее отношение по условию: Оценка = 2;
3) ограничить результирующее отношение по условию: Семестр = 2;
4) спроецировать полученное отношение на атрибуты «ФИО студента», «На-
именование дисциплины».
Таким образом, для получения результирующего отношения, удовлетворяю-
щего нашим условиям, необходимо выполнить четыре последовательных шага,
каждому из которых соответствует одна реляционная операция. Результатом фор-
мулирования этого же запроса с помощью реляционного исчисления явилась бы
формула, которую можно было бы прочесть следующим образом.
Выбрать «ФИО студента» и «Наименование дисциплины» для студентов таких,
для которых существует кортеж в отношении «Успеваемость» с таким же значе-
нием «Stud_id», что и в отношении «Студенты», при этом выполняется условие
назначения атрибутов Семестр = 2 и Оценка = 2.
Здесь мы указали характеристики результирующего набора кортежей, не указав
способ его формирования. Для выполнения подобных запросов в СУБД предусмот-
рены процедуры выбора необходимых операций по обработке данных, а также их
последовательности. Обычно говорят, что алгебраическая формулировка является
процедурной, т. е. задающей правила выполнения запроса, а логическая — описа-
тельной (или декларативной), поскольку она всего лишь описывает свойства же-
лаемого результата [1].
Для исчисления кортежей характерно такое понятие, как правильно построен-
ные формулы WFF (Well-Formed Formula), предназначенные для выражения усло-
вий, накладываемых на кортежные переменные. В основе WFF лежат простые
сравнения (comparison) значений атрибутов переменных или некоторых констант.
Простое сравнение есть WFF, а WFF в круглых скобках есть простое сравнение.
Примером простого сравнения может быть следующее предложение: «Успевае-
мость.Оценка = 2».
Для построения более сложных WFF используются логические связки AND,
OR, NOT, а также конструкция If . . . Then.
Пусть F есть WFF, а C — простое сравнение, тогда правильно построенными
формулами являются следующие выражения: C AND F; C OR F; If C Then F.
Возможно также построение WFF с помощью кванторов существования и все-
общности.
Пусть F есть WFF, в которой используется некоторая переменная var, тогда
следующие выражения есть WFF:
∃ var (F); ∀ var (F).
Переменные, входящие в правильно построенную формулу, могут быть свя-
занными или свободными. Переменная называется свободной, если она входит
в состав такой WFF, при построении которой не использовались кванторы все-
общности или существования.
58
Глава 3. Реляционная модель
На практике это означает, что если для какого-то набора значений свободных
кортежных переменных при вычислении WFF получено значение true, то эти зна-
чения кортежных переменных могут входить в результирующее отношение [1].
Переменная называется связанной, если при построении WFF ее имя исполь-
зовано сразу после квантора
∃ или ∀.
Связанная переменная не видна за пределами минимальной WFF, связавшей
эту переменную, т. е. при вычислении значения такой WFF используется не одно
значение связанной переменной, а ее полная область определения.
Говоря о свободных и связанных переменных, имеют в виду свободные и свя-
занные вхождения переменных. Легко увидеть, что если переменная var является
связанной в WFF F, то во всех WFF, включающих данную, может использоваться
имя переменной var, которая может быть свободной или связанной, но в любом
случае не имеет никакого отношения к вхождению переменной var в WFF F [1].
. . . . . . . . . . . . . . . . . . . . . .
Пример 3.1
. . . . . . . . . . . . . . . . . . . . .
В следующем примере мы имеем несколько разнотипных вхождений перемен-
ных «Студенты» и «Успеваемость».
∃ Студенты (Студенты.Stud_id=Успеваемость.Stud_id) AND
∀ Успеваемость (Успеваемость.Семестр=2) AND
∀ Успеваемость (Успеваемость.Оценка=2);
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WFF предоставляют возможность сформулировать некоторые условия выборки
данных из отношений БД. Для использования реляционного исчисления в реаль-
ной работе с БД необходимо применение еще одного компонента, определяющего
набор и имена атрибутов результирующего отношения. Этот компонент реляцион-
ного исчисления называется целевым списком (target_list).
Что же касается исчисления кортежей, то выражением реляционного исчисле-
ния кортежей является конструкция вида target_list WHERE wff. Значением такого
выражения будет отношение, тело которого определяется WFF, а набор атрибутов
этого отношения определяется целевым списком.
Как было отмечено выше, в исчислении доменов областью определения пе-
ременных являются не тела отношений, а домены. Можно говорить о домен-
ных переменных, таких как «ФИО» (значения — допустимые ФИО студентов) или
«N_Group» (значения — допустимые номера групп) и т. д.
Формальным отличием исчисления доменов от исчисления кортежей являет-
ся наличие дополнительного набора предикатов, позволяющих выражать условия
членства.
В заключении раздела отметим, что на основе операций реляционной алгебры
и реляционного исчисления строятся языки манипулирования данными, наиболее
распространенным из которых является язык SQL, наиболее гибко сочетающий
в себе операции реляционной алгебры и реляционное исчисление.
Контрольные вопросы по главе 3
59
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Контрольные вопросы по главе 3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Перечислите основные понятия реляционной модели данных.
2. Сформулируйте основные свойства отношений.
3. Поясните смысл понятия целостности данных.
4. Дайте определение первой нормальной формы.
5. Перечислите и кратко охарактеризуйте операции реляционной алгебры.
6. Приведите примеры выполнения операций реляционной алгебры.
7. Поясните смысл применения реляционного исчисления.
Глава 4
ТЕХНОЛОГИЯ ПРОЕКТИРОВАНИЯ
РЕЛЯЦИОННЫХ БАЗ ДАННЫХ
4.1 Нормализация отношений
4.1.1 Термины и определения
При проектировании базы данных разработчику необходимо определить кон-
цептуальное и соответствующее ему физическое представление, после чего проис-
ходит создание внешних представлений с учетом потребностей прикладных про-
грамм, использующих спроектированную БД. Можно выделить две стадии проек-
тирования базы данных — логическое и физическое проектирование.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Логическое проектирование БД ставит своей целью представле-
ние реальной предметной области в абстрактных моделях таким
образом, чтобы эти модели данных максимально отражали в се-
бе объекты выбранной предметной области.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Что касается физического проектирования БД, то на этой стадии на основа-
нии спроектированной логической модели предметной области создается структу-
ра данных, определенная для конкретных СУБД, а также предусмотрено создание
дополнительных элементов БД (триггеров, индексов и т. д.).
При проектировании реляционных БД трудно представить какие-либо общие
решения по физическому проектированию. Ограничения в каждом конкретном
случае накладывает СУБД, в которой предполагается создавать базу данных.
Таким образом, абстрагируясь от конкретных СУБД, будем считать, что при
проектировании реляционной БД необходимо определить отношения, составляю-
щие БД, их атрибуты, а также ключи и связи между отношениями.