Laboratorium 11 
===============
Lacza nazwane w implementacji prostego systemu zarzadzania baza danych
----------------------------------------------------------------------

1. Kompilacja: wywolaj program `make'

2. Uzytkowanie:
   baza danych (dbms i client)
      - ustalic wartosc zmiennej srodowiskowej DBMSKEY np.
        export DBMSKEY=1234
      - uruchomic serwer bazy danych (`dbms')
      - uruchomic klienta bazy danych (`client')
     Oba programy mozna uruchomic na dwoch sesjach.  Nalezy pamietac by na obu 
     wartosc zmiennej DBMSKEY byla jednakowa; w przeciwnym wypadku procesy
     nie skomunikuja sie.
  
3. Pliki:

   err.c, err.h
   	Obsluga bledow.

   mssg.h
   	Plik naglowkowy biblioteki implementujacej komunikacje na poziomie 
   	strumienia bajtow.

   mssg_fifo.c
   	Biblioteka implementujaca za pomoca laczy nazwanych funkcje 
   	zadeklarowane w `mssg.h'.

   db.h
   	Plik naglowkowy z definicjami potrzebnymi bazie danych.

   db_lib.h
   	Plik naglowkowy biblioteki implementujacej dostep klientow do bazy
   	danych.

   db_lib.c
   	Biblioteka implementujaca funkcje zadeklarowane w `db_lib.h'; 
   	korzysta z funkcji zdefiniowanych w `mssg.h'

   client.c
   	Program klienta; korzysta z funkcji zdefiniowanych w `db_lib.h'.

   dbms.c
   	Program serwera bazy danych.  Korzysta z funkcji zadeklarowanych 
   	w `mssg.h'.

4. Uwagi:
  a) Zwroc uwage na modularna strukture tej implementacji:

     dbms.c				client.c
       	|				   |
       	|                                  |
 	|                       	   | (db_lib.h)
        |                                  |        
	|                                  |
	| (mssg.h)			db_lib.c
        |                                  |
        |                                  |
        |                                  | (mssg.h)
        |                                  |
        |                                  |
    mssg_fifo.c		               mssg_fifo.c


   db_lib.h definiuje polaczenie z baza danych na poziomie rekordow.
   mssg.h   definiuje polaczenie z baza danych na poziomie strumienia bajtow. 

  b) Dzieki modularnej strukturze mozemy bez klopotu podmienic mechanizm
    komunikacji.   W tym celu wystarczy zamienic implementacje biblioteki
    `mssg.h' (teraz `mssg_fifo.c') na inna.
