De acest 1 Mai lupta pentru un job sigur!

Cursul Python Data Access and Processing

Cursul Python Data Access and Processing cuprinde diferite aspecte ale gestionării datelor folosind Python și tehnologii conexe. În cea mai mare parte, problema bazelor de date relaționale este abordată ca un mediu de bază persistent. Sunt analizate modalități de conectare la un sistem relațional de gestionare a bazelor de date prin tehnologii Python și modalități de manipulare a datelor dintr-o bază de date relațională. Este abordat în detaliu cu SQL, un limbaj pentru gestionarea bazelor de date relaționale.

Pe lângă bazele de date relaționale, cursul abordează alte tehnici relevante legate de date. Sunt explicate conceptele bazelor de date NoSQL și utilizarea acestora prin cele mai cunoscute platforme de acest tip, precum MongoDB, Redis și altele. Se explică când, de ce și cum se utilizează bazele de date relaționale și când NoSQL, care sunt avantajele și dezavantajele lor și dacă sunt ambele necesare în producție. În cadrul studiului bazelor de date relaționale, se abordează și  maparea relațională de obiecte, transformarea datelor din bazele de date relaționale în obiecte de sistem și invers.

Pe lângă bazele de date și sistemele de gestionare a acestora, cursul abordează, de asemenea, și concepte și tehnologii care nu sunt direct legate de stocarea datelor, dar sunt strâns legate de date, precum manipularea mesajelor (message queuing), analiza datelor, calculul statistic și probabilitatea.

Sunteţi interesat de acest curs? Îl puteţi parcurge în cadrul acestor programe LINK Academy: Python Development Program.

Descrierea și scopul cursului Python Data Access and Processing:

Cursul Python Data Access and Processing cuprinde diferite aspecte de gestionare a datelor cu ajutorul lui Python și a tehnologiilor aferente. În cea mai mare parte se studiază problema bazelor de date relaționale ca mediu persistent de bază. Se studiază modalitățile în care se pot conecta la sistemul pentru gestionarea bazei de date relaționale cu ajutorul tehnologiei Python și modalitățile de manipulare a datelor în baza relațională. Se lucrează în detaliu cu SQL, limbajul pentru gestionarea bazelor relaționale. 

Pe lângă baze de date relaționale, cursul abordează și alte tehnici relevante legate de date. Sunt explicate conceptele bazelor de date NoSQL și utilizarea lor prin cele mai cunoscute platforme de acest tip, precum MongoDB, Redis etc. Se explică când, de ce și cum trebuie folosite bazele de date relaționale, când cele NoSQL, care sunt avantajele și dezavantajele lor și dacă sunt ambele necesare în producție. La studierea bazelor de date relaționale se abordează și maparea relațională obiectuală – transformarea datelor din baze relaționale în obiecte de sistem și invers. 

În afară de baze de date și sisteme pentru gestionarea acestora, cursul abordează și conceptele și tehnologiile care nu sunt în legătură directă cu stocarea datelor, dar sunt în legătură strânsă cu acestea, precum manipularea mesajelor (message queuing), analiza datelor, calculul statistic și probabilitatea. 

Scopul este pregătirea cursantului pentru lucrul cu aplicații de gestionare a datelor. După finalizarea cursului, acesta va fi pregătit să facă datele aplicației  persistente folosind baze de date relaționale sau NoSQL, va putea să aleagă corect tehnologia adecvată în cadrul proiectului și să explice motivele pentru utilizarea sa, precum și să proiecteze la nivel de proiect și să le prezinte printr-un format relațional și obiectual. 

Folosind instrumentul pentru lucrul cu mesajele (message queuing), cursantul se va familiariza cu conceptele de gestionare a mesajelor. 

Pe lângă depozitarea și transportul datelor, după cursul complet, cursantul va putea, de asemenea, să analizeze datele prin diferite abordări statistice, precum și să anticipeze tendințele lor ulterioare prin observarea analitică a datelor.

Python Data Access and Processing

Profesorul nostru, Silviu Ojog, vă prezintă pe scurt importanța cursului Python Data Access and Processing.

Cursul Python Data Access and Processing vă răspunde la întrebări:

1. Ce este ORM?

Maparea relațională și obiectuală (ORM) presupune biblioteca de coduri care automatizează transferul de date depozitate în tabelele bazelor de date relaționale în obiecte care se folosesc în codul aplicației. Bibliotecile ORM oferă o abstracție la nivel înalt la baza de date relațională care permite programatorului să scrie codul Python în loc de codul SQL pentru introducerea, citirea, actualizarea și ștergerea datelor și a schemelor. Programatorii pot folosi un limbaj de programare care le permite să lucreze cu baza de date în loc să scrie interogările SQL sau proceduri stocate. 

