`
`ONf HUNDRfD PfiCfNT
`COMPREHENSI VE
`AUTHORITATIVE
`WHAT YOU NEED
`ONf HUNDRfD PfiCfNT
`
`Master the
`leading open source
`relational datallase
`management system
`
`Tune performance
`and security on
`datallase servers
`Build MySQL
`datallase applications
`using Perl, PHP, Java,
`and ODIC
`
`Steve Suehring
`
`PALO ALTO NETWORKS Exhibit 1043 Page 1
`
`
`
`MySQL™ Bible
`Published by:
`Wiley Publishing, Inc.
`909 Third Avenue
`New York, NY 10022
`www.wiley.com
`Copyright © 2002 Wiley Publishing, Inc. All rights reserved. No part of this book, including interior design, cover design,
`and icons, may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording, or
`otherwise) without the prior written permission of the publisher.
`Library of Congress Control Number: 2002103290
`ISBN: 0-7645-4932-4
`Printed in the United States of America
`10 9 8 7 6 5 4 3 2 1
`1B/RY/QW/QS/IN
`Distributed in the United States by Wiley Publishing, Inc.
`Distributed by CDG Books Canada Inc. for Canada; by Transworld Publishers Limited in the United Kingdom; by IDG Norge
`Books for Norway; by IDG Sweden Books for Sweden; by IDG Books Australia Publishing Corporation Pty. Ltd. for Australia
`and New Zealand; by TransQuest Publishers Pte Ltd. for Singapore, Malaysia, Thailand, Indonesia, and Hong Kong; by
`Gotop Information Inc. for Taiwan; by ICG Muse, Inc. for Japan; by Intersoft for South Africa; by Eyrolles for France; by
`International Thomson Publishing for Germany, Austria, and Switzerland; by Distribuidora Cuspide for Argentina; by LR
`International for Brazil; by Galileo Libros for Chile; by Ediciones ZETA S.C.R. Ltda. for Peru; by WS Computer Publishing
`Corporation, Inc., for the Philippines; by Contemporanea de Ediciones for Venezuela; by Express Computer Distributors for
`the Caribbean and West Indies; by Micronesia Media Distributor, Inc. for Micronesia; by Chips Computadoras S.A. de C.V.
`for Mexico; by Editorial Norma de Panama S.A. for Panama; by American Bookshops for Finland.
`For general information on Wiley’s products and services please contact our Customer Care department; within the U.S. at
`800-762-2974, outside the U.S. at 317-572-3993 or fax 317-572-4002.
`For sales inquiries and resellers information, including discounts, premium and bulk quantity sales and foreign language
`translations please contact our Customer Care department at 800-434-3422, fax 317-572-4002 or write to Wiley Publishing,
`Inc., Attn: Customer Care department, 10475 Crosspoint Boulevard, Indianapolis, IN 46256.
`For information on licensing foreign or domestic rights, please contact our Sub-Rights Customer Care department at
`650-653-7098.
`For information on using Wiley’s products and services in the classroom or for ordering examination copies, please contact
`our Educational Sales department at 800-434-2086 or fax 317-572-4005.
`For press review copies, author interviews, or other publicity information, please contact our Public Relations department
`at 650-653-7000 or fax 650-653-7500.
`For authorization to photocopy items for corporate, personal, or educational use, please contact Copyright Clearance
`Center, 222 Rosewood Drive, Danvers, MA 01923, or fax 978-750-4470.
`LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND AUTHOR HAVE USED THEIR BEST EFFORTS
`IN PREPARING THIS BOOK. THE PUBLISHER AND AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH
`RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK AND SPECIFICALLY DISCLAIM
`ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THERE ARE NO
`WARRANTIES WHICH EXTEND BEYOND THE DESCRIPTIONS CONTAINED IN THIS PARAGRAPH. NO WARRANTY
`MAY BE CREATED OR EXTENDED BY SALES REPRESENTATIVES OR WRITTEN SALES MATERIALS. THE ACCURACY
`AND COMPLETENESS OF THE INFORMATION PROVIDED HEREIN AND THE OPINIONS STATED HEREIN ARE NOT
`GUARANTEED OR WARRANTED TO PRODUCE ANY PARTICULAR RESULTS, AND THE ADVICE AND STRATEGIES
`CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY INDIVIDUAL. NEITHER THE PUBLISHER NOR AUTHOR
`SHALL BE LIABLE FOR ANY LOSS OF PROFIT OR ANY OTHER COMMERCIAL DAMAGES, INCLUDING BUT NOT
`LIMITED TO SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR OTHER DAMAGES.
`
`Trademarks: MySQL is a trademark of MySQL AB. All other trademarks are the property of their respective owners. Wiley
`Publishing, Inc., is not associated with any product or vendor mentioned in this book.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 2
`
`
`
`CHAPTER
`
`• • • •
`
`In This Chapter
`
`Considering
`applications for
`databases
`
`Comparing SQL
`implementations
`
`Introducing MySQL
`
`• • • •
`
`Relational
`Database
`Management
`
`Before you sound the depths of MySQL, it would be help(cid:173)
`
`ful to look at some applications for databases and at
`other implementations of SQL servers.
`
`This chapter lays out some groundwork for the rest of the
`book-in particular, with tables that illustrate MySQL's
`extensions to the SQL-92 standard and compare some popular
`functions of database servers.
`
`Applications for Databases
`
`Databases are a part of everyday life, usually without your
`knowledge. From obvious applications (like customer
`databases for insurance companies) to not-so-obvious uses
`(such as storing actual images within a database for
`recognition), database use is pervasive and increasing.
`
`Customer databases
`Not a day goes without telephone calls from people trying to
`sell products or new long-distance plans. You and I are in
`more than a few customer databases- and some of the
`places I've done business with have shared my telephone
`number with some of their friends, who've then shared it with
`some of their friends- another fact of life that's traceable to
`the proliferation of databases.
`
`Taking a look at some information stored in a few "everyday"
`databases can serve as an example of the different types of
`information each one collects, tracks, and sometimes stores(cid:173)
`about you, me, and probably everyone you know. Whatever
`your views on issues of politics and privacy, these common
`examples form a picture of databases in action.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 3
`
`
`
`4
`
`Part I ✦ Getting Started
`
`Telephone companies
`The telephone company that owns my area stores basic information about me — first
`and last name, address, city, state, ZIP code, and telephone number — information
`that’s not only basic but also common across almost all customer databases. Beyond
`the basic information, the local telephone company also requires my social security
`number (which helps them find me should I attempt to forego payment and leave
`the area).
`
`Within the telephone company database is a system to keep notes and correspon-
`dence. For example, each time I call to talk with a customer service representative,
`a note goes into my file — indicating what I was calling about, the outcome (if any),
`as well as the date, time, and representative’s name — all of which is recorded
`automatically when the note is entered.
`
`Beyond the personal information and correspondence notes, the telephone company
`database also serves as a billing system that generates my phone bill automatically
`on the fourth day of every month. The database tracks what services I have (such as
`Call Waiting, Caller ID, and so forth), associates each service with a price, and tallies
`my bill for the month.
`
`Having customer, billing, and rate information in a database allows the telephone
`company to produce reports that can pinpoint how many customers have a certain
`rate group, how many live in a certain area, how many have delinquent payments,
`and so on.
`
`Beyond customer reports, the telephone company has become much more sophis-
`ticated in its use of the data. Previously when I would call for customer service, I
`would get to talk to a live person after a bit of a wait. They then improved their
`customer service by allowing me to punch in my 10-digit telephone number and
`look up my records. From there, I might eventually get to talk to a live person (if
`I didn’t select any of the common tasks on the voice-mail menu). The latest
`improvement is the use of caller identification to ask me whether I’m calling in
`regard to the number that I’m calling from. After more menus and prompts, I may
`be able to reach a live operator.
`
`Behind the scenes during this process is a database that can look up my informa-
`tion when it is fed my 10-digit number. The telephone company database can then
`give me choices based on the current status of my account. I once had the misfor-
`tune of fraudulent charges on my telephone bill — about $650 worth. I immediately
`put that amount into dispute and was told to pay my normal $45 bill — but I still
`ended up receiving a disconnection notice. When I called back to inquire into the
`notice, I was forwarded automatically to the collections department (who, after
`some discussion, handed me off to the regular customer service department).
`Moral: Databases can speed up only those aspects of a transaction that don’t
`require the use of common sense.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 4
`
`
`
`Chapter 1 ✦ Relational Database Management
`
`5
`
`Online or mail-order stores
`Another type of customer database is kept by an online store such as Amazon.com
`or a mail-order catalog store. The basic information is kept (name, address, and so
`on); most online and many catalog stores also keep your e-mail address as well. In
`addition, many stores track payment information so you don’t have to give your
`credit card number every time you want to make a purchase.
`
`As monopolies, most telephone companies can afford to do minimal marketing of
`their products and services. To survive in a competitive market, however, catalog
`and online stores keep track of how their customers heard about them. From that
`information, they can produce a report that helps identify the most effective means
`of advertising (or look for wiser ways to spend marketing money).
`
`Major catalog and online stores also track your purchases through a database and
`offer recommendations based upon previous purchase patterns. For example, if you
`frequently buy books on Linux, Amazon.com might custom-build a page for you of
`newly released Linux books. All such information is stored in one or more
`databases.
`
`Catalog and online stores can use the reporting capabilities of an electronic database
`to watch which items are selling best, discern and track patterns of visitors, and
`gather data on sales totals for items and departments.
`
`Custom-service Web sites
`Another interesting use of customer type databases is to track user preferences. An
`example of this would be the Web site Slashdot, http://www.slashdot.org/. At
`Slashdot, they don’t keep information like credit card number or address, but they
`do keep track of your e-mail address and what news modules you want to see,
`among other things. In this manner, you can customize the news you see, as well as
`other Slashdot features. Some user-preference sites do keep personal information
`such as name and address.
`
`Though all three examples of customer databases — telephone company, online
`store, and user-preferences site — track some of the same information, they also
`track their own, task-specific information. This makes it difficult for an identity thief
`to gain access to all your personal information in one place. However, personal
`information security seems to be taking a backseat to the rise of all-in-one tracking
`services that keep information centrally. Imagine what the telemarketers could do if
`they had access to all my purchase histories and even my e-mail address!
`
`Internet service providers’ databases
`Internet service providers (ISPs) use electronic databases more heavily than many
`other industries. Almost everything an ISP does is in electronic format; being rela-
`tively young as an industry, they’ve grown up with good database tools readily
`available. In many ways, ISP databases combine the functions of all three types of
`customer databases I referred to earlier.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 5
`
`
`
`6
`
`Part I ✦ Getting Started
`
`The most obvious database use for an ISP is as a customer database — containing the
`usual (basic) name-and-address information. Like the online or catalog stores,
`the ISP database also stores information such as credit card or other billing data.
`Correspondence notes are kept inside a database as well as marketing and referral
`records to track marketing effectiveness. An ISP database usually has your e-mail
`address as well.
`
`ISPs also use user-preference databases to remember your settings and make your
`online experience more productive — they use the same types of database informa-
`tion as a news site.
`
`One area that many people overlook with ISPs what the industry calls accounting
`data — not the dollars-and-cents kind, but rather an accounting of who was using
`what modem or IP address at a given point in time. This accounting data can then
`be tracked to find usage patterns of a particular user or group of users. In addition,
`when an abuse report or subpoena is received, the ISP can quickly locate the user
`in question and take action or fulfill the subpoena request.
`
`Tip
`
`Many people wrongly believe they are anonymous when online. The reality is
`quite the contrary. With the use of databases to track accounting information, find-
`ing any given user who was online at any given time is almost trivially easy.
`
`Some ISPs use databases as a means to track possible attacks against their equip-
`ment. Databases are an efficient way to watch for patterns of attack and keep data
`from an attack for possible future litigation or action against the attacker.
`
`As you would expect, ISPs also use the reporting features of their databases.
`Reports can quickly be generated on revenue, high usage customers, or anything
`else tracked in the database.
`
`Criminology and databases
`Law enforcement has been quick to adopt electronic databases as an effective tool
`for helping to catch criminals. Through identification databases, offender tracking,
`and face recognition, law enforcement can efficiently assemble varied pieces of
`information to assist in investigations.
`
`Although fingerprinting technology is not new, the use of electronic databases to
`store and retrieve fingerprints is a new (and powerful) extension of the technique.
`Other identification data can also be gathered and tracked for law enforcement —
`tax records, permits, and driver’s-license information can help law enforcement find
`people. That information can easily be shared with other law enforcement agencies
`at speeds that weren’t imaginable just a generation ago.
`
`The electronic database is an ideal tool for certain other forms of information. For
`example, when tracking offenders by modus operandi (a pattern that emerges in
`
`PALO ALTO NETWORKS Exhibit 1043 Page 6
`
`
`
`Chapter 1 + Relational Database Management
`
`7
`
`crimes), the investigator can query a database to find suspects who might fit the
`pattern. Storing actual images of faces (for example, mug shots) in a database can
`help investigators find matches to faces. However, use of this technology in places
`other than investigations has led privacy groups to express some concerns.
`
`Advantages of using databases
`The speed, accuracy, and thoroughness of electronic databases make them critical
`to today's 24/7 high-speed exchange of information. Even the handful of examples
`in this chapter should strongly suggest the advantages-some of which appear in
`Table 1-1-of using and developing applications for databases.
`
`Table 1-1
`Advantages of Using Databases
`
`Advantage
`
`Description
`
`Speed
`
`Reporting
`
`Accuracy
`
`Thoroughness
`
`Format means quick storage and retrieval of information. Users and
`applications have a quick means for asynchronous reads and writes
`of data.
`Information can be gathered, quantified, and custom-analyzed with
`greater flexibility.
`Given careful data input, databases provide accurate and consistent
`results based on their data.
`Databases can store and report results as complete and detailed as
`their holdings- at electronic speed.
`
`Comparing SQL Implementations
`
`SQL, or Structured Query Language, is a specialized type of programming language
`developed to work with relational databases such as MySQL, Oracle, Microsoft SQL
`Server, PostgreSQL, Informix, and others.
`
`The SQL standard is defined by ANSI, the American National Standards Institute in
`their ISO/IEC 9075:1992 document. (The standard is commonly referred to as ANSI
`SQL-92.) Every relational database applies its own version of the SQL standard; many
`enhance that standard. Standardizing the programming language allows the devel(cid:173)
`oper to address the database in much the same way from platform to platform -and
`every major platform has such products written for it. Table 1-2 compares some
`popular relational-database products as illustrative examples.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 7
`
`
`
`8
`
`Part I + Getting Started
`
`Table 1-2
`Comparison of SQL Implementations
`
`RDBMS
`
`Advantages
`
`Drawbacks
`
`Oracle
`MS SQL Server
`
`PostgreSQL
`
`lnformix
`
`MySQL
`
`Versatile, stable, and secure.
`Stable and secure; Microsoft
`offers excellent support.
`Up-and-coming database
`with low TCO.
`
`Stable; has good support
`available.
`Offers a best-case-scenario
`database in many ways; low
`TCO, high stability, high security,
`and excellent support.
`
`Potentially high TCO.
`Relatively high TCO;
`prop ri eta ry.
`Has yet to be widely
`implemented in large-scale
`business use.
`Generally higher TCO.
`
`Not all available versions can
`offer the full range of MySQL
`capabilities.
`
`Oracle
`Oracle Corporation, http: I /www. orac 1 e. com/, is arguably the leader in enterprise(cid:173)
`level database server software for e-commerce. The Oracle database product is
`widely used in various types of large applications- including those mentioned in
`the previous section -and is popular largely because its characteristics apparently
`have a minimal downside:
`
`+ Versatility: Oracle Corporation offers many e-commerce products that integrate
`with their databases, which can help streamline the process of designing, build(cid:173)
`ing, and using database applications.
`+ Stability: Administrators report that Oracle database servers rarely fail(cid:173)
`reassuring if your applications require 24/7 uptime.
`+ Available graphical user interface: Oracle offers many GUI tools for manag(cid:173)
`ing the database server (though whether this feature is a plus or minus
`depends on which administrator you ask).
`+ Security: Versions of Oracle now include a security toolkit that allows encryp(cid:173)
`tion of sensitive data within the database. Like other RDBMS products, Oracle
`also provides user-level security within a database to protect the data from
`malicious users or operator errors.
`+ Support: Oracle Corporation has historically been responsive to customer
`requests for new features in the database product. Oracle moves quickly to
`seize new opportunities as well-listening to customers, watching market
`trends, and maintaining thorough online documentation through the Oracle
`Technology Network (see Figure 1-1).
`
`PALO ALTO NETWORKS Exhibit 1043 Page 8
`
`
`
`Chapter 1 + Relational Database Management
`
`9
`
`libr4
`Products,
`J e chnolngje s . l.u1em.e.t
`DBA , OocumEint ation,
`Oracle Magazine
`Soft\1/are
`oo .... mloads '
`Samole Cod~
`Hostgd Oovclopmont
`Orad eMnhj!e Online
`Stud10 , Portal Studio
`Collaboratiotl
`Discussion F otums .
`Events, iDevelop 2001,
`User Group
`Skills Nar1<c!Piace
`~.~.
`Post an RFP
`
`Think9i Seminar for ISVs
`Aitmd ihie fnt ttchrucal eHninsr toleamhow to tpttdup
`l:lpplicoti.on developmenl improve denloper efficiency. llJld
`reduce implemu"ttation coS:t$ using01tcl!9). h:r,t#d(YJ N SNP.'J.OOJ
`
`Act Now to Receive One Year of Online Training from
`OLH for Sl99
`For o.linU~ed tirn.e, recei'Te o one-veu :n~bscsiption io Ot·ocle's
`teaming ""'" · Oracle Leaming l~eLwru (OLN). fe< ot~Y 5399
`USD. You will tecei'7$ access to traming elessas on Database
`Admini~t.n.tion lo.v-o. Developm~nt.. Applicd.i.on DenlopmenL.
`atld E:..Busineu Sui1e Implementation Thi~ offer ends N ovembu·
`:-ot.h, 200l . ?~vudcn JSJ:Bl·:II~J
`
`Aulherltlcaliorl IAP.1hods for Applications: and Portlets
`A new elticle describes h ow lhe Calendar sampl~ epphcation
`uses Oracle91115 Single Sign-c<t (SSQJ and0tocle91AS Pottol ;o
`timpbf¥ uttKprise comp1.rt.mg tul:s fot Web. baud md-uc~~ .
`;cr.w""' n .JaP.1(1(lJ
`
`Orade9i Open Gateways Documentation Available
`Oracl~91 Op~ Gat~lWivs provide the ability to UMspar~nUy
`access data reeidmg ttl. anon-Oracl~ system from en Oracle
`environment. Docum..,oLatioo is available fcorlnfo11t"lix lngres.
`Sybau , and T uadsta 86t~w6yc. 1cr.W«~ O?.MP.1(1(lJ
`
`Orade9iDaily Feature
`9i08: Oracle9i Database Dail•1
`Feature: I.J~tive XML
`Generatjon and Storage jn
`Oracle9i Oat~base
`9iAS: ~tAf=: Q;ojly fP.all 1re 0 1ar:IP.
`Internet Directory .
`Pa~fo/Jflfd P nljr:v
`Manaqemen1
`
`think9i
`Mobile
`
`Download NOW!
`n rar.le9r QaJahasP.
`The l~ew Oracle9iAS
`OraciP9i JO~v~lop~r Bet a
`
`Figure 1-1: The Oracle Technology Network is just one of many support offerings
`for Oracle.
`
`+ Cross-platfonn capability: Popular versions include Oracle on Microsoft
`Windows as well as Linux. Oracle also supports ANSI-92 SQL standards with
`modifications and enhancements.
`
`+ Poten tially high Total Cost o f Ownership (fCO): Oracle's database server
`requires considerable high-end hardware resources (such as processor speed
`and RAM capacity) to run at an acceptable leveL
`
`Microsoft SQL Server
`Like Oracle, Microsoft has been a key player in the database market-though
`Microsoft has had to play constant catch-up in the realm of the Internet and
`e-commerce. Although Microsoft is the acknowledged leader in desktop operating
`systems (thanks to its good sense of the marketplace and emphasis on fulfilling
`the needs of consumers), that advantage has not translated smoothly to the
`e-commerce market.
`
`The characteristics of Microsoft SQL Server itself are consistent with its maker's
`traditional strengths, strategies, and limitations:
`
`PALO ALTO NETWORKS Exhibit 1043 Page 9
`
`
`
`10
`
`Part I ✦ Getting Started
`
`✦ Fairly high stability: MS SQL Server offers a degree of stability that is
`designed to be compatible with Windows OS. However, due to numerous
`security problems in that underlying operating system, some corporate
`customers are reluctant to invest in MS SQL Server as a solution for their
`database needs. In addition, having to reboot the host computer (Windows-
`style) to update the server or database software is completely unacceptable
`to potential customers who require maximum server uptime.
`✦ Ease of use: MS SQL Server operates via Windows-style GUI, which can help
`ease the learning curve and add the appeal of familiarity for customers seek-
`ing hassle-free transactions.
`✦ Compliance with ANSI SQL-92: MS SQL Server not only adheres to the entry-
`level standard, but also extends it (arguably no less than other relational
`databases).
`✦ Accessible support: SQL Server is available directly from Microsoft, as well
`as from outside vendors. Microsoft provides a great deal of support informa-
`tion on their SQL Server Web site (and in the Microsoft Knowledge Base) —
`sometimes too much to find exactly what you are looking for.
`✦ High Total Cost of Ownership: Like the operating systems it runs on, SQL
`Server is extremely resource-intensive of both CPU speed and RAM capacity.
`This aspect of the product reduces its appeal to many small businesses.
`Adding to the cost is the licensing — running into thousands of dollars in fees
`for SQL Server itself — not counting the operating system or other software
`and hardware to make the database work. However, thorough support and
`backing for Microsoft products make them worth the cost for some IT profes-
`sionals (provided their companies can afford the outlay).
`✦ Proprietary vendor: Since MS SQL Server is not cross-platform, some poten-
`tial buyers are afraid to implement it lest they rely too much on one vendor. If
`the vendor suddenly decides to charge too much for a new feature or patch to
`the server, the company might have to pay more than it planned.
`
`PostgreSQL
`A relative newcomer to the RDBMS field, PostgreSQL, (http://www.postgresql.
`org) has quickly gathered quite a following. PostgreSQL is a work in progress —
`what software isn’t? — but is remarkably stable for such a young a product, as a list
`of its characteristics shows:
`
`✦ Compliance with SQL-92: PostgreSQL follows most of the SQL-92 standard,
`and is available for many operating systems — including Windows 2000/NT
`(through the use of special tools) and MacOS X. An open-source product,
`PostgreSQL is bundled with many versions of the Linux operating system.
`✦ Low Total Cost of Ownership: The PostgreSQL database-server software is
`available for minimal outlay — the software is free of charge — a potential
`advantage when compared to Oracle or Microsoft SQL Server.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 10
`
`
`
`Chapter 1 ✦ Relational Database Management
`
`11
`
`✦ Support: Like MySQL, PostgreSQL offers commercial support through different
`independent consulting firms (though its actual documentation is relatively
`light).
`✦ Relatively limited adoption: Although PostgreSQL supports some important
`functions of larger RDBMS products — in particular, transactions — it can be
`slower than some of its competitors (including Oracle) when keeping transac-
`tional data. Speed may be one reason that not many large-scale businesses
`have chosen PostgreSQL, despite some advantages over its more expensive
`database brethren.
`
`Informix
`IBM’s Informix series of database servers are poised to compete for large-scale
`database applications. Informix is a popular RDBMS that has the backing of IBM, as
`is reflected in its characteristics:
`
`✦ Diverse product line: Informix offers a wide array of database servers depend-
`ing on the needs of the application. From online transactions to parallel pro-
`cessing to high availability and more, Informix produces an optimized server
`for nearly all uses.
`✦ Cross-platform capabilities: Informix runs on a variety of platforms and also
`offers a range of tools to assist with the development of both back-end and
`front-end database applications.
`✦ Potentially high Total Cost of Ownership: Like its other commercial counter-
`parts, the TCO for Informix can become prohibitive for small business.
`✦ Documentation and support: Documentation for Informix is excellent — and
`much of it is available free from the IBM Web site. As you would expect, IBM
`provides solid backing of the product and support for Informix customers.
`
`Introducing MySQL
`
`Where does MySQL fit in with all the other RDBMS products available? In many
`ways, MySQL offers a best-of-all worlds scenario: It runs on many platforms, enjoys
`a low TCO, and is stable. The documentation for MySQL is excellent. MySQL AB has
`a thorough Web site containing reference material, as well as a link to mailing-list
`archives. MySQL AB also offers high-quality support for their products, including a
`service that allows MySQL developers to log in to your server to correct problems
`and proactively help with optimization. MySQL is gaining RDBMS market share
`because it offers stability, support, and low cost.
`
`MySQL versions and features
`MySQL is available for many different operating systems on a variety of computer
`architectures. MySQL currently has versions for Linux, Windows 95/98/NT/2000,
`
`PALO ALTO NETWORKS Exhibit 1043 Page 11
`
`
`
`12
`
`Part I + Getting Started
`
`Solaris, FreeBSD, MacOS X, HP-UX, AIX, SCO, SCI Irix, Dec OSF, and BSDi. The Linux
`version runs on a range of architectures that includes Intellibc6, Alpha, IA64,
`SPARC, and S/390. The availability of cross-platform versions has enhanced the pop(cid:173)
`ularity of MySQL.
`
`In addition to the standard MySQL database server, an enhanced version of MySQL
`is available- MySQL-Max. MySQL-Max includes the standard MySQL server, plus
`support for transaction-safe tables such as InnoDB or Berkeley DB (BOB). Table 1-3
`shows the platforms and the transactional tables included with MySQL-Max.
`
`Table 1-3
`Transaction-Safe Tables in MySQL-Max Versions
`
`Platform of Version
`
`Berkeley DB Available?
`
`lnnoDB Available?
`
`AIX4.3
`
`HP-UX 11.0
`
`Linux (Alpha)
`
`Linux (Intel)
`
`Linux (IA64)
`
`Solaris (Intel)
`
`Solaris (SPARC)
`
`Windows 2000/NT
`
`No
`
`No
`
`No
`
`Yes
`
`No
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`Yes
`
`MySQL is available as either a binary or a source-code download; if you want to add
`a feature to MySQL for your application, you can download the source code and
`modify it to your liking.
`
`Tip
`
`Downloading the source code also allows you to include support for transaction(cid:173)
`safe tables when you compile the code.
`
`MySQL is covered under the GNU General Public License (GPL) and the GNU Lesser
`General Public License (LGPL). To that end, most versions of MySQL require no
`license or purchase.
`
`The GNU GPL and LGPL are included for reference in Appendixes Band C, respec(cid:173)
`tively. Additional information on licensing is in Chapter 2.
`
`MySQL also has many Application Programming Interfaces (APis) to give the
`developer to access and shape the database via programs in various languages.
`APis are available for C, C++, Tel, Python, PHP, and Perl. Some of the most popular
`for programming Web interfaces are PHP and Perl. MyODBC makes MySQL ODBC(cid:173)
`compliant as well.
`
`PALO ALTO NETWORKS Exhibit 1043 Page 12
`
`
`
`Chapter 1 + Relational Database Management
`
`1 3
`
`Standards and compatibility
`MySQL follows nearly the entire SQL-92 standard. As is the case with other RDBMS
`products, MySQL extends the SQL standard in distinctive ways (though it can be run
`in an ANSI-only mode). Also, as you would expect, if you use some of the MySQL
`specific extensions to the standard, your database may no longer be portable to
`another RDBMS should you choose to change it at a later date.
`
`You can help your MySQL system maintain compatibility with other databases by
`enclosing any non-standard (MySQL-specific) extensions like this:
`
`I*!
`
`(statement) *I
`
`Other RDBMS systems should ignore the enclosed statement, which saves you from
`having to recode. MySQL simply ignores the brackets and processes the MySQL(cid:173)
`specific statement as normal.
`
`Also, if you add a version number after the exclamation mark, MySQL ignores the
`statement within the brackets unless it follows that version number. For example,
`consider the following line of code:
`
`1*!32343 (statement) *I
`
`On versions older than 3.23.43, the statement within the brackets would be ignored.
`
`Table l-41ists a substantial sample of the numerous MySQL extensions to the
`SQL-92 standard.
`
`Not all extensions listed in Table 1-4 are unique to MySQL, but their use in the
`specific context mentioned in the table may be unique to MySQL (or an extension
`to the standard).
`
`Table 1-4
`MySQL Extensions to SQL-92
`
`Extension
`
`Type/ application
`
`Description or context
`
`%
`
`\
`
`andand
`
`Operator
`
`Operator
`
`Operator
`Operator
`
`Used as a substitute for the mod
`command.
`Escape character. Used where an
`operation would include a normally
`reserved character.
`Used to enclose strings.
`Logical AND.
`
`Continued
`
`PALO ALTO NETWORKS Exhibit 1043 Page 13
`
`
`
`14
`
`Part I + Getting Started
`
`Extension
`II
`
`asc
`
`analyze table
`auto_ increment
`binary
`bit_and()
`
`bi t_count()
`bit_or()
`
`blob
`
`case
`change
`<column name>
`check table
`count(distinct)
`create database
`decode()
`delayed
`
`desc
`
`Statement extension
`
`drop
`<column name>
`drop database
`drop index
`
`drop table
`
`e lt ()
`encode()
`encrypt()
`explain select
`flush (option )
`
`Statement extension
`
`Statement
`Statement extension
`
`Statement extension
`Function
`Function
`
`Function
`Statement
`Statement
`
`Table 1-4 (continued)
`Type/application
`Description or context
`
`Operator
`Operator
`Statement extension
`
`Statement
`Field attribute
`Field attribute
`Statement extension
`Function
`
`Statement extension
`Type
`Function
`Statement extension
`
`Statement
`Statement extension
`Statement
`Function
`
`Statement extension
`
`Used as OR (not to concatenate).
`Used to set variables.
`Used with group by to indicate the
`order for results.
`Used to examine a table.
`Increments a value.
`Controls case sensitivity.
`Used with group by for ANDing of bits.
`
`Returns the number of bits.
`Used with group by for ORing of bits.
`Extensions to b 1 ob type.
`Flow-control option.
`Used with a 1 te r tab 1 e to modify a
`column.
`Used to examine a table.
`Counts multiple items.
`Creates a database.
`String function.
`Used with INSERT or R