Sunteți pe pagina 1din 75

Modelarea logic a prelucrrilor

Fluxul datelor

prelucrrile (numite n variantele origininale ale DFD procese) exprim paii identificabili pentru utilizator, urmai n efectuarea lucrrii; aceti pai constituie uniti de prelucrare nedecompozabile pe acest nivel; datele memorate sunt tratate difereniat, n funcie de aciunea pe care o suport: pentru actualizri, se menioneaz nemijlocit tablele afectate (n raport cu structura bazei de date definite la modelarea logic) iar pentru consultri, seturile de nregistrri corespunztoare conceptelor i termenilor afereni logicii de business a pasului de prelucrare respectiv; fluxurile pentru care unul dintre puncte nu este menionat reprezint date de intrare, respectiv de ieire.

nlnuirea prelucrrilor

Un anume pas poate fi activat n orice moment n care precondiia sa este verificat.

Unitile logice de prelucrare


reducerea complexitii i izolarea efectelor modificrilor sau coreciilor aduse ulterior cuprinderea detaliilor cerute de implementare este mult mai uoar la nivelul fiecrei ULP erorile sesizate n timpul testrilor vor putea fi mult mai uor localizate i corectate schimbrile n regulile de funcionare vor opera numai n spaiul unei (sau unor) ULP, restul sistemului rmnnd neschimbat

Structurri i restructurri
de fiecare dat cnd este implicat un sistem sau un actor extern (utilizator direct), este necesar crearea unei ULP distincte

Logica problemei
regulile de gestiune restriciile de integritate relaiile de calcul cuprinse n cerinele sistemului logica problemei caracteristic fiecrei ULP este definit informatic sub forma unor aciuni sau acte considerate valide i, n consecin, acceptate i executate - i a regulilor care definesc aceast validitate

Prezentarea
Schimbul de date cu utilizatorul Comenzile pentru utilizator

Schimbul de date cu utilizatorul

Schimbul de date cu utilizatorul

Comenzile pentru utilizator

Datele memorate
Consultrile schem extern sau subschem

Datele memorate
SELECT CAMERE.NrCamera, Etaj, Dotare FROM CAMERE INNER JOIN CAMERE_LIBERE ON CAMERE.NrCamera = CAMERE_LIBERE.NrCamera WHERE LiberaDeLa <= In_IncInterval AND LiberaPanaLa >= In_SfInterval AND CodTip= In_Tip;

Datele memorate
SELECT CAMERE.NrCamera, Etaj, Dotare FROM CAMERE, CAMERE_LIBERE WHERE CAMERE.NrCamera = CAMERE_LIBERE.NrCamera AND LiberaDeLa <= In_IncInterval AND LiberaPanaLa >= In_SfInterval AND CodTip= In_Tip;

Datele memorate
Actualizrile procesare tranzacional

Confruntarea cu baza de date


absena unor cmpuri imposibilitatea de a face asocierile necesare ntre date aflate n table diferite existena de cmpuri care nu sunt folosite n nici o prelucrare

Evaluarea Schimbul de date cu utilizatorul

Evalueaz cazare Datele memorate TARIFE CAZARE


SELECT TARIFARE.TipCamera, In_IncInterval - In_SfInterval AS Nzile, TarifCazare, CamereCerute.NumarCamere, Nzile* TarifCazare* CamereCerute.NumarCamere AS SumaDePlata FROM PERIOADE_TARIFARE INNER JOIN (TARIFARE INNER JOIN CamereCerute ON TARIFARE.TipCamera = CamereCerute.TipCamera) ON PERIOADE_TARIFARE.NrPerioada = TARIFARE.NrPerioada WHERE DataIncepere <= In_IncInterval AND DataTerminare >= In_SfInterval;

Evalueaz cazare Datele memorate TARIFE CAZARE

CASE WHEN (In_IncInterval >= DataIncepere) AND (In_IncInterval < DataTerminare) THEN In_IncInterval ELSE DataIncepere END AS DeLa

Evalueaz cazare Datele memorate TARIFE CAZARE

CASE WHEN (In_SfInterval > DataIncepere) AND (In_SfInterval <= DataTerminare) THEN In_SfInterval ELSE DataTerminare END AS PanaLa

SELECT Tarifare.TipCamera, CASE WHEN (In_IncInterval >= DataIncepere) AND (In_IncInterval < DataTerminare) THEN In_IncInterval ELSE DataIncepere END AS DeLa,
CASE WHEN (In_SfInterval > DataIncepere) AND (In_SfInterval <= DataTerminare) THEN In_SfInterval ELSE DataTerminare END AS PanaLa,

