/ / Clasificarea tipurilor de funcții analitice în Oracle. Funcții analitice în Oracle și caracteristici tehnice cheie

Clasificarea tipurilor de funcții analitice în Oracle. Funcții analitice în Oracle și caracteristici tehnice cheie

Oracle Database Management System esteunul dintre cei mai populari reprezentanți ai unui astfel de software. Atrage mulți utilizatori datorită funcționalității sale largi și capabilităților semnificative. Și acest lucru nu este surprinzător, pentru că de cât timp a fost deja dezvoltat! Deci, de ce este Oracle interesant? Funcțiile analitice ale acestui SGBD sunt o parte importantă a capabilităților oferite. Și le vom analiza în cadrul acestui articol.

Informații generale

funcții analitice ale oracolului
Inițial, trebuie remarcat faptul că în Oraclefuncțiile analitice au capacități specifice, dar folosesc o sintaxă comună. Pentru a le înțelege, trebuie să înțelegeți cum sunt datele:

  1. Partiție.
  2. Organiza.
  3. Setați ferestre.

Cartea a fost luată ca suport teoreticTom Kite. Materialul din acesta va fi prezentat pe scurt și vor fi luate în considerare doar cele mai importante puncte. Dacă aveți nevoie de detalii, atunci vă puteți sfătui să vă referiți la sursă. Dar credeți-mă, toate informațiile de care aveți nevoie vor fi furnizate în articol.

Despre funcții

funcții analitice ale oracolului
Cum arata?În Oracle, funcțiile analitice sunt construite după următorul principiu: Nume (argument,….) OVER (fragmentare, ordonare, fereastră). Cum să înțelegi că asta este exact ceea ce ai nevoie? Datorită cuvântului OVER. Vă permite să identificați funcția introdusă ca fiind analitică. Tot ceea ce vine după OVER este o descriere a secțiunii de date, după care va fi calculată. Și acum câteva cuvinte generale despre clasificare. În mod convențional, se disting patru tipuri (în funcție de capacitățile oferite):

  1. Funcții de clasare. Acestea vă permit să construiți interogări „primul N”.
  2. Funcțiile ferestrei. Necesar pentru a calcula diferite agregate (operații de grup).
  3. Funcții de rezumat. Similar cu p.2, dar poate lucra cu toate liniile unui grup sau secțiune. Diferența cheie este lipsa ORDER BY. Acest construct nu se aplică instrucțiunii OVER. Dacă nu, atunci această funcție este utilizată în raport cu fiecare linie a secțiunii sau grupului. Dacă este prezent, se aplică ferestrei, ceea ce implică o tranziție la un alt tip (vezi punctul 2).
  4. Funcții statistice. Exemplele includ STDEVJPOP, VAR_SAMP și altele. Vă permite să calculați valori statistice pentru orice secțiune neordonată.

În general, putem spune că funcţiile analiticeSQL Oracle a fost deja acoperit. Dar numai în termeni generali. Nu există nicio dorință de a renunța la caz la jumătate, așa că haideți să intrăm în detalii. Și funcțiile analitice ale Oracle vor ajuta în acest sens, exemple ale cărora vor fi acum luate în considerare.

Proiectare secționare

funcții analitice sql oracle
Pentru a face acest lucru, utilizați o interogare de forma PARTITION BYexpresie[, …]. O astfel de construcție realizează o împărțire logică a setului de rezultate în anumite grupuri, conform criteriilor care au fost specificate de expresiile de partiționare. În același timp, funcțiile analitice ale Oracle sunt aplicate independent în raport cu fiecare subiect de interacțiune. Adică, după finalizarea procesării, acestea sunt resetate pentru un nou grup. Ce se întâmplă dacă nu este specificată nicio construcție de partiționare? În acest caz, setul rezultat va fi considerat un grup.

Construcția de ordonare

În acest caz, utilizați o interogare de forma ORDER BYexpresie. În plus, pot fi aplicate DESC, ASC și NULLS FIRST / LAST. Acest construct este folosit pentru a stabili criterii pentru sortarea datelor într-o secțiune sau grup. Utilizarea ORDER BY poate avea un impact semnificativ asupra rezultatului pe care îl prezintă Oracle. Funcțiile analitice FIRST și LAST, de exemplu, se concentrează pe primul și ultimul element. Adică au sens opus! Ce ne spun FIRST și LAST? Ele indică unde ar trebui să fie valoarea NULL în ordine, la începutul unei secțiuni sau la sfârșit. Dacă nu prevedeți prezența ORDER BY, atunci se va calcula valoarea medie pentru întregul grup. Și va fi afișat pentru fiecare linie. De ce? Cert este că în acest caz funcția este considerată ca una finală. De remarcat faptul că comanda se realizează exclusiv în cadrul grupurilor sau secțiunilor.

Construcția ferestrei

exemple de funcții analitice oracol
Construcția sa este foarte complexă.La urma urmei, cu ajutorul ei, o fereastră (interval, set) de date legată rigid sau în mișcare este specificată în cadrul unei secțiuni (grup) cu care va interacționa funcția analitică. Puteți seta limitele inferioare și superioare pentru agregare. Cu alte cuvinte, în astfel de cazuri, decidem să aplicăm o funcție analitică fiecărei linii a secțiunii (grupului) de la numărul X la Y. Când folosim ferestre, ORDER BY joacă un rol important. Pentru intervalele hard-coded, standardul este selecția de la primul la rândul curent al grupului.

De ce aveți nevoie de funcții analitice

Scopul tehnic este de a menține formularea concisă și de a accelera execuția interogărilor bazei de date. Acestea au următoarele avantaje față de operatorii SQL obișnuiți:

  1. Reducerea sarcinii în rețea. Ceea ce anterior necesita o serie de interogări poate fi acum preluat dintr-o singură bază de date.
  2. Formulare concisă și simplă. Acest lucru are ca rezultat îmbunătățirea capacităților de depanare și de perspectivă față de instrumentele tradiționale.
  3. Eficiența procesării. Funcțiile analitice au algoritmi de calcul care sunt optimizați pentru rezultate mai rapide.
  4. Transferul muncii pe server. Toate calculele sunt efectuate pe server, ale cărui resurse sunt de obicei mai potrivite pentru această sarcină.

De asemenea, introducerea unor astfel de funcții a făcut posibilă atingerea unui astfel de obiectiv strategic precum furnizarea unui instrument de bază pentru construirea așa-numitelor depozite de date de natură analitică.

concluzie

funcțiile analitice ale oracolului mai întâi
Ce poți spune la sfârșitul articolului?Funcțiile analitice sunt o soluție foarte interesantă. Pentru a înțelege mai bine specificul lor, puteți exersa utilizarea lor pe baze de date complexe și mari. Ca exemplu pentru comparație, puteți alege funcții tradiționale precum SUM, MAX și altele asemenea. Dar rețineți că acestea acționează ca un rezultat intermediar de calcul. Prin urmare, ele pot fi folosite doar cu SELECT sau ORDER BY. Trebuie să recunoaștem că acest subiect este foarte interesant. Există multe variații aici și, teoretic, este problematic să le descriem pe toate. Acesta este ceva de încercat și de lucrat cu interogări.