`Page 1 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 2 of 61
`
`
`
`•
`
`I
`
`THE UNIVERSITY OF TEXAS AT AUSTIN
`THE GENERAL LIBRARIES ·
`PERRY-CASTANEDA LIBRARY
`
`DATE DUE
`
`DATE RETURNED
`
`:
`
`.)' 1 JUN O r lJL; I
`
`RFT'O PCL
`A Pf f 3"'~tfo'C [
`APR 1 0 2000
`JUlJ O 7 2J~ oJiET'D PCL
`DEC 1 7 2000 -
`RET'D PCL
`· AUG 3 0 2001
`RET'D PCL
`I CL PCL PCL
`JAN 1 9 2003
`JAN 1 4 2002
`PCL PCL PC.REro ENGli f
`LJU~8~ 2~2;
`'1AY .l ~! 2003
`RET'D BY MAIL - PCL
`PC
`.
`JAN 2 0 2004 ~b2~Qoo.3
`DEC 3 o 2.003
`
`,~]
`
`World Programming Limited EXHIBIT 1008
`Page 3 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 4 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 5 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 6 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 7 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 8 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 9 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 10 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 11 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 12 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 13 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 14 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 15 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 16 of 61
`
`
`
`Structured Query Language
`
`The Dynamic Server provides object-oriented capabilities beyond those of
`the relational model but represents all data in the form of tables with rows and
`columns. Although the object-relational model extends the capabilities of the
`relational model, you can implement your data model as a traditional rela(cid:173)
`tional database if you choose.
`
`Some rules apply about how you choose entities and attributes, but they are
`important only when you are designing a new database. For more infor(cid:173)
`mation about object-relational database design, see the Informix Guide to
`Database Design and Implementation.
`
`Structured Query Language
`Most computer software has not yet reached a point where you can literally
`ask a database, "What orders have been placed by customers in New Jersey
`with ship dates in the third quarter?" You must still phrase questions in a
`restricted syntax that the software can easily parse. You can pose the same
`question to the demonstration database in the following terms:
`SELECT* FROM customer, orders
`WHERE customer.customer_num = orders.customer_num
`AND customer.state= 'NJ'
`AND orders.ship_date
`BETWEEN DATE('?/1/98') AND DATE('9/30/98')
`This question is a sample of Structured Query Language (SQL). It is the
`language that you use to direct all operations on the database. SQL is
`composed of statements, each of which begins with one or two keywords that
`specify a function. The lnformix implementation of SQL includes a large
`number of SQL statements, from ALLOCATE DESCRIPTOR to WHENEVER.
`
`You will use most of the statements only when you set up or tune your
`database. You will use three or four statements regularly to query or update
`your database. For details on SQL statements, see the Informix Guide to SQL:
`Syntax.
`One statement, SELECT, is in almost constant use. SELECT is the only
`statement that you can use to retrieve data from the database. It is also the
`most complicated statement, and the next two chapters of this book explore
`its many uses.
`
`1-14 lnformix Guide to SOL: Tutorial
`
`World Programming Limited EXHIBIT 1008
`Page 17 of 61
`
`
`
`7
`
`Standard SQL
`
`Standard SQL
`SQL and the relational model were invented and developed at IBM in the
`early and middle 1970s. Once IBM proved that it was possible to implement
`practical relational databases and that SQL was a usable language for manip(cid:173)
`ulating them, other vendors began to provide similar products for non-IBM
`computers.
`
`For reasons of performance or competitive advantage, or to take advantage
`of local hardware or software features, each SQL implementation differed in
`small ways from the others and from the IBM version of the language. To
`ensure that the differences remained small, a standards committee was
`formed in the early 1980s.
`
`Committee X3H2, sponsored by the American National Standards Institute
`(ANSI), issued the SQLl standard in 1986. This standard defines a core set of
`SQL features and the syntax of statements such as SELECT.
`
`lnformix SQL and ANSI SQL
`The SQL version that Informix products support is compatible with standard
`SQL (it is also compatible with the IBM version of the language). However, it
`does contain extensions to the standard; that is, extra options or features for
`certain statements, and looser rules for others. Most of the differences occur
`in the statements that are not in everyday use. For example, few differences
`occur in the SELECT statement, which accounts for 90 percent of the SQL use
`for a typical person.
`
`However, the extensions do exist and create a conflict. Thousands of lnformix
`customers have embedded lnformix-style SQL in programs and stored
`routines. They rely on Informix to keep its language the same. Other
`customers require the ability to use databases in a way that conforms exactly
`to the ANSI standard. They rely on Informix to change its language to
`conform.
`
`lnformix resolves the conflict with the following compromise:
`■ The Informix version of SQL, with its extensions to the standard, is
`available by default.
`■ You can ask any Informix SQL language processor to check your use
`of SQL and post a warning flag whenever you use an Informix
`extension.
`
`Database Concepts 1-15
`
`World Programming Limited EXHIBIT 1008
`Page 18 of 61
`
`
`
`Interactive SOL
`
`This resolution is fair but makes the SQL documentation more complicated.
`Wherever a difference exists between lnformix and ANSI SQL, the Informix
`Guide to SQL: Syntax describes both versions. Because you probably intend to
`use only one version, simply ignore the version you do not need.
`
`Interactive SQL
`To carry out the examples in this book and to experiment with SQL and
`database design, you need a program that lets you execute SQL statements
`interactively. DB-Access and the Relational Object Manager are examples of
`such programs. They help you compose SQL statements, and then they pass
`your SQL statements to the database server for execution and display the
`results to you.
`
`General Programming
`You can write programs that incorporate SQL statements and exchange data
`with the database server. That is, you can write a program to retrieve data
`from the database and format it however you choose. You can also write
`programs that take data from any source in any format, prepare it, and insert
`it into the database. ·
`
`You can also write programs called stored routines to work with database
`data and objects. The stored routines that you write are stored directly in a
`database in tables. You can then execute a stored routine from DB-Access, the
`Relational Object Manager, or an SQL application programming interface
`(SQL API) such as lnformix ESQL/C.
`
`Chapter 7 and Chapter 8 present an overview of how SQL is used in
`programs.
`
`1-16 lnformix Guide to SQL: Tutorial
`
`I
`
`I
`
`World Programming Limited EXHIBIT 1008
`Page 19 of 61
`
`
`
`ANSI-Compliant Databases
`
`ANSI-Compliant Databases
`Use the MODE ANSI keywords when you create a database to designate it as
`ANSI compliant. Within such a database, certain characteristics of the ANSI
`standard apply. For example, all actions that modify data take place within a
`transaction automatically, which means that the changes are made in their
`entirety or not at all. Differences in the behavior of ANSI-compliant databases
`are noted where appropriate in the statement descriptions in the Informix
`Guide to SQL: Syntax. For a detailed discussion of ANSI-compliant databases,
`see the Informix Guide to Database Design and Implementation.
`
`GLS Databases
`Informix database server products provide the Global Language Support
`(GLS) feature. In addition to U.S. ASCII English, GLS allows you to work in
`other locales and use non-ASCII characters in SQL data and identifiers. You
`can use the GLS feature to conform to the customs of a specific locale. The
`locale files contain culture-specific information such as.various money and
`date formats and collation orders. For more GLS information, see the Informix
`Guide to GLS Functionality.
`
`Summary
`A database contains a collection of related information but differs in a
`fundamental way from other methods of storing data. The database contains
`not only the data but also a data model that defines each data item and
`specifies its meaning with respect to the other items and to the real world.
`
`More than one user can access and modify a database at the same time. Each
`user has a different view of the contents of a database, and each user's access
`to those contents can be restricted in several ways.
`
`A relational database consists of tables, and the tables consist of columns and
`rows. The relational model supports three fundamental operations on tables:
`selections, projections, and joins.
`
`Database Concepts 1-17
`
`•
`
`World Programming Limited EXHIBIT 1008
`Page 20 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 21 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 22 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 23 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 24 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 25 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 26 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 27 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 28 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 29 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 30 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 31 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 32 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 33 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 34 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 35 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 36 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 37 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 38 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 39 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 40 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 41 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 42 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 43 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 44 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 45 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 46 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 47 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 48 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 49 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 50 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 51 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 52 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 53 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 54 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 55 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 56 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 57 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 58 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 59 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 60 of 61
`
`
`
`World Programming Limited EXHIBIT 1008
`Page 61 of 61
`
`