© All rights reserved. U.S International Tech Support DBMS: Direct-Access and SQL File Types Nico Spence, Chief Marketing Officer Nick Decker, Engineering Supervisor BASIS International Ltd.
© All rights reserved. U.S International Tech Support Overview ► BASIS DBMS Direct-result-set navigation and maintenance SQL-result-set navigation and maintenance ► New DBMS Objects BBjFileInfo BBjOpenFileInfo ► IOLISTS vs. Templates ► Extended File Types ► DBMS Deployment Options
© All rights reserved. U.S International Tech Support New DBMS Objects ► BBjFileInfo Object Provides object-oriented way to access file information traditionally retrieved from the FID() and FIN() Associated with an open channel, so it provides a dynamic view of the file (methods always return current information) Retrieve information such as Filename Filesize Filetype Key information Record information
© All rights reserved. U.S International Tech Support BBjFileInfo Demonstration
© All rights reserved. U.S International Tech Support BBjOpenFileInfo ► Programmatic access to opened file information Advisory Locking Extracted File name Locked Open Type Read Only User ID String Host Name Force Close Documentation Link
© All rights reserved. U.S International Tech Support BBjOpenFileInfo Demonstration
© All rights reserved. U.S International Tech Support Extracted Record Demonstration
© All rights reserved. U.S International Tech Support IOLISTS ► IOLISTs - legacy style of input with drawbacks Code using IOLISTs is less legible and more difficult to maintain 0100 IOLIST A$,B[ALL],C$,D,IOL= IOLIST E$,F,G$ IOLISTs are significantly slower than string templates
© All rights reserved. U.S International Tech Support String Templates ► String templates – modern input style with advantages Describes a record in a file or SQL result set Field name Data type (character, numeric, etc.) Fixed or variable length Terminators, padding characters
© All rights reserved. U.S International Tech Support String Templates ► String templates (continued) Easy access to fields Required for SQL and SELECT verb access Significantly faster than IOLISTs Code is more legible and easier to maintain Can be retrieved via SQL GET TABLE INFO Text area in VKEYED File
© All rights reserved. U.S International Tech Support Extended File Types ► XKEYED files ► JKEYED files ► VKEYED files ► ESQL Files
© All rights reserved. U.S International Tech Support XKEYED File Type ► BBj offers more file types XKEYED files Unlimited number of keys Unlimited number of key segments Unlimited key length Smaller than MKEYED files Faster record iteration
© All rights reserved. U.S International Tech Support XKEYED Demonstration
© All rights reserved. U.S International Tech Support XKEYED Demonstration
© All rights reserved. U.S International Tech Support JKEYED File Type ► BBj offers more file types (continued) JKEYED Files (Journaled Files) All file modifications are: ♦ Atomic – all operations completely succeed or completely fail ♦ Logged to automatically restore a potentially corrupt file to its last known good state
© All rights reserved. U.S International Tech Support JKEYED File Type ► BBj offers more file types (continued) JKEYED Files (Journaled Files) Transaction Tracking ♦ Allows the programmer to define a set of operations on multiple files to be treated as a single operation ♦ Allows programmer to commit or rollback the entire operation
© All rights reserved. U.S International Tech Support JKEYED File Type ► BBj offers more file types (continued) JKEYED Files (Journaled Files) True variable length records ♦ Perfect for BLOBs (Binary Large Objects) to store - Images - Audio - Video - Complete documents
© All rights reserved. U.S International Tech Support VKEYED File Type ► BBj offers more file types (continued) VKEYED Files True variable length records ♦ Reduced disk usage ♦ Perfect for BLOBs (Binary Large Objects) to store - Images - Audio - Video - Complete documents
© All rights reserved. U.S International Tech Support VKEYED File Type ► BBj offers more file types (continued) VKEYED Files (continued) Dynamic keys - add, remove, and change keys Named keys - reduce maintenance coding Text area - write string templates in the header
© All rights reserved. U.S International Tech Support VKEYED File Type ► BBj offers more file types (continued) VKEYED Files (continued) REM Create a VKEYED file REM 64 is the expected average record size erase p_file$,err=*next vkeyed p_file$,[1:1:6],[2:1:3],[3:1:2:"D"],0,64
© All rights reserved. U.S International Tech Support VKEYED Details Demonstration
© All rights reserved. U.S International Tech Support BBjFileInfo ► BBjFileInfo Object (continued) Special VKEYED functionality Add keys Remove keys Change existing keys Set key names Set associated text
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types
© All rights reserved. U.S International Tech Support VKEYED File Size Demonstration
© All rights reserved. U.S International Tech Support VKEYED File Speed Consideration ► Disk Speed ► Network Speed ► File structure ► Differences measured in milliseconds
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types ► BBj offers more file types (continued) ESQL Files Exclusively for SQL access; not a BBj file Created via SQL ‘Create Table’ syntax ♦ Configured in the Database Properties section of the Enterprise Manager
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types ► BBj offers more file types (continued) ESQL File Features Contains dictionary information in the file Supports variable length records Supports dynamic index creation Offers true SQL data types ♦ Numeric values with a precision and scale ♦ Dates & Timestamps - Stored as a native type - No longer require mapping to a column extension
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types ► BBj offers more file types (continued) ESQL File Features (continued) Optimizations ♦ Performance gains - Faster inserts - Faster data retrieval ♦ Able to read a single column instead of always reading a whole row - No longer byte array based
© All rights reserved. U.S International Tech Support BASIS DBMS – New File Types ► BBj offers more file types (continued) ESQL File Features (continued) Future enhancement possibilities include ♦ Identity columns (auto increment) ♦ Column and row constraints - Foreign key relations - Not NULL constraint - Default values ♦ Optional Case-Sensitivity ♦ Support for advanced ALTER TABLE syntax
© All rights reserved. U.S International Tech Support ESQL Demonstration
© All rights reserved. U.S International Tech Support BBj File Type Comparisons
© All rights reserved. U.S International Tech Support DBMS Deployment Options ► Single-tier Thin Client Interpreter DBMS ► Two-tier Fat Client on different machines DMS on separate machine ► Three-tier Thin Client on different machines and the Interpreters running on the same machine with the DBMS Thin Client of different machines connecting to a centralized interpreter server that connects to a separate DBMS server
© All rights reserved. U.S International Tech Support DBMS Redundant Deployment Options ► Load-balanced interpreter servers connecting to: Storage area network SAN connected to RAID High-availability servers Highly Recoverable File System Journaled File System
© All rights reserved. U.S International Tech Support Summary ► BASIS DBMS Direct-result-set navigation and maintenance SQL-result-set navigation and maintenance ► New DBMS Objects BBjFileInfo BBjOpenFileInfo ► IOLISTS vs. Templates ► Extended File Types ► DBMS Deployment Options