28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Substitut<strong>in</strong>g the composer's name for the ComposerID would be a substantial improvement here. We saw no way of<br />

automatically deduc<strong>in</strong>g which fields of a referenced table are mean<strong>in</strong>gful for the reader of the web page. This<br />

<strong>in</strong><strong>format</strong>ion has to be supplied by additional user <strong>in</strong>put <strong>in</strong> the form of additional <strong>in</strong>dexes on tables; exist<strong>in</strong>g alternate<br />

unique <strong>in</strong>dexes can help the user <strong>in</strong> this process, s<strong>in</strong>ce these <strong>in</strong>dexes usually are created on fields that describe an entry<br />

<strong>in</strong> a way mean<strong>in</strong>gful to a human reader. By enter<strong>in</strong>g additional <strong>in</strong>dexes for tables the user can provide the HTML<br />

generator with <strong>in</strong><strong>format</strong>ion on which fields are ``natural keys'' for that table i. e. the contents of those fields will identify<br />

the entry to the user; e. g. <strong>in</strong> the table Composer, natural keys would be the columns which conta<strong>in</strong> the composer's first<br />

and last name. To give this <strong>in</strong><strong>format</strong>ion, the user would enter an additional <strong>in</strong>dex of type ``A'' (alternate). The generator<br />

uses this <strong>in</strong><strong>format</strong>ion for the key expansion. This <strong>in</strong><strong>format</strong>ion is also used to create more mean<strong>in</strong>gful titles of web pages<br />

<strong>in</strong> the form of : .<br />

In complex cases, the key expansion is done <strong>in</strong> several steps: the meta base table Relationships describes a network of<br />

connections between tables <strong>in</strong> the application which is traversed by the generator us<strong>in</strong>g a graph algorithm until it arrives<br />

at mean<strong>in</strong>gful contents for hypertext fields.<br />

6.3 Associative Entities<br />

In the music database, the <strong>in</strong><strong>format</strong>ion on which artists participated <strong>in</strong> the record<strong>in</strong>g of a piece is stored <strong>in</strong> a table<br />

Performs. This table is an associative entity: it is neccessary for the implementation of the many-to-many relationship:<br />

more than one artist can take part <strong>in</strong> a record<strong>in</strong>g, and each artist can take part <strong>in</strong> more than one record<strong>in</strong>g <strong>in</strong> a particular<br />

role. However, the table Performs is not <strong>in</strong>terest<strong>in</strong>g <strong>in</strong> itself; the reader of the hypertext would prefer to perceive the<br />

<strong>in</strong><strong>format</strong>ion only <strong>in</strong> the form of a list added to the Record<strong>in</strong>g page: this list should directly state the artists tak<strong>in</strong>g part <strong>in</strong><br />

the record<strong>in</strong>g plus their role, not the entries <strong>in</strong> the table Performs that reference this record<strong>in</strong>g. The table Performs<br />

should not be part of the hypertext system <strong>in</strong> the same way that Composer, Piece, Artist, Role and Record<strong>in</strong>g are: we<br />

want the <strong>in</strong><strong>format</strong>ion of artist participance <strong>in</strong> record<strong>in</strong>gs, but we do not want a web page for each entry <strong>in</strong> the table<br />

Performs.<br />

If foreign keys are def<strong>in</strong>ed <strong>in</strong> the application, we can automatically deduce the <strong>in</strong><strong>format</strong>ion of whether an entity is an<br />

associative entity and should be omitted: <strong>in</strong> our prototype no web pages are created for tables that consist only of<br />

foreign keys.<br />

Often <strong>in</strong><strong>format</strong>ion on foreign keys is not supplied with<strong>in</strong> the RDBMS; our experience confirms what [Premerlani<br />

&Blaha 1994] say: ``F<strong>in</strong>d<strong>in</strong>g candidate keys is easy, f<strong>in</strong>d<strong>in</strong>g foreign keys is difficult.''<br />

The declaration of foreign keys is often lack<strong>in</strong>g for reasons of performance, or because legacy RDBMS did not support<br />

the correspond<strong>in</strong>g def<strong>in</strong>itions. Additional user <strong>in</strong>put (deriv<strong>in</strong>g from knowledge of the application doma<strong>in</strong>) can clarify the<br />

situation.<br />

6.4 Group<strong>in</strong>gs and List<strong>in</strong>gs<br />

Readability and accessability of our generated hypertexts have been significantly improved by the <strong>in</strong>troduction of<br />

group<strong>in</strong>gs and list<strong>in</strong>gs which serve as entry po<strong>in</strong>ts to sets of <strong>in</strong>stance web pages [Fig. 2]. Hierarchical group<strong>in</strong>gs and<br />

ordered lists are def<strong>in</strong>ed by special <strong>in</strong>dex types (<strong>in</strong>dicated <strong>in</strong> our meta base by ``G'' and ``L'', resp.). These have to <strong>in</strong>put<br />

by the user.<br />

7 Future Work<br />

Dur<strong>in</strong>g the development of our system, several topics have been postponed to future <strong>in</strong>vestigation. They fall <strong>in</strong>to the two<br />

areas of <strong>format</strong>t<strong>in</strong>g and structural improvements:<br />

7.1 Formatt<strong>in</strong>g Improvements<br />

Treatment of long lists:<br />

<strong>in</strong> cases where an entry <strong>in</strong> a parent table is referenced by many children, the list of the relationship can grow very

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!