Введение
Введение
Основное назначение данного учебного пособия - дать систематическое введение в основы реляционной модели данных и принципы функционирования реляционных баз данных. Реляционная модель опис...
Пример 1
Пример 1ОтделСотрудникиДети сотрудников (интересы)ЦехИванов И.И.МашаЛЕГОПетяКнигиВидеоСашаКомпьютерыДимаСпортПетров П.П.АртурНичем не интересуетсяСидоров С.С.СергейКомпьютерыКнигиВалерийКнигиСтани...
Глава 1 Элементы теории множеств
Глава 1. Элементы теории множеств...
Множества
МножестваНаиболее простая структура данных, используемая в математике, имеет место в случае, когда между отдельными изолированными данными отсутствуют какие-либо взаимосвязи. Совокупность таких да...
Операции над множествами
Операции над множествамиОсновными операциями над множествами являются объединение, пересечение и разность. Определение 1. Объединением двух множеств называется новое множество
Определение 2. Перес...
Декартово произведение множеств
Декартово произведение множествОдним из способов конструирования новых объектов из уже имеющихся множеств является декартово произведение множеств. Пусть и - множества. Выражение вида , где и , на...
Отношение
ОтношениеОпределение 6. Подмножество декартового произведения множеств называется отношением степени n (n-арным отношением). Определение 7. Мощность множества кортежей, входящих в отношение , назы...
Примеры отношений
Примеры отношений...
Бинарные отношения (отношения степени 2)
Бинарные отношения (отношения степени 2)В математике большую роль играют бинарные отношения, т.е. отношения, заданные на декартовом произведении двух множеств ....
Отношение эквивалентности
Отношение эквивалентности
Определение 8. Отношение на множестве называется отношением эквивалентности, если оно обладает следующими свойствами:
для всех (рефлексивность) Если , то (симметричность...
Отношения порядка
Отношения порядка
Определение 9. Отношение на множестве называется отношением порядка, если оно обладает следующими свойствами:
для всех (рефлексивность) Если и , то (антисимметричность) Если и ,...
Функциональное отношение
Функциональное отношение
Определение 10. Отношение на декартовом произведении двух множеств называется функциональным отношением, если оно обладает следующим свойством:
Если и , то (однозначность...
Еще пример бинарного отношения
Еще пример бинарного отношения
Пример 5. Пусть множество есть следующее множество молодых людей: {Вовочка, Петя, Маша, Лена}, причем известны следующие факты:
Вовочка любит Вовочку (эгоист). Петя...
Пример 1
Пример 1Кого Кто ВовочкаПетяМашаЛена
ВовочкаЛюбит
Петя Любит
Маша ЛюбитЛюбит
Лена Любит
Таблица 1. Матрица взаимоотношений
Способ 4. При по...
Пример 2
Пример 2Кто любитКого любят
ВовочкаВовочка
ПетяМаша
МашаПетя
МашаМаша
ЛенаПетя
Таблица 2 Таблица фактов
С точки зрения реляционных баз данных наиболее предпочтительным является четвертый способ, т...
Nарные отношения (отношения степени n)
n-арные отношения (отношения степени n)
В математике n-арные отношения рассматриваются относительно редко, в отличие от баз данных, где наиболее важными являются именно отношения, заданные на дека...
Пример 3
Пример 3A (Преподаватель)B (Предмет)Q (Количество часов)
ПушниковАлгебра40
ПушниковБазы данных80
ЦыгановГеометрия50
ШариповАлгебра40
ШариповГеометрия50
Таблица 3 Отношение "Читает лекции по-&...
Пример 4
Пример 4C (студент)B (предмет)A (Преподаватель)
ИвановАлгебраШарипов
ИвановБазы данныхПушников
ПетровАлгебраПушников
ПетровГеометрияЦыганов
СидоровГеометрияЦыганов
СидоровБазы данныхПушников
Табли...
Транзитивное замыкание отношений
Транзитивное замыкание отношенийВведем понятие транзитивного замыкания, связанное с бинарными отношениями, которое понадобится в дальнейшем. Определение 11. Пусть отношение задано на декартовом кв...
Пример 5
Пример 5КонструкцияГде используется
БолтДвигатель
БолтКолесо
ГайкаДвигатель
ГайкаКолесо
ДвигательАвтомобиль
КолесоАвтомобиль
ОсьКолесо
Таблица 5 Отношение R
Транзитивное замыкание состоит из корте...
Пример 6
Пример 6КонструкцияГде используется
БолтДвигатель
БолтКолесо
ГайкаДвигатель
ГайкаКолесо
ДвигательАвтомобиль
КолесоАвтомобиль
ОсьКолесо
БолтАвтомобиль
ГайкаАвтомобиль
ОсьАвтомобиль
Таблица 6 Транзи...
Выводы
ВыводыМножество- это неопределяемое понятие, представляющее некоторую совокупность данных. Элементы множества можно отличать друг от друга, а также определять, принадлежит ли данный элемент данном...
Глава 2 Базовые понятия реляционной модели данных
Глава 2. Базовые понятия реляционной модели данных...
Общая характеристика реляционной модели данных
Общая характеристика реляционной модели данных
Основы реляционной модели данных были впервые изложены в статье Е.Кодда [43] в 1970 г. Эта работа послужила стимулом для большого количества статей и...
Типы данных
Типы данныхЛюбые данные, используемые в программировании, имеют свои типы данных. Важно! Реляционная модель требует, чтобы типы используемых данных были простыми. Для уточнения этого утверждения р...
Простые типы данных
Простые типы данных
Простые, или атомарные, типы данных не обладают внутренней структурой. Данные такого типа называют скалярами. К простым типам данных относятся следующие типы:
Логический. Строк...
Структурированные типы данных
Структурированные типы данных
Структурированные типы данных предназначены для задания сложных структур данных. Структурированные типы данных конструируются из составляющих элементов, называемых ко...
Ссылочные типы данных
Ссылочные типы данных
Ссылочный тип данных (указатели) предназначен для обеспечения возможности указания на другие данные. Указатели характерны для языков процедурного типа, в которых есть поняти...
Типы данных используемые в реляционной модели
Типы данных, используемые в реляционной модели
Собственно, для реляционной модели данных тип используемых данных не важен. Требование, чтобы тип данных был простым, нужно понимать так, что в реляц...
Домены
Домены
В реляционной модели данных с понятием тип данных тесно связано понятие домена, которое можно считать уточнением типа данных. Домен - это семантическое понятие. Домен можно рассматривать ка...
Отношения атрибуты кортежи отношения
Отношения, атрибуты, кортежи отношения...
Определения и примеры
Определения и примеры
Фундаментальным понятием реляционной модели данных является понятие отношения. В определении понятия отношения будем следовать книге К. Дейта [11]. Определение 1. Атрибут отн...
Пример 1
Пример 1Номер_сотрудникаФамилияЗарплатаНомер_отдела
1Иванов10001
2Петров20002
3Сидоров30001
Таблица 1 Отношение "Сотрудники"
Определение 3. Реляционной базой данных называется набор отно...
Пример 2
Пример 2Реляционный терминСоответствующий "табличный" термин
База данныхНабор таблиц
Схема базы данныхНабор заголовков таблиц
ОтношениеТаблица
Заголовок отношенияЗаголовок таблицы
Тело о...
Свойства отношений
Свойства отношений
Свойства отношений непосредственно следуют из приведенного выше определения отношения. В этих свойствах в основном и состоят различия между отношениями и таблицами.
В отношении...
Первая нормальная форма
Первая нормальная форма
Труднее всего дать определение вещей, которые всем понятны. Если давать не строгое, описательное определение, то всегда остается возможность неправильной его трактовки. Есл...
Выводы
ВыводыРеляционная модель данных состоит из трех частей:
Структурной части. Целостной части. Манипуляционной части.
В классической реляционной модели используются только простые (атомарные) типы д...
Глава 3 Целостность реляционных данных
Глава 3. Целостность реляционных данныхВо второй части реляционной модели данных определяются два ограничения, которые должны выполняться в любой реляционной базе данных. Это:
Целостность сущносте...
Nullзначения
Null-значенияОсновное назначение баз данных состоит в том, чтобы хранить и предоставлять информацию о реальном мире. Для представления этой информации в базе данных используются привычные для прог...
Трехзначная логика (3VL)
Трехзначная логика (3VL)Т.к. null-значение обозначает на самом деле тот факт, что значение неизвестно, то любые алгебраические операции (сложение, умножение, конкатенация строк и т.д.) должны дава...
Пример 1
Пример 1ANDFTU
FFFF
TFTU
UFUU
Таблица 1 Таблица истинности AND...
Пример 2
Пример 2ORFTU
FFTU
TTTT
UUTU
Таблица 2 Таблица истинности OR...
Пример 3
Пример 3NOT
FT
TF
UU
Таблица 3 Таблица истинности NOT
Имеется несколько парадоксальных следствий применения трехзначной логики. Парадокс 1. Null-значение не равно самому себе. Действительно, выраж...
Потенциальные ключи
Потенциальные ключиПо определению, тело отношения есть множество кортежей, поэтому отношения не могут содержать одинаковые кортежи. Это значит, что каждый кортеж должен обладать свойством уникальн...
Пример 4
Пример 4Табельный номерФамилияЗарплата
1Иванов1000
2Петров2000
3Сидоров3000
Таблица 4 Отношение "Сотрудники"
При первом взгляде на таблицу, изображающую это отношение, может показаться,...
Пример 5
Пример 5ABC
1Иванов1000
2Петров2000
3Сидоров3000
Предъявим кому-нибудь эту таблицу и не сообщим смысл наименований атрибутов. Очевидно, что невозможно судить, не понимая смысла данных, может или н...
Целостность сущностей
Целостность сущностейТ.к. потенциальные ключи фактически служат идентификаторами объектов предметной области (т.е. предназначены для различения объектов), то значения этих идентификаторов не могут...
Внешние ключи
Внешние ключиРазличные объекты предметной области, информация о которых хранится в базе данных, всегда взаимосвязаны друг с другом. Например, накладная на поставку товара содержит список товаров с...
Пример 6
Пример 6Номер поставщикаНаименование поставщикаНомер деталиНаименование деталиПоставляемое количество
1Иванов1Болт100
1Иванов2Гайка200
1Иванов3Винт300
2Петров1Болт150
2Петров2Гайка250
3Сидоров3Вин...
Пример 7
Пример 7Номер поставщикаНаименование поставщика
1Иванов
2Петров
3Сидоров
Таблица 6 Отношение "Поставщики"...
Пример 8
Пример 8Номер деталиНаименование детали
1Болт
2Гайка
3Винт
Таблица 7 Отношение "Детали"...
Пример 9
Пример 9Номер поставщикаНомер деталиПоставляемое количество
11100
12200
13300
21150
22250
331000
Таблица 8 Отношение "Поставки"
В отношении "Поставки" атрибуты "Номер пос...
Целостность внешних ключей
Целостность внешних ключейТ.к. внешние ключи фактически служат ссылками на кортежи в другом (или в том же самом) отношении, то эти ссылки не должны указывать на несуществующие объекты. Это определ...
Замечания к правилам целостности сущностей и внешних ключей
Замечания к правилам целостности сущностей и внешних ключейНа самом деле приведенные правила целостности сущностей и внешних ключей прямо следуют из определений понятий "потенциальный ключ&qu...
Операции могущие нарушить ссылочную целостность
Операции, могущие нарушить ссылочную целостностьСсылочная целостность может нарушиться в результате операций, изменяющих состояние базы данных. Таких операций три - вставка, обновление и удаление...
Для родительского отношения
Для родительского отношения
Вставка кортежа в родительском отношении. При вставке кортежа в родительское отношение возникает новое значение потенциального ключа. Т.к. допустимо существование корте...
Для дочернего отношения
Для дочернего отношения
Вставка кортежа в дочернее отношение. Нельзя вставить кортеж в дочернее отношение, если вставляемое значение внешнего ключа некорректно. Вставка кортежа в дочернее отношени...
Стратегии поддержания ссылочной целостности
Стратегии поддержания ссылочной целостностиСуществуют две основные стратегии поддержания ссылочной целостности:
RESTRICT (ОГРАНИЧИТЬ)- не разрешать выполнение операции, приводящей к нарушению ссыл...
Применение стратегий поддержания ссылочной целостности
Применение стратегий поддержания ссылочной целостностиРассмотрим, как применяются стратегии поддержания ссылочной целостности при выполнении операций модификации базы данных....
При обновлении кортежа в родительском отношении
При обновлении кортежа в родительском отношенииДопустимые стратегии:
RESTRICT (ОГРАНИЧИТЬ) - не разрешать обновление, если имеется хотя бы один кортеж в дочернем отношении, ссылающийся на обновляе...
При удалении кортежа в родительском отношении
При удалении кортежа в родительском отношенииДопустимые стратегии: RESTRICT (ОГРАНИЧИТЬ) - не разрешать удаление, если имеется хотя бы один кортеж в дочернем отношении, ссылающийся на удаляемый ко...
При вставке кортежа в дочернее отношение
При вставке кортежа в дочернее отношениеДопустимые стратегии: RESTRICT (ОГРАНИЧИТЬ) - не разрешать вставку, если внешний ключ во вставляемом кортеже не соответствует ни одному значению потенциальн...
При обновлении кортежа в дочернем отношении
При обновлении кортежа в дочернем отношенииДопустимые стратегии: RESTRICT (ОГРАНИЧИТЬ) - не разрешать обновление, если внешний ключ в обновляемом кортеже становится не соответствующим ни одному зн...
Выводы
ВыводыСовременные СУБД допускают использование null-значений, т.к. данные часто бывают неполными или неизвестными. Споры о допустимости использования null-значений ведутся до сих пор. Использовани...
Глава 4 Реляционная алгебра
Глава 4. Реляционная алгебра...
Обзор реляционной алгебры
Обзор реляционной алгебрыТретья часть реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи реляционной алгебры или эквивалентного ему ре...
Замкнутость реляционной алгебры
Замкнутость реляционной алгебры
Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом...
Отношения совместимые по типу
Отношения, совместимые по типу
Некоторые реляционные операторы (например, объединение) требуют, чтобы отношения имели одинаковые заголовки. Действительно, отношения состоят из заголовка и тела. Оп...
Оператор переименования атрибутов
Оператор переименования атрибутов
Оператор переименования атрибутов имеет следующий синтаксис: где - отношение, - исходные имена атрибутов, - новые имена атрибутов. В результате применения операт...
Теоретикомножественные операторы
Теоретико-множественные операторы...
Объединение
Объединение
Определение 2. Объединением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих или , или...
Пример 1
Пример 1Табельный номерФамилияЗарплата
1Иванов1000
2Петров2000
3Сидоров3000
Таблица 1 Отношение A...
Пример 2
Пример 2Табельный номерФамилияЗарплата
1Иванов1000
2Пушников2500
4Сидоров3000
Таблица 2 Отношение B
Объединение отношений и будет иметь вид:...
Пример 3
Пример 3Табельный номерФамилияЗарплата
1Иванов1000
2Петров2000
3Сидоров3000
2Пушников2500
4Сидоров3000
Таблица 3 Отношение A UNION B
Замечание. Как видно из приведенного примера, потенциальные клю...
Пересечение
ПересечениеОпределение 3. Пересечением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих одновремен...
Пример 4
Пример 4Табельный номерФамилияЗарплата
1Иванов1000
Таблица 4 Отношение A INTERSECT B
Замечание. Казалось бы, что в отличие от операции объединения, потенциальные ключи могли бы наследоваться перес...
Вычитание
Вычитание
Определение 4. Вычитанием двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих отношению и н...
Пример 5
Пример 5Табельный номерФамилияЗарплата
2Петров2000
3Сидоров3000
Таблица 5 Отношение A MINUS B...
Декартово произведение
Декартово произведение
Определение 5. Декартовым произведением двух отношений и называется отношение, заголовок которого является сцеплением заголовков отношений и :
, а тело состоит из кортежей,...
Пример 6
Пример 6Номер поставщикаНаименование поставщика
1Иванов
2Петров
3Сидоров
Таблица 6 Отношение A (Поставщики)...
Пример 7
Пример 7Номер деталиНаименование детали
1Болт
2Гайка
3Винт
Таблица 7 Отношение B (Детали)
Декартово произведение отношений и будет иметь вид:...
Пример 8
Пример 8Номер поставщикаНаименование поставщикаНомер деталиНаименование детали
1Иванов1Болт
1Иванов2Гайка
1Иванов3Винт
2Петров1Болт
2Петров2Гайка
2Петров3Винт
3Сидоров1Болт
3Сидоров2Гайка
3Сидоров...
Специальные реляционные операторы
Специальные реляционные операторы...
Выборка (ограничение селекция)
Выборка (ограничение, селекция)
Определение 6. Выборкой (ограничением, селекцией) на отношении с условием называется отношение с тем же заголовком, что и у отношения , и телом, состоящем из кортеж...
Пример 9
Пример 9Табельный номерФамилияЗарплата
1Иванов1000
2Петров2000
3Сидоров3000
Таблица 9 Отношение AРезультат выборки будет иметь вид:...
Пример 10
Пример 10Табельный номерФамилияЗарплата
1Иванов1000
2Петров2000
Таблица 10 Отношение A WHERE Зарплата<3000
Смысл операции выборки очевиден - выбрать кортежи отношения, удовлетворяющие некотором...
Проекция
Проекция
Определение 7. Проекцией отношения по атрибутам , где каждый из атрибутов принадлежит отношению , называется отношение с заголовком и телом, содержащим множество кортежей вида , таких, дл...
Пример 11
Пример 11Номер поставщикаНаименование поставщикаГород поставщика
1ИвановУфа
2ПетровМосква
3СидоровМосква
4СидоровЧелябинск
Таблица 11 Отношение A (Поставщики)Проекция будет иметь вид:...
Пример 12
Пример 12Город поставщика
Уфа
Москва
Челябинск
Таблица 12 Отношение A[Город поставщика]...
Соединение
Соединение
Операция соединения отношений, наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций. Обычно рассматривается несколько разновидностей операции с...
Общая операция соединения
Общая операция соединения
Определение 8. Соединением отношений и по условию называется отношение представляет собой логическое выражение, в которое могут входить атрибуты отношений и и (или) скаля...
Тэтасоединение
Тэта-соединение
Определение 9. Пусть отношение содержит атрибут , отношение содержит атрибут , а - один из операторов сравнения ( и т.д.). Тогда -соединением отношения по атрибуту с отношением по...
Пример 13
Пример 13Номер поставщикаНаименование поставщикаX (Статус поставщика)
1Иванов4
2Петров1
3Сидоров2
Таблица 13 Отношение A (Поставщики)...
Пример 14
Пример 14Номер деталиНаименование деталиY (Статус детали)
1Болт3
2Гайка2
3Винт1
Таблица 14 Отношение B (Детали)Ответ на вопрос "какие поставщики имеют право поставлять какие детали?" дае...
Пример 15
Пример 15Номер поставщикаНаименование поставщикаX (Статус поставщика)Номер деталиНаименование деталиY (Статус детали)
1Иванов41Болт3
1Иванов42Гайка2
1Иванов43Винт1
2Петров13Винт1
3Сидоров22Гайка2...
Эквисоединение
Экви-соединение
Наиболее важным частным случаем -соединения является случай, когда есть просто равенство. Синтаксис экви-соединения: Пример 9. Пусть имеются отношения , и , хранящие информацию о п...
Пример 16
Пример 16Номер поставщика PNUMНаименование поставщика PNAME
1Иванов
2Петров
3Сидоров
Таблица 16 Отношение P (Поставщики)...
Пример 17
Пример 17Номер детали DNUMНаименование детали DNAME
1Болт
2Гайка
3Винт
Таблица 17 Отношение D (Детали)...
Пример 18
Пример 18Номер поставщика PNUMНомер детали DNUMПоставляемое количество VOLUME
11100
12200
13300
21150
22250
311000
Таблица 18 Отношение PD (Поставки)Ответ на вопрос, какие детали поставляются пост...
Пример 19
Пример 19Номер поставщика PNUM1Наименование поставщика PNAMEНомер поставщика PNUM2Номер детали DNUMПоставляемое количество VOLUME
1Иванов11100
1Иванов12200
1Иванов13300
2Петров21150
2Петров22250
3...
Естественное соединение
Естественное соединение
Определение 10. Пусть даны отношения и , имеющие одинаковые атрибуты (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединен...
Пример 20
Пример 20Номер поставщика PNUMНаименование поставщика PNAMEНомер детали DNUMНаименование детали DNAMEПоставляемое количество VOLUME
1Иванов1Болт100
1Иванов2Гайка200
1Иванов3Винт300
2Петров1Болт150...
Деление
Деление
Определение 11. Пусть даны отношения и , причем атрибуты - общие для двух отношений. Делением отношений на называется отношение с заголовком и телом, содержащим множество кортежей , таких,...
Пример 21
Пример 21Номер поставщика PNUMНомер детали DNUM
11
12
13
21
22
31
Таблица 21 Проекция X=PD[PNUM,DNUM]В качестве делителя возьмем проекцию , содержащую список номеров всех деталей (не обязательно п...
Пример 22
Пример 22Номер детали DNUM
1
2
3
Таблица 22 Проекция Y=D[DNUM]Деление дает список номеров поставщиков, поставляющих все детали:...
Пример 23
Пример 23Номер поставщика PNUM
1
Таблица 23 Отношение X DEVIDEBY YОказалось, что только поставщик с номером 1 поставляет все детали....
Примеры использования реляционных операторов
Примеры использования реляционных операторовПример 12. Получить имена поставщиков, поставляющих деталь номер 2.
Решение: Пример 13. Получить имена поставщиков, поставляющих по крайней мере одну га...
Зависимые реляционные операторы
Зависимые реляционные операторыКак было сказано в начале главы, не все операторы реляционной алгебры являются независимыми - некоторые из них выражаются через другие реляционные операторы....
Оператор соединения
Оператор соединенияОператор соединения определяется через операторы декартового произведения и выборки. Для оператора естественного соединения добавляется оператор проекции....
Оператор пересечения
Оператор пересеченияОператор пересечения выражается через вычитание следующим образом:...
Оператор деления
Оператор деленияОператор деления выражается через операторы вычитания, декартового произведения и проекции следующим образом: Таким образом показано, что операторы соединения, пересечения и делени...
Примитивные реляционные операторы
Примитивные реляционные операторыОставшиеся реляционные операторы (объединение, вычитание, декартово произведение, выборка, проекция) являются примитивными операторами - их нельзя выразить друг че...
Оператор декартового произведения
Оператор декартового произведенияОператор декартового произведения - это единственный оператор, увеличивающий количество атрибутов, поэтому его нельзя выразить через объединение, вычитание, выборк...
Оператор проекции
Оператор проекцииОператор проекции - единственный оператор, уменьшающий количество атрибутов, поэтому его нельзя выразить через объединение, вычитание, декартово произведение, выборку....
Оператор выборки
Оператор выборкиОператор выборки - единственный оператор, позволяющий проводить сравнения по атрибутам отношения, поэтому его нельзя выразить через объединение, вычитание, декартово произведение,...
Операторы объединения и вычитания
Операторы объединения и вычитанияДоказательство примитивности операторов объединения и вычитания более сложны и мы их здесь не приводим....
Запросы невыразимые средствами реляционной алгебры
Запросы, невыразимые средствами реляционной алгебрыНесмотря на мощь языка реляционной алгебры, имеется ряд типов запросов, которые принципиально нельзя выразить только при помощи операторов реляци...
Плохая нормализация отношений
Плохая нормализация отношений
Данный пример взят из книги Гилуа М.М. [6, стр.43]. Пример 16. Пусть имеется отношение ХИМИЧЕСКИЙ_СОСТАВ_ВЕЩЕСТВ с набором атрибутов (Наименование вещества, Водород,...
Пример 24
Пример 24Наименование веществаВодородГелий-105 элемент
Дезоксирибону-клеиновая кислота53-0.01
Бензин500-0
-----
Таблица 24 Отношение ХИМИЧЕСКИЙ_СОСТАВ_ВЕЩЕСТВ
Рассмотрим запрос "Найти все хим...
Пример 25
Пример 25НОМ_ВЕЩЕСТВАВЕЩЕСТВО
1Дезоксирибонуклеиновая кислота
2Бензин
Таблица 25 Отношение ВЕЩЕСТВО...
Пример 26
Пример 26
НОМ_ЭЛЕМЕНТАЭЛЕМЕНТ
1Водород
2Гелий
--
105-
Таблица 26 Отношение ЭЛЕМЕНТЫ...
Пример 27
Пример 27НОМ_ВЕЩЕСТВАНОМ_ЭЛЕМЕНТАПРОЦЕНТ
115
123
11050.01
2150
Таблица 27 Отношение ХИМИЧЕСКИЙ_СОСТАВ_ВЕЩЕСТВ
Для отношений, нормализованных таким образом, исходный запрос реализуется следующей по...
Невыразимость транзитивного замыкания реляционными операторами
Невыразимость транзитивного замыкания реляционными операторамиСледующий пример иллюстрирует класс запросов, невыразимых средствами реляционной алгебры или реляционного исчисления по причине невыра...
Пример 28
Пример 28ТАБ_НОМФАМИЛИЯДОЛЖНОСТЬТАБ_НОМ_РУК
1ИвановДиректор1
2ПетровГлав.бухгалтер1
3СидоровБухгалтер2
4ВасильевНачальник цеха1
5СуховМастер4
6ШариповРабочий5
----
Таблица 28 Отношение СОТРУДНИКИР...
Кросстаблицы
Кросс-таблицы
Одной из задач, связанных с представлением табличных данных является построение так называемых кросс-таблиц. Пусть имеется отношение с тремя атрибутами и потенциальным ключом, включа...
Пример 29
Пример 29ТоварМесяцКоличество
КомпьютерыЯнварь100
ПринтерыЯнварь200
СканерыЯнварь300
КомпьютерыФевраль150
ПринтерыФевраль250
СканерыФевраль350
---
Таблица 29 Данные о продажахТребуется представить...
Пример 30
Пример 30ТоварЯнварьФевраль-
Компьютеры100150-
Принтеры200250-
Сканеры300350-
Таблица 30 Кросс-таблицаПостроение кросс-таблицы средствами реляционной алгебры невозможно, т.к. для этого требуется п...
Выводы
ВыводыДоступ к реляционным данным возможен при помощи операторов реляционной алгебры. Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвр...
Глава 5 Элементы языка SQL
Глава 5. Элементы языка SQLВ данной главе рассматриваются элементы языка SQL (Structured Query Language). Текущая версия стандарта языка SQL принята в 1992 г. (Официальное название стандарта - Меж...
Операторы SQL
Операторы SQLОснову языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям. Можно выделить следующие группы операторов (перечислены не все операторы SQL):...
Операторы DDL (Data Definition Language) операторы определения объектов базы данных
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных
CREATE SCHEMA - создать схему базы данных DROP SHEMA - удалить схему базы данных CREATE TABLE - создать таблиц...
Операторы DML (Data Manipulation Language) операторы манипулирования данными
Операторы DML (Data Manipulation Language) - операторы манипулирования данными
SELECT - отобрать строки из таблиц INSERT - добавить строки в таблицу UPDATE - изменить строки в таблице DELETE - уда...
Операторы защиты и управления данными
Операторы защиты и управления данными
CREATE ASSERTION - создать ограничение DROP ASSERTION - удалить ограничение GRANT - предоставить привилегии пользователю или приложению на манипулирование объ...
Примеры использования операторов манипулирования данными
Примеры использования операторов манипулирования данными...
INSERT вставка строк в таблицу
INSERT - вставка строк в таблицу
Пример 1. Вставка одной строки в таблицу:
INSERT INTO P (PNUM, PNAME) VALUES (4, "Иванов");
Пример 2. Вставка в таблицу нескольких строк, выбранных из...
UPDATE обновление строк в таблице
UPDATE - обновление строк в таблице
Пример 3. Обновление нескольких строк в таблице:
UPDATE P SET PNAME = "Пушников" WHERE P.PNUM = 1;...
DELETE удаление строк в таблице
DELETE - удаление строк в таблицеПример 4. Удаление нескольких строк в таблице:
DELETE FROM P WHERE P.PNUM = 1;
Пример 5. Удаление всех строк в таблице: DELETE FROM P;...
Примеры использования оператора SELECT
Примеры использования оператора SELECTОператор SELECT является фактически самым важным для пользователя и самым сложным оператором SQL. Он предназначен для выборки данных из таблиц, т.е. он, собст...
Отбор данных из одной таблицы
Отбор данных из одной таблицыПример 6. Выбрать все данные из таблицы поставщиков (ключевые слова SELECT- FROM-):
SELECT * FROM P;
Замечание. В результате получим новую таблицу, содержащую полную...
Пример 1
Пример 1TNAMEKOLPRICEEQUSUMMA
Болт10100=1000
Гайка20200=4000
Винт30300=9000
Пример 11.Упорядочение результатов запроса (ключевое слово ORDER BY-):
SELECT PD.PNUM, PD.DNUM, PD.VOLUME FROM PD...
Пример 2
Пример 2PNUMDNUMVOLUME
11100
21150
311000
12200
22250
13300
Пример 12. Упорядочение результатов запроса по нескольким полям с возрастанием или убыванием (ключевые слова ASC, DESC):
SELECT PD.PNU...
Пример 3
Пример 3PNUMDNUMVOLUME
311000
21150
11100
22250
12200
13300
Замечание. Если явно не указаны ключевые слова ASC или DESC, то по умолчанию принимается упорядочение по возрастанию (ASC)....
Отбор данных из нескольких таблиц
Отбор данных из нескольких таблицПример 13. Естественное соединение таблиц (способ 1 - явное указание условий соединения):
SELECT P.PNUM, P.PNAME, PD.DNUM, PD.VOLUME FROM P, PD WHERE P.P...
Пример 4
Пример 4PNUMPNAMEDNUMVOLUME
1Иванов1100
1Иванов2200
1Иванов3300
2Петров1150
2Петров2250
3Сидоров11000
Замечание. Соединяемые таблицы перечислены в разделе FROM оператора, условие соединения привед...
Пример 5
Пример 5PNAMEDNAMEVOLUME
ИвановБолт100
ИвановГайка200
ИвановВинт300
ПетровБолт150
ПетровГайка250
СидоровБолт1000
Пример 17. Прямое произведение таблиц:
SELECT P.PNUM, P.PNAME, D.DNUM, D.DN...
Пример 6
Пример 6PNUMPNAMEDNUMDNAME
1Иванов1Болт
1Иванов2Гайка
1Иванов3Винт
2Петров1Болт
2Петров2Гайка
2Петров3Винт
3Сидоров1Болт
3Сидоров2Гайка
3Сидоров3Винт
Замечание. Т.к. не указано условие соединения...
Пример 7
Пример 7PNUMPNAMEPSTATUS
1Иванов4
2Петров1
3Сидоров2
Таблица 1 Отношение P (Поставщики)...
Пример 8
Пример 8DNUMDNAMEDSTATUS
1Болт3
2Гайка2
3Винт1
Таблица 2 Отношение D (Детали)Ответ на вопрос "какие поставщики имеют право поставлять какие детали?" дает следующий запрос:
SELECT P.PNU...
Пример 9
Пример 9PNUMPNAMEPSTATUSDNUMDNAMEDSTATUS
1Иванов41Болт
3
1Иванов42Гайка
2
1Иванов43Винт1
2Петров13Винт1
3Сидоров22Гайка2
3Сидоров23Винт1...
Использование имен корреляции (алиасов псевдонимов)
Использование имен корреляции (алиасов, псевдонимов)Иногда приходится выполнять запросы, в которых таблица соединяется сама с собой, или одна таблица соединяется дважды с другой таблицей. При этом...