throbber
United States Patent
`French et al.
`
`[19]
`
`[111 Patent Number:
`
`5,794,229
`
`[451 Date of Patent:
`
`Aug. 11, 1998
`
`USD(JS794229A
`
`[54] DATABASE SYSTEM WITH
`METHODOLOGY FOR STORING A
`DATABASE TABLE BY VERTICALLY
`PARTITIONING ALL COLUMNS OF THE
`TABLE
`
`[75]
`
`Inventors: Clark French. Pepperell; Peter White.
`Andover. both of Mass.
`
`[73] Assignee: Sybase, Inc.. Emeryvillc. Calif.
`
`[21] Appl. No; 570,183
`
`[22] Filed:
`
`Dec. II, 1995
`
`Related US. Application Data
`
`[63] Continuation-tn-part of sa. No. 43.537, Apr. 16. 1993,
`alrandotzted.
`
`[52] US. Cl.
`
`70132; 70’lJ3: "£07110:
`'"";'r'J'r':"r'205; 7111100; 71rm1;7osi35
`[58] Field orsearda
`395:'60l—6I2.
`393603: 70712. 3. 10. 205: 70555: 7'11! W0.
`W1
`
`[56]
`
`References Cited
`
`U.S. PKI'ENT DOCUMENTS
`
`811986
`4.606.002
`61198?
`4,6'l'}',5S0
`1031988
`431-'6.026
`1011992
`5.15359]
`311994
`5293.616
`5.33‘?-‘,3-t-8 D1199-I
`5,404,310
`-‘W995
`5.495.608
`2/1996
`5,649.18]
`7!l9'97 Frenchet al.
`
`
`
`.
`........................... 395K603
`
`OTHER PUBLICATIONS
`
`"A ‘1lransa.cl:iol:l—BlIscd Approach to Vertical Partitioning fcr
`Relational Database Systems“. Chu er al.. IEEE. v19. n8.
`IEEE Transaction of Software Engineering. Aug. 1993.
`“RDBMS Mattu'ity". Philip A. Naeclrcr. DEC Professional
`vlD,nl2. p. 44-(6) [Available—Onliae; Dialog File 2'75 1. Nov.
`1991.
`
`“Ingres Table Sructurcs“. David Snellen. DBMS. V5. n8. p.
`60(3) |Available: On—Line‘. Dialog File 2'?5J. Jul. 1992.
`Reinartz. l(.. “Aspects of vertical mode in multiprocessor
`systems, urtcortverrtional computation on oonut'mr’ortal_pro-
`cesrorr." Second International Spccalist Seminar on the
`Design and Application of Parallel Digital Processors. IEEE.
`1994. pp. 48-54.
`Brodie. M. and Manola. F.. "Database Management: A
`Survey" 1987. pp. 1-24.
`I-Ianson—Sm.ith. L1d.. “Adwmtage Series System Overview:
`I/en 2.0." 1990. pp. 1-132.
`
`Prr'mor_v Erantirrer-—T'lI0ma5 G. Black
`Assistant .Examirrer——HI:I6aJ'J'1 '1'‘. Alma
`Anomey, Agent. or Firm—-John A. Smart
`
`[57]
`
`AB-Sl'R.AC"l‘
`
`A Clienllsewer Database System with improved methods
`for performing database queries. particularly DSS-type
`qtreries. is described. The system includes one or more
`Clients (e.g.. Terminals or PCs) connected via a Network to
`a Server. In general operation. Clients store data in and
`retrieve data from one or more database tables resident on
`the Server by submitting SQL commands. some of which
`specify “querics“—crlteria for selecting partictllar records
`of a table. The system implements methods 1‘or storing data
`vertica.lly (i.e.. by column}. instead of horizontally (i.e.. by
`row) as is traditionally done. Each column corrtprises a
`plurality of "cells" {i.e.. column value for it record). which
`are arranged on a data page in a contiguous fashion. By
`storing data in a column-wise basis. the system can process
`a DSS query by Izringirrg in only these columns of data
`which are of interest. Instead of retrieving row-based data
`pages consisting of information which is largely not of
`interest to a query. column-based pages can be retrieved
`consisting of information which is mostly. if not oornpletcly.
`of interest to the query. The retrieval itself am he done using
`rntre»e:ll:icient large block U0 transfers. The system includes
`data compression which is provided at the level of Cache or
`Bufia Managers. thus providing on-the-fly data compres-
`sion in a manner which is transparent to each object. Since
`vertical storage of data leads to high repetition on a given
`data page.
`the system provides improved compression!
`decompression.
`
`24 Claims, 11 Drawing Sheets
`
`CUE runs Matt
`rrornou mm
`
`
`
`lZCl.la|0hB-ASED
`mus
`
`R7101.)
`IGE
`
`
`
`Oracle 1111
`
`Oracle 1 1 1 1
`
`

