Нормальная форма Бойса-Кодда.
Лекции по курсу "Базы данных" 3-4 курс (6-7 сем) Специальность: Прикладная математика и информатика (бакалавры) Семестр 6 Раздел 1. Введение в теорию баз данных Тема 1.1. Основные требования к БД и СУБД. Модели данных. Типы связей. База данных (сокращённо БД) есть совокупность взаимосвязанных данных некоторой предметной области, организованных так, чтобы обеспечить эффективность хранения, изменения и получения информации. Система управления базой данных (СУБД) – совокупность программ системного и прикладного характера, обеспечивающих управление и функционирование БД. Требования к организации БД. 1) Отсутствие дублирования данных. При дублировании: а) увеличивается объём хранимой информации; б) может возникнуть противоречие в хранимых данных, если изменения будут сделаны только в одном месте; 2) Возможность совместного использования БД разными пользователями. Методы реализации этого требования: блокировка записей, разделение прав пользователей и т.д. 3) Возможность расширения БД, в частности: а) добавление новых данных без изменения их организации; б) добавление новых типов данных и новых связей между ними. 4) Эффективность доступа к БД. В основном это требование предъявляется к БД, работающим в режиме реального времени. 5) Целостность базы данных. В это понятие входит: а) физическая целостность, т.е., сохранность информации на физических носителях; б) логическая целостность, т.е., непротиворечивость данных, хранящихся в БД; в) актуальность данных, т.е., соответствие хранящихся данных реальному положению вещей. Для обеспечения целостности данных используются различные методы, от проверки вводимых данных на корректность до периодического дублирования всей базы данных. 6) Защита данных от несанкционированного доступа. Различается: а) безопасность данных – защита данных от изменения пользователем, не имеющим на это права; б) секретность данных – запрет на просмотр данных пользователем, не имеющим на это права.
Система управления БД.
СУБД есть система, обеспечивающая управление и функционирование БД. Необходимость такой системы выявилась уже в первых разработках БД. Оказалось, что заново разрабатывать для каждой создаваемой БД набор прикладных программ трудоёмко и неэкономично. Поэтому появились программные системы универсального характера, реализующие все виды работ с базой данных. Развитие таких систем привело к созданию современных СУБД как инструмента для разработки и эксплуатации БД.
Структура и функции СУБД.

