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

Теория и практика построения баз данных (1088289), страница 63

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

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

Примеры отношений: а — СТУДЕНТ; б — ЗАПИСЬ Номер Название Порядковый Имя Специальн~шть Курс Студента Предмета Номер Рис. 8.13. Произведение отношений СТУДЕНТ н ЗАПИСЬ Проектирование Проектирование (рго)есгюп) — это операция, которая выделяет заданные атрибу- ты отношения. Результатом проектирования является новое отношение, содер- 292 Глава 8. Основы построения реляционных баз данных Реляционная алгебра 293 жашее выбранные атрибуты; иными словами, при проектировании из исходного отношения выбирается некоторое множество столбцов. В качестве примера рассмотрим отношение СТУДЕНТ из рис. 8.12, а.

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

Иногда эта возможность позволяет сделать два отношения совместимыми по объединеншо. Имя Специальность Специальность Курс е б Рис. 8.14. Проекции отношения СТУДЕНТ: е — СТУДЕНТ [Имя, Специальность); б — СТУДЕНТ [Специальность, Курс) Выборка В то время как оператор проектирования выделяет вертикальное подмножество (столбцы) отношения, оператор выборки (зе1есйоп) выделяет горизонтальное подмножество (строки), Проектирование указывает, какие атрибуты дол>хны быть в новом отношении, а выборка указывает, какие строки должны в нем присутствовать. Обозначается выборка 1гутем указания имени отношения, за которым следует ключевое слово УУНЕРЕ («где»), за которым, в свою очередь, идет условие, накладываемое на атрибуты.

На рис. 8.15, а представлена выборка СТУДЕНТ тУНЕйЕ Специальность = '[ЦАТЕМАТИКА', а на рис. 8.15, б — СТУДЕНТ туНЕВЕ Курс -'С1', Соединение Операция соединения бош) представляет собой комбипаци1о произведения, выборки и (возможно) проектирования. Соединение двух отношений А и В происходит следующим образом. Сначала формируется произведение А х В. Затем делается выборка, при которой исключаются некоторые кортежи (критерии отбора указываются в операторе соединения).

После этого путем проектирования могут быть (при необходимости) исключены некоторые атрибуты. Личный Имя Специальность Курс 1ба ПАРКС МАТЕМАТИКА АС Личный Номер Имя Специальность Курс т б Рис. 8.18. Примеры выборки: е — СТУДЕНТ ЬУНЕЙЕ Специальность = 'МАТЕМАТИКА', б — СТУДЕНТ ЬУНЕЛЕ Курс = 'С1' Рассмотрим отношения СТУДЕНТ и ЗАПИСЬ, показанные на рис, 8,12. Предположим, мы хотим знать имя н номер каждого студента.

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

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

