Главная » Просмотр файлов » Построение реляционных баз данных

Построение реляционных баз данных (1088288), страница 3

Файл №1088288 Построение реляционных баз данных (Построение реляционных баз данных) 3 страницаПостроение реляционных баз данных (1088288) страница 32018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Результатом этих операторов является таблица с двумя столбцами и N стро­ками. Для обработки результатов этого запроса пишется прикладная программа, которая предполагает, что на выходе эти операторы выдают файл с N записями. Приложение открывает этот запрос, обрабатывает первую строку, следующую строку и так далее, пока не будет обработана последняя строка. Логика здесь та же, что и при обработке файла с последовательным доступом. Примеры таких прикладных программ вы увидите в главах 12, 13, 15 и 16. На данный момент просто знайте, что есть несоответствие между базовой ориентацией SQL (отно­шения) и языком программирования (строка, или запись) и что это несоответст­вие необходимо корректировать, когда прикладные программы обращаются к ре­ляционной базе данных посредством SQL.

Реляционная алгебра

Реляционная алгебра похожа на алгебру, которую вы учили в старших классах школы, но с одним важным отличием. В школьной алгебре переменные представля­ли числа, и операторы +, - хи / оперировали численными величинами. В реля­ционной алгебре переменные — это отношения: операторы действуют на отноше­ния, и результатом их действия являются новые отношения. Например, операция объединения комбинирует кортежи одного отношения с кортежами другого от­ношения, в результате чего получается третье отношение. Реляционная алгебра является замкнутой, то есть результаты одной или более реляционных операций всегда представляют собой отношение.

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

Реляционные операторы

На рис. 8.8 показано шесть отношений и определения их атрибутов и доменов. Обратите внимание, что атрибут НазваниеПредмета фигурирует в нескольких отношениях. В связи с этим атрибут НазваниеПредмета в отношении ЗАНЯТИЯ ино­гда обозначается как ЗАНЯТИЯ.НазваниеПредмета.

В ходе дальнейшего изложения символьные значения приводятся в одинар­ных кавычках, а те символы, которые не заключены в кавычки, относятся к име­нам. Так, 'АУДИТОРИЯ' и Аудитория отличаются тем, что 'АУДИТОРИЯ' — это значе­ние, а Аудитория — это, например, имя домена. Что касается числовых данных, то числа, не заключенные в кавычки, представляют собой числовые данные, а числа н кавычках — строки. То есть 123 — это число, а '123' — это строка, составленная из символов Т, '2' и '3'.

Объединение

Объединение (union) двух отношений — это комбинирование кортежей одного от­ношения с кортежами другого отношения, в результате чего получается третье отношение. Порядок, в котором кортежи следуют в результирующем отношении, несуществен, но повторяющиеся строки должны быть удалены. Объединение от­ношений А и В обозначается А + В.

Чтобы данная операция имела смысл, отношения должны быть совместимы по объединению (union compatible), то есть оба отношения должны иметь одина­ковое количество атрибутов, и атрибуты в соответствующих столбцах должны принадлежать одному и тому же домену. Если, например, третий атрибут одного из отношений принадлежит домену Аудитории, то третий атрибут второго отно­шения также должен принадлежать этому домену.

На рис. 8.8 отношения ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ_СТУДЕНТ совместимы по объединению, поскольку оба они имеют по три атрибута, и соответствующие атри­буты принадлежат одному и тому же домену. Атрибуты ТРЕТЬЕКУРСНИК.СтНомер и ПОЧЕТНЫЙ_СТУДЕНТ.Номер принадлежат домену ИдентификаторыЛюдей; атрибуты ТРЕТЬЕКУРСНИК.Имя и ПОЧЕТНЫЙ_СТУДЕНТ.Имя принадлежат домену ИменаЛюдей; атрибуты ТРЕТЬЕКУРСНИК.Специальность и ПОЧЕТНЫЙ_СТУДЕНТ.Интересы принадле­жат домену НазванияПредметов. Отношения ТРЕТЬЕКУРСНИК и ЗАНЯТИЯ имеют по три атрибута, но они несовместимы по объединению (union incompatible), посколь­ку их атрибуты происходят из разных доменов.

На рис. 8.9 показано объединение отношений ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ. СТУДЕНТ. Обратите внимание, что кортеж [123, ДЖОНС, ИСТОРИЯ], который фигу­рирует в обоих отношениях, не дублируется в объединении.

Разность

Разность (difference) двух отношений — это отношение, содержащее все кортежи, которые присутствуют в первом отношении, но не присутствуют во втором. Отношения должны быть совместимы по объединению. Разность отношений ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ_СТУДЕНТ показана на рис. 8.10. Как и в арифметике, при вычитании порядок следования аргументов имеет значение, так что А - В не равняется В - А.

Пересечение

Пересечение (intersection) двух отношений — это отношение, содержащее кор­тежи, которые присутствуют и в первом, и во втором отношении. Отношения должны быть совместимы по объединению. На рис. 8.11 пересечение отношений ТРЕТЬЕКУРСНИК и ПОЧЕТНЫЙ_СТУДЕНТ содержит всего один кортеж [123, ДЖОНС, ИСТОРИЯ], поскольку это единственный кортеж, который присутствует в обоих отношениях.