`
`U.S. Patent
`
`Aug. .11, 1993
`
`Sheet 1 of 11
`
`5,794,229
`
`19!
`
`104
`
`KEYBOARD
`
`
`
`105
`
`107
`
`103
`
`SCREEN
`WSPLAY
`
`MASS
`STORAGE
`
`OUTPUT
`DEWCE
`
`‘°2
`
`MAM
`MEMORY
`
`101
`
`CENTRAL
`PROCESSOR
`
`CACHE
`MEMORY
`
`109
`
`
`
`no
`CONTROLLER
`
`no
`
`FIG. 1A
`
`

`
`P5U
`
`uA
`
`9M,
`
`2
`
`5
`
`0;2J,4
`
`m|mE
`
`wezo_Eo:._n.<
`
`@:§__ooE
`
`admzmemo<“_mEz_mm58Imzoozi
`
`mmm:
`
`9.J,3mm
`
`0mi.
`
`..u.s_m5>moz:$m_n_o9:
`
`
`
`
`
`
`

`
`5U
`
`M
`
`9
`
`9
`
`P%
`
`AzmaaHHmm>mm_m
`
`
`..m.mmsmmmxmefimzatzmno
`mm<m<:5WW3WWemuWamWSm
`
`
`
` I
`4",NGE
`
`
`
`7",__5WW
`
`
`
`mumWW3Eoéé‘WWmE..$xmoz_E~:<s_¢oz‘mmWW
`
`~_w.__n__2oo.
`
` mmm8<EuWMmmaIim-:2:zo_Sumxm_mmMfimwmmmWBWH_m8” mmmo¢z<_2Eta‘«RW8o:ms_33%mofimmzmomaoo‘mmWW_‘__W@._<z_.$_m»‘_.MOn_
`
`
`
`
`
`

`
`US. Patent
`
`Aug. 11, 1993
`
`Sheet 4 of 11
`
`922.,497’5
`
`can
`
`L;
`
`onE
`
`Egflnmaaggaaag
`
`
`
`Ezmo::295.xEHEMEEzm._._<.5222as
`
`
`
`m_:_>§msmz$m<m.a_.._.mzmHaEuflEfluEEm:_>mmm
`
`
`
`
`
`a9m:
`
`am2:30memo.
`
`3..GE
`
` an
`
`
`
`Em
`
`En.
`
`On.
`
`
`
`M55.mERG8mzszoumox8.m<m.§o~_
`
`
`
`Emammm_....Em.8
`
`SE3$63
`
`~BE
`
`
`
`n_3$2952zaotcéoz__,§oaE.32.
`
`mm.._.m2.522:E5.032.
`
`re.83..
`
`dom_...__>.Ems_.u.
`
`
`z._mm.._m>mF._._m=._mHmmzzmo:._._.295.x
`
`.z._.._._.mO..<..N>.Eus..1
`
`89.
`
`32.
`
`39
`
`_...mam:mac...2.525Egg.mmEm5%35.“.
`
`
`
`
`
`
`
`

`
`..lHB4...aD13U
`
`Aug. ll, 1998
`
`Sheet 5 of 11
`
`922.,497.,5
`
`8m
`
`
`moqO....m.E<Q
`
`3.02%;8m<m.zs.3oo
`
`Em:
`
`dom._.__>Ems_m
`
`.z.__.FmO_.Smm>._u_0.2mz._mm<m»m_.._.m_zm.._.
`
`anT|.1||JI2&6mgm
`
`
`
`mmGE
`
`:8
`
`on...
`
`On.E
`
`~um;,lg823259%_._on_
`
`miE08
`
`
`
`Emammm:Em8
`
`$63#960.:
`
`
`
`
`
`_...mama$023Egfiggn__53mama
`
`zm._._<85222.5.;z<
`.52:58.9%.0
`
`m._.__>m_m_m
`
`
`
`
`
`mmE,m_o_._.:.20.5.x
`
`
`
`
`
`
`

`
`US. Patent
`
`Aug. 11, 1993
`
`Sheet 6 of 11
`
`5,794,229
`
`
`
`moq03.5.3gm3<o...Em>..,m.m<m.z_._s§
`
`
`
`Ems$m.:9a.8
`
`
`
`§ms$960....
`
`
`
`IE;23.5mj_>mm_mmmnzmo::zo>.__x82H.8.5z_<s_cm.Exec82
`
`
`
`H.3<22.502,:oz_z;on_252
`
`_...mBmEE023EamirmggE42958“mam:
`
`
`
`.25.3Eco;anEo:.n_8.:m85m.:_>._,$s_m2._mm<m>w_jwzmH32
`
`_mmrum
`
`lgggg
`
`E
`
`onNam;
`
`omE
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 7 of 11
`
`922,497..5
`
`IEEE
`
`..95
`
`0:.
`
`S‘GE
`
`222:E889:888.2.88_
`\8:2:£889:883.288.
`as2::_.m.B_Eo.oP8B8.8......_
`:2E:E8888.E:58888"
`
`
`
`ommnzaname
`
`9%.\\\\\.
`
`8:.9.:28:3:.:.
`
`3322
`
`zononammE3
`
`
`
`mmomts:m.%
`
`Sum9E8
`
`
`
`sm_§#563.
`
`
`
`
`
`

