280 likes | 414 Views
Web to Database Connectivity Tools. Frank Cervone Assistant Director for Systems DePaul University Libraries Access ‘98 October 3, 1998. Introduction. Databases Database APIs Programming Languages Access Models. Databases. Flat files Relational databases Object-oriented databases.
E N D
Web to Database Connectivity Tools Frank Cervone Assistant Director for Systems DePaul University Libraries Access ‘98 October 3, 1998
Introduction • Databases • Database APIs • Programming Languages • Access Models
Databases • Flat files • Relational databases • Object-oriented databases
Flat Files • Simple implementation • regular text • basic encoding • word, excel files
dbm Files • UNIX/gnu • library of routines that manage data files containing key/data pairs • read, write, delete by key • nonsorted traversal of all keys
dbm File Example There is no inherent mechanism for ensuring data consistency
Relational Databases • Most common data management scheme • Data is organized into two-dimensional tables of rows and columns • Data is decomposed to its simplest form • Normalization reduces data inconsistency • Referential integrity
Relational Database Example Course Table Enrollment Table Student Table
Object-oriented Databases • Can mean many things • Data exists as objects • each object encapsulates • data (attributes) • methods (procedures) • is a member and instance of a class of objects • may be a subset of a class and inherit characteristics of the superclass
Object-oriented Example Students Courses
Database APIs • Native-interface • ODBC • JDBC • CORBA
Native Interface • Low-level interface • Direct call from a program to an access method to retrieve data • Typically only used directly when accessing flat files • Often used from compiled programming languages
ODBC • Open Database Connectivity • Standard method for applications to request database information from other applications (i.e., database servers) • Common interface and language (SQL) to disparate database systems • Examples: Oracle, MS-SQL Server, MS-Access, DB2
ODBC Example Driver Manager Application MS-Access Driver Oracle Driver MS-SQL Driver MS-Access Database Oracle Database MS-SQL Database
JDBC™ • Java Database Connectivity • Interface to ODBC for Java programs • Standard method for Java programs to request database information from other applications ( i.e., database servers) • Common interface and language (SQL) to ODBC-compliant database servers
CORBA • Common Object Request Broker Architecture • Standard method for requesting objects from object-oriented database servers • Adoption has been slow, but is growing
Programming Languages • Java • C and/or C++ • PERL/CGI • VBScript/ASP
CGI • Common Gateway Interface • A standard programming interface to web server applications • These applications act as gateways between the web server and the database
CGI Overview Client Web Browser Web Server Program or Script Database
CGI Details • Browser sends URL request with embedded CGI program name • Web server set environment variables, executes program, and passes form data via STDIN • Program examines environment variables, reads STDIN, performs requested functions, calls database • Database receives request from program and retrieves data
CGI Details Continued • Database returns data to calling program • Program acts on returned data • HTML page, text page, redirect command • sends results to web server via STDOUT • Web server creates HTTP-formatted result • Browser displays web page
CGI Interaction Client Web Browser HTTP Web Server CGI Program or Script ODBC Database
Using Databases from the Web • CGI program • C, C++ • PERL • Intermediate program • mSQL/Lite • Database with web support • FileMaker Pro • Special web server • VBScript/IIS • ColdFusion
Displaying the Data • CGI program - • generates the web page on the fly • Database with web support • page is generated by database program • Intermediate program/Special web server - • page is interpreted and a new one is generated in its place
Interpreted Page Example <HTML> <BODY> <% set conn=server.createobject(“adodb.connection”) conn.open “DSN=Students;uid=master;pwd=test” set result=conn.execute(“select * fromenrollment”) response.write “<TABLE BORDER=1>” response.write “<TR>” for I=0 to howmanyfields response.write “<TD><B>” & result(i).name & “</B></TD>” next response.write “</TR>” . . . (etc.)
Scenarios • FileMaker Pro • MS-IIS/VBScript • mSQL/Lite • ColdFusion/Oracle
Suggestions • Understand your current needs • Project for your future plans • Keep server diversity to a minimum • Hire/train appropriate personnel