Лекция 4 Реляционная алгебра.ppt
- Количество слайдов: 35
Реляционная алгебра Лекция 4
ОПЕРАЦИИ В РЕЛЯЦИОННОЙ МОДЕЛИ Реляционная алгебра включает классы операций: • Операции отбора кортежей и проекции, • Операции комбинирования кортежей, • Операции теории множеств, • Операции переименования, которые изменяют реляционную схему базы данных. Performances title Aida Don Carlos Don Pascuale Macbeth Swan lake Giselle Salome Carmen Apollo 2/18/2018 year 1998 1999 1997 2001 1950 1884 2000 1998 1928 running. Time 260 225 180 175 125 90 22 33 type perform concert perform perform Реляционная алгебра 35 producer. C# theatre. Name 123456 Mariinsky 234567 La Scala null Mariinsky 456789 Mariinsky 567890 Mariinsky 331234 Mariinsky 123456 Mariinsky 234567 Sarah Bernhart null Mariinsky 2
Операции проекции применяются для получения нового отношения, содержащего только некоторые столбцы исходного отношения. Для отношения Performances(title, year, running. Time, type, theatre. Name, producer. C#) определить названия и год постановки спектаклей. πtitle, year(Performances) 2/18/2018 Реляционная алгебра 35 title Aida Don Carlos Don Pascuale Macbeth Swan lake Giselle Salome Carmen Apollo year 1998 1999 1997 2001 1950 1884 2000 1998 1928 3
Операции проекции Проекция πtype(Performances) содержит число строк, равное числу разных типов спектаклей, причем одинаковые кортежи не повторяются type perform concert 2/18/2018 Реляционная алгебра 35 4
Операции отбора • Операции отбора и проекции, содержащие условия. • Из отношения спектаклей можно отобрать, только те спектакли, которые имеют продолжительность больше двух часов (120 минут): title Aida Manon Giselle Iolanthe 2/18/2018 year 1998 1974 1884 1999 running. Time 260 180 125 120 type perform concert producer. C# 1234567 null 456789 Реляционная алгебра 35 theatre. Name La Scala Mariinsky Grnbd Theatre Mariinsky 5
Операции комбинирования кортежей двух отношений • Декартово произведение двух отношений T и Q представляет собой отношение с множеством пар кортежей из T и Q, первым элементом каждой пары является кортеж T, а вторым кортеж Q: A 1 3 2/18/2018 T B 2 4 6 Q C 3 5 7 A 1 1 1 3 3 3 Реляционная алгебра 35 R. B 2 2 2 4 4 4 S. B 2 4 6 T Q C 3 5 7 6
Натуральное произведение двух отношений • • • Если отношение T содержит N кортежей, а отношение Q содержит M кортежей, то количество кортежей в T◊◊Q составляет N*M. Соединения кортежей, которые совпадают по набору атрибутов Например, в отношениях Т и Q имеются общие атрибуты. В натуральном произведении участвуют только кортежи, для которых значения атрибутов совпадают. Т A 1 4 7 2/18/2018 B 2 5 5 C 3 6 6 B 2 2 5 C 3 3 6 Q D 4 5 8 A 1 1 4 7 Реляционная алгебра 35 B 2 2 5 5 C 3 3 6 6 D 4 5 8 8 7
Тета – соединение двух отношений • Тета – соединение отношений T и Q представляет собой декартово произведение, кортежи которого, удовлетворяют условию T◊◊C Q • Для получения тета - соединения необходимо : – получить декартово произведение , – выбрать кортежи, удовлетворяющие условию. A 1 4 7 2/18/2018 B 2 5 5 T C 3 6 6 B 2 2 5 C 3 3 6 Q D 4 5 8 Реляционная алгебра 35 A 1 1 1 4 T T. A<Q. BQ T. B T. C Q. B Q. C D 2 3 4 2 3 5 6 8 5 6 8 8
Операции теории множеств • Если отношения и имеют идентичное множество атрибутов и порядок атрибутов • Объединение двух отношений T с количеством кортежей N и Q с количеством кортежей M представляет собой новое отношение с тем количеством кортежей не больше, чем N+M. • Одинаковые кортежи не повторяются T A 1 3 2/18/2018 B 2 4 Q A 1 5 B 2 6 Реляционная алгебра 35 A 1 3 5 B 2 4 6 9
Пересечение двух отношений • Пересечение двух отношений представляет собой новое отношение с множеством кортежей, входящих как в T так и в Q. Т A 1 3 2/18/2018 B 2 4 Q A 1 5 B 2 6 Реляционная алгебра 35 A 1 B 2 10
Разность двух отношений • Разность двух отношений T - Q представляет собой новое отношение с множеством кортежей, входящих в T но не входящих в Q. • Операцию разности можно использовать для вычисления пересечения двух отношений, используя известные правила алгебры множеств: T A 1 3 2/18/2018 B 2 4 Q A 1 5 B 2 6 Реляционная алгебра 35 A 3 T-Q B 4 11
Операции переименования • В результате операций манипулирования данными получаются новые отношения, которые могут иметь определенные имена и список атрибутов. • Для этого используется операция переименования. • При переименовании отношения со списком атрибутов используем выражение. • При этом отношение принимает имя , а атрибуты принимают имена , а порядок следования атрибутов сохраняется прежним. 2/18/2018 Реляционная алгебра 35 12
Построение запросов реляционной алгебры • Сложные запросы, которые отображаются в виде дерева. • Например требуется выполнить запрос к отношению спектаклей: Performances(title, year, running. Time, type, theatre. Name, producer. C#). • Какие спектакли театра «Cover Garden» имеют продолжительность не более 120 минут? title, year duration<120 theatre. Name=”Cover Garden” Performances 2/18/2018 Performances Реляционная алгебра 35 13
Сложные запросы • Какие спектакли театра «Cover Garden» имеют продолжительность не более 120 минут? title, year( running. Time<120(Performances) theatre. Name=”Cover. Garden”(Performances)) • Можно записать этот запрос в виде: title, year( running. Time<120 AND theatre. Name=”Cover. Garden”( Performances)) • Не все запросы будут выполняться одинаково эффективно, поэтому важной задачей является оптимизация запроса. 2/18/2018 Реляционная алгебра 35 14
Запросы к двум отношениям • Используя операции реляционной алгебры можно выполнить запрос к двум и более таблицам. Так для отношений спектаклей и актеров: Performances(title, year, running. Time, type, theatre. Name, producer. C#) title Aida Don Carlos Don Pascuale Macbeth Swan lake year 1998 1999 1997 2001 1950 running. Time 260 225 180 175 type perform concert perform theatre Mariinsky La Scala Mariinsky producer. C# 1234567 null 4567890 Actors(name, address, ampoule, gender, birthdate, perf. Name) name Olga Borodina Irina Bogacheva Yury Marusin Ulyana Lopatkina Farukh Ruzimatov Plassito Domingo 2/18/2018 address Moscow Sea st. 10, Saint Petersburg Nevsky st. 15/15 Saint Petersburg Sea st. 15/15 Saint Petersburg Garden st. 25/25 Saint Petersburg Nevsky st. 150/15 Moscow Garden Ring, 18 ampoule Singer Principal dancer Singer Реляционная алгебра 35 gender F F M M birthdate 1972 -02 -02 1950 -01 -01 1945 -05 -05 1973 -03 -03 1966 -06 -06 perf. Name Aida Don Carlos Iolantha Swan lake Aida 15
Запросы к двум отношениям • Требуется определить названия театров и спектаклей длительностью не менее 120 минут, в которых участвовала Ольга Бородина. title, theatre. Name Actor. perform. Name=Performance. title Actor. name=”Olga Borodina” Actors 2/18/2018 Performance. duration≥ 120 Performances Реляционная алгебра 35 16
Запросы к двум отношениям Определить названия театров и спектаклей длительностью не менее 120 минут, в которых участвовала Ольга Бородина. Запишем этот запрос в линейной форме: title, theatre. Name( Actors. name=”Olga. Borodina”(Actors) Actors. perform. Name=Performances. title Performances. running. Time≥ 120(Performances)). Такой запрос можно записать в короткой форме: title, theatre. Name(Performances Actors. perform. Name=Performances. title and Actors. name=”Olga. Borodina” Actor. name=”Olga Borodina”( Actors)). 2/18/2018 Реляционная алгебра 35 17
Ограничения в реляционной алгебре R и S – выражения реляционной алгебры Два способа выражения ограничений в реляционной алгебре: 1. R= ограничение, состоящее в том, что отношение R должно быть пустым. 2. R S ограничение, состоящее в том, что каждый кортеж из R должен входить в S. Два вида ограничений связаны между собой: • Ограничение R S можно записать как R-S=. • Ограничение R= можно записать R . 2/18/2018 Реляционная алгебра 35 18
Ограничение ссылочной целостности • Если объект или сущность A связан с объектом или сущностью B, то B должен реально существовать. • Указатель от объекта A к объекту B становится «висячим» . • Ссылочная целостность - запрет висячих указателей в программировании. • Уникальный номер продюсера producer# ссылается на номер сертификата cert#: Performances(title, year, running. Time, type, theatre. Name, producer. C#) Producers(name, address, cert#, networth) Performances producer. C# 2/18/2018 Реляционная алгебра 35 Producers cert# 19
Ограничение ссылочной целостности • СУБД должна сообщать, если в ней не содержатся данные о продюсере, на которого имеется ссылка из отношения Performances: producer#(Performances) certr#(Producer) • Каждый сертификат producer# должен входить в множество сертификатов cert#: producer#( Performances)- certr#( Producer)= 2/18/2018 Реляционная алгебра 35 20
Представление функциональной зависимости • • • Ограничение, позволяющее проверять функциональные зависимости name->address. Требуется не допускать наличие пар кортежей, которые совпадают по атрибуту name и не совпадают по атрибуту address. • “Актер имеет только один адрес” Actors(name, address, ampoule, gender, birthdate) Копирокание и переименование отношения Actors: Ac 1= Ac 1(name, address, gender, birdate)(Actor) Ac 2= Ac 2(name, address, gender, birdate)(Actor) Ограничение будет проверяться и при любой попытке редактирования существующих данных и при попытке ввода новых данных. 2/18/2018 Реляционная алгебра 35 21
Ограничение на область значений • Для отношения Actors(name, address, ampoule, gender, birthdate) • введем ограничение на значение на область значений атрибута gender. • Атрибут gender может принимать значения из множества {‘F’ ‘M’}: gender ”F” and gender ’M’(Actor)=. • Множество кортежей, нарушающих это условие должно быть пустым. 2/18/2018 Реляционная алгебра 35 22
Ограничение на область значений • Ограничение на область значений атрибута net. Worth в отношении Producer. • Художественным руководителем может быть только тот режиссер, чей годовой доход больше $1. 000. Producers(name, address, cert#, networth) Theatre(thatre. Name, city, art. Director, prodc#) • Ограничение реляционной алгеброй: net. Worth<1. 000(Theatre prodc#=cert# Producers)= 2/18/2018 Реляционная алгебра 35 23
Множества и мультимножества • • Множества содержат элементы, которые не повторяются. Мультимножества могут содержать повторяющиеся элементы. В коммерческих базах данных нужно сохранять дублирующие кортежи. Отношения в коммерческих базах данных строятся на мультимножествах кортежей • Кортежи в отношениях могут повторяться. • Множество: M={ A, B, R, T, G, W, Q, C, J, D, V } • Мультимножество: M={ A, A, B, R, R, R, T, T, G, G, W, Q, C, J, J, J, D, } 2/18/2018 Реляционная алгебра 35 24
Операции с мультимножествами • Отношение P содержит множество в котором нет одинаковых кортежей • Выполняется вычисление среднего значения для атрибутов A и B в отношении Р Множество P Среднее 2/18/2018 A 1 3 1 1 1. 5 B 2 4 2 2 2. 5 C 5 0 7 8 Реляционная алгебра 35 25
Операции с мультимножествами • В результате выполнения операции проекции R= AB(P) получается мультимножество R, в котором трижды повторяется кортеж {1, 2}. • В результате проекции Q= AB(P) получается множество, . • Средние значения атрибутов A и B разные для отношений P и Q. Множество Мультимножество R= AB(P) P A 1 3 1 1 Среднее 1. 5 2/18/2018 B 2 4 2 2 2. 5 C 5 0 7 8 Среднее A 1 3 1 1 1. 5 B 2 4 2 2 2. 5 Реляционная алгебра 35 Множество Q= AB(P) A 1 3 Среднее 2 B 2 4 3 26
Операции с мультимножествами • Мультимножество содержит избыточную информацию. • Мультимножества иногда более эффективны. Если при работе с отношением Q выполняется операция объединения его с другими отношениями, то требуется дополнительное время на денормализацию отношения. • Поэтому часто операции с мультимножествами выполняются быстрее. • При статистической обработке табличных данных, представляющих множества, могут получаться неверные результаты. • По этим причинам коммерческие базы данных содержат мультимножества. 2/18/2018 Реляционная алгебра 35 27
Объединение мультимножеств • Правило объединения мультимножеств R S: • Если – мультимножество R кортеж t входит “n” раз, – мультимножество S кортеж t входит “m” раз, – в результат объединения R S кортеж t входит n+m раз. R A 1 3 1 1 2/18/2018 B 2 4 2 2 S A 1 3 3 5 B 2 4 4 6 R S A B 1 2 1 2 3 4 3 4 5 6 Реляционная алгебра 35 28
Пересечение мультимножеств • Правило пересечения мультимножеств R S • Если – В мультимножество R входит кортеж t входит “n” раз, и – В мультимножество S кортеж t входит “m” раз, – В результат пересечения R S кортеж t входит min(n, m) раз. R A 1 3 1 1 2/18/2018 B 2 4 2 2 S A 1 3 3 5 B 2 4 4 6 R S A B 1 2 3 4 Реляционная алгебра 35 29
Разность мультимножеств • Правило разности мультимножеств R-S и S-R • Если – В мультимножество R входит кортеж t входит “n” раз, и – В мультимножество S кортеж t входит “m” раз, – В результат пересечения R-S кортеж t входит n-m раз. R A 1 3 1 1 2/18/2018 B 2 4 2 2 S A 1 3 3 5 B 2 4 4 6 R-S A B 1 2 Реляционная алгебра 35 S-R A B 3 4 5 6 30
Алгебраические законы • Для множества и для мультимножества верен алгебраический закон коммутативности объединения R S= S R • Для множества верен алгебраический закон дистрибутивности объединения (R S) - T =(R-T) (S-T) • Для мультимножества алгебраический закон дистрибутивности не верен (R S) - T ≠(R-T) (S-T) 2/18/2018 Реляционная алгебра 35 31
Проекция мультимножеств • При получении проекции в мультимножествах одинаковые кортежи не удаляются из результата. • Поэтому в проекции появляются повторные кортежи. • S= AB(R): R A 1 1 1 3 2/18/2018 B 2 2 2 4 C 5 7 8 6 Реляционная алгебра 35 S= AB(R) A B 1 2 1 2 3 4 32
Декартово произведение мультимножеств • При декартовом произведении мультимножеств R × S каждый кортеж одного мультимножества соединяется с каждым кортежем другого мультимножества без удаления повторяющихся кортежей. • Если – кортеж r входит в отношение R m-раз, – кортеж s входит в отношение S n-раз, • то кортеж r × s войдет в декартово произведение t= m × n раз. Исходные отношения R A B 1 2 2/18/2018 S B C 2 3 4 5 Декартово произведение T=R S T A R. B S. B C 1 1 2 2 2 4 Реляционная алгебра 35 3 5 33
Натуральное соединение мультимножеств • Натуральное соединение P=R S двух мультимножеств R и S выполняется без удаления повторных кортежей. • Если – кортеж r соединяется с кортежем s – кортеж r входит в отношение R m-раз, – кортеж s входит в отношение S n-раз, • то кортеж r s войдет в декартово произведение t= m × n раз. Исходные отношения R A B 1 2 2/18/2018 S B C Натуральное соединение P=R S P A B C 2 3 4 5 1 1 2 2 3 3 Реляционная алгебра 35 34
Выводы 1. 2. 3. 4. 5. 6. Реляционная алгебра является основой для языка запросов в реляционной модели данных. В основе языка запросов лежат операции отбора, проекции и переименования. Операции соединения отношений включают декартово произведение, натуральное соединение, тета-соединение. Операции теории множеств такие как объединение, пересечение и разность применяются к отношениям с одинаковым списком атрибутов. Реляционная алгебра позволяет создавать ограничения. Операции реляционной алгебры выполняют как с множествами так и с мультимножествами. 2/18/2018 Реляционная алгебра 35 35
Лекция 4 Реляционная алгебра.ppt