У чому різниця між проекцією та виділенням? Є це:
- Проекція -> для вибору стовпців таблиці; і
- Виділення ---> для виділення рядків таблиці?
Тож чи є проекція та вибір вертикальним та горизонтальним нарізанням відповідно?
Відповіді:
Точно так.
Проекція означає вибір, які стовпці (або вирази) повертатиме запит.
Виділення означає, які рядки потрібно повернути.
якщо запит є
select a, b, c from foobar where x=3;
тоді "a, b, c" - частина проекції, "де x = 3" частина виділення.
Просто PROJECTION займається вилученням або виділенням стовпців, тоді як SELECTION займається вилученням або виділенням рядків.
Проекція: те, що коли-небудь вводилося в реченні select, тобто "список стовпців", "*" або "вирази", що стає під проекцією.
* вибір: * який тип умов ми застосовуємо до цих стовпців, тобто отримання записів, які потрапляють під вибір.
Наприклад:
SELECT empno,ename,dno,job from Emp
WHERE job='CLERK';
у наведеному вище запиті стовпці "empno, ename, dno, job" ті потрапляють під проекцію, "де job = 'clerk'" потрапляє під вибір
Проекції та виділення - це дві одинарні операції в реляційній алгебрі, які мають практичне застосування в СУБД (реляційні системи управління базами даних).
Практично, так, Проекція означає вибір конкретних стовпців (атрибутів) із таблиці, а Виділення означає фільтрування рядків (кортежів). Крім того, для звичайної таблиці проекція та вибір можна назвати вертикальним та горизонтальним нарізуванням або фільтруванням.
Вікіпедія надає більш офіційні визначення їх із прикладами, і вони можуть бути корисними для подальшого читання реляційної алгебри:
SELECT
пропозиція насправді виконує проекцію (а не виділення), і саме цяWHERE
стаття фактично виконує виділення .