From: userLIBE@mts.ucs.UAlberta.CA (unknown)
Newsgroups: rec.arts.drwho
Subject: Concerning Again improvements to Clubs Listings
Date: Thu, 20 Aug 92 03:19:09 GMT
Organization: MTS Univ of Alberta     

   Just reintroducing the subject of the Clubs listing
   improvement suggestion box.  Mr thompson (per?) of
   Vancouver has offered his help and maybe others as well.
   See what you think of the below written
 
   Background
 
 
         About one year ago, a problem in a USENET group
 
    surfaced.  In the newsgroup "rec.arts.drwho", many
 
    readers, who consider themselves fans of the BBC serial
 
    Doctor Who, were not aware of any fan clubs apart from
 
    the one in their own area.  The only way a reader would
 
    know about another club in another region was that if
 
    someone from another club would advertise their future 
 
    club activities in the newsgroup.  This led to 
 
    repercussions from other readers who viewed this as a
 
    waste of a posting.  The two problems were:
 
    1) that no one was aware of other fan clubs apart from 
 
       their own,  and
 
    2) that advertising a club meeting or other such funct- 
 
       ions was view as a "waste of bandwidth".
 
         The solution was to create a file system contain- 
 
    ing the relevant information for such an organization.
 
    The information would include :
 
    a) where the organization is located,
 
    b) when the organization meets,
 
    c) who to contact on USENET for furthur information
 
       about their organization,
 
    d) the person who is in charge of the organization.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    Furthur additions for improving the file system included:
 
    e) membership fees charged
 
    f) mailing address
 
    g) the year the organization was founded
 
    This, in turn, created a new problem. Since the data 
 
    file is stored in one place, storage becomes a problem
 
    as the file currently contains 760 bytes by 80 bytes.
 
    Storing such a file in a centralized system may not be
 
    feasible.  The second problem is that of query manage-
 
    ment.  The information is currently centralized because
 
    one user, the writer, has to input the data from users
 
    from other sites.
 
         The solution now being considered is that instead
 
    of one person gathering all the data, people worldwide
 
    can instead input the information on a database.
 
 
    Code
 
 
         These are the considerations going into the code:
 
    a)  Consistency:  keeping the information uniformly
 
                      consistent in all the databases
 
                      involved.  That is structurally
 
                      regulating the information elements
 
                      involved.
 
    b) Heterogenuity: since data models are based differ-
 
                      ently, the information elements 
 
                      should be consistent. 
 
 
 
 
 
 
 
 
 
    c) Compatibility: Keep the transactions and queries
 
                      universal.
 
    d) Efficiency: to facilitate query retrieval.
 
    e) Defining the transactions and the information
 
       elements.
 
    f) Grouping the elements logically.
 
         The information elements are defined for the 
 
    following:
 
    Location: Nation, City, Region, Org_Name
 
    Organization: Org_Name, City, Region, Contact, e-mail,
 
                  leader, year_founded
 
    Mail: Org_Name, Mailing_Address, City, BBS_boards,
 
          Publications
 
    Meeting: Org_Name, Date, Time, Location
 
    A Note, Org_Name is the primary key for both Location 
 
    and Meeting, Contact for Organization, and Mailing_Ad-
 
    dress for mail.  These elements would be 100-string
 
    character types for the below programme.
 
         The program and transaction code is pseudocoded as
 
    follows:
 
    a) The elements:
 
         Name           Type
 
         request        10-string character
 
         key            a logical flag
 
         security       20-string character
 
         finish         a logical flag
 
 
 
 
 
 
 
 
 
        b) The Driver
 
    begin
 
    print("Your options are indicated by the word inside")
 
    print("Inside the square braces.  Do you wish to:")
 
    print("[Add] an organization to the database,")
 
    print("[Change] some information in an organization,")
 
    print("[Delete] an organization, change the name of ")
 
    print("[Contact] or President of Organization, change")
 
    print("the information concerning the meeting ")
 
    print("[location] of the club, or [query] some")
 
    print("information concerning an organization")
 
    print("or [Quit]?")
 
    if (request='Add') then goto add procedure
 
    else if (request='Change') then goto change procedure
 
    else if (request='Delete') then goto delete procedure
 
    else if (request='Contact') then goto contact procedure
 
    else if (request='location') then goto location procedure
 
    else if (request='query') then goto query procedure 
 
    else if (request='quit') then quit program
 
    else print error message and go back to menu 
 
    End /* of Driver */
 
 
    c) The Reminder Procedure
 
    Begin
 
    If key=false then 
 
       Print(" Please enter the information or skip")
 
    Else Print("Please enter information here)
 
    End /* Of reminder Procedure */
 
 
 
 
 
 
   d) The security Procedure /* To keep our intruders */
 
 
    Begin
 
    Print("Enter Security Code")
 
    Read (temp)
 
    If (temp is not security number for the person) then
 
    goto the quit procedure
 
    Else Continue
 
    End /* Of Security */
 
 
   e) The Add Procedure
 
    Begin
 
    Set key to 1
 
    Print ("name of Club?")
 
    Print the reminder
 
    Read (Org_name)
 
    Print ("Name of Nation in which your organization is")
 
    Print ("located")
 
    Print the reminder
 
    Read (Nation)
 
    Print ("The Mailing Address of your Organization?")
 
    Print the reminder
 
    REad (Mailing_Address)
 
    Print ("Who is the Usenet contact for the Organization?")
 
    PRint the reminder
 
    read (Contact)
 
 
 
 
 
 
 
 
 
 
 
    print (" What is your contact's e-mail address ?")
 
    print the reminder
 
    read (e-mail)
 
    print ("Who is in charge of the organization?")
 
    print the reminder
 
    read (leader)
 
    set key to 0
 
    print ("Which City or town is this organization located?")
 
    print the reminder
 
    read (City)
 
    print ("Which State, Province or Territory is this ")
 
    print ("organization is located?")
 
    print the reminder
 
    read (Region)
 
    print ("Which year was this organization founded?")
 
    print the reminder
 
    read (year_founded)
 
    set finish to false
 
    while finish is false do
 
      print ("What BBS boards does the organization run?")
 
      print the reminder
 
      read(BBS_Board)
 
      print ("Are there any more BBSes to add?")
 
      readln (temp)
 
      if temp=yes then finish is false else finish is true
 
 
 
 
 
 
 
 
 
 
 
     print ("Are there any Publications the Organization") 
 
     print ("prints up?")
 
     print the reminder
 
     read ("Publications")
 
     set finish to false
 
     while finish is false do
 
       print( "When does the Organization next meet")
 
       print the reminder
 
       read (Date)
 
       print ("At what time does the Organization meet?")
 
       print the reminder
 
       read (time)
 
       print ("Where will the meeting held at the give time?")
 
       read (Location)
 
       print( "Do you wish to continue?  yes or no")
 
       read (temp)
 
       if temp=yes then finish=false else finish=true
 
      end while
 
    end procedure
 
 
    e) The Change Procedure
 
 
    begin
 
    goto security procedure
 
    Print( "New Organization Name?" ) and set key to 1
 
    print the reminder
 
    read (Org_name)
 
    end Procedure
 
 
 
 
 
 
 
    g) The Delete Procedure
 
 
    begin 
 
    goto security procedure
 
    print ( "Do you want to delete the record from the ")
 
    print ( "database? Enter yes or no" )
 
    read (temp)
 
    if temp=no then goto main menu
 
    else begin
 
         print("Enter the name of the Organization")
 
         read(Org_name)
 
         print("Enter your mailing address")
 
         read (address)
 
         from Organization's Name and Address, drop the 
 
             relevant record
 
         end /* else */
 
      end /* delete */ 
 
 
     h) The COntact Subroutine
 
 
     begin
 
     goto security procedure
 
     Print ("Has a new leader been elected for this Organi-")
 
     Print ("zation? Enter Yes or NO. )
 
     read (temp)
 
     if temp=yes then begin
 
       print("enter new leader's name"),  read (leader)
 
     end if
 
 
 
 
 
 
 
 
    print ("Is there a new contact for the Organization?")
 
    print ("Enter yes or no.")
 
    read (temp)
 
    if temp=yes then begin
 
         print("Enter new name"), read(Contact)
 
         print("Enter new e-mail address"), read(Address)
 
         Print("Have this number person enter a NEW ")
 
         Print("Security Code"), read(Security)
 
    endif
 
    end contact 
 
 
    i) location subroutine
 
 
    begin
 
    goto security procedure 
 
    Set finish=false
 
    While finish is false do
 
         Print ("What is the date of next meeting?")
 
         read (date)
 
         Print ("What are the time for the meeting?")
 
         read (time)
 
         Print("Where is to be held?) 
 
         read (location)
 
         Print ("Are there more entries to come?")
 
         Print ("Enter yes or no")
 
         read (temp)
 
         if temp=yes then finish=false 
 
 
 
 
 
 
 
 
 
         else finish=true
 
    end while
 
    end location
 
 
    j) The Query Procedure
 
 
     Begin
 
     PRint(" Welcome to query area.  The following queries")
 
     Print(" are available.  Organization's Name, City and")
 
     Print(" Nation, Name of contact, e-mail address") 
 
     Print(" The leader of a Club, Publications of")
 
     Print(" Organization, and date, time or location of")
 
     Print(" Organization. Feel free to query now.")
 
     Based on the query, and the information given, a form
 
     with the organization's name as the header will 
 
     appear, except for the date and time part where a list
 
     of Clubs will appear.
 
     End Query Procedure
 
 
     k) The quit Procedure
 
       Simply leave the program.
 
     End of Procedure
 
     End of Code.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    The Database
 
 
         Presently, the file system is centrally located.
 
    As noted, the writer would like to implement a distri-
 
    buted database.
 
         Why Distributed?  People across the world would
 
    use this database to look up information as they please
 
    since a distributed database is a "... set of facilities
 
    which permits end users to ask for, obtain, expediate,
 
    or otherwise manipulate the information elements." (1)
 
    Next question is whether the system should be central-
 
    ized or decentralized.  Or in other words, should this
 
    database be geographically distributed? As well, one
 
    must also consider the reliability, recoverability,
 
    accessability and control of the database. 
 
         If the database were to be centralized, M computers
 
    at one location would have to handle the queries and the
 
    transactions involved handling the M nations involved. 
 
    This would economically unfeasible.  Furthurmore, if
 
    the centralized system crashed, with backup being at the
 
    same site,  recoverability would become impossible,
 
 
 
 
    (1)   p. 244, Chorafas, D.N., Handbook of database manage- 
                                  ment and distributed 
                                  relational databases 
 
 
 
 
 
 
 
 
 
 
 
 
 
    and the database would have to be recreated.
 
         If the database was geographically distributed
 
    to the nations involved, having M computers at M sites,
 
    1 per location and someone in control of the accumulated
 
    file as a backup, the system becomes less expensive, 
 
    since the data is gathered from within the country in 
 
    question. In other words, a geographically distributed
 
    database would make the database more accessible, with
 
    more chance to recover in case of trouble.  This would 
 
    be the more dependible solution.
 
         Futhur issues to be addressed would include growth
 
    of the database, the need for furthur decentralization,
 
    a change of design to account for waste space, structu- 
 
    ring, and effectiveness of the database.
 
 
 
    Future Applications
 
 
         Future Applications of such a DDB might include:
 
    - disaster control
 
    - research at Universities and other institutions
 
    - Business Clubs
 
    - Space research organizations
 
    - Political Organization with similar philosophies
 
      & issues.
 
    And with technology becoming more digital than analog,
 
    DDB like the one described could improve information
 
    management at a high level.