Need For Help Database Algorithms

From: Raymond Chui <rchui_at_nswc-wo.nswc.navy.mil>
Date: Fri, 5 Mar 1993 20:14:52 GMT
Message-ID: <1993Mar5.201452.12794_at_relay.nswc.navy.mil>


I am writting a X application with Xt/Motif, I have collected some world digital map data from CIA world map data bank. I also wrote a C function read those data and used Xlib(XDrawPoint(....)) function draw into DrawAreaWidget. Well, everything works fine. But one thing I realize is the speed. Everybody knows X is very slow. People use shared memory, shared library, Multi-threads, Multi-processing(with multi CPU's), high speed CPU, fiber optic network, may be in the future use supper-conductor and/or fiber optic computer to increase the speed and the performance.

At the meanwhile, I am writting a program allow me to zoom in/out. I should zoom the digital map start from world level, zoom into country level, zoom into state/province level, zoom into city/county level, zoom into street/building level, zoom into room, ...... You can have unlimit zoom as long you have enough data. I don't care you use all the methods I mention above to increase the speed. But should be a or some better way(s) access the databases.

Just think about that, If you have huge digital world map database, which include all the detailed from bottom of ocean to land, top of mountains. You really don't want to display the city map data when you in the world level. For those people have expriences about CAE/CAD/CAM(Computer Aid Engineering/Design/Manufacture). When have a large drawing, you build in some library files. For example, you build a desk and insert in room drawing file, insert room in building file, ......, insert a country map in world map file. Then everytime you zoom in/out, refresh/redraw window, it take minutes and minutes to regenerateing the graphic. Of course, you insert the library files in different layers, echo off the layers you don't wish to display. But, but if you echo on a layer have large drawing on it, it still takes minutes and minutes to regenerate the data.

What I am thinking is there are must be some computer database algorthms out there. Right now I am divided the world map into 36 grids. 30 degrees latitute/logitute for each grid. each these grid has sub-grids, 5 degrees for each, sub-grid has sub-grid, 1 degee for each, ......., 1 minute for each. Each grid, sub-grid only contains some data files. If you define a rectangle inside the window for zoom in. Then only access certain data files for display, rest of them are not read for display. But I thinking about this, everytime you access a data file, you have to do open_file, read_file, sent_display and close_file. This may not improve the performance.

I am start to study the book Introduction Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. This book talks about Binary Search Trees, Red-Black Trees, B-Trees, ......, etc. If wait for me finish such book and write a database algorithms C program, it may takes me more than one man years. I am sure someone out there must have done something about database algorithms programs or products. I am wonder are there some such programs or products outt there, may be the public domain software in various ftp sites.

Can someone out there tell me where I can find such ftp sites? or products? Can someone out there tell me other book I can read? or tell me some easy database algorithms?

Thanks in the advance.

-- 
Raymond H. Chui
NSWC N62
10901 New Hampshire Ave.
Silver Spring, MD 20903-5000
U.S.A.
Voice:1(301)394-3807 Ext. 45
FAX:1(301)394-4483
EMail:rchui_at_opal.nswc.navy.mil
 _ __                                  _    ,    __
' )  )                           /    ' )  /    /  ) /
 /--' __. , , ____   ______   __/      /--/    /    /_  . . o
/  \_(_(_(_/_/) ) )_(_) /) )_(_(_     /  ( o  (__/ / /_(_/_(_
          /
         '
Received on Fri Mar 05 1993 - 21:14:52 CET

Original text of this message