Home

95Sep_Kellett - Calhoun: The NPS

image

Contents

1. write 18 B C LIBRARY HEADER FILES INCLUDED The M2DBS code references the seventeen system supplied header files listed below Table 2 Header Files Referenced By MDBS included header files arpa inet h ctype h curses h ermo h fentl h math h ndbm h netdb h netinet in h stdio h strings h sys file h sys socket h sys time h sys types h sys un h time h 19 The configure h header file is the header file that determines library functions the names of symbols the format of data structures and the specification of communication sockets C CONTROLLER AND BACKEND PROCESSES The parallel architecture of M DBS is dependent upon communications There are constant communications going on between the processes running on one workstation and the processes running on different workstations The workstation acting as the controller depends on reliable inter process communications to coordinate the actions of the six processes running concurrently on it Each backend machine depends on reliable inter process communication to coordinate the actions of their six backend processes These Six backend BE processes and six control CNTRL processes are executing continuously while MDBS is running 26827 p0 I 0 00 db11 u mdbs VerE 6 CNTRL sentgpcl out 26829 p0 I 0 00 db11 u mdbs VerE 6 CNTRL scntppcl out 26830 p0 I 0 00 db11 u mdbs VerE 6 CNTRL pp out 2
2. Keyboard input lt ctype h gt File I O com Error handling mdata def dblocal def tstint def extern this_host 5 host_names MaxBack ends 1 M AXPLACE S extern this_host 5 commsg c Handles all the common message types that are sent to none none each task Included in the main program of each task 105 Table 9 A held in common n Dy A module File Name Wei Fert O HAER ee dbigeneralc SALAS General database loading Extracts and puts ai array y data LR lt stdio h gt none into the msg buffer flags def com mdata def dblocal def msg def msg ext dbtmp Database template modifier lt stdio h gt none mod c Creates a database node flags def Extracts user id from request 1d com Assigns database node to the user mdata def dblocal def tmpl def tmpl ext error c Returns error msg when based on switch number from lt stdio h gt none this collection of user error messages com mdata def dblocal def generals c General String Functions lt stdio h gt extern Converts a number to a string of max length of 15 lt sys errno Converts strings to numbers and returns number value time h gt Compare strings and their values flags def Concatenate Strings com Get system time in sec and microseconds mdata def Convert strings to long integer and return value dblocal def Write process id to procname pid msend c Message Send lt stdio h gt
3. NAVAL POSTGRADUATE SCHOOL Monterey California THESIS SUPPORTING THE OBJECT ORIENTED DATABASE ON THE KERNEL DATABASE SYSTEM by Daniel A Kellett Kwon Tae Wook September 1995 Thesis Advisor David K Hsiao Thesis Co Advisor C Thomas Wu Approved for public release distribution is unlimited DIIC QUALITY DNsPEoTeD 1 19960402 152 a nn rr An a THIS DOCUMENT IS BEST QUALITY AVAILABLE THE COPY FURNISHED TO DTIC CONTAINED A SIGNIFICANT NUMBER OF PAGES WHICH DO NOT REPRODUCE LEGIBLY REPORT DOCUMENTATION PAGE PE ies Public reporting burden for this collection of information is estimated to average 1 hour per response including the time reviewing instructions searching existing data sources gathering and maintaining the data needed and completing and reviewing the collection of information Send comments regarding this burden estimate or any other aspect of this collection of information including suggestions for reducing this burden to Washington Headquarters Services Directorate for information Operations and Reports 1215 Jefferson Davis Highway Suite 1204 Arlington VA 22202 4302 and to the Office of Management and Budget Paperwork Reduction Project 0704 0188 Washington DC 20503 1 AGENCY USE ONLY Leave Blank 3 REPORT TYPE AND DATES COVERED September 1995 Master s Thesis 4 TITLE AND SUBTITLE Supporting the Object Oriented Database on the Kernel Database
4. Construct queries from conjunctions lt ctype h gt Build conjunctions flags def Build modifiers com Get Expressions to be performed mdata def Get attribute names and values tstint def Get aggregate operators tstint ext Test Interface Subroutines lt stdio h gt Send msg to use a database flags def Receive the next msg for TI and store it in a buffer dblocal def Handle errors com Request preparation and indicate completion mdata def Assign the proper db to the proper user tstint def tstint ext msg def lt stdio h gt flags def dblocal def Subroutines required for processing traffic units Read in name of traffic unit or response file Determine input file to be used Write traffic unit into the new traffic unit list file com Read traffic unit from input file into buffer mdata def Get traffic units from user and save to TU list file tstint def Prompt for type single request or transaction tstint ext Display all TU s in list file msg def Determine format of output beno def Send TU for execution in MDBS Output or Print results response from MDBS Handle errors in TU s Check if there are unfinished request in MDBS File Description include RENESAS Ti ARE AD VI RTE none extern msg_gq MS GLEN msg_hdr Table 8 Ti Test Interface File Name File Description define tstin
5. lt arpa inet h gt lt sys file h gt lt ndbm h gt lt ctype h gt lt errno h gt lt sys time h gt flags def com mdata def dblocal def msg def beon def pcl def ack def lt stdio h gt flags def com mdata def dblocal def tmpl def tmpl ext lt stdio h gt flags def beno def lt stdio h gt flags def beno def oo PS MLL define MAX ALIASES none none none Table 9 COMMON Files held in common by every module File Name File Description Hinclude define sndrcv c Initiate subroutines Create the connections required for inter process com munications Send messages from one task to another task on the same computer Receive next message for a task Get socket descriptor for receiver Get descriptor for next message to be read Copy header from buffer into msg header Copy header and msg into buffer Denote finish of subroutine Print process names and message types useful in debugging Copy msg from buffer into message header and msg Perform diagnostics on processes utilities c A collection of necessary functions for Opening MDBS files Adding Paths Confirming database Reading templates Creating database information nodes Freeing templates from the template list waitmsg c Waits for I O or a message 109 lt sys types h gt lt sys socket h gt lt netinet in h gt lt errno h gt
6. TRUE num_attr no_cycle To cont TRUE 1f this is a subclass climb hierarchy and build supclasses Following part of the code is never placed if els pee gt 0en supels 1d 0 into the running system code The code 127 supcls ptr cls_ptr gt ocn_first_supcls 1 0 while supcls_ptr no_cycle TRUE while supcls_array 1 0 0 amp amp no_cycle check to see if there is a cycle with this supclass if strcmp supcis_ptr gt osn_name supcls_array i Ho Cyc le FALSE 1 1f no evcle strcpy supcls_array i supcls_ptr gt osn_name make_insert supcls_ptr gt osn_supcls request record _fd trans_fd amp error supcls_array key supcls ptr supclis_ptr gt osn_next_supcls end while supcls y end if cls_ptr gt ocn_supcls build the ABDL insert attr_ ptr cls_ptr gt ocn_first_attr num attr cls_ptr gt ocn_num_attr initialize attr count put class name and OBJECTID in INSERT strcpy request INSERT lt TEMP change class name to first letter caps rest lower case to conform to ABDL strcpy cl cls_ptr gt ocn_name i1f cls_ptr gt ocn_name 0 gt a amp amp cls_ptr gt ocn_name 0 fe ae c1 0 toupper cls_ptr gt ocn_namel0 for i 1 i lt strlen cls_ptr gt ocn_name 41 if cls_ptr gt ocn_name i gt A amp amp cls_ptr gt ocn_name i a UG cl i tolower cls_ptr gt ocn_na
7. a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt Name So far your conjunction is TEMP Name Do you wish to and additional predicates to this conjunction y n gt y 93 ATTRIBUTE lt cr gt to finish gt OID Enter the character for the desired relational operator a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt N9 So far your conjunction is TEMP Name and OID N9 Do you wish to and additional predicates to this conjunction y n gt n Do you wish to append more conjunctions to the query y n gt n By following the prompts and menus the system has built the Delete Request The actual request looks like DELETE TEMP Name and OID N9 e Creating a RETRIVE COMMON Request The Retrieve Common operation consists of two Retrieve operations with a Common clause The common clause specifies an attribute of the record set determined by the first Retrieve operation and an attribute of the record set determined by the second Retrieve operation The clause requires that output of the operation is a set of which is composed of two records one from the first record set and other from the second record set such that these two records have common attribute values for the attributes specified
8. inctude AAA eee Resplength AA AT Ae eh define REQP IIG PP G_PCLC P_PCLC TI DM RECP CC G_PCLB P_PCLB DIO Host TrafUnit CH_RegRes ChH_ Trans Done Get Tmpl ReturnTmpl errReturnT mpl NoOfRegs InTrans AggOps Reqs With Err ParsedTraf Unit RetComNo tification NewDesc BeNo ClusId Req ForNewD escId BC_ Res BC_AO Re S Table 9 COMMON Files held in common by every module msg def Msg types for msgs from RECP to REQP none Rec cont d Changed Msg types for msgs from DM in one backend to DM s Clus in others RetFet Msg types for msgs from DM to RECP Caused ByUpdRes SpaceLeft Msg types for msgs from RECP to DM reqDiskAd drs Msg types for disk I O signals RECP to RECP Changed ClusRes Updins Msg types for msgs from DM to Concur Ctrl BE Fetch Old New Values SrceFin ished PIO_READ Msg types for msgs from Concur Ctrl to DM PIO_WRIT E OLD_REQ Msg types for msgs from RECP to Concur Ctrl TypeC_attrs TrafUnit DidSet sTrafUnit CidsFor Msg types to All Tasks TrafUnit AttrRe alease InsAllAt trsRelease DidSetsRe lease AttrLocked Did SetsLocked CidsLocked Rid OffiniReq NoMoreGe nins 137 UpdFin ished BucketInfo BC_BY_R ES aA AIRES Lab File Nar ame Table 9 CO ES held im common Muay every module Dekar AS msg def Massage best to ALL tasks cont d Catchal
9. gt tsi_str ool_ptr gt oi_kfs_data kfsi_obj koi_attr_values value gt ts1_ next Print TANTI end else i e heading attributes already completed end not FirstAttribute end if FirstAttributeSet else not FirstAttributeSet if strcmp temp 001 ptr gt oi_kfs_data kfsi_obj koi_first_attr PEINE ni s we are back to the first attr name end if OddMark else not OddMark i e end of attribute value if FirstAttributeSet 132 don t print value but store it if strcmp temp File if ool_ptr gt 01_kfs_data kfsi_obj koi_attr_values value temp_str_info_alloc ool _ptr gt ol_kfs_data kfsi_obj koi_attr_values value else value gt tsi_next temp_str_info_alloc value value gt tsl_next strcpy value gt tsi_str temp 1f response 1 CSignal Print f n for j 0 j lt NumCol ANLength NumCol j PEIntE Printi An print first line of values already stored while ool_ptr gt 01_kfs_data kfsi_obj koi_attr_values value ool _ptr gt oi_kfs_data kfsi_obj koi_attr_values write _attr value gt tsi_str ool _ptr gt oi_kfs_data kfsi_obj koi_attr_values value gt tsi_ next else not FirstAttributeSet s value 1f stremp temp File write_attr temp end else not OddMark OddMark OddMark end if response E
10. include lt licommdata h gt include lt ool h gt include flags def o_kernel formatting_system int E 2105 j 0 NumCol 0 int oddMark TRUE int FirstAttribute TRUE int FirstAttributeSet TRUE char response char temp InputCols 1 struct temp_str_info value temp_str_info_alloc ifdef EnExFlag printf Enter o_kernel_formatting_systemin tendif response ool_ptr gt oi_kfs_data kfsi_obj koi_response response skip character in response while response CSignal CSiqnal is temp i response i if response EMARK EMARK is 0 Ti Oe if OddMark end of attribute name if FirstAttributeSet if FirstAttribute strcpy ool_ptr gt oi_kfs_data kfsi_obj koi_first_attr temp FirstAttribute FALSE if stremp temp COMMON write_attr temp print first attr as heading NumCol 131 else if stremp ool_ptr gt oi_kfs_data kfsi_obj koi_first_attr temp write_attr temp print next attr as heading NumCol else heading attributes are already completed Printer ADT FirstAttributeSet FALSE for j 0 j lt NumCol ANLength NumCol j printf printf Ad print first line of values already stored while ool_ptr gt oi_kfs_data kfsi_obj koi_attr_values value ool_ptr gt oi_kfs_data kfsi_obj koi_attr_values write_attr value
11. lt sys time h gt flags def com mdata def dblocal def msg def sndrcv def sndrcv dcl lt stdio h gt flags def com mdata def tmpl def dblocal def lt stdio h gt lt sys types h gt lt sys time h gt flags def com mdata def msg def sndrcv def sndrcv ext lt stdio h gt extern db info head_db_i nfo none Table 9 COMMON Files held im common by every module ALLAN DE lal PY ARE LAA AD gt Ma a PS tv eT AA EN eS E PK TRIO A Ss TALS MIO Zo LRT A File Name E Description nede dele Sa a AF ALR ATER Eh Globalizes variables required for acknowled ements none extern retrans_soc k_get send_ack_s ock recelve_ack _ sock retrns_ sock _ send beno def F Giobaliz s backend numbers none extern NoBack ends BACKEND _NO commdata Common Data Definitions MBDS file area constants none DATA_AR def EA Lengths that many need to be changed HOME MaxPath Length NoBElength MAX_AG_ ATTR MAX_RET R MAX_RTS MFNLength USE RidLength DBIDLNT H TlLength 110 Table 9 COMMON Files held in common by every module File Name File Description define o Common Data Definitions RNLength ANLength AVLength DIL_Attrld commdata def cont d DIL_Descld DIL_ength Maximum sizes entries tracks numbers Max NoReqs MaxCids MAX_FIEL DS RT_ MAX __ ENTRY REQ MAX TYPE C ReqMax DidSets OR_MAX_ Timer Constants D
12. to create every s file The above steps have to be followed from within the database system The system cannot find set records generated using any other method Trying to access set records from outside sources will produce an error message Also note every generated set file s name will be uppercase The system will automatically translate lower case names to uppercase The name of set value must be in uppercase 6 Generate A Records File After executing the generatelmodify set files interface select option r at the next selection menu Option r initiates execution of the generating records files interface The ABDL interface supports the generate records function for the loading of records to the database Records genereated will belong to a file named after the database with an r suffix 1 e for example FACSTU r The generate records file format used in the ABDM interface resembles the template file format The only difference in the two is that the record file generator will ask for data instead of attribute names after receiving the template name The database name will appear at the top of the file followed by an symbol After each template an symbol must be used as a separator between templates The End of File is marked by a symbol An important note when creating a mass load file the system looks for TABS between attribute values in a record or tuple If the spacebar is used between attributes the system will n
13. ATTRIBUTE lt er gt to finish gt OID ATTRIBUTE lt cr gt to fimish gt FNAME ATTRIBUTE lt cr gt to finish gt MI ATTRIBUTE lt cr gt to finish gt LNAME ATTRIBUTE lt cr gt to finish gt Do you wish to use a BY clause Y N n At this point the Retrieve Request has been constructed by the system using the answers given to the prompts provided The request is RETRIE VE TEMP Name OID FNAME MI LNAME c Creating an UPDATE Request The Update operation takes two arguments a query and a modifier The operation is carried out in four steps e Step one the records which satisfy the query are retrieved from the base data This step is like the Retrieve operation e Step two each retrieved record is tagged for later removal This step is also know as writing the deleting tag into a record o Step three the record with the deletion tag is placed on the secondary storage where it originally came from This step is like the Insert operation We note that no record has been physically removed by this operation The removal of record deletion tags is the function of the garbage collecting routine of the system which is carried out in a non prime time periodically Step four for each record to be tagged for deletion this operation makes a copy of the record The copy is changed by the modifier specified by the user The modified copy is then entered into the database by the Insert operation as anew record
14. S 3 18 usr etc automount m f etc auto master 3099 TW 0 00 in tnamed 3188 S 0 00 in rlogind 12390 IW 0 00 usr lib ipd 3102coIW 0 00 csh csh 3113 coIW 0 00 bin csh usr bin X11 xinit 3118 co IW 0 00 usr bin X11 xinit exec usr bin X11 X 3119coS 0 03 usr bin X11 X 0 3120 co IW 0 00 sh u mdbs xinitre 3124coS 0 02 xclock update 1 g 80x80 1 1 3125coS 0 00 xterm g 80x40 1 1 sb sl 150 3126 co IW 0 00 xterm g 80x20 1 1 C sb s1 150 3138 p1 IW 0 00 main 3181 p1 IW 0 00 sh c u mdbs greg CNTRL ti exe 1 3182p1S 0 00 u mdbs greg CNTRL ti exe 1 3189 p2 S 0 00 csh csh 3202p2R 0 00 ps ax Fig A 3 Results of executing the ps ax command 48 db11 u mdbs gt stop cmd stopping processes on back end db11 killing 26827 26828 26829 26830 26831 26832 26833 2683 3118 Fig A 4 Results of the stop cmd command db11 u mdbs gt stop cmd stopping processes on back end db11 killing no processes Fig A 5 Results of the stop cmd command with no MDBS processes running If the stop cmd command is issued and no MDBS processes are running on the system the user will be notified that there are no MDBS processes to kill as shown in FigA 5 3 Perform META DISK Maintenance Upon verification that no extraneous processes are running unless the user wants to use a database already on the system the user must ensure old databases have been removed from the Meta disk This is accomplished by using the alia
15. System 5 FUNDING NUMBERS 6 AUTHOR S Daniel A Kellett and Tae Wook Kwon 8 PERFORMING ORGANIZATION REPORT NUMBER 7 PERFORMING ORGANIZATION NAME S AND ADDRESS ES Naval Postgraduate School Monterey CA 93943 5000 9 SPONSORING MONITORING AGENCY NAME S AND ADDRESS ES 10 SPONSORING MONITORING AGENCY REPORT NUMBER 11 SUPPLEMENTARY NOTES l 7 he views expressed in this thesis are those of the authors and do not reflect the official policy or position of the Department of Defense or the United States Government 12a DISTRIBUTION AVAILABILITY STATEMENT a Approved for public release distribution is unlimited 12b DISTRIBUTION CODE 13 ABSTRACT Maximum 200 words If a single operating system can support multitudes of different programming languages and data structures a database system can support a variety of data models and data languages In this thesis a Kernel Database System KDS supporting classical data models and data languages i e hierarchical network relational and functional is used to support a demonstration object oriented data model and data language This thesis extends previous research by accommodating an object oriented data model and language interface in the KDS Consequently the research shows that it is feasible to use the KDS to support modern data models and languages as well as classical ones This thesis details the KDS desig
16. The old copy 1s marked for later deletion amp 0 Update is a process that uses the Retrieve Delete and Insert processes to allow modification of a particular record and attribute value pair Enter the character for the desired next step 1 INSERT r RETRIEVE u UPDATE d DELETE c RETRIEVE COMMON Select gt u UPDATE Request Enter responses as you are prompted You will be first asked for the predicates necessary to build the query and then the attribute and expression required to construct the modifier When you are finished entering predicates for the query respond to the ATTRIBUTE gt prompt with a lt return gt ATTRIBUTE lt cr gt to finish gt TEMP Enter the character for the desired relational operator a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt Name So far your conjunction is TEMP Name Do you wish to and additional predicates to this conjunction y n gt y ATTRIBUTE lt cr gt to finish gt O D 8i Enter the character for the desired relational operator a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt N9 So far your conjunction Is TEMP Name and OID N9 Do you wish to and additional predicates to this conjunction y n
17. The relational database supports one to one relationships between individuals and records kept for the individuals commonly found in record keeping The hierarchical database supports the multiple layers of one to many relationships commonly found in assemblies their subassemblies their sub subassemblies and so on The network database supports the many to many relationships of supplies and suppliers commonly found between inventories and suppliers The functional database supports the association of rules and facts with inferences commonly found in knowledge base and expert system applications Hsiao Aug 91 pp 3 4 On the other hand the object oriented database does not aim at any particular type or kind of applications It follows an object oriented paradigm in order to group data as an abstraction of some real world entities To properly model the real world entities data should be encapsulated as objects of these real world entities Each object can first be modeled as a separate entity independent of other objects Each object has it s own set of attributes and operations Object oriented constructs are based on the set theory the object oriented operations on set operations The object oriented paradigm combines the idea of inheritance with the idea of encapsulation to form a coherent whole as a class hierarchy Unlike the classical data constructs object oriented construct stores operations and data together Badgett 95 Propon
18. a data file to the backends To use the Mass_Load function the user must first generate a Template file 1 e the t files and a Descriptor file i e the d files using the DDL compiler The compiler will copy the Template and Descriptor files to the backends automatically These files are necessary because they provide the environment that will maintain the relationships between the attribute value pairs When completed the user can then initiate the User_generated Data File selection from the menu This selection is a necessary first step in a hierarchy of steps that will batch load data stored in files to the current backends The user will then observe after selecting User_generated Data File the selection menu has an option M which when selected will process the Mass_Load function Figure 12 is an example of User generated data file produced by the Mass_Load function The data file separates each piece of data with a space and an ampersand symbol FACSTU Name NI dan a kellett N2 taewook k kwon A1 117_mervine_dr monterey ca 93940 A2 397_ricketts_rd monterey ca 93940 Person PI NI Alm P2 N2 A2 m Figure 12 User Generated Data File using Mass_Load 34 The Mass_Load function is a process consisting of four steps First the function will open the User generated data file and check for a match between the database name in the file and the name of t
19. a new interface requires only making minor modifications to the ti c file and the makefiles By following the protocols of the ti c file there is no need for the developer to go beyond TI into the system Once those protocols and constructs are met as they are in all of the other language interfaces the rest of the system will respond Tl is the gateway to the Kernel System An understanding of the system calls library functions communication processes used by the system can aid one s understanding but is not required The developer is only concerned with the protocols and constructs of the TL 41 A SUGGESTIONS FOR FUTURE RESEARCH 1 Develop A More Sophisticated Insert Operation The INSERT operation is the most basic operation of the five database operations available in the KDS Because the INSERT operation will only operate on a single entry and there are no utilities within the system to groups of data the Mass_Load function is provided Using Mass_Load the users can load data from data file in batch mode The INSERT and Mass_Load functions are operational and require no modifications to support an object oriented interface However we believe a more sophisticated INSERT operation needs to be provided that allows multiple inserts in a single session without having to resort to batch processing from a data file 2 Compile The System In C To ease future research and to ease further expansion and implementation of M
20. beginning of the session This file will later be run by et tl t returning to the Subsession menu choosing s rather than n 74 When the r option is picked from the ABDL interface the Request interface menu shown below will be displayed Select a subsession ade Ate s SELECT select traffic units from an existing list or give new traffic units for execution n NEW LIST create a new list of traffic units d NEW DATABASE choose a new database p PERFORMANCE TESTING r REDIRECT OUTPUT select output for answers m MODIFY modify an existing list of traffic units 0 OLD LIST execute all the traffic units in an existing list x EXIT return to previous menu ABDL main menu Refer to the MLDS MBDS user manual before choosing subsessions marked with an asterisk Select gt n We are building a new Request File therefore we choose n The following describes what each selection above is for a s SELECT An option for selecting a file of previously created ABDL requests This option presents a menu for displaying and submitting these requests for processing b n NEW LIST An option for creating a new file of ABDL requests This option presents menus for the creation of a file of INSERT DELETE UPDATE RETRIEVE and RETRIEVE COMMON requests By following the menu correct syntax 1s guaranteed c d NEW DATABASE An option for choosing a new database to work with This o
21. database The attribute value pairs consist of attribute names and corresponding values An attribute value pair is a member of the Cartesian product of the attribute name and the domain of values of the attribute The pair is formed by using a keyword as the first attribute and the value associated with that keyword as the second attribute The keyword serves to form records The keyword is the key for the attribute and the record is a grouping of attribute value pairs The second attribute is the record body consisting of a string of characters which represent information The first attribute value pair must be an identifier of the record type 1 e file name This pair is declared using the reserved word TEMP For example lt TEMP NAME gt lt FIRST Dan gt lt LAST Kellett gt lt TEMP NAME gt lt FIRST Tae Wok gt lt LAST Kwon gt The angle brackets i e lt gt enclose the attribute value pair Parenthesis enclose the entire record The example record consists of three attribute value pairs TEMP 1s always the keyword of the first attribute value pair and the value in this pair is always the name of a file holding the database In the example the name of the file holding these 12 records is NAMES The attribute name is always the first element of the pair Attribute names are always in uppercase No two attribute value pairs can have the same attribute name Keywords must be unique within the record All
22. details how to create these files from within the system The names of the templates and the attributes associated with each template are described to the database system through the template and descriptor files The attribute type and any constraints on attributes will be noted in these files A template name is similar to the name of a 39 relation in a relational database The template file contains the name of the database followed by the number of templates within the database After the number of templates the next number is the number of attributes in the following template The template name is listed followed by the attributes in that template and their respective type i e string integer etc Once all attributes for a template are listed the number of attributes in the next template is listed followed by the next template s name This process is repeated until all the templates and attributes have been listed The following provides the user with a step by step reference for executing the generate the template file operation Remember attribute values have to be in upper case and every value must have no blanks in a single value a Generating A Template File If user picks the t option from the M DBMS selection menu the following is a sample of what the user should be seeing and how the process generates a template file The sample is followed by the results of the process The following is what the user will obs
23. error end do loop end 1f end if odn name is okay if lerror amp amp stremp key printf nERROR missing in error TRUE fclose record_fd fclose trans_fd if no errors insert the records in the database if error insert the records trans fd fopen TransFile r while fscanf trans_fd n request strcmp request n printf Ss n request TI _SSTrafUnit db_ptr gt odn_name request ool _chk_responses_left FALSE TI finish fscanf trans fd S n request fclose trans_fd system rm TransFile end if error insert records 126 end if record open ifdef EnExFlag Printer Exit o_mass_load n fflush stdout endif end o_mass_load called by o_mass_load Builds ABDL inserts traversing inheritance tree If a class is a sub class builds separate INSERTs for each of its super classes using the OBJ_ID value from the root of this branch of the inheritance hierarchy for each class INSERT make_insert cls_ptr request record_fd trans_fd error supcls_array key struct ocls_node cls_ptr char request 1024 supcls_array 10 RNLength 1 key ANLength 1 int error FILE re ord fd trans fd struct oattr_node ate ptr struct o_supcls_node supcls_ptr char attr ANLength 1 c1 RNLength 1 input_line 80 int cont
24. ers m_pr flag pr_flag SRTime Flag LangIF_Fla 8 make_ result Make file specifying order of compilation and where to none none place object code 91 flags def Table 4 COUMEN File Same Era tmpisr c Template subroutines A file srouping 5 funcitons required lt stdio Ko none to flags def Identify the task using this routine dblocal def Create database id dbid com Create a record template for the database dbid mdata def Get number of backends to set beno def Set number of backends msg def Extract userid and dbid msg ext B INSERT INFORMATION GENERATOR Table 5 IfG Insert Information Generator Ele Name File Description define bes c didgen c 118 C Backend Selector Called when a backend returns a clus lt stdio h gt ter id or a null value Determines a backend for record lt sys file h gt insertion when all backends have returned a cluster id or flags def null value Otherwise 1t saves the cluster 1d or null beno def value returned by the backend comm data def tig def dblocal def tmpl def lig ext lt stdio h gt flags def comm data def hig def dblocal def tmpl def lig ext Database ID Generator New Descriptor Generates a new descriptor id for a type c attribute lt stdio h gt lt sys file h gt flags def beno def com mdata
25. mass insert file for that database Error TRUE else correct database name cls ptr db_ptr gt odn_first_cls tscant record fd ss An input_line if stremp input_line error TRUE printf ERROR missing 124 get all the classes in this loop else continu TRUE do not_found TRUE if fscanf record_fd in s in cls_name check for correct while cls_ptr amp amp not_found 1f stremp cls_ name cls_ptr gt ocn_name not Tound FALSE else cis ptr Cle ptr S0cn Next cis if not_found printf n nERROR s is not a class name cls name error TRUE if correct class name insert in request and call make_insert else more _objects TRUE while more_objects reset array to 0 array keeps track of super classes visited to avoid naming same class twice if there is a cycle for 1 0 i lt 10 i supcls_array i 0 O if fscanf record_fd s in key if stremp key more_objects FALSE else if strcmp key more_objects FALSE continu FALSE else make _insert cls_ptr request record_fd trans_fd error supcls_array key y end if lls else error TRUE printf ERROR missing or end while more_objects Ls pers db ptr sodn tirst cls end if correct class name while continu amp amp
26. name then check to ensure the data types match between the template and records files Also make sure that there 1s no blank data between a single attribute value And then user begin this process again 10 20 30 40 50 60 Select an operation u Use a database io Mass load a file of records Exit return to previous menu Select gt The system is now loaded with the user s defined database and is ready for manipulation and use 2 An Example of a Database Loaded on the Backend The database is loaded to the back end Our research used only one backend But the system is designed to have several working in parrallel to speed the search functions in very large databases To see the following enter the UNIX command gape on each workstation that is a backend and you want to view db11 u mdbs gt gape 0000000 Quantum ProODrive 0000016 Diy ae c I 974 al 0000032 h d sec 35 0 0000048 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 0000416 0 0 0 0016 N 003373 10 0 0 10 10 10 0 001 0000432 003 316 o 002 10006 10 0 0101010101010 0000448 0 0 0 0 0 M 0 0 m354 0 0 0 0 0000464 0 003 036 374 a 0 0 0 0 0 0 0 11010010 0000480 0 0 yO SA 0 0 0 0 0 0 0 0 0_ 0 0 323 0000496 0 002 wd 0 0 0 0 O 0 332 276 205 243 0000512 0 0 o io 0 0 0 0 0 0 1010 1010 0 0008192 0317 0033 1N am e N L n i 0008208 s M Ramirez 210034 0008224 ame N2 Bru ees RS 0008240 B a d ett O 031 a me 0
27. none flags def com mdata def dblocal def msg def 106 Table 9 COMMON Files held in common by every module newdb c Creates an entry for a new database lt stdio h gt none flags def com mdata def dblocal def msg def tmpl def tmpl ext newtmpl c Creates an entry for a new template lt stdio h gt none flags def com mdata def dblocal def msg def tmpl def tmpl ext 107 ER ME ARE NES EII TOPE GPE NURS A File Name rt Process Controller Initialize the client putting PCL in BE and Chntrlr Initialize Backends and unique socket Set up paths to controller pele Put message into buffer and send it when a BE wants to talk to the controller Initialize the server creating temporary sockets for braodcast msgs Get messages from off the Ethernet and prioritize Get first message for initialization of BE s Set up socket address IAW host_name and port Broadcast to all other BEs Save host name in backends Close all sockets Do DBM select c Select Database setbeno c Set the Backend number aaa Uber of backends for this task setnobes c Set the number of backends variable in task 108 Table 9 A held in common we bake module Ss EAE E TREATISE Y STEIN rari PTS eL RT Ho EX e pune a ADA n zE PF ESS TUS TOMER eh Ted AOTT EAA AI ERA wan ee MAXAD DRSIZE O HS lt sys types h gt lt sys socket h gt lt netinet in h gt
28. routes the KDM database definition to the LIC The LIC recognizing the KDM database definition as a new definition routes the KDM database definition to the KDS Receiving the KDM database definition causes the KDS to issue appropriate commands to the multibackend database supercomputer controller where a new database is created in the KDM form After creating the new database the KDS notifies the LIC that a new database has been created in the UDM form Data can now be entered Subsequently transactions against the database can be made UDL transactions are written within the LIL and processed through the KMS The KMS performs data language translations by compiling the UDL transactions into equivalent KDL transactions The KMS then routes the compiled KDL transactions to LIC The LIC sends the KDL transaction to KDS for execution The LIC oversees KDL transaction execution The LIC executes the KDL transaction through the TI of the KDS Transaction results and or responses are sent to the LIC which sends them to the KFS The KFS is where the results of a query are reformatted into UDM form The KFS re compile the information in KDM form to UDM form Once the transformation is complete KFS routes the transformed information to the LIL where the user sees the information in the user s data model language form All data in the Multi model Multi Language Database System M2DBS is stored in the Kernel Database System KDS according to the construct
29. sun workstations operating from a Sun 4 110 Work Station db11 contains the user interface and controller software commonly referred to as the front end Work Station db13 contains the storage disks and associated memory management software commonly referred to as the Back ends Work Station db12 is co located in the lab and is available for use as a second back end if the need arrises These resources are dedicated to Database Engineering research These instructions will walk you through how the system is used Before using the system the user must first create all the schema files and construct the optional Request files After creating these the user can begin research within the MDBS system For more detail on the system architecture and on function logic see the related theses listed ir Appendix 1 of this thesis In the following instructions letters in bold represent Prompts Italics represent required entries by the user Before using the system a brush up on vi and emacs is recommended The system does not support XWindows or Lemacs Editing from the system is facilitated by a basic knowledge of Unix text editors To transport files from the system to a personal account elsewhere in Unix requires using FTP procedures The system will not simply copy cp from one terminal to the other Before editing any code remember the program code is complex and weighty Errors introduced into the code by careles
30. to support an object oriented database C THE OBJECTIVES OF THE THESIS This thesis has three objectives First it shows that complex data structures in an object oriented data model can be realized using an attribute based data model which is the kernel data model of the KDS Second it discovers relevant issues when using the KDS to support an object oriented database Third it argues the advantages of using a KDS in the database system design As a by product of these three objectives this thesis also provides appendices on the structure function and operation of the M2DBMS D THESIS ORGANIZATION In Chapter II we present the modern object oriented database model and introduce the features notions and constructs of the object oriented database In Chapter I the design test of an object oriented database in terms of its object oriented specifications 1s also introduced In Chapter II we explain the significance of being able to use the KDS to support an object oriented database by providing an overview of the M2DBMS i e its organization operation and design In Chapter II we also introduce the attribute based data model and Kernel Database structure In Chapter IV we detail the desen of the Kernel Database System and processes In Chapter V we show the Insert operation We also show how the KDS maps an object oriented database to an equivalent attribute based database In Chapter V we analyze our experience on u
31. user can start the execution of the ABDM interface by selecting the option a from the first menu selection screen The first selection screen will look like Fig A 9 The ABDM interface does not require the use of a schema file or request file In the kernel data model the system uses template files i e t files and descriptor files e d files The schema files generate the template and descriptor files necessary for mapping an interface model language into the kernel data model data language The ABDM being the kernel model does not need its own schema for mapping to itself Welcome to Multi Lingual Multi Backend Database System Select an operation a Execute the attribute based ABDL interface r Execute the relational SQL interface h Execute the hierarchical DL I interface n Execute the network CODASYL interface f Execute the functional DAPLEX interface o Execute the Object Oriented interface x Exit to the operating system Select gt Fig A 9 The First Selection Screen In the ABDM interface the user creates the template and descriptor file prior to execution There is an option to generate a database but using this option is unnecessarily time consuming We suggest using a text editor like emacs or vi to create the template and descriptor files After selecting the option a from The Multi Lingual Multi Backend Database System menu in Fig A 9 selects option g at the next ABDL inte
32. 0 Figure 5 MDBS Communication Channels sccsasevasnetscsastinsevsacadeovaxsvansousseas et 22 Figure 6 INSERT Process Communications occcccononccooneccnnnnnnononnonecnnnonanononononcnnacononnncn nonnos 26 Figure 7 Test Interface Process Detail During INSERT Operations oo cccocccccoononinncnnnnananinnnnos 28 Figure 8 Request Preparation Process Detail During INSERT Operations oocccccoonnnronnnonns 30 Figure 9 Concurrency Control Process Detail During INSERT Operations ocononommos 31 Figure 10 Directory Management Process Detail During INSERT Operations 32 Figure 11 Record Processing Process Detail During INSERT Operations ee 33 Figure 12 User Generated Data File using Mass_Load occoncnnncnnnonocononnncancnanacanonionacacononos 34 Figure 13 The Real Time Monitor and Kernel Formatting SysteM ooooccononocoonooonnonani noos 38 Figure 14 Query Results Pre and Post KFS Display oooonoconnnnnnocacoonnonocanonncoacnnnoac nanac nos 40 xi Xi ACKNOWLEDGMENTS We would like to take this opportunity to express our sincerest thanks to Dr David K Hsiao and Dr C Thomas Wu for their insight guidance and wisdom We would also like to especially thank our fellow shipmate and team leader Cdr Bruce Badgett USN for his constancy forehandedness and perseverance Without the help moral support and team building skills of these three key individuals this work would not have been
33. 008256 SS SbangRE Ke Lier 0008272 0033 1NamegqgsNne 4 g wTae 0008288 E ee ea a 0008304 N a m e N5 Recep T 73 0008320 Tan 410032 1N ame N 6 0008336 David K Hsiao 0 0008352 030 1N am e N 7 Thomas 0008368 C Wu 0031 1N ame N O a er RE 0008400 amp 1010 10 1010 0 01010 10100101010 0008416 0 0 0 0 0 6 0 0 0 0 6 0 0 101010 0016384 001 W 11 Address Al 0016400 14 4 Browne Cr OIGA ME E E E ae 0016432 0 0 1 A dress 2 0016448 20 5 Mets r Sea 0016464 side CA 93955 0 E MANIPULATING THE DATABASE 1 Using the ABDM Interface REQUEST INTERFACE After a database has been loaded and the database contains the values for each record desired by the designer the database is available for manipulation Exit the Generate a Database menu The next menu will be the Attribute Based ABDL Interface menu shown below The attribute based ABDL interface Generate a database j Load a database 7 Request interface x Exit to MDBS main menu Select gt r The r option is used to execute the request interface for attribute based databases and to process ABDL requests and transactions To run a query or to manipulate the database the user must first build a Request File The Request File is built by selecting n from the Subsession menu and following the prompts for the type of request desired The requests built are stored in the Request file specified at the
34. 3 cds TEU mjeran t PI define none none I I G BUFFER SIZE AT MaxTy peC EnExFlag pr_flag SRTime Flag LangIF_Fla 8 none Table 5 UG Insert Information Generator File Names ile Description debe iig del Aggregates a collection of Ha mae info and CINBT data none lig ext Globalizes rid_cid_info cidg_cnt CINBT CINBT_ file none none AT file make_result Compiling instructions and paths none C POST PROCESSING Table 6 PP Post ano File Name File Description define pp c main argc argv for post processing lt stdio h gt extern initializes flags def msg _q processes a message from a task in the controller includ beno def MSGLEN ing cases common to all tasks com msg_hdr receive number of request in the transaciton from mdata def RPREP and put the information in the entry adding the msg def entry to the transaction information list dblocal def pp def pp dcl tmpl def tmpl dcl ppby c Creates and manipulates a hashing the bucket table lt stdio h gt none flags def beno def com mdata def pp def pp ext 95 Table 6 PP Post Processing do Pata yo 5 Gs by PATEAR ES ADAN AO A ob lane Soa AL EA Re Le erp ba rege TI y FA ae ee e A RE RB YER Hye LE TD File Name File Description include e define pprba c Groups aggregate_info allocating a by b
35. 622 LCDR Danel A Kelet USN scc lt weer dd ei eiii Sah ob aliada 5203 Faraday Court Fairfax VA 22032 139 O Capt Tac W 00k KWON SA A AAA ina 367 830 Chung Book Goi San Gun Chungan Myen Jochun RI 4 GU 859 South Korea 10 Capt Tae W00k WO es A AA A 1033 Spruance Road Monterey California 93940 140
36. 6831 p0 I 0 00 db11 u mdbs VerE 6 CNTRLi ig out 26832 p0 I 0 00 dbi1 u mdbs VerE 6 CNTRL reqprep out 26839 p0 I 0 01 db11 u mdbs VerE 6 CNTRL dblti out 26828 p0 I 0 00 db11 u mdbs VerE 6 BE sbegpcl out 26833 p0 I 0 00 db11 u mdbs VerE 6 BE dirman out 26834 p0 I 0 00 db11 u mdbs VerE 6 BE cc out 26835 p0 I 0 00 db11 u mdbs VerE 6 BE recproc out 26836 p0 I 0 00 db11 u mdbs VerE 6 BE dio out 26837 p0 I 0 00 db11 u mdbs VerE 6 BE sbeppcl out Figure 4 Six Controller CNTRL and Six Back_End BE Processes D PROCESS FUNCTIONS There are twelve M DBS processes relating to communications between the controller and its associated backends These processes are depicted in Figure 4 and Figure 20 5 Controller processes include controller get CGET controller put CPUT test interface TT request processing REQP insert information generation IIG and post processing PP The six backend processes are backend get BGET backend put BPUT record processing RECP concurrency control CC directory management DM and disk input output DIO All six of these processes run on each backend machine participating in MDBS The controller processes form the interface between the user and the collection of associated backends The TI process 1s the user interface TI routines activate the selected interface and capture the user s instructions from the terminal REQP routines parse th
37. CA A4 144 Mervine_Dr Seaside CA 93955 A2 18 Ricketts Rd Seaside A7 14 Mets_Dr Monterey CA A4 144 Mervine_Dr Seaside CA 93955 A7 14 Mets Dr Monterey CA A4 144 Mervine_Dr Seaside CA 93955 A4 144 Mervine_Dr Seaside CA 93955 Faculty P8 CS P6 P6 CS P P8 CS P8 Civ fac P6 AProf P6 P6 Prof P7 Mil fac P8 LCDR P8 Course _fac SOC3 C4 P7 67 SOC3 C2 PS SOC2 C2 P7 SOCI C3 P7 Course C4 HCI 4322 2 P8 C4 OOPROG 4322 2 PS C2 HCI 4114 2 P7 Ci DBI 4203 1 P8 Course_stu SOCS3 Ci P2 SOCS10 C4 PI SOCS7 C2 P5 SOCS7 C2 P4 SOCS9 C3 P3 SOCS10 C2 P4 SOCS4 Ci P3 SOCSS8 C1 PS SOCS3 C3 P2 SOCS6 C2 P5 SOCS1 C3 P3 SOCS8 C4 P3 SOCS10 Ci PS Team stu SOS1 T2 P2 SOS5 T2 Pl SOS7 T1 PS SOS2 Ti Pl SOSS T2 PS SOS3 T1 PS SOS2 T2 P3 Team T2 DBS T2 OOP Team_fac SOT3 SOCS10 T1 SOT2 SOCS4 T2 SOT3 SOCS2 Ti Student P3 30 CS P1 P2 30 CS P1 68 P1 10 CS P2 P3 10 CS P4 P5 40 CS P2 c Sample Data Records FACSTU r The following is the output of the record file When using the ABDM and ABDL the output of the file will be in the Attribute Data format seen below FACSTU Name N1 Luis M Ramirez N2 Bruce R Badgett N3 Dan R Kellet N4 TaeWook K Kwon N5 Recep T Tan N6 David K Hsiao N7 Thomas C Wu N8 John D Daley Address Al 144 Brownell Cr Monterey CA 93940 A2 320 Mets Dr Seaside CA 93955 A3 117 Mervine_Dr Monterey CA 93940 A4 397 Ricketts Rd Mon
38. DBMS we recommend implementing the system in C Implementation of the systm in C will facilitate expansion of the system by upgrading the available capabilities libraries and objects available to researchers as they investigate future designs Without dynamic allocation the simple task of displaying the results of a query 1s difficult The size of the resulting information in memory is unknown The size of the required memory allocation necessary to display the information is equally unknown Size is not fixed until the query is finished processing The conventional C programming language does not support dynamic allocation Allocation of fixed memory blocks to hold query answers is risky The designer cannot predict the required size Databases evolve and grow so any valid prediction will decay over time As designers we felt introducing the C programming language and its support for dynamic allocation would facilitate future research and aid in problem solutions Because the current system is compiled in C C should be able to compile the existing code with only minor modifications To add the capabilities of C appears to justify such 42 an undertaking By compiling the code in C C will provide capabilities that will facilitate further research in the human interface associated with the system 3 Its Time To Work On The User Interface As the system currently exists the user interface is inadequate Certa
39. ID N2 gt lt FNAME Bruce gt lt ML R gt lt LNAME Badgett gt lt OID N3 gt lt FNAME Dan gt lt MI R gt lt LNAME Kellet gt lt OID N4 gt lt FNAME TaeWook gt lt ML K gt lt LNAME Kwon gt lt OID N5 gt lt FNAME Recep gt lt ML T gt lt LNAME Tan gt lt OID N6 gt lt FNAME David gt lt ML K gt lt LNAME Hsiao gt lt OID N7 gt lt FNAME Thomas gt lt MI C gt lt LNAME Wu gt lt OID N8 gt lt FNA ME John gt lt MI D gt lt LNAME Daley gt Exit Continue in this fashion to run the requests Use the index number to select each of the requests desired from the Request File 89 APPENDIX B CONTROLLER FILE CATALOG A COMMUNICATIONS COMMON All Controller files are located on Work Station db11 under mbds u greg CNTRL ON Table 3 CCOM Communications COMM lt stdio h gt none lt sys types h gt lt netint in h gt flags def dblocal def com mdata def _ msg def beno def File Description File Name Controller Get Responsible for receipt of messages from cget c the backend lt stdio h gt none lt sys types h gt lt netint in h gt cput c Controller Put Responsible for sending messages to the backend flags def dblocal def com mdata def msg def beno def Flag Definitions A file included in cget c and cput c that EnExFlag specifies which flags to define using mnemonic identifi EnExFlagg
40. ID N6 gt lt FNAME david gt lt LNAME hsiao gt pacta N7 gt lt FNAME thomas gt lt LNAME wu gt kellett taewook kwon david hsiao thomas wu Figure 14 Query Results Pre and Post KFS Display 40 VII CONCLUSION The multimodel multilingual database system can support different data models and data languages provided a unique language interface can be constructed to support the desired data model and data language The overall language interface structure consists of the four LIL KMS LIC and KFS modules These four modules are specifically constructed to support a particular data model and data language Developing a user data model and data language interface UDM L between the user and the Kernel Database System KDS requires an understanding of the system s design As long as a compiler KMS can be constructed that will translate the UDM to KDM the KDS can support the UDM L The KDS is the portion of M DBMS software containing the Test Interface TI A careful study of the KDS code early in the research revealed a simple design construct of the system developers do not need to involve themselves in the minutia of KDS code to build additional model language interfaces The TI is the only portion of the software the new user interface will communicate with Development requires only understanding the TI and does not require any changes to the rest of the KDS From the KDS viewpoint adding
41. IDS RecDisk Size no_tracks TrackSize RecSize MAX_ADD RS UpdCoef ErrDelay TIMER_OS IZE TIMER Q WIDTH NO_OF_RE Q REPS TIM_STR_ LEN ARRLEN NO_OF_M EASURE MENTS 111 Table 9 oca iles held in common nby oe module A ALD AR a IPB T I phe PS ERAS OE a File Name acudo define i G E A ADO OI RS o ARS ELA POE commdata Common Data Definitions ions lengths none MORADD def cont d Used to signal RECP that more addrs are coming R SPACE BOTrans EOTrans BORequest EORequest EOCon EOQuery Request types EORecord RETRIEVE UPDATE DELETE INSERT FETCH RET_COM Routing indicators RET_COM S RET_COM mk RIAPO RIRMR Relational Operators RIRMIDU RIBS RIRCRF RIRCI RIDIG ROLT ROLE ROGT ROGE ROEQ RONE pond pera bo Table 9 COMMON Files held in common by every module File Name File Description commdata Common Data Definitions Aggregate Operators def cont d Modifier types in an update request End of Expression in an update Addrs found in DM gomg to RECP Results coming from backends Index for controller Backends End of message indicators 113 define AOMIN AOAVG AOSUM AOCOUNT MTO MTI MT2 MT3 MT4 EOExpr BOAddr EOAddr BOResult EOResult CSignal CSInsert CSNonIn sert EOAttr CTRL STRING SMALL_IN TEGER LARGE_IN TEGER TRUE FALSE EOMsg ring_the_be 11 TU_end ARA ae Le File Nin
42. MARK 133 response y end while response CSignal printf n for the last line of results free up kfs attr values list while ool_ptr gt oi_kfs_data kfsi_obj koi_attr_values value ool_ptr gt oi_kfs_data kfsi_obj koi_attr_values ool_ptr gt oi_kfs_data kfsi_obj koi_attr_values value gt tsi_next free value ifdef EnExFlag printf Exit o_kernel_formatting_systemin tendif y end o_kernel_formatting_system write_attr temp char temp while strlen temp lt ANLength strcat temp strcat temp 1 printf 3s temp 134 135 136 1 2 3 4 5 6 7 LIST OF REFERENCES Hsiao David K A Parallel Scalable Mircoprocessor Based Database Computer for Performance Gains and Capacity Growth IEEE Micro 1991 Badgett Robert B Design and Specification of an Object Oriented Data Definition Language Master s Thesis Naval Postgraduate School Monterey California Sep tember 1995 Demurjican Steven Arthur The Multi Lingual Database System A paradigm and Test Bed for the Investigation of Data Model Transformations Data Language Translations and Data Model Semantics Ohio State University Ph D 1987 Univeristy Microfilms International Dissertation Service 1988 Clark Robert and Necmi Yildirim Manipulating Objects in the M2DBMS Master s Thesis Naval Postgraduate School Mon
43. PTOR TYPE FOR TEMP a b c b Use to indicate that no lower bound exists Enter to stop Note Must be Entered When the Lower Bound is Requested ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Name ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Address ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Person ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Faculty ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Course_fac ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Civ_fac ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Mil fac ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Course ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Course_stu ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Team_stu ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Team ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Team fac ENTER LOWER BOUND FOR DESCRIPTOR ENTER UPPER BOUND FOR DESCRIPTOR lower bound Student ENTER LOWER BOUND FOR DESCRIPTOR No
44. Request Processing File Name File Description include define flags def Defines flags required by REQP processes none EnExFlag EnExFlagg m_pr_flag pr_flag SRTime Flag LangIF_Fla 8 reqp def Defines constants and structures needed for REQP none NOPred Number of request per transaction RC_null_ag area used to store information about update requests g_op structure of request index reqp ext Globalizes upd_req_info and SchedNo none none Isrc c Lexicon Subroutines for reserved words and symbols none none ySIC c Parser Initiation Subroutines none YYDEBUG Establishes table pointers Establishes counters slots request types aggreagate operators Establishes types of updates relatioal operators routing indicators Establishes tokens Transaction handling make_result Compiling and paths none none flags def 2 Unused flags all are commented out none none E TEST INTERFACE Table 8 TI Test Interface TR NL et SOT EPS PCIA RI RATO AR MAS EAN AO EIA AAN RIE RIA CA A RPT Nn ED cL IAE rar prs aL OME eae ree RAS DA A ieee ee ea gt E i E pl i i nozi EZ er NDA 3 PP aed SINT ALES ah HAAA ENE SS UA FN MOET TAE AN FLEE ELS ATS AM RED OSE EE IERIE AS A A aS mc a dbl c Database load lt stdio h gt Loads directory tables and or records flags def Loads record template
45. SYSTEM The multibackend database supercomputer is used to support the M DBS software As mentioned earlier the software is a KDS supporting any data model and any data language chosen by the user Figure 2 depicts the concept All data is stored in the KDS as attribute valued pairs using the KDM and KDL associated with the KDS 1 e ABDM and ABDL To access the data and to query the data requires a user interface that presents to the user the data model and language chosen The user does not interface with the kernel The user interfaces with the chosen data model and language The system interfaces with the kernel Figure 3 shows the multimodel multilingual database system Hsiao 91 The four main modules of each user data model language UDM L interface are the language interface layer LIL the kernel mapping system KMS the language interface controller LIC and the kernel formatting system KES These four modules represent the core system for each separate user interface In other words each UDM L interface has to have its own LIL KMS LIC and KFS which support only the data model and data language associated with that UDM L interface These modules interact with the KDS through the Test Interface TI within the KDS To construct anew UDM L does not require a redesign of the whole database system The new UDMJ L is independent of the other UDM L s and no changes to the KDS are made provided the new UDM L follows the d
46. a ae tt ee x response in ABDL format NI NR NIN RAE e a ete ea Attribute Based Interface Figure 13 The Real Time Monitor and Kernel Formatting System To produce results that will be understandable to the user we modified the existing display format associated with the KFS We modified the KFS to present answers to queries in a table format vice attribute value pairs The table format is clear Answers to queries listed in a table of columns with headings and rows are self explanatory Attribute names form the column headings and attribute values fill the cells of their associated attribute in record order Figure 14 below is an example of query results displayed on the screen for the user The figure shows Output_f file contents first This is how the data is actually stored within the RTM process Next the figure displays what the user would see if the data were displayed in the ADBL The last display is an example of the table actually generated from the KFS after the answer to a query is passed to the KFS through the RTM We converted the KFS display format from an attribute based format to a table format to help the user better understand the results from queries B THE CASE FOR C Without dynamic memory allocation displaying the results of a query in a table is difficult The size of the resulting information in memory is unknown The size of the required table necessary to display the information is equally u
47. assed to the Kernel Formatting System KFS for display During this associated research it became obvious that the KFS required modification We took on the task of completing these modifications while the other groups continued their research A MODIFICATIONS TO THE KFS As explained in Chapter IV there are twelve M2DBS processes relating to communications between the controller and its associated backends see Figure 5 One of these twelve processes is the Post Processing PP process This process formats the results of queries received by the backends The RTM receives the PP s results and temporarily creates one output file named output_f The output file consists of a set of attribute value pairs which can be displayed But unless the reader is familiar with the ABDM and ABDL constructs the results are not meaningful This violates the M DBMS design concept The results must be in a format understandable to the user of an object oriented DML and DDL The user should not have to understand both the object oriented DML and DDL and the ABDM and ABDL The user does not interface with the KDS a SO E E AI O Anta a a nasa at RR RIADA S ran peg anatase os sr A 00 A SA Pseudocode ABDL queries for a single OOL query result in ABDL format response to the OOL query Responses received are processed anguage Interface until final response obtained Controller Lic RR O O RRA 5 OOO HOOG
48. ata using functions for selection retrieval and value extraction RECP receives the INSERT request from the REQP in the kernel or from the other backends To execute the INSERT the RECP fetches a Track Buffer TB and then gets free disk area from the Disk Input Output DIO see Figure 6 by calling the INS_Processing function The DIO handles all reads and writes to the base data disks RECP then puts the records into the fetched TB and stores the TB back to the free disk area by calling the IP_INSERT_Record function The Post Processing PP see Figure 6 properly formats the results The results are received from the backends and sent through the TI to the LIC contained in the UDM UDL The LIC will call the KFS for display of the information back to the user In the case of the object oriented interface the RTM receives the results from the PP The RTM then calls the KFS to properly format the results for display to the user The KFS and RTM are discussed in Chapter VI 29 errada WB OD DOK O POT WE PAOA GO ED ION G VO OIR VOKA 5 x AS 0 o etete a Dee a DOS x a ea sares OSOS OOOO ae Process a message from the host OOOO ariete tarea nado RO ern n a g ataa a a ERO IC y RP_R Sender RP BROADCAST_REQS ALL DMO Get the message RP R Type Broadcast a set of formated RP R TrafUnit requests to the back_ends get DB s ID and Traffic Unit Check the requests in the traffic unit or proper synta
49. ate School 1989 and Kwon Tae Wook Captain Korean Army BS Korean Military Academy 1986 Submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE IN COMPUTER SCIENCE from the NAVAL POSTGRADUATE SCHOOL September 1995 Authors Daniel A Kellett Kwon Tae Wook David K Hsiao Thesis Advisor C Thomas Wu Co Advisor ed Lewis Chairman Department of Computer Science 111 1V ABSTRACT If a single operating system can support multitudes of different programming languages and data structures a database system can support a variety of data models and data languages In this thesis a Kernel Database System KDS supporting classical data models and data languages 1 e hierarchical network relational and functional is used to support a demonstration object oriented data model and data language This thesis extends previous research by accommodating an object oriented data model and language interface in the KDS Consequently the research shows that it is feasible to use the KDS to support modern data models and languages as well as classical ones This thesis details the KDS design Insert operation and Display function This thesis also details how to implement modifications to the Test Interface so that the KDS can support the object oriented database This thesis proves complex data structures in an object oriented data model can be realized using an at
50. atement for proper format and syntax If all of the statements pass the error checking the INSERTS are executed and completed D SUMMARY The INSERT operation is the most basic operation of the five database operations available in the KDS The INSERT operation is supported by the twelve processes discussed in Chapter IV Because the INSERT operation will only operate on a single entry 35 and there are no utilities within the system to groups of data the Mass_Load function is provided Using Mass_Load the users can load data from data file in batch mode The INSERT and Mass_Load functions are operational and require no modifications to support an object oriented interface 36 VI THE KERNEL FORMATTING SYSTEM There are two thesis closely associated with this thesis The Object Oriented Real Time Monitor by Erhan Senocak Senocak 1995 and Manipulating Objects in the M DBMS by Robert Clark and Necmi Yildirim Clark 1995 Where this thesis only deals with the INSERT operation Clark and Yildirim deal with the other four associated operations These four operations are associated with manipulating the data once the data is appended to the database Senocak discusses how the queries formed by the four basic operations are translated from the compiler to KDS required formats using a Real Time Monitor RTM pictured below in Figure 13 He also deals with how the results of the query coming from the KDS are p
51. d additional predicates to this conjunction y n gt n Do you wish to append more conjunctions to the query y n gt n Begin entering attributes for the Target List When you are through entering attributes respond to the ATTRIBUTE gt prompt with lt return gt Do you wish to be prompted for aggregation Y N n ATTRIBUTE lt cr gt to fimish gt OID ATTRIBUTE lt cr gt to finish gt FNAME ATTRIBUTE lt cr gt to finish gt LNAME ATTRIBUTE lt cr gt to fimish gt Do you wish to use a BY clause Y N n COMMON ATTRIBUTE I gt OID COMMON ATTRIBUTE 2 gt OID S The request being built is RETRIEVE TEMP Name and OID N4 OID FNAME LNAME COMMON OID OID_ S Enter the target retrieve RETRIEVE Request 86 Enter responses as you are prompted You will be prompted first for the predicates of the query then attributes for the target list next for an attribute for the optional BY clause and finally for a pointer for the optional WITH clause When you have finished entering predicates for the query respond to the ATTRIBUTE gt prompt with a lt return gt ATTRIBUTE lt cr gt to finish gt TEMP Enter the character for the desired relational operator a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt Course_stu So far your conjunction is TEMP Course_stu Do you wish to a
52. d constants used in tstint dcl none F COMMON FILES TO BOTH FRONT AND BACKENDS All the files common to both the front and backends are located on db11 under 104 mbds u greg Table 9 COMMON Files held in common by every module File Name File Description define ack c cb c comio c lt stdio h gt Acknowledgements A collection of functions Retrieves host number from host name lt sys Initialize sockets for reliable broadcasting for Get s socket h gt Initialize sockets for reliable broadcasting for Put s lt netinet Gets acknowledgements after sending a msg of type in h gt DATAGRAM else retransmits lt netdb h gt Send a retransmission to a particular computer lt errno h gt Determins how long a broadcast msg is and returns lt sys number of fragments needed time h gt Slows repeated broadcast msges allowing receiveres to lt strings h gt catch up flags def Tags msgs in case retransmissions get lost too dblocal def Untags received msgs since not part of MDBS process com ing mdata def Gets msgs off the net msg def Assemble received msg fragments beno def pel def ack dcl lt stdio h gt dblocal def flags def com mdata def msg def beno def pel def Initialize communications between controller and back ends Communication I O routines lt stdio h gt
53. def 118 def dblocal def tmpl def 11g dcl tmpl dcl main argc argv for Insertion Information Generator none none none extern msg_q MS GLEN msg_hdr AAA iisdbl lt C 1gsr C bocd da flags def iig def Table 5 one Information eee ahs di Sees Gos Vee et li FAA A GER ATA ee LA A A ARAS HAGA a LORA AED lt stdio y lt sys file h gt flags def beno def com mdata def msg def 11g def dblocal def tmpl def 118 eXt Load a a e C attribute i in n the TCDT lt stdio h gt flags def beno def IGG subroutines for Receiving the request_id and cluster_id Receiving request_id and descriptor Sending backend number selected to insert a record to the com backends mdata def Broadcasting a descriptor id to the backends msg def Sending results of the internal timing to the controller ug def dblocal def Buffersize speeds reading and writing CINBT Cluster id none Next Backend Tables struct attribute table entry struct attribut table A file which specifies which flags to define using mne monic identifiers Holds the cluster_id information associated with an insert none request Builds required structures for request id cluster id information CINBT Cluster Id Next Backend Table 1 G descriptor attribute value pair lengths JG descriptor descriptor id table element LISAS SEL PEN TELS LAMAS ads
54. ds froma record file The syntax is the same as that of an ABDL record file Calls procedure make_insert for each object ars An important note is either all the inserts are accomplished or none are done This is due to the use of a transaction file which will not execute the requests until there are no errors in the file char db_name DBNLength 1 cls name RNLength 1 input_line 80 request 1024 supcls_array 10 RNLength del add_path struct ocls_node CELS ptr struct ob3_dbid_node AD Der int l continu TRUE Terror FALSE more_objects not_found char key ANLength 1 123 FILE record_fd trans_fd ifdef EnExFlag printf Enter o_mass_load n fflush stdout endif ool_ptr and okc_ptr are initialized here for the KC routine ool_chk_responses_left ay ool _ ptr amp cuser_obj_ptr gt ui_li_type 1li_ool okc_ptr 001_ptr gt 01_kc_data kc1_o_kc Lf 11 record fd fopen recorda file r printf n nERROR the file s does not exist n record file else trans ta fopen TransFile w open transaction file dbo ptr 661 info ptr 0oi curr db cdi_db dn 0obj check database name fscanf record_fd s n db_name to_caps db_name if strcmp db_name db_ptr gt odn_name printf n nERROR s is the currently opened database This is not db_ptr gt odn_name printf n a
55. e Conad def cont d Table 9 E held in common n Dy every module MA Udri TARA A RS RET ALARTE A ORE FO IETS E O STEALS BCS ETT AERTS EMTS Pi TAIL i PS Y i E E Ed A F z 4 H Gannon E Data Definitions none BOField EndString EndNumber NOBOUND MIN ROP MSGTYPE MIN_HG_ MSGTYPE MIN_PP_M SGTYPE MAX_PP_ MSGTYPE MIN_DM_ MSGTYPE MAX_DM_ MSGTYPE MIN_CC_ MSGTYPE MAX_CC_ MSGTYPE MIN_RP_ MSGTYPE MAX_RP_ MSGTYPE pleng cvtflg streq BUCKET_ MARK MAX_OVE RFLOW MAX CO MPARE NUMBER OF BUCK ETS MAX_BUC KET_SIZE MAX BLK _SIZE Internal testing definitions External timing definitions Hashing constants 114 RL ae hee Se PETELE APARATO Bt Pt ARALAR Mi a a Table 9 COMMON Files held in common by every module msg def Message lengths and message passing 1d definitions none TSPA LENHD HDLEN MSGIN TOOFFSET RESTMS GLEN MAS_HOS T_LEN 115 EA AAA NES AO LU KL File Namie ane Message lengths and message e passing id definitions cont d Controller tasks defined Host task defined Backend tasks defined Message types defined Msg types for msgs from Req Prep to Post Proc Msg types for msgs from ReqPrep to DM Msg types for msgs from ReqPrep to RECP Msg types for msgs from IG to DM Msg types for msgs from DM to HG Msg types for msgs from RECP to PP 116 Table 9 an held in common ray bil module
56. e user s requests and check for proper format and syntax The IIG process handles the clustering of the database records across the backend machines Managing a global table of locality information backend number cylinder track is handled by the HG The PP formats the results received from the backend machines for display to the user The CPUT process sends messages across the ethernet to other MDBS workstations The CGET process receives messages from the controller and inter machine messages from other workstations functioning as the backends The backend processes are replicated on each backend machine They form the interface between the controller and the individual backend Where BGET receives messages from the associated workstations in the controller or backends across the ethernet BPUT sends messages from an individual backend across the ethernet to the controller and other backend workstations The BGET process also receives these same inter machine messages for its backend machine The RECP process manipulates records including selection retrieval and value extraction The CC process maintains the meta data and the base data record integrity during the processing of transactions The DM process manages all access to the meta data disk DM coordinates with RECP formulation and gathering information about how the records are stored Finally the DIO process manages reads and writes on the base data record disk 21 Contro
57. e above example the user is creating the template file by answering the questions with values needed for the database design The user selected t from the menu The system asked for the name of the new template The user responded with FACSTU After giving the system a name for the new template the system begins to establish relationships between this new template and records that will be associated with it In the example there are thirteen related records to FACSTU The system then asks for the attributes and their associated type for the 1st then the 2nd etc records This series of questions will continue through record number thirteen then stop b An Example Template File FACSTU After creating the template files and the thirteen related template files the following results are stored in the system as the FACSTU template 57 ico template file name number of related templates El 5 number of attributes in template 1 Name template is called name TEMPs name is an attribute template type s e OID s OID is an attribute of type s il FNAME s MIs NAE S Person TEMP s OID s PNAME s PADDRESS s SEX s This type of storage continues through template 13 4 Generate a Descriptor File After making the template files select option d at the selection menu Option d generates the descriptor files interface for the creation of descriptor files The descriptor file contains informat
58. e process on the back end system Workstation db13 1 Loading the Database The following illustrates the process of loading a database This example is followed by a sample of the execution on the back end system db13 These outputs are seen by entering the unix command gape on the back end system Workstation db13 After finishing the generate records option the main menu reappears Select option I Option 1 initiates database loading operations After selecting option 1 the screen displays another selection menu Choose u The system will ask for the database name After entering the name another selection menu will appear on screen Selects option r The system will ask for the record file name Enter the name of the record file After following these steps the system loads the users database on the back end system Workstation db13 The attribute based ABDL interface Load a database p Generate a database n Request interface x Exit to MDBS main menu Select gt Select an operation a Use a database T Mass load a file of records Exit return to previous menu X Select gt u Enter the name of the database FACSTU Select an operation a Use a database r Mass load a file of records Exit return to previous menu X Select gt r Enter the record file name FACSTU r lt Loading Records Please Stand By gt 12 If an error message appears after entering the records
59. e system The Kernel Database System KDS the Kernel Data Model KDM and the Kernel Data Language KDL are a software subset of the total M DBS To understand the KDS KDM and KDL a review of the system organization helps to place the kernel into context with the overall system architecture A THE MULTIBACKEND DATABASE SUPERCOMPUTER The multibackend architecture consists of several computers connected in parallel by Ethernet The parallel connection supports distribution of the database across these several computers for rapid access during queries Each backend computer has its on disk system controller meta disk and stored data disk Each backend is controlled by a backend controller that supervises the execution of user transactions see Figure 1 Because of the multibackend database design database access time is significantly reduced The response time ratio for queries is inversely proportional to a given number of backend computers So as the number of backends increase the response time decreases If the number of backends increase proportionally with increases in database capacity there will be no change in transaction response time Therefore the multibackend design can support dynamic growth of the database and can support this dynamic growth without noticeable changes in response time Meta data disk Base data disks Figure 1 The Multibackend Database Supercomputer B THE MULTIMODEL MULTILINGUAL DATABASE
60. e using any one of the five basic KDS operations the user must enter the file name that will contain the request interfaces We suggest linking this file to the database in use by always using the database name as the name of the file Enter the name for the traffic umit file It may be up to 40 characters long including the ext Filenames may include only one F character 76 as the first character before the version number FILE NAME gt FACSTU Enter the character for the desired Traffic Unit type r Request t Transaction multiple requests f Finished entering traffic units Select gt r a Creating anINSERT Request The Insert operation takes one set of attribute value pairs at a time and inserts the set as a record into the base data of the database This operation consults the schema previously defined for the database and distinguishes those attribute values that are keys from those that are not Keys are processed by ABDBMS against the meta data of the database to determine the cluster to which the record belongs and the secondary storage in which the record is to be placed To load data using a batch file use the Mass_load function detailed in thesis Chapter V Enter the character for the desired next step i INSERT r RETRIEVE u UPDATE d DELETE c RETRIEVE COMMON Select gt INSERT Request Begin entering keywords as you are prompted You will be prompted first for the Attrib
61. en naar a nana ne cren 45 2 Direct Log On from Terminal DB11 oooooncnnconicnonannanonnnononnnononnnnnnnannonononss 47 B AFTER LOGGING ON ocooccccccooonncnnnanonncanacanannnanananonoranaonannnnnaconnccncncananenencnannos 47 1 Copy the schema and request fileS onooccoonocconnnnncnnnnnoncnnncnnnnnnononernnrannannns 47 2 Kill any MDBS processes still running on the system ooccocccncnrnnnnonennnnononnnos 47 3 Perform META DISK Maintenance cccoococcconnononncnnnnonnanannanennnnanonannonnccananonos 49 4 Set Up The User Screen coccocnononnncnononononnnnononconaronon conan rana n raro nan rn ronca nenne nan nnens 50 5 Check to see if all processes are running occoooccocnnnonnnoncnnenennncnnancnnannoncnnnnonnoo 51 C RUNNING M2DBM6G ccccssseccsscecesssessesescecessessceseecssnsnesenscessoscassersnsnseres 51 1 Database Constructs occccononnnonncnannncnonnoncnnnnnnaconanonnnnanonnanannonennnonnecnacnnanacnannanos 52 2 Generating A Database Operation esesseseresresrreereerrenserserererseereereeresseree 53 3 Generating A Template File oononnocnonnnoononeononrenonanacanonnananoncannnnnnrnanoronanonos 55 4 Generate a Descriptor File ooononnnnccncononnnocnnonnnonennnncnanonenanonnnnnonnanranrnna nano 58 5 Generate Modify the Set Values ccscessssssescseserssesensesstersneenenssssesesseneeses 61 6 Generate A Records File oooccooconnnoonenannnnoncnnnananananononannononnann
62. ents of object oriented databases claim by using these ideas they can support variety spontaneity and dynamism in database designs This thesis is not aimed at validating these ideas but is aimed at using the KDS to support an object oriented database for the purpose of experimenting with the features of object oriented constructs The object oriented database implemented on KDS retains its flexibility portability and homogeneity In this way we can make use of object oriented concepts and constructs without the need of building a new object oriented database system B TESTING THE OBJECT ORIENTED DATABASE For creating an object oriented database an object oriented data model DODM and object oriented data language OODDL are developed Badgett 95 After the object oriented database is modeled in OODM and specified in OODDL the database is compiled into an attribute based database The INSERT operation in the attribute based data definition language ABDL is used to create the attribute based database in the KDS This thesis documents how the INSERT operation creates in the KDS the attribute based database which is equivalent to the object oriented database This thesis also documents why there is no modification required in the KDS in order to accomplish the creation lll THE MULTI MODEL MULTI LINGUAL DATABASE SYSTEM M DBS organization has two parts the multibackend database supercomputer the Multimodel multilingual databas
63. erve on the screen Select an operation t Generate record template d Generate descriptors m Generate modify sets r Generate records x Exit return to previous menu ABDL main Select gt Enter the template file name FACSTU t ENTER DATABASE ID FACSTU ENTER THE NUMBER OF TEMPLATES FOR DATABASE FACSTUI 73 ENTER THE NUMBER OF ATTRIBUTES FOR TEMPLATE 1 5 ENTER THE NAME OF TEMPLATE 1 Name ENTER ATTRIBUTE 1 FOR TEMPLATE Name TEMP ENTER VALUE TYPE s string i integer s 56 ENTER ATTRIBUTE 2 FOR TEMPLATE Name OID ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 3 FOR TEMPLATE Name FNAME ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 4 FOR TEMPLATE Name MI ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 5 FOR TEMPLATE Name LNAME ENTER VALUE TYPE s string i integer s ENTER THE NUMBER OF ATTRIBUTES FOR TEMPLATE 2 5 ENTER THE NAME OF TEMPLATE 2 Person ENTER ATTRIBUTE 1 FOR TEMPLATE Person TEMP ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 2 FOR TEMPLATE Person OID ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 3 FOR TEMPLATE Person PVAME ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 4 FOR TEMPLATE Person PADDRESS ENTER VALUE TYPE s string i integer s ENTER ATTRIBUTE 5 FOR TEMPLATE Person SEX ENTER VALUE TYPE s string i integer s In th
64. esign and constructs provided by the TI How to interface with TI is covered in Chapter IV and in the User Manual Appendix A User Data Model Langauge Kernel Database System UDM L Figure 2 The Kernel Concept The user s transactions are routed to the KMS by the LIL The user writes the transactions in the associated UDM L provided by LIL The KMS is a compiler that transforms the UDM L into a form that can be mapped to the KDS LIL sends the 1 In the previous literature the language interface controller LIC is called the kernel controller KC The research team changed the name of this module to clarify the relationship of the control ler to the interface Kernel controller implies the controller is related to the kernel rather than the language interface transaction to KMS and KMS interprets the transaction The KMS first identifies whether or not the user is creating a new database or using an existing database UDM User Data Model UDL User Data Language System Module LIL Language Interface Layer KMS Kernel Mapping System O Data Model LIC Language Interface Controller KDS Kernel Database System O Data Language KDM Kernel Data Model KDL Kernel Data Language KFS Kernel Formating System Figure 3 The Multi Model Multi Lingual Database System 10 If the user is creating a new database KMS will transform the UDM database definition to the KDM database definition KMS then
65. esulting from a manipulation of all the grades in the database 78 ttt Again start the process by selecting r for Request from the Request Interface menu The next menu shown below allows selection of the Retrieve process Follow the prompts and menus Enter the character for the desired next step 1 INSERT r RETRIEVE u UPDATE d DELETE c RETRIEVE COMMON Select gt r RETRIEVE Request Enter responses as you are prompted You will be prompted first for the predicates of the query then attributes for the target list next for an attribute for the optional BY clause and finally for a pointer for the optional WITH clause When you have finished entering predicates for the query respond to the ATTRIBUTE gt prompt with a lt return gt ATTRIBUTE lt cr gt to finish gt TEMP Enter the character for the desired relational operator a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt Name So far your conjunction is TEMP Name Do you wish to and additional predicates to this conjunction y n gt n 79 Do you wish to append more conjunctions to the query y n gt n Begin entering attributes for the Target List When you are through entering attributes respond to the ATTRIBUTE gt prompt with lt return gt Do you wish to be prompted for aggregation Y N n
66. et of approximately one hundred system calls provided by UNIX The UNIX operating system supports process control reliable inter process communication broadcast communication and a compiler Watkins 93 System calls from the kernel are 17 used for tasks like file I O and process execution MDBS constructs its higher level functions from the eighteen system calls listed below Table 1 System Calls Made By MDBS Pao accept a connection on a socket bind a name to a socket delete a descriptor file or socket initiate a socket connection terminate a process System Call accept bind close connect exit get the name of current host bget c bput c cget c cput c gethostname dbl c get access to the network getpid get a process identification number gettimeofday get the date and time kill send signal to a process listen listen for connection on a socket move the read write pointer cpcount c dio c dicp c rectag c Zero c open a file for reading or writing read input files or sockets cpcount c dio c disp c 11g c meta c pcl c rectag c sndrcv c send send a message from a socket ack c cb c sndrcv c others socket create an endpoint for communica ack c pcl c sndrcv c tion unlink remove directory entry file or sndrcv c gsmodset c socket write output file or socket bes c cpcount c dio c iigdbl c meta c pcl c rectag c sndrcv c getnetbyname lseek open read
67. gt n Do you wish to append more conjunctions to the query y n gt n Enter the attribute being modified ATTRIBUTE lt cr gt to finish gt LVAME Enter the number indicating the desired modifier type 0 Set attribute equal to a constant 1 Set attribute equal to a function of itself 2 Set attribute equal to a function of another attribute 3 Set attribute equal to a function of another attribute of a query 4 Set attribute equal to a function of another attribute of a pointer Select gt 0 Enter Constant gt Tam By following the prompts and menus the system has built the Update Request desired The Update is UPDATE TEMP Name and OID N9 lt LNAME Tam gt 62 d Creating a DELETE Request The Delete operation takes only one argument a query In ABDBMS the KDS the Delete operation is carried out in the three steps which are the same steps as steps one through three of the Update operation Enter the character for the desired next step 1 INSERT r RETRIEVE u UPDATE d DELETE c RETRIEVE COMMON Select gt d DELETE Request Enter responses as you are prompted You will be asked to enter attributes values and relational operators as predicates for the query When you are finished entering predicates respond to the ATTRIBUTE gt prompt with a lt return gt ATTRIBUTE lt cr gt to finish gt TEMP Enter the character for the desired relational operator
68. he attribute name is seen An example would be lt FNAME Tae wok gt were FNAME is the attribute name and Tae wok is its corresponding value The attribute name must always be uppercase A RECORD is a set of attribute value pairs Within a record attribute value pairs must have unique attribute value names That is no two attribute value pairs can have the same attribute value name Atleast one of the attributes in the record is a key Following these two rules ensures each attribute value pair is single valued and each record can be identified by at least one key A record is enclosed by parenthesis The attribute value pairs are contained within these parenthesis lt COURSE CS4322 gt lt INSTRUCTOR Hsiao gt lt SECTION 2 gt lt YEAR 1995 gt lt SEMESTER fall gt A FILE is a collection of records that share unique set of attributes If a record belongs toa certain file then the first attribute value pair of the record will contain the attribute TEMP and the corresponding file name All records belonging to the same file will have the same first attribute value pair For example lt TEMP NAMES gt lt LNAME Hsiao gt lt FNAME David gt lt MIDDLE K gt indicates that the record belongs to the file NAMES The file contains a detailed description of the ABDM and ABDL We encourage the user to read these prior t executing the attributed based interface 52 2 Generating A Database Operation The
69. he database currently in use The function will read the first capital letter as the name of the current executing database The function will then check to see if the database name in the file is in agreement with the database name currently executing These must agree or the function will abort If the names match then the next data read is recognized as the template name The function will then open the template already on the backends using the other pointer process embedded within the function Next the Mass_Load function will read the data from the User generate data file one by one With each read the function will read an attribute name from the template file The matching of a data element and an attribute name will create the attribute value pair As pairs are created the function creates an INSERT statement in the attribute data language for each individual item read This processing continues until the ampersand is encountered The ampersand symbol acts as the demarcation between templates When encountered the Mass_Load function will stop processing read the next template The reading of data resumes Processing continues until the dollar symbol is encountered The dollar symbol marks the end of the file Once the end of file is encountered the Mass_Load function passes the INSERT request statements to REQP in the Kernel System The REQP receives these INSERT statements through the TI and checks each st
70. hile doing this the system also trys to open the file But the file is not ready yet so the error statement appears Processing continues therefore ignore the statement ENTER THE NAME OF THE FILE CONTAINING THE VALUES FOR ATTRIBUTE FNAME ON TEMPLATE Name FNAME s ERROR Cannot open the file ENTER THE NAME OF THE FILE CONTAINING THE VALUES FOR ATTRIBUTE MI ON TEMPLATE Name MI s 65 ERROR Cannot open the file ENTER THE NAME OF THE FILE CONTAINING THE VALUES FOR ATTRIBUTE LNAME ON TEMPLATE Name LNAME s 3072 records can be generated for template Name How many records do you want generated ERROR Cannot open the file continue the above until all records have been created e o o o o 8 y a o do y o y a o t 8 Note the process begins with giving the system the template name 1 e FACSTU t then the record file name EACSTU r These two must match The system then asks for set value file names that match the records it finds within the template and descriptor files When done the system will return to the main menu b An Example Records File By following the steps as they appear on the screen the following is stored in memory in the FACSTU r file Not all of the entries used to make the below record file were shown in the example The list of entries is lengthy and redundant What is listed below is the entire record file showing each template record a
71. ify an existing set for it s do nothing with it Select gt n Enter the set file name name s ENTER SET VALUE on Kellet Ramirez Kwon Tan ENTER SET VALUE Hsiao ENTER SET VALUE W ENTER SET VALUE u Daley ENTER SET VALUE Set generation completed modify it Y N n CHOOSE ACTION TO BE TAKEN FOR ATTRIBUTE TEMP ON TEMPLATE Person n generate a new set forit m modify an existing set for it s do nothing with it Select gt s CHOOSE ACTION TO BE TAKEN FOR ATTRIBUTE OID ON TEMPLATE Person n generate a new set forit m modify an existing set for it S do nothing with it Select gt n Enter the set file name personoid s 6972060004000 o o o o o oe e o o continue the rest of the tables in the same way 63 During generate modify sets the user must not generate a duplicated set value A set value can be used many times but the existence of an attribute value pair is a unique event in the database and duplicates are not allowed A different attribute may share the same value but there must not be any attribute value pair that is a duplicate of another For the initial creation of a database we suggest that using vi or emacs for generating the d and t files outside the system The system can be cumbersome However once the d and t files are created the user must use the above steps in the generate modify operation
72. in the common clause Each output record can be reduced in size if a target list is used in either Retrieve operation Enter the character for the desired next step 84 1 INSERT r RETRIEVE u UPDATE d DELETE c RETRIEVE COMMON Select gt c RETRIEVE COMMON Request First enter the source RETRIEVE RETRIEVE Request Enter responses as you are prompted You will be prompted first for the predicates of the query then attributes for the target list next for an attribute for the optional BY clause and finally for a pointer for the optional WITH clause When you have finished entering predicates for the query respond to the ATTRIBUTE gt prompt with a lt return gt ATTRIBUTE lt cr gt to finish gt TEMP Enter the character for the desired relational operator a EQUAL b NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt a VALUE gt Name So far your conjunction is TEMP Name Do you wish to and additional predicates to this conjunction y n gt y ATTRIBUTE lt cr gt to finish gt OID 85 Enter the character for the desired relational operator a EQUAL b j NOT EQUAL c gt GREATER THAN d gt GREATER THAN or EQUAL e lt LESS THAN f lt LESS THAN or EQUAL Select gt q VALUE gt N4 So far your conjunction is TEMP Name and OID N4 Do you wish to an
73. inly the user interface does the job of reporting results to the screen and enables researchers to check their work But with the availability of gui objects and the the availability of sophisticated code generation programs we believe it is time to investigate the user interface Current research in human factors engineering and cognitive sciences indicate that the ability to use many models within the same system will have its own unique set of user interface challenges To date no research has been done that discusses or investigates the potential problems inherent in a sophisticated database system that enables the users to draw on several models and languages at once There has been no attention to date applied to how the system looks and feels to users The interface is primitive There has also been no research to date on an appropriate user interface for the M7DBMS by applying new developments in the cognitive sciences We recommend a future thesis expand on the theory of cognitive sciences by applying the techniques of human factors engineering to the M DBMS user interface The research must go beyond looks and appearance of the interface and investigate the impact different interface styles and methods can have on the usability and cognition of a system that supplies so many options to the users B SUMMARY Using an attribute based data model the Kernel Database System can realize complex data structures in the
74. ion with regards to constraints placed upon the attributes within the template In order to achieve the mutual exclusivity of the M DBMS there are three descriptor types that an attribute can take on Type a is an attribute which has a disjointed range of values i e 0 lt NUMBER lt 100 Type bis an attribute of distinct value i e SEX M Type C is an attribute that has a dynamic range that is determined at run time The attribute TEMP will be a type b attribute whose distinct values are the template file names in the data base The attribute NUMBER street number is a type a attribute whose value range is from 00 to 99 from 100 to 199 and so on The attributes FNAME and LNAME are also type a attributes whose value range goes from the letter A to Z The following is an example of the process creating a descriptor file for the demonstration data base called FACSTU a Generating a Descriptor File After completing the creation of a template file the main menu returns The user should then select the d function Select an Operation t Generate record template d Generate descriptors m Generate modify sets r Generate records x Exit return to previous menu ABDL main Select gt d The system will prompt the user with the following questions Enter the template file name FACSTU t Enter the descriptor file name FACSTU d Will attribute TEMP be a directory attribute Y N y ENTER THE DESCRI
75. ionncnccnnnnananncnnnos 17 B C LIBRARY HEADER FILES INCLUDED ooccccnnonccaniononnnnaonanononnaconnnannnos 19 C CONTROLLER AND BACKEND PROCESSES coocoocccccoonnnonacnannannnnononanccnos 20 D PROCESS PUNCTION Sci aa 20 E TI LINKS BETWEEN KERNEL AND NON KERNEL CODE 006 23 E IN SUMDMAR Y 24 THE INSERT OPERA TION sssoraiaa i E 25 A INSERT DESIGN CONSIDERATIONS oooocconcocooonncocaconacsonranoncnnnanannanccnnonanass 25 B THE INSERT OPERA ON cacenni T ine are 21 C THE MASS LOAD FUNCTION coros 34 Di SUMMAR Y sai a a E a 35 VI THE KERNEL FORMATTING SYSTEM occconoconcnsnonnanonnnnannanonnanonacanenennnonancnnns 37 A MODIFICATIONS TO THE KEBS occnnnccnioonononnnncnnnocoranoncnnocanannnanronccconennnaass 37 B THE CASE FOR C cccscsscssssccssocssessccesscccoeesosenasessssensesssnsseesonsnonsesanccoeas 39 VIL CONCLUSION nares li RA AS 41 A SUGGESTIONS FOR FUTURE RESEARCH o occccccoonncccconcnnooncnconananannonanonaso 42 1 Develop A More Sophisticated Insert Operation sees 42 2 Compile The System In C coonocococacnononnononaronanonncononcnnnononnnnnnnnnnonanaonos 42 3 Its Time To Work On The User Interface ooomonomooonmennorcananinananos 43 Bi SUMMAR Y strains 43 APPENDIX A THE USER MANUAL ccconconccccnnonnnnonnnancconanancncnanananonnncnnnanonencncnnananacaness 45 A LOGGING ON iii ein aio A 45 1 Remote Log ON coooononccnonennnnnonnnonnnonanonanonancononnnnno nena e nnoa nano cr
76. ique language interface users can create and access a database using the desired data model language But the system stores only one set of data The system stores the data in the kernel data model form of attribute value pairs Hsiao 91 16 IV THE KERNEL DATABASE SYSTEM Developing a user data model and data language interface UDM L between the user and the Kernel Database System KDS requires an understanding of the system s design The KDS is the portion of M2DBMS software containing the Test Interface TI The TI is the only portion of the software the user interface will communicate with Development requires only minor changes to the TI and does not require any changes to the rest of the KDS But development does require an understanding of TI requirements The following describes the KDS for a more thorough understanding of how TI works and why A OPERATING SYSTEM SUPPORT FOR KDS M DBS is written in C running on the SunOS UNIX operating system version 4 1 1 SunOS provides the C shell which M2DBS uses to maintain job control In UNIX the shell serves as an interface between the user and the operating system The shell receives commands and arranges to have them executed The shell scripts or interpreter files start cntrl run be stop db zero db etc supporting M DBS are designed to run on the C shell The M DBS software interacts with the Multibackend Database Supercomptuer hardware through a s
77. isted in the template file along with their respective type e string integer etc Once all attributes for a template are listed the number of attributes in the next template is listed followed by the next template s name This process is repeated until all the templates and attributes have been listed The User Manual Appendix A details the process for creating a template file To support object oriented database research the research team created a demonstration database called FACSTU Faculty and Student FACSTU is the object oriented database created by associated thesis teams For more details on the development of the FACSTU database see the associated thesis F IN SUMMARY The overall language interface structure consists of the four LIL KMS LIC and KFS modules These four modules are specifically constructed to support a particular data model and data language The multimodel multilingual database system can support different data models and data languages provided a unique set of these four modules can be constructed to support the desired data model and data language As long as a compiler KMS can be constructed that will translate the UDM to KDM the KDS can support the UDM L KDS represents the kernel database system constructed from attribute value pairs records and files unique to the multibackend database supercomputer and the multimodel 15 multilingual database system By designing and implementing a un
78. itate trouble shooting and research One shell is used strictly for database execution The other shell is used for checking the UserFiles directory The UserFiles directory should be checked to ensure all necessary database files exist After checking the directory use this same screen to verify all processes are running 50 5 Check to see if all processes are running When running the MDBS six backend BE processes and six control CNTRL processes should be running These processes are shown in Fig A 8 If all the processes are not running then exit the system pressing Control c After exiting kill any extraneous processes with the stop cmd command Double check to ensure no extraneous processes are running using the ps ax command ensure the data disk has been zeroed If not zero the meta disk with the zero command Restart the MDBS system with the begin or start 26827 p0 1 0 00 db11 u mdbs VerE 6 CNTRL scntgpcl out 26829 p0 1 0 00 db11 u mdbs VerE 6 CNTRL scntppcl out 26830 p0 I 0 00 db11 u mdbs VerE 6 CNTRL pp out 26831 p0 1 0 00 db11 u mdbs VerE 6 CNTRL iig out 26832 p0 I 0 00 db11 u mdbs VerE 6 CNTRL reqprep out 26839 p0 I 0 01 db11 u mdbs VerE 6 CNTRL dblti out 26828 p0 I 0 00 db11 u mdbs VerE 6 BE sbegpcl out 26833 p0 1 0 00 db11 u mdbs VerE 6 BE dirman out 26834 p0 1 0 00 db11 u mdbs VerE 6 BE cc out 26835 p0 I 0 00 db11 u mdbs VerE 6 BE recproc out 26836 p0 I 0 00 db11
79. l LoadtypeC Error ErrorFree NewDB Template SetNoBEs BEwho Createerr Inserterr Lookuperr Finderr Descerr Cathcerr Updateerr LoadCerr errNewDB err Template SelectData base errSelect Database TReqNo tOKM TRegOK1R eqM TReqOK AggM TReq CompM TReqBroad M TRegSyn ErrM TReqCh CIM TReqN MGIM TRegAliM Error Messages Messages for timing Request Preparation REQP Table 9 COMMON Files held in common by every module File Name File Description define msg def cont d Messages for timing Insert Info Gen IG Messages for timing Post Processing PP Messages for timing Directory Mgmt DM Messages for timing Concurrency Control CC 119 none TldTyCM TClIdm TReqFNe DeldM TOGAIM TReqW ErrM TNoORIT M TAggOpsM TBCResM TBCA oResM TPPAIIM TDM_PTU M TDM_NM GEM TDM_BNM TDM_ND M TDM_DIM TDM DCM TDM_DA_I M TDM_DD_ AM TDM_DCA M TDM_ALM TDM_L_D S TDM C L Z Zi TDM_ONV Z TDM_UFM TDM_AIIM TCi FoTrUnM TIyCAt Tum TDI1S elrUnM TAtRelM TInAIA tReM TERET define Table 9 COMMON Files held in common by every module ius po ATAN AEA ARCO RARA Lal Oe Ft SETALIASES TE Te ERS ER a FICE File Name File Description Messages for timing Concurrency Control CC include none TDiSeRem TUpFinM TRecpCpM TCCAIUM Messages for timing Record Processing RECP TReqDis AddrM TChCl Re
80. ller Ethernet Backend DIO Figure 5 MDBS Communication Channels 22 Figure 5 shows how these twelve communication processes interface with each other In Figure 5 inter process communication links have arrows showing which process initiates the link That is the arrows show initiation of information flow not the direction of information flow All of the communication channels depicted are established during start up E TI LINKS BETWEEN KERNEL AND NON KERNEL CODE Adding a new user interface requires minor modifications to TI There are critical linkages between the kernel and non kernel interfaces contained within the test interface TD code a The LanglIF Flag must be visible to the compiler To accomplish this be sure the define LangIF_Flag statement in the Flags def file located in the TI directory is not commented out b Ensure there is a function call to initialize the specific non kernel language interface To accomplish this load the schema for the non kernel model by calling the creat_ _db_list e g creat_oo_db_list function around line 90 in the ti c file c Add a menu choice and call to the main procedure for the new language interface To accomplish this the code should be placed within the while loop following the function call to initialize the interface d Recompile the ti exe file To accomplish this may require some minor modifications to one o
81. lock structure to lt stdio h gt none be used when hashing by_clause information flags def Checks for buffer size beno def Allocates space for new RP by hash com Allocates an instance of PP ResultBuffer for a request mdata def Puts the request id adds new entry to list frees entry in pp def PP_ResultBuffer list for a request Puts the results for a pp ext request in PP_ResultBuffer and sends a completion sig nal ppsr c PP subroutines for lt stdio h gt none returning results sent by a backend in the buffer flags def returning traffic unit and error message sent by Request dblocal def Preparation in the buffer beno def returning number of requests in a transaction com sending reuslts for a request to the host machine mdata def sending a traffic unit that has errors to the host msg def sending msg to host signaling transaction finished pp def sending results of internal timing to the controller pp ext tmpl def repmon c Post Processing Reply Monitor Monitors sending results lt stdio h gt to the host machine lt ctype h gt store results from a backend in a buffer flags def when all backends have returned results send buffer info beno def with a competion signal to host com mdata def msg def pp def pp ext flags def Defines flags needed by PP mnemonically EnExFlag EnExFlagg m_pr_flag SRTime Flag LangIF_Fla 8 96 Table 6 PP Post Processing File Name File Descri
82. lt stdio h gt none Puts requests in the format needed by the DM Direc flags def tory Manager beno def Puts requests into the form required by the backends comm Puts inserts into the form required by the backends data def Converts a formatted request from parsed request and reqp def adds them to a set of formatted requests reqp ext Deals with modifiers Type IHI IV msg def Formats Retrieves reqp c maln argc argv lt stdio h gt extern Scheduling functions flags def msg q Processing messages from host beno def msg_hdr comm mem_ptr data def rcomtypel2 reqp def no_aggl 2 reqp ext index_req_ msg def ptr tmpl def tmpl dcl commsg c reqpsr c Request Processing Subroutines necessary for REQP lt stdio h gt none Receive and buffer the nxt msg for REQP dblocal def Return senders name and type of msg in the buffer flags def Return datbase id and traffic unit beno def Return record with changed cluster sent by BE com Broadcast a set of formmated requests to backends mdata def Notify RECP a Retreive Common is coming reqp def Send requests to Post Processing reqp ext Send aggregate operators in traffic unit to PP not msg def completed tmpl def Send requests with erros to PP Send a msg to all DM s in BE s no more generated Inserts Send results of internal timing to the controller dblocal def o DefinesR E QP _ REOP 98 Table 7 REQP
83. me 1i1 end change case block 128 strcat request cl strcat request gt lt strcat request OBJECTID strcat request y ds strcat request key if stremp attr_ptr gt oan_name OBJECTID attr pul attr ptr gt oan_ Next acter Num attrs initialize attr count put non key values in INSERT while cont amp amp num_attr if fscanf rec rd ta 1 Veinal inp t line t T1 cont FALSE else 1f strcmp input_line istrcmp input_line printf ERROR or S out of sequence error TRUE cont FALSE else strcat request gt lt strcat request attr_ptr gt oan_name strcat request fix up attr value into ABDL form and append into INSERT if input_line 0 gt a amp amp input_line 0 lt z input_line 0 toupper input_line 0 for i 1 i lt strlen input_line 41 if input_linef i gt A amp amp input_line 1 lt Z input_line i tolower input_line 1 strcat request input_line num_attr attr ptr attr ptr gt 0an next attri fscanf record_fd S t input_line fscanf record_fd n input_line end 1f input_line end while cont and attr HE CON strcat request gt tprintf trans td ss n Yequest 3 end make_insert 130 APPENDIX D KFS SOURCE CODE include lt stdio h gt
84. n Insert operation and Display function This thesis also details how to implement modifications to the Test Interface so that the KDS can support the object oriented database This thesis proves complex data structures in an object oriented data model can be realized using an attribute based data model which is the kernel data model of the KDS Second it details how the KDS is designed showing why no changes needed to be made to the KDS to implement the object oriented toy database Third it argues the advantages of using a KDS in the database system design The KDS design produces savings in costs from compatability reduced training expandability and software reuse 14 SUBJECT TERMS Kernel Database System Mutimodel and Multilingual Database System Object Oriented Data Model and Language OODM amp L 17 SECURITY CLASSIFICATION 18 SECURITY CLASSIFICATION 19 SECURITY CLASSIFICATION OF REPORT OF THIS PAGE OF ABSTRACT Unclassified Unclassified NSN 7540 01 280 5500 Standard Form 298 Rev 2 89 1 Prescribed by ANSI Std 239 18 15 NUMBER OF PAGES i 155 16 PRICE CODE 20 LIMITATION OF ABSTRACT Unclassified UL 11 Approved for public release distribution is unlimited SUPPORTING THE OBJECT ORIENTED DATABASE ON THE KERNEL DATABASE SYSTEM Daniel A Kellett Lieutenant Commander United States Navy BS Virginia Polytechnic Institute and State University 1979 MS Naval Postgradu
85. nd additional predicates to this conjunction y n gt n Do you wish to append more conjunctions to the query y n gt n Begin entering attributes for the Target List When you are through entering attributes respond to the ATTRIBUTE gt prompt with lt return gt Do you wish to be prompted for aggregation Y N n ATTRIBUTE lt cr gt to finish gt OID ATTRIBUTE lt cr gt to finish gt OJD_S ATTRIBUTE lt cr gt to finish gt Do you wish to use a BY clause Y N n The request being processed is RETRIE VE TEMP Name and OID N4 OID FNAME LNAME 87 COMMON OID OID S RETRIEVE TEMP Course_stu OID OID_S 3 Running and Testing the Requests In the above processes using the Request Interface from within the ABDL interface the user built a request file responding to prompts and menus from within the Subsession menu In our example we named our Request file FACSTU 1 Building the request does not automatically yeild results The request file has to be run To run the file choose r from the ABDL interface then choose f from the Request Interface Then select s from the Subsession menu to run the file The menu below will appear Enter TI read_name Enter the name for the traffic unit file It may be up to 40 characters long including the ext Filenames may include only one character as the first character before the version number FILE NAME gt FACSTU After entering the file name the co
86. nd the attribute value pairs associated with the attributes listed in each record Below is the toy database used for thesis research and in the theses related to this research Note the objects are related through attribute value pairs of other template names FACSTU Name N2 Luis K Daley N2 is a name The name is Luis K Daley N3 TaeWook K Daley N8 Recep T Ramirez N2 Bruce K Wu N6 TaeWook K Hsiao N5 Dan C Ramirez 66 N7 John M Tan N6 Thomas R Kwon Person P3 N6 AI F person P3 has a name N6 address A1 and a sex F P7 N8 A6 M P4 N8 A4 F P4 N8 A2 M P4 NI A4 M P5 NI A3 M P6 NI AS M P1 N4 A4 F Address A2 238 Mets_Dr Monterey CAA4 320 Montecito Seaside CA6 144 Montecito Seaside CAS 320 Brownell Cr MontereA7 238 Spanagel Cr SeasideA2 18 Ricketts_Rd Seaside A7 14 Mets_Dr Monterey CA A4 144 Mervine Dr Seaside CA 93955 A4 320 Montecito Seaside CA6 144 Montecito Seaside CAS 320 Brownell_Cr MontereA7 238 Spanagel Cr SeasideA2 18 Ricketts Rd Seaside A7 14 Mets_Dr Monterey CA A4 144 Mervine_Dr Seaside CA 93955 A6 144 Montecito Seaside CAS 320 Brownell_Cr MontereA7 238 Spanagel_Cr SeasideA2 18 Ricketts Rd Seaside A7 14 Mets Dr Monterey CA A4 144 Mervine_Dr Seaside CA 93955 A8 320 Brownell_Cr MontereA7 238 Spanagel Cr SeasideA2 18 Ricketts_Rd Seaside A7 14 Mets Dr Monterey CA A4 144 Mervine_Dr Seaside CA 93955 A7 238 Spanagel Cr SeasideA2 18 Ricketts_Rd Seaside A7 14 Mets Dr Monterey
87. nknown Size is not fixed until the query is finished processing The conventional C programming language does not easily support dynamic memory allocation Allocation of fixed memory blocks to hold query answers is risky The designer cannot predict the required size Databases evolve and grow so any valid prediction will decay over time As designers we felt compelled to introduce dynamic memory allocation to the KFS module To do so required introducing the C programming language and the ease with which it supports dynamic memory allocation Although the rest of the system is written in C the KFS requires dynamic memory allocation and C became a necessary part of the solution 39 To ease future research and to ease further expansion and implementation of M DBMS we recommend implementing the system in C C will facilitate further research in the human interface associated with the system C will also facilitate expansion of the system by upgrading the available capabilities libraries and objects available to researchers as they investigate future designs lt OID N3 gt lt FNAME dan gt lt LNAME kellett gt lt OID N4 gt lt FNAME taewook gt lt LNAME kwon gt lt OID N6 gt lt FNAME david gt lt LNAME hsiao gt lt OID N7 gt lt FNAME thomas gt lt LNAME wu gt lt OID N3 gt lt ENAMEdan gt NAME kellett gt lt OID N4 gt lt FNAME taewook gt lt LNAME kwon gt lt O
88. ntents of the file appear on screen as listed below 0 RETRIE VE TEMP Name OID FNAME MLLNAME 1 INSERT lt TEMP Name gt lt OID N9 gt lt FNAME Steven gt lt MI J gt lt LNAME greg gt RETRIE VE TEMP Name OID FNAME MI LNAME 3 RETRIE VE TEMP Person OID PNAME PADDRESS SEX 4 INSERT lt TEMP Person gt lt OID P9 gt lt PNAME N9 gt lt PADDRESS A9 gt lt SEX F gt 5 RETRIE VE TEMP Person OID PNAME PADDRESS SEX 6 UPDATE TEMP Name and OID N9 lt LNAME Tam gt 7 RETRIE VE TEMP Name OID FNAME LNAME BY LNAME 8 RETRIE VE TEMP Address NUMBER STREET CITY ZIPCODE 9 UPDATE TEMP Address and OID A8 lt ZIPCODE 93956 gt 10 RETRIE VE TEMP Address NUMBER STREET CITY ZIPCODE 11 DELETE TEMP Name and OID N9 12 RETRIE VE TEMP NameXOID FNAME LNA ME 13 RETRIE VE TEMP Name and OID N4 OID FNAME LNAME COMMON OD OID _S RETRIEVE TEMP Course_stu O1D 88 Select Options d redisplay the traffic units in the list n enter a new traffic unit to be executed num execute the traffic unit at num from the above list x exit from this SELECT subsession Option gt 0 The menu above is asking for which part of the request individually to run The user input the Request Index Number 0 to run the first query The results of the query appear on the screen like the listing below lt OID N1 gt lt FNAME Luis gt lt ML M gt lt LNAME Ramirez gt lt O
89. nterface The ABDL interface supports this operation for the creation of initial records to the database The generated set file will be named by the user and will end with an s suffix The file format used in the ABDM interface resembles the initial record file with set data instead of attribute names underneath the template name The End of File is marked by a symbol n important note when creating a set file 1s that the system looks for TABS between attribute values in a record or tuple If the spacebar is used the system will not read the space as the start of a new attribute and will erroneously read the generating set file The following illustrates the process for the generating set file which will be used to generate initial records file a Generating a Set Value File These step by step instructions aid the user in developing a set file on the M DBMS based on the template file which was generated earlier The template and descriptor files must be generated prior to generating the initial records file The following is a sample of the process to generate set value files which are used to generate initial records in the database Select an operation t Generate record template d Generate descriptors m Generate modify sets r Generate records x Exit return to previous menu ABDL main Select gt m 61 From the main menu select the m option Then input the template file s name Ente
90. object oriented data model A single database system can support a variety of data models and data languages using a Kernel based on attribute value pairs In this thesis a kernel database system supports both classical data models and data languages 1 e hierarchical network relational and functional and the emerging object 43 oriented data model and data language By successfully creating an object oriented database in the KDS this thesis shows that complex data structures found in the object oriented data model can be realized as a kernel database in a single database system Prior to this research it has not been clear whether or not the Kernel Database System KDS designed to support classical databases can support the complex object oriented database This thesis has shown that object oriented data can be inserted into a Kernel Data base consisting solely of attribute valued pairs The object oriented database model and language are supported by the INSERT operation in the attribute based data definition language ABDL without any modifications having to be made to the KDS It is therefore unnecessary to build an entirely new object oriented database system to support an object oriented database 44 APPENDIX A THE USER MANUAL The Multi Model Multi Language Database Management System is located in Lab 500 of Spanagel Hall at the Naval Postgraduate School Monterey California The Lab is supported by two
91. onancnnananranos 64 D LOAD THE DATABASE ccssncccsserercssceccsenesncnseeaeserensnsseeessscueescossnseeeeeenes 71 1 Loading the Database A EAI EA E T coats Ta 2 An Example of a Database Loaded on the Backend ooocconconioncnnanononnnnn oso 73 E MANIPULATING THE DATABASE essricocioniooniidndiopariercinnoncarisdinna nace caes 74 1 Using the ABDM Interface REQUEST INTERFACE eee eens 74 2 Creatina Roques iS astillas 76 3 Runnine and Testing th Requests acusar aei 88 APPENDIX B CONTROLLER FILE CATALOG oooccnocococoncnnocananocarannoncncoonanioncnnanas anar 91 A COMMUNICATIONS COMMON sirastos na iii i 91 B INSERT INFORMATION GENERATOR ooooooccnccccccocononcnnonnonianancnonannnroranons 93 E POST PROCESS IN Oise ld 95 D REQUEST PROCESSING astilla T 97 E TESTINTERRFACE sa 100 F COMMON FILES TO BOTH FRONT AND BACKEND eee 102 APPENDIX C MASS_LOAD FUNCTION SOURCE CODE oocooccccnccconocnccnnncnnnnnns 123 APPENDIX D KFS SOURCE CODE sosiete id 131 LIST OF REFERENCES ula 137 INITIAL DISTRIBUTION LIST sind td a 139 LIST OF FIGURES Figure 1 The Multibackend Database SupercomMputeT ooooconononnoonacaccononnannnnanananaconoroonanccnnnnnos 8 Fiure 2 The Kemell Conce lunas lia 9 Figure 3 The Multi Model Multi Lingual Database SysteM oooooccononnnonccanononaannccnoocanacononass 10 Figure 4 Six Controller CNTRL and Six Back_End BE Processes oomoccccnocioncnnonononss 2
92. ookuptbl Get the pointer to the Database r ea O 5 SOOOCOOOL IA Process a message from the controller or another Back End ROA DO EI EIN Get pointer from parsed INSERT traffic unit caused by update Get the pointer for the type C attributes Finds the descriptors that satisfy the keywords in the insert request ODO Sou SN DO PRA A Finds the descriptors that satisfy a predicate Places their Identifiers in the Request Descriptor Table RDT II TRAA 5 SS gt II a OOOO ala IS AARE y 5 JA CACA E Ea a CCN Figure 10 Directory Management Process Detail During INSERT Operations eto DOGO 5 5 ae wa Get therequest ID and Template ID pointer IS teta a n a u ete n n n e a n a n a e e n a a ae o a a a a IE esete nee e ote s IIS A y Read an existing Get a free region for E INSERT IP INSERT_RECORD put info dio reg dio reg INSERT a record into the pS Track Buffer TB Jind dio reg Figure 11 Record Processing Process Detail During INSERT Operations C THE MASS LOAD FUNCTION The INSERT function as written is limited The function allows only one record INSERT to occur at a time There are no utilities for loading several records ata time The Mass _Load function solves this problem As the name implies the Mass_Load function batch loads large quantities of user generated data from
93. ork relational and functional the emerging object oriented data model and data language B EXTENDING AN EXISTING KERNEL DATABASE SYSTEM The Multi model and Multi lingual Database Management System M DBMS at the Naval Postgraduate School s Laboratory for Database Systems Research has successfully demonstrated that classical data models and their associated data languages can be supported on a single database system Using MDBMS as the experimental Kernel Database System KDS research teams have constructed and implemented model and language interfaces that support the classical data models and languages Hierarchical and DLI Network and CODASYL DML Relational and SQL and that supports one Artificial Intelligence based model and language i e Functional and DAPLEX This thesis extends the previous research by accommodating an object oriented data model and language interface in the KDS Consequently the research shows the feasibility of using the KDS to support modern data models and languages as well as classical ones This thesis details the issues and solutions of creating an object oriented database in the kernel format in the KDS Creating an object oriented database in the KDS advances the theory that complex data structures found in the object oriented data model can be realized as a kernel database in a single database system It is therefore unnecessary to build an entirely new object oriented database system
94. ot read the space as the start of a new attribute and will erroneously read the mass load file The following illustrates the process for generating the initial records file for the demonstration database FACSTU 64 a Generating An Initial Records File The following step by step instructions aid in developing an initial records file on the M DBMS based on the template file descriptor file and set value file generated by following the previous sections The following illustrates the sample process to generate initial record files followed by the results of the process Start by selecting r from the main menu Select an operation t Generate record template d Generate descriptors m Generate modify sets r Generate records x Exit return to previous menu ABDL main Select gt r Enter the template file name FACSTU t Enter the record file name FACSTU r Note that the record file name must always be named after the database using an r extension Otherwise the system will not be able to associate the two files ENTER THE NAME OF THE FILE CONTAINING THE VALUES FOR ATTRIBUTE OID ON TEMPLATE Name NAMEOID s ERROR Cannot open the file After entering the name of the template the above error statement appears Simply ignore this statement The system is accumulating the number of potential records that can be created based on information held in the Template Descripter and Set Value files W
95. possible We also thank Dr Doris Mleczko for her continued interest in and insight into our work Her periodic presence on campus lent meaning and substance to our work Finally we thank our families for their patience support and encouragement xili I INTRODUCTION Users view and access their databases using specific pairs of corresponding data models and data languages of database systems Database computers and systems continue to associate with their specific pairs of data models and data languages Because mono model and mono lingual database systems have persisted over the last three decades many organizations support multiple database systems These organizations are compelled to support multiple database systems in order to maintain diverse types of applications The redundancy of data personnel maintenance documentation and hardware points to the following need to move multiple database systems each of which has a different pair of data model and data language to a single database system that can support a multitude of models and languages A TOWARDS A KERNEL DATABASE SYSTEM DESIGN If a single operating system can support multitudes of different programming languages and data structures can a database system support a variety of data models and data languages In this thesis a kernel database system is proposed which supports in addition to classical data models and data languages such as the hierarchical netw
96. ption allows the user to switch between different databases defined previously in the system d r REDIRECT OUTPUT An option for specifying the output mode of the session This option allows the user to direct the output to the terminal a file or to suppressed output e p PERFORMANCE TESTING An option for enabling disabling the internal and external performance measurement hooks Do not enter this function until a thorough understanding of the system 1s gained Refer to the note at the bottom of the menu f m MODIFY An option for modifying a list of ABDL requests that have been stored in a file g 0 OLD LIST An option for executing all ABDL requests in a given file h x EXIT Returns to the previous menu i e the ABDL main menu Refer to the MLDS MBDS user manual before choosing subsessions marked with an asterisk This statement refers to the user manual that is Appendix A of Paul Alan Bourgeois s 17 December 1992 thesis 2 Creating Requests We now proceed to execute each of these options in turn We continue to use the FACSTU database in our examples The following will detail how the five basic manipulations belonging to the KDS can be accessed and used from within the ABDL ABDM portion of the system 1 e the KDS The five basic operations belonging to the KDS are the INSERT RETRIEVE DELETE UPDATE and RETRIEVE COMMON To generate a request that will manipulate the databas
97. ption define pp def Defines maximums minimums sizes lengths and groups none NMAX aggregate data via struct aggregate_info NMIN PP_ResultBuffer trans_info struct MAX AG_ aggre OPS gate_info MAX_ATT PP Result R Buffer MXAVLN trans_info pp dcl Declares PP structures PP_ResultBuffer trans_info none pp ext Globalizes structures PP_ResultBuffer trans_info none make_result Compiling and resulting Paths information none D REQUEST PROCESSING Table 7 REQP Request Processing File Name File Description define chkptu c Check Point Utilities A grouping of functions lt stdio h gt none Checks all the request in a traffic unit against the record flags def template beno def Checks the validity of a request comm Checks for proper attributes and attribute types data def Checks validity of non insert requests reqp def reqp ext mallocs c Memory Allocation functions creating tables for lt stdio h gt none dblocal def com mdata def reqp def Aggregate definition node aggregate index definition node RC Request Composer request index definition node Request count definition node Request table defi nition node Request index definition node update request information node 97 Table 7 RECT REII Processing ATAR SNORT D772 A T Re huis Dy AE File Name EEA reqcomp C Request Composer a srouping o of functions
98. r and one time interface The M DBMS by design will allow only one database to be in operation at any given time Therefore whenever the user makes any changes to the database in use after the change is complete the backends release their linkage to the database After completing an INSERT the system completely exits the current operation and awaits the next command The user must re initiate the INSERT function to add anymore data To execute a request for any other database other than the database in use requires the user to exit from the system The INSERT operation can only occur within the context of a single database As detailed in Chapters II and IV see Figure 1 Figure 4 and Figure 5 there are two major systems in M2DBMS the Controller and the Backends These two systems share twelve processes when executing the INSERT operation as detailed below in Figure 6 To execute an INSERT the database environment must exist on the backends To create a database the user must first generate a Template file e i the t files and a Descriptor file i e the d files using the DDL compiler How to create these files from within the attribute based database system i e the KDS is detailed in the User Manual Appendix A The compiler will copy the Template and Descriptor files to the backends automatically These files are necessary because they provide the syntax and the Insert Process Communication Paths environment for er
99. r more makefiles The new language interface should be included in its own directory under src 23 inside the Lang_IF directory The makefiles are adjusted to include a path to these files For more information on the design of a non kernel language interface see Bourgeois 1992 F IN SUMMARY The KDS is supported by a select group of operating system system calls by library files packaged with C and by communications between twelve continuously running processes From the KDS viewpoint adding a new interface requires only making minor modifications to the ti c file and the makefiles By following the protocols of the ti c file there is no need for the developer to go beyond TI into the system TI is the gateway to the Kernel System An understanding of the system calls library functions communication processes used by the system aids in understanding the development of new language interfaces In the next chapter the INSERT command is analyzed How the system inserts new records individually and in mass will be detailed 24 V THE INSERT OPERATION The INSERT is the most fundamental operation of the five basic operations available in the KDS The INSERT operation is fully functional and requires no modifications The INSERT operation works correctly and will support the object oriented interface without any further modifications or adjustments A INSERT DESIGN CONSIDERATIONS The M DBMS is a one use
100. r the template file name FACSTU t CHOOSE ACTION TO BE TAKEN FOR ATTRIBUTE TEMP ON TEMPLATE Name n generate a new set for it m modify an existing set for it s do nothing with it Select gt s No action needs to be taken on the record name the record will encompass the whole set of attributes and values CHOOSE ACTION TO BE TAKEN FOR ATTRIBUTE FNAME ON TEMPLATE Name n generate a new set for it m modify an existing set for it s do nothing with it Select gt n tt 1 The attribute FNAME belongs to the record Name By selecting n the user can input values to associate with FNAME Enter the set file name fname s ENTER SET VALUE Luis ENTER SET VALUE Bruce ENTER SET VALUE Dan ENTER SET VALUE TaeWook ENTER SET VALUE Recep ENTER SET VALUE David ENTER SET VALUE Thomas ENTER SET VALUE John ENTER SET VALUE Set generation completed modify it Y N n The process continues until all of the records and attributes are associated with values CHOOSE ACTION TO BE TAKEN FOR ATTRIBUTE MF ON TEMPLATE Name m generate a new set for it 62 ay modify an existing set for it s do nothing with it Select gt n Enter the set file name mi ss ENTER SET VALUE ENTER SET VALUE QIWEADO Set generation completed modify it Y N n CHOOSE ACTION TO BE TAKEN FOR ATTRIBUTE LNAME ON TEMPLATE Name n generate a new set for it m mod
101. ration Receive Sends a message from one task Receives the next message to another task for a task copy to string rec get sd Send get sd hd copy body copy Figure 7 Test Interface Process Detail During INSERT Operations Meanwhile Concurrency Control CC Figure 9 is maintaining the integrity of the meta data and the base data CC initializes a series of tables to maintain concurrency control the Traffic Unit to Attribute Identification Table TUAT the Attribute Identification to Traffic Unit Table ATUT the Traffic Unit to Descriptor Identification Sets Table TUDIST the Traffic Unit to Cluster Identification Table TUCT and the Cluster Identification to Traffic Unit Table CTUT CC then executes the C_New_TrafficUnit CSCC_NewTrafficUnit0 or the DSCC_NewTrafUnit functions based on what type of message the CC received from the Language Interface Controller or the other backends The Directory Manager DM Figure 10 manages all access to the meta data disk The DM receives Traffic Unit messages from REQP finding the descriptors satisfying the INSERT operation The DM then calls the INS_DESC_SRO function At the same time the DM coordinates with Record Processing RECP Figure 11 the gathering of information about how the base data is to be stored The DM after coordinating with RECP then broadcasts the descriptor identification to the other backends The RECP manipulates the base d
102. reading the set into an array for manip ulation Applies to gbd c test db generater gsmodset c gstmpl c intest c Internal Performance Tests provides users with a way to monitor internal message processing routines Internal Test Initiate Timers Computes average time to process a certain msg t1 C Test Interface Main Program main argc argv 101 Generate Standard Template Generates a record template lt stdio h gt lt ctype c gt flags def com mdata def tstint def lt stdio h gt lt ctype c gt flags def com mdata def tstint def lt stdio h gt lt ctype c gt flags def com mdata def tstint def lt stdio h gt lt ctype c gt beno def com mdata def tstint def tstint ext msg def lt stdio h gt flags def beno def msg def com mdata def tstint def tstint dcl dblocal def tmpl def tmpl dcl none none none PRES MARA ES HERA I HER File Name SAAB TT NA TRA gd OTA cacy PROS BA RTT ATED tireqs c tireqsubs c tisr c tisubs c Table 8 TI Test Interface A MS A RRA Se ci aT LAA Neh AA ANA a RANA 21 T ce lt stdio h gt keywords needed to assemble a request lt ctype h gt Insert flags def Retrieve com Delete mdata def Update tstint def Retrieve_common tstint ext Attribute names Subroutines necessary to build and process requests lt stdio h gt
103. redicate target list RETRIEVE TEMP NAME LAST FIRST 13 The second example will retrieve all the records in NAMES in the order of LAST and FIRST There are five queries supported by the attribute based data language INSERT DELETE UPDATE RETRIEVE and RETRIEVE COMMON There are only five aggregate operators supported AVG SUM COUNT MAX and MIN The details of how the other four queries are constructed and how they work are explained in thesis research by Clark and Yildirim Clark 95 E THE KERNEL DATABASE STRUCTURE A RECORD is a set of attribute value pairs Within a record attribute value pairs must have unique attribute value names That is no two attribute value pairs can have the same attribute value name At least one of the attributes in the record is a key Following these two rules ensures each attribute value pair is single valued and each record can be identified by at least one key A record is enclosed by parenthesis The attribute value pairs are contained within these parenthesis lt COURSE CS4322 gt lt INSTRUCTOR Hsiao gt lt SECTION 2 gt lt YEAR 1995 gt lt SEMESTER fall gt A FILE is a collection of records that share unique set of attributes If a record belongs to a certain file then the first attribute value pair of the record will contain the attribute TEMP and the corresponding file name All records belonging to the same file will have the same first attribute value pair For e
104. rface menu This menu will look like Fig A 10 The g option is used to generate a new database in the attribute based form 53 The attribute based ABDL interface g Generate a database 1 Load a database r Request interface x Exit to MDBS main menu Select gt Fig A 10 ABDL Interface Menu When the g option is picked the generate database menu Fig A 11 is displayed This menu is the gateway to database generation To generate a database and be able to conduct operations on the database the user must a Generate the t Template File b Generate the d Descriptor File c Generate Modify Set Values by creating the s file d Generate the r Records File e Load the Database The Generate Database menu Fig A 11 is the main menu for these functions Select an operation t Generate record template d Generate descriptors m Generate modify sets r Generate records x Exit return to previous menu ABDL main Select gt t Fig A 11 Generate Database menu 54 There are five options on the menu screen These options include Option t a collection of menus for generating the record template file which contains the meta data for the different record types in our database Option d a collection of menus for generating the descriptor files Descriptor files contain the directory attributes of the database along with possible initial val
105. roper associated accounts automatically The system logs into the default directory db11 u mdbs automatically The mdbs account is used primarily for thesis research There are numerous directories from which the M2DBMS system runs Options exist to predetermine the number of backends that the user desires to use while running a particular database application Due to constant manipulation and changes that occur from thesis research our focus will be placed on using the kwontw and badgett account on the db11 terminal Entering the unix command Is lists all the current accounts on the dbil terminal inside the mdbs directory Look for current account on the db11 terminal in the Fig A 2 46 db11 u mdbs gt s Calendar RunData andy erhan master Demo Sockets badgett greg necmi Docs Thesisl0 bin kellett o o Run UserFiles clark kwontw Fig A 2 Current accounts on the db11 terminal 95 04 04 2 Direct Log On from Terminal DB11 You can directly log on from terminal db11 in Lab 500 The process is the same with the exception of using the rlogin command Do not use rlogin Simply enter your name at db11 login When password appears after the government s security warning press Enter Login incorrect will then appear Ignore this and enter mbds When the password prompt reappears enter the password B AFTER LOGGING ON 1 Copy the schema and request file
106. ror checking and maintenance of the relationships between the attribute value pairs 25 Attribute Base Insert Post y f Request Test Interface Information Processing Preparation TI Sen Tauon PP de REOP Controller Controller e Put CGET CPUT Concurrency Directory Record Control Manaciment Processing DM Figure 6 INSERT Process Communications 26 B THE INSERT OPERATION Every process and request in the M DBMS starts at the Test Interface TI The TI is the gateway into KDS Every operation must follow the constructs and protocols of TI Figure 6 and Figure 7 show graphically the system calls occurring as an INSERT executes The UDM and UDL interface with KDS through a function called TL_ SELECTO Each Language Interface must select the Test Interface as the first step in executing operations that effect the database The object oriented language interface module is unique because the OODDL and OODML include the RTM The RTM embedded in the LIC is the interface to the TI The TI_SELECT function is used to initiate Tl execute Tlrexecute is a function that sends message traffic to or receives message traffic from the MDBS Message traffic consists of two pointers the database identification pointer dbid and the trafficid The trafficid is the pointer identifying the transaction as an INSERT operation The TI initiates the execution of the INSERT by sending the traffic unit to Request Prepara
107. s pry pry checks the Meta disk and ensures no data is on it The pry command will display what data is on the disk If the line displays zeroes or the system returns the statement no data is on the controller then the data disk is clean and you are ready to execute the MDBS system If there is an existing database stored on the disk the results of the pry command will look similar to Fig A 6 000000 WW003 EM P R E C 0 0 0 0 0 0 0000016 O 0 W W O O O O O O O XO XO NO NO NO Fig A 6 Meta disk with existing data 49 The zero command cleans the meta disk of any existing data To avoid unexpected crashes of the system during execution it is best to ensure the meta disk is clean Fig A 7 displays what the user sees after executing the zero command db11 u mdbs run 39 gt zero No match No match File to zero dev sd1c File size 105638400 Bytes to zero 8000000 Bytes written 819200 1638400 2457600 3276800 4096000 4915200 5734400 6553600 7372800 8000000 Fig A 7 Result of the zero command Provided the you have either cleaned the meta disk or plan to process an existing database you are now ready to run the MDBS system From any MDBS directory type the command start or begin to start the MDBS interface 4 Set Up The User Screen We recommend opening two separate C shells while operating the MDBS system This will facil
108. s The subdirectory UserFiles contains the schema and request files for the existing databases If your database exists its files will be listed here and is ready to be processed Otherwise if the database files are not listed then you must either create them or transfer them into the UserFiles subdirectory The UserFiles subdirectory can be visited from any location within the system by entering data at the prompt 2 Kill any MDBS processes still running on the system Prior to executing the command start or begin you must verify that there are no processes still running the MDBS system The UNIX command ps ax will display all active processes 47 on your terminal whether you own those processes or not Because an aborted run of the MDBS system can leave MDBS processes still running the ps ax command will help locate these processes and by using the UNIX command kill you can stop the lingering processes Look for any process like those highlighted in Figure A 3 A second method for killing extraneous processes is to use the stop cmd command This command will find all the extraneous processes running and safely end them as shownin Fig A 4 PID TT STAT TIME COMMAND 07D 0 41 swapper 1 TW 0 03 sbin init 27D 0 10 pagedaemon 557 S 3 40 portmap 58 IW 0 00 keyserv 637 S 11 43 in routed 80 IW 0 03 syslogd 88 IW 0 14 usr lib sendmail bd qth 95 IW 0 00 rpc statd 96 TW 0 00 rpc lockd 103
109. s for a new database beno dcl Saves database 1d dblocal def Sends database id to other processes com Gets Users id and broadcasts user id and database 1ds mdata def tmpl def tstint def msg def dblsr c Database Load Subroutines none none Sends msg to create a database and template Sends msg to insert attribute descriptor and catch all descriptors Generates descriptor ids Sends msg to insert type C attributes Checks status of actions taken checks the response to DBL of action gdb c Generate Database Creates arbitrarily large test data lt stdio h gt DEBUG bases for MDBS using standard template file as input It com creates a standard record file as output mdata def main argc argv tstint def gsdesc c Generate Standard Descriptor Generates descriptor file lt stdio h gt for each template lt ctype c gt Includes interactive menus flags def Establishes upper lower bounds com Applies to the gdb c test db generater mdata def tstint def gsgenrec c Generate Standard Generic Records Generates records lt stdio h gt none using sets Applies to gdb c test db generater flags def com mdata def tstint def 100 Table 8 TI Test Interface File Name File Description define Generate Standard Generate Modify Sets Generates and modifies sets of values Applies to gbd c test db generater egsgmset c Generate Standard Modify Set Modifies a set of values for an attribute by
110. s management of upgrades will be difficult and time consuming to debug We suggest a copy of the system be made and experimented on tested and debugged before committing to any permanent changes to the original system A LOGGING ON 1 Remote Log On You can remote log on to the MDBS from any terminal on the Computer Science Department s Unix network You start by entering rlogin db11 at the terminal prompt The user 45 first sees a security warning message and the Password prompt appears Figure A 1 is an example of what you will see By pressing the return key Login incorrect and Login prompts appear Do not worry about the Login incorrect press Enter and when Login reappears enter the Host name mdbs and then following the prompts enter the password FeR WARNING KEKEKAKKKA EK UNAUTHORIZED USE OF THIS DEPARTMENT OF DEFENSE DOD INTEREST COMPUTER SYSTEM AND OR SOFTWARE IS PROHIBITED BY PUBLIC LAW USE OF THIS SYSTEM CONSTITUTES CONSENT TO MONITORING CLASSIFIED PROCESSING ON THIS SYSTEM IS PROHIBITED Password Last login Tue Apr 4 08 50 30 on console mdbs processes running on db11 users logged on to db11 8 59am up 35 days 23 21 4 users load average 0 50 0 27 0 04 User tty login idle JCPU PCPU what mdbs console 8 50am 8 35 35twm mdbs ttyp0 5lam 3 5 2 sh mdbs ttypl 8 58am wW Fig A 1 Login process on the db11 machine Following these instructions activates the p
111. s of the Kernel Data Model KDM and the Kernel Data Language KDL Although many database models can be used to support a kernel only the Attribute Based Data Model ABDM supports the architecture of the M DBS and the parallelism associated with the multibackend design The ABDM is the KDM for the M DBS The ABDM was chosen as the kernel data model because ABDM allows for storage of the meta data and base data separately ABDM introduces equivalence relations which partition the base data into mutually exclusive sets called clusters These clusters are distributed across the backends allowing parallel access 11 to the base data Coupling ABDM with the ABDL as the KDL facilitates database design The attribute based model and language support database research with a semantically rich and complete language The ABDM and ABDL also support database research with a simple storage and parallel processing architecture C THE ATTRIBUTE BASED DATA MODEL The ABDM and its associated data language have proven to provide all of the required data definition capabilities and manipulation strategies necessary to implement Hierarchial Network Relational and Functional data models Demurjian 87 The attri bute based data model is simple in design and concept Hsiao 91 As the name implies the attribute based data model refers to storing data as a series of attribute value pairs Attribute value pairs are the simple building blocks of the kernel
112. sM TnoMoGe InM TFetchM ToOl dReqM Messages to get the time from any process TPio WriteM TPioReadM TRecpAllM TDiskIOM GeTimes Tim_Arr_E mp Stop msg def cont d pel def Process Control definitions for ethernet none MaxBack ends charMax Backends Internet Port numbers CNTRL_N AME OFFSET NETNAME BE_PORT CNTRL_P ORT MAX PLACES MAXISI BRDCSTS Z 120 Table 9 COMMON Files held in common by every module File Name File Description include define lt sys un h gt PREFIX lt ermo H gt NoCntrl Proc NoBeProc tmpl def Template Definitions for database information tables none none ack def Definitions for acknowledgements none RETPORT ACKPORT MAXINT DELIM CHAR ISIPREFIX NOFRAGS host_name_ len min_ws_nu mber max_ws_nu mber beno dcl Backend Number Declarations none none msg dcl Message Declarations none none sndrcv dcl Globalizes and declares variables for socket connections none none Initiating sending and receiving sndrcv def Socket Definitions for communications 121 APPENDIX C MASS_LOAD FUNCTION SOURCE CODE include lt stdio h gt include lt strings h gt include lt ctype h gt include lt licommdata h gt include lt ool h gt include lt ool_lildcl h gt include lt ool_kc h gt include flags def o_mass_load record_file char record_file This function is used to load a group of recor
113. sing the object oriented data model language interface in M2DBMS and the need for a Mass_Load utility In Chapter Vl isa discussion of the Kernel Formatting System KFS added to our research to assist other teams and their progress In Chapter VII we summarize our accomplishments and point out some limitations of this research Using an attribute based data model the Kernel Database System can realize complex data structures in the object oriented data model However we suggest some future research using the attribute based data model in Chapter VII IL SUPPORTING THE OBJECT ORIENTED DATABASE Prior to this research it has not been clear whether or not the Kernel Database System KDS designed to support classical databases can support the complex object oriented database Specifically can the KDS support an object oriented database which includes the object oriented paradigms of inheritance covering encapsulation and polymorphism Object oriented constructs are complex Object oriented paradigms are fundamentally different from paradigms of classical databases The real issue involves whether or not a kernel database with only attribute value pairs can be used to represent complex constructs Can the KDS support complex constructs like those fundamental to object oriented paradigms A CLASSICAL AND OBJECT ORIENTED DATABASE MODELS Classical databases are specifically designed to support certain well defined applications
114. t c Test the Interface lt stdio h gt none Test interface through continuation of session or during lt ctype h gt a subsession flags def Select an output media for answers to requests com Change database being used mdata def Save TU s to a file of the user s selection tstint def Allow modifications of old traffic units tstint ext Retrieve and execute an old TU list or individual TU msg def Print out the traffic unit sent Save new database id GSMAIN contained in get_DB dbid funtion unixtime c Globalizes both stop and start timers lt stdio h gt extern lt time h gt CRT fig flags def resultptr com mdata def dblocal def Defines T I T 1 flags def Defines flags required within TL LangIF_Fla i 5 103 Table 8 Ti Test Interface IS AA A UR RO it IAS OAS ERR A ISA EAT RN AS r 5 Yi A we la N LF oad T Cae EA MRA i Sri Perey Nath aL o TE NT NA ERRATA DIR A Ye Wee Bk YAS Shaka oer it tarea RCA RH we tstint def Defines s SIZES s lengths n maximums minimums s and r maxl none MNTrafUni ni mum number of traffic units ts RESLength AOLength SetSize MRLength MAX_REC ORDS MAXLINE TIMER_QS IZE TIMER_Q WIDTH TIM_STR_ LEN NO_OF_RE Q_REPS MPLength REQLength TULength ALLCAPS NOTHING DBCAP ONECAP NOCAPS FnVnsS TI_EOTU dbl_eof dbl_eod tstint dcl Test record template to be used when included in a file none tstint ext Globalizes variables an
115. te that there are thirteen entries This descriptor file creates the relationships between the FACSTU template and its thirteen related records Will attribute OID be a directory attribute Y N n Will attribute FNAME be a directory attribute Y N n Will attribute MI be a directory attribute Y N n Will attribute LNAME be a directory attribute Y N n PE EAE EEE E AEAEE E TA AE OT continue Will attribute OID_F be a directory attribute Y N n Will attribute STUDENT_NUM be a directory attribute Y N n Will attribute MAJOR be a directory attribute Y N n b An Example Descriptor File Once all of these questions are answered the system will create the FACSTU d file After creating the descriptor file the following results are stored in the system as the FACSTU d file FACSTU TEMP b s 1 Name Address Person Faculty Course fac Civ_ fac Mall fac Course Course_stu Team_stu Team Team fac Student 60 As can be seen the descriptor file holds the relationships between the main template file FACSTU and the records that are related to it Each name represents a record or tuple of attributes and attribute types existing in a set by that name 5 Generate Modify the Set Values After finishing generating the descriptor files the user selects option m at the next selection menu Selecting m initiates execution of the Generate Modify Set Value files in the i
116. terey California September 1995 Watkins S H A Porting Methodology for Parallel Database Systems Master s Thesis Naval Postgraduate School Monterey California September 1993 Bourgeois Paul The Multibackend Database System MDBS User s Manual Mas ter s Thesis Naval Postgraduate School Monterey California December 1992 Senocak E The Design and Implementation of a Real Time Monitor for the Execu tion of Compiled Object Oriented Transactions O ODDL and O ODML Monitor Master s Thesis Naval Postgraduate School Monterey California September 1995 137 138 INITIAL DISTRIBUTION LIST Defense Technical Information Center AANE EE TI EEE AEE Cameron Station Alexandria VA 22304 6145 e Audley KNOX CIDI ip ic AE Code 52 Naval Postgraduate School Monterey CA 93943 5101 Dr Ted Lewis Chairman Code CS unicas sda a a u ok Bee A idad Computer Science Department Naval Postgraduate School Monterey CA 93943 Dr David Ke Hsiao Code CSAS rasa dee e Computer Science Department Naval Postgraduate School Monterey CA 93943 Dr C Thomas Wu Code CS KA cscs ire is eeu ne Computer Science Department Naval Postgraduate School Monterey CA 93943 Ms Doris WIECZK Oaks ta a A E AAA DA ee ee Code P22305 Weapons Division Naval Air Warfare Center Pt Mugu CA 93042 5001 lt Ms Sharon Calle t Re Se See he NAIC SCDD 4115 Hebble Creek Rd Wright Patterson AFB OH 45433 5
117. terey CA 93940 A5 238 Montecito Monterey CA 93940 A6 12 Spanagel_Cr Monterey CA 93940 A7 14 Spanagel_ Cr Monterey CA 93940 A8 18 Spanagel_Cr Monterey CA 93940 Person PINI AIM P2 N2 A2 M P3 N3 A3 M P4 N4 A4 M P5 N5 A5 M 69 P6 N6 A6 M P7 N7 A7 M P8 N8 A8 M Faculty P6 CS P6 P7 CS P7 P8 CS PS Course_fac SOCI C1 P6 SOC2 C2 P7 SOC3 C3 P6 SOC4 C4 P8 Civ_fac P6 Prof P6 P7 AProf P7 Mil fac P8 LCDR P8 0 Course C1 DBSEM 4322 1 P6 C2 OOPROG 4114 1 P7 C3 DBI 3320 2 P6 C4 HCI 4203 1 P8 Course_stu SOCS1 Ci Pi SOCS2 C2 Pi SOCS3 C4 Pl SOCS4 Ci P2 SOCSS C4 P2 SOCS6 C1 P3 SOCS7 C2 P3 SOCS8 C3 P3 SOCS9 C4 P3 70 SOCS10 C1 P4 SOCS11 C4 P4 SOCS12 C1 P5 SOCS13 C4 P5 Team stu SOSI PI T1 SOS2 P2 Ti SOS3 P3 T1 SOS4 P4 T1 SOSS P5 Tl SOS6 P1 T2 SOS7 P3 T2 Team Ti DB5 T2 OOP Team_fac SOTI P6 Ti SOT2 P7 T1 SOT3 P7 T2 Student P1 10 CS P1 P2 20 CS P2 P3 30 CS P3 P4 40 CS P4 P5 50 CS P5 D LOAD THE DATABASE Before loading the database the template descripter and record files must be created Executing a loading of a database on the M DBMS depends on information stored in these files The backends depend on the template and descriptor files to manage the data between them 71 Therefore they must be loaded onto the back end system The following illustrates the process for loading the database and the results of th
118. the data stored in the database is stored in this simple format Each file represents a table of records Each record is simply a row in a table The keywords i e attribute denote the column headings Each record is the value associated with the attribute from one row Whatever model the user chooses to interface with the attribute based data model the user s information is translated into a set of records consisting of attribute valued pairs D THE ATTRIBUTE BASED DATA LANGUAGE The attribute based data model provides a complete set of operations to access the database To append records to the database requires the use of the reserved word INSERT INSERT is followed by the record to append in the database For example INSERT record INSERT lt TEMP NAME gt lt FIRST Dan gt lt LAST Kellett gt INSERT lt TEMP NAME gt lt FIRST Tae Wok gt lt LAST Kwon gt Using the reserved word INSERT causes the system to create the database file called NAMES or if there is not a file the system will create a new one The records are then inserted into the new database or appended to the existing database Access to the database employs the use of predicates Predicates are constructed by using a reserved keyword a relational operator and a value Queries are formed using reserved words associated with a predicate Each query is prefaced with a reserved word followed by a predicate For example RETRIEVE p
119. tion REQP If the system can complete the INSERT request statement it will then call REQP using the TI_S TrafUnit function The TI_S TrafUnit function passes its two arguments the database name and INSERT request as function parameters to REQP Figure 8 REQP then checks for proper format and syntax using the PARSER function PARSER calls Chk_ParsedTrafUnit to ensure the INSERT request is using the correct database name attribute name and attribute value type If there are no errors REQP will send the traffic unit identifying the database and the transaction INSERT to the backends for processing During these processes the INSERT Information Generation IIG process see Figure 6 is handling clustering of the database records across the backend system The IIG ensures each backend includes a global table of locality information containing addresses detailing backends cylinders and track numbers 27 SOUNDS A Arata da execute Send a traffic unit to MDBS Check if there are requests sent to MDBS TI chk regs Jeft f i q which have not finished execution Output the result to the current and or Req Res output Response File Prints out the response from MDBS TI print RegRes P f into the file specified by the o file 0000500500 merta a a a a n n n a a a a a a n n a e o pa aa n a ata a a a a ora a ata o oreto o p m p e ere a a m n a a OOOO S TrafUnit d a traffic unit o Request Prepa
120. tribute based data model which is the kernel data model of the KDS Second it details how the KDS is designed showing why no changes needed to be made to the KDS to implement the object oriented toy database Third it argues the advantages of using a KDS in the database system design The KDS design produces savings in costs from compatability reduced training expandability and software reuse IL IMI IV TABLE OF CONTENTS INTRODUCTION Sonar a ERa E l A TOWARDS A KERNEL DATABASE SYSTEM DESIGN ooococcconcornnorsnnnonnos 1 B EXTENDING AN EXISTING KERNEL DATABASE SYSTEM 04 l C THE OBJECTIVES OF THE TAES Sian 2 D THESISORGANIZATION tina O 2 SUPPORTING THE OBJECT ORIENTED DATABASE cccccccnconnnccinannnnnanonsanannos 5 A CLASSICAL AND OBJECT ORIENTED DATABASE MODELS 5 B TESTING THE OBJECT ORIENTED DATABASE occcccnnccoocnornnnsnorannccnacanos 6 THE MULTI MODEL MULTI LINGUAL DATABASE SYSTEM cee 7 A THE MULTIBACKEND DATABASE SUPERCOMPUTER cc ccceeteeees 7 B THE MULTIMODEL MULTILINGUAL DATABASE SYSTEM 8 C THE ATTRIBUTE BASED DATA MODEL oooococccccnnioncccnnonannenocnsnnanaconanoss 12 D THE ATTRIBUTE BASED DATA LANGUAGE ooooocccccoonccnnoncnncnnarnnnnnnoannos 13 E THE KERNEL DATABASE STRUCTURE connnooconanonnconocanonnoconccconanananaconoo 14 F INSUMMAR Y tana 15 THE KERNEL DATABASE SYSTEM ota id 17 A OPERATING SYSTEM SUPPORT FOR KDB ooonnnnnicococinion
121. u mdbs VerE 6 BE dio out 26837 p0 I 0 00 db11 u mdbs VerE 6 BE sbeppcl out Fig A 8 Six Controller CNTRL and Six Back_End BE Processes C RUNNING M DBMS The attribute base data model ABDM is the kernel data model KDM for the M2DBMS system The ABDM was chosen as the kernel data model because ABDM allows you to store the meta data and base data separately ABDM introduces equivalence relations which partition the base data into mutually exclusive sets called clusters These clusters are distributed across the backends allowing parallel access to the base data Coupling ABDM with the attribute based data language ABDL as the kernel data language KDL facilitates database design The attribute based model and language support database research with a semantically rich and complete language and with a 51 simple storage and parallel processing architecture For more information on how M DBMS can support classical and emerging database designs see Chapters 2 3 4 and 5 of this thesis 1 Database Constructs Data in the ABDM is stored as an attribute value pair Attribute value pairs are the simple building blocks of the kernel database The attribute value pairs consist of attribute names and corresponding values When displayed an attribute value pair is enclosed by a pair of angled brackets The attribute name is always first followed by the value for the attribute If the attribute value pair has no value then only t
122. ues for the descriptors of each directory attribute e Option m a collection of menus for generating actually modifying data sets for each of the attributes in the database These data sets are then used to systematically generate arbitrary records for the database using the r option e Option r a collection of menus for generating the record file The record file contains a group of records that are to be mass loaded by the M DBMS Together the m and r options can be used to generate test or sample databases Using option r creates a test or sample database which contains records that have been systematically constructed from the sets of values created by the m option Through these two options the user can quickly set up a test or sample database Option x returns you to the previous menu The next sections of this manual will describe how each of these functions is performed 3 Generating A Template File Generating the template file is the first step in creating a database on the KDS The template and descriptor files 1 e the d and t files are used to describe the structure of the attribute based database These files must be present to tell the kernel database system what the template names are and their associated attributes For the initial creation of a database we suggest that using vi or emacs for generating the d and t files outside the system The system can be cumbersome The following
123. ute and then for the value End each attribute or value with a single lt return gt When you have finished entering keywords respond to the ATTRIBUTE gt prompt with a lt return gt ATTRIBUTE lt cr gt to finish gt TEMP VALUE gt Name ATTRIBUTE lt cr gt to finish gt OID VALUE gt N9 ATTRIBUTE lt cr gt to finish gt FNAME VALUE gt David ATTRIBUTE lt er gt to finish gt MI VALUE gt K ATTRIBUTE lt cr gt to fimish gt LNAME VALUE gt Hsaio ATTRIBUTE lt cr gt to finish gt The process will use the information above to construct an Insert Request following the conventions required by the system INSERT lt TEMP Name gt lt OID N9 gt lt FNAME David gt lt MI K gt lt LNAME Hsaio gt Continue selecting r for request then i for insert inputing the information requested until all of the inserts desired are complete b Creating aRETRIEVE Request The Retrieve operation takes two arguments a query and a target list The query specifies the set of records to be retrieved from the base data and the target list specifies the values to be displayed from the retrieved data A simple target list lists the values of attribute value pairs whose attribute have been targeted A complex target list may specify an aggregate function over a specific attribute An example of complex functions is taking the AVERAGE over attribute GRADE The output being an average grade r
124. x RE petot D ata Chk _ParsedTrafUnit Put a request into the form Check the request against template required by the Directory Manager DM get tmpl ptr chk request chk insert rec Insert attr name Put the request into the chk value type form required by the Back Ends ROS OO OOOO SOS OOO O O CO RO SR A tata ta Figure 8 Request Preparation Process Detail During INSERT Operations CSCC NewTrafficUnit CS_Traffic_Unit_ Init CCR DescldSets addTUDIST CS_Try_to Start RequestCS _ CCLockConversion ES CC LockConversion C_S CS CSCC_Complete CCR rdRelease DidSets CSCC_Release DidSets DSCC_NewTraf Unit DS_Traffic_Unit Init CCR Attrs TUATadd ATUTadd DS_CC _LockConversion ATUTaF ind ATUTSearch ATUTtF ind ATUTrFind C_S DS DSCC_Complete CCRS raRelease Attr DSCC_Release Attr ATUI init CTUTinit TUATinit TUCTiniK TUDISTinit C New Traffic Unit0 C_Traffic_Unit _Init CCR Cids Cadd_TUCT Cadd_CTUT C Try _to Exec C_Lock_ Conversion C_Convertable findCTUT C_RE Search_ TUCT C_S RidQ C Request Completion CCR FinishedRid RPCC_ ReleaseClusters Figure 9 Concurrency Control Process Detail During INSERT Operations 31 e GOCO DM_R Message Get the message DM R Sender DM R Type AT_l
125. xample lt TEMP NAMES gt lt LNAME Hsiao gt lt FNAME David gt lt MIDDLE K gt indicates that the record belongs to the file NAMES The file contains a detailed description of the ABDM and ABDL In the kernel data model the system uses only template files 1 e t files and descriptor files i e d files The schema files belonging to the data model and data language interfaces outside the KDS generate the template and descriptor files necessary for mapping an interface model language into the kernel data model data language The ABDM being the kernel model does not need its own schema for mapping to itself 14 The template and descriptor files i e the d and t files are used to describe the structure of the attribute based database It is these files which tell the kernel database system what the template names are and the attributes contained within a template Furthermore the attribute type and any constraints on these attributes will be noted in these files A template can be thought of as the name of a relation in a relational database The template file lays out the tables that will be used to form relationships between data in terms of columns column headings and rows The template file contains the name of the database followed by the number of templates within the database After the number of templates the next number in the template file s the number of attributes in template Attributes are l

Download Pdf Manuals

image

Related Search

Related Contents

  Manuel - Mares  Gizmo VIBE SQUARE  Nortel Networks 21 PCI 10/100 User's Manual  Bedienungsanleitung - inShop.hu webáruház  BILLMASTER – Desktop Manual and Tutorials  Manual de usuario Activación de certificado SSL SECURITY DATA  User Manual of DS-1100KI Network Keyboard V1.0  JeppTC-User Manual Version 1.2  IC64-16 - Pyramid Technical Consultants  

Copyright © All rights reserved.
Failed to retrieve file