Introduction to jBASE What is jBASE? • •
•
•
•
•
• •
•
•
•
•
jBASE is jBASE is a multivalue multivalue database database system. jBASE jBASE was released in 1991 by a small company in the UK, then named James Anthony Consultants,(JAC), later to become !A"# "o$tware %imited. &n 'ecember 1st 1999, !A"# "o$tware %imited and its subsidiaries were acuired 1* by the +##-&" roup A, a "wiss based !an/in0 "o$tware ouse. !A"# is uniue in that it was desi0ned $rom day one to allow the application data to reside in any database not ust its own. !A"# compiles applications to native machine code $orm, rather than to an intermediate byte code. 2t uses the 3C4 compiler to compile code. !A"# is a suite o$ database mana0ement products and dev tools. !A"# provides provides a multidime multidimension nsional al database, database, a dev environment environment includin0 a dev lan0, and a middleware component allowin0 other mainstream and standards5 based products to communicate with the !A"# products. +he uniue uniue #'2 #'2 middle middlewar ware e enable enables s access access to other other databa databases ses such such as &racle, '!6 and "7% "erver. "erver. 8indowsall maor Uni:%inu: plat$orms are supported. +he +he !a !asi sic c lan0 lan0ua ua0e 0e (!C (!C)) is the the trad tradit itio iona nall lan0 lan0ua ua0e 0e $or $or dev develop elopin in0 0 applications in !A"#. !C while loosely based on 'artmouth !asic, has been 0reatly enhanced $or the multidimensional database architecture. 2t also includes inter$ace products, which provide similar capabilities to !C but can be used $rom di$$erent dev environments, called !A"# &b#;. !A"# &b#; provides an inter$ace $rom icroso$tusio >usion, n, etc etc idd iddle lewa ware re 5 ta/e ta/es s so$tware developed in an A'#, (not necessarily !C), and provides the ability to access a database, which may not necessarily be the !A"# database. +he most important part o$ the !A"# middleware component is the #'2, which is a layer o$ so$tware that is used by all 2nput and &utput operations within within the !A"# !A"# system system.. -o matter matter what method method an applic applicati ation on uses uses to acces access s the the !A" !A"# # 2& 2& me mech chan anis ism m the the code code used used is iden identi tica call 'a 'ata taba base se ana0ement "ystem. 2t is a -on >irst -ormal >orm database. database. +his means tables can be embedded embedded within within other tables tables.. +his +his remov removes es the necessity necessity o$ havin0 havin0 to per$or per$orm m the e:tremely resource hun0ry oins o$ the traditional ?elational model. !A"# provid provides es very very e$$icie e$$icient nt support support $or multi5u multi5user ser applic applicati ations ons and includ includes es a comprehensive loc/in0 mechanism.
jBASE Architecture:
+6B
U"#?
!A"#
U-2;
Directory Structure: !A"# has a similar directory structure to that o$ Uni:. bin lib con$i0 tmp spooler
@ @ @ @ @
contains contains contains contains contains
all the e:ecutables all the library $iles !A"# con$i0uration $iles temporary data !A"# spool $iles
Environment Variables: "ome environment variables can only be set be$ore !A"# initialiation. +he !A"# initialiation process reads the environment entries loo/in0 $or possible variables
reuired by !A"#. =ariables are usually con$i0ured in the .pro$ile o$ the user lo0in directory. "ome environment variables can be chan0ed by subseuent pro0ram e:ecution. +he state o$ these variables is imported bac/ into the local environment a$ter pro0ram e:ecution. Setting/etting Environment Variables: variablevalue e:port variable ( e:port variable value) echo Dvariable Initial Environment Variables: J!C?#%#A"#'2? @ !A"# installation directory J!C%&!A%'2? @ path o$ the !A"# con$i0 directory EA+ @ Uni: variable. Eath o$ the e:ecutable $iles o$ Uni: and !A"# %2!EA+ @ !A"# lib directory path in A2; machine. (>or E, "%2!FEA+ and $or others, %'F%2!?A?GFEA+) J!C!A"#+E @ !A"# tmp directory &# @ User4s home directory J#'2>2%#EA+ @ 'irectory Eaths o$ application $iles location J#'2>2%#-A#F' @ path o$ the =&C $ile J#'2>2%#-A#F"G"+# @ "G"+# entry path
E!ecution level Environment Variables : J!C&!J#C+%2"+ @ "et to alternate path(s) $or user subroutine libraries Develo"ment level Environment Variables : J!C'#=F!2- @ "et to alternate path(s) $or catalo0 e:ecutables (Ero0ram dir) J!C'#=F%2! @ "et to alternate path(s) $or catalo0 libraries ("ubroutine dir) #iscellaneous Environment Variables: J!C"E&&%#?'2? @ !A"# spooler directory J!C%2"+>2%# @ path o$ the H"A=#'%2"+"H directory that is used to store select lists
V$% : • •
eans =ocabulary Known as aster dictionary
V$% Entry to logon to &'( )rom jsh *rom"t: J#' =&C + EA #; 'A+A +?A2-##I 'A+A IB61 +ile &y"es : • • • • •
•
#very !A"# $ile has 6 portions L data portion and dict portion 'ata portion @ contains the records 'ict portion @ contains the $ield names and de$initions !A"# supports 6 di$$erent types o$ $iles@ -on5ashed and ashed -on5ashed $iles @ Uni: level directories o Used to store pro0rams o +ype U' o ashed $iles @ "tore and data randomly o 2mprove per$ormance o Used $or data and dict $iles o +ype J or JB o ave modulo, separation and secondary bu$$er o odulo L number o$ $rames, "eparation L sie o$ a $rame, "econdary o !u$$er L sie o$ the secondary bu$$er (de$ault sie @ 1 module sieM 6)
+ype J @ odulo B and "eparation B, 'e$ault sie o$ 1 modulo 16B bytes +ype JB @ odulo B and "eparation B, 'e$ault sie o$ 1 modulo B9 bytes MM A )rame is the basic 2& unit@ ,-- to (.--- bytes dependin0 on the implementation on $S. MM odulo -umber o$ $rames associated with Erimary $ile space %EA&E0+I1E C?#A+#.>2%# NN$ilenameOO +GE#NNoptionOO 8here option U' (non5hashed) , J,JB (ashed) C?#A+#.>2%# +#"+ +GE#JB ,6 B,, JB type $ile named as +#"+ created with dict modulo , dict separation6, bu$$er sie de$ault, data modulo B, data separation , bu$$er sie
2se)ul %ommands: stat @ used to determine the statistics o$ a hashed $ile r$ @ used to resie hashed $iles
dia0 @ used to dia0nose !A"# installation