You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/sr/2-Working-With-Data/05-relational-databases
localizeflow[bot] e1f6324809
chore(i18n): sync translations with latest source changes (chunk 1/1, 213 changes)
1 month ago
..
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 213 changes) 1 month ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 213 changes) 1 month ago

README.md

Рад са подацима: Релационе базе података

 Sketchnote by (@sketchthedocs)
Рад са подацима: Релационе базе података - Скетчнот од @nitya

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

Квиз пре предавања

Све почиње са табелама

Релациона база података у свом језгру има табеле. Баш као и код табеларног програма, табела је скуп колона и редова. Ред садржи податке или информације са којима желимо да радимо, као што је име града или количина падавина. Колоне описују податке које чувају.

Хајде да започнемо наше истраживање тако што ћемо направити табелу за чување информација о градовима. Можемо почети са њиховим именом и државом. Ово можете сачувати у табели као што следи:

Град Држава
Токио Јапан
Атланта Сједињене Државе
Окланд Нови Зеланд

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

Недостаци приступа са једном табелом

Вероватно вам горња табела делује релативно познато. Хајде да додамо неке додатне податке у нашу растућу базу података - годишње падавине (у милиметрима). Фокусираћемо се на године 2018, 2019 и 2020. Ако бисмо то додали за Токио, могло би изгледати овако:

Град Држава Година Количина
Токио Јапан 2020 1690
Токио Јапан 2019 1874
Токио Јапан 2018 1445

Шта примећујете у нашој табели? Можда примећујете да дуплирамо име и државу града изнова и изнова. То може заузети доста простора за складиштење и углавном није потребно имати више копија. На крају крајева, Токио има само једно име које нас занима.

У реду, хајде да пробамо нешто друго. Додаћемо нове колоне за сваку годину:

Град Држава 2018 2019 2020
Токио Јапан 1445 1874 1690
Атланта Сједињене Државе 1779 1111 1683
Окланд Нови Зеланд 1386 942 1176

Иако ово избегава дуплирање редова, додаје неколико других изазова. Морали бисмо да мењамо структуру наше табеле сваки пут када се појави нова година. Поред тога, како наши подаци расту, имање година као колона ће отежати преузимање и израчунавање вредности.

Зато нам треба више табела и односа. Разбијањем наших података можемо избегнути дуплирање и имати већу флексибилност у начину рада са подацима.

Концепти односа

Вратимо се нашим подацима и одредимо како желимо да их поделимо. Знамо да желимо да сачувамо име и државу наших градова, па ће то највероватније најбоље функционисати у једној табели.

Град Држава
Токио Јапан
Атланта Сједињене Државе
Окланд Нови Зеланд

Али пре него што направимо следећу табелу, морамо да схватимо како да реферишемо сваки град. Потребан нам је неки облик идентификатора, ИД или (у техничким терминима база података) примарни кључ. Примарни кључ је вредност која се користи за идентификовање једног специфичног реда у табели. Иако би то могло бити засновано на самој вредности (на пример, могли бисмо користити име града), требало би да буде готово увек број или други идентификатор. Не желимо да се ИД икада мења јер би то прекинуло однос. У већини случајева примарни кључ или ИД ће бити аутоматски генерисан број.

Примарни кључ се често скраћује као PK

градови

city_id Град Држава
1 Токио Јапан
2 Атланта Сједињене Државе
3 Окланд Нови Зеланд

Приметићете да током ове лекције користимо термине "ид" и "примарни кључ" наизменично. Концепти овде важe и за DataFrame-ове, које ћете касније истраживати. DataFrame-ови не користе терминологију "примарни кључ", али ћете приметити да се понашају на сличан начин.

Када смо направили табелу градова, хајде да сачувамо падавине. Уместо да дуплирамо све информације о граду, можемо користити ИД. Такође треба да обезбедимо да новонаправљена табела има колону ид, јер све табеле треба да имају ид или примарни кључ.

падавине

rainfall_id city_id Година Количина
1 1 2018 1445
2 1 2019 1874
3 1 2020 1690
4 2 2018 1779
5 2 2019 1111
6 2 2020 1683
7 3 2018 1386
8 3 2019 942
9 3 2020 1176

Приметите колону city_id у новонаправљеној табели падавине. Ова колона садржи вредности које реферишу ИД-ове у табели градови. У техничким терминима релационих података, ово се зове страни кључ; то је примарни кључ из друге табеле. Можете то једноставно сматрати као референцу или показивач. city_id 1 реферише Токио.

[!NOTE] Страни кључ се често скраћује као FK

Преузимање података

Када су наши подаци раздвојени у две табеле, можда се питате како их преузимамо. Ако користимо релациону базу података као што су MySQL, SQL Server или Oracle, можемо користити језик који се зове Structured Query Language или SQL. SQL (понекад изговарано као "сиквел") је стандардни језик који се користи за преузимање и измену података у релационој бази података.

За преузимање података користите команду SELECT. У основи, ви изаберете колоне које желите да видите из табеле у којој се налазе. Ако желите да прикажете само имена градова, можете користити следеће:

SELECT city
FROM cities;

-- Output:
-- Tokyo
-- Atlanta
-- Auckland

SELECT је место где наводите колоне, а FROM је место где наводите табеле.

[!NOTE] SQL синтакса није осетљива на велика и мала слова, што значи да select и SELECT значе исто. Међутим, у зависности од типа базе података коју користите, колоне и табеле могу бити осетљиве на велика и мала слова. Због тога је добра пракса да увек третирајте све у програмирању као да је осетљиво на велика и мала слова. При писању SQL упита уобичајена конвенција је да кључне речи пишете великим словима.

Горњи упит ће приказати све градове. Замислите да желимо да прикажемо само градове у Новом Зеланду. Потребан нам је неки облик филтера. SQL кључна реч за то је WHERE, или "где је нешто тачно".

SELECT city
FROM cities
WHERE country = 'New Zealand';

-- Output:
-- Auckland

Спојење података

До сада смо преузимали податке из једне табеле. Сада желимо да спојимо податке из обе табеле, градови и падавине. Ово се ради спајањем табела. Ефективно ћете направити спој између две табеле и упоредити вредности из колоне из сваке табеле.

У нашем примеру, упоредићемо колону city_id у табели падавине са колоном city_id у табели градови. Ово ће упарити вредност падавина са одговарајућим градом. Тип споја који ћемо извршити назива се унутрашњи спој, што значи да ако неки редови немају подударност са било чим из друге табеле, неће бити приказани. У нашем случају сваки град има податке о падавинама, тако да ће све бити приказано.

Хајде да преузмемо падавине за 2019. годину за све наше градове.

Урадићемо то у корацима. Први корак је да спојимо податке тако што ћемо назначити колоне за спој - city_id као што је раније истакнуто.

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id

Истакли смо две колоне које желимо и чињеницу да желимо да спојимо табеле преко city_id. Сада можемо додати WHERE изјаву да филтрирамо само годину 2019.

SELECT cities.city
    rainfall.amount
FROM cities
    INNER JOIN rainfall ON cities.city_id = rainfall.city_id
WHERE rainfall.year = 2019

-- Output

-- city     | amount
-- -------- | ------
-- Tokyo    | 1874
-- Atlanta  | 1111
-- Auckland |  942

Резиме

Релационе базе података се заснивају на дељењу информација између више табела које се затим поново спајају за приказ и анализу. Ово пружа висок степен флексибилности за извођење прорачуна и друге манипулације подацима. Видели сте основне концепте релационе базе података и како извршити спајање између две табеле.

🚀 Изазов

Постоји много релационих база података доступних на интернету. Можете истраживати податке користећи вештине које сте научили горе.

Квиз после предавања

Квиз после предавања

Преглед и самостално учење

Постоји неколико ресурса доступних на Microsoft Learn за наставак вашег истраживања SQL-а и концепата релационих база података

Задатак

Приказивање података о аеродромима


Одрицање од одговорности: Овај документ је преведен коришћењем AI услуге за превођење Co-op Translator. Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода.