BAZA DE
DATE
Pentru a putea stoca date am implementat o baza de date relationala
cu ajutorul careia sa pot simula fluxul lucrarilor intr-o institutie. Avand in
vedere faptul ca aceasta baza de date va creste anual cu 14.000 inregistrari si
accesul la ea va fi concurent s-a ales implementarea unei baze de date Oracle.
Diagrama
relationala a bazei de date
Descriere
entitati, atribute, relatii
Operatori
Tabela OPERATORI va retine date referitoare la userii aplicatiei specificand
serviciul din care fac parte si nivelul de securitate.
ID_USER
|
codul utilizatorului (cheie primara)
|
USERNAME
|
numele de login al utilizatorului
|
NUME
|
numele utilizatorului
|
PRENUME
|
prenumele utilizatorului
|
FUNCTIE
|
Functia utilizatorului
|
ID_SERV
|
id serviciului de care apartine(cheie externa)
|
SECURITATE
|
Specifica nivelul de securitate la care are acces
userul
|
-- Create table
create table OPERATORI
(
ID_USER NUMBER not null,
USERNAME VARCHAR2( ),
NUME VARCHAR2( ),
PRENUME VARCHAR2( ),
FUNCTIE VARCHAR2( ),
ID_SERV NUMBER not null,
SECURITATE NUMBER
)
-- Create/Recreate primary, unique
and foreign key constraints
alter table OPERATORI
add primary key
(ID_USER)
using index
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
alter table OPERATORI
add foreign key
(ID_SERV)
references SERVICIU (ID_SERV);
-- Create/Recreate check constraints
alter table OPERATORI
add check (securitate IN
(
Servicii
Tabela „servicii” va retine date despre un serviciile institutiei,
deasemenea se va specifica si seful fiecarui departament.
ID_SERV
|
Id_ul seviciului (cheie primara)
|
NUMESERV
|
Numele serviciului
|
ID_SEF
|
Codul operatorlui care este sef
|
-- Create table
create table SERVICIU
(
ID_SERV NUMBER not null,
NUMESERV VARCHAR2( ),
ID_SEF NUMBER
)
-- Create/Recreate primary, unique
and foreign key constraints
alter table SERVICIU
add primary key
(ID_SERV)
using index
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
Petenti
Entitatea Petenti va retine date despre deponenti lucrarilor sau
proprietarilor imobilelor care fac obiectul lucrarii.
ID_PROP
|
Codul proprietarului sau petentului (cheie
primara)
|
PROP_PETENT
|
Numele proprietarului sau petentului
|
ADRESA_P
|
Adreasa
|
TELEFON
|
Telefon
|
EMAIL
|
Email
|
FAX
|
Fax
|
NR_UNIC
|
Nr unic folosit la insertul datelor
|
-- Create table
create table PROP_PET
(
ID_PROP NUMBER not null,
PROP_PETENT VARCHAR2( ),
ADRESA_P VARCHAR2( ),
TELEFON VARCHAR2( ),
EMAIL VARCHAR2( ),
FAX VARCHAR2( ),
NR_UNIC VARCHAR2( -- Create/Recreate primary, unique
and foreign key constraints
alter table PROP_PET
add primary key
(ID_PROP)
using index
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
Lucrari
In entitatea „Lucrari” se
vor retine informatii despre toate lucrarile intrate in registratura.
NR_INREG
|
Numarul de inregistrare al lucrarii (cheie
primara)
|
DATA_INREG
|
Data inregistrarii lucrarii
|
TIP_LUCRARE
|
Id-ul care specifica tipul lucrarii
|
ID_STARE
|
Specifica daca o lucrare este inregistrata, in
lucru, solutionata,validata de manager, gata pentru eliberare, eliberata
|
ADRESA_IMOBIL
|
Retine adresa imobilului care face obiectul
lucrarii daca este cazul
|
CONTINUT
|
Se descrie pe scurt continutul lucrarii
|
OBSERVATII
|
Se specifica eventualele observatii
|
NR_UNIC
|
Nr folosit de aplic la insert si select
|
NUME_DOC
|
Numele fisierului care retine imaginea sacanata a
lucrarii
|
NUME_DOC_SOLUTIE
|
Numele fisierului care reprezinta solutia
lucrarii
|
-- Create table
create table LUCRARI
(
NR_INREG NUMBER,
DATA_INREG DATE,
TIP_LUCRARE NUMBER,
ID_STARE NUMBER,
ADRESA_IMOBIL VARCHAR2( ),
CONTINUT VARCHAR2( ),
OBSERVATII VARCHAR2( ),
NR_UNIC VARCHAR2(
NUME_DOC VARCHAR2(
NUME_DOC_SOLUTIE VARCHAR2( -- Create/Recreate primary, unique
and foreign key constraints
alter table LUCRARI
add unique (NR_INREG)
using index
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
alter table LUCRARI
add unique (NR_UNIC)
using index
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
Flux
Tabela „flux” este cea mai importanta tabela a fluxului de documente.
In aceasta tabela vor insera date sau vor face update toti utilizatorii
aplicatiei. Practic se determina
cand si cine a rezolvat o anumita lucrare si ce rezolvare a dat. Tot prin
intermediul acestei tabele se pot repartiza lucrarile intre departamente sau intre
operatori. O inregistrare reprezinta este considerata ca fiinsd in lucru daca
starea eu este setata pe 1 iar daca starea ei este 0 atunci lucrarea a fost
deja solutionata.
-- Create table
create table FLUX
(
ID_BORDEROU NUMBER not null,
ID_LUCRARE NUMBER not null,
ID_SERVICIU NUMBER,
OP_REP NUMBER,
DATA_REP DATE,
STARE NUMBER,
L_OP NUMBER,
L_DATA_REP DATE,
AVIZARE CHAR( ),
TIP_REZOLVARE NUMBER,
DATA_AVIZARE DATE,
NOTA_REZOLVARE VARCHAR2( ),
PDF_REZOLVARE VARCHAR2( -- Create/Recreate primary, unique
and foreign key constraints
alter table FLUX
add constraint KEIE primary
key (ID_BORDEROU,ID_LUCRARE)
using index
tablespace USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
-- Create/Recreate check constraints
alter table FLUX
add check (stare in
( ));
alter table FLUX
add check (avizare IN
('A' 'R'
ID_BORDEROU
|
Id-ul borderoului pe care a fost primit lucrarea
pentru solutionare (cheie primara)
|
ID_LUCRARE
|
Id-ul lucrarii care trebuie solutionata (cheie
externa)
|
ID_SERVICIU
|
Codul serviciului care a repartizat lucrarea
(cheie externa)
|
OP_REP
|
codul operatorului care a facut repartizarea
lucrarii (cheie externa)
|
DATA_REP
|
Data la care a fost repartizata lucrarea
|
STARE
|
Starea lucrarii
|
L_OP |
Operatorul care a primit lucrarea in lucru
|
L_DATA_REP
|
Data la care i-a fost repartizata de catre sef
|
AVIZARE
|
Avizare cu admis si respins de catre sef de
serviciu
|
TIP_REZOLVARE
|
Tipul rezolvarii temporara sau definitiva
|
DATA_AVIZARE
|
Data_avizarii lucrarii
|
NOTA_REZOLVARE
|
Justificarea rezolvarii lucrarii
|
PDF_REZOLVARE
|
Fisierul care retine rezolvarea in format *.doc
sau *.pdf
|
TipDosar
Entitatea „TipDosar” va retine
diferitele tipuri de lucrari care vor intra in lucru, pe baza acestor tipuri se
vor stabili termenele de rezolvare pentru ficare lucrare in parte.
De asemenea se va retine daca lucrarea este de tip tehnic sau cerere
urmand ca acestea sa intre pe fluxuri diferite de rezolvare.
-- Create table
create table TIPDOSAR
(
ID_TIP NUMBER not null,
NUME_TIP VARCHAR2( ),
ID_TIPL NUMBER
)
-- Create/Recreate primary, unique
and foreign key constraints
alter table TIPDOSAR
add primary key
(ID_TIP)
using index
tablespace
USERS
pctfree
initrans
maxtrans
storage
(
initial K
minextents
maxextents unlimited
);
ID_TIP
|
Codul tipului lucrarii
|
NUME_TIP
|
Descriere a fiacarui tip
|
ID_TIPL
|
Tip dosar-tehnic sau cerere
|
Relatia
„apartine”
Legatura intre tabelele Operatori si Servicii se realizeaza prin
intermediul relatiei „apartine” care are cardinalitatea 1 la m adica mai multi
operatori apartin unui serviciu.
In acest caz cheia primara din tabela Servicii devine cheie externa in
tabela Operatori.
Relatia „este”
Aceasta relatie defineste legatura dintre
tabelele Lucrari si Tipdosar. Cardinalitatea intre aceste entitati este de m la
1, adica cheia primara din tabela Tipdosar devine coloana in tabela Lucrari.
Relatia
„depune”
Legatura dintre tabelele Lucrari si
Pet_Prop este de cardinalitate 1 la 1, considerandu –se ca un petent depune la
un moment dat o singura lucrare pentru solutionare. In implementarea acestei
relatii s-a folosit in fiecare din cele doua tabele coloana de legatura
nr_unic.
2.2.10. Relatia „inclusa”
Aceasta legatura se realizeaza intre
tabelele Lucrari si Flux avand o cardinalitate de 1 la m. O lucrare poate sa
apara de mai multe ori in flux astfel cheia primara nr_inreg devine coloana in
tabela Flux.