SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Prof. univ. dr. Alexandru Manole
amanole@artifex.org.ro
SUPORT PENTRU ACTIVITATI DE CURS
ȘI LABORATOR
TEMA 5.
Cereri de interogare
5.1. Fereastra QBE – prezentare generală.
5.2. Reprezentarea atributelor. Atribute preluate și
atribute calculate. Formule și funcții (simple și de grup).
5.3. Sortarea datelor.
5.4. Criterii de selecție. Parametri
5.5. Interogări de acțiune.
5.6. Interogări de analiză încrucișată
Cereri de interogare
5.2. Reprezentarea atributelor - atribute calculate. Formule și
funcții (simple și de grup).
 Pentru calcule, respectiv obținerea de valori prin prelucrare, este necesar ca acestea să fie
asociate cu atribute, la fel ca datele/atributele din modelul fizic inițial.
 Ne reamintim notația pentru un atribut calculat se înscrie în linia Field:
Nume_atribut : Procedura de calcul
 Procedura de calcul poate fi o formulă de calcul sau o funcție.
 Formulele și funcțiile se pot combina între ele, astfel încât o formulă să fie parte a unei
funcții, iar o funcție parte a unei formule.
 Vom aborda mai întâi formulele de calcul. Într-o formulă se pot utiliza:
 Operații aritmetice (adunare, scădere, înmulțire, împărțire, împărțirea fără rest, modul,
ridicarea la putere);
 Valori ale atributelor (în acest caz, în formulă apare denumirea atributului);
 Valori concrete, care rămân constante pentru toate prelucrările prin formulele
respective.
 De exemplu, calculul valorii denominate corespunzătoare datelor din baza de date
utilizată în exemplele anterioare presupune înscrierea formulei din figura următoare în
prima căsuță Field liberă din grila de proiectare:
Cereri de interogare
 Efectul formulei este următorul: pentru fiecare înregistrare, se va împărți valoarea
atributului SumaC la 10000. Toate rezultatele vor fi stocate într-un nou atribut,
DenominareC, care face parte din rezultatul interogării, prezentat, în extras, mai jos:
 Se observă că valoarea denominată nu este afișată în format Currency, ceea ce impune
definirea explicită a acestei proprietăți.
Cereri de interogare
 Prin comanda Properties din meniul contextual al atributului (în cadrul grilei de
proiectare), se afișează caseta de proprietăți:
 Aceste proprietăți sunt similare celor de la definirea atributelor în cadrul tabelelor, dar, așa
cum se poate observa, nu toate proprietățile sunt disponibile aici.
 Din lista Format, dacă se alege opțiunea Currency, rezultatul interogării este afișat astfel:
Cereri de interogare
 O altă operație, dedicată șirurilor de caractere, este concatenarea: șirurile concatenate sunt
unite într-un singur șir, în ordinea în care apar în formula operatorului (operatorul de
concatenare este &).
 Exemplu: se poate explicita simbolul contului într-un nou atribut, prin adăugarea, înainte
de simbol, a cuvântului „Contul” urmat de un spațiu, pentru ușurința lecturii.
Contul: "Contul" & " " & [Simbol]
 Rezultatul aplicării operatorului (ultima coloană):
Cereri de interogare
 Vom vorbi în continuare despre funcțiile aplicabile în interogări.
 Funcțiile pot fi simple sau agregate (de grup).
 Considerând notația funcției ca:
Rezultat : Funcție (Argument)
 Pentru o funcție simplă, argumentul (datele de intrare) este reprezentat de o singură valoare.
 Pentru o funcție agregată, denumită și de grup, argumentul (datele de intrare) este reprezentat
de o mulțime de valori (se poate spune și grup de valori, de unde și denumirea de grup).
 Pentru ambele tipuri de funcții, rezultatul este reprezentat de o singură valoare.
 Vom prezenta câteva funcții simple.
 Una dintre cele mai utile funcții este funcția de test condițional IIf. Structura funcției este:
Rezultat: IIf(condiție, Valoare_A, Valoare_F)
 Rezultat: denumirea atributului care va stoca rezultatele funcției;
 Condiție: o expresie logică (poate fi adevărată sau falsă);
 Valoare_A: rezultatul funcției (o singură valoare) în cazul în care condiție este adevărată;
 Valoare_F: rezultatul funcției (o singură valoare) în cazul în care condiție este falsă.
Cereri de interogare
 Pentru exemplificare, vom testa sumele creditoare denominate:
 Fiecare valoare mai mică decât 500 va fi considerată valoare redusă;
 Fiecare valoare mai mare sau cel puțin egală cu 500 va fi considerată valoare OK.
 Funcția IIf va avea următoarea structură (fereastra Expression Builder din meniul
contextual al grilei de proiectare):
Cereri de interogare
 Rezultatul cererii de interogare este prezentat în continuare:
Cereri de interogare
 În situația în care trebuie evaluate mai mult de două cazuri posibile, este necesară aplicarea funcției
în varianta imbricată (funcție în funcție), respectiv o funcție devine parametru al altei funcții.
 Numărul de funcții imbricate este egal cu numărul de cazuri posibile minus unu.
 3 cazuri posibile: 3-1 (2) funcții imbricate.
 Dezvoltând exemplul anterior, vom evalua valoarea denominată astfel:
 Fiecare valoare mai mică decât 500 va fi considerată valoare redusă;
 Fiecare valoare mai mare sau cel puțin egală cu 500, dar mai mică decât 1000 va fi considerată
valoare medie.
 Fiecare valoare mai mare sau cel puțin egală cu 1000 va fi considerată valoare mare.
 Se aplică funcția:
Evaluare_2: IIf([DenominareC]<500;"Valoare redusa";IIf([DenominareC]<1000;"Valoare
medie";"Valoare OK"))
 Observăm că ultima funcție tratează două cazuri, de aici corelația descrisă mai sus (minus unu).
 Numărul parantezelor de închidere este egal cu numărul funcțiilor imbricate.
 Rezultatul interogării este reprezentat în continuare.
 Imbricarea funcționează și pentru funcții diferite.
Cereri de interogare
Cereri de interogare
 O altă funcție utilă este IsNull. Această funcție logică verifică valorile nule și produce
rezultatul Adevărat (reprezentat implicit prin valoarea -1) pentru o valoare nulă și Fals
(reprezentat implicit prin valoarea 0) pentru o valoare non-nulă.
 Interogarea de mai jos produce și valori nule (pot exista conturi care nu au înregistrat rulad
creditor în decursul unei perioade):
Cereri de interogare
 Interogarea afișează date despre toate conturile (preluate din tabelul CONTURI) și, pentru
atributele din tabelul secundar, numai valorile disponibile.
 Valorile indisponibile sunt afișate ca valori NULL.
Cereri de interogare
 Vom testa valorile nule ale atributului SumaC prin expresia:
Evaluare_3: IsNull([SumaC])
 Rezultatul interogării (s-a definit formatul Yes/No pentru noul atribut):
Cereri de interogare
 Vom înlocui valorile nule ale atributului SumaC prin expresia:
Evaluare_4: IIf(IsNull([SumaC]);0;[SumaC])
Rezultatul interogării:
Cereri de interogare
 Deși cheia externă poate primi valori NULL (acestea nu încalcă integritatea
referențială: NULL nu este o valoare), acest lucru nu este permis în utilizarea normală
a bazei de date), ci numai în mediu de testare, didactic, exemplificare etc.
 Un astfel de exemplu – didactic – vizează pregătirea datelor din baza de date pentru
îndeplinirea celei de-a treia funcțiuni a sa: Business Intelligence – Data Mining.
Apariția acestei erori poate fi justificată prin preluarea datelor din surse non-baze de
date.
 Expresia anterioară este un exemplu de utilizare a funcțiilor imbricate: s-au utilizat
concomitent funcțiile IIf și IsNull.
 Funcția păstrează valorile non-nule, dar înlocuiește valorile nule cu valori 0.
 Funcția Len „măsoară” lungimea unui șir de caractere și returnează numărul de caractere
din șir.
 Exemplu:
Lungime: Len([Evaluare_4])
 Rezultatul este prezentat în slide-ul următor.
Cereri de interogare
Cereri de interogare
 Funcția Left(atribut,i) „extrage” un număr de i caractere din valoarea atributului atribut,
începând de la stânga. Parametrul i reprezintă un număr natural.
 Exemplu, funcția:
Stanga: Left([SimbolC];3)
extrage primele trei caractere de la stânga din valoarea atributului SimbolC:
- pentru valorile nule, rezultatele sunt tot valori nule. Nu toate conturile au sume creditoare.
Cereri de interogare
 Funcția Right(atribut,i) „extrage” un număr de i caractere din valoarea atributului atribut,
începând de la dreapta. Parametrul i reprezintă un număr natural.
 Exemplu, funcția:
Dreapta: Right([SimbolC];2)
extrage primele două caractere de la dreapta din valoarea atributului SimbolC
- pentru valorile nule, rezultatele sunt tot valori nule. Nu toate conturile au sume creditoare.
Cereri de interogare
 Funcția Date() returnează data sistemului.
 Se pot face operațiuni cu intervale de timp, măsurate în zile, unde lungimea unui interval
este reprezentată prin numărul de zile din cadrul acestuia.
 Formula
Zile: Date()-[DataOp]
calculează numărul de zile scurse de la data fiecărei operații.
Cereri de interogare
 Formula
Data_viitoare:DataOp+30
calculează data zilei din calendar, peste 30 de zile calendaristice.
 Formula
Data_istoric: DataOp-30
calculează data în urmă cu 30 de zile calendaristice.
Cereri de interogare
Funcții agregate
 Pentru o funcție agregată, denumită și de grup, argumentul (datele de intrare) este
reprezentat de o mulțime de valori (se poate spune și grup de valori, de unde și denumirea
de grup). Rezultatul este reprezentat de o singură valoare.
 Acestea se pot aplica în două variante:
 Fără grupare;
 Cu grupare.
 Prima variantă presupune definirea funcției de grup dorite pentru un anumit atribut și se
aplică la toate valorile atributului.
 A doua variantă se aplică pentru submulțimi de valori ale atributului, determinate prin
grupare.
 Funcțiile de grup sunt descrise în lista de mai jos:
Cereri de interogare
 Sum: calculează suma unui grup de valori numerice.
 Avg: calculează media aritmetică.
 Min: extrage valoarea minimă.
 Max: valoarea maximă.
 Count: numără valorile dintr-un grup.
 StDev: deviația standard (indicator statistic) pentru valorile din grup.
 Var: varianța (indicator statistic) pentru valorile din grup.
 First: returnează valoarea din prima înregistrare.
 Last: returnează valoarea din ultima înregistrare.
 Opțiunea pentru activarea funcțiilor de grup este butonul Totals de
pe bara de instrumente, secțiunea Show/Hide.
Cereri de interogare
 În grila de proiectare se afișează linia Total.
 Opțiunile de pe linia Total sunt prezentate sub forma unei liste predefinite,
care include funcțiile agregate, alături de opțiunile cu rol special,
prezentate în continuare.
 Group By: permite aplicarea de funcții agregate cu grupare.
 Expression: permite definirea unei expresii.
 Where: permite definirea unui criteriu în interogare.
 Aplicarea funcției Sum în interogarea următoare, la atributul SumaC:
Cereri de interogare
Permite determinarea rulajului creditor pentru toate conturile.
 Denumirea atributului rezultat, SumOfSumac, este definită implicit de baza
de date.
 Putem defini propria noastră denumire, înscriind-o înainte de atributul
argument al funcției (SumaC), și plasând semnul : între cele două
denumiri. Ca orice relație de acest tip, va fi definită în linia Field:
Cereri de interogare
 Rezultatul:
 Celelalte funcții agregate se aplică într-o manieră similară.
 Gruparea presupune existența următoarei corelații între valorile a două atribute A și B:
Unei valori a atributului A îi pot corespunde mai multe valori ale atributului B
 În acest caz, spunem că valorile B se pot grupa după valorile A și că A poate fi
considerat atribut de grupare pentru B.
 Gruparea poate fi unidirecțională sau bidirecțională, reciprocă.
 Grupare unidirecțională:
 Unei clase îi pot corespunde mai multe simboluri de cont, dar
 Un simbol de cont corespunde unei singure clase.
 Grupare bidirecțională:
 Unui simbol de cont îi pot corespunde mai multe operații, dar totodată
 Unei operații îi pot corespunde mai multe simboluri de cont.
Cereri de interogare
 Utilizarea grupării presupune, alături de definirea funcției de grup, definirea atributului
de grupare, cu proprietatea Group By.
 Vom aplica funcția care ne calculează rulajul creditor pe fiecare cont. Structura
interogării (stânga) și rezultatul (dreapta):
Cereri de interogare
 Gruparea are astfel, indiferent de funcția aplicată, semnificație de subtotal după
atributul de grupare.
 Se poate realiza grupare după mai multe atribute de grupare. Ordinea în care acestea
sunt plasate în grila de proiectare, de la stânga la dreapta, determină ordinea în care vor
fi efectuate grupările.
 Putem calcula, pe fiecare clasă, rulajele totale pe fiecare operație.
 Structura interogării:
Cereri de interogare
 Rezultatul interogării:
Cereri de interogare
 Practic, în ultima interogare, valorile sunt detaliate pe fiecare clasă și operație.
 Operațiunea de detaliere (care oferă mai multe rezultate) se mai numește și drilldown.
 Restrângerea (care oferă mai puține rezultate – gruparea numai după clasă) se mai
numește și rollup.
 Atributele care intervin în grupare pot fi preluate din surse diferite.

Weitere ähnliche Inhalte

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

CIG. Baze de date curs tema 5 partea 2.pdf

  • 1. Prof. univ. dr. Alexandru Manole amanole@artifex.org.ro SUPORT PENTRU ACTIVITATI DE CURS ȘI LABORATOR
  • 2. TEMA 5. Cereri de interogare 5.1. Fereastra QBE – prezentare generală. 5.2. Reprezentarea atributelor. Atribute preluate și atribute calculate. Formule și funcții (simple și de grup). 5.3. Sortarea datelor. 5.4. Criterii de selecție. Parametri 5.5. Interogări de acțiune. 5.6. Interogări de analiză încrucișată
  • 3. Cereri de interogare 5.2. Reprezentarea atributelor - atribute calculate. Formule și funcții (simple și de grup).  Pentru calcule, respectiv obținerea de valori prin prelucrare, este necesar ca acestea să fie asociate cu atribute, la fel ca datele/atributele din modelul fizic inițial.  Ne reamintim notația pentru un atribut calculat se înscrie în linia Field: Nume_atribut : Procedura de calcul  Procedura de calcul poate fi o formulă de calcul sau o funcție.  Formulele și funcțiile se pot combina între ele, astfel încât o formulă să fie parte a unei funcții, iar o funcție parte a unei formule.  Vom aborda mai întâi formulele de calcul. Într-o formulă se pot utiliza:  Operații aritmetice (adunare, scădere, înmulțire, împărțire, împărțirea fără rest, modul, ridicarea la putere);  Valori ale atributelor (în acest caz, în formulă apare denumirea atributului);  Valori concrete, care rămân constante pentru toate prelucrările prin formulele respective.  De exemplu, calculul valorii denominate corespunzătoare datelor din baza de date utilizată în exemplele anterioare presupune înscrierea formulei din figura următoare în prima căsuță Field liberă din grila de proiectare:
  • 4. Cereri de interogare  Efectul formulei este următorul: pentru fiecare înregistrare, se va împărți valoarea atributului SumaC la 10000. Toate rezultatele vor fi stocate într-un nou atribut, DenominareC, care face parte din rezultatul interogării, prezentat, în extras, mai jos:  Se observă că valoarea denominată nu este afișată în format Currency, ceea ce impune definirea explicită a acestei proprietăți.
  • 5. Cereri de interogare  Prin comanda Properties din meniul contextual al atributului (în cadrul grilei de proiectare), se afișează caseta de proprietăți:  Aceste proprietăți sunt similare celor de la definirea atributelor în cadrul tabelelor, dar, așa cum se poate observa, nu toate proprietățile sunt disponibile aici.  Din lista Format, dacă se alege opțiunea Currency, rezultatul interogării este afișat astfel:
  • 6. Cereri de interogare  O altă operație, dedicată șirurilor de caractere, este concatenarea: șirurile concatenate sunt unite într-un singur șir, în ordinea în care apar în formula operatorului (operatorul de concatenare este &).  Exemplu: se poate explicita simbolul contului într-un nou atribut, prin adăugarea, înainte de simbol, a cuvântului „Contul” urmat de un spațiu, pentru ușurința lecturii. Contul: "Contul" & " " & [Simbol]  Rezultatul aplicării operatorului (ultima coloană):
  • 7. Cereri de interogare  Vom vorbi în continuare despre funcțiile aplicabile în interogări.  Funcțiile pot fi simple sau agregate (de grup).  Considerând notația funcției ca: Rezultat : Funcție (Argument)  Pentru o funcție simplă, argumentul (datele de intrare) este reprezentat de o singură valoare.  Pentru o funcție agregată, denumită și de grup, argumentul (datele de intrare) este reprezentat de o mulțime de valori (se poate spune și grup de valori, de unde și denumirea de grup).  Pentru ambele tipuri de funcții, rezultatul este reprezentat de o singură valoare.  Vom prezenta câteva funcții simple.  Una dintre cele mai utile funcții este funcția de test condițional IIf. Structura funcției este: Rezultat: IIf(condiție, Valoare_A, Valoare_F)  Rezultat: denumirea atributului care va stoca rezultatele funcției;  Condiție: o expresie logică (poate fi adevărată sau falsă);  Valoare_A: rezultatul funcției (o singură valoare) în cazul în care condiție este adevărată;  Valoare_F: rezultatul funcției (o singură valoare) în cazul în care condiție este falsă.
  • 8. Cereri de interogare  Pentru exemplificare, vom testa sumele creditoare denominate:  Fiecare valoare mai mică decât 500 va fi considerată valoare redusă;  Fiecare valoare mai mare sau cel puțin egală cu 500 va fi considerată valoare OK.  Funcția IIf va avea următoarea structură (fereastra Expression Builder din meniul contextual al grilei de proiectare):
  • 9. Cereri de interogare  Rezultatul cererii de interogare este prezentat în continuare:
  • 10. Cereri de interogare  În situația în care trebuie evaluate mai mult de două cazuri posibile, este necesară aplicarea funcției în varianta imbricată (funcție în funcție), respectiv o funcție devine parametru al altei funcții.  Numărul de funcții imbricate este egal cu numărul de cazuri posibile minus unu.  3 cazuri posibile: 3-1 (2) funcții imbricate.  Dezvoltând exemplul anterior, vom evalua valoarea denominată astfel:  Fiecare valoare mai mică decât 500 va fi considerată valoare redusă;  Fiecare valoare mai mare sau cel puțin egală cu 500, dar mai mică decât 1000 va fi considerată valoare medie.  Fiecare valoare mai mare sau cel puțin egală cu 1000 va fi considerată valoare mare.  Se aplică funcția: Evaluare_2: IIf([DenominareC]<500;"Valoare redusa";IIf([DenominareC]<1000;"Valoare medie";"Valoare OK"))  Observăm că ultima funcție tratează două cazuri, de aici corelația descrisă mai sus (minus unu).  Numărul parantezelor de închidere este egal cu numărul funcțiilor imbricate.  Rezultatul interogării este reprezentat în continuare.  Imbricarea funcționează și pentru funcții diferite.
  • 12. Cereri de interogare  O altă funcție utilă este IsNull. Această funcție logică verifică valorile nule și produce rezultatul Adevărat (reprezentat implicit prin valoarea -1) pentru o valoare nulă și Fals (reprezentat implicit prin valoarea 0) pentru o valoare non-nulă.  Interogarea de mai jos produce și valori nule (pot exista conturi care nu au înregistrat rulad creditor în decursul unei perioade):
  • 13. Cereri de interogare  Interogarea afișează date despre toate conturile (preluate din tabelul CONTURI) și, pentru atributele din tabelul secundar, numai valorile disponibile.  Valorile indisponibile sunt afișate ca valori NULL.
  • 14. Cereri de interogare  Vom testa valorile nule ale atributului SumaC prin expresia: Evaluare_3: IsNull([SumaC])  Rezultatul interogării (s-a definit formatul Yes/No pentru noul atribut):
  • 15. Cereri de interogare  Vom înlocui valorile nule ale atributului SumaC prin expresia: Evaluare_4: IIf(IsNull([SumaC]);0;[SumaC]) Rezultatul interogării:
  • 16. Cereri de interogare  Deși cheia externă poate primi valori NULL (acestea nu încalcă integritatea referențială: NULL nu este o valoare), acest lucru nu este permis în utilizarea normală a bazei de date), ci numai în mediu de testare, didactic, exemplificare etc.  Un astfel de exemplu – didactic – vizează pregătirea datelor din baza de date pentru îndeplinirea celei de-a treia funcțiuni a sa: Business Intelligence – Data Mining. Apariția acestei erori poate fi justificată prin preluarea datelor din surse non-baze de date.  Expresia anterioară este un exemplu de utilizare a funcțiilor imbricate: s-au utilizat concomitent funcțiile IIf și IsNull.  Funcția păstrează valorile non-nule, dar înlocuiește valorile nule cu valori 0.  Funcția Len „măsoară” lungimea unui șir de caractere și returnează numărul de caractere din șir.  Exemplu: Lungime: Len([Evaluare_4])  Rezultatul este prezentat în slide-ul următor.
  • 18. Cereri de interogare  Funcția Left(atribut,i) „extrage” un număr de i caractere din valoarea atributului atribut, începând de la stânga. Parametrul i reprezintă un număr natural.  Exemplu, funcția: Stanga: Left([SimbolC];3) extrage primele trei caractere de la stânga din valoarea atributului SimbolC: - pentru valorile nule, rezultatele sunt tot valori nule. Nu toate conturile au sume creditoare.
  • 19. Cereri de interogare  Funcția Right(atribut,i) „extrage” un număr de i caractere din valoarea atributului atribut, începând de la dreapta. Parametrul i reprezintă un număr natural.  Exemplu, funcția: Dreapta: Right([SimbolC];2) extrage primele două caractere de la dreapta din valoarea atributului SimbolC - pentru valorile nule, rezultatele sunt tot valori nule. Nu toate conturile au sume creditoare.
  • 20. Cereri de interogare  Funcția Date() returnează data sistemului.  Se pot face operațiuni cu intervale de timp, măsurate în zile, unde lungimea unui interval este reprezentată prin numărul de zile din cadrul acestuia.  Formula Zile: Date()-[DataOp] calculează numărul de zile scurse de la data fiecărei operații.
  • 21. Cereri de interogare  Formula Data_viitoare:DataOp+30 calculează data zilei din calendar, peste 30 de zile calendaristice.  Formula Data_istoric: DataOp-30 calculează data în urmă cu 30 de zile calendaristice.
  • 22. Cereri de interogare Funcții agregate  Pentru o funcție agregată, denumită și de grup, argumentul (datele de intrare) este reprezentat de o mulțime de valori (se poate spune și grup de valori, de unde și denumirea de grup). Rezultatul este reprezentat de o singură valoare.  Acestea se pot aplica în două variante:  Fără grupare;  Cu grupare.  Prima variantă presupune definirea funcției de grup dorite pentru un anumit atribut și se aplică la toate valorile atributului.  A doua variantă se aplică pentru submulțimi de valori ale atributului, determinate prin grupare.  Funcțiile de grup sunt descrise în lista de mai jos:
  • 23. Cereri de interogare  Sum: calculează suma unui grup de valori numerice.  Avg: calculează media aritmetică.  Min: extrage valoarea minimă.  Max: valoarea maximă.  Count: numără valorile dintr-un grup.  StDev: deviația standard (indicator statistic) pentru valorile din grup.  Var: varianța (indicator statistic) pentru valorile din grup.  First: returnează valoarea din prima înregistrare.  Last: returnează valoarea din ultima înregistrare.  Opțiunea pentru activarea funcțiilor de grup este butonul Totals de pe bara de instrumente, secțiunea Show/Hide.
  • 24. Cereri de interogare  În grila de proiectare se afișează linia Total.  Opțiunile de pe linia Total sunt prezentate sub forma unei liste predefinite, care include funcțiile agregate, alături de opțiunile cu rol special, prezentate în continuare.  Group By: permite aplicarea de funcții agregate cu grupare.  Expression: permite definirea unei expresii.  Where: permite definirea unui criteriu în interogare.  Aplicarea funcției Sum în interogarea următoare, la atributul SumaC:
  • 25. Cereri de interogare Permite determinarea rulajului creditor pentru toate conturile.  Denumirea atributului rezultat, SumOfSumac, este definită implicit de baza de date.  Putem defini propria noastră denumire, înscriind-o înainte de atributul argument al funcției (SumaC), și plasând semnul : între cele două denumiri. Ca orice relație de acest tip, va fi definită în linia Field:
  • 26. Cereri de interogare  Rezultatul:  Celelalte funcții agregate se aplică într-o manieră similară.  Gruparea presupune existența următoarei corelații între valorile a două atribute A și B: Unei valori a atributului A îi pot corespunde mai multe valori ale atributului B  În acest caz, spunem că valorile B se pot grupa după valorile A și că A poate fi considerat atribut de grupare pentru B.  Gruparea poate fi unidirecțională sau bidirecțională, reciprocă.  Grupare unidirecțională:  Unei clase îi pot corespunde mai multe simboluri de cont, dar  Un simbol de cont corespunde unei singure clase.  Grupare bidirecțională:  Unui simbol de cont îi pot corespunde mai multe operații, dar totodată  Unei operații îi pot corespunde mai multe simboluri de cont.
  • 27. Cereri de interogare  Utilizarea grupării presupune, alături de definirea funcției de grup, definirea atributului de grupare, cu proprietatea Group By.  Vom aplica funcția care ne calculează rulajul creditor pe fiecare cont. Structura interogării (stânga) și rezultatul (dreapta):
  • 28. Cereri de interogare  Gruparea are astfel, indiferent de funcția aplicată, semnificație de subtotal după atributul de grupare.  Se poate realiza grupare după mai multe atribute de grupare. Ordinea în care acestea sunt plasate în grila de proiectare, de la stânga la dreapta, determină ordinea în care vor fi efectuate grupările.  Putem calcula, pe fiecare clasă, rulajele totale pe fiecare operație.  Structura interogării:
  • 29. Cereri de interogare  Rezultatul interogării:
  • 30. Cereri de interogare  Practic, în ultima interogare, valorile sunt detaliate pe fiecare clasă și operație.  Operațiunea de detaliere (care oferă mai multe rezultate) se mai numește și drilldown.  Restrângerea (care oferă mai puține rezultate – gruparea numai după clasă) se mai numește și rollup.  Atributele care intervin în grupare pot fi preluate din surse diferite.