CodeGym/Curs Java/All lectures for RO purposes/Cunoștințe avansate de baze de date

Cunoștințe avansate de baze de date

Disponibil

1.1 Principiul construcției prelegerilor

Tu și cu mine am început cunoștințele noastre cu bazele de date de mai jos . Aceasta este o caracteristică a abordării mele personale de a preda oamenii. Când vorbesc despre subiecte noi, întotdeauna vă spun mai întâi cum să utilizați anumite instrumente în practică. Și deja când știu că o persoană știe să le folosească, încep să spun cum funcționează totul.

Există mai multe motive pentru această abordare, dar principalul este că cea mai valoroasă și cea mai lipsă resursă din procesul de învățare este motivația elevului .

Această abordare este puțin diferită de cea cu care suntem obișnuiți, care este folosită în școli și universități. Dar totul este clar: atunci când înveți la școală sau la universitate, ai prioritățile potrivite: studiul este cel mai important lucru din viață în acest moment.

Dacă sunteți angajat în autoeducație la vârsta adultă, atunci de multe ori trebuie să vă combinați deja studiile cu munca, treburile casnice, îngrijirea copiilor sau a părinților în vârstă. Și aici de multe ori studiul nu va fi prima prioritate.

Totul tine de prioritati. Există chiar și un astfel de concept în lumea startup-urilor - Fail Fast, fail cât mai repede posibil . Sună ciudat, dar de fapt are foarte mult sens: sarcina unui startup este să verifice rapid dacă ipoteza lui este corectă. Și dacă nu este adevărat, atunci nu trebuie să-ți petreci ani din viață pe el, este mai bine să înțelegi cât mai curând posibil că nu există cerere pentru un anumit serviciu sau produs.

Când predau Java și SQL, folosesc aceeași abordare: vă ofer oportunitatea de a înțelege cât mai devreme posibil dacă vă grăbiți de la programare sau nu . Dacă îți place programarea și tu însuți ai reușit să-ți dai seama cum să lucrezi cu bucle și matrice, atunci cu ajutorul mentorilor și a unui program bine conceput, ai toate șansele să-ți finalizezi studiile și să-ți găsești un loc de muncă.

Dar un alt fapt nu este mai puțin important: în câteva zile libere, poți înțelege că programarea nu este pentru tine. S-ar putea să nu fiți interesat de asta și este în regulă . Deci, nu trebuie să-ți petreci lunile din viață pe el.

Doar 40% dintre absolvenți lucrează în specialitatea pe care au primit-o la universitate. Gândește-te bine, oamenii au studiat 5-6 ani, iar 60% dintre ei au decis să nu lucreze în specialitatea lor. Da, o parte din cunoștințele dobândite sunt încă folosite, dar aproximativ jumătate nu sunt.

Aceasta este valoarea conceptului Fail Fast - să înțelegi cât mai devreme că o anumită profesie, o anumită persoană sau un anumit hobby nu este potrivit pentru tine. Și nu-ți pierde timpul și energia cu ele. Pe termen lung, aceasta este o strategie foarte bună.

1.2 SQL și toate, toate, toate

Am terminat cu introducerea filozofică, să revenim la învățarea SQL.

Limbajul SQL și DBMS sunt lucruri ușor diferite. Limbajul SQL în sine este un fel de standard care descrie ceea ce poate fi scris în interogările SQL în baza de date. SGBD-urile sunt deja implementări ale acestui standard. Unele SGBD implementează unele funcții ale standardului, a doua - altele și așa mai departe.

Cu cât este mai scump SGBD, cu atât mai multe caracteristici ale standardului pe care îl implementează. De asemenea, multe SGBD-uri implementează adesea propriile caracteristici unice în afara standardelor SQL. Uneori, acest lucru duce la probleme de portabilitate: interogările SQL scrise pentru un SGBD pot să nu funcționeze bine pentru altul.

Java are și o situație similară. Dacă un program Java este scris sub Windows, atunci nu va funcționa normal pe Linux. Pentru a rezolva această problemă, Java introduce clase speciale care au implementări diferite pentru diferite sisteme de operare. Exemplu: clasă Path care are implementări ale WindowsPath, LinuxPath etc.

A doua parte a problemei este rezolvată cu ajutorul versiunii. Toate inovațiile de succes din diferite limbi sau DBMS sunt adăugate noului standard JDK sau SQL. Știți deja că există diferite versiuni ale JDK-ului și, cu cât versiunea este mai nouă, cu atât are mai multe caracteristici. Este la fel cu SQL.

În limbajul SQL, există mai multe versiuni ale standardului său, care sunt denumite după an:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Vești bune : nu vom studia aceste standarde. În primul rând, va dura ani pentru a studia și stăpâni toate acestea. Și în al doilea rând, aceste standarde sunt ca versiunile Android: la doar 5-10 ani de la lansare, standardul devine masiv răspândit.

În bazele de date cu cantități mari de date, oamenii au nevoie de fiabilitate și stabilitate. „Funcționează, nu-l atinge” este motto-ul tuturor celor care lucrează cu baze de date. Iar trecerea la o nouă versiune a bazelor de date se face la fiecare 5 ani, când toate avantajele unei astfel de soluții sunt deja evidente.

1.3 Dincolo de paranteze

După cum am spus mai sus, este nevoie de ani pentru a deveni un profesionist în baze de date. Un profesionist știe o mulțime de lucruri pe care nu le vom studia. Dar voi vorbi puțin despre ce mai există în bazele de date.

Aproape toate bazele de date moderne acceptă:

1 limbaj procedural (PL)

RDBMS acceptă capacitatea de a scrie proceduri și funcții care rulează pe SQL Server și pot face o mulțime de lucruri cu date în timpul interogărilor. De exemplu, odată am scris interogări PL SQL pe serverul Oracle, care, ca răspuns la interogare, a generat... o pagină HTML cu date. Da, poti.

2 evenimente (declanșatoare)

Toate SGBD-urile moderne suportă mecanismul evenimentelor, care se numesc declanșatori în limbajul SQL. Un declanșator apare ca răspuns la o anumită acțiune. De exemplu, puteți intercepta toate încercările de a scrie în baza de date și puteți adăuga ora exactă a modificării lor la linii noi.

3 Înregistrare

Bazele de date moderne încearcă să fie super rapide, așa că adesea toate modificările (rânduri noi, rânduri șterse, rânduri modificate) sunt scrise mai întâi într-un fișier special numit jurnal. Și numai după ceva timp, serverul SQL va îmbina aceste înregistrări cu baza de date principală.

În unele privințe, acest lucru este similar cu comportamentul Garbage Collector în Java: de asemenea, marchează pur și simplu obiectele ca fiind șterse la început și efectuează curățarea și optimizarea memoriei în timpul inactiv.

4 pluginuri

În SGBD, precum și în multe programe, puteți scrie propriile plugin-uri. Astfel de plugin-uri vă permit să adăugați tipuri de date unice, funcții pentru a lucra cu ele sau să modificați comportamentul standard al SGBD. Acest lucru este util în special atunci când lucrați cu o bază de date open source și există unele erori.

5 Lucrări distribuite (clustere)

Un scenariu tipic pentru un server SQL modern este un cluster de mai multe servere. Cea mai simplă opțiune este atunci când datele sunt scrise pe un server și citite de pe un grup de servere. În acest caz, puteți configura diverse scenarii pentru sincronizarea bazei de date între serverele SQL.

6 Fragmentare

Când există o mulțime de date, acestea încep să fie împărțite în diferite baze de date. Până la faptul că un tabel poate fi stocat în părți în diferite baze de date.

Fragmentarea poate fi verticală și orizontală. Fracționarea verticală înseamnă că masa este, așa cum ar fi, tăiată de linii verticale, în timp ce fragmentarea orizontală este tăiată în linii orizontale.

De exemplu, am decis să împărțim toate datele din tabel pe ani: pentru 2019 - un tabel, pentru datele din 2020 - al doilea și așa mai departe. Aceasta va fi fragmentare orizontală.

7 împinge cel neîmpingător

La un anumit stadiu al dezvoltării bazelor de date, a început să li se adauge din ce în ce mai multă logică de afaceri. Totul a început cu proceduri, funcții, generarea de pagini web de către servere și s-a terminat cu adăugarea suportului pentru aproape toate limbajele populare la SGBD: Python, JavaScript și chiar Java și C++.

Sună cool până când începi să intri în detalii: chiar vrei să scrii logica de afaceri a aplicației web în Java, care va fi executată într-un server SQL, unde nu există JDK, biblioteci java, cadre, puțină memorie și multe alte restrictii?

Comentarii
  • Popular
  • Nou
  • Vechi
Trebuie să fii conectat pentru a lăsa un comentariu
Această pagină nu are încă niciun comentariu