BAZE DE DATE SUBIECTE REZOLVATE
Subiectul nr.1
La un club de tineret, activitatile se desfasoara pe mai multe sectii: spectacole, cercuri tehnico-stiintifice, cercuri sportive, observatorul astronomic, muzica si activitati metodice.
- Sectia pentru spectacole este locul de desfasurare a diverselor activitati educative si culturale;
- Cercurile sportive cuprind: cercul de gimnastica, cercul de dans sportiv, cercul de dans modern, judo.
- Sectia tehnico-stiintifica cuprinde: cercul de informatica, cercul de modelism, cercul de limbi straine (engleza, spaniola, franceza, italiana).
- Sectorul muzical cuprinde: orchestra, ansamblul coral, famfara.
Activitatile metodice desfasurate în cadrul clubului sunt destinate cadrelor didactice iar observatorul astronomic poate fi vizitat de elevi.
Cerinte:
a) Realizati modelul ierarhic pentru scenariul de mai sus.
b) Caracterizati modelul ierarhic si enumerati câteva dezavantaje ale acestuia.
Rezolvare:
Modelul ierarhic pentru situatia prezentata are ca diagrama asociata un arbore în care toate legaturile sunt de tipul 1:N sau 1:1. Nodurile reprezinta entitati, iar arcele reprezinta asocieri între entitati (relatii). Întro structura ierarhica ramificata, entitatii aflate la un nivel ierarhic superior (parinte) îi corespund mai multe entitati aflate la un nivel ierarhic inferior (copil), dar fiecare entitate aflata la un nivel ierarhic inferior corespunde unei singure entitati aflata la un nivel ierarhic superior.
Dezavantaje ale modelului ierarhic:
- legaturile de tip M:N nu se pot reprezenta în aceasta schema;
- apar probleme legate de redundanta datelor;
- apar probleme legate de actualizarea datelor (nu poate fi introdus un anumit tip de înregistrare daca nu exista nicio realizare a tipului de înregistrare parinte).
Subiectul nr.2
Într-un oras sunt mai multe cluburi sportive. Fiecare club sportiv are instructori care pregatesc tinerii atât pentru sport de performanta cât si pentru sport de întretinere. Tinerii se înscriu la diverse activitati sportive: fie pentru antrenament, fie pentru competitii sportive (concursuri). Activitatile sportive se desfasoara în sali special amenajate.
Cerinte:
a) Realizati modelul retea pentru scenariul de mai sus.
b) Caracterizati modelul retea si enumerati câteva dezavantaje ale acestuia.
Rezolvare:
Modelul retea pentru situatia prezentata are ca diagrama asociata un graf. Nodurile reprezinta entitati, iar arcele reprezinta asocieri între entitati (relatii). Întrun astfel de model, o entitate poate sa aiba conexiuni la mai multi fii si la
mai multi
parinti:
Dezavantaje:
- are o complexitate foarte ridicata;
- nu se foloseste pentru activitati curente si pentru BD de uz general; modelul este folosit în diferite activitati cu caracter stiintific în care structurarea este mai importanta decât interogarea.
Subiectul nr.3
O scoala doreste sa tina evidenta desfasurarii olimpiadelor într-un an scolar.
Se doreste obtinerea urmatoarelor informatii:
Cerinte:
a) Reprezentati grafic modelul conceptual al scenariului de mai sus (diagrama entitati-relatii).
b) Descrieti relatiile dintre entitati.
Rezolvare:
Relatiile dintre entitatile din modelul conceptual asociat scenariului descris sunt de tip (elevi-punctaj; premiu-punctaj; olimpiada-disciplina), 1: n (scoala-elev; olimpiada-faza) si n : m (elev-olimpiada; elev-faza; faza-premiu).
Subiectul nr.4
O firma are mai multe sedii. În fiecare sediu se afla mai multe departamente. Un departament apartine unui singur sediu. Într-un departament lucreaza mai multi angajati. Un angajat poate lucra într-un singur departamnet. Fiecare angajat are o singura fisa a postului unde sunt mentionate atributiile din timpul serviciului. Firma gestioneaza mai multe tipuri de produse si exista mai multe tipuri de componente; un produs este format dintr-una sau mai multe componente. Un tip de componenta poate sa apara în structura mai multor produse.
Cerinte:
a) Reprezentati grafic modelul conceptual al scenariului de mai sus (diagrama entitati-relatii).
b) Descrieti relatiile dintre entitati (cardinalitate, optionalitate, alte aspecte).
Rezolvare:
Relatiile dintre entitatile din modelul conceptual asociat scenariului descris sunt de tip (angajat-fisa postului 1: n (firma-sediu; sediu-departament; departament-angajat si firma-produs) si n : m (produs-componenta).
Subiectul nr.5
Reteaua de Cai Ferate din România are mai multe regionale. Fiecare regionala dispune de mai multe depouri, gari, agentii de vânzare bilete. Un depou poate fi pentru trenuri de marfa sau pentru trenuri de calatori. Un tren poate apartine unui singur depou si poate avea una sau mai multe locomotive. O locomotiva poate apartine unui singur tren la un moment dat. Un tren poate fi condus de unul sau mai multi mecanici dar un mecanic conduce doar un singur tren. Fiecare mecanic are un program lunar unic. O legitimatie de calatorie poate fi: abonament, bilet dus-întors sau bilet simplu si poate fi cumparata de la mai multe agentii. O agentie poate vinde mai multe legitimatii. Fiecare gara are un program de sosiri si plecari pentru fiecare tren în parte.
Cerinte:
a) Reprezentati grafic modelul conceptual al scenariului de mai sus (diagrama entitati-relatii).
b) Descrieti relatiile dintre entitati (cardinalitate, optionalitate, alte aspecte).
Rezolvare:
Relatiile dintre entitatile din modelul conceptual asociat scenariului descris sunt de tip (gara - program_plecare; gara - program_sosire; mecanic - program_lunar; legitimatie_calatorie - abonament; legitimatie_calatorie - bilet_dus_întors; legitimatie calatorie - bilet_simplu, tren - tren_calatori, tren - tren_marfa ), 1: n (regionala - depou; regionala - gara; regionala - agentie;depou - tren; tren - locomotiva; tren - mecanic; program_plecare - tren; program_sosire - tren), n:m (agentie-legitimatie_calatorie).
Se considera urmatoarea lista de tabele si structura acestora:
LIBRĂRIE =
EDITURĂ =
CARTE =
COMANDĂ =
Cerinte:
a) Realizati un scenariu corespunzator acestei scheme conceptuale;
b) Reprezentati diagrama entitate - relatie si specificati tipul relatiilor dintre entitati (dupa cardinalitate);
c) Specificati cheile primare si cheile externe ce rezulta dupa maparea modelului.
Rezolvare:
Întrun oras sunt mai multe librarii. Pentru a oferi clientilor cât mai multe carti, librariile se aprovizioneaza de la mai multe edituri. Cartile sunt livrate, librariilor, de fiecare editura, pe baza unor comenzi. Comanda contine informatii despre fiecare carte în parte (titlu, autor, pret, numar exemplare), precum si suma pe care trebuie sa o achite libraria.
Dupa maparea modelului, pentru entitatea:
LIBRĂRIE - > Cod_Librarie este cheie primara;
EDITURĂ -> Cod_Editura este cheie primara si Cod_Librarie este cheie externa;
CARTE -> Autor, Titlu, An_Aparitie este cheie primara compusa, Cod_Editura este cheie externa;
COMANDĂ -> Cod_Comanda este cheie primara, Cod_Editura si Cod_Librarie sunt chei externe, iar Autor, Titlu, An_Aparitie este cheie externa compusa;
Relatiile dintre entitatile din modelul conceptual asociat scenariului descris sunt de tip 1 : n (librarie-comanda; editura-comanda; comanda-carte), iar relatia de tip n : m (librarie-editura) a fost rezolvata cu ajutorul entitatii de legatura comanda.
Subiectul nr.7
O agentie de turism are un site cu urmatoarea structura:
Cerinte:
a) Realizati o lista cu obiectele bazei de date pentru agentia de turism (tabele, formulare, rapoarte);
b) Alegeti trei dintre entitatile modelului conceptual; reprezentati relatiile dintre ele si precizati cheile primare si cheile externe care rezulta dupa maparea modelului conceptual.
Rezolvare:
Obiectele acestei baze de date sunt:
Relatiile dintre cele trei entitati alese sunt de tip 1 : n (agentie-client; agentie-oferta) si n : m (oferta-client).
Dupa maparea modelului conceptual, vom avea:
AGENTIE (cod_agentie, nume, adresa, telefon)
-> Cod_agentie este cheie primara;
OFERTA (cod_oferta, data_plecare, nr_zile, destinatie, pret, scop, tip_oferta, cod_agentie)
->Cod_oferta este cheie primara;
->Cod_agentie este cheie externa;
CLIENT (cod_client, nume, adresa, telefon, cod_oferta, cod_agentie)
-> Cod_client este cheie primara; Cod_oferta, Cod_agentie sunt chei externe;
Subiectul nr.8
Dându-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de câte trei instante posibile ale fiecarei entitati
În vederea realizarii vanzarii ziarelor si revistelor pe baza de abonament, Departamentul Abonamente al Trustului de presa RomMedia SC trimite la oficiile postale oferta de abonament, cu numele publicatiei, numarul volumului, data aparitiei, pretul, comisionul oferit oficiului postal pentru acest serviciu. Pentru a se abona la orice ziar sau revista, persoanele doritoare trebuie sa furnizeze numele, adresa si eventual un numar de telefon. Abonatii semneaza pentru abonare o chitanta-abonament în care se specifica numele publicatiei, perioada de timp pe care este valabil abonamentul, prin data de început si data de sfârsit a abonamentului. Bineînteles ca o persoana se poate abona la mai multe publicatii în acelasi timp.
Rezolvare:
OFICIU_POsTAL (numar, adresa)
-> identificatorul unic este atributul numar
OFERTA_ABONAMENT (nume_publicatie, nr_volum, data_aparitie, pret, comision)
-> identificatorul unic este format din atributele nume_publicatie si nr_volum
ABONAT(nume, adresa, telefon)
-> identificatorul unic este format din atributele nume si adresa; atributul telefon este optional
CHITANŢA_ABONAMENT(nr_chitanta, nume_publicatie, data_început, data_sfârsit)
-> identificatorul unic este format din atributul nr_chitanta
Exemple de instante:
OFICIU_POSTAL:
Numar |
Adresa |
Bdul Iuliu Maniu, nr.61, sect.6 |
|
Bdul Iuliu Maniu, nr.124, sect.6 |
|
Str. Schitu Magureanu, nr.1, sect.1 |
OFERTA_ABONAMENT
Nume_publicatie |
Nr_volum |
Data_aparitie |
Pret |
Comision |
Atlas | ||||
Corpul uman | ||||
Academia Catavencu |
ABONAT
Nume |
Adresa |
Telefon |
Ionescu Ion |
Bdul.Regina Elisabeta, nr.1 | |
Popescu Virgil |
Str.Polona, nr.40 | |
Marinescu Robert |
Soseaua Giurgiului, nr.44, bl.9, ap.12, sect.4 |
CHITANŢA_ABONAMENT
Nr_ chitanta |
Nume_ publicatie |
Data_început |
Data_sfârsit |
Gandul | |||
Atlas | |||
Corpul uman |
Subiectul nr.9
Dându-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de câte trei instate posibile ale fiecarei entitati.
Pentru realizarea planului bugetar,
Rezolvare:
CLIENT (cod_fiscal, nume, adresa)
-> identificatorul unic este atributul cod fiscal
CONTRACT(cod_fiscal, data_inceput, data_sfarsit, penalizare)
-> identificatorul unic este atributul cod fiscal
POST_TELEVIZIUNE (nume, adresa, telefon, e_mail)
-> identificatorul unic este format din atributul nume; atributul e_mail este optional
RECLAMA (cod, imagine, durata, tip_reclama )
-> identificatorul unic este format din atributul cod
Exemple de instante:
CLIENT:
Cod_fiscal |
Nume |
Adresa |
Ram SA |
Bdul Iuliu Maniu, nr.61, sect.6 |
|
Evoda SA |
Bdul Iuliu Maniu, nr.124, sect.6 |
|
Telx SA |
Str. Schitu Magureanu, nr.1, sect.1 |
CONTRACT:
Cod_fiscal |
Data_inceput |
Data_sfarsit |
Penalizare |
POST_TELEVIZIUNE:
Nume |
Adresa |
Telefon |
E_mail |
TVR1 |
Bdul Iuliu Maniu, nr.61, sect.6 | ||
TVR2 |
Bdul Iuliu Maniu, nr.124, sect.6 | ||
PROTV |
Str. Schitu Magureanu, nr.1, sect.1 |
RECLAMA :
Cod |
Imagine |
Durata |
Tip_reclama |
Ciocolata |
2 min |
publicitate |
|
Detergent |
1 min |
publicitate |
|
Produse cosmetice |
5min |
publicitate |
Subiectul nr.10
Dându-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de câte trei instate posibile ale fiecarei entitati.
Compania de asigurari SunLife SA ofera diferite tipuri de asigurari, pentru bunuri si persoane fizice sau juridice: furt, incendii, explozii, inundatii, cutremure, accident, boala, invaliditate, deces. Fiecare client primeste un cod la semnarea contractului, contract în care sunt precizate si numele clientului, prima anuala de plata, numarul de ani pentru care se face asigurarea, anul din care începe asigurarea. Clientul poate prelungi (actualiza) contractul prin plata unei noi prime anuale, dar numai daca plata se face la o data anterioara celei de expirare a contractului deja încheiat. Pentru o functionare buna, compania de asigurari doreste sa tina evidenta achitarii de catre clienti a primelor anuale pentru fiecate tip de asigurare si anul pentru care s-au achitat.
Rezolvare:
COMPANIE (id_companie, nume, adresa, telefon, e_mail)
-> identificatorul unic este atributul id_companie; atributul e_mail este optional;
ANGAJAT (id_angajat, nume, adresa,telefon)
-> identificatorul unic este atributul id_angajat;
CLIENT(cod, nume, id_contract,asigurare, adresa,telefon, e_mail) -> identificatorul unic este atributul cod; atributul e_mail este optional;
CONTRACT (id_contract, data_inceput, data_sfarsit, anul_achitarii, prima_anuala)
-> identificatorul unic este atributul id_contract;
Exemple de instante:
COMPANIE:
Id_ companie |
Nume |
Adresa |
Telefon |
E_mail |
Ram SA |
Bdul Nicolae Grigorescu, nr.61, sect.3 | |||
Evoda SA |
Bdul Iuliu Maniu, nr.124, sect.6 | |||
Telx SA |
Str. Unirii, nr.1, sect.1 |
ANGAJAT :
Id_angajat |
Nume |
Adresa |
Telefon |
Popescu Ion |
Bdul Nicolae Grigorescu, nr.61, sect.3 | ||
Evoda SA |
Bdul Iuliu Maniu, nr.124, sect.6 | ||
Telx SA |
Str. Unirii, nr.1, sect.1 |
CLIENT :
Cod |
Id_ contract |
Nume |
Tip_ asigurare |
Adresa |
Telefon |
E_mail |
Popescu Ion |
bunuri |
Bdul Nicolae Grigorescu, nr.61, sect.3 | ||||
Savin Ion |
Persoane fizice |
Bdul Iuliu Maniu, nr.124, sect.6 | ||||
Teodor Vasile |
bunuri |
Str. Unirii, nr.1, sect.1 |
CONTRACT:
Id_ contract |
Data_inceput |
Data_sfarsit |
Prima_anuala |
Anul_achitarii |
Subiectul nr.11
Dându-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de câte trei instate posibile ale fiecarei entitati.
Firma de taximetre Express SA are mai multe taxiuri, fiecare taximetru este condus de un singur sofer. La fiecare masina, se înregistreaza kilometrajul la plecarea si la sosirea în/din cursa. Baza de date trebuie sa contina informatii despre: codul de identificare al fiecarei masini, soferul care o conduce, tipul de masina, tariful/km, tariful de pornire si tariful de stationare, starea masinii (functionala/defecta), data ultimei revizii tehnice. Fiecare sofer primeste la angajare un cod, precizându-se si numele si prenumele, data nasterii, adresa de domiciliu si obligatoriu un numar de telefon mobil, pentru contactare în caz de urgenta. Fiecare cursa efectuata de masinile firmei trebuie sa contina codul de identificare al masinii, data, numarul de kilometri de la începutul cursei si numarul de kilometri de la sfârsitul cursei.
Rezolvare:
FIRMA (id_firma, denumire, adresa, telefon, e_mail)
-> identificatorul unic este atributul id_firma; atributul e_mail este optional
MASINA (cod, tip, stare_tehnica,data_revizie)
-> identificatorul unic este atributul cod
CURSA (id_cursa, data_cursa, km_inceput_cursa, km_sfarsit_
cursa)
-> identificatorul unic este atributul id_cursa;
SOFER (cod, nume, prenume, data_nasterii, adresa, telefon_mobil)
-> identificatorul unic este atributul cod
TARIF (id_tarif, tarif_km, tarif_pornire,tarif_stationare)
-> identificatorul unic este atributul id_tarif
Exemple de instante:
FIRMA:
id_firma |
Denumire |
Adresa |
Telefon |
E_mail |
Alfa Taxi |
Bucuresti | |||
Aris Taxi |
Bucuresti | |||
Avantaj Taxi |
Bucuresti |
MASINA :
Cod |
tip |
stare_tehnica |
data_revizie |
Dacia1300 |
functionala | ||
Matiz |
functionala | ||
Dacia Logan |
functionala |
CURSA :
id_cursa |
data_cursa |
km_inceput_cursa |
km_sfarsit_cursa |
55 | |||
sOFER :
cod |
nume |
prenume |
data_nasterii |
adresa |
telefon_mobil |
Popescu |
Ion |
Patrascanu 13 | |||
Vasile |
Marin |
Unirii 34 | |||
Moise |
Nicolae |
Grigorescu 33 |
TARIF :
id_tarif |
tarif_km |
tarif_pornire |
tarif_stationare |
Subiectul nr.12
Serviciul de posta electronica permite unui utilizator sa aiba unul sau mai multe conturi ; pentru fiecare cont, utilizatorul primeste datele de identificare : username si password. Un mesaj este transmis de un utlizator-expeditor catre unul sau mai multi utilizatori-destinatari. Fiecare utilizator îsi poate organiza corespondenta (mesajele) în foldere.
Proiectantul modelului conceptual propune entitatile UTILIZATOR si MESAJ cu urmatoarele liste de atribute :
UTILIZATOR
user-id |
nume |
varsta |
numar-conturi |
user_name |
parola |
data-inregistrarii |
MESAJ
mesaj_id |
data-expedierii |
nume-expeditor |
nume-destinatar |
Cerinte:
1. Analizati descrierile entitatilor propuse si precizati daca respecta regulile de normalizare. Justificati raspunsul.
2 Corectati abaterile de la regulile de normalizare, modificând corespunzator modelul.
3 Stabiliti relatiie dintre entitati si carateristicile acestor relatii.
Rezolvare:
a) Entitatea UTILIZATOR nu respecta forma a doua normala (FN2) deoarece atributele user_nume, parola si data_înregistrarii sunt specifice contului utilizatorului. Vom crea o noua entitate CONT cu atributele user_nume, parola si data_înregistrarii ce va avea ca identificator unic atributul user_name.
Atributul vârsta din entitatea UTILIZATOR fiind un atribut volatil va fi înlocuit cu atributul data_nasterii.
Entitatea MESAJ nu respecta forma a doua normala (FN2). Deoarece utilizatorul poate primi sau poate trimite un mesaj va fi creata o noua entitate TIP_MESAJ cu atributul tip_mesaj. În acest sens, când mesajul este trimis, utilizatorul este expeditor, iar când mesajul este primit, utilizatorul este destinatar.
b) Modelul devine:
UTILIZATOR
user-id |
nume |
data_nasterii |
numar-conturi |
CONT
user_name |
parola |
data-inregistrarii |
TIP_MESAJ
tip_mesaj |
MESAJ
mesaj_id |
data |
c) Relatiile între entitati sunt urmatoarele:
UTILIZATOR - CONT relatie 1 : M
CONT - MESAJ relatie M : M rezolvata cu ajutorul entiatii TIP_MESAJ
CONT - MESAJ relatie 1 : M
MESAJ - TIP_MESAJ relatie 1 : M
Subiectul nr.13
În modelul conceptual pentru proiectarea bazei de date a unei scoli exista entitatile ELEV si sCOALA cu urmatoarele liste de atribute:
ELEV
cod_elev |
nume |
vârsta |
numele-parintilor |
locul de munca |
clasa |
adresa_ scolii |
numele-dirigintelui |
sCOALĂ
cod_ scoala |
denumire_ scoala |
numar_ elevi |
numar_ clase |
nume- director |
CNP_director |
Cerinte:
1. Analizati descrierile entitatilor propuse si precizati daca respecta regulile de normalizare. Justificati raspunsul.
2 Corectati abaterile de la regulile de normalizare, modificând corespunzator modelul.
3 Stabiliti relatiie dintre entitati si carateristicile acestor relatii.
Rezolvare:
a) Entitatea ELEV nu respecta prima forma normala (FN1) deoarece atributul adresa_ scolii depinde de entitatea sCOALĂ. Atributele numele_parintilor si locul de munca au valori multiple si sunt specifice entitatii parinte.
Atributul vârsta din entitatea ELEV, fiind un atribut volatil, va fi înlocuit cu atributul data_nasterii.
Entitatea sCOALA nu respecta a treia forma normala (FN3) deoarece atribele CNP_ director si nume_director apartin entitatii Angajat care are UID atributul CNP (tranzitivitate).
b)Modelul devine
ELEV
cod_elev |
Nume |
data_nasterii |
CLASA
id_clasa |
PĂRINTE
nume |
loc de munca |
sCOALĂ
cod_scoala |
denumire_scoala |
numar_elevi |
numar_clase |
adresa |
ANGAJAT
CNP |
nume |
functie |
c)Relatiile între entitati sunt urmatoarele:
ELEV - PARINTE relatie 1 : M
sCOALĂ - ANGAJAT relatie 1 : M
sCOALĂ - ELEV relatie 1 : M
CLASA -ELEV relatie 1 : M
sCOALĂ - CLASA relatie 1 : M
Subiectul nr.14
În modelul conceptual pentru proiectarea bazei de date a unei firme de transport marfuri exista entitatile sOFER si MAsINĂ cu urmatoarele liste de atribute :
sOFER
cod_ sofer |
nume |
vârsta |
telefon |
adresa |
starea_ masinii |
kilometraj |
MAsINĂ
cod_ masina |
nume_ sofer |
denumire_ marfa |
capacitate_ masina |
cantitate_ marfa |
Un sofer este trimis în cursa pe oricare dintre masinile disponibile in urma reviziei tehnice care stabileste starea masinii: foarte buna sau necesita reparatii.
O masina poate transporta orice tip de marfa, exemplu : mobila, materiale de constructii, aparate electrocasnice etc.
Cerinte:
1. Analizati descrierile entitatilor propuse si precizati daca respecta regulile de normalizare. Justificati raspunsul.
2 Corectati abaterile de la regulile de normalizare, modificând corespunzator modelul.
3 Stabiliti relatiie dintre entitati si carateristicile acestor relatii.
Rezolvare:
a) Entitatea sOFER nu respecta forma normala unu (FN1) deoarece atributele starea_masinii si kilometraj apartin entitatii MAsINĂ.
Atributul vârsta din entitatea sOFER fiind un atribut volatil va fi înlocuit cu atributul data_nasterii.
Entitatea MAsINĂ nu respecta forma normala trei (FN3) deoarece atributele denumire_marfa si cantitate nu apartin entitatii MASINA ci apartin entitatii MARFA (tranzitivitate cantitate_marfa depinde de denumire_marfa care depinde de cheia primara) care va avea UID id_marfa. Nu este respectata nici forma a treia normala (FN3) deoarece atributul cantitate_marfa depinde de atributul denumire_marfa (dependenta tranzitiva)
b) Modelul devine:
sOFER
cod_sofer |
Nume |
data_nasterii |
telefon |
adresa |
MAsINĂ
cod_masina |
kilometraj |
capacitate _masina |
stare_masina |
data_revizie |
FISA_PONTAJ
data |
MARFĂ
id_marfa |
denumire |
cantitate |
c) Relatiile între entitati sunt urmatoarele:
sOFER - MAsINĂ relatie M : M rezolvata cu ajutorul
entiatii
FIsA_PONTAJ
MAsINĂ - MARFĂ relatie 1 : M
sOFER - FIsA_PONTAJ relatie 1 : M
MAsINĂ - FIsA_PONTAJ relatie 1 : M
Subiectul nr.15
În modelul conceptual pentru proiectarea bazei de date a unei biblioteci exista entitatile CITITOR si CARTE cu urmatoarele liste de atribute :
CITITOR
cod_ cititor |
nume |
vârsta |
adresa |
titlul_ cartilor_ împrumutate |
data_ împrumutului |
CARTE
cod_ carte |
autor |
anul nasterii |
pret |
domeniu |
anul_ aparitiei |
numar_ exemplare |
Cerinte:
1. Analizati descrierile entitatilor propuse si precizati daca respecta regulile de normalizare. Justificati raspunsul.
2 Corectati abaterile de la regulile de normalizare, modificând corespunzator modelul.
3 Stabiliti relatiie dintre entitati si carateristicile acestor relatii.
Rezolvare:
a) Entitatea CITITOR nu respecta forma normala unu (FN1) deoarece atributul titlul_cartilor_împrumutate apartine entitatii CARTE. Nu respecta nici forma normala 2 (FN2) deoarece data_imprumut este UID - pentru entitatea FIsA_CITITOR - entitate care rezolva relatia M:M dintre entitatea CARTE si entitatea CITITOR.
Atributul vârsta din entitatea CITITOR fiind un atribut volatil va fi înlocuit cu atributul data_nasterii.
Entitatea CARTE nu respecta forma normala unu (FN1) deoarece atributul domeniu are valori multiple devenind entitate.
Nu este respectata nici forma a treia normala (FN3) deoarece atributul anul_nasterii depinde de atributul autor (dependenta tranzitiva) generând o noua entitate autor cu atributele (cod_autor, nume, an_nastere)
b) Modelul devine:
CITITOR
cod_cititor |
nume |
data_nasterii |
adresa |
CARTE
cod_ carte |
titlul_ cartilor_ împrumutate |
pret |
an_ aparitie |
numar_ exemplare |
FIsA_CITITOR
data_împrumut |
data_restituire |
AUTOR
cod_autor |
Nume |
an_nastere |
DOMENIU
nume |
c) Relatiile între entitati sunt urmatoarele:
CITITOR - CARTE relatie M : M rezolvata cu ajutorul entiatii
FIsA_CITITOR
CARTE - AUTOR relatie 1 : M
CARTE - DOMENIU relatie 1 : M
CITITOR- FIsA_CITITOR relatie 1 : M
CARTE - FIsA_CITITOR relatie 1 : M
Subiectul nr.16
În modelul conceptual pentru proiectarea bazei de date a unei agentii de turism exista entitatile TURIST si PACHET_TURISTIC cu urmatoarele liste de atribute :
TURIST
cod_turist |
nume |
destinatia |
nr_de_telefon |
forma_de_plata |
PACHET_TURISTIC
cod_pachet |
pret |
Durata |
data_plecarii |
numele-oraselor |
tara |
Agentia de turism ofera clientilor pachete turistice în diverse tari. Clentii pot plati costul pachetului cu card sau în numerar.
Cerinte:
1. Analizati descrierile entitatilor propuse si precizati daca respecta regulile de normalizare. Justificati raspunsul.
2 Corectati abaterile de la regulile de normalizare, modificând corespunzator modelul.
3 Stabiliti relatiie dintre entitati si carateristicile acestor relatii.
Rezolvare:
a) Entitatea TURIST nu respecta forma normala unu (FN1) deoarece atributele destinatia, si forma de plata sunt entitati.
Entitatea PACHET TURISTIC nu respecta forma normala unu (FN1) deoarece atributul numele-oraselor este multiplu si determina o noua entitate oras. Nu este respectata nici forma a doua normala (FN2) deoarece atributele data_plecarii si tara apartin entitatii DESTINATIE ( data plecarii este UID pentru DESTINATIE).
Modelul devine:
TURIST
Cod_turist |
nume |
PACHET TURISTIC
Cod_pachet |
pret |
Durata |
DESTINAŢIE
data_plecarii |
Ţara |
ORAs
nume oras |
FORMA DE PLATA
Tip_plata |
c)Relatiile între entitati sunt urmatoarele:
TURIST - PACHET TURISTIC relatie M : M rezolvata cu ajutorul entiatii DESTINAŢIE
DESTINAŢIE - ORAs relatie 1 : M
PACHET TURISTIC - FORMĂ DE PLATĂ relatie 1 : M
TURIST - DESTINAŢIE relatie 1 : M
PACHET TURISTIC - DESTINAŢIE relatie 1 : M
Subiectul nr.17
Angajatii unui post TV trebuie sa asigure patru ture pentru programul zilnic al postului. Unii angajati pot avea o zi libera pe saptamâna. Nici un angajat nu poate fi solicitat în mai multe ture zilnic. În fiecare saptamâna, planificarea turelor se schimba în functie de grila de programe.
Cerinte:
Sa se determine daca tabelele de mai jos, din cadrul modelului fizic al bazeide date, respecta restrictiile de integritate. Justificati raspunsul.
ANGAJAŢI (AGT) |
|||||
Id |
Nume |
Prenume |
Data_nasterii |
Salariu |
Functie |
Petre |
Alin |
2-IUL-77 |
producator |
||
Alexe |
Ion |
14-AUG-80 |
900 RON |
operator |
|
Marcu |
Maria |
21-NOV-78 |
regizor montaj |
||
Mihai |
Ana |
23-SEP-89 |
regizor platou |
||
Duta |
stefan |
15-APR-90 |
recuziter |
TURE (TRA) |
|
Cod |
Descriere |
PLANIFICĂRI_TURE (PTE) |
||
Data |
Agt_id |
Tra_cod |
2-DEC-07 | ||
2-DEC-07 | ||
2-DEC-07 | ||
2-DEC-07 | ||
2-DEC-07 | ||
2-DEC-07 | ||
2-DEC-07 | ||
3-DEC-07 |
Rezolvare:
Modelul relational respecta trei reguli de integritate structurala.
Regula 1 (unicitatea cheii) nu este respectata pentru ca valorile cheii primare Data ale tabelei planificari_ture nu sunt unice.
Regula 2 (integritatea entitatii) este respectata pentru ca valorile cheilor primare sunt diferite de valoarea null.
Regula 3 (integritatea referirii) nu este respectata pentru ca. în tabela planificari_ture, cheia externa agt_id are valoarea 17 care nu corespunde niciunei valori a cheii primare id din tabela angajati.
Subiectul nr.18
La un restaurant, directorul compartimentului de productie a stabilit urmatoarea regula: comenzile sunt preluate de catre chelneri si transmise bucatarilor. Aceiasi chelneri iau apoi preparatele si le servesc clientilor
Cerinte:
Sa se determine daca tabelele de mai jos, din cadrul modelului fizic al bazeide date, respecta restrictiile de integritate.Justificati raspunsul.
COMENZI (CMA) |
|||
Numar |
Data |
Timp |
Agt_id |
12-NOV-07 | |||
12-NOV-07 | |||
12-NOV-07 | |||
13-NOV-07 | |||
13-NOV-07 | |||
14-NOV-07 |
ANGAJAŢI (AGT) |
|||||||||
Id |
Nume |
Prenume |
Data_nasterii |
Salariu |
Spor |
Pregatire |
Buget |
Venit |
Plata_ora |
Stan |
Emil |
2-IUL-77 | |||||||
Groza |
Maria |
14-AUG-80 |
700 LEI | ||||||
Petre |
Andrei |
21-NOV-78 |
Patiser | ||||||
Mihai |
George |
23-SEP-89 |
700 RON | ||||||
Ion |
Ion |
15-APR-90 |
Rezolvare:
Modelul relational respecta trei reguli de integritate structurala.
Regula 1 (unicitatea cheii) nu este respectata pentru ca valorile cheii primare Numar ale tabelei Comenzi nu sunt unice.
Regula 2 (integritatea entitatii) este respectata pentru ca valorile cheilor primare sunt diferite de valoarea null.
Regula 3 (integritatea referirii) este respectata; cheaia externa agt_id a tabelei Comenzi contine valori ce au valori corespunzatoare în cheia primara id din tabela angajati sau sunt null.
Subiectul nr.19
La cantina unui spital masa este servita în mod diferit. Pentru bolnavii cu regim, în functie de afectiuni, iar pentru restul internatilor si pentru personalul spitalului, un meniu comun.
Cerinte:
Sa se determine daca tabelele de mai jos, din cadrul modelului fizic al bazeide date, respecta restrictiile de integritate. Justificati raspunsul.
MENIURI_COMUN (MCN) |
|
Cod |
Descriere |
Tocatura |
|
Salate |
|
Desert |
|
Mic dejun |
|
Cina |
MENIURI_REGIM (MRM) |
|
Cod |
Tip_boala |
Diabet |
|
Cardiopatie |
|
Hepatita |
|
Enterocolita |
|
Colita |
|
Oreion |
|
arterita |
PREPARATE (PPT) |
||||
Cod |
Descriere |
Pret |
Mrm_cod |
Mcn_cod |
Ceai sunatoare | ||||
Orez cu lapte | ||||
Escalop | ||||
Savarina |
2 RON | |||
Sarmale |
Rezolvare:
Modelul relational respecta trei reguli de integritate structurala.
Regula 1 (unicitatea cheii) este respectata deoarece toate cheile primare (mcn.cod, mrm.cod, ppt.cod) au valori unice.
Regula 2 (integritatea entitatii) este respectata pentru ca toate valorile cheilor primare sunt diferite de valoarea null.
Regula 3 (integritatea referirii) nu este respectata pentru ca. în tabela preparate, cheia externa mcn_cod contine valoarea 6 ce nu corespunde niciunei valori a cheii primare cod din tabela meniuri_comun.
Subiectul nr.20
Pentru stocarea datelor referitoare la elevii unei clase va fi creat si completat cu înregistrari un tabel ca cel din exemplul urmator:
ELEVI
Numar matricol |
Nume |
Prenume |
Adresa |
Data nasterii |
Popescu |
Alin |
Str. Baicului, nr.135 |
a) Construiti, ca în exemplu, tabela necesara pentru stocarea datelor referitoare la obiectele dintr-un muzeu. Obiectele de arta pot fi sculpturi sau picturi si sunt caracterizate de: titlu, autor, anul în care au fost create, poza, mediul propice de depozitare, valoare, stare, descriere, data achizitionarii si valoarea la achizitionare.
b) Completati tabelul cu 5 înregistrari.
c) Specificati tipul datelor din fiecare coloana a tabelului.
d) Construiti un scenariu care sa necesite modificarea unei instante;
e) Scrieti în limbajul de programare studiat, instructiunea de creare a tabelului descris la cerinta a).
f) Scrieti în limbajul de programare studiat, instructiunea de modificare a unei instante corespunzator cerintei d).
Rezolvare:
a) - b)
Numar opera |
Tip opera |
Titlu |
Autor |
Anul crearii |
pictura |
Car cu boi |
Nicolae Grigorescu | ||
pictura |
Gioconda |
Leonardo da Vinci | ||
sculptura |
Coloana fara de sfârsit |
Constantin Brâncusi | ||
pictura |
Portret de fetita |
Nicolae Tonitza | ||
pictura |
Femeie pe fotoliu |
Pablo Picasso |
Poza |
Mediul de depozitare |
Valoare |
Stare |
1.jpg |
uscat, 22 grade |
f.buna |
|
2.jpg |
uscat, 18 grade |
deteriorat |
|
3.jpg |
uscat, 24 grade |
buna |
|
4.jpg |
luminozitate, 21 grade |
medie |
|
5.jpg |
uscat, 18 grade |
f.buna |
Descriere |
Data achizitionarii |
Valoarea achizitiei |
unul dintre subiectele rustice face parte din seria "Care cu boi pe drumuri prafuite de tara" | ||
pictura celebra reprezentând o femeie cu expresie gânditoare si un surâs abia schitat; este o pictura în ulei pe lemn de plop cu dimensiunile 77x53 cm; este expus la Muzeul Luvru din Paris | ||
este opera sa principala, fiind una dintre cele mai admirate sculpturi ale secolului; este austera si perfect echilibrata; are 16 elemente care cântaresc 14226 kg | ||
dimensiuni 18,5x14; este pictat în ulei pe carton | ||
stilul este cubist; este accentuata diferenta dintre suprafata tabloului si relieful obiectelor prezentate |
c)
numar obiect - Numeric
tip obiect - sir de caractere
Titlu - sir de caractere
Autor - sir de caractere
Anul crearii - Numeric
Poza-General(FOX),BLOB(ORACLE)
Mediul de depozitare - sir de caractere
Valoare - Numeric
Stare - sir de caractere
Descriere - sir de caractere
Data achizitionarii - Data calendaristica
Valoare la achizitionare - Numeric
d)
În 1956, partea inferioara a tabloului "Gioconda" sufera daune serioase în urma unui atentat cu o solutie acida iar, la câteva luni mai târziu, un vizitator a aruncat în el cu o piatra. Tabloul este restaurat, deci starea lui actuala este foarte buna.
e)
ORACLE
CREATE TABLE muzeu
nr_opera NUMBER PRYMARY KEY,
tip VARCHAR2(15),
titlu VARCHAR2(100);
autor VARCHAR2(50),
an_creare NUMBER,
poza BLOB
mediu_dep VARCHAR2(50),
valoare NUMBER,
stare VARCHAR2(50),
descriere VARCHAR2(2000),
data_achiz DATE,
val_achiz NUMBER);
FOXPRO
CREATE TABLE muzeu( nr_opera N(4), tip C(15), titlu C(100), autor C(50), an_creare N(4), poza G, mediu_dep C(50), valoare N(10), stare C(50), descriere M, data_achiz D, val_achiz N(10))
f)
ORACLE
UPDATE muzeu
SET stare='f.buna'
WHERE trim(BOTH ' ' FROM lower(titlu))='gioconda' AND trim(BOTH ' ' FROM lower(autor)) = 'leonardo da vinci'
FOXPRO
REPLACE stare WITH "f.buna" for alltrim(lower(titlu))="gioconda" and alltrim(lower(autor))="leonardo da vinci"
Subiectul nr.21
Pentru stocarea datelor referitoare la elevii unei clase va fi creat si completat cu înregistrari un tabel ca cel din exemplul urmator:
ELEVI
Numar matricol |
Nume |
Prenume |
Adresa |
Data nasterii |
Popescu |
Alin |
Str. Baicului, nr.135 |
a) Construiti, ca în exemplu, tabela necesara pentru stocarea datelor referitoare la vasele fluviale utilizate de o firma de transport. Exista doua tipuri de vase de transport: pentru marfuri sau pentru pasageri. Fiecare vas este caracterizat prin nume, capacitate totala, lungime, pescaj, viteza de deplasare, data fabricatiei, portul de baza si portul în care a fost înregistrat, poza, valoare si compania de asigurari.
b) Completati tabelul cu 5 înregistrari.
c) Specificati tipul datelor din fiecare coloana a tabelului.
d) Construiti un scenariu care sa necesite stergerea unei instante;
e) Scrieti în limbajul de programare studiat, instructiunea de creare a tabelului descris la cerinta a).
f) Scrieti în limbajul de programare studiat, instructiunea de stergere a unei instante corespunzator cerintei d).
Rezolvare:
a) - b)
Cod vas |
Tip vas |
Nume vas |
Capacitate totala |
pasageri |
PASAGER1 | ||
marfuri |
MARFA1 | ||
pasageri |
PASAGER2 | ||
pasageri |
PASAGER3 | ||
marfuri |
MARFA2 |
Lungime |
Pescaj |
Viteza de deplasare |
Data fabricatiei |
Portul de baza |
2 iulie 1975 |
Giurgiu |
|||
5 mai 1981 |
Drobeta Turnu Severin |
|||
22 iunie 1985 |
Turnu Magurele |
|||
1 septembrie 1972 |
Oltenita |
|||
1 aprilie 1965 |
Galati |
Port înregistrare |
Poza |
Valoare |
Companie de asigurare |
Tulcea |
1.jpg |
BCR Asigurari |
|
Orsova |
2.jpg |
Asirom |
|
Giurgiu |
3.jpg |
Astra Asigurari |
|
Calarasi, |
4.jpg |
Asiban |
|
Braila |
5.jpg |
BCR Asigurari |
c)
Cod vas - Nmeric
Tip vas - sir de caractere
Nume vas - sir de caractere
Capacitate totala - Numeric
Lungime - Numeric
Pescaj - Numeric
Viteza de deplasare - Numeric
Data fabricatiei - Data calendaristica
Portul de baza - sir de caractere
Port înregistrare - sir de caractere
Poza GENERAL(FOX) / BLOB(ORACLE)
Valoare - Numeric
Companie de asigurari - sir de caractere
d)
Constatând ca în ultimele luni, vasele care sunt construite înainte de 1970 necesita mari cheltuieli cu întretinerea, firma de transport hotaraste sa le vânda.
e)
ORACLE
CREATE TABLE firma_transport
cod_vas NUMBER PRYMARY KEY,
tip VARCHAR2(15),
nume VARCHAR2(100);
capacitate NUMBER,
lungime NUMBER,
pescaj NUMBER,
vitez_depl NUMBER,
data_fabr
port_baza VARCHAR2(50),
port_inreg VARCHAR2(50),
poza BLOB
valoare NUMBER,
comp_asig VARCHAR2(100));
FOXPRO
CREATE TABLE firma_transport( cod_vas N(4), tip C(15), nume C(100), capacitate N(10), lungime N(2), pescaj N(10), vitez_depl N(3), data_fabr D, port_baza C(50), port_inreg C(50), poza G, valoare N(12), comp_asig C(100))
f)
ORACLE
DELETE FROM firma_transport
WHERE to_number(to_char(data_fabr,'YYYY'))<1970
FOXPRO
DELETE for year(data_fabr)<1970
Subiectul nr.22
Pentru stocarea datelor referitoare la elevii unei clase va fi creat si completat cu înregistrari un tabel ca cel din exemplul urmator:
ELEVI
Numar matricol |
Nume |
Prenume |
Adresa |
Data nasterii |
Popescu |
Alin |
Str. Baicului, nr.135 |
a) Construiti, ca în exemplu, tabela necesara pentru stocarea datelor referitoare la masinile care fac parte din parcul auto al unei scoli de soferi. O masina este caracterizata prin numar de înregistrare, tip, serie si numar sasiu, data fabricatiei, firma producatoare, culoare, poza, pret de achizitie, numele si prenumele instructorului ce o foloseste. O masina poate fi utilizata de un singur instructor.
b) Completati tabelul cu 5 înregistrari.
c) Specificati tipul datelor din fiecare coloana a tabelului.
d) Construiti un scenariu care sa necesite modificarea unei instante;
e) Scrieti în limbajul de programare studiat, instructiunea de creare a tabelului descris la cerinta a).
f) Scrieti în limbajul de programare studiat, instructiunea de modificare a unei instante corespunzator cerintei d).
Rezolvare:
a) - b)
Numar de înregistrare |
Tip |
Serie si numar sasiu |
Data fabricatiei |
MATIZ |
RW151902349 |
12 iulie 2006 |
|
FIAT |
QA1900238730 |
15 ianuarie 2002 |
|
LOGAN |
XY2901349295 |
7 noiembrie 2004 |
|
FIESTA |
GT2087392172 |
14 februarie 2003 |
|
CIELO |
HJ1980267374 |
15 octombrie 2003 |
Firma producatoare |
Culoare |
Poza |
Pret de achizitie |
Nume si prenume instructor |
DAEWOO |
rosu |
1.jpg |
Ionescu Ionel |
|
FIAT |
verde |
2.jpg |
Dobre Aurel |
|
DACIA |
alba |
3.jpg |
Matei Daniel |
|
|
neagra |
4.jpg |
Ilies Marius |
|
DAEWOO |
alb29 |
5.jpg |
Irimia Claudiu |
c)
Numar de înregistrare - Numeric
Tip - sir de caractere
Serie si numar sasiu - sir de caractere
Data fabricatiei - Data calendaristica
Firma producatoare - sir de caractere
Culoare - sir de caractere
Poza - GENERAL(
Pret de achizitie - Numeric
Numele si prenumele instructorului - sir de carcatere
d)
Într-o zi, în Piata Iancului, un sofer neatent în trafic, loveste masina instructorului Irimia Claudiu. Elevul si instructorul nu patesc nimic, dar masina este foarte avariata în partea dreapta spate. În service se constata ca nu se mai gaseste culoarea initiala si se decide schimbarea ei alegându-se culoarea rosie.
e)
ORACLE
CREATE TABLE scoala_soferi
nr_inreg NUMBER PRYMARY KEY,
tip VARCHAR2(15),
sasiu VARCHAR2(20);
data_fabr DATE,
firma VARCHAR2(20),
culoare VARCHAR2(10),
poza BLOB
pret_achiz NUMBER,
nume_instr VARCHAR2(50));
FOXPRO
CREATE TABLE scoala_soferi( nr_inreg N(4), tip C(15), sasiu C(20), data_fabr D, firma C(50), culoare C(10), poza G, pret_achiz N(10), nume_instr C(50))
f)
ORACLE
UPDATE scoala_soferi
SET culoare='rosie'
WHERE trim(BOTH ' 'FROM lower(nume_instr))='irimia claudiu';
FOXPRO
REPLACE culoare WITH "rosie" for alltrim(lower(nume_instr))='irimia claudiu"
Subiectul nr.23
Esti informaticianul Colegiului SUPERPRO si tii evidenta tuturor elevilor într-o tabela cu urmatoarea structura:
COD ELEV |
NUME ELEV |
PRENUME ELEV |
CLASA |
MEDIE GENERALA |
PROMOVAT |
4n |
10 α |
10 α |
2 n |
2 n . 2 n |
1 n |
La începutul anului scolar, trebuie sa actualizezi câmpul clasa (daca elevul a promovat) si sa scoti din tabela elevii care au fost în clasa a 12-a.
Rezolva urmatoarele cerinte:
a) Construieste 5 instante corespunzatoare scenariului prezentat;
b) Scrie, in limbjul de programare studiat, instructiunile prin care vor fi realizate operatiile cerute la începutul anului scolar.
c) Aplica operatiile cerute la începutul anului scolar celor 5 instante construite la cerinta a).
Rezolvare:
COD ELEV |
NUME ELEV |
PRENUME ELEV |
CLASA |
MEDIE GENERALA |
PROMOVAT |
4n |
10 α |
10 α |
2 n |
2 n . 2 n |
1 n |
a
COD ELEV |
NUME ELEV |
PRENUME ELEV |
CLASA |
MEDIE GENERALA |
PROMOVAT |
Ionescu |
Alina | ||||
Popescu |
Dan | ||||
Barbu |
Doris | ||||
Mirica |
Irina | ||||
Moise |
Claudiu |
b)
ORACLE
DELETE FROM superpro
WHERE clasa=12 AND promovat=1;
UPDATE superpro
SET medie=0
WHERE promovat=0
UPDATE superpro
SET clasa=clasa+1, promovat=0, medie=0
WHERE promovat=1;
FOXPRO
USE superpro
DELETE all FOR clasa=12 AND promovat=1
REPLACE medie WITH 0 all FOR promovat=0
REPLACE clasa WITH clasa+1, promovat WITH 0, medie WITH 0 all FOR promovat=1
c)
Cod elev |
Nume elev |
Prenume elev |
Clasa |
Medie generala |
Promovat |
Popescu |
Dan | ||||
Barbu |
Doris | ||||
Mirica |
Irina | ||||
Moise |
Claudiu |
Subiectul nr.24
COD FILM |
TITLU FILM |
ANUL LANSARII |
ACTOR PRINCIPAL |
PREMIUL |
COSTUL REALIZARII |
4 n |
15 α |
4 n |
15 α |
10 α |
5 n . 5 n |
Compania de filme GOLDEN MAYER tine evidenta filmelor realizate de ea, in tabela FILME cu urmatoarea structura:
Esti directorul DIRECTIEI IT din compania GOLDEN MAYER si trebuie sa transmiti managerului câteva situatii.
Rezolva urmatoarele cerinte:
a) Construieste 5 instante corespunzaoare scenariului prezentat;
b )Scrie, in lmbajul de programare studiat, comenzile care sa determine în câte filme a jucat Marlyn Monroe în anul 1959 si care sunt filmele care au obtinut premiul OSCAR; generalizare pentru orice tip de premiu.
c)Precizeaza comenzile prin executia carora determinam:
- care sunt primele 10 filme cele mai " costisitoare ";
- care este costul total pentru realizarea celor 10 filme.
Rezolvare:
a)
Cod film |
Titlu film |
Anul lansarii |
Tom&Jerry | ||
Pe aripile vântului | ||
Cântând în ploaie | ||
Taxi Driver | ||
Niagara |
Actor principal |
Premiul |
Costul realizarii |
OSCAR | ||
Clark Gable |
OSCAR | |
Gene Kelly | ||
Jodie Foster |
OSCAR | |
Marlyn Monroe |
b)
ORACLE
SELECT COUNT(COD_FILM) "Numar filme"
FROM filme
WHERE trim(BOTH ' '
FROM lower(actor_principal)) ='marlyn
SELECT titlu_film
FROM filme
WHERE trim(BOTH ' ' FROM upper(premiu))='OSCAR'
AND trim(BOTH ' ' FROM lower(actor_principal))='marlyn
generalizare
SELECT titlu_film
FROM filme
WHERE premiu IS NOT NULL AND trim(BOTH
' ' FROM lower(actor_principal))='marlyn
FOXPRO
USE filme
CALCULATE
CNT() TO nr_filme FOR lower(alltrim(act_princ))="marlyn
LIST titlu_film
ALL FOR upper(alltrim(premiu))="OSCAR" AND lower(alltrim(act_princ))="marlyn
generalizare
LIST
titlu_film ALL FOR alltrim(lower(act_princ))="marlyn
c)
ORACLE
SELECT titlu_film
FROM filme
WHERE ROWNUM<=10
ORDER BY cost DESC;
FOXPRO
USE filme
USE costisitor
LIST
ORACLE
SELECT SUM(cost) "Cost total"
FROM filme
WHERE ROWNUM<=10
ORDER BY cost DESC;
USE costisitor
CALCULATE SUM(cost) TO x FOR recno()<=10
?x
Subiectul nr.25
Agentia de turism VISIT ROMANIA tine evidenta biletelor de avion solicitate de clienti în tabela BILETE cu urmatoarea structura:
COD BILET |
NUME PASAGER |
PRENUME PASAGER |
DESATINAŢIA |
PREŢ |
DATA ZBOR |
Esti angajatul agentiei. Zilnic esti solicitat de managerul agentiei sa oferi diverse informatii în legatura cu zborurile care se efectueaza.
Rezolva urmatoarele cerinte:
a) Construieste 5 instante corespunzatoare scenariului prezentat; ;
b)Scrie comenzile care calculeaza si afiseaza suma medie realizata în urma vânzarii biletelor în luna decembrie ( suma medie = suma biletelor vândute / nr zile din luna );
c)Prezinta comenzile prin care se afla toate biletele vândute de agentie cu destinatia Paris; generalizare pentru orice oras destinatie.
Rezolvare:
a)
Cod bilet |
Nume pasager |
Prenume pasager |
Ionescu |
Ana |
|
Vladescu |
Mirela |
|
Ivan |
Claudia |
|
Iures |
Irina |
|
Popescu |
Gabriel, |
Destinatia |
Pret |
Data zbor |
Paris |
5 iulie 2008 |
|
New York |
18 august 2008 |
|
Londra |
5 aprilie 2008 |
|
Roma |
12 februarie 2008 |
|
|
1 martie 2008 |
b)
ORACLE
SELECT SUM(pret)/31 "Suma medie"
FROM visit
WHERE TO_NUMBER(TO_CHAR(data_zbor,'MM'))=12;
FOXPRO
USE visit
CALCULATE
SUM(pret) to p FOR
?p/12
c)
ORACLE
SELECT *
FROM visit
WHERE trim(BOTH ' ' FROM
upper(destinatie))='
FOXPRO
LIST
ALL FOR upper(alltrim(destinatie))="
generalizare
ORACLE
ACCEPT oras PROMPT 'Destinatia:'
SELECT *
FROM visit
WHERE trim(BOTH ' ' FROM upper(destinatie))=trim(BOTH ' ' FROM upper(&o));
FOXPRO
ACCEPT 'Destinatia' TO oras
LIST
|