Один из нпх является лишним, п мы его исключаем путем проектирования (в данном случае мы выбираем ЗАПИСЬ.НомерСтудента). Результатом является отношение на рис. 8.16, б. Соединение на рис. 8.16, а называется экеиеалентньы1 соединением (ецш1о[п), а соединение на рис. 8.16, б— т тестеенньси соединением (пагцга1 ]о[в), Если нс указано иного, то когда говорят о соединении, подразумевается естествеш1ое соединение.

Поскольку построение произведения двух больших отношений является длительной операцией, алгоритм, который использует СУБД для соединения двух отношений. отличается от того, который описан здесь Результат, однако, остаетгя тем же самым. Можно выполнять соединение и по другим условиям, а не только по равенству. В качестве примеров можно привести соединения СТУДЕНТ ЗО[Н [ЛичныйНомер и НомерСтудента) ЗАПИСЬ или СТУДЕНТ З01Н (ЛичныйНомер < НомерСотрудника) ППС. Результатом последнего соединения явится набор кортежей, в котором номера студентов меньше, чем номера сотрудников. Такая операция может иметь смысл, если, скажем, идентификаторы присваиваются людям в хронологическоь1 порядке.

В результиру1ошем отношении будут представлены пары студент — преподаватель, в которых студент появился в учебном заведении раньше, чем преподаватель. Реляционная алгебра 295 Личный Номер 123 ДЖОНС ИСТОРИЯ 123 Н350 ИСТОРИЯ 123 ДЖОНС 123 ВА490 105 АНДЕРСОН МЕНЕДЖМЕНТ 105 ВА490 Личный Номер Личный Номер Пример Формат Тяп СТУДЕНТ[Имя] ТРЕТЬЕКУРСНИК[Имп] ЗАНЯТИЯ У(НЕЯЕ НазваниеПредметв = 'А' СТУДЕНТ [Имя, Специальность) СТУДЕНТ 301Н (ЛичныйНомер=иомерСтудента) ЗАПИСЬ ц †, пересечение, перемножение Операции над множествам Выборка отношение ЬУНЕЯЕ (условие) ПРоекция Соединение отношение [список атрибутов! отношение1 30(Н (условие) отношение 2 студент герт Онтей зонч (ЛичныйНомер=номерСтудента) ЗАПИСЬ Внутреннее соединение Внешнее соединение То же, что и соединение студент серг Оцтей 30)н (ЛичныйНомер=НомерСтудента) ЗАПИСЬ отношение1 ЬЕРТ 0()ТЕЛ 301Н (условие) отношение 2 или отношение! й(ЙНТ 0()ТЕЛ 301Н (условие) отношение 2 294 Глава 8.

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

(К сожалению, многие реляционные СУБД допускают такие соединения.) Внешнее соединение Операция соединения приведет к о~ношению, в котором перечислены студенты и предметы, на которые они записаны. Студенты, пе записанные ни на один из предметов, не будут представленьг э результатах. Если мы хотим включить в результирующее отношение всех студентов, можно пспользовать внешнее соединение (ощег)о[п).

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

Ключевое слово СЕЕТ (левый) указывает, что в результате должны быть представлены все строки из отношения, находящегося по левую сторону от оператора соединения (в нашем случае это отношение СТУДЕНТ). Операпия правого внешнего соединения (Пййс ~ш(ег]огп), имеющая вид СТУДЕНТ Р16НТ 00ТЕ Р 301Н (Личный Номер = НомерСтудента) ЗАПИСЬ, приведет к опшшению, в котором будут присутствовать все строки из таблицы, находящейся справа от оператора соединения, — а именно таблицы ЗАПИСЬ. Внешнее соединение удобно использовать при работе со связями, в которых минимальное кардинальное число равняегся нулю с одной или с обеих сторон. Иногда, когда во избежание неоднозначности требуется указать, какой именно тнп соединения имеется в виду, вместо термина соединение используется термин внутреннее соединение (гппег ]ош).

Выражение запросов в терминах реляционной алгебры В табл. 8.2 перечислены все основные операции реляционной алгебры, описанные выше. Из них стандартными операциями теории множеств являются объединение (+), вычитание (-), пересечение и произведение. Операция выборки ныделяет из отношения определенные кортежи (строки) в соответствии с услопнями, наложенными на значения атрибутов. Операция проектирования выделяет нз отношения атрибуты (столбцы) по заданным именам. Наконец, операция соединения копкатенирует кортежи двух отношений в соответствии с условием, наложенным на значения атрибутов. Таблица 8.2. Операции реляционной алгебры Теперь посмотрим, как с помощью реляционных операторов можно форлгулпровать запросы.

Воспользуемся для этого отношениями СТУДЕНТ, ЗАНЯТИЯ и ЗАПИСЬ, показанными на рис. 8.12. Данные для примера представлены на рнс. 8.17. Наша цель состоит в том, чтобы продемонстрировать различные операции Реляционная алгебра 297 Личный Н о м а р И С л е ц и а л ь н ь К У Р С Номер Студента Название Предмета Порядковый Номер Название Предмета Время Аудитория 296 Глава 8. Основы построения реляционных баз данных с отношениями. Хотя вы, скорее всего, не будете использовать реляционную алгебру при работе с коммерческими продуктами, этп примеры помогут вам понять, каким образом можно манипулировать отношениями. а Рис.

В.17. Данные для отношений, определенных на рис. 8.11: а — отношение СТУДЕНТ; б — отношение ЗАПИСЬ; е — отношение ЗАНЯТИЯ 1. Вывести имена всех студен~он. СТУДЕНТ ЕИии] Эта строка проектирует отношение СТУДЕНТ на атрибут Имя. Результатом является следующая таблица: Повторяющиеся имена могут быть опуптены. Хотя имена Дтконс и Бейкер фигурируют в отношении СТУДЕНТ дважды, повторения были исключены, поскольку результат проектирования представляет собой отношение, а от- ношение не может содержать одинаковые кортежи.

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

Тип файла
DJVU-файл
Размер
9,56 Mb
Тип материала
Высшее учебное заведение

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

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