Пользователь
--------------------------- интерфейс пользователя
СУБД
------------------ интерфейс логических записей
Процедуры доступа
------------------ интерфейс физических записей
База данных
Основные функции
1) Описание данных. При создании БД программист должен разработать концептуальную модель данных, часто называемую схемой базы данных. В первых СУБД для писания структуры данных использовался специальный язык описания данных, в современных системах в качестве такого языка используется язык SQL или его графические альтернативы.
Схема данных в некотором внутреннем представлении хранится в БД вместе с самими данными.
2) Манипулирование данными. Сюда входит добавление, изменение, удаление и поиск данных. Для этого используется язык манипулирования данных (обычно подмножество языка SQL) или графический интерфейс.
3) Создание отчётов. СУБД оформляет отобранные по какому либо критерию записи БД в виде документа (отчёта), который можно распечатать на бумаге. Форму отчёта задаёт пользователь.
4) Ведение системного журнала. Системный журнал – это средство восстановления БД на любой момент времени в "прошлом" и настоящем. СУБД запоминает все изменения, сделанные в БД в журнале. При необходимости можно вернуть БД к прошлому моменту, сделав в обратном порядке изменения, обратные записям в журнале.
Обычно периодически создают полную копию БД, а в журнал записывают изменения, сделанные после этого момента. При утере информации (например, при порче физического носителя оригинала БД), используя копию и системный журнал, можно полностью восстановить БД на настоящий момент времени.
Понятие модели.
Любой реальный объект, процесс или явление обладает бесконечным числом свойств и взаимосвязей. В то же время в силу ограниченности вычислительных ресурсов невозможно сохранить всю информацию о каждом объекте. Поэтому всегда вместо реального объекта, процесса или явления рассматривается его информационная модель.
Информационная модель представляет совокупность наиболее существенных элементов объекта и связей (отношений) между ними. Модель наглядно можно представить в виде графа, в котором вершинами являются элементы, а рёбрами – связи (отношения).
Пример – схема метрополитена (вершины – станции метро, рёбра – перегоны метро).
Типы связей
Связи информационных объектов могут быть трёх типов:
1) одно-однозначные (1:1); A B
2) одно-многозначные (1:M); A B
3) много-многозначные (N:M). A B
Одно-однозначные: каждому значению элемента данных A соответствует только одно значение элемента данных B и наоборот, каждому значению элемента данных B соответствует только одно значение элемента данных A. Пример: студент – зачётка.
Одно-многозначные: каждому значению элемента данных A может соответствовать несколько значений элемента данных B, но не наоборот (т.е., каждому значению элемента данных B соответствует только одно значение элемента данных A). Пример: группа – студент.
Много-многозначные: каждому значению элемента данных A может соответствовать несколько значений элемента данных B, и наоборот, каждому значению элемента данных B может соответствовать несколько значений элемента данных A. Пример: группа – преподаватель.
Задача. Установить тип связи между элементами данных:
а) покупатель – товар;
б) человек – паспорт;
в) x – sin(x);
г) сотрудник – табельный номер.
Тема 1.2. Методология проектирования БД. Модель сущность-связь.
При проектировании БД сначала разрабатывается концептуальная модель БД, в которой на естественном языке описываются объекты предметной области и их взаимосвязи. Тем самым выделяется и описывается структура информации, которая будет храниться в БД.
Концептуальная модель не зависит от используемой СУБД и является основой для построения логической модели БД. Логическая модель отражает информационное содержание БД (структуру БД) в терминах используемой СУБД. В частности, в реляционной БД это набор таблиц с ключевыми полями и связями между ними.
Логическая модель описывает всю совокупность данных БД. Однако достаточно часто приходится рассматривать только часть данных, доступных определённой группе пользователей. Логическое представление таких данных называется внешней моделью или пользовательским представлением.
Например, сотрудника отдела кадров интересует информация о преподавательском составе, но ему не нужны данные о студентах. В то же время информация о студентах является основной для работы деканатов.
Физическая модель – это реальное размещение в памяти или на жёстком диске данных БД, а также конкретные методы организации хранения и поиска информации. Пользователя БД совершенно не интересует физическая модель БД, но разработчик БД может учитывать особенности размещения информации для оптимизации работы СУБД.
Этап проектирования БД включает в себя разработку концептуальной и логической модели БД. Он является самым важным этапом в разработке информационной системы и часто называется этапом инфологического проектирования.
Этап реализации включает в себя выбор конкретной СУБД и создание объектов БД в выбранной СУБД.
Этап эксплуатации начинается с заполнения БД реальными данными. В начальный период эксплуатации БД (он часто называется опытной эксплуатацией) выявляются недостатки и ошибки с структуре БД, уточняются требования к функционалу БД и т.п. При необходимости в БД вносятся соответствующие изменения.
При описании структуры БД часто используется модель "сущность – связь". С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
Сущность описывает класс однотипных объектов. Сущность имеет имя, уникальное в пределах моделируемой системы. Объект, которому соответствует понятие сущности, имеет свой набор атрибутов — характеристик, определяющих свойства данного представителя класса. При этом набор атрибутов должен быть таким, чтобы можно было различать конкретные экземпляры сущности. Например, у сущности Сотрудник может быть следующий набор атрибутов: Табельный номер, Фамилия, Имя, Отчество, Дата рождения.
Атрибут (или набор атрибутов), однозначно идентифицирующий конкретный экземпляр сущности, называют ключевым.
Экземпляром сущности Сотрудник будет описание конкретного сотрудника предприятия. Одно из общепринятых графических обозначений сущности — прямоугольник, в верхней части которого записано имя сущности, а ниже перечисляются атрибуты, причем ключевые атрибуты помечаются, например, подчеркиванием или специальным шрифтом:
| СОТРУДНИК |
| Табельный номер Фамилия Имя Отчество Дата рождения |
Между сущностями могут быть установлены связи — бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). Она показывает, как связаны экземпляры сущностей между собой. Если связь устанавливается между двумя сущностями, то она определяет взаимосвязь между экземплярами одной и другой сущности. Например, если у нас есть связь между сущностью «Студент» и сущностью «Преподаватель» и эта связь — руководство дипломными проектами, то каждый студент имеет только одного руководителя, но один и тот же преподаватель может руководить множеством .студентов-дипломников. Поэтому это будет связь «один-ко-многим» (1:N), один со стороны «Преподаватель» и многие со стороны «Студент».
СТУДЕНТ ßß пишет диплом <> руководит à ПРЕПОДАВАТЕЛЬ
В качестве примера спроектируем инфологическую модель библиотеки. Разработку модели начнем с выделения основных сущностей.
Сущность «Книги». Каждый экземпляр сущности «Книги» соответствует не конкретной книге, стоящей на полке, а описанию некоторой книги, которое дается обычно в предметном каталоге библиотеке. Ключевым атрибутом книги как издания, является код ISBN (англ. International Standard Book Number — уникальный номер книжного издания, необходимый для распространения книги в торговых сетях и автоматизации работы с изданием). Другие атрибуты: Название, Автор(ы), Издательство, Год издания и т.д. Каждая книга может присутствовать в нескольких экземплярах, и это как раз те конкретные книги, которые стоят на полках библиотеки.
Для того чтобы отразить это, мы должны ввести сущность «Экземпляры», которая будет содержать описания всех экземпляров книг, которые хранятся в библиотеке. Каждый экземпляр имеет уникальный инвентарный номер, однозначно определяющий конкретную книгу. Кроме того, каждый экземпляр книги может находиться либо в библиотеке, либо на руках у некоторого читателя, и в последнем случае для данного экземпляра указываются дополнительно дата взятия книги читателем и дата предполагаемого возврата книги.
Между сущностями «Книги» и «Экземпляры» существует связь «один-ко-многим» (1:N), так как каждая книга может присутствовать в библиотеке в нескольких экземплярах.
Теперь нам необходимо определить, как в нашей системе будет представлен читатель. Естественно предложить ввести для этого сущность «Читатели», каждый экземпляр которой будет соответствовать конкретному читателю. В библиотеке каждому читателю присваивается уникальный номер читательского билета, который и будет ключевым атрибутом сущности «Читатели». Кроме того, в сущности «Читатели» должны присутствовать дополнительные атрибуты, которые требуются для решения поставленных задач, этими атрибутами будут: «Фамилия Имя Отчество», «Адрес читателя», «Дата рождения» и т.д.
Каждый читатель может держать на руках несколько экземпляров книг. Для отражения этой ситуации нам надо провести связь между сущностями «Читатели» и «Экземпляры». А почему не между сущностями «Читатели» и «Книги»? Потому что читатель берет из библиотеки конкретный экземпляр конкретной книги, а не просто книгу. А как же узнать, какая книга у данного читателя? А это можно будет узнать по связи между сущностями «Экземпляры» и «Книги», поэтому мы в любой момент можем однозначно определить, какие книги находятся на руках у читателя, хотя связываем с читателем только инвентарные номера взятых книг. Между сущностями «Читатели» и «Экземпляры» установлена связь «один-ко-многим», и при этом она не обязательная с двух сторон. Читатель в данный момент может не держать ни одной книги на руках, а с другой стороны, данный экземпляр книги может не находиться ни у одного читателя, а просто стоять на полке в библиотеке.
Последняя сущность – это системный каталог, который содержит перечень всех областей знаний, сведения по которым содержатся в библиотечных книгах. Название области знаний может быть длинным и состоять из нескольких слов, поэтому для моделирования системного каталога мы введем сущность «Системный каталог» с двумя атрибутами: «Код области знаний» и «Название области знаний». Атрибут «Код области знаний» будет ключевым атрибутом сущности.
Каждая книга может содержать сведения из нескольких областей знаний, а с другой стороны, в библиотеке может присутствовать множество книг, относящихся к одной и той же области знаний, поэтому нам необходимо установить между сущностями «Системный каталог» и «Книги» связь «миогие-ко-многим».
Типы БД.
Имеется три широко известных типа БД:
1) Иерархические БД;
2) Сетевые БД;
3) Реляционные БД.
Структура иерархической БД является деревом. Каждый экземпляр объектов более высокого уровня содержит экземпляры объектов более низкого уровня. Пример:
Институт СамГТУ
(1:N)
Факультеты ФАИТ ТЭФ ИЭФ ФМиАТ
(1:N)
Группы 1-ИЭ-13 2-ИЭФ-6 3-ИЭ-9
(1:N)
Студенты Галкина Степанов Яковлев
Свойства иерархической БД:
- Узлы нижнего уровня связаны только с одним узлом верхнего уровня.
- Граф имеет только одну вершину (корень), не подчинённый связью никакой другой вершине.
- Существует только один путь к заданному узлу (элементу данных, объекту) от корневого узла.
Иерархической базой данных является Каталог папок Windows. Верхний уровень занимает папка Рабочий стол. На втором уровне находятся папки Мой компьютер, Мои документы, Сетевое окружение и Корзина, которые являются потомками папки Рабочий стол, а между собой является близнецами. В свою очередь, папка Мой компьютер является предком по отношению к папкам третьего уровня – папкам дисков и системным папкам (Принтеры, Панель управления и др.).
Обобщением иерархических БД являются сетевые БД. В сетевых БД допускаются объекты, имеющие более одного предка. Вообще, на связи между объектами в сетевых моделях не накладывается никаких ограничений, Сетевой базой данных фактически является Всемирная паутина глобальной компьютерной сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую распределенную сетевую базу данных.
В сетевой БД могут присутствовать и связи "многие-ко-многим". Пример:
т
Здесь сущность "Команды" связана много-многозначной зависимостью с сущностью "Учащиеся".
В настоящее время практически все БД являются реляционными (а вновь появляющиеся типы БД называют постреляционными). Проектирование реляционных БД является более сложной задачей, но это окупается простотой реализации реляционной БД. Иерархическая и сетевая модели непосредственно отражают структуру предметной области, реляционная модель имеет более высокий уровень абстракции, однако в рамках этой модели можно реализовать любой тип БД.
Раздел 2. Теория нормальных форм реляционных БД.
Тема 2.1. Понятие отношения, домена, записи. Простой и составной ключ отношения. Первая и вторая нормальные формы.
Реляционная база данных — база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение). Использование реляционных баз данных было предложено доктором Коддом из компании IBM в 1970 году.
Понятие "отношение" есть математическое понятие. Дадим строгое определение отношения.
Пусть даны N множеств D1, D2, …, Dn. Отношением R над этими множествами называется множество упорядоченных N-кортежей вида <d1,d2,...,dn>, где d1 принадлежит D1, d2 принадлежит D2, и т.д. Множества D1, D2, …, Dn называются доменами отношения R. Каждый элемент кортежа представляет собой значение одного из атрибутов, соответствующего одному из доменов.
Дадим определения.
Атрибут – это наименьшая единица структуры данных, задающих одну из характеристик сущности. Каждому атрибуту при описании сущности присваивается уникальное имя. Атрибуты часто называют элементами данных или полями.
Запись – это именованная совокупность атрибутов. Экземпляр записи представляет собой набор конкретных значений её атрибутов. Экземпляр записи соответствует понятию кортежа.
В реляционной БД отношение задаётся множеством экземпляров записи, которое удобно изображать в виде таблицы.
Пример. Сущность "Студент" включает следующие атрибуты: Номер зачётки, Фамилия Имя Отчество, Курс, Факультет, Группа. Отношение "Студент" есть таблица записей. Заголовок таблицы содержит имена атрибутов, а строки – конкретные значения эти атрибутов.
| Номер зачётки | Фамилия Имя Отчество | Курс | Факультет | Группа |
| 967112 | Галкина Людмила Петровна | 1 | ИЭ | 13 |
| 967115 | Степанов Пётр Ильич | 1 | ИЭ | 13 |
| 967124 | Яковлев Сергей Петрович | 1 | ИЭ | 13 |
Ключ записи (или просто ключ) – атрибут или совокупность атрибутов, значения которых однозначно идентифицируют экземпляр записи. Если ключ состоит только из одного атрибута, он называется простым, если из нескольких – составным.
Иногда ключ может быть выбран не единственным способом. В таком случае выбранный ключ называется первичным, а все остальные – возможными ключами.
Как правило, реляционная БД состоит из нескольких отношений (таблиц), связанных друг с другом. Для задания связей между записями разных отношений используется дублирование ключей. Атрибуты, представляющие копии ключей других отношений, называются внешними ключами.
Теория реляционных баз данных. Чтобы правильно спроектировать реляционную БД нужно все отношения привести к нормальной форме. Выделяют несколько нормальных форм. Начнём с первой нормальной формы.
Определения.
Простой атрибут – атрибут, значения которого атомарны (неделимы).
Сложный атрибут – атрибут, значения которого являются совокупностью нескольких атомарных.
Пример. В отношении Мой знакомый – Номер телефона второй атрибут является сложным, т.к. может содержать несколько разных номеров (домашний, рабочий, мобильный) телефонов.
Отношение находится в первой нормальной форме (1НФ), если значения всех его атрибутов атомарны.
Для приведения отношения к первой нормальной форме (при наличии сложного атрибута) выполняется операция декомпозиции (разбиения) на несколько отношений.
Продолжим пример с телефонами. Отношение Мой знакомый – Номер телефона преобразуем к виду:
ЗНАКОМЫЙ(Код, Фамилия, Адрес)
ТЕЛЕФОНЫ(Код_владельца, Номер_телефона, Тип)
Оба отношения находятся в 1НФ. Ключевые поля подчёркнуты. Во втором отношении часть составного ключа (Код_владельца) является внешним ключом.
Вторая нормальная форма.
Определим сначала функциональную зависимость атрибутов.
Рассмотрим два атрибута X и Y некоторого отношения. Говорят, что Y функционально зависит от X, если каждому значению атрибута X соответствует только одно значение атрибута Y.
Заметим, что X и Y могут быть и наборами атрибутов.
Пример. Пусть X – ключ отношения, тогда все остальные атрибуты функционально зависят от X.
Определим теперь функционально полную зависимость атрибутов.
Пусть X – составной ключ, а Y – неключевой атрибут. Говорят, что Y функционально полно зависит от составного ключа X, если Y зависит от всего X, но не зависит от какой-либо части X.
Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.
Пример. Рассмотрим отношение
ПОСТАВКА(Код_поставщика, Код_товара, Цена)
Ключ отношения составной. Если у разных поставщиков один и тот же товар имеет разную цену, то неключевой атрибут Цена зависит от составного ключа в целом, т.е., отношение ПОСТАВКА находится во второй нормальной форме. Если же предположить, что цена одного и того же товара одинакова у всех поставщиков, то неключевой атрибут Цена зависит только от части составного ключа, т.е., второй нормальной формы нет.
Отсутствие второй нормальной формы приводит к следующим проблемам:
1) при изменении цены какого-либо товара потребуется найти все записи, относящиеся к данному товару и внести в них изменения;
2) внесённые изменения могут быть несогласованными, т.е., в разных записях цена одного и того же товара будет иметь разные значения.
Примем второе предположение и нормализуем отношение. Разобьём его на два:
ПОСТАВКА(Код_поставщика, Код_товара)
ЦЕНА_ТОВАРА(Код_товара, Цена)
Оба отношения находятся во второй нормальной форме, что решает обе указанные выше проблемы.
Тема 2.2. Третья нормальная форма и нормальная форма Бойса-Кодда.
Третья нормальная форма
Определение транзитивной зависимости. Пусть X, Y и Z – атрибуты некоторого отношения, и при этом Y функционально зависит от X, а Z – от Y (но обратной зависимости нет). Тогда говорят, что Z транзитивно зависит от X.
Определение. Отношение находится в третьей нормальной форме (3НФ), если оно находится во второй нормальной форме, и каждый неключевой атрибут нетранзитивно зависит от ключа.
Пример. Рассмотрим отношение ХРАНЕНИЕ(Фирма, Склад, Площадь). Будем считать, что каждая фирма арендует один склад, площадь которого задана атрибутом Площадь. В этом случае ключ отношения есть атрибут Фирма. Имеем следующие функциональные зависимости: Фирма => Склад и Склад => Объём, следовательно атрибут Объём транзитивно зависит от атрибута Фирма. Таким образом, это отношение не находится в 3НФ.
Отсутствие третьей нормальной формы приводит к следующим проблемам:
1) нельзя добавить в БД склад, если его ещё не арендует ни одна фирма;
2) если площадь склада изменяется, то для внесения изменения приходится просматривать все записи (т.к. это неключевой атрибут).
Нормализуем отношение ХРАНЕНИЕ, разбив его на два:
ХРАНЕНИЕ(Фирма, Склад)
ПЛОЩАДЬ_СКЛАДА(Склад, Объём)
Заметим, что если фирма может арендовать несколько складов, то ключом отношения будут атрибуты Фирма, Склад. В этом случае в исходном отношении не будет даже второй нормальной формы. В этом случае также следует разбить разбить исходное отношение на те же два, только ключом в отношении ХРАНЕНИЕ будут оба атрибута – Фирма и Склад.
Альтернативное определение 3НФ.
Отношение находится в 3НФ, если оно находится во второй нормальной форме, и нет ни одной функциональной зависимости между неключевыми атрибутами.
Обычно при анализе отношения функциональную зависимость "увидеть" проще, чем транзитивную зависимость.
Нормальная форма Бойса-Кодда.
Отношение находится в нормальной форме Бойса-Кодда (НФБК), если оно находится в третьей нормальной форме и в нём отсутствуют зависимости атрибутов первичного ключа от неключевых атрибутов.
Такая ситуация возникает, если отношение имеет несколько возможных ключей, которые являются составными и имеют общий атрибут. Один из возможных ключей выбирается в качестве первичного, а тогда какой-то из атрибутов первичного ключа будет зависеть от атрибута возможного ключа, т.е., от неключевого атрибута. На практике такая ситуация встречается достаточно редко, для всех прочих отношений 3НФ и НФБК эквивалентны.
Поясним эту ситуацию на примере. Определим отношение
АНКЕТА(Фамилия, Имя, Отчество,
Фамилия_отца, Имя_отца, Отчество_отца,
Фамилия_матери, Имя_матери, Отчество_матери)
Кажется естественным взять в качестве составного ключа атрибуты Фамилия, Имя, Отчество, но тогда ключевой атрибут Отчество будет зависеть от неключевого атрибута Имя_отца, т.е., отношение АНКЕТА на находится в НФБК. Однако следует учитывать, что зависимость Имя_отца – Отчество не является абсолютной, т.к., по закону человек вправе изменить своё отчество.
Тема 2.3. Реляционная алгебра. Четвёртая и пятая нормальные формы
В реляционной алгебре и операнды, и результаты всех операций являются отношениями. В реляционной алгебре над отношениями определены следующие операции:
А) операции над строками отношений одинаковой структуры.
- объединение отношений:
есть отношение, множество строк которого есть объединение множеств строк отношений R1 и R2. Заметим, что если одна и та же строка встречается и в отношении R1 и в отношении R2, то в результирующее отношение она будет включена только один раз.
- пересечение отношений:
есть отношение, множество строк которого есть пересечение множеств строк отношений R1 и R2.
- разность отношений:
есть отношение, которое содержит только те строки из R1, которых нет в R2.
Б) операция декартового произведения. Эта операция применяется к отношениям произвольной структуры.
Декартовым произведением
называется отношение, строки которого суть конкатенация (сцепление) каждой строки отношения A и каждой строки отношения B.
Пусть отношение A имеет набор атрибутов A1, A2, …, An, а отношение B – набор атрибутов B1, B2, …, Bm. Тогда
содержит n+m атрибутов: A1, A2, …, An, B1, B2, …, Bm.
В) специальные операции.
- операция выбора (фильтр по строкам) – отношение, включающее только те строки исходного отношения, для которых выполняется некоторое условие;
- операция проектирования (фильтр по столбцам) – отношение, получающееся из исходного удалением части его атрибутов (столбцов). Если после этого несколько строк станут одинаковыми, то дубликаты строк удаляются из результата;
- операция соединения – отношение, являющееся подмножеством декартового произведения двух отношений. Строки результирующего отношения должны удовлетворять заданным условиям на значения выделенной группы атрибутов.
Пусть отношение A имеет набор атрибутов A1, A2, …, An, a1, …, ak, а отношение B – набор атрибутов B1, B2, …, Bm, b1, …, bk. Группы атрибутов a1, …, ak, и b1, …, bk должны иметь одинаковую структуру. В результирующее отношение войдут только те строки, для которых выполнены условия на указанные группы атрибутов. Чаще всего на эти атрибуты накладываются условия равенства: a1 = b1, …, ak = bk, тогда результирующее отношение будет содержать всего n+k+m атрибутов.
Дата добавления: 2018-04-15; просмотров: 402; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
