Download presentation
Presentation is loading. Please wait.
Published byKerry Griffith Modified over 9 years ago
1
Databases Illuminated Chapter 13 Databases and the Internet
2
Uses for Web-based DB Applications e-commerce has pushed organizations to develop Web-based database applications –To create world-wide markets –To deliver information –To provide better customer service –To communicate with their suppliers –To provide training for employees –To expand the workplace –…Many other innovative activities
3
Databases and the WWW WWW is a loosely organized information resource Some websites use static linked HTML files – can become inconsistent and outdated Many organizations provide dynamic access to databases directly from the Web –introduces new problems for designers and DBAs –combination of communications technology, information retrieval technology and database technology –XML a standard for document storage, exchange, and retrieval.
4
Origins of The Internet Developed from Arpanet, communications network created in the 1960s by DARPA, US agency, for linking government and academic research institutions Used a common protocol, TCP/IP US National Science Foundation took over management of the network, then referred to as the Internet Navigating and using the Internet required considerable sophistication
5
World Wide Web Tim Berners-Lee proposed a method of simplifying access to Internet resources in 1989 Led to the development of the World Wide Web included notions of URL, HTTP, HTML, hypertext, graphical browsers with links Automated finding, downloading, and displaying files on the Internet
6
Browsers and URLs Browser- –software for searching, retrieving, presenting, and traversing resources on the WWW –Ex. Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari and others URL –Uniform Resource Locator –Specific type of Uniform Resource Identifier (URI) –String giving the location of any type of resource on the Internet-Web pages, mailboxes, downloadable files, etc. –Gives protocol, server name, path name to resource
7
HTTP Communications protocol –Standard for structure of messages –HTTP request usually has a few lines of text Sample http interaction HTTP method field (GET or POST), URI of resource, HTTP version host header, with host name and HTTP port user agent line, shows the type of the client (optional) types of files the client will accept (optional) HTTP is a stateless protocol –No facility for remembering previous interactions –Creates a problem for e-commerce, which requires a continuous session with the user
8
HTML Data format used for presenting content on the Internet A markup language because HTML documents contain tags that provide formatting information for the text –Ex,,,,, and their ending tags HTML document can contain applets, audio files, images, video files, other content
9
XML Extensible Markup Language - standard for document storage, exchange, and retrieval Created in 1996 by the World Wide Web Consortium (W3) XML Special Interest Group Users can define their own markup language, with their own tags for data items in documents, including databases Can define the structure of heterogeneous databases supports translation of data between different databases
10
Components of XML Documents Element-the basic component Contains one or more XML elements –each with a start tag showing the name of the element, some character data, and an end tag Can have sub-elements-must be properly nested Can have attributes-names and values shown inside the element’s start tag Attributes occur only once within each element, while sub-elements can occur any number of times Comments can occur anywhere, can contain entity references-refer to external files, common text, Unicode characters, or reserved symbols
11
Well-Formed XML Document Obey rules of XML –Starts with XML declaration –Root element contains all other elements –All elements properly nested
12
HTML Document Showing Customer List in a Browser
13
XML Instance Document Showing Customer List
14
DTD and XML Schema Users can define their own markup language by writing either –A Document Type Declaration (DTD) A specification for a set of rules for the elements, attributes, and entities of a document A document that obeys the rules of its associated DTD is type-valid –An XML Schema New, more powerful way to describe the structure of documents A document that conforms to an XML schema is schema- valid
15
DTD Rules DTD is enclosed in each element is declared using a type declaration with structure In an element declaration, the name of any sub- element can be followed by one of the symbols *, + or ?, to indicate the number of times the sub-element occurs Attribute list declarations for elements are declared outside the element DTD can be external or internal (embedded in instance document)
16
DTD for CUSTOMERLIST
17
XML Schema Permits more complex structure than DTD Additional fundamental datatypes, UDTs User-created domain vocabulary Supports uniqueness and foreign key constraints Schema lists elements and attributes –Elements may be complex, which means they have sub- elements, or simple –elements can occur multiple times –Attributes or elements can be used to store data values –Attributes used for simple values that are not repeated Can validate schema at several websites See possible XML Schema for CustomerList on next slide
19
Three-tier Architecture Three major functions for an Internet environment: presentation, application logic, data management Placement of functions depends on architecture of system Three tier architectures completely separate application logic from data management –Client handles user interface, the presentation layer- first tier –Application server executes application logic -the middle tier –Database server forms the third tier Communications network connects each tier to the next
20
Advantages of 3-tier Architecture Allows support for thin clients that only handle the presentation layer Independence of tiers; may use different platforms Easier application maintenance on the application server Integrated transparent data access to heterogeneous data sources Scalability
21
Presentation Layer HTML forms often used at the presentation layer Scripting languages such as JavaScript, JScript, VBScript, may be embedded in HTML to provide some client-side processing Style sheets specify how data is presented on specific devices-CSS, XSL
22
Application Server Middle tier - responsible for executing applications –Determines the flow of control –Acquires input data from presentation layer –Makes data requests to database server –Accepts query results from database layer –Uses them to assemble dynamically generated HTML pages Server-side processing can use different technologies such as Java Servlets, Java Server pages, etc. CGI, Common Gateway Interface, can be used to connect HTML forms with application programs To maintain state during a session, servers may use cookies, hidden fields in HTML forms, and URI extensions. –Cookies generated at the middle tier using Java’s Cookie class, sent to the client, where they are stored in the browser cache
23
Data Layer Third layer is standard database or other data source Ideally on separate server
24
Oracle Web Programming PL/SQL Web Toolkit –Handles all three layers using PL/SQL PL/SQL Server Pages (PSP) –embed PL/SQL code in HTML pages JDBC –Application Programming Interface (API) standard for relational database access from Java And several other methods
25
PL/SQL Web Toolkit Allows user to access Oracle from a webpage –Using a browser, user sends request to a Web server, passing input values –Server sends a message to the database server, invoking a PL/SQL stored procedure in the Oracle database, passing parameters as needed. –Stored procedure invokes subprograms in the PL/SQL Web Toolkit, generating a Web page dynamically –Generated page is passed to the Web server –Web server displays the page in the client’s browser –Illustration on next slide
26
PL/SQL Web Toolkit
27
Web Toolkit htp Package Enter from SQL*Plus in usual way CREATE OR REPLACE PROCEDURE pagename IS BEGIN Functions generate HTML tags HTP.HTMLOPEN; HTP.HEADOPEN; HTP.TITLE(‘ ‘); HTP.HEADCLOSE; HTP.BODYOPEN; HTP.HEADER(n,‘ ‘ ); HTP.PARA; HTP.PRINT(' '); HTP.BODYCLOSE; HTP.HTMLCLOSE Inside the body, htp.formOpen (parameter list ) creates a form Form elements created using procedures htp.formText, htp.formCheckbox, htp.formRadio, htp.formTextarea, and others
28
PL/SQL Server Pages (PSP) provide the dynamic database content embed PL/SQL statements in HTML pages Write standard HTML scripts, using the delimiters to identify PL/SQL statements Can have Web Toolkit calls in the same application handled by the Oracle PL/SQL Web gateway (mod_plsql) reside on the server side PSP page is loaded into Oracle database space using utility program loadpsp Sample code shown on next slide
29
<%-- This example displays the last name and first name of every student in the University.Student table. --%> <%! CURSOR stu_cursor IS SELECT lastName, firstName FROM University.Student ORDER BY lastName; %> Student List Student List Last Name First Name A PSP Script to Display Student Names
30
JDBC API-standard for relational database access from Java Includes a set of Java classes and interfaces Oracle and other vendors have extended functionality Applications are platform independent Can run on a variety of servers and DBMSs.
31
JDBC Application Steps At the start of the application, import the Java classes import java.sql.*; For Oracle database add import oracle.jdbc; Load the JDBC drivers. For Oracle,write Class.forName(“oracle.jdbc.driver.OracleDriver”); Connect to the database using the DriverManager class - GetConnection method creates a connection object, which is used for all communication conn = DriverManager.getConnection("jdbc:oracle:oci8:url”,”yourId”,”yourpassword”); Use SQL to interact with the database and Java for the logic in the application program Close the connection object to disconnect from the database conn.close(); Sample code on next slide
32
Java Program Using JDBC import java.sql.*; import java.io.*; class Test{ public static void main(String args[]) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { System.out.println("Cannot load OracleDriver"); } Connection conn = null; Statement stmt = null; ResultSet rset = null; try { conn = DriverManager.getConnection("jdbc:oracle:oci8","userId","password"); stmt = conn.createStatement(); rset = stmt.executeQuery("select stuid, lastName, firstName from Student"); while (rset.next()) System.out.println(rset.getString(1)+" " + rset.getString(2)+" "+rset.getString(3)); rset.close(); stmt.close(); conn.close(); } catch (SQLException e) { System.out.println("SQL error: " + e.getMessage()); }
33
The Connection Object Has 3 JDBC classes for communicating with database –Statement -for SQL statements with no parameters –PreparedStatement precompiled SQL statement – to be executed many times –CallableStatement -for executing stored procedures Has 3 methods to create instances of these classes –createStatement returns a new Statement object –prepareStatement takes an SQL statement, precompiles it, and stores it in a PreparedStatement object –prepareCall for call to a stored procedure; has methods for handling input and output parameters and executing the procedure;returns a CallableStatement Statement object is used for executing SQL statements –Methods executeUpdate, executeQuery. etc. –executeQuery method executes an SQL statement and returns a ResultSet object –ResultSet class has many useful methods; includes a cursor to present one row at a time –Within a row, columns can be retrieved using a get method
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.