home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug001.arc / PREFACE.IQS / PREFACE.INS
Text File  |  1979-12-31  |  22KB  |  427 lines

  1. .po0
  2.                           WHA╘ I╙ ┴ DATABAS┼ ANYWA┘ ?
  3.  
  4.      DATABAS┼ managemen⌠ system≤ havσ beeε arounΣ sincσ thσ earl∙ seventies« ì
  5. Onl∙ recently¼ however¼ havσ the∙ starteΣ t∩ becomσ commonl∙ availablσ fo≥ ì
  6. microcomputer≤ anΣ persona∞ computers.
  7.  
  8.      Iε thi≤ article¼ ╔ shal∞ se⌠ ou⌠ t∩ revie≈ wha⌠ databasσ managemen⌠ 
  9. system≤ (DBMS⌐ are¼ wh∙ the∙ camσ int∩ existence¼ thei≥ advantage≤ ove≥ morσ ì
  10. conventiona∞ languages¼ anΣ ho≈ the∙ work«              
  11.  
  12.      MucΦ oµ thσ materia∞ iε thi≤ articlσ wil∞ directl∙ relatσ t∩ data-base≤ ì
  13. II¼ whicΦ i≤ thσ mos⌠ popula≥ micr∩ DBMS¼ althougΦ mucΦ oµ thσ reasoninτ ì
  14. applie≤ equall∙ wel∞ t∩ FMS-80¼ CONDO╥ 20¼ MDBS¼ INFOSTA╥ anΣ othe≥ systems.
  15.  
  16.      Iε orde≥ t∩ understanΣ thσ operatioε oµ databasσ systems¼ i⌠ i≤ necessar∙ ì
  17. firs⌠ oµ al∞ t∩ bσ fimila≥ witΦ thσ underlyinτ concept≤ oµ compute≥ datß file≤ ì
  18. anΣ method≤ oµ orginisinτ datß iε thosσ files.
  19.  
  20.      Datß i≤ simpl∙ ra≈ information¼ I⌠ ma∙ consis⌠ oµ numbers¼ alphanumeriπ ì
  21. strings¼ code≤ o≥ anythinτ elsσ tha⌠ caε bσ representeΣ oε somσ forφ oµ ì
  22. storagσ medium¼ bσ i⌠ tape¼ disδ o≥ magnetiπ bubbles.
  23.  
  24.      I⌠ i≤ importan⌠ t∩ bσ awarσ tha⌠ datß ha≤ n∩ meaning║ readinτ ß secto≥ oµ ì
  25. ß flopp∙ disδ migh⌠ revea∞ thσ datß "DHS,23.56,7691,47,105.54,4002.50"« Wha⌠ ì
  26. doe≤ thi≤ mean┐ A≤ i⌠ stands¼ nothing« I⌠ i≤ onl∙ wheε thσ informatioε i≤ ì
  27. placeΣ iε contex⌠ tha⌠ i⌠ begin≤ t∩ makσ sense« 
  28.  
  29.      Fo≥ example¼ iµ wσ kno≈ tha⌠ thσ secto≥ i≤ par⌠ oµ ß filσ maintaineΣ b∙ ì
  30. aε invoicσ system¼ wσ migh⌠ bσ ablσ t∩ deducσ tha⌠ thσ custome≥ witΦ thσ codσ ì
  31. DH╙ ha≤ ß curren⌠ balancσ oµ $23.5╢ beforσ buyinτ 4╖ oµ produc⌠ codσ 7692¼ anΣ ì
  32. s∩ on.
  33.  
  34.      Noticσ tha⌠ eveε thi≤ informatioε i≤ no⌠ especiall∙ significant« ┴ ì
  35. manage≥ usinτ thσ compute≥ systeφ migh⌠ asδ "Wha⌠ i≤ thσ tradinτ histor∙ oµ ì
  36. DHS┐ Wha⌠ i≤ thei≥ credi⌠ standing?ó AnΣ thσ ra≈ datß i≤ oµ n∩ hel≡ iε thi≤ ì
  37. regard« 
  38.  
  39.      Wheε datß i≤ placeΣ iε context¼ theε i⌠ become≤ informatioε - i⌠ i≤ ì
  40. informative¼ i⌠ tell≤ u≤ something« Ra≈ datß i≤ meaningless.
  41.  
  42.      File≤ arσ simpl∙ collection≤ oµ ra≈ data¼ writteε ont∩ ß storagσ mediuφ ì
  43. b∙ somσ sor⌠ oµ program« Iε general¼ thσ prograφ know≤ wha⌠ ß particula≥ datuφ ì
  44. represent≤ b∙ virtuσ oµ it≤ positioε iε thσ file« Thσ filσ doe≤ no⌠ contaiε ì
  45. information¼ likσ "Thσ mone∙ oweΣ t∩ u≤ b∙ XY┌ Compan∙ i≤ $598.40"« I⌠ doe≤ ì
  46. no⌠ eveε contaiε helpfu∞ reminder≤ likσ "Balancσ ╜ $598.40"« I⌠ simpl∙ ì
  47. contain≤ ß sequencσ oµ ra≈ data¼ likσ 341.87,610.00,598.40.
  48.  
  49.      EacΦ sectioε oµ thσ relateΣ informatioε iε thσ filσ i≤ termeΣ ß record« ì
  50. Takσ ß simplσ inventor∙ file¼ fo≥ example« Thσ datß i⌠ woulΣ neeΣ t∩ storσ ì
  51. migh⌠ bσ produc⌠ code¼ description¼ quantit∙ iε stock¼ bacδ orde≥ quantit∙ anΣ ì
  52. re-orde≥ level« Let'≤ firs⌠ examinσ ho≈ thi≤ filσ migh⌠ bσ createΣ usinτ ì
  53. Microsof⌠ BASIC-8░ ║ 
  54.  
  55.  
  56. è10░ RE═ INVENTOR┘ FIL┼ CREAT┼ FILE
  57. 11░ REM
  58. 12░ RE═ VARIABL┼ DEFINITION
  59. 13░ RE═ Iñ ╜ I─ COD┼                    Dñ ╜ DESCRIPTION
  60. 14░ RE═ Sñ ╜ STOC╦ O╬ HAN─              Bñ ╜ BAC╦ ORDE╥ QUANTITY
  61. 15░ RE═ Rñ ╜ REORDE╥ QUANTITY
  62. 16░ RE═ OPE╬ FILE
  63. 17░ OPE╬ "R",1,"INVENT.DAT"
  64. 18░ FIELD#1,╡ A╙ I$¼ 3░ A╙ D$¼ ▓ A╙ S$,▓ A╙ B$,▓ A╙  R$
  65. 19░ INPU╘ "I─ CODE";I1$
  66. 20░ I╞ Iñ ╜ "ENDó THE╬ 27░ ELS┼ LE╘ Iñ =I1$
  67. 21░ INPU╘ "DESCRIPTION";D1$:LE╘ Dñ ╜ D1$
  68. 22░ INPU╘ "STOC╦ O╬ HAND";S#:LE╘ S$=MKI$(S$))
  69. 23░ INPU╘ "BAC╦ ORDE╥ QTY";B#:LE╘ B$=MKI$(B#)
  70. 24░ INPU╘ "RE-ORDE╥ QUANTITY";R#:LE╘ R#=MKI$(R#)
  71. 25░ PU╘ 1
  72. 26░ GOT╧ 190
  73. 27░ PRIN╘ "ENTR┘ COMPLETED"
  74. 28░ CLOSE:END
  75.  
  76.           Therσ arσ severa∞ point≤ t∩ notσ abou⌠ thi≤ program« Firs⌠ i≤ thσ ì
  77. definitioε oµ thσ variables╗ thesσ definition≤ onl∙ appl∙ withiε thi≤ program« ì
  78. T∩ illustratσ tha⌠ point¼ here'≤ ß prograφ whicΦ wil∞ prin⌠ thσ content≤ oµ ì
  79. thσ samσ file¼ onl∙ i⌠ use≤ totall∙ differen⌠ variablσ names.
  80.  
  81. 10░ RE═ INVENTOR┘ DUM╨ PROGRAM
  82. 11░ REM
  83. 12░ RE═ VARIABL┼ DEFINITIONS
  84. 13░ RE═ Añ ╜ I─ COD┼                    Bñ ╜ DESCRIPTION
  85. 14░ RE═ Cñ ╜ STOC╦ O╬ HAN─              Dñ ╜ BAC╦ ORDE╥ QUANTITY
  86. 15░ RE═ Eñ ╜ RE-ORDE╥ QUANTITY
  87. 16░ RE═ OPE╬ FILE
  88. 17░ OPE╬ "R",1,"INVENT.DAT"
  89. 18░ FIELD#1,╡ A$¼ 3░ A╙ B$¼ ▓ A╙ C$¼ ▓ A╙ D$¼ ▓ A╙ E$
  90. 19░ FO╥ ╔ ╜ ▒ T╧ LOF(1)
  91. 20░   GE╘ 1,I
  92. 21░   Fú ╜ CVI(C$)
  93. 22░   Gú ╜ CVI(D$)
  94. 23░   Hú ╜ CVI(E$)
  95. 24░   PRIN╘ A$;ó  ";B$;F#;ó  ";G#;ó  "H#
  96. 25░ NEX╘ I
  97. 26░ PRIN╘ "EN─ O╞ FILE"
  98. 27░ CLOSE║ END
  99.  
  100.      Iε thi≤ case¼ rathe≥ thaε tryinτ t∩ makσ  variablσ name≤ iε an∙ wa∙ ì
  101. symbolic¼ ╔ simpl∙ useΣ letter≤ froφ ┴ t∩ I« Iµ yo⌡ tr∙ thi≤ pai≥ oµ programs¼ ì
  102. you'l∞ seσ tha⌠ thi≤ make≤ absolutel∙ n∩ differencσ - bu⌠ i⌠ doe≤ makσ i⌠ ì
  103. difficul⌠ fo≥ ß programmer¼ workinτ oε thesσ programs¼ t∩ remembe≥ wha⌠ ì
  104. variablσ namσ refer≤ t∩ wha⌠ iteφ oµ data.
  105.  
  106.      
  107.      Next¼ noticσ thi≤ linσ iε botΦ programs:
  108. 18░ FIELD#1,╡ A$¼ 3░ A╙ B$¼ ▓ A╙ C$¼ ▓ A╙ D$¼ ▓ A╙ E$
  109.  
  110.      è     Thi≤ linσ tell≤ thσ prograφ ho≈ lonτ eacΦ iteφ oµ datß is║ ╡ byte≤ fo≥ ì
  111. thσ produc⌠ I─ code¼ 3░ character≤ fo≥ thσ description¼ ▓ byte≤ fo≥ eacΦ oµ ì
  112. thσ stocδ oε hand¼ bacδ orde≥ anΣ re-orde≥ quantities.
  113.  
  114.      Iµ thσ tw∩ program≤ haΣ differen⌠ FIEL─ statements¼ thσ resul⌠ woulΣ bσ ß ì
  115. disaster¼ a≤ the∙ woulΣ progressivel∙ ge⌠ ou⌠ oµ ste≡ anΣ reaΣ thσ wronτ data« ì
  116. I⌠ i≤ thσ programmer≤ responsibilit∙ t∩ ensurσ tha⌠ program≤ agreσ oε thσ datß ì
  117. layou⌠ oµ shareΣ files« Thi≤ informatioε abou⌠ filσ layou⌠ i≤ no⌠ iε thσ file≤ ì
  118. themselves¼ bu⌠ iε thσ program≤ tha⌠ usσ thσ file≤ -- ß ke∙ point.
  119.  
  120.      EacΦ filσ consist≤ oµ multiplσ records¼ anΣ eacΦ recorΣ contain≤ multiplσ ì
  121. fields¼ a≤ defineΣ b∙ thσ FIEL─ statement« ┴ recorΣ contain≤ ß ß se⌠ oµ ì
  122. relateΣ datß pertaininτ t∩ onσ stocδ item¼ onσ transactioε o≥ whatever« EacΦ ì
  123. fielΣ i≤ onσ iteφ oµ datß withiε tha⌠ recorΣ - aε I─ code¼ quantity¼ balancσ ì
  124. o≥ othe≥ data.
  125.  
  126.           FIL┼ ORGINISATION.
  127.  
  128.      Al∞ file≤ arσ alikσ a≤ fa≥ a≤ thesσ basiπ concept≤ go« However¼ a≤ ou≥ ì
  129. need≤ becomσ morσ realistic¼ i⌠ emerge≤ tha⌠ therσ arσ severa∞ way≤ oµ ì
  130. orginisinτ files« Thσ tw∩ basiπ type≤ oµ filσ orginisatioε arσ sequentia∞ anΣ ì
  131. direct.
  132.      
  133.      Iε sequentia∞ access¼ record≤ arσ accesseΣ iε order¼ froφ thσ beginninτ ì
  134. oµ thσ filσ t∩ thσ end« Iε orde≥ t∩ makσ thi≤ forφ oµ acces≤ morσ acceptable¼ ì
  135. record≤ arσ usuall∙ maintaineΣ iε alphabetiπ o≥ numeriπ orde≥ oε ß ke∙ sucΦ a≤ ì
  136. surnamσ o≥ produc⌠ ID« Becausσ record≤ follo≈ iε sequence¼ the∙ caε sometime≤ ì
  137. var∙ iε length¼ s∩ tha⌠ eacΦ recorΣ start≤ wherσ thσ previou≤ onσ ends¼ ì
  138. typicall∙ erasinτ delimiter≤ sucΦ a≤ comma≤ o≥ carriagσ return≤ t∩ marδ thσ ì
  139. boundarie≤ betweeε eacΦ fielΣ oµ thσ records.
  140.  
  141.      Iε direc⌠ acces≤ files¼ thσ systeφ i≤ ablσ t∩ movσ directl∙ t∩ anΣ reaΣ ì
  142. o≥ writσ an∙ recorΣ iε thσ file« Becausσ thσ computer'≤ operatinτ systeφ mus⌠ ì
  143. bσ ablσ t∩ calculatσ thσ positioε oµ thσ ntΦ record¼ al∞ record≤ MUS╘ bσ thσ ì
  144. samσ fixeΣ length« Thus¼ iµ record≤ arσ ╔ byte≤ long¼ thσ ntΦ recorΣ i≤ ì
  145. positioneΣ    I*(n-1⌐ byte≤ froφ thσ beginninτ oµ thσ file« Direc⌠ acces≤ ì
  146. file≤ ma∙ o≥ ma∙ no⌠ bσ maintaineΣ iε alphabetica∞ order.
  147.  
  148.      Here'≤ ß ver∙ simplσ example« Conside≥ thσ probleφ oµ maintaininτ ß se⌠ ì
  149. oµ debtor'≤ account≤ fo≥ ß smal∞ company« Supposσ wσ havσ 50░ customer≤ anΣ ì
  150. tha⌠ thσ mos⌠ activσ oµ thesσ place≤ order≤ daily¼ whilσ thσ quietis⌠ order≤ ì
  151. monthly« Wσ neeΣ t∩ bσ ablσ t∩ looδ u≡ an∙ customer'≤ balancσ oε demand« 
  152.  
  153. Here'≤ onσ conceivablσ filσ orginisatioε usinτ direc⌠ filσ access:
  154.  
  155. Custome≥ Namσ                           2╡ byte≤ alphanumeric
  156. Stree⌠ Addres≤                          2╡   ó        "
  157. Towε                                    2░   ó        "
  158. Postcodσ                                ┤    ó        "
  159. Orde≥ ▒ descriptioε                     3░   ó        "
  160. Orde≥ ▒ amoun⌠                          ┤    ó    floatinτ point
  161. Orde≥ ▓ descriptioε                     3░   ó    alphanumeric
  162. Orde≥ ▓ amoun⌠                          ┤    ó    floatinτ point
  163. Orde≥ │ descriptioε                     3░   ó    alphanumeric
  164. Orde≥ │ amoun⌠                          ┤    ó    floatinτ poin⌠       cont..>è     .
  165. Orde≥ 2╕ descriptioε                    3░   ó    alphanumeric
  166. Orde≥ 2╕ amoun⌠                         ┤    ó    floatinτ point
  167. -------------------------------------------------------------------
  168. Tota∞ recorΣ lengtΦ                     102╢ bytes
  169. time≤ 50░ account≤                      50▒ Kbytes
  170.  
  171.      That'≤ bigge≥ thaε mos⌠ 13cφ flopp∙ disks« Bu⌠ morσ importantly¼ wel∞ ì
  172. ove≥ halµ thσ spacσ iε thσ filσ i≤ wasted« Thσ vas⌠ majorit∙ oµ customer≤ ì
  173. migh⌠ placσ onl∙ ┤ order≤ ß month¼ whilσ wσ havσ reserveΣ place≤ fo≥ 28« Tha⌠ ì
  174. mean≤ iε man∙ record≤ 81╢ byte≤ werσ wasted« Therσ i≤ ß bette≥ way!!!
  175.  
  176.      AnΣ herσ i⌠ is« Instead¼ wσ havσ onl∙ onσ filσ containinτ thσ namσ anΣ ì
  177. addres≤ informatioε fo≥ eacΦ customer¼ plu≤ ß pointe≥ value¼ whicΦ we'l∞ ì
  178. explaiε iε ß moment« Theε wσ creatσ ß seconΣ file¼ whicΦ contain≤ al∞ thσ ì
  179. orde≥ informatioε fo≥ al∞ thσ customers« EacΦ recorΣ contain≤ thσ orde≥ ì
  180. description¼ anΣ amount¼ plu≤ anothe≥ pointer« Ho≈ d∩ wσ tel∞ whicΦ order≤ arσ ì
  181. fo≥ whicΦ customers┐ That'≤ wherσ thσ pointer≤ comσ in.
  182.  
  183.      No≈ wσ havσ tw∩ files¼ orginiseΣ likσ this:
  184.  
  185. Customer_File.
  186.  
  187. Custome≥ Namσ                           2╡ byte≤ alphanumeric
  188. Stree⌠ Addres≤                          2╡   ó        "
  189. Towε                                    2░   ó        "
  190. Postcodσ                                ┤    ó        "
  191. Pointe≥                                 ▓    ó   binar∙ word
  192. ----------------------------------------------------------------
  193. Tota∞ RecorΣ LengtΦ                     7╢ bytes
  194. time≤ 50░                               3╕ Kbytes
  195.  
  196. Order_File.
  197.  
  198. Orde≥ ▒ descriptioε                     3░   ó        "
  199. Orde≥ ▒ amoun⌠                          ┤    ó    floatinτ point
  200. Pointe≥                                 ▓    ó    binar∙ word
  201. ----------------------------------------------------------------
  202. Tota∞ RecorΣ LengtΦ                     3╢ bytes
  203. Time≤ 500░ orders/montΦ                18░ Kbytes
  204.  
  205.  
  206.      Thσ tota∞ oµ thσ tw∩ i≤ onl∙ 21╕ Kilobytes« No≈ looδ a⌠ Figurσ 1¼ whicΦ ì
  207. show≤ thσ wa∙ thσ pointer≤ work« Thσ pointe≥ fo≥ thσ firs⌠ customer'≤ recorΣ ì
  208. i≤ thσ numbe≥ oµ hi≤ firs⌠ orde≥ recorΣ iε thσ orde≥ file« It'≤ pointer¼ iε ì
  209. turn¼ i≤ se⌠ t∩ thσ numbe≥ oµ hi≤ seconΣ order¼ whicΦ iε thi≤ casσ i≤ thσ ì
  210. thirΣ recorΣ iε thσ orde≥ file« It¼ iε turn¼ chain≤ t∩ thσ fiftΦ recorΣ oµ thσ ì
  211. file.
  212.  
  213.      ┴ simila≥ approacΦ show≤ show≤ tha⌠ thσ seconΣ custome≥ ha≤ placeΣ tw∩ ì
  214. orders¼ locateΣ iε record≤ ▓ anΣ ╢ oµ thσ orde≥ file« Custome≥ numbe≥ threσ ì
  215. ha≤ als∩ placeΣ tw∩ orders.
  216.  
  217.  
  218. è     Now¼ while¼ a⌠ ß stroke¼ wσ havσ saveΣ 30░ kilobyte≤ oµ filσ space¼ wσ d∩ ì
  219. havσ t∩ pa∙ ß price« Firstly¼ althougΦ wσ caε locatσ al∞ order≤ placeΣ b∙ ß  ì
  220. giveε customer¼ wσ canno⌠ finΣ ß custome≥ wh∩ placeΣ ß particula≥ order.
  221.  
  222.      Similarly¼ thσ pointer≤ forφ ß rathe≥ tenuou≤ threaΣ linkinτ variou≤ ì
  223. part≤ oµ thσ filσ systeφ altogether« Iµ an∙ oµ thσ pointer≤ i≤ accidentl∙ ì
  224. damaged¼ ß par⌠ oµ thσ fielΣ i≤ los⌠ t∩ us¼ anΣ witΦ thi≤ simplσ filσ ì
  225. structure¼ therσ i≤ n∩ wa∙ oµ restorinτ i⌠ shor⌠ oµ recreatinτ thσ filσ froφ ì
  226. scratch.
  227.  
  228.      Iε practice¼ ß commercia∞ systeφ woulΣ ge⌠ arounΣ botΦ thesσ objection≤ ì
  229. b∙ providinτ link≤ iε botΦ directions¼ allowinτ tracinτ oµ ß particula≥ orde≥ ì
  230. t∩ ß customer¼ a≤ wel∞ a≤ providinτ redundan⌠ link≤ whicΦ wil∞ enablσ ì
  231. reconstructioε oµ an∙ brokeε pointers.
  232.  
  233.  
  234.      ┴ modificatioε oµ thi≤ techniquσ allow≤ eacΦ recorΣ t∩ contaiε multiplσ ì
  235. pointer≤ iε wha⌠ i≤ calleΣ ß treσ structure« B∙ usinτ trees¼ i⌠ i≤ possiblσ t∩ ì
  236. artificiall∙ overlay¼ say¼ alphabetiπ orderinτ oε aε otherwisσ randoφ file.
  237. 
  238. AT_LAST,_THE_DATABASE.
  239.  
  240.      Unti∞ thσ earl∙ seventies« mos⌠ program≤ werσ writteε usinτ thesσ ì
  241. techniques« However,therσ arσ ß numbe≥ oµ problem≤ associateΣ witΦ thi≤ wa∙ oµ ì
  242. doinτ things.
  243.      
  244.      First¼ datß associateΣ witΦ ß particula≥ amoun⌠ i≤ scattereΣ acros≤ ì
  245. severa∞ files¼ anΣ ofteε canno⌠ bσ accesseΣ withou⌠ knowinτ thσ particula≥ ke∙ ì
  246. (iε thσ examplσ above¼ thσ custome≥ name)« I⌠ i≤ difficul⌠ t∩ worδ ou⌠ wha⌠ ì
  247. data¼ where¼ relate≤ t∩ wha⌠ else¼ anΣ i⌠ i≤ difficul⌠ t∩ creatσ ß se⌠ oµ ì
  248. file≤ anΣ logica∞ filσ structurσ whicΦ meet≤ realistiπ need≤ anΣ ye⌠ i≤ simplσ ì
  249. enougΦ t∩ understand.
  250.  
  251.      Second¼ thσ easies⌠ wa∙ t∩ mee⌠ acces≤ requirement≤ i≤ ofteε jus⌠ t∩ ì
  252. storσ thσ samσ datß repeatedl∙ iε severa∞ files« Thσ resul⌠ i≤ ß lo⌠ oµ ì
  253. expensivσ disδ storage.
  254.  
  255.      Third¼ thσ datß format≤ useΣ b∙ differen⌠ programminτ language≤ anΣ ì
  256. utilitie≤ arσ ofteε imcompatible¼ anΣ a≤ wσ havσ seeε above¼ i⌠ i≤ u≡ t∩ thσ ì
  257. programme≥ t∩ remembe≥ wha⌠ datß goe≤ wherσ anΣ iε wha⌠ format.
  258.  
  259.      Fourth¼ thesσ kind≤ oµ largσ system≤ iε thσ rea∞ worlΣ havσ ß habi⌠ oµ ì
  260. growinτ likσ Topsy« A≤ the∙ d∩ so¼ i⌠ become≤ morσ anΣ morσ difficul⌠ fo≥ thσ ì
  261. programme≥ t∩ remembe≥ al∞ thσ variablσ name≤ anΣ datß format≤ anΣ othe≥ ì
  262. peculiaritie≤ sucΦ a≤ filσ relationships« AnΣ iµ ß filσ structurσ i≤ changed¼ ì
  263. theε al∞ lines¼ iε al∞ program≤ whicΦ usσ thσ filσ mus⌠ als∩ bσ changeΣ - ì
  264. ofteε ß mammotΦ task.
  265.  
  266.      Finally¼ datß iε thσ file≤ i≤  completel∙ ra≈ anΣ ha≤ n∩ meaning╗ wσ ì
  267. canno⌠ tel∞ wha⌠ eacΦ fielΣ represent≤ - eveε iµ wσ caε identif∙ wherσ ß fielΣ ì
  268. begin≤ anΣ ends« Thσ databasσ managemen⌠ systeφ provide≥ ß solutioε t∩ thσ ì
  269. problem.
  270.  
  271.  
  272. è     ┴ DBM╙ completel∙ manage≤ thσ storagσ oµ data¼ witΦ n∩ neeΣ fo≥ thσ use≥ ì
  273. t∩ kno≈ ho≈ i⌠ orginise≤ it« Thσ use≥ need≤ onl∙ t∩ kno≈ ho≈ man∙ byte≤ arσ ì
  274. devoteΣ t∩ ß particula≥ fielΣ (althougΦ hσ caε originall∙ specif∙ this⌐ o≥ ì
  275. wherσ i⌠ i≤ locateΣ iε ß record¼ Hσ neeΣ onl∙ kno≈ tha⌠ ß fielΣ calleΣ namσ ì
  276. contain≤ thσ custome≥ name.
  277.  
  278.      Thi≤ propert∙ i≤ calleΣ datß independence« Iµ ß use≥ decide≤ tha⌠ hσ ì
  279. woulΣ prefe≥ datß presenteΣ iε ß differen⌠ format¼ theε ß simplσ commanΣ t∩ ì
  280. thσ DBM╙ wil∞ resul⌠ iε thσ datß beinτ reformatted« Thi≤ i≤ possiblσ thorougΦ ì
  281. ß uniquσ facilit∙ whicΦ i≤ no⌠ provideΣ iε conventiona∞ prograφ language≤ - ì
  282. tha⌠ is¼ informatioε abou⌠ thσ recorΣ layout¼ includinτ fielΣ names¼ type≤ anΣ ì
  283. sizes¼ i≤ embeddeΣ iε thσ database¼ anΣ i≤ availablσ t∩ al∞ program≤ usinτ it.
  284.  
  285.      Thi≤ informatioε ma∙ bσ storeΣ iε ß separatσ file¼ a≤ iε FMS-8░ o≥ ì
  286. InfoStar¼ o≥ ma∙ bσ storeΣ iε thσ firs⌠ fe≈ hundreΣ byte≤ oµ thσ databasσ ì
  287. itself¼ a≤ dBaseI╔ does« Thσ resul⌠ i≤ tha⌠ thσ use≥ (anΣ hi≤ programs⌐ neeΣ ì
  288. kno≈ nothinτ oµ thσ actua∞ databasσ layout¼ anΣ change≤ t∩ thσ databasσ ì
  289. orginisatioε wil∞ no⌠ effec⌠ thσ runninτ oµ thσ programs.
  290.  
  291.      Tw∩ distinc⌠ classe≤ oµ databasσ system≤ arσ available║ thosσ whicΦ ì
  292. simpl∙ providσ ß sophisticateΣ filσ acces≤ methoΣ sucΦ a≤ TOTA╠ oε mainframe≤ ì
  293. o≥ MBD╙ oε micros╗ anΣ thosσ whicΦ als∩ incorporatσ ß specia∞ languagσ whicΦ ì
  294. ma∙ bσ useΣ t∩ manipulatσ thσ database¼ quer∙ i⌠ anΣ providσ report≤ - sucΦ a≤ ì
  295. FMS-80¼ Condo≥ 2░ anΣ dBaseII.
  296.  
  297.      Withiε eacΦ oµ thesσ groups¼ therσ i≤ ß furthe≥ subdivisioε int∩ tw∩ ì
  298. majo≥ databasσ model≤ ║ heirachica∞ anΣ relational« Thσ heirarchica∞ mode∞ ì
  299. correspond≤ basicall∙ t∩ thσ simplσ examplσ provideΣ iε figurσ 1¼ wherσ eacΦ ì
  300. orde≥ i≤ par⌠ oµ ß lis⌠ whicΦ belong≤ t∩ ß maste≥ record.
  301.  
  302.  
  303.  
  304. ______________________________________________________________________________
  305. ⁿ  NAM┼ ⁿ STREE╘ ⁿ TOW╬ ⁿ P/├ |POINTⁿ NAM┼ ⁿ STREE╘ ⁿ TOW╬ ⁿ P/├ |POINTⁿ ì
  306. NAME>>
  307. ------------------------------------------------------------------------------
  308.     ______<______________<_______ⁿ                                  |
  309.     ⁿ                   ________________<______________<____________|
  310.     ⁿ                   |
  311.     ⁿ                   ⁿ                  ì
  312. __<_________________________<______>
  313. __▀ ì
  314. |___________________|__________________|___________________________________
  315. |DESC||QTY|POINT|DESC||QTY|POINT|DESC||QTY|POINT|DESC||QTY|POINT|DESC||QTY|POI
  316. ------------------------------------------------------------------------------
  317.              |_>_________>____|___ⁿ          ⁿ                     |
  318.                               ⁿ              |____>___________>____|
  319.      RecorΣ 1«                ⁿ                                     
  320.                               |_________>______________________>_t∩ nex⌠ desc>
  321.                 RecorΣ 2.
  322.                                  RecorΣ 3.
  323.  
  324.  
  325.  
  326. è     I⌠ suffer≤ froφ thσ samσ mentioneΣ abovσ ║ tha⌠ al∞ order≤ fo≥ ß ì
  327. particula≥ custome≥ arσ eas∙ t∩ find¼ bu⌠ tha⌠ al∞ customer≤ wh∩ havσ ì
  328. purchaseΣ ß particula≥ produc⌠ arσ difficul⌠ t∩ discover« Note¼ though¼ tha⌠ ì
  329. iµ order≤ werσ choseε t∩ bσ thσ maste≥ filσ whicΦ link≤ t∩ thσ custome≥ file¼ ì
  330. thσ reversσ woulΣ bσ true.
  331.  
  332.      Thi≤ basiπ limitatioε mean≤ tha⌠ thi≤ mode∞ i≤ no⌠ gooΣ enougΦ fo≥ ì
  333. representinτ one-to-man∙ o≥ many-to-man∙ relationships« However¼ fo≥ many-to-ì
  334. onσ relationship≤ (likσ man∙ order≤ t∩ onσ customer)¼ i⌠ i≤ obviousl∙ wel∞ ì
  335. suited.
  336.  
  337.      Thσ relationa∞ model¼ despitσ thσ name¼ ha≤ nothinτ t∩ d∩ witΦ thσ ì
  338. relationship≤ betweeε datß items« Iε fact¼ thσ terφ relatioε i≤ anothe≥ ì
  339. mathematica∞ namσ fo≥ ß table« Conside≥ thσ examplσ belo≈ a≤ ß tablσ :
  340.  
  341.  Cus⌠ N∩   Namσ          Stree⌠              Towε        Postcode
  342. +-----------------------------------------------------------------+
  343. ⁿ C▒     ⁿ J« Browε     ⁿ 1░ Alber⌠ S⌠      ⁿ Mossmaε     ⁿ 208╕   |
  344. +-----------------------------------------------------------------+
  345. ⁿ C▓     ⁿ H« SmitΦ     ⁿ 11┤ Kirδ RΣ       ⁿ Bankstowε  ⁿ 220░   |
  346. +-----------------------------------------------------------------+
  347. ⁿ C│     ⁿ L« WentwortΦ ⁿ 6╖ Bostoε S⌠      ⁿ Sydne∙     ⁿ 200░   |
  348. +-----------------------------------------------------------------+
  349. ⁿ        ⁿ              ⁿ                   ⁿ            ⁿ        |
  350. Cus⌠ N∩   Descriptioε    Amount
  351. +---------------------------------+
  352. ⁿ C▒     ⁿ 2░ Widget≤   ⁿ $85.0░  |
  353. +---------------------------------+
  354. ⁿ C▓     ⁿ 4╡ Grommet≤  ⁿ $1.3╡   |
  355. +---------------------------------+
  356. ⁿ C▒     ⁿ 3░ Widget≤   ⁿ $130.0░ |
  357. +---------------------------------+
  358. ⁿ        ⁿ              ⁿ         |
  359. +---------------------------------+
  360. ⁿ        ⁿ              ⁿ         |
  361.  
  362.  
  363.      B∙ creatinτ tw∩ relations¼ wσ caε vie≈ thσ column≤ a≤ fields¼ anΣ thσ ì
  364. row≤ a≤ records« Thσ record≤ arσ accesseΣ b∙ key╗ iε thi≤ casσ custome≥ ì
  365. number« Thσ relationa∞ mode∞ i≤ purel∙ aε abstrac⌠ mathematica∞ concept¼ anΣ ì
  366. iε practice¼ relationa∞ database≤ havσ t∩ rel∙ upoε pointer≤ anΣ indexe≤ iε ì
  367. orde≥ t∩ physicall∙ construc⌠ thσ database« However¼ i⌠ woulΣ bσ possiblσ t∩ ì
  368. builΣ ß truσ relationa∞ databasσ usinτ ß content≤ addressablσ memory¼ which¼ ì
  369. althougΦ i⌠ i≤ horrendousl∙ expensive¼ i≤ aε approacΦ beinτ investigateΣ b∙ ì
  370. IC╠ fo≥ it≤ nex⌠ generatioε oµ mainframσ computers.
  371.      
  372.      Iε thσ meantime¼ bea≥ iε minΣ tha⌠ therσ i≤ n∩ sucΦ thinτ a≤ ß truσ ì
  373. relationa∞ databasσ runninτ oε microcomputer≤ - a⌠ best¼ ß systeφ wil∞ hidσ ì
  374. thσ pointer≤ whicΦ makσ i⌠ ß heirarchica∞ database¼ bu⌠ usuall∙ macr∩ ì
  375. database≤ simpl∙ providσ datß independence¼ leavinτ i⌠ t∩ thσ use≥ t∩ ì
  376. implemen⌠ pointer≤ a≤ hσ woulΣ iε an∙ language¼ likσ thσ BASI├ examplσ above.
  377.  
  378.  
  379.  
  380. èCommercia∞ DBMSs
  381.  
  382.      Iε thi≤ article¼ thσ discussioε i≤ confineΣ t∩ microcompute≥ softwarσ ì
  383. products¼ s∩ ╔ looδ elsewherσ fo≥ coveragσ oµ mainframσ product≤ sucΦ a≤ TOTA╠ ì
  384. o≥ IBM'≤ IM╙ anΣ DL/1.
  385.  
  386.      Condo≥ Serie≤ 2░ i≤ ß relationa∞ databasσ whicΦ i≤ availablσ iε threσ ì
  387. levels« Thσ ful∞ systeφ offer≤ ß widσ rangσ oµ filσ managemen⌠ anΣ transactioε ì
  388. processinτ capabilities« Likσ mos⌠ macr∩ DBMSs¼ i⌠ include≤ ß repor⌠ ì
  389. generatinτ package.
  390.  
  391.  
  392.      FMS-80¼ froφ System≤ Plus¼ woulΣ havσ t∩ bσ regardeΣ a≤ ß relationa∞ ì
  393. databasσ systeφ iε comparisoε witΦ othe≥ system≤ whicΦ makσ tha⌠ claim¼ bu⌠ ì
  394. it'≤ namσ actuall∙ stand≤ fo≥ Filσ Managemen⌠ System¼ whicΦ i≤ ß mucΦ morσ ì
  395. realistiπ nomenclature« Primaril∙ menu-driven¼ i⌠ incorporate≤ ß datß ì
  396. manipulatioε languagσ calleΣ EFM¼ whicΦ caε bσ useΣ t∩ generatσ extremel∙ ì
  397. sophisticateΣ application≤ indeed.
  398.  
  399.      dBaseI╔ i≤ thσ mos⌠ popula≥ microcompute≥ DBMS« BaseΣ oε ß relationa∞ ì
  400. model¼ i⌠ feature≤ ß rangσ oµ transactioε processinτ anΣ reportinτ ì
  401. capabilities¼ anΣ incorporate≤ it≤ own¼ nameles≤ language« Whilσ data-base≤ ì
  402. incorporate≤ ß numbe≥ oµ sophisticateΣ concepts¼ i⌠ fall≤ dowε iε it≤ actua∞ ì
  403. implementation¼ particularl∙ iε regarΣ t∩ documentation¼ whicΦ simpl∙ omit≤ ì
  404. man∙ feature≤ oµ thσ system« Indeed¼ fo≥ ß lonτ time¼ ╔ wa≤ convinceΣ tha⌠ ╔ ì
  405. mus⌠ bσ missinτ somethinτ abou⌠ thσ package« M∙ selµ confidencσ wa≤ recovereΣ ì
  406. a≤ peoplσ starteΣ pointinτ ou⌠ thσ deficiencie≤ oµ thσ documentation!
  407.  
  408.      MBD╙ i≤ actuall∙ ß superse⌠ oµ thσ heirarchica∞ mode∞ - termeΣ ß networδ ì
  409. databasσ - anΣ i≤ primaril∙ aε acces≤ methoΣ fo≥ usσ froφ withiε othe≥ ì
  410. programs« I⌠ i≤ possibl∙ thσ mos⌠ sophisticateΣ oµ thσ package≤ mentioneΣ ì
  411. here¼ anΣ i≤ certainl∙ thσ mos⌠ complex¼ iµ thσ documentatioε i≤ an∙ ì
  412. indication« I⌠ i≤ als∩ thσ mos⌠ expensivσ DBM╙ packagσ availablσ fo≥ micros.
  413.  
  414.      TI═ III¼ froφ Innovativσ Software¼ run≤ oε botΦ IB═ P├ anΣ CP/M-baseΣ ì
  415. machines« I⌠ i≤ ß men⌡ driveε systeφ witΦ extensivσ hel≡ screens¼ anΣ i≤ onσ ì
  416. oµ thσ simples⌠ system≤ t∩ use.
  417.  
  418.      Man∙ othe≥ databasσ system≤ arσ available¼ botΦ oε macro≤ anΣ mainframes« ì
  419. Howeve≥ thσ basiπ principle≤ remaiε thσ same¼ anΣ the∙ al∞ sharσ tw∩ commoε ì
  420. concept≤ ║ Thσ informatioε abou⌠ filσ structurσ i≤ knowε t∩ al∞ program≤ tha⌠ ì
  421. usσ thσ database¼ anΣ thσ systeφ provide≤ ß repor⌠ generato≥ prograφ whicΦ caε ì
  422. bσ useΣ witΦ virtuall∙ n∩ programminτ knowledge.
  423.  
  424.  
  425.  
  426.                                EN─      PREFACE
  427.