AGREGARE DE FISIERE



1. Colectia de fisiere


Se considera o aplicatie complexa care necesita prelucrarea de fisiere provenind dintr-o structura organizationala arborescenta cu 3 niveluri.
Nivelul ZERO corespunde componentei centrale a organizatiei.
Nivelul UNU corespunde celor N componente, C1, C2, C3, ..., CN legate direct de centru.
Nivelul DOI corespunde celor Mi componente legate direct de componenta Ci de pe nivelul UNU.
Pe acest nivel se afla M1 + M2 + M3 + ...., + MN, componente.
Se considera o organizatie cu centru in Bucuresti, centru ce corespunde nivelului ZERO din structura arborescenta.
La nivelul fiecarui judet exista filiale.
Pe nivelul UNU se gasesc 40 de componente, al caror nume este dat de presucrtarea numelui de judet: AG, AB, BC,..., VR.
Pe nivelul DOI se afla entitatile care culeg date si construiesc fisierele.
Pentru fiecare judet se stabileste numarul FIX de fisiere.

2. Lista de fisiere


Fiecare element de pe nivelul DOI are un nume.
Se defineste un algoritm de construire a numelor de fisiere.
La acronimul judetului se trece secventa numerica xxx cu valorile 001, 002, 003,..., Mi pentru judetul i.
Acest nume este folosit pentru a constri numele de fisiere.
Se construieste o lista de siruri de caractere initializata cu cuvintele care desemneaza numele de fisiere.
Deschiderea de fisiere se efectueaza pentru cele ale caror nume se afla in lista.

3. Trtansmiterea de fisiere


De la nivelul DOI se transmit fisiere spre elementele nivelului UNU.
Spre judete vin fisiere din localitati.
La fiecare judet exista o lisata de fisiere.
Intr-o bucla for() se deschid fisierele.
Fisierele nedeschise lipsesc.
Apare lista fisierelor nedeschise.
Spre nivelul ZERO pleaca numai fisierul concatenat format din fisierele primite de pe nivelul DOI daca:
- sunt toate cele Mi fisiere transmise de la nivelul DOI
- fisierele au inregistrarile cu numarul definit initial.

4. Verificarea fisierelor.


Verificarea fisierelor inseamna:
- la nivelul DSOI fiecare fisier sa aiba numarul de inregistrari stabilit
- la nivelul UNU sa ajunga numarul de fisiere stabilit.
La nivelul DOI se tiparesc fisierele care au numar de inregistrari diferit de numarul stabilit.
La nivelul UNU se tiparesc numele fisierelor lipsa.
Nu se trimit de la nivelul DOI spre nivelul UNU fisierele decat numai daca au numarul articolelor egal cu numarul stabilit.
Nu se trimit fisiere de la nivelul UNU spre nivelul ZERO decat numai daca numarul de fisiere de la centrul Ci este egal cu cel care este stabilit, adica Mi fisiere.

5. Operatii de calcul


Operatiile de calcul la nivelul ZERO se efectueaza daca si numai daca:
- baza de date contine NTOT = M1 + M2 + M3 + ...., + MN, inregistrari
- inregistrarile contin toate campurile
- datele din campuri au fost validate si VERIFICATE si pe nivelurile DOI si UNU se GARANTEAZA ca sunt corecte si complete.