Maparea obiectuală și relațională, după cum îi spune și numele, mapează atributele obiectelor în câmpuri corespunzătoare din tabel și le poate prelua în același mod. Avantajele acestei abordări în comparație cu cele tradiționale se reflectă în dezvoltarea rapidă, transmiterea bazelor de date și ușurința în aplicare. În trecut, programatorii web trebuiau să cunoască și limbajele bazelor de date pentru dezvoltarea aplicațiilor. De asemenea, cunoașterea SQL nu este suficientă având în vedere că implementările SQL diferă puțin una de alta în diferite baze de date. Acesta a devenit un proces greu și de lungă durată, așadar pentru conceptul ORM au fost create cadre web. Două cadre folosite cel mai des în Python sunt Flask și Django, care pentru ORM folosesc SQLAlchemy și Django ORM.

2. La ce se folosesc bazele de date NoSQL?

NoSQL este un sistem atipic pentru gestionarea bazelor de date (SUBP) care oferă un mecanism de stocare și preluare. Spre deosebire de bazele de date relaționale SQL, care urmăresc conceptul relației dintre tabele și conectarea lor, baza de date NoSQL se modelează altfel. 

Numele acestui sistem pentru gestionare conține cuvântul No ca indicație că în el nu se folosesc relațiile. 

Acest SUBP cuprinde un spectru larg de tehnologii diferite dezvoltate ca o soluție a problemelor cu cantitate mare de date care trebuie stocate în aplicații, precum datele și obiectele de utilizator, precum și problema creșterii frecvenței de accesare a acestor date, viteza de accesare, scalare și editare. Structura acestor sisteme urmărește mai multe concepte de modelare, precum perechi de chei-valoare, grafice, date orientate spre document și date orientate spre coloană.

3. Ce sunt serializarea și deserializarea?

Serializarea în programare reprezintă un mod de convertire a datelor structurate din aplicație în model în formatul care permite ulterior recuperarea structurii lor originale. Acest proces se mai numește și randarea datelor. Cu alte cuvinte, prin activarea procesului de serializare, se creează un model de date după o schemă dată. 

În contabilitate, unitatea de bază pentru stocarea datelor se numește nod. Nodurile sunt părți individuale ale unei structuri mai mari, precum liste sau arbori. În procesul de serializare, pentru fiecare nod dat în aplicație se creează câte un câmp. Acest proces se repetă recursiv până când vor fi create toate câmpurile. Ca rezultat al recursiei se formează arborele câmpului care reprezintă o schemă mapată. FIecare obiect al câmpului, apărut ca rezultat al etapei precedente are câte un atribut care indică cu care nod din schemă este conectat.  

Deserializarea este procesul opus serializării, care permite reconstrucția obiectului original. Aceasta convertește modelul în datele afișate în aplicație. Procedeul este identic cu cel de serializare, respectiv maparea nodurilor în câmpuri în mod recursiv. 

Python Data Access and Processing

4. Ce reprezintă cadrul SQLAlchemy?

SQLAlchemy este instrumentul SQL popular și ORM (Object Relational Mapper). Acesta este un software cu cod deschis și multiplatformă scris în Python, publicat sub licența MIT. SQLAlchemy este cunoscut după maparea obiectuală și relațională (ORM), cu care clasele se pot mapa în baza de date, permițând astfel modelului obiectual și schemei bazei de date să se dezvolte de la început într-un mod separat. 

Având în vedere că dimensiunea și performanțele bazei de date SQL devin tot mai importante, aceste baze se comportă mai puțin ca și colecții de obiecte. Pe de altă parte, ținând cont că abstracția în colecții de obiecte devine tot mai importantă, acestea se comportă mai puțin ca și tabele și rânduri. Scopul lui SQLAlchemy este să adapteze ambele principii. Din acest motiv, a asimilat modelul de mapare a datelor, nu modelul activ de înregistrare folosit de numeroase alte ORM-uri. 

5. Care baze de date le putem folosi cu limbajul de programare Python?

  • MySQL – sistem pentru gestionarea bazelor de date relaționale cu cod deschis; acest limbaj folosește arhitectura client-server și, în general, se folosește pentru aplicații web;
  • Oracle SQL – primul SUBP care este creat pentru realizarea activităților conectate în cadrul companiei;
  • Sybase – compania software din trecut, care s-a ocupat cu gestionarea și analiza datelor în baze de date relaționale; acest SUBP se folosește cel mai des în industria finanțelor;
  • PostgreSQL – noțiune care provine din cuvântul Ingres, care reprezintă numele bazei de date relaționale în scop comercial și de stat;
  • NoSQL – folosește mecanismul pentru stocarea și preluarea datelor care se modelează diferit față de relațiile tabelare;
  • SQLite – nu folosește structura client-server și nu cere instalarea precedentă pentru utilizare.

6. La ce se folosește biblioeca pandas?

Biblioteca pandas reprezintă cel mai important mijloc disponibil oamenilor de știință și analiștilor care lucrează în Python. Deși în prezent există multe instrumente puternice pentru vizualizare și învățare mecanică, biblioteca pandas reprezintă scheletul majorității proiectelor când vine vorba de lucrul cu datele. Această bibliotecă a primit numele de la cuvintele panel și data (panoul, date), ceea ce reprezintă termenul economic pentru seturile de date care includ atenția pentru aceleași date prin mai multe perioade de timp. 

Biblioteca pandas nu doar că este componenta centrală a instrumentelor de știință a datelor, ci se folosește în combinație cu alte biblioteci din această colecție. A fost creată în vârful pachetului numpy, ceea ce înseamnă că în pandas se folosesc sau se replică multe structuri de numpy. Datele în pandas se folosesc des și pentru prezentarea analizelor statistice în scipy, desenarea funcțiilor din Matplotlib și algoritmi de învățare automată în scikit-learn.

7. Ce sunt și la ce se folosesc tranzacțiile?

Tranzacția se poate defini ca un grup de sarcini. O anumită sarcină este o unitate procesuală minimă, care nu se poate partaja mai departe. Tranzacția este o unitate foarte mică de program care poate să conțină câteva sarcini de nivel redus. Pentru a menține exactitatea, complexitatea și integritatea datelor, tranzacțiile urmăresc caracteristicile ACID:

  • Atomicity – fie se execută toate operațiile, fie nu se execută niciuna;
  • Consistență – consistența bazei de date înainte și după efectuarea tranzacției;
  • Izolare – efectele publicate simultan sunt izolate;
  • Durabilitate – efectele de tranzacție sunt durabile pe baza de date. 

Două operații de bază ale tranzacțiilor:

  • commit() – se păstrează pe termen lung toate modificările asupra datelor în bază;
  • rollback() – anulează toate operațiile începute ale tranzacției curente și reduce baza de date în starea în care a fost înainte de această tranzacție. 

Planul și programa cursului:

Modulul 1 – Lucrul cu datele

  • Datele și scopul lor
  • Serializare și deserializare
  • Stocarea și transportul datelor
  • Analiza datelor și regresia 

Modulul 2 – Lucrul cu bazele de date 

  • Manipularea conexiunii și stocarea conexiunilor
  • Manipularea datelor în baza relațională
  • Lucrul cu bazele de date NoSQL
  • Lucrul cu rânduri de mesaje 

Modulul 3 – Maparea obiectuală și relațională 

  • Tabele și obiecte
  • Maparea obiectuală și relațională
  • Utilizarea cadrului SQLAlchemy

Competențe 

  • Lucrul cu datele
  • Cunoașterea datelor și scopul lor
  • Cunoașterea sistemului cu gestionarea bazelor de date
  • Capacitatea de serializare și deserializare a datelor
  • Capacitatea de creare a aplicațiilor folosite de tranzacții

Lucrul cu bazele de date

  • Cunoașterea bazelor de date SQL și NoSQL
  • Capacitatea de creare a aplicațiilor care folosesc bazele de date MySQL
  • Capacitatea de creare a aplicațiilor care folosesc bazele de date NoSQL

Mapare obiectuală și relațională 

  • Cunoașterea bazelor mapării obiectuale și relaționale
  • Capacitatea de creare a aplicațiilor simple prin cadrul de lucru SQLAlchemy

Cunoștințe necesare

  • Cunoașterea elementelor de bază ale limbajului de programare Python, respectiv a materiei din cursurile Python and Programming Fundamentals, Object Oriented Programming in Python și Web Application Building.

Software necesar

  • Trebuie să fie instalat sistemul de operare Windows (versiunea 7, 8 sau 10) sau macOS.
  • Instrucțiuni detaliate pentru instalarea software-ului Python sunt prezentate în cursul Python and Programming Fundamentals.

Hardware necesar 

Configurare hardware necesară:

  • Procesor: Intel Atom® processor, Intel® Core™ i3 processor sau procesoare mai rapide
  • Spațiu liber pe disc: minim 1 GB
  • RAM: minim 1 GB

Cursul Python Data Access and Processing

3 moduri de a obține un job bine plătit

Am pregătit un document în care puteţi descoperi trei moduri de a obţine un job bine plătit pentru profesioniştii care lucrează pe calculator. Descărcați raportul aici

Înscrierea pentru generaţia 2021/22 se face aici.

Pentru a afla totul despre înscriere, click aici.