Sunteți pe pagina 1din 31

Agoston Noemi MI, anIII,gr.

II TEMA Consideram urmtatoarea baza de date pentru gestionarea unui magazin


de bijuterii handmade. Conceperea bazei de date

1. Exemplificarea tipurilor de relatii dintre tabelele bazei de date

Intre toate tabelele avem relatii de tipul la .Oricarei inregistrari dintr-un tabel ii corespunde un numar arbitrar(n) de inregistrari (linii) in celalalt tabel(exemplu:un produs poate fi alcatuit din mai multe materiale sau un produs poate sa faca parte din mai multe stiluri, acelasi lucru putem sa spunem si despre tabelul factura care poate sa contina mai multe comenzi.).

2. Trecerea tabelelor prin formele normale

Prima forma normala Nume_produs Inel margele Inel zorzonele Bratara elegant pret 9,33,44 15,20,22 1,23,25

Acest tabel respecta reguriile primei forme normale deoarece exista o


singura valoare la fiecare interesectie dintre un rand si o coloana, si niciodata o lista de valori.Observam ca, coloana pret contine o singura valoare,era gresit daca introduceam mai multe preturi.In plus fiecare inregistrare este identificata in mod unic prin intermediul unei chei primare.(exemplu este primul tabel.)

A doua forma normala Sa consideram urmatorul tabel:

Id_stil

Id_produs

Nume_stil

Observam ca, cheia primara a acestui tabel este id_stil iar nume_stil depinde de id_stil,iar alta cheie primara numai avem; acest lucru denota faptul ca acest tabel este in a FN.Daca tabelul mai continea coloana denumita id_produs ea trebuia eliminate deoarece apartinea altui tabel(Produse).

A treia forma normala

Id_produs data Id_client Nume_client adresa oras canti Id_comanda Id_factura

Aceste tabele sunt in a 3-a FN deoarece ele sunt reorganizate,


evitandu-se repetarea elementelor.Daca inainte am avut un tabel mare cu toate aceste informatii acum avem mai multe tabele mici care se leaga intre ele si care sunt mult mai eficiente. Forma normal Boyce-Codd(BCNF-Boyce-Codd Normal Form) Tabelul de mai jos este in 3NF pentru ca toate atributele depend de o cheie si numai de o cheie;cu toate acestea, exista o rebundanta, deoarece perechile (id_produs,id_material) se repeta.
Id_produs Nume_produs pret cant Id_categ culoare Id_material Nume_material val

Se pot elimina astfel de rebundante dupa cum urmeaza: din tabelul initial se elimina coloana id_material; se creeaza un nou table, cu atributele id_produs si id_material, cu doar 2 coloane, constituind impreuna cheia primara a noului table.Tabele rezultate sunt in FNBC (BCNF).

3. Exemplificarea restrictiilor

Dupa definirea structurii inregistrarilor in tabela MATERIALE.DBF se selecteaza campul um si se completeaza cele trei campuri Rule,Message,Default value,astfel: - La optiunea Rule se introduce conditia logica de filtrare pentru acceptarea valorii inscrise in camp.In acest caz se considera ca pentru campul um valoarea acceptata este buc.Conditia este: Um=buc - La optiunea Message se introduce intre apostrof mesajul: Eroare unitate de masura! - La optiunea Default Value se introduce intre apostrof valoarea buc.Daca nu se declara nimic, practic, nu se pot introduce datele la fel ca mai sus.

4. Exemplificarea integritatii referentiale

Stergerea in cascada a unui tuplu dintr-o relatie referita va fi urmata de stergerea tuturor tulpinilor din relatiile de referinta care fac referire la tuplul sters.De exemplu ,daca se sterge un produs din tabelul produse, atunci sa se starga si materialele care au fost folosite la realizarea produsului. La optiunea Ignore,tabelele nu se modifica,nu se efectueaza nici o stergere. Stergerea cu restrictii presupune faptul ca nu se accepta stergerea unui tuplu din relatia referita daca acesta este referit de cel putin un tuplu din relatia de referinta.In cazul nostru nu se poate sterge un client din relatia Factura atata timp cat el are o comanda in relatia Comanda.

5. Exemplificarea modalitatii de creeare a bazei de date si a tabelelor prin instructiuni


CREATE DATABASE magazin bijoux CREATE TABLE produse (id_produs number( ) not null,nume_produs char( ) not null,pret number( ) not null,cantitate number( ) not null,id_categorii number( ) not null,culoare char( ),poza) CREATE TABLE material (id_material number( ) not null, nume_material char( ) not null, cant number( ) not null, valoare number( ) not null, um char( ))

Functii si instructiuni SQL


6. Exemplificarea utilizarii a minim Matematice functii:

Sa se afiseze care este cel mai scump material.

Sa se afiseze care este cel mai ieftin produs.

Sa se afiseze suma tuturor produselor.

Sa se afiseze suma valorii_tva.

Sa se afiseze suma tuturor materialelor.

Pentru siruri de caractere Sa se scrie numele clientiilor cu litere mici.

Sa se scrie numele produselor cu litere mari.

Sa se scrie prima litera a numelui clientilor cu majuscule.

Sa se afiseze lungimea sirului de caractere nume_material.

Sa se returneze caracterul corespunzator codului ascii a sirului nume_client din tabela client.

De tip data calendaristica Sa se returneze a cata zi din sapatamana s-au facut comenzi.

Sa se returneze luniile in care s-au facut comenzi.

Sa se returneze data sub forma de sir de caractere, in format aaallzz.

Sa se izoleze anul din expresia de tip data din tabelul facture.

7. Exemplificarea utilizarii (de complexitati diferite) De minim ori a instructii alter table Sa se insereze o noua coloana cu numele poza in tabela produs.

Sa se modifice in tabela produs campul pret din tipul double in cel de tip char.

Sa se modifice in tabela material campul valoare din tipul double in cel de tip number.

Sa se modifice in tabela material campul valoare din tipul number in cel de tip number not null.

Sa se insereze coloana telefon in tabela client.

De minimum

ori a instructiunii INSERT

Sa se insereze in tabelul produs campurile: id_produs,nume_produs,pret,cantitate,id_categorii,culoare,poza

Sa se insereze in tabela client noul client Pop Ioana.

Sa se insereze in tabela categorii o noua categorie: coliere.

Sa se insereze in tabela material noul material baza pentru inel cu 3 bucle.

Sa se insereze in tabela categorii si o categorie pentru barbate.

De minim 5 ori a instructiunii UPDATE Sa se modifice pretul produsului cu codul 4 la 8 lei.

Sa se actualizeze inregistrarile din tabela produs prin indexarea cu 10% a preturilor tuturor reperelor.

Sa se calculeze valoarea produselor.

La produsele mai putin de 3 bucati sa se scumpeasca preturile cu 5%.

Sa se adauge tva-ul de 24% la valoarea produselor.

De minim 5 ori a instructiunii DELETE Sa se stearga produsele care au un tva>10 lei.

Sa se stearga materialele care au un tva>1 leu.

Sa se stearga clientii din Medias.

Sa se stearga facturiile cu id_clientul=2.

Sa se stearga clientul cu codul 7.

De minim 20 ori a instructiunii SELECT Sa se selecteze toate informatiile din tabela material.

Sa se selecteze lista preturilor din tabela produs.

Sa se afiseze preturile produselor fara repetitii.

Sa se afiseze preturile produselor peste 10 lei.

Sa se afiseze doar inregistrarile din tabela comanda cu cantitatea mai mare decat orice cantitate vanduta din reperul cu codul 3.

Sa se afiseze toate inregistrarile care au codul de produs egal cu oricare din reperele de pe facture cu numarul 3.

Sa se afiseze toate codurile tuturor produselor de pe facture cu numarul cel mai mic.

Sa se afiseze articolele din tabela produs (coloana id_produs,nume_produs,pret) avand o valoare mai mare de 12 lei.

Sa se afiseze articolele din tabela material (coloana id_material,nume_material,pret) avand o valoare mai mare de 6 lei.

Sa se afiseze valoarea medie a produsului cu codul 10.

Sa se afiseze numarul total de facturi emise.

Sa se afiseze articolele din tabela material avand codul intre 3 si 7.

Sa se afiseze articolele din tabela produs care au codurile 3, 7, 8.

Sa se afiseze codul si numele clientilor din tabela client care nu au comlectat campul adresa.

Sa se afiseze codul si numele clientilor a caror cod client nu se gaseste in intervalul 2-4.

Sa se afiseze codul si numele clientilor care nu provin din localitatea Sibiu.

Sa se afiseze numele clientilor care au complectat campul adresa.

Sa se afiseze numarul de material distinct ce apare in tabela material.

Sa se afiseze clientii a caror nume se termina cu Maria.

Sa se afiseze o lista cu toate produsele cumparate de fiecare client .