Произведение

Произведение (product) двух отношений (иногда его называют декартовым произве­дением (Cartesian product)) — это попарная конкатенация всех строк одного отноше­ния со всеми строками другого. Произведение отношения А, имеющего m кортежей, и отношения В, имеющего п кортежей, имеет m х п кортежей. Произведение обозна­чается А х В. На рис. 8.12 отношение СТУДЕНТ имеет четыре кортежа, а отношение

ЗАПИСЬ — три кортежа. Отношение СТУДЕНТ х ЗАПИСЬ имеет, таким образом, две­надцать кортежей (рис. 8.13). (Некоторые кортежи результирующего отношения па рис. 8.13 не имеют смысла. Чтобы извлечь из этого отношения осмысленную информацию, потребуются дополнительные операции, которые будут описаны позднее. Рисунок является не более чем иллюстрацией действия оператора.)

Проектирование

Проектирование (projection) — это операция, которая выделяет заданные атрибу­ты отношения. Результатом проектирования является новое отношение, содер­жащее выбранные атрибуты; иными словами, при проектировании из исходного отношения выбирается некоторое множество столбцов. В качестве примера рас­смотрим отношение СТУДЕНТ из рис. 8.12, а. На рис. 8.14, а показана проекция этого отношения на атрибуты Имя и Специальность, которая обозначена СТУДЕНТ [Имя, Специальность]. На рис. 8.14, б показана проекция этого отношения на атри­буты Специальность и Курс, обозначенная СТУДЕНТ [Специальность, Курс].

Обратите внимание, что хотя отношение СТУДЕНТ имеет четыре кортежа, про­екция СТУДЕНТ [Специальность, Курс] имеет только три. Один кортеж был исклю­чен, поскольку после выполнения операции проектирования кортеж [ИСТОРИЯ, С1] оказался в результирующем отношении в двух экземплярах. Так как результат проектирования является отношением, а отношение не может иметь одинаковых кортежей, избыточный кортеж был исключен.

Проекцию можно также использовать для изменения порядка следования атрибутов в отношении. Например, проекция СТУДЕНТ [Курс, Специальность, Имя, ЛичныйНомер] меняет порядок атрибутов в отношении СТУДЕНТ на обратный (ис­ходный порядок представлен на рис. 8.11). Иногда эта возможность позволяет сделать два отношения совместимыми по объединению.

Выборка

В то время как оператор проектирования выделяет вертикальное подмножество (столбцы) отношения, оператор выборки (selection) выделяет горизонтальное под­множество (строки). Проектирование указывает, какие атрибуты должны быть в новом отношении, а выборка указывает, какие строки должны в нем присутство­вать. Обозначается выборка путем указания имени отношения, за которым следует ключевое слово WHERE («где»), за которым, в свою очередь, идет условие, наклады­ваемое на атрибуты. На рис. 8.15, а представлена выборка СТУДЕНТ WHERE Специаль­ность = 'МАТЕМАТИКА', а на рис. 8.15, б - СТУДЕНТ WHERE Курс = 'С1\

Соединение

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

Рассмотрим отношения СТУДЕНТ и ЗАПИСЬ, показанные на рис. 8.12. Предполо­жим, мы хотим знать имя и номер каждого студента. Чтобы получить эти дан­ные, нам нужно соединить кортежи отношения СТУДЕНТ с соответствующими кортежами отношения ЗАПИСЬ на основании атрибута НомерСтудента. Такое со­единение мы обозначаем как СТУДЕНТ JOIN (ЛичныйНомер= НомерСтудента) ЗАПИСЬ . Эта запись означает: «Соединить кортеж отношения СТУДЕНТ с кортежем отно­шения ЗАПИСЬ, если значение атрибута ЛичныйНомер в отношении СТУДЕНТ равня­ется значению атрибута НомерСтудента в отношении ЗАПИСЬ».

Чтобы построить это соединение, мы сначала находим произведение отноше­ний СТУДЕНТ и ЗАПИСЬ — результат этой операции представлен на рис. 8.13. Затем мы выбираем те кортежи произведения, где значение атрибута ЛичныйНомер из отношения СТУДЕНТ равно значению атрибута НомерСтудента из отношения ЗАПИСЬ (таких кортежей только три). Результат этой операции изображен на рис. 8.16, а. Заметьте, что у нас имеется два идентичных атрибута: СТУДЕНТ.ЛичныйНомер п ЗАПИСЬ.НомерСтудента. Один из них является лишним, и мы его исключаем путем проектирования (в данном случае мы выбираем ЗАПИСЬ.НомерСтудента).

Результатом является отношение на рис. 8.16, б. Соединение на рис. 8.16, а называется эквивалентным соединением (equijoin), а соединение на рис. 8.16, б — естественным соединением (natural join). Если не указано иного, то когда гово­рят о соединении, подразумевается естественное соединение.

Характеристики

Тип файла
Документ
Размер
451,5 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее