Kurs Python Data Access and Processing

Kurs Python Data Access and Processing obuhvata različite aspekte upravljanja podacima pomoću Pythona i pratećih tehnologija. Najvećim delom obrađuje se problematika relacionih baza podataka kao osnovnog perzistentnog medijuma. Proučavaju se načini na koje je moguće povezati se na sistem za upravljanje relacionom bazom kroz Python tehnologije i načini za manipulaciju podacima u relacionoj bazi. Detaljno se radi sa SQL-om, jezikom za upravljanje relacionim bazama. 

Osim relacionih baza podataka, kurs obrađuje i druge relevantne tehnike koje su u vezi s podacima. Objašnjeni su koncepti NoSQL baza podataka i njihova upotreba kroz najpoznatije platforme tog tipa, poput MongoDB, Redisa i drugih. Objašnjava se kada, zbog čega i na koji način treba koristiti relacione, a kada NoSQL baze podataka, koje su njihove prednosti i mane i da li su i jedne i druge neophodne u produkciji. U okviru izučavanja relacionih baza obrađuje se i objektno relaciono mapiranje, pretvaranje podataka iz relacione baze u objekte sistema i obrnuto.

Osim baza podataka i sistema za upravljanje njima, kurs dotiče i koncepte i tehnologije koji nisu u direktnoj vezi sa skladištenjem podataka, ali jesu u bliskoj vezi sa podacima, poput manipulacije porukama (message queuing), analize podataka, statističkog izračunavanja i verovatnoće.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Python Development Program.

Opis i ciljevi kursa Python Data Access and Processing

Kurs Python Data Access and Processing obuhvata različite aspekte upravljanja podacima pomoću Pythona i pratećih tehnologija. Najvećim delom obrađuje se problematika relacionih baza podataka kao osnovnog perzistentnog medijuma. Proučavaju se načini na koje je moguće povezati se na sistem za upravljanje relacionom bazom kroz Python tehnologije i načini za manipulaciju podacima u relacionoj bazi. Detaljno se radi sa SQL-om, jezikom za upravljanje relacionim bazama.

Osim relacionih baza podataka, kurs obrađuje i druge relevantne tehnike koje su u vezi s podacima. Objašnjeni su koncepti NoSQL baza podataka i njihova upotreba kroz najpoznatije platforme tog tipa, kao što su MongoDB, Redis i druge. Objašnjava se kada, zbog čega i na koji način treba koristiti relacione, a kada NoSQL baze podataka, koje su njihove prednosti i mane i da li su i jedne i druge neophodne u produkciji. U okviru izučavanja relacionih baza obrađuje se i objektno-relaciono mapiranje – pretvaranje podataka iz relacione baze u objekte sistema i obrnuto.

Osim baza podataka i sistema za upravljanje njima, kurs dotiče i koncepte i tehnologije koji nisu u direktnoj vezi sa skladištenjem podataka, ali jesu u bliskoj vezi sa podacima, poput manipulacije porukama (message queuing), analize podataka, statističkog izračunavanja i verovatnoće.

Cilj je osposobljavanje polaznika za rad na aplikacijama upravljanim podacima. Po ispraćenom kursu, on će biti sposoban da podatke aplikacije učini perzistentnim upotrebom relacione ili NoSQL baze podataka, moći će ispravno da odabere adekvatnu tehnologiju u okviru projekta i objasni razloge za njenu upotrebu, kao i da projektuje podatke na projektnom nivou i da ih predstavi kroz relacioni i objektni format.

Polaznik će kroz upotrebu alata za rad sa porukama (message queuing) biti upoznat sa konceptima upravljanja porukama.

Pored skladištenja i transporta podataka, nakon kompletiranog kursa, polaznik će takođe moći da analizira podatke kroz različite statističke pristupe, kao i da kroz analitičko posmatranje podataka predvidi njihove dalje trendove.

Kurs Python Data Access and Processing će vam odgovoriti na pitanja

1. Šta je to ORM?

Objektno-relaciono mapiranje (ORM) podrazumeva biblioteku kodova koja automatizuje prenos podataka skladištenih u tabelama relacionih baza podataka u objekte koji se koriste u kodu aplikacije. ORM biblioteke pružaju apstrakciju na visokom nivou na relacionoj bazi podataka koja omogućava programeru da napiše Python kod umesto SQL koda za umetanje, čitanje, ažuriranje i brisanje podataka i šema. Programeri mogu da koriste programski jezik koji im odgovara da rade sa bazom podataka umesto da pišu SQL upite ili uskladištene procedure.

Objektno-relaciono mapiranje, kao što njegovo ime nagoveštava, mapira atribute objekata u odgovarajuća polja tabele i može da ih preuzme na isti način. Prednosti ovog pristupa u odnosu na tradicionalni ogledaju se u brzom razvoju, prenosivosti baza podataka i lakoći primene. U prošlosti su web programeri za razvoj aplikacija morali da poznaju i jezike baza podataka. Poznavanje SQL-a takođe nije dovoljno, s obzirom na to da se SQL implementacije pomalo razlikuju jedna od druge u različitim bazama podataka. Ovo je postalo težak i dugotrajan proces, te su za koncept ORM-a kreirani web okviri. Dva najčešće korišćena okvira u Pythonu su Flask i Django, koji za ORM koriste SQLAlchemy i Django ORM.

2. Čemu služe NoSQL baze podataka?

NoSQL je netipičan sistem za upravljanje bazama podataka (SUBP) koji pruža mehanizam za skladištenje i preuzimanje. Za razliku od SQL relacionih baza podataka, koje prate koncept odnosa tabela i njihovog povezivanja, NoSQL baza podataka se modelira drugačije.

Sam naziv ovog sistema za upravljanje sadrži reč No kao indikaciju da se relacije u njemu ne koriste.

Ovaj SUBP obuhvata širok izbor različitih tehnologija baza podataka koje su razvijene kao rešenje problema velike količine podataka koje je neophodno skladištiti u aplikacijama, poput korisničkih podataka i objekata, kao i problema učestalosti pristupa tim podacima, brzine pristupa, skaliranja i obrade. Struktura ovih sistema prati više koncepata modeliranja kao što su parovi ključ–vrednost, grafikoni, podaci orijentisani na dokumenta i podaci orijentisani na kolonu.

3. Šta su to serijalizacija i deserijalizacija?

Serijalizacija u programiranju predstavlja čin konvertovanja strukturiranih podataka iz aplikacije u obrazac u formatu koji kasnije omogućava oporavak njihove originalne strukture. Ovaj proces naziva se još i renderovanje podataka. Drugim rečima, pokretanjem procesa serijalizacije kreira se neki obrazac podataka prema zadatoj šemi.

U računarstvu, osnovna jedinica za skladištenje informacija naziva se čvor. Čvorovi predstavljaju individualne delove neke veće strukture kao što su liste ili stabla. U procesuserijalizacije, za svaki čvor u šemi koji je zadat u aplikaciji kreira se po jedno polje. Ovaj proces se ponavlja rekurzivno dok sva polja ne budu kreirana. Kao rezultat rekurzije formira se stablo polja koje predstavlja preslikanu šemu. Svaki objekat polja nastao kao rezultat prethodnog koraka u sebi ima atribut koji indikuje sa kojim čvorom u šemi je povezan.

Deserijalizacija je proces suprotan serijalizaciji, koji omogućava rekonstrukciju originalnog objekta. Ona obrazac konvertuje u podatke koji se prikazuju na aplikaciji. Postupak je identičan postupku serijalizacije, odnosno preslikavanju čvorova u polja rekurzivno.

Python Data Access and Processing

4. Šta predstavlja SQLAlchemy okvir?

SQLAlchemy je popularni SQL alat i ORM (Object Relational Mapper). To je softver otvorenog koda i višeplatformski softver napisan u Pythonu objavljen pod MIT licencom.

SQLAlchemy je poznat po svom objektno-relacionom mapiranju (ORM), pomoću kojeg se klase mogu preslikati u bazu podataka, omogućavajući tako objektnom modelu i šemi baze podataka da se od početka razvijaju na čisto odvojeni način.

Kako veličina i performanse SQL baza podataka postaju sve bitnije, ove baze se ponašaju manje kao kolekcije objekata. S druge strane, kako apstrakcija u kolekcijama predmeta počinje da važi, oni se ponašaju manje poput tabela i redova. Cilj SQLAlchemyja je da prilagodi oba ova principa. Iz tog razloga je usvojio obrazac mapiranja podataka, a ne aktivni obrazac zapisa koji koriste brojni drugi ORM-ovi.

5. Koje baze podataka možemo koristiti sa programskim jezikom Python?

  • MySQL – sistem za upravljanje relacionim bazama podataka otvorenog koda; ovaj jezik koristi klijent–server arhitekturu i uglavnom se koristi za web aplikacije;
  • Oracle SQL – prvi SUBP koji je dizajniran u svrhe obavljanja umreženih aktivnosti u okviru kompanije;
  • Sybase – nekadašnje softversko preduzeće, koje se bavilo upravljanjem i analizom podataka u relacionim bazama; ovaj SUBP se najčešće koristi u industriji finansija;
  • PostgreSQL – pojam nastao je od reči Ingres, koja predstavlja naziv relacione baze podataka namenjene u komercijalne i državne svrhe;
  • NoSQL – koristi mehanizam za skladištenje i preuzimanje podataka koji se modelira drugačije od tabelarnih odnosa;
  • SQLite – ne koristi klijent–server arhitekturu i ne zahteva prethodnu instalaciju za korišćenje.

6. Čemu služi pandas biblioteka?

Biblioteka pandas predstavlja najvažnije sredstvo na raspolaganju današnjim naučnicima i analitičarima koji rade na Pythonu. Iako danas postoje mnogo moćniji alati za vizualizaciju i mašinsko učenje, pandas biblioteka predstavlja okosnicu većine projekata kad je reč o radu sa podacima. Ova biblioteka je dobila naziv od reči panel i data (panel podaci), što predstavlja ekonometrijski termin za skupove podataka koji uključuju zapažanja za iste podatke kroz više vremenskih perioda.

Biblioteka pandas ne samo da je centralna komponenta alata za nauku o podacima već se koristi u kombinaciji sa drugim bibliotekama u toj kolekciji. Izgrađena je na vrhu numpy paketa, što znači da se mnogo struktura numpyja koristi ili replicira u pandasu. Podaci u pandasu često se koriste i za prikaz statističkih analiza u scipyju, crtanje funkcija iz Matplotliba i algoritme mašinskog učenja u scikit-learnu.

7. Šta su i čemu služe transakcije?

Transakcija se može definisati kao grupa zadataka. Pojedinačni zadatak je minimalna procesna jedinica, koja se ne može dalje deliti. Transakcija je vrlo mala jedinica programa koja može sadržati nekoliko zadataka nižeg nivoa. Kako bi održale tačnost, potpunost i integritet podataka, transakcije prate ACID osobine:

  • Atomicity – atomičnost – ili se sve operacije izvršavaju ili se ne izvršava nijedna;
  • Consistency – konzistentnost – doslednost baze podataka pre i nakon izvršenja transakcije;
  • Isolation – izolovanost – efekti transakcija koje se obavljaju istovremeno su izolovani;
  • Durability – trajnost – efekti transakcija su trajni na bazi podataka. 

Dve osnovne operacije transakcija:

  • commit() – trajno čuva sve promene nad podacima u bazi;
  • rollback() – poništava sve započete operacije trenutne transakcije i vraća bazu podataka u stanje u kojem je bila pre pokretanja te transakcije.

Plan i program predavanja:

Modul 1 – Rad sa podacima

  • Podaci i njihova namena
  • Serijalizacija i deserijalizacija
  • Čuvanje i transport podataka
  • Analiza podataka i regresija

Modul 2 – Rad sa bazama podataka

  • Manipulacija konekcijom i čuvanje konekcija
  • Manipulacija podacima u relacionoj bazi
  • Rad sa NoSQL bazama podataka
  • Rad sa redovima poruka

Modul 3 – Objektno-relaciono mapiranje

  • Tabele i objekti
  • Objektno-relaciono mapiranje
  • Upotreba okvira SQLAlchemy

Kompetencije

Rad sa podacima

  • Poznavanje podataka i njihove namene
  • Poznavanje sistema sa upravljanje bazama podataka
  • Sposobnost serijalizacije i deserijalizacije podataka
  • Sposobnost kreiranja aplikacija koje koriste transakcije

Rad sa bazama podataka

  • Poznavanje SQL i NoSQL baza podataka
  • Sposobnost kreiranja aplikacija koje koriste MySQL baze podataka
  • Sposobnost kreiranja aplikacija koje koriste NoSQL baze podataka

Objektno-relaciono mapiranje

  • Poznavanje osnova objektno-relacionog mapiranja
  • Sposobnost kreiranja jednostavnih aplikacija kroz radni okvir SQLAlchemy

Potrebno predznanje

Poznavanje osnova programskog jezika Python, odnosno gradiva iz kurseva Python and Programming Fundamentals, Object Oriented Programming in Python i Web Application Building.

Potreban softver

Potrebno je imati instaliran operativni sistem Windows (verzije 7, 8 ili 10) ili macOS. Detaljno uputstvo za instalaciju Python softvera je izloženo u kursu Python and Programming Fundamentals.

Potreban hardver

Neophodna hardverska konfiguracija:

  • Procesor: Intel Atom® processor, Intel® Core™ i3 processor ili brži procesori
  • Slobodan prostor na disku: najmanje 1 GB
  • RAM: najmanje 1 GB

Polaznici kursa

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde