Главная страница
Навигация по странице:

  • Декартово произведение r  s

  • Выбор (селекция)  F ( r )

  • Пересечение r  s Пересечением отношений

  • -соединение

  • Естественное соединение

  • Пусть

  • Задача 1.

  • Вариант 2.

  • Вариант 3.

  • Задача 2.

  • Задача 3.

  • В. И. Швецов Базы данных


    Скачать 8.45 Mb.
    НазваниеВ. И. Швецов Базы данных
    АнкорV_I_Shvetsov_Bazy_dannykh.doc
    Дата20.12.2017
    Размер8.45 Mb.
    Формат файлаdoc
    Имя файлаV_I_Shvetsov_Bazy_dannykh.doc
    ТипУчебное пособие
    #12252
    страница9 из 24
    1   ...   5   6   7   8   9   10   11   12   ...   24

    Разность r – s

    Разностью отношений r и s называется множество кортежей, принадлежащих r, но не принадлежащих s. Для этой операции также требуется одинаковая арность отношений.
    r – s

    a

    b

    a

    c

    b

    d


    Заметим, что с помощью операции разности может быть реализовано удаление кортежа из имеющегося отношения. В этом случае исходное отношение, s – отношение, содержащее один удаляемый кортеж.
    Декартово произведение rs

    Пусть r и s – отношения арности k1 и k2 соответственно. Декартовым произведением rs называется множество кортежей длины k1+k2, первые k1 компонентов которых образуют кортежи, принадлежащие r, а последние k2 – кортежи, принадлежащие s.
    rs

    a

    b

    a

    b

    g

    a

    a

    b

    a

    d

    a

    f

    d

    a

    f

    b

    g

    a

    d

    a

    f

    d

    a

    f

    c

    b

    d

    b

    g

    a

    c

    b

    d

    d

    a

    f


    Проекция

    Проекция есть множество кортежей, получаемых из кортежей отношения r выбором столбцов с именами Ai1, Ai2, …, Aim.

    Другими словами, это операция построения «вертикального» подмножества, получаемого путем выбора определенных атрибутов и исключения остальных. Повторяющиеся кортежи исключаются.



    a

    a

    d

    f

    c

    d


    Выбор (селекция) F(r)

    Пусть F – формула, образованная: операндами, являющимися константами или именами атрибутов, арифметическими операторами сравнения, логическими операторами (и, или, не), тогда выбором (селекцией) F называется множество кортежей, компоненты которого удовлетворяют условию, заданному формулой F.


     (1)=(3)(r)=

    a

    b

    a

    Здесь F:(1)=(3) – содержимое первого столбца равно содержимому третьего столбца.

    Приведем ряд примеров представления запросов с помощью формальных операций для реляционной модели (СТУДЕНТ, ФАКУЛЬТЕТ, СПЕЦИАЛЬНОСТЬ), рассмотренной выше.

    Пример 1.

    Сформировать список студентов (фамилия).

    Рассмотрим схему отношения СТУДЕНТ.

    Атрибут «Фамилия» обозначен здесь А1 Для ответа на запрос необходимо взять проекцию отношения r1 на столбец А1.

    .
    Пример 2.

    Выдать список фамилий и дат рождений студентов, которым на текущую дату (tek_date) больше 35 лет.

    Рассмотрим то же отношение r1 . Сначала выбираем студентов, которым больше 35 лет:

    .

    Затем берем проекцию полученного отношения на столбцы

    .
    .

    Заметим, что можно было бы выполнить эти две операции в другой последовательности – сначала проекция, а затем селекция. Предлагается оценить, какой из этих вариантов лучше по оценке числа выполняемых элементарных действий и объему требуемой памяти.
    Пример 3.

    Выдать список фамилий студентов, обучающихся по специальности «Информационные технологии». Название специальности является атрибутом отношения r3. Если бы в этом отношении присутствовал атрибут «фамилия», то задача решалась бы аналогично примеру 2. В отношении r3 присутствует атрибут «код студента», а «фамилия» присутствует в отношении r1. Для ответа на этот запрос необходимо связывать по «код студента» отношение r3 и отношение r1.

    Сначала выберем из отношения r3кортежи с названием специальности «Информационные технологии». Обозначим полученное отношение rp1 . (Дальнейшие промежуточные отношения будем обозначать последовательно rp1, rp2, rp3 и т.д.).

    .


    Далее нас будет интересовать только атрибуты A1 – «код студента»

    . Поэтому возьмем проекцию на эти столбцы.

    .

    Далее необходимо связать отношения отношения r1 и rp2 (склеить таблицы). Для склейки таблиц используется операция «декартово произведение»:

    .

    В отношении Rr3 присутствуют два одинаковых столбца: A1 из отношенийя r1 и A1 из отношения rp2 . Выбирая из отношения rp3 строки, в которых значения в соответствующих столбцах совпадают, получим сведения о студентов, обучающихся по специальности «Информационные технологии»
    ,

    R4 = entrant. entrant_id = R2. entrant_id(R3),
    где A1  r1 иA1  rp2

    обозначают соответственно столбец A1 соответствующей первой и второй составной части декартова произведения. Теперь осталось только выбрать фамилии соответствующих студентов

    .

    Получаем требуемый результат. Заметим, что для экономии действий и памяти, перед тем как склеивать таблицы, целесообразно было сделать операцию проекции отношения отношения r1 на столбцы столбцы A1,A2.
    (чтобы не включать в декартово произведение лишние столбцы).
    Введенные пять основных операций реляционной алгебры позволяют реализовать любой запрос к реляционной базе данных. Однако наряду с основными операциями достаточно часто удобно использовать так называемые дополнительные операции реляционной алгебры (которые могут быть выражены через основные).
    Пересечение rs

    Пересечением отношений r и s называется множество кортежей, принадлежащих как r, так и s. Пересечение может быть выражено через операции разности

    rr – (r – s).
    -соединение

    -соединение r и s по столбцам Ai и Aj представляет собой множество таких кортежей в декартовом произведении r и s, что i-й компонент r находится в отношении  c j-м компонентом s, где  – арифметический оператор сравнения. Если  является оператором равенства, то эта операция называется эквисоединением

    ,

    где l – арность отношения r.

    Пример.

    r













    s




    1

    2

    3







    3

    1

    4

    5

    6







    6

    2

    7

    8

    9
















    1

    2

    3

    3

    1

    1

    2

    3

    6

    2

    4

    5

    6

    6

    2


    Заметим, что в примере 3 две последовательно идущие операции (декартово произведение и селекция) вместе как раз представляют операцию соединения. Причем использование декартова произведения для соединения таблиц обязательно обусловливает использование селекции как следующей операции для установления связи между таблицами. Поэтому целесообразно использовать такую объединенную операцию и программно реализовывать в СУБД именно операцию соединения.
    Естественное соединение

    Операция применима тогда и только тогда, когда столбцы имеют имена (являются атрибутами). Операция применима к отношениям, у которых есть одинаковые атрибуты.

    Пусть

    r = (A1, ..., Ak, B1,..., Bn), s = (A1, ..., Ak, C1,..., Cm),

    имена A1, ..., Ak совпадают.

    Тогда определяется следующим образом

    .

    Для подчеркивания важности приведенных операций реляционной алгебры, а также для уточнения понятия реляционной СУБД приведем следующее определение одного из ведущих специалистов в области реляционных баз данных К.Дж. Дейта: «Будем называть систему реляционной, если она поддерживает, по крайней мере, реляционные базы данных, т.е. базы данных, которые могут восприниматься пользователем как таблицы и только как таблицы, операции селекции, проекции и соединения реляционной алгебры, не требуя при этом, чтобы каким-то образом были предопределены физические пути доступа для поддержки этих операций».
    Краткие итоги: В лекции рассматриваются вопросы, связанные с формализацией наиболее распространенной в настоящее время модели данных СУБД – реляционной модели. Формальное описание реляционной модели и полученные на этой основе математические методы и алгоритмы позволяют формализовать ряд шагов проектирования реляционной базы данных , получить оптимальную (по определенным критериям) структуру базы данных и эффективные алгоритмы обработки. Здесь рассматривается формализованное описание отношений, формальные средства манипулирования данными в реляционной модели (дано понятие реляционного исчисления и реляционной алгебры, приводятся основные операции реляционной алгебры). Приводятся примеры представления запросов как последовательность формальных операций реляционной алгебры.
    Вопросы, рассматриваемые в данной лекции, более подробно описаны в [1-5].


    Контрольные тесты
    Задача 1. Что такое схема отношения?
    Вариант 1.

    Что называется схемой отношения R?
    ð+ +множество имен атрибутов

     множество названий сущностей

     множество кортежей

     множество доменов

    Вариант 2.

    Чему соответствует понятие «схемы отношения»?
     двумерной таблице

    + ð+ описанию структуры конкретной таблицы

     описанию структуры любой таблицы

    множеству значений в таблице

    Вариант 3.

    Что соответствует имени атрибута в схеме отношения?
    + ð+ множество значений определенного типа данных

    ð+ +домен

     кортеж

     множество значений разных типов данных

    Задача 2. Что такое отношение?

    Вариант 1.

    Что называется отношением?
     множество имен атрибутов таблицы

     множество названий сущностей

    ð+ +множество кортежей таблицы

     множество доменов таблицы

    Вариант 2.

    Чему соответствует понятие «отношения»?
    + описанию структуры конкретной таблицы

     описанию структуры любой таблицы

     множеству значений в двумерной таблице

    ð+ множеству строк в двумерной таблице

    Вариант 3.

    Что такое ключ отношения?
     подмножество атрибутов, таких что любые два кортежа отношения не совпадают по значениям этого подмножества

    + ð+ минимальное подмножество атрибутов, таких что любые два кортежа отношения не совпадают по значениям этого подмножества

     максимальное подмножество атрибутов, таких что любые два кортежа отношения не совпадают по значениям этого подмножества

     множество всех атрибутов
    Задача 3. Что такое реляционная модель базы данных и реляционная база данных?
    Вариант 1.

    Что называется реляционной моделью базы данных?

    +

    ð+ сСовокупность схем отношений, используемых для представления концептуальной модели

     сСовокупность отношений, реализующих концептуальную модель

     тТекущие значения отношений

     Ммодель данных реляционной СУБД

    Вариант 2.

    Что называется реляционной базой данных?
     совокупность схем отношений, используемых для представления концептуальной модели

     совокупность схем отношений, реализующих концептуальную модель

    + ð+ текущие значения отношений, описываемых концептуальной моделью

     модель данных реляционной СУБД

    Вариант 3.

    Какой формальный аппарат используется в реляционной модели для описания запросов к базе данных?
    ð+ операции реляционной алгебры

    ð+ формулы реляционного исчисления

     аппарат схем отношений

     ER-диаграммы
    Задача 4. Операции объединения и пересечения отношений
    Вариант 1.

    Какие требования к отношениям накладываются для применения этих операций?
     одинаковое число строк
    1   ...   5   6   7   8   9   10   11   12   ...   24


    написать администратору сайта