Базы данных - модели, разработка, реализация


         

Теперь получим список всех, кто


R4 = (R2[R3.Номер Группы = R2.Номер Группы ?
R3.Дисциплина = "БД"] R3)[ФИО];

  • Теперь получим список всех, кто сдавал экзамен по "БД" (нас пока не интересует результат сдачи, а интересует сам факт попытки сдачи, то есть присутствие в отношении R1):
    R5 = (R1[Дисциплина = "БД"])[ФИО];
    и, наконец, результат - все, кто есть в первом множестве, но не во втором:
    S = R4\ R5;


  • Список несчастных, имеющих несколько двоек:
    S = (R1[R1.ФИО = R?1.ФИО ? R1.Дисциплина ? R?1 Дисциплина ?
    R1Оценка ? 2 ? R?1. Оценка ? 2] R?1)[ФИО]
    Этот пример весьма интересен: для поиска строк, удовлетворяющих в совокупности условию больше одного, применяется операция соединения отношения с самим собой. Поэтому мы как бы взяли копию отношения R1 и назвали ее R?1.


  • Список круглых отличников. Строим список всех пар , которые в принципе должны быть сданы:
    R4 = (R2[R2.Группа = R3.Группа] R3)[ФИО, Дисциплина];
    Строим список пар , где получена оценка "отлично":
    R5 = (R1[Оценка = 5])[ФИО, Дисциплина];
    Строим список студентов, что-либо не сдавших на "отлично":
    R6 = (R4\R5)[ФИО].


  • 62

    Наконец, исключив последнее отношение из общего списка студентов, получаем результат:
    R2[ФИО] \ R6

    Обратите внимание, что для получения множества студентов, что-либо не сдавших на "отлично" (R6), мы осуществили "инверсию" множества всех отлично сданных пар (R5) путем вычитания его из предварительного построенного универсального множества (R4) Рекомендуем очень внимательно разобрать этот пример и вникнуть в смысл каждого действия -это очень пригодится для понимания реляционной алгебры.

    63

    57 :: 58 :: 59 :: 60 :: 61 :: 62 :: 63 :: Содержание


    Содержание  Назад  Вперед