Sav Z (Web Data) Server:

Object-relational possibilities

Feature of relational database, simple and dynamic table views of the massive data, is known. Structurization and generalization, important distinction of object approach, is possible now and for database systems. This section illustrates benefit of combination both methods.

1. Basic features

Following table is the view of the DS.tab file in the Ex/Basic example directory. First field is used for the target object, next fields - for it's attributes. Call attention how the ../data/page1.html URL reference is specified for the Sav Z Server 1.0 object. The data in the many valued fields is separated by the ',' comma.
Ex/Basic/DS.tab
database system   ; vendor            ; platform            ; query language; price; $WebPage
Sav Z DBMS 2.0    ; Technopoles-M,Anet; Java                ; Z             ; $0099
Sav Z Server 1.0  ; Technopoles-M,Anet; Java                ; Z             ; $0199; "../data/page1.html"
SQL Server 6.5-5  ; Microsoft         ; Win 95,Win 98,Win NT; SQL           ; $1200
SQL Plus 8.0 Win95; Oracle            ; Win 95,Win 98,Win NT; SQL           ; None
First field is properly primary key, it may be coded by numbers #1, #2 , … . For example:
database system; name      ; version
#1             ; Sav Z DBMS; 2.0
Z Server generates browser's interface on the basis of the table data imported into Z database, SavZS1.jpg screenshot.

2. Generalization

Client navigates in database by means of selecting the wanted attribute values. Big list of values, for example prices, complicate matters. It needs to split the above table (DS.tab) into a few parts, for example personal DBMSs (DS1.tab) with price < $199, and DBMS servers (DS2.tab) with price >= $199.
Ex/Advanced/DS0.tab
database; price
personal; "< $199"
server  ; ">= $199"
Ex/Advanced/DS1.tab
database:personal; vendor            ; platform; query language; price; $WebPage
Sav Z DBMS 2.0   ; Technopoles-M,Anet; Java    ; Z             ; $0099
Ex/Advanced/DS2.tab
database:server   ; vendor            ; platform            ; query language; price; $WebPage
Sav Z Server 1.0  ; Technopoles-M,Anet; Java                ; Z             ; $0199; "../data/page1.html"
SQL Server 6.5-5  ; Microsoft         ; Win 95,Win 98,Win NT; SQL           ; $1200
SQL Plus 8.0 Win95; Oracle            ; Win 95,Win 98,Win NT; SQL           ; None
The ':' symbol is used for setting class hierarchy. The objects (key fields) of DS1.tab  and DS2.tab inherit the price attribute of the DS0.tab.

As result Z Server generates another more constructive dialog. The dialog, properly, consists of the 4 phases. Next example images passing to the "../data/page1.html" web page of the Sav Z Server 1.0 database that featured by the ">= $199" price.
1. Chose class of the target objects.
 
database
database:personal
database:server

2. Select source attributes of the target class.
 
database
platform
price
query language
vendor

3. Select values of the source attributes. If need be table of the target objects, select target attributes.
 
Target attributes
database
platform
price
query language
vendor
Source  values
price:
"< $199"
">= $199"
$0099
$0199
$1200
None

4. Choose target object and pass via its URL reference (if possibly).
 
database price
server ">= $199"
server:SQL Plus 8.0 Win95 None
server:SQL Server 6.5-5 $1200
server:Sav Z Server 1.0 $0199

3. Z advantage

Z language simplifies making table files. The table field may be expressed by "= ..." query, "$..." variable, and "...*" abbreviation.

We can import table data that may be showed by distinct ways.

development tool    ; language; platform                 ; feature
Visual Cafe 3.0 DDE ; Java    ; Win 95,Win 98,Win NT     ; visual components
Borland JBuilder 3.0; Java    ; UNIX,Win 95,Win 98,Win NT; visual components
1. Abbreviation
development tool    ; language; platform                 ; feature
Visual Cafe 3.0 DDE ; Java    ; Win 95,Win 98,Win NT     ; visual components
Borland JBuilder 3.0; Java    ; UNIX,Win 95,Win 98,Win NT; vis*
2. Variable
development tool    ; language; platform                    ; feature
Visual Cafe 3.0 DDE ; Java    ; [$p1={Win 95,Win 98,Win NT}]; visual components
Borland JBuilder 3.0; Java    ; UNIX,=$p1                   ; =vis*
3. Query
Suppose following table file was imported into database before.
Ex/Advanced/DT1.tab
development tool    ; vendor   ; price
Visual Cafe 3.0 DDE ; Symantec ; $0540
Borland JBuilder 3.0; Inprise  ; $0299
We can use queries with familier attributes.
Ex/Advanced/DT2.tab
development tool       ; language            ; platform                    ; feature
=(vendor:Symantec)     ; Java                ; [$p1={Win 95,Win 98,Win NT}]; visual components
=(:Inprise, price:$299); =((vendor:Symantec)); UNIX,=$p1                   ; =vis*
Remark that column name defines class context of the field expression. The =(vendor:Symantec) expression of the development tool column will be really =development tool:(vendor:Symantec). The expressions are recognized row by row from left to right.