`
`9
`
`fl.4.,ma.em93%
`
`U
`
`P.
`
`8m
`
`.m
`
`m8
`
`.3
`
`7.,
`
`
`
`
`
`%~zoammmazoo..S_§.aw:
`
`;..o_mmmE:.oumg:
`
`m_2o_mmmE:ou3:ma2..
`
`amzoammmuzouEs.
`
` .chm;m;.o.a§s§..sE..§§ImlEEu—__EEEH§;=:.
`
`mean.
`
`
`

`
`m34|.3PSU
`
`Aug. 11, 1998
`
`Sheet 9 of 11
`
`92J,MJ,5
`
`
`
`
`
`E2.38.--8.8.888.8.88_..wt
`
`2528880So8::588_
`
`2.885889:5888:588_
`8:2888889._._:888089
`:8:8:.:88888888:5.“
`
`8.GE
`
`.~<m:.:..2
`
`zocoaommE10.
`
`T
`
`
`
`mmoflz.L:m.8
`
`Sm:mom
`
`
`
`Ems8§oo.:
`
`
`
`

`
`mt...§.,_am<o
`
`m
`
`3.5
`
`9
`
`amuzqxzm
`
`zoammmmzoo
`
` bM,9.GE
`
`
`
`
`
`mSoozsm25$gg182mm.»33%xx?kc?_LozamzandH%_._Akc;
`
`
`
`temu:amm20:uaamm.355m..$.5.:_.2
`S__xi»xx;H-3.3.3393.9.33§..-,.a.
`
`tcc,_-..oB89.9888%.8.e..m._
`
`
`
`U.
`
`4|-mm
`
`EM
`
`
`
`Pmm:.33moS.ozaflmzd
`
`
`.|.|.|11l|,.Ems#960,:
`
`
`
`
`
`._.<O.EtméQqmim.0..mn._
`
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 11 of 11
`
`5,794,229
`
`PER PAGE
`COMPRESSJON
`
`PAGE HEADER:
`BTYPE: BiTMAP
`CTYPE: RLE
`
`\
`
` 521
`II E E l CTYPE:LZRW1
`
`511
`
`501
`
`PAGE HEADER:
`BTYPE: DATA
`
`PAGE HEADER:
`
`503
`
`1/
`
`
`
`1
`1
`1
`BUD
`D D DD
`
`FIG. 5
`
`

`
`5394.229
`
`1
`DATABASE SYSTEM WITH
`METHODOLOGY FOR STORING A
`DATABASE TABLE BY VERTICALLY
`PARTITIONING ALL COLUDINS OF THE
`TABLE
`
`The present application is a conlinuation—io—part appli-
`cation of comrnonly—owned application Ser. No. 08/048.637.
`filed Apr. 16. 1993. now abandoned. the disclosure of which
`is hereby incorporated by reference.
`
`COPYRIGHT NOTICE
`
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent docttlnent or the patent
`disclostue as it appears in the Patent and Trademark Ofice
`patent file or records. but otherwise reserves all copyright
`rights whatsoever.
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates generally to information
`processing environments and. more particularly. to process-
`ing of queries against information stored in a data processing
`system. such as an SQL Relational Database Management
`System (RDBMS).
`Computers are very powerful tools for storing and pro-
`viding access to vast amounts of information. Computer
`databases are a common mechanism for storing information
`on computer systems while providing easy access to users.
`A typical database is an organized collection of related
`tnforroation stored as "records" having “fields” of i.nforIna-
`tion. As an example. a database of employees may have a
`record for each employee. Herc. each record contains fields
`designating specifics about the employee. such as name.
`home address. salary. and the like.
`the
`Between the actual physical database itself (i.e..
`records contained in data pages stcred on a storage device)
`and the users of the system. a database management system
`or DBMS is typically provided as a software cushion or
`layer. In essence. the DBMS shields the database user from
`knowing or even caring about underlying hardware-rlevel
`details. ‘Typically. all requests from users for access to the
`data are processed by the DBMS. For example. information
`may be added or removed from data files.
`information
`retrieved from or updated in such files. and so forth. all
`without user knowledge of underlying system i.mplcrnent.a-
`tion.
`In this manner.
`the DBMS provides users with a
`conceptual view of the database that is removed from the
`hardware level. The general construction and operation of a
`database management system is known in the art. See e.g..
`Date. (3.. An introduction to Database Systems. Volume I
`and II. Addison Wesley. 1990; the disclosure of which is
`hereby incorporated by reference.
`DBMS systems have long since moved lirom a centralized
`mainframe environment to a dc-ocnnalized or distributed
`environment. One or more PC "client" systems. for instance.
`may be connected via a network to one or more server-based
`database systems (SQL database server). Commercial
`examples of these “client!server" systems include Power-
`soflT|-‘ clients connected to one or more Sybase SQL
`Scrver“‘ database servers. Both Powersoffi" and Sybase
`SQL Server?“ are available from Sybase. Inc. of Erneryville.
`Calif. As the migration to clienttlserver continues. each day
`more and more businesses are run from mission-critical
`systems which store information on server-based SQL data-
`
`25
`
`‘SD
`
`45
`
`55
`
`2
`base systems. such as Sybase SQL Server‘'“. As a result
`increasingly higher demands are beig placed on server-
`based SQL database systems to provide enterprise-wide
`decision support—~providing timely on-line access to critical
`business infonnation (e..g.. through "queries“J. Accordingly.
`there is much interest in improving the perforrnance of such
`systems. particularly in the area of database query perfor-
`rnanoe.
`
`the
`'1l'ad.it.ionally. database managernent systems {e.g..
`above-described clientlserver database systems) have been
`employed for on—Line
`transaction processing (0I..'l"P)—
`posting data (from transactions) to a database table. As part
`ofthis process of putting data “in” a database. OLTP systems
`typically process queries which find a single record. or just
`a few records. A typical quay in an OLTP system. for
`instance. might be to retrieve data records for a particular
`customer. such as retrieving records in an airline reservation
`system for Account No. 35. Thus. use of OLTP systems for
`retrieving data has been largely limited to moment-to-
`mornent operational needs. where the queries are relatively
`simple and the number of rows retrieved (relative to table
`size) is few. In other words. OLTP systems have been
`optimized for this task of finding a "needle in a haystacl-:"—
`that is. finding one or few records which meet a given query
`condition.
`More recently. however. there has been great interest in
`“data warehousing." For these Decision Support Systems
`(DSS) applications. database systems are designed not so
`much for putting information “in” {i.e..
`transaction
`processing} but more for getting information “out." The
`general approach to providing DSS has been to take an
`SQ1.-based. OLTP database engine (e.g.. Syhase or Oracle)
`which was really architocted for the OLTP environment {and
`the model that it represents] and attempt to extend that
`engine to handle DSS applications. As a result of the etfort
`to build DSS functionality on top of OLTP database engines.
`the performance of present-day DSS products is generally
`poor. Quite simply. OLTP database engines have been archi-
`tected and optimized for transaction processing to such an
`extent that they are not well-suited for analytical processing.
`Alternatively. some vendors have implemented non-SQL-
`based systems providing DSS capability. These systems
`exist today. in large part. due to the failure of SQI.-based
`database systems at processing DSS tasks. Examples of
`these non-SQI. or "on-line analytical processing" (OLAP)
`systems include Pilot” and Comsharel“. These systems
`employ a non-relational model. one which generally allows
`the user to view the data in a ctlbe-lilo: form. Typically. data
`records are imported from SQL databases and then stored. in
`various proprietary formats. Once transposed from SQL
`format into a particular proprietary format. the information
`is usually maintained on one or more servers for access by
`clients. through a proprietary interface. These systems typi-
`cally employ proprietary clients or front ends as well.
`This approach also entails significant disadvantages. how-
`ever. Users prefer to not have to import andlor transpose
`infcnnalion into various proprietary for-roats. Instead. user
`would rather simply keep the information in SQL database
`tables. There are at least two reasons for this. First.
`the
`information is generally “already dune." having been accu-
`mulated by the posting of transactions over a period of tirne.
`Second. users are already familiar with working with one of
`the main SQL database providas. such as Sybase or Oracle.
`Even if a separate tool is required to implement DSS. users
`prefer to work with tools which are in the same family as the
`tools which they are already using on a day-to-day basis.
`Expectedly. the non-SQI. approach has met with Limited
`success.
`
`

`
`5.794
`
`-4-...
`999
`
`3
`What is needed are system and methods with better DSS
`performance. yet within the traditional SQIJrelational
`rnodel—a model which users demand. From the perspective
`of users. such a system should appear to be essentially an-
`SQL-based relational system. At the same time. however.
`such a system should yield rrtuch-improved DSS perfor-
`mance. The present invention fulfills this and other needs.
`
`SUMMARY OF THE INVENTION
`
`1(2-
`
`The present invention comprises a Clienb’Server Database
`System with improved methods for performing database
`queries. particularly DSS-type queries. In an exemplary
`embodiment. the system includes one or more Clients (e.g..
`Terminals or PCs} connected via a Network to a Server. The
`Server. operati ng under a server operating system (e.g..
`UNIX).
`includes a Database Server System. In general
`operation. Clients store data in and retrieve data from one or
`more database tables resident on the Server by submitting
`SQL cornmands. some of which specify "queries"—critcria
`for selecting particular records of a table.
`According to the present invention. data is not stored in a
`row or a horizontal orientation. as is traditionally done. but
`is instead stored vertically (in. by column). By storing data
`in a column-wise basis. the system of the present invention
`can process a DSS query by bringing in only those columns
`of data which are of interest. A DSS query typically entails
`looking at 50% or greater of the data and often includes
`GROUP BY clauses (e.g.. on State or Gendu) and includes
`SUM. COUNT. and AVG clauses (e.g.. average on
`Revenue). Processing such a query using traditional storage
`methodology is highly inefiiciont. as row-based (horizontal)
`data pages bring in from disk all columns of data. whether
`or not particular columns are of interest to the query. Thus
`for DSS queries. storing data on a column basis by cell is far
`more preferable than storing data in the traditional row or
`record format.
`
`Since the vast majority of information in real-world DSS
`applications is typically low cardinality data (e.g.. State field
`has only 30 unique values. the majority of the columns of a
`typical DSS table will store low cardinality data on each
`vertical data page. As a result. repetition within a particular
`column is quite high. thus leading to far better compression
`of data pages than can be realized than with row-based
`stcnge. The nature of the data encountered.
`therefore.
`fimhcr enhances the advantages of colun1n—wise storage or
`vertical partitioning.
`In a typical DSS quay. a database system needs to bring
`in large amounts of inforrnalionz these queries typically look
`at a large percentage of the database. If the data pages
`actually brought in for the DSS query are populated largely
`or completely with information necessary for the query. then
`H0 block size may be increased to a level which is optimal
`for the envirorunentlplatforrn. such as to a level of 64K data
`pages. More particularly. by storing information in a
`coIurn.n—based format.
`in accordance with the present
`invention. a high saturation level of iltforrnation [such as
`required by a DSS query) can be etliciently met. Instead of
`retrieving row-based data pages consisting of information
`which is largely not of interest to a query. column-based
`pages can be retrieved consisting of information which is
`mostly.
`if not completely. of interest to the query. The
`retrieval itself can be done using more-efficient large block
`HO transfers.
`
`In the system of the present invention. from an SQL
`system catalog. the system can detennine a chain of columns
`which represent a particular table. Specifically. from the
`
`45
`
`55
`
`65
`
`4
`chain of columns. the system can represent a logical table to
`the user. Here. the concept of a "table" in the system of the
`present
`invention is purely a catalog logical entry. as
`opposed to a physical entity in which it traditionally exists.
`The columns are “tied together" logically to represent a
`table. From the perspective of the user. however. the vertical
`partitioning is transparent.
`Each column comprises a plurality of “cells” (i.e.. column
`value for a record). which are arranged on a data page in a
`contiguous fashion. For fixed-length fields {e.g.. two char-
`acter Slatc field). the ofiset of any particular cell on a page
`can be quickly computed as a modulus of that cell (adjusted
`for any header information to the page). Between the indi-
`vidual cells. there is no overhead information. in contrast to
`sevaal row—based implementations. Since the cells.
`in
`essence. exist as a solid stream of data. column scans are
`particularly enicient.
`The pages are further optimized for compression by
`storing in the page header‘ 3. status flag indicating whether the
`data page is a candidate for oolznprcssion and (optionally)
`what type of compression is best suited for the data on that
`page. Since this is senable on a page-by-page basis. one
`particular compression technique can be applied on one
`column yet at the same time another compression technique
`applied on another’ column (or a d.ifl’erent part of the same
`column}. all within the same (logical) table.
`Data compression is added to the system at the level ofdte
`Cache or Bufier Managers. It is preferable to isolate com-
`pression here so that each object need not be concerned
`about compressing itself (or even being aware that compres-
`sion is occurring]. As a resulL compression is tranwenlly
`added to all data objects managed by Bu:fi'er Managers. The
`data pages of an object are compressed when sent out to disk
`and decompressed when retrieved Erorn disk. yet the object
`itself is unaware of this action.
`
`Most objects within the system. such as tables. indexes.
`logs. and die like. exist as pages. As these objects are
`streamed to disk. each simply requests its Buffer Manager to
`store the object on disk. The Manager in turn stores the
`object on disk using the best cornpresnon methodology
`lcnown to it. for the given object. In this manner. data
`compression is transparent to the data objects above the
`level of the Buficr Manager.
`To address the potential problem of a modified block no
`longer compressing back down to its original size. a “block
`map" is employed in the system of the present invention.
`Wiflain a Bufier Manager. there can be as many instances of
`a block map as needed. Typically. one exists per object (or
`portion thereof}. For instance. one block map can exist pa
`B—'ll'ce. or one per portion of a B-Tree (e.g.. non-leaf level
`pages). Each block map. in turn. may be thought of as a
`logical-to-physical translator for the object (or subnbject}
`which is its focus. In this manner. the system can concentrate
`on bringing in the object (or portion of the object) which is
`needed. Each page number providedto a client serves as an
`index into the corresponding block map for determining the
`actual physical page number. For implcmentalzions without
`compression. this translator may be eliminated.
`BRIEF DESCRIPTION OF Tl-IE DRAWINGS
`
`FIG. IA is a bloclrdiagraun of a computer system in which
`the present invention may be embodied.
`FIG. 1B is a block diagram of a software subsystem for
`controlling the operation of the computer system of FIG- 1A.
`FIG. 2 is a block diagram of II. clientfservcr system in
`which the present invention is preferably embodied.
`
`

`
`5 .79-1.229
`
`5
`FIGS. SA-C are diagrams illustrating column-based data
`storage or “vertical partitioning." which is employed for
`storing data tables in the system of the present invention.
`FIGS. -t|A—D are diagram illustrating "natural data reduc-
`tion” compression of data types which would otherwise
`include unused bits: natural data reduction may be combined
`with other compression methodologies. as shown particu-
`larly in FIG. 415.
`FIG. 5 is a diagram illustrating per page compression
`rnethodology of die present invention. which allows di.lfer-
`ent compression methodology to be applied to diiferent data
`pages {of either dillerent page chains or even within the
`same page chain].
`DE"l"AIl..ED DESCRIPTION OF A PREFERRED
`EMBODIMENT
`
`The following description will focus on the presently
`pueferred embodiment of the present invention. which is
`operative in a network environment executing clientfserver
`database applications. The present invention. however. is not
`limited to any particular application or environment Instead.
`those skilled in the art will find that the present invention
`may be advantageously applied to any application or envi-
`ronment where optimization of query performance is
`desirable. including non-SQL database management sys-
`tems and the like. The description of the exemplary embodi-
`ments which follows is. therefore. for the purpose of illus-
`tration and not limitation.
`Standalone System Hardware
`The invention may be embodied on a computer system
`such as the system l00 of FIG. 1A. which comprises a
`central processor 101. a main memory 102. an inputfoutput
`controller 103. a keyboard 104. a pointing device 105 (e.g..
`mouse. naclt ball. pen device. or the like). a screen display
`device 106. and a mass storage 107 te.g.. hard or fixed disk.
`removable disk. optical disk. magneto-optical disk. cr flash
`memory). Processor 101 includes or is coupled to a cache
`memory 109 for storing frequently accessed information:
`memory 109 may be an on-chip cache or external cache (as
`shown]. Additional output devicetsl 103. such as a. printing
`device. may be included in the system 100 as desired. As
`shown. the various components of the system 100 commu-
`nicate through a system bus 110 or similar architecture. In a
`lxeferred embodiment. the system 100 includes an IBM-
`cornpatible personal computer system. available from It
`variety of vendors (including IBM ofArmonlr.. N.Y.).
`Standalone System Software
`Illustrated in FIG. LB. a computer software system 150 is
`provided for directing the operation of the computer system
`100. Software system 150. which is stored in system
`memory 102 and on mass storage or disk memory 107.
`includes a kernel or operating system (05) 140 and a
`windows shell 145. One or more application programs. such
`as application software programs 155. may be "loaded" {i.e..
`transferred frorn storage 107 into memory 102) for execu-
`tion by the system I00. The system also Includes a user
`interface 160 for receiving user commands and data as input
`and displaying result data as output.
`Also shown. the software system 150 includes a Rela-
`tional Database Man-agernent System (RDBMS) front-end
`or "client" 170. The RDB-MS client 17!} may be any one of
`a number" of database front-ends. including Powerfluilderfl‘.
`dBA.SE®. Paradox®. Mic1'osoft® Access. or the like. In an
`exemplary embodiment. the front-end will include SQL
`access drivers {e.g.. Borland SQL Links. Microsoft ODBC
`drivers. Intersolv ODBC drivers. and the like) for accessing
`database tables from an SQL database server operating in a
`Client}Server environment.
`
`25
`
`35
`
`55
`
`65
`
`6
`Client!'Server Database Management System
`While the present invention may operate within a single
`{standalone} computer (e.g.. system Hill of FIG. 1A). the
`present invention is preferably embodied in a multi-user
`computer system. such as a Clientfserver system. FIG. 2
`illustrates the general structure of a Clienttserver Database
`System 200 suitable for implementing the present invention.
`As shown. the system 200 comprises one or more Client-(s)
`210 connected to a Server 230 via a Network 220.
`Specifically. the Client(s) 210 comprise one or more stan-
`dalone ‘Terminals 211 connected to a Database Server Sys-
`tem 240 using a conventional network. In an exemplary
`embodiment. the Terminals 2.11 may themselves comprise a
`plurality of standalone workstations. dumb tennina.ls. or the
`like. or comprise personal computers (PCs) such as the
`above-described system 1041. Typically. such units would
`operate under a client operating system. such as Microsoft
`vruidowsIMS-D-OS for PC clients.
`The Database Server System 240. which comprises
`Sybase SQI. Server" (available from Sybase. Inc. of
`Erneryville. Calif.) in an exemplary embodiment. generally
`operates as an independent process (is... independently or
`the Clients). waning under a server operating system such as
`Microsoft Windows NT (Microsoft Corp. of Redmond.
`Wash). Netware {Novell of Provo. UT). UNIX {Nove.ll). or
`OS.?2 (IBM). The Network 220 may be any one of a number
`of conventional network systems. including a Local Area
`Network (LAN,1 or Wide Area Network (WAN,1. as is known
`in the an te.g.. using Ethernet. IBM Token Ring. or the like).
`The Network includes functionality for packaging client
`calls in the well-known SQL {Structured Query Language)
`together with any parameter information into a format (of
`one or more packets) suitable for n-ansmission across a cable
`or wire. for delivery to the Database Server System 240.
`Clienuserver environments. database servers. and net-
`works are well documented in the technical. trade. and
`patent literature. For a discussion of database servers and
`clientlserver environments generally. and SQL Server"
`particularly. see. e.g.. Nadi. A.. The Guide to SQL Server.
`Second Edition. Addison-Wesley Publishing Company.
`1995. Additional documentation of SQL Server“-| is avail-
`able from Sybase. Inc. as SQL Server Documentation Set
`(Catalog No. 49600). For a discussion of a computer net-
`work employing Microsoft Networksl0penN-et File Sharing
`Protocol. see METHOD AND SY5'l'EM FDR O1IPon'nn~ns11c
`Locrcmo us A NEIWORKED Counrrnn SYSTEM. Intl. Appli-
`cation No. PCl'R.IS90!ll-$570.
`lntl. Publication No. W0
`9l!03ll24. Inll. Publication Date Mar. 7. I991. For a general
`introduction to a Local Area Nctwcrk operating under
`Netware. see Freed. L. et al.. PC Magazine Guide to Using
`Nerlihre. Zifl-Davis Press. 1991. A more detailed discussion
`is available in Neiware 3.x and 4.x and accompanying
`documentation. which is available from Novcll of Provo.
`UT. The disclosures of each of the foregoing are hereby
`incorporated by reference.
`In operation. the Client{s) 210 store data in or retrieve
`data from one or more database tables 30. shown in FIG.
`2. Typically resident on the Servo: 230. each table itself
`comprises one or more horizontal rows or “records” (triples)
`together with vertical columns or "fields.“ Adatabase record
`includes information which is most conveniently repre-
`sented as a single unit. A reccrd for an employee. for
`example. may include information about the employee's ID
`Number. Last Name and First initial. Position. Date Hired.
`Social Security Ntunber. and Salary. Thus. a typical record
`includes several categories of information about an indi-
`vidual person. place. or thing. Each of these categories. in
`
`

`
`5.794.229
`
`7
`turn. represents a database field. In the foregoing employee
`table. for example. Position is one field. Date Hired is
`another. and so on. With this format. tables are easy for users
`to understand and use. Moreover. the flexibility of tables
`permits a user to define relationships between various items
`of data. as needed.
`In operation. the Clientts) issue one or more SQL com-
`mands to the Server. SQI. commands may specify. for
`instance a query for retrieving particular data (i.e.. data
`records meeting the query condition) from the table 250. The
`syntax of SQL (Structured Query Language) is well docu»
`mentcd; see. c.g.. the ahovomentioned An Introduction to
`Database Systems. In addition to retrieving the data from
`Database. Server tables. the Clicnt(s) also include the ability
`to insert new rows of data records into the table: Clientts)
`can also modify andlor delete existing records in the table.
`For enhancing the speed in which the Database Server
`stores. retrieves. and presents particular data records. the
`Server maintnins one or more database indexes 271 on the
`table. under control of an Index Manager. Actatahase index.
`typimlly maintained as a B-Tree data st:ructI.IIc.. allows the
`records of a table to be organized in many dilfereut ways.
`depending on a particular user's needs. An index may be
`constructed as a single disk file stcring index key values
`together with unique record numbers. The former is a data
`quantity composed of one or more fields from a record: the
`values are used to arrange (logically) the database file
`records by some desired order (index expression)- The latter
`are unique pointers or identifiers to the actual storage
`location oi each record in the database tile. Both arereferred
`to internally by the system for locating and displaying
`records in a database file. Alternatively. instead of storing
`unique record numbers. a “clustercd" index may be
`employed. This is an index which stores the data pages ofthe
`records themselves on til: terminal or leaf-level nodes of the
`index.
`In operation. the SQL statements received from the one or
`more Clients 210 (via Network 220) are processed by
`Engine 260 of the Database Server System 2910. The Engine
`260 itself comprises a Parser 261. Nornalizer 263. Compiler
`265. Execution Unit 269. Access Methods 270. and Bufier
`Manager(s) 272. Specifically. the SQL statements are passed
`to the Pwser 261 which converts the statements into a query
`trce—a binary tree data strI.tct1u'c which represents the
`components of the query in a format selected for the
`convenience of the system. In this regard. the Parser 261
`employs conventional parsing methodology (e.g.. recursive
`descent parsing).
`The query tree is ncnnalized by the Normalize: 263.
`Nonualizatlon includes. for example. the elimination of
`redundant data. Additionally. the Normalize: 266 performs
`error checking. such as confirming that table names and
`column names which appear in the query are valid (e.g.. are
`available and belong together). Finally. the Nornalizcr can
`also look up any referential integrity constraints which exist
`and add those to the query.
`After normalization.
`the query tree is passed to the
`Compiler 265. which includes an Optimizer 2156 and a Code
`Generator 267. The Optimizer is responsible for optimizing
`the query tree. The Optimizer performs a cost-based analysis
`for formulating a query execution plan. The Optimizer will.
`for instance. select the join order of tables (e.g.. when
`working with more than one table): it will select relevant
`indexes {e.g.. when indexes are available}. The Optimizer.
`therefore. performs an analysis of the query and picks the
`best execution plan. which in mm results in particular ones
`of the Access Methods 210 being invoked during query
`execution.
`
`I6
`
`20
`
`35
`
`45
`
`SD
`
`65
`
`8
`The Code Generator 2.67. on the other hand. converts the
`quay tree into a set of instructions suitable for satisfying the
`query. These instructions are passed to the Execution Unit
`269. Operating undo" the control of these instructions. the
`Execution Unit 269 generates calls into lower-level routines.
`such as the Access Methods 2'30. for retrieving relevant
`information (e.g.. row 255) from the database table 250. The
`Acc

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket