Database
 sql >> база данни >  >> RDS >> Database

Релационна алгебра

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

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

На това се основава SQL и като такъв е много важно да се научи - тъй като SQL е фактическият стандарт за работа с релационни бази данни.

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

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

Езици като Datalog, QBE и QUEL имат за основа релационно смятане. Няма да говоря за това, защото мисля, че това е много по-нишов начин за правене на нещата в сравнение с по-практичния подход, следван от SQL, но можете да го разгледате, ако искате.

Като се има предвид това въведение, нека продължим с релационна алгебра .

Имаме 2 вида операции:

  • основни операции
  • операции за присъединяване

Първични операции в релационна алгебра

Основните операции са:

  • съюз за да получите данни от две таблици, генерирайки сума от кортежите, стига двете таблици да имат едни и същи колони и типове атрибути (домейн).
  • разлика за да получите данни, съдържащи се в първата таблица, но не и във втората таблица, генерирайки разлика в кортежите, стига двете таблици да имат едни и същи колони и типове атрибути (домейн).
  • декартов продукт да получите данни от две таблици в и да генерирате една единствена таблица, която комбинира данните от тях въз основа на стойност на атрибут.
  • изберете за да извлечете само някои от кортежите (редовете), съдържащи се в таблица въз основа на определени критерии.
  • проект за генериране на нова таблица, съдържаща само един или повече атрибути (колони) на съществуваща таблица
  • преименуване използва се за преименуване на атрибут, използва се за предотвратяване на конфликти, когато няколко таблици имат едно и също име за различни данни

Операции за присъединяване в релационна алгебра

Съединенията са може би най-мощните операции, които можете да извършите с релационна алгебра. Те се основават на първичните операции и ви позволяват да корелирате данни, съдържащи се в различни релации (таблици).

Забележка:Скоро ще говоря за присъединяванията на практика в СУБД, това е предимно теория.

Имаме 2 основни версии на присъединяване:естествено присъединяване итета присъединяване . Всички останали версии са извлечени от тези 2.

Естествено присъединяване

Естествено присъединяване корелира две релации (таблици) и създава нова таблица въз основа на същите стойности на атрибут.

Първо се нуждаем от две релации с едно и също име на атрибут (колона). След това, ако стойностите в атрибутите на релация A са несъвпадащи в атрибутите на релация B, редът не е част от резултата, той се игнорира.

Пример:

Връзка A

Идентификационен номер на служител Име
1 Марк
2 Тони
3 Рик

Връзка B

Име на мениджър Идентификационен номер на служител
Тод 1
Албърт 2

Можем да извършим естествено присъединяване, за да получим името на шефа за всеки служител:

Идентификационен номер на служител Име Име на мениджър
1 Марк Тод
2 Тони Албърт

Тъй като релациите имат общо име на атрибута Employee ID, то присъства само веднъж в резултата, а не 2 пъти.

Служителят №3, присъстващ във връзка А, Рик, не е включен в тази таблица, тъй като няма съответен запис във връзка Б.

Theta-join

Тета-съединяването позволява да се извърши обединяване въз основа на всякакви критерии за сравняване на две колони в две различни отношения, а не само равенство, както прави естественото съединение.

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

Equi-join

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

Разликата с естественото свързване е, че можем да изберем имената на атрибутите (колони) да сравняваме.

Ще говорим много повече за присъединяванията по-късно, когато SQL бъде въведен, за да можем да ги използваме на практика.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на sys.partitions

  2. Тайните на доминото, или модел на данни за играта домино

  3. Вашето окончателно ръководство за SQL присъединявания:OUTER JOIN – част 2

  4. Модел на база данни за таксиметрова услуга

  5. Нотация със стрелка