Садржај
2.8 SQL: Сложенији угњеждени упити - Додатно
3.0 SQL: Промена садржаја базе
3.2 SQL: Ажурирање података у табелама
3.3 SQL: Брисање података из табела
6.0 Библиотека Flask - пројектни задатак

Пројекција

Некада нам нису релевантни сви подаци који се налазе у табели. За почетак, можемо да издвојимо само податке из неких колона. То радимо тако што након кључне речи SELECT наведемо само називе оних колона које нас занимају.

У теорији база података, операција којом се издвајају само неке колоне из табеле назива се пројекција.

Упамтимо:

Пројекцијом се из резултата упита издвајају изабране колоне.

Пројекцијом се из табеле издвајају неке колоне

Иако је употреба звездице након SELECT веома једноставна и често се користи у интерактивном раду са базом и током развоја апликација, савет је да се у реалним апликацијама у свим упитима увек експлицитно наведу само потребне колоне (тиме се добија на ефикасности, јер се чита мање података из базе, а са друге стране добија се скрипт чији резултат се неће променити и ако се табела у међувремену прошири додатним колонама или се редослед колона промени).

Приказати имена и презимена свих ученика.

SELECT ime, prezime
FROM ucenik;

Извршавањем упита добија се следећи резултат:

ime

prezime

Петар

Петровић

Милица

Јовановић

Лидија

Петровић

Петар

Миловановић

Ана

Пекић

Значење овог упита је:

ОДАБЕРИ имена и презимена
ИЗ РЕДОВА табеле ученика

У систему SQLite Studio се упити пишу након што се кликне на креирану базу dnevnik у прозору Databases и потом изабере команда менија Tools Open SQL Editor.

Када се напише упит, кликне се на дугме Execute query (F9) (плави троуглић). Уколико се у простору за писање упита налази више њих, потребно је обележити онај коју желимо да покренемо. Уколико имамо више база података, обавезно проверити да ли је поред овог дугмета назив базе у којој желите да вршите упите.

../_images/execute_query.png

Савет је да се у прозору Databases увек прво провере тачни називи табела.

../_images/dnevnik.png

Често ће нам код упита бити потребно да знамо и тачне називе колона. То можемо да видимо за сваку табелу појединачно тако што кликнемо на њу у прозору Databases, па се онда појави опис структуре табеле који садржи списак свих колона. Можемо и да напишемо прво најједноставнији упит са звездицом (*) који приказује целу табелу и тако проверимо називе колона. На следећој слици може да се види упит покренут у систему SQLite Studio. Види се само првих неколико редова и информација о томе да има укупно 346 редова у овој табели. У овом случају је приказана комплетна база која је могла да се преузме у некој од претходних лекција.

../_images/ucenik.png

Списак колона можемо да видимо и када извршимо основни SELECT упит.

../_images/select.png

Приказати идентификаторе и називе предмета и разреде у којима се ти предмети предају.

SELECT id, naziv, razred
FROM predmet;

Извршавањем упита добија се следећи резултат:

id

naziv

razred

1

Математика

1

2

Српски језик

1

3

Рачунарство и информатика

1

4

Математика

2

5

Психологија

2

Вежба

Пробај сада самостално да напишеш наредни упит.

Приказати само називе свих предмета.



Зашто се ова операција зове „пројекција“?

Назив пројекција потиче из формализма који се назива релациона алгебра и који представља теоријску основу релационих база података, а преузет је по следећој аналогији из геометрије. Сваки ред у табели можемо да замислимо као објекат, који је у потпуности описан подацима наведеним у колонама. Ово је веома слично тачкама у простору које су описане помоћу својих координата.

Појам пројекција долази из геометрије

Ако се у геометрији неке координате тачака изоставе, тиме се врши пројекција на простор мање димензије. На пример, ако тачке имају координате \((x, y, z)\), изостављањем координате \(z\) врши се пројекција из тродимензионог простора у дводимензиону раван.

Због тога се изостављање неких колона из било које табеле такође назива пројекција.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+