Релационна алгебра - Софтуерни продукти

Преглед на релационната алгебра

Третата част от релационния модел, частта за манипулиране, гласи, че релационните данни се осъществяват чрез релационна алгебра или нейния еквивалент на релационно смятане.

В реализациите на специфични релационни СУБД понастоящем нито релационната алгебра, нито релационното смятане се използват в тяхната чиста форма.SQL (Език за структурирани заявки) се превърна в де факто стандарт за достъп до релационни данни. Езикът SQL е смес от оператори на релационната алгебра и изрази на релационното смятане, като се използва синтаксис, близък до английските фрази и подобрен с допълнителни функции, които не се срещат в релационната алгебра и релационното смятане. Като цяло езикът за достъп до данни есравнително завършен, ако е толкова изразителен, колкото релационната алгебра (или, еквивалентно, релационното смятане), т.е. всеки оператор на релационна алгебра може да бъде изразен с помощта на този език. Точно това е SQL.

Тази глава ще покрие основите на релационната алгебра.

Затваряне на релационната алгебра

Релационната алгебра е набор от оператори, които приемат релации като аргументи и връщат релации като резултат. Така че релационният оператор изглежда като функция с отношения като аргументи:

Релационната алгебра е затворена, т.к като аргументи за релационни оператори можете да замените други релационни оператори, които отговарят на типа:

По този начин вложени изрази с произволно сложна структура могат да се използват в релационни изрази.

Всяка връзка трябва да има уникално име в базата данни. Имерелацията, получена в резултат на релационната операция, е дефинирана от лявата страна на уравнението. Въпреки това е възможно да не се изисква присъствието на имена от релации, произтичащи от релационни изрази, ако тези релации са заместени като аргументи в други релационни изрази. Такива отношения ще се наричат ​​неназовани отношения. Неназованите релации реално не съществуват в базата данни, но се оценяват само в момента, в който се оценява стойността на релационния оператор.

Традиционно, следвайки Код, се дефинират осем релационни оператора, групирани в две групи.

  • Асоциация
  • кръстовище
  • Изваждане
  • Декартов продукт

Специални релационни оператори:

  • проба
  • Проекция
  • Съединение
  • дивизия

Не всички от тях са независими; някои от тези оператори могат да бъдат изразени чрез други релационни оператори.

Тип съвместими отношения

Някои релационни оператори (като съюз) изискват релациите да имат еднакви заглавия. Всъщност връзките се състоят от заглавие и тяло. Операцията по комбиниране на две релации е просто обединението на два набора от кортежи, взети от телата на съответните релации. Но дали резултатът ще бъде връзка? Първо, ако оригиналните релации имат различен брой атрибути, тогава очевидно множеството, което е обединението на такива разнородни кортежи, не може да бъде представено като релация. Второ, дори ако отношенията имат еднакъв брой атрибути, атрибутите имат различни имена. Как тогава да се определи заглавието на връзката, получена в резултат на обединението на набори от кортежи? Трето, нека съотношенията имат едно и също числоатрибути, атрибутите имат едно и също име, но са дефинирани в различни домейни. Тогава отново обединението на кортежи няма да формира релация.

Дефиниция 1 : Ще наричаме релациисъвместими по тип, ако имат идентични заглавки, а именно,

  • Релациите имат еднакъв набор от имена на атрибути, т.е. за всеки атрибут в една релация има атрибут със същото име в друга релация,
  • Атрибути с едно и също име са дефинирани в едни и същи домейни.

Някои връзки не са съвместими по тип, но стават такива след известно преименуване на атрибутите. За да могат такива връзки да се използват в релационни оператори, се въвежда спомагателеноператор за преименуване на атрибути.

Оператор за преименуване на атрибут

Операторът за преименуване на атрибут има следния синтаксис:

- релация, - оригинални имена на атрибути, - нови имена на атрибути.

В резултат на прилагане на оператора за преименуване на атрибути, получаваме нова релация с променени имена на атрибути.

Следният оператор връща ненаименувана релация, в която атрибутът е преименуван на:

Теоретико-множествени оператори

Асоциация

Дефиниция 2 :Обединениетона две съвместими по тип релации и е релация със същото заглавие като релациите и и тяло, състоящо се от кортежи, принадлежащи на или , или , или и двете релации.

Синтаксисът за операцията за присъединяване е:

Забележка. Обединението, както всяка релация, не може да съдържа идентични кортежи. Следователно, ако определен кортеж е включен както в релацията, така и в релацията, тогава той влиза в обединението веднъж.

Пример 2. Нека са дадени две отношения и с информация за служителите: