CATEGORII DOCUMENTE |
BAZE DE DATE - PROBLEME REZOLVARE
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 in 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 cateva dezavantaje ale acestuia.
Rezolvare:
Modelul ierarhic pentru situatia prezentata are ca diagrama asociata un arbore in care toate legaturile sunt de tipul 1:N sau 1:1. Nodurile reprezinta entitati, iar arcele reprezinta asocieri intre entitati (relatii). Intr-o structura ierarhica ramificata, entitatii aflate la un nivel ierarhic superior (parinte) ii 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 in aceasta schema;
- apar probleme legate de redundanta datelor;
- apar probleme legate de actualizarea datelor (nu poate fi introdus un anumit tip de inregistrare daca nu exista nicio realizare a tipului de inregistrare parinte).
Subiectul nr.2
Intr-un oras sunt mai multe cluburi sportive. Fiecare club sportiv are instructori care pregatesc tinerii atat pentru sport de performanta cat si pentru sport de intretinere. Tinerii se inscriu la diverse activitati sportive: fie pentru antrenament, fie pentru competitii sportive (concursuri). Activitatile sportive se desfasoara in sali special amenajate.
Cerinte:
a) Realizati modelul retea pentru scenariul de mai sus.
b) Caracterizati modelul retea si enumerati cateva dezavantaje ale acestuia.
Rezolvare:
Modelul retea pentru situatia prezentata are ca diagrama asociata un graf. Nodurile reprezinta entitati, iar arcele reprezinta asocieri intre entitati (relatii). Intrun 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 in diferite activitati cu caracter stiintific in care structurarea este mai importanta decat interogarea.
Subiectul nr.3
O scoala doreste sa tina evidenta desfasurarii olimpiadelor intr-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. In fiecare sediu se afla mai multe departamente. Un departament apartine unui singur sediu. Intr-un departament lucreaza mai multi angajati. Un angajat poate lucra intr-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 in 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 Romania are mai multe regionale. Fiecare regionala dispune de mai multe depouri, gari, agentii de vanzare 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-intors 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 in 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_intors; 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:
LIBRARIE =
EDITURA =
CARTE =
COMANDA =
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:
Intrun oras sunt mai multe librarii. Pentru a oferi clientilor cat 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 in parte (titlu, autor, pret, numar exemplare), precum si suma pe care trebuie sa o achite libraria.
Dupa maparea modelului, pentru entitatea:
LIBRARIE - > Cod_Librarie este cheie primara;
EDITURA -> 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;
COMANDA -> 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
Dandu-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de cate trei instante posibile ale fiecarei entitati
In 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 in care se specifica numele publicatiei, perioada de timp pe care este valabil abonamentul, prin data de inceput si data de sfarsit a abonamentului. Bineinteles ca o persoana se poate abona la mai multe publicatii in 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
CHITANTA_ABONAMENT(nr_chitanta, nume_publicatie, data_inceput, data_sfarsit)
-> 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 |
CHITANTA_ABONAMENT
Nr_ chitanta |
Nume_ publicatie |
Data_inceput |
Data_sfarsit |
Gandul | |||
Atlas | |||
Corpul uman |
Subiectul nr.9
Dandu-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de cate 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 |
tvr@yahoo.com |
|
TVR2 |
Bdul Iuliu Maniu, nr.124, sect.6 |
Tvr2@yahoo.com |
|
PROTV |
Str. Schitu Magureanu, nr.1, sect.1 |
protv@yahoo.com |
RECLAMA
Cod |
Imagine |
Durata |
Tip_reclama |
Ciocolata |
2 min |
publicitate |
|
Detergent |
1 min |
publicitate |
|
Produse cosmetice |
5min |
publicitate |
Subiectul nr.10
Dandu-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de cate 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 in care sunt precizate si numele clientului, prima anuala de plata, numarul de ani pentru care se face asigurarea, anul din care incepe 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 incheiat. 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 |
ram@yahoo.com |
||
Evoda SA |
Bdul Iuliu Maniu, nr.124, sect.6 |
vr2@yahoo.com |
||
Telx SA |
Str. Unirii, nr.1, sect.1 |
ote@yahoo.com |
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 |
ram@yahoo.com |
|||
Savin Ion |
Persoane fizice |
Bdul Iuliu Maniu, nr.124, sect.6 |
vr2@yahoo.com |
|||
Teodor Vasile |
bunuri |
Str. Unirii, nr.1, sect.1 |
ote@yahoo.com |
CONTRACT:
Id_ contract |
Data_inceput |
Data_sfarsit |
Prima_anuala |
Anul_achitarii |
Subiectul nr.11
Dandu-se urmatorul scenariu, identificati entitatile. Pentru fiecare entitate, identificati atributele corespunzatoare, stabiliti optionalitatea acestora si precizati identificatorul unic al fiecarei entitati. Dati exemplu de cate 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 inregistreaza kilometrajul la plecarea si la sosirea in/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, precizandu-se si numele si prenumele, data nasterii, adresa de domiciliu si obligatoriu un numar de telefon mobil, pentru contactare in caz de urgenta. Fiecare cursa efectuata de masinile firmei trebuie sa contina codul de identificare al masinii, data, numarul de kilometri de la inceputul cursei si numarul de kilometri de la sfarsitul 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 |
aris_taxi@yahoo.com |
||
Avantaj Taxi |
Bucuresti |
avantaj_taxi@yahoo.com |
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 isi poate organiza corespondenta (mesajele) in 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, modificand 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_inregistrarii sunt specifice contului utilizatorului. Vom crea o noua entitate CONT cu atributele user_nume, parola si data_inregistrarii ce va avea ca identificator unic atributul user_name.
Atributul varsta din entitatea UTILIZATOR fiind un atribut volatil va fi inlocuit 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. In acest sens, cand mesajul este trimis, utilizatorul este expeditor, iar cand 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 intre 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
In modelul conceptual pentru proiectarea bazei de date a unei scoli exista entitatile ELEV si SCOALA cu urmatoarele liste de atribute:
ELEV
cod_elev |
nume |
varsta |
numele-parintilor |
locul de munca |
clasa |
adresa_ scolii |
numele-dirigintelui |
SCOALA
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, modificand 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 SCOALA. Atributele numele_parintilor si locul de munca au valori multiple si sunt specifice entitatii parinte.
Atributul varsta din entitatea ELEV, fiind un atribut volatil, va fi inlocuit 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 |
PARINTE
nume |
loc de munca |
SCOALA
cod_scoala |
denumire_scoala |
numar_elevi |
numar_clase |
adresa |
ANGAJAT
CNP |
nume |
functie |
c)Relatiile intre entitati sunt urmatoarele:
ELEV - PARINTE relatie 1 : M
SCOALA - ANGAJAT relatie 1 : M
SCOALA - ELEV relatie 1 : M
CLASA -ELEV relatie 1 : M
SCOALA - CLASA relatie 1 : M
Subiectul nr.14
In modelul conceptual pentru proiectarea bazei de date a unei firme de transport marfuri exista entitatile SOFER si MASINA cu urmatoarele liste de atribute :
SOFER
cod_ sofer |
nume |
varsta |
telefon |
adresa |
starea_ masinii |
kilometraj |
MASINA
cod_ masina |
nume_ sofer |
denumire_ marfa |
capacitate_ masina |
cantitate_ marfa |
Un sofer este trimis in 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, modificand 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 MASINA.
Atributul varsta din entitatea SOFER fiind un atribut volatil va fi inlocuit cu atributul data_nasterii.
Entitatea MASINA 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 |
MASINA
cod_masina |
kilometraj |
capacitate _masina |
stare_masina |
data_revizie |
FISA_PONTAJ
data |
MARFA
id_marfa |
denumire |
cantitate |
c) Relatiile intre entitati sunt urmatoarele:
SOFER - MASINA relatie M : M rezolvata cu ajutorul
entiatii
FISA_PONTAJ
MASINA - MARFA relatie 1 : M
SOFER - FISA_PONTAJ relatie 1 : M
MASINA - FISA_PONTAJ relatie 1 : M
Subiectul nr.15
In modelul conceptual pentru proiectarea bazei de date a unei biblioteci exista entitatile CITITOR si CARTE cu urmatoarele liste de atribute :
CITITOR
cod_ cititor |
nume |
varsta |
adresa |
titlul_ cartilor_ imprumutate |
data_ imprumutului |
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, modificand 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_imprumutate 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 varsta din entitatea CITITOR fiind un atribut volatil va fi inlocuit 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) generand 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_ imprumutate |
pret |
an_ aparitie |
numar_ exemplare |
FISA_CITITOR
data_imprumut |
data_restituire |
AUTOR
cod_autor |
Nume |
an_nastere |
DOMENIU
nume |
c) Relatiile intre 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
In 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 in diverse tari. Clentii pot plati costul pachetului cu card sau in numerar.
Cerinte:
1. Analizati descrierile entitatilor propuse si precizati daca respecta regulile de normalizare. Justificati raspunsul.
2 Corectati abaterile de la regulile de normalizare, modificand 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 |
DESTINATIE
data_plecarii |
Tara |
ORAS
nume oras |
FORMA DE PLATA
Tip_plata |
c)Relatiile intre entitati sunt urmatoarele:
TURIST - PACHET TURISTIC relatie M : M rezolvata cu ajutorul entiatii DESTINATIE
DESTINATIE - ORAS relatie 1 : M
PACHET TURISTIC - FORMA DE PLATA relatie 1 : M
TURIST - DESTINATIE relatie 1 : M
PACHET TURISTIC - DESTINATIE 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 saptamana. Nici un angajat nu poate fi solicitat in mai multe ture zilnic. In fiecare saptamana, planificarea turelor se schimba in 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.
ANGAJATI (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 |
PLANIFICARI_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. in 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 |
ANGAJATI (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 in cheia primara id din tabela angajati sau sunt null.
Subiectul nr.19
La cantina unui spital masa este servita in mod diferit. Pentru bolnavii cu regim, in 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. in 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 inregistrari un tabel ca cel din exemplul urmator:
ELEVI
Numar matricol |
Nume |
Prenume |
Adresa |
Data nasterii |
Popescu |
Alin |
Str. Baicului, nr.135 |
a) Construiti, ca in 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 in care au fost create, poza, mediul propice de depozitare, valoare, stare, descriere, data achizitionarii si valoarea la achizitionare.
b) Completati tabelul cu 5 inregistrari.
c) Specificati tipul datelor din fiecare coloana a tabelului.
d) Construiti un scenariu care sa necesite modificarea unei instante;
e) Scrieti in limbajul de programare studiat, instructiunea de creare a tabelului descris la cerinta a).
f) Scrieti in 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 sfarsit |
Constantin Brancusi | ||
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 reprezentand o femeie cu expresie ganditoare si un suras abia schitat; este o pictura in 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 cantaresc 14226 kg | ||
dimensiuni 18,5x14; este pictat in 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)
In 1956, partea inferioara a tabloului "Gioconda" sufera daune serioase in urma unui atentat cu o solutie acida iar, la cateva luni mai tarziu, un vizitator a aruncat in 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 inregistrari un tabel ca cel din exemplul urmator:
ELEVI
Numar matricol |
Nume |
Prenume |
Adresa |
Data nasterii |
Popescu |
Alin |
Str. Baicului, nr.135 |
a) Construiti, ca in 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 in care a fost inregistrat, poza, valoare si compania de asigurari.
b) Completati tabelul cu 5 inregistrari.
c) Specificati tipul datelor din fiecare coloana a tabelului.
d) Construiti un scenariu care sa necesite stergerea unei instante;
e) Scrieti in limbajul de programare studiat, instructiunea de creare a tabelului descris la cerinta a).
f) Scrieti in 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 inregistrare |
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 inregistrare - Sir de caractere
Poza GENERAL(FOX) / BLOB(ORACLE)
Valoare - Numeric
Companie de asigurari - Sir de caractere
d)
Constatand ca in ultimele luni, vasele care sunt construite inainte de 1970 necesita mari cheltuieli cu intretinerea, firma de transport hotaraste sa le vanda.
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 inregistrari un tabel ca cel din exemplul urmator:
ELEVI
Numar matricol |
Nume |
Prenume |
Adresa |
Data nasterii |
Popescu |
Alin |
Str. Baicului, nr.135 |
a) Construiti, ca in 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 inregistrare, 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 inregistrari.
c) Specificati tipul datelor din fiecare coloana a tabelului.
d) Construiti un scenariu care sa necesite modificarea unei instante;
e) Scrieti in limbajul de programare studiat, instructiunea de creare a tabelului descris la cerinta a).
f) Scrieti in limbajul de programare studiat, instructiunea de modificare a unei instante corespunzator cerintei d).
Rezolvare:
a) - b)
Numar de inregistrare |
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 inregistrare - 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)
Intr-o zi, in Piata Iancului, un sofer neatent in trafic, loveste masina instructorului Irimia Claudiu. Elevul si instructorul nu patesc nimic, dar masina este foarte avariata in partea dreapta spate. In service se constata ca nu se mai gaseste culoarea initiala si se decide schimbarea ei alegandu-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 intr-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 inceputul anului scolar, trebuie sa actualizezi campul clasa (daca elevul a promovat) si sa scoti din tabela elevii care au fost in 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 inceputul anului scolar.
c) Aplica operatiile cerute la inceputul 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 cateva situatii.
Rezolva urmatoarele cerinte:
a) Construieste 5 instante corespunzaoare scenariului prezentat;
b )Scrie, in lmbajul de programare studiat, comenzile care sa determine in cate filme a jucat Marlyn Monroe in 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 vantului | ||
Cantand in 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 in tabela BILETE cu urmatoarea structura:
COD BILET |
NUME PASAGER |
PRENUME PASAGER |
DESATINATIA |
PRET |
DATA ZBOR |
Esti angajatul agentiei. Zilnic esti solicitat de managerul agentiei sa oferi diverse informatii in 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 in urma vanzarii biletelor in luna decembrie ( suma medie = suma biletelor vandute / nr zile din luna );
c)Prezinta comenzile prin care se afla toate biletele vandute 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
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 9517
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved