Title: Database Applications: Web-Enabled Databases and Search Engines: Cont.
1Database ApplicationsWeb-Enabled Databases and
Search Engines Cont.
- University of California, Berkeley
- School of Information Management and Systems
- SIMS 257 Database Management
2Today
- Databases for Web Applications Continued
3Why Use a Database System?
- Database systems have concentrated on providing
solutions for all of these issues for scaling up
Web applications - Performance
- Scalability
- Maintenance
- Data Integrity
- Transaction support
- While systems differ in their support, most offer
some support for all of these.
4Dynamic Web Applications 2
Files
Web Server
CGI
database
DBMS
Internet
database
database
Server
Clients
5Server Interfaces
Database
Web Server
SQL
HTML
Native DB Interfaces
DHTML
Web Application Server
Web DB App
JavaScript
CGI Web Server APIs
ODBC Native DB interfaces JDBC
ColdFusion PhP Perl Java
ASP
Adapted from John P Ashenfelter, Choosing a
Database for Your Web Site
6What Database systems are available?
- Choices depend on
- Size (current and projected) of the application
- Hardware and OS Platforms to be used in the
application - Features required
- E.g. SQL? Upgrade path? Full-text indexing?
Attribute size limitations? Locking protocols?
Direct Web Server access? Security? - Staff support for DBA, etc.
- Programming support (or lack thereof)
- Cost/complexity of administration
- Budget
7Desktop Database Systems
- Individuals or very small enterprises can create
DBMS-enabled Web applications relatively
inexpensively - Some systems will require an application server
(such as ColdFusion) to provide the access path
between the Web server and the DBMS
8Pros and Cons of Database Options
- Desktop databases
- usually simple to set up and administer
- inexpensive
- often will not scale to a very large number of
users or very large database size - May lack locking management appropriate for
multiuser access - Poor handling for full-text search
- Well supported by application software
(Coldfusion, PHP, etc.)
9Enterprise Database Systems
- Enterprise servers are powerful and available in
many different configurations - They also tend to be VERY expensive
- Pricing is usually based on users, or CPUs
10Pros and Cons of Database Options
- Enterprise databases
- Can be very complex to set up and administer
- Oracle, for example recommends RAID-1 with 7x2
disk configuration as a bare minimum, more
recommended - Expensive
- Will scale to a very large number of users
- Will scale to very large databases
- Incorporate good transaction control and lock
management - Native handling of Text search is poor, but most
DBMS have add-on text search options - Support for applications software (ColdFusion,
PHP, etc.)
11Free Database Servers
- System is free, but there is also no help line.
- Include many of the features of Enterprise
systems, but tend to be lighter weight - Versions may vary in support for different
systems - Open Source -- So programmers can add features
12Pros and Cons of Database Options
- Free databases
- Can be complex to set up and administer
- Inexpensive (FREE!)
- usually will scale to a large number of users
- Incorporate good transaction control and lock
management - Native handling of Text search is poor
- Support for applications software (ColdFusion,
PHP, etc.)
13Embedded Database Servers
- May require programming experience to install
- Tend to be fast and economical in space
requirements
14Pros and Cons of Database Options
- Embedded databases
- Must be embedded in a program
- Can be incorporated in a scripting language
- inexpensive (for non-commercial application)
- May not scale to a very large number of users
(depends on how it is used) - Incorporate good transaction control and lock
management - Text search support is minimal
- May not support SQL
15Web Application Server Software
- ColdFusion
- PHP
- ASP
- All of the are server-side scripting languages
that embed code in HTML pages
16ColdFusion
- Developing WWW sites typically involved a lot of
programming to build dynamic sites - e.g. Pages generated as a result of catalog
searches, etc. - ColdFusion was designed to permit the
construction of dynamic web sites with only minor
extensions to HTML through a DBMS interface
17ColdFusion
- Started as CGI
- Drawback, as noted above, is that the entire
system is run for each cgi invocation - Split into cooperating components
- NT service -- runs constantly
- Server modules for 4 main Web Server API (glue
that binds web server to ColdFusion service)
Apache, ISAPI, NSAPI, WSAPI - Special CGI scripts for other servers
18What ColdFusion is Good for
- Putting up databases onto the Web
- Handling dynamic databases (Frequent updates,
etc) - Making databases searchable and updateable by
users.
19Requirements
- Unix or NT systems
- Install as SuperUser
- Databases must be defined via data source names
(DSNs) by administrator
20Requirements and Set Up
- Field (attribute) names should be devoid of
spaces. Use the underscore character, like
new_items instead of new items. - Use key fields. Greatly reduces search time.
- Check permissions on the individual tables in
your database and make sure that they have
read-access for the username your Web server uses
to log in. - If your fields include large blocks of text,
you'll want to include basic HTML coding within
the text itself, including boldface, italics, and
paragraph markers.
21Templates
- Have a database named contents_of_my_shopping_cart
.mdb -- single table called contents... - Create an HTML page (uses extension .cfm), before
ltHEADgt... - ltCFQUERY NAME cart" DATASOURCEcontents_of_my_s
hopping_cart"gtSELECT FROM contents
lt/CFQUERYgt
22Templates cont.
- ltHEADgt
- ltTITLEgtContents of My Shopping Cartlt/TITLEgt
- lt/HEADgt
- ltBODYgt
- ltH1gtContents of My Shopping Cartlt/H1gt
- ltCFOUTPUT QUERY cart"gt
- ltBgtItemlt/Bgt ltBRgt
- Date_of_item ltBRgt
- Price ltPgt
- lt/CFOUTPUTgt
- lt/BODYgt
- lt/HTMLgt
23Templates cont.
Contents of My Shopping Cart
Bouncy Ball with Psychedelic Markings
12 December 1998
0.25
Shiny Blue Widget 14
December 1998 2.53
Large Orange Widget
14 December 1998
3.75
24CFIF and CFELSE
ltCFOUTPUT QUERY cart"gt Item Item
ltBRgt ltCFIF Picture EQ""gt ltIMG
SRCgeneric_picture.jpg"gt ltBRgt ltCFELSEgt
ltIMG SRC"Picture"gt ltBRgt lt/CFIFgt lt/CFOUTPUTgt
25More Templates
ltCFQUERY DATASOURCE AZ2gt INSERT INTO
Employees(firstname, lastname, phoneext)
VALUES(firstname, lastname, phoneext)
lt/CFQUERYgt ltHTMLgtltHEADgtltTITLEgtEmployee
Addedlt/TITLEgt ltBODYgtltH1gtEmployee
Addedlt/H1gt ltCFOUTPUTgt Employee ltBgtfirstname
lastnamelt/Bgt added. lt/CFOUTPUTgtlt/BODYgt lt/HTMLgt
26CFML ColdFusion Markup Language
- Read data from and update data to databases and
tables - Create dynamic data-driven pages
- Perform conditional processing
- Populate forms with live data
- Process form submissions
- Generate and retrieve email messages
- Perform HTTP and FTP function
- Perform credit card verification and
authorization - Read and write client-side cookies
27PHP
- PHP is an Open Source Software project with many
programmers working on the code. - Commonly paired with MySQL, another OSS project
- Free
- Both Windows and Unix support
- Estimated that more than 250,000 web sites use
PHP as an Apache Module.
28PHP Syntax
- Similar to ASP
- Includes most programming structures (Loops,
functions, Arrays, etc.) - Loads HTML form variables so that they are
addressable by name
ltHTMLgtltBODYgt lt?php myvar Hello World
echo myvar ?gt lt/BODYgtlt/HTMLgt
29Combined with MySQL
- DBMS interface appears as a set of functions
ltHTMLgtltBODYgt lt?php db mysql_connect(localhost
, root) mysql_select_db(mydb,db) result
mysql_query(SELECT FROM employees,
db) Printf(First Name s ltbrgt\n,
mysql_result(result, 0 first) Printf(Last
Name s ltbrgt\n, mysql_result(result, 0
last) ?gtlt/BODYgtlt/HTMLgt
30ASP Active Server Pages
- Another server-side scripting language
- From Microsoft using Visual Basic as the Language
model (VBScript), though Javascript (actually MS
Jscript) is also supported - Works with Microsoft IIS and gives access to ODBC
databases
31ASP Syntax
lt SQL"SELECT last, first FROM employees
ORDER BY last" set conn
server.createobject("ADODB.Connection")
conn.open employee" set peopleconn.execute(
SQL) gt lt do while not people.eof set
resultlinepeople(0) , people(1) ltBRgt
Response.Write(resultline)
people.movenext loopgt lt people.close gt
32Text Search
- Native text searching within databases is very
poor. - Involves a full scan of the database to resolve
LIKE queries. - Text fields are limited in size
- For example Oracle VARCHAR has a maximum of 4000
bytes - LONG (BLOBS, etc) fields support larger data, but
are not indexable and cant be used in WHERE
clauses. - Some Databases offer Text retrieval add-ons
- Oracles interMedia or ConText Text retrieval
engines - Informix Text DataBlade
- IBM DB2 Text Extender
33Text Search Options
34Features to look for
- Ranked and Boolean Search
- Proximity search
- Fielded searching
- Concept expansion
- Spider for Indexing
- Document types available
- HTML, PDF, XML, MS-Office, Multimedia?
35Other Options
- Have an external search engine crawl and present
your site. - Inktomi provides portal sites for customers
- Snap uses Inktomi to do the same sort of thing
36Conclusions
- Database technology is a required component for
large-scale dynamic Web sites, especially
E-Commerce sites - Web databases cover most of the needs of dynamic
sites except for text search - Many solutions and systems are available for
web-enabled databases and search engines