DeLa - PanaLa AS Nzile, TarifCazare, CamereCerute.NumarCamere, Nzile * TarifCazare * CamereCerute.NumarCamere AS SumaDePlata FROM PERIOADE_TARIFARE INNER JOIN (TARIFARE INNER JOIN CamereCerute ON TARIFARE.TipCamera = CamereCerute.TipCamera) ON PERIOADE_TARIFARE.NrPerioada = TARIFARE.NrPerioada WHERE (DataIncepere BETWEEN In_IncInterval And In_SfInterval) OR (DataTerminare BETWEEN In_IncInterval And In_SfInterval) OR (In_IncInterval BETWEEN DataIncepere And DataTerminare) ORDER BY Tarifare.TipCamera, NrPerioada;

WHERE (DataIncepere BETWEEN In_IncInterval And In_SfInterval) OR (DataTerminare BETWEEN In_IncInterval And In_SfInterval) OR (In_IncInterval BETWEEN DataIncepere And DataTerminare)

Efectuarea rezervrii

Efectuarea rezervrii
Schimbul de date cu utilizatorul

Efectuarea rezervrii
Schimbul de date cu utilizatorul

Efectuarea rezervrii
Comenzile pentru utilizator

Efectuarea rezervrii
Date memorate - actualizari

nregistrri n tabla CAMERE_LIBERE naintea rezervrii

124 12/6/2009 10/7/2009


12/6/09 10/7/09
LIBER REZERVARE

124
18/6/09

24/6/09

nregistrri n tabla CAMERE_LIBERE dup rezervare

124 12/6/2009 18/6/2009 124 24/6/2009 10/7/2009

nregistrri n tabla CAMERE_LIBERE naintea rezervrii

124 12/6/2009 10/7/2009


12/6/09 10/7/09
LIBER REZERVARE

DELETE 124

FROM CAMERE_LIBERE 12/6/09 WHERE LiberaDeLa = In_IncInterval 10/7/09 AND LiberaPanaLa = In_SfInterval AND NrCamera INCAMERE_LIBERE dup rezervare nregistrri n tabla (SELECT NrCamera FROM CamereSelectate);
124 12/6/2009 10/7/2009

nregistrri n tabla CAMERE_LIBERE naintea rezervrii

124 12/6/2009 10/7/2009


12/6/09 10/7/09 INSERT INTO CAMERE_LIBERE SELECT CamereSelectate.NrCamera AS NrCamera, LIBER 124 REZERVARE In_SfInterval AS LiberaDeLa, CAMERE_LIBERE.LiberaPanaLa AS24/6/09 LiberaPanaLa 18/6/09 FROM CAMERE_LIBERE INNER JOIN CamereSelectate ON CAMERE_LIBERE.NrCamera = nregistrri n tabla CAMERE_LIBERE dup rezervare CamereSelectate.NrCamera WHERE (CAMERE_LIBERE.LiberaPanaLa) > In_SfInterval) AND (CAMERE_LIBERE.LiberaDeLa < In_IncInterval); 124 24/6/2009 10/7/2009

nregistrri n tabla CAMERE_LIBERE naintea rezervrii

124 12/6/2009 10/7/2009


12/6/09 10/7/09
LIBER REZERVARE

UPDATE CAMERE_LIBERE SET CAMERE_LIBERE.LiberaPanaLa = In_IncInterval 18/6/09 24/6/09 WHERE (CAMERE_LIBERE.LiberaPanaLa > In_SfInterval) AND (CAMERE_LIBERE.LiberaDeLa < In_IncInterval) nregistrri n AND NrCamera IN tabla CAMERE_LIBERE dup rezervare (SELECT NrCamera FROM CamereSelectate);
124 12/6/2009 18/6/2009

124

Proiectarea fizic
Adaptarea la platform

Arhitectura general
Separarea datelor de aplicaie cea mai adecvat schem arhitectural const n separarea sistemului n dou pri: prima, n care se regsesc numai tablele cu date i cea de a doua, care cuprinde restul elementelor, respectiv interogrile, formularele, rapoartele, macro-urile i modulelele de cod. Se ajunge astfel la o baz de date i o baz aplicativ.

Arhitectura general
Ca regul general, aplicaia se construiete n jurul formularelor. Acestea extrag i actualizeaz datele direct din table sau prin intermediul interogrilor. Tot formularele sunt cele care reacioneaz la evenimentele survenite n cursul lucrului, prin declanarea execuiei macro-urilor i a unitilor de program (subrutine i funcii) stocate n module.

Crearea bazei de date

Crearea aplicaiei
Conectarea la baza de date

Crearea aplicaiei
Structurarea aplicaiei

Crearea aplicaiei
Formularul de dirijare a prelucrrilor

Crearea aplicaiei
Formulare de prelucrare

Iniierea unei cereri

Iniierea unei cereri

Iniierea unei cereri

Introducerea datelor
DataI DataF

Tabla temporar TipuriInCerere

Validarea datelor

Validarea datelor

Controlul butoanelor de comand

Efectuarea rezervrii

Solicitantul i titularul

nregistrarea datelor personale

Punerea cererii n ateptare

Evaluare