6. Релационна алгебра
Лекция 6. Релационна алгебра. Теоретично-множествени оператори
Достъпът до релационни данни се осъществява с помощта на релационна алгебра.
В реализациите на специфични релационни СУБД понастоящем нито релационната алгебра, нито релационното смятане се използват в тяхната чиста форма. SQL (Structured Query Language) се превърна в де факто стандарт за достъп до релационни данни. Езикът SQL е смес от оператори на релационната алгебра и изрази на релационното смятане, като се използва синтаксис, близък до английските фрази и подобрен с допълнителни функции, които не се срещат в релационната алгебра и релационното смятане. Като цяло се казва, че един език за достъп до данни ерелационно завършен, ако е толкова изразителен, колкото релационната алгебра, т.е. всеки оператор на релационна алгебра може да бъде изразен с помощта на този език. Точно това е SQL. Почти всички операции на релационния модел са предназначени да организират заявки към базата данни по отношение на релации. Тези заявки са свързани с включване, присъединяване, извличане на кортежи от съответните отношения.
Традиционно се дефинират осем релационни оператора, групирани в две групи.
Специални релационни оператори:
Не всички от тях са независими; някои от тези оператори могат да бъдат изразени чрез други релационни оператори.
Типове съвместими отношения
Някои релационни оператори (като съюз) изискват релациите да имат еднакви заглавия. Всъщност връзките се състоят от заглавие и тяло. Операцията по комбиниране на две релации е просто обединението на два набора от кортежи, взети от телата на съответните релации. Но дали резултатът ще бъде връзка? Първо, ако първоначалните отношения са различниброя на атрибутите, очевидно е, че множеството, което е обединението на такива разнородни кортежи, не може да бъде представено като релация. Второ, дори ако отношенията имат еднакъв брой атрибути, атрибутите имат различни имена. Как тогава да се определи заглавието на връзката, получена в резултат на обединението на набори от кортежи? Трето, нека отношенията имат еднакъв брой атрибути, атрибутите имат еднакви имена, но са дефинирани в различни домейни. Тогава отново обединението на кортежи няма да формира релация.
Определение. Ще наречем релациитипово съвместими, ако имат идентични заглавки, а именно:
- релациите иматеднакъв набор от имена на атрибути, т.е. за всеки атрибут в една релация има атрибут със същото име в друга релация;
- атрибути с едно и също имеса дефинирани в едни и същи домейни(или типове, ако домейните не се поддържат).
Някои връзки не са съвместими по тип, но след преименуване на атрибути те могат да станат такива, за това можете да използвате спомагателния оператор за преименуване на атрибут.
Обединениена две съвместими по тип релацииAиBе релация със същото заглавие като релациитеAиBи тяло, състоящо се от комбинация от кортежи на двете релации.
Забележка. Обединението, както всяка релация, не може да съдържа идентични кортежи. Следователно, ако определен кортеж е включен както в релациятаA, така и в релациятаB, тогава тя влиза в обединението веднъж.
Нека са дадени две отношенияA(Таблица 6.1) иB(Таблица 6.2) с информация за служителите: