Академический Документы
Профессиональный Документы
Культура Документы
Baza de Date DEPOZIT
Baza de Date DEPOZIT
1. Цель работы
1. Scopul lucrării
Metode de modelare
Elaborarea sistemului informaţional cu baze de date constă din mai multe etape,
principalele dintre care sunt analiza domeniului concret din lumea reală, elaborarea
proiectului (modelarea sistemului) şi realizarea bazei de date fizice în cadrul unui
sistem de gestiune a bazelor de date (SGBD). În acest capitol ne vom preocupa de
elaborarea proiectului logic care nu depinde de softul în cadrul cărora el va fi
realizat.
1
Анализ
Этап анализа предполагает подробное исследование бизнес-процессов (функций, определенных
на этапе выбора стратегии) и информации, необходимой для их выполнения (сущностей, их
атрибутов и связей (отношений)). На этом этапе создается информационная модель, а на
следующем за ним этапе проектирования - модель данных.
2
Notaţia lui J. Martin;
Noi vom folosi o variantă simplă de notaţie, apropriată de cea a lui R. Barker. Vom
aduce în continuare definiţiile necesare.
Colaborator
Exemple: Număr de tabel, Nume, Telefon, Salariu, ... Se înscriu în boxul entităţii:
Colaborator
Număr de tabel
Nume
Data naşterii
Salariu
3
Serveşte drept unicul mijloc de identifiare a exemplarelor entităţii. În entitate pot fi
mai multe chei diferite. Cea care este aleasă pentru identificare unică în procesul
practic se notează prin subliniere
Colaborator
Număr de tabel
Nume
Data naşterii
Adresa
Liniile se trag de la atributul care joacă rolul cheei primare în relaţia părinte spre
atributul care joacă rolul cheei externe (Foreign Key) în relaţia copil. Valorile
cheei primare trebuie se fie cunoscute şi unice, iar valorile cheei externe trebuie să
se conţină printre valorile cheei primare la care se referă prin legătură. Acestea
sunt restricţii obligatorie în modelul relaţional de date care de fapt şi reprezintă
legăturile dintre relaţii.
4
3. Schema logică a bazei de date DEPOZIT
Fie avem de elaborat baza de date pentru o firmă de comerţ angro (cu râdicata).
Începem cu studierea acestui domeniu concret: vorbim cu experţii, citim
documentaţie, studiem documentele de întrare/ieşire. Aici trebuie se clarificăm:
Ce prezintă domeniul concret al lumii reale?
Care este scopurile elaborării?
Care funcţii trebuie să îndeplinească aplicaţia de bază de date?
Ce informaţie trebuie să fie memorată în BD?
5
Fig. 2. ER-диаграмма базы данных DEPOZIT
Ware
Supplier Client
WareId
SupplId Category WareName ClientId
SupplName WareCategory ClientName
SupplPhone CategId WareClass Producer ClientPhone
SupplCity CategName WUnitMeasure ClientCity
CategType ProdId
SupplBankCount WProducer ClientBankCo
.... ProdName
... .... unt
ProdCity
....
ProdCountry
WareInWHouse ....
SupplInvoice WareNumPozition ClientInvoice
SuppInvlId WareId InvClientId
WareHouseId Sales SaleDate
DeliveryDate
SupplId Volume SaleNum ClientId
Deliveries
DeliverySum Price ClientInvId SaleSum
DeliveryNum TVA WareHouseId
WareHouseId WareId
SupplInvId .... …
... WareNumPozition
WareId ...
Volume
Volume
Price
Price
....
.... WareHouse
WareHouseId
WareHouseName
WareHouseCheaf
DepPhone
DepAddress
…
6
4. Schema fizică a bazei de date DEPOZIT
Schema fizică a bazei de date se obţine din schema ei logică prezentată în Fig. 2
reieşind din particularităţile sistemului de programare implementat. În cazul dat va
fi aplicat limbajul de programare C. Deaceea relaţiile şi atributele din ER-diagramă
(modelul logic, Fig. 2) se transformă în tabele şi respectiv câmpuri. În cadrul
limbajului implementat tabelele vor fi memorate în memoria externă în formă de
fişiere cu structura câmpuriliâor specificată.
Mai jos vom specifica structura tabelelor (fişierelor) indicând explicit denumirea
câmpurilor, tipul de date în ele şi lungimea câmpurilor în stricta corespundere cu
cerinţele limbajului C.
Tabelul Furnizori
No. Nume câmp Tip de date Descriere
1 FurnId char(6) Codul (identificatorul) furnizorului. Cheie
primară
2 FurnName char(30) Denumirea furnizorului
3 FurnPhone char(6) Numărul de telefon
4 FurnCity char(30) Nume de oraş
5 FurnCont Char(15) Contul bancar
Tabelul FacturaLivrare
No. Nume câmp Tip de date Descriere
1 FactLivrId char(6) Codul facturei de livrare. Cheie primară
2 Data datetime Data livrării
3 FurnId char(6) Codul furnizorului. Cheie externă
4 LivrareSum decimal(12,2) Suma totală în factură de livrăre
Tabelul Livrari
No. Nume câmp Tip de date Descriere
1 OrdNumber numeric Numărul de rând a livrării de marfă concretă
7
2 FactLivrId char(6) Codul facturei de livrare. Cheie externă
3 MarfaId char(6) Codul marfei. Cheie externă
4 Volume numeric Volumul livrării de marfa dată
5 Price decimal(12,2) Preţul de livrare a marfei dată
4.4. Tabelul Marfa. Conţine informaţie despre toate mărfurile trecute vre-o dată
prin depozit. Mărfurile cu care operează firma dată.
Tabelul Marfa
No. Nume câmp Tip de date Descriere
1 MarfaId char(6) Codul marfei. Cheie primară
2 MarfaName char(30) Denumirea marfei
3 Producator char(30) Firma producator
4.5. Tabelul Depozit. Conţine informaţie despre toate mărfurile trecute vre-o dată
prin depozit. Mărfurile cu care operează firma dată.
Tabelul Depozit
No. Nume câmp Tip de date Descriere
1 NumPoziţie numeric Numărul de poziţie a marfei în depozit
2 MarfaId char(6) Codul marfei. Cheie externă
3 Volume numeric Volumul curent de marfă în depozit
4 Price decimal(12,2) Preţul marfei dată în depozit
Tabelul Vinzari
No. Nume câmp Tip de date Descriere
1 OrdNumber numeric Numărul de rând a vânzării de marfă
concretă
2 FactVinzId char(6) Codul facturei de vînzare. Cheie externă
3 MarfaId char(6) Codul marfei. Cheie externă
4 Volume numeric Volumul vânzării de marfa dată
5 Price decimal(12,2) Preţul de vânzare a marfei dată
8
Tabelul FacturaVinzare
No. Nume câmp Tip de date Descriere
1 FactVinzId char(6) Codul facturei de vânzare. Cheie primară
2 Data datetime Data vânzării
3 ClientId char(6) Codul clientului. Cheie externă
4 VinzareSum decimal(12,2) Suma totală în factură de vânzare
Tabelul Clienti
No. Nume câmp Tip de date Descriere
1 ClientId char(6) Codul (identificatorul) clientului. Cheie
primară
2 ClientName char(30) Denumirea clientului
3 ClientPhone char(6) Numărul de telefon a clientului
4 ClientCity char(30) Nume de oraş
5 ClientCont Char(15) Contul bancar a clientului
5. Sarcini
Sarcini la Figura 1:
9
9. În Fig.1. este dată ER-diagrama bazei de date LIVRARI. Scrieţi comenzile
SQL pentru a calcula sumele totale de livrări pentru fiecare furnizor în
perioada indicată de timp;
10. În Fig.1. este dată ER-diagrama bazei de date LIVRARI. Scrieţi comenzile
SQL pentru a calcula sumele totale de livrări pentru fiecare marfă în
perioada indicată de timp.
Interogări la Fig. 3
Interogări unitabelare:
Lista furnizorilor cu indicaţia conducătorului şi numărul de telefon;
Lista furnizorilor din oraşul dat cu indicaţia conducătorului şi numărul de
telefon;
Lista mărfurilor cu indicaţia categoriei;
Lista mărfurilor cu indicaţia categoriei şi unităţilor de măsură;
Lista producatorilor din fiecare ţară;
Interogări multitabelare:
Lista furnizorilor şi mărfurilor livrate de ei;
Lista furnizorilor şi mărfurilor livrate de ei cu preţurile de livrare;
Lista mărfurilor cu indicaţia categoriei şi producătorului;
10
Categorie
1
CatId
Furnizor Livrare Marfa CatName
1 1 CatAbout
FurnId OrdNum MarfaId
FurnName LivrareDate MarfaName ....
∞ ∞
FurnHeader Furnizor ∞ MarfaCateg
FurnPhone Marfa MafaUnitMeas
FurnCity ∞
MarfaQuantity MarfaProduc
FurnAddress MarfaPrice MarfaAbout Producator
FurnAbout .... .... 1
ProdId
....
ProdName
ProdCountry
ProdAbout
....
11
Sarcini la baza de date DEPOZIT (Figura 2):
12
Запросы к базе данных ДЕПОЗИТ (Рис. 2)
13
Вторая группа запросов
14