Language selection

Search

Patent 2230301 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2230301
(54) English Title: ARRAY-MANAGEMENT DATA-BASE SYSTEM
(54) French Title: SYSTEME DE BANQUE DE DONNEES POUR LA GESTION DE MATRICES
Status: Expired and beyond the Period of Reversal
Bibliographic Data
(51) International Patent Classification (IPC):
(72) Inventors :
  • BAUMANN, PETER (Germany)
(73) Owners :
  • PETER BAUMANN
(71) Applicants :
  • PETER BAUMANN (Germany)
(74) Agent: GOWLING WLG (CANADA) LLP
(74) Associate agent:
(45) Issued: 2001-05-15
(86) PCT Filing Date: 1996-08-22
(87) Open to Public Inspection: 1997-03-06
Examination requested: 1998-02-24
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/DE1996/001583
(87) International Publication Number: DE1996001583
(85) National Entry: 1998-02-24

(30) Application Priority Data:
Application No. Country/Territory Date
195 31 809.9 (Germany) 1995-08-30
196 21 788.1 (Germany) 1996-05-30

Abstracts

English Abstract


The invention concerns a general-applicability data-base system (DBS) for the
storage, retrieval and manipulation of scan data, i.e. arrays of any (fixed or
variable) size and dimensions and of any basic type. The invention is
characterized by the strict separation of the logical (conceptual) and
physical levels in order to ensure data independence, i.e. the possibility of
addressing scan data irrespective of their physical storage structure, coding
or state of compression. Depending on the data format required by the
application, the DBS undertakes, in transparent fashion, the required
conversion and (de)compression, taking into consideration accessing- and
transmission-optimization aspects. At the conceptual level, the explicit
definition of array structures provides the DBS, via a data-definition
language (DDL), with knowledge of the complete array semantics. An orthogonal
enquiry language (DML) includes array-specific primitives as well as operators
which can be combined in any way to formulate optimizable DML expressions and
predicates. Standard functions make explicit format conversion possible. At
the physical level, a memory architecture based on a combination of array
tiling and a spatial access structure (geo-index) permits efficient access to
arrays and sub-arrays as well as the distribution of arrays over several, in
certain cases heterogeneous, storage media. The invention is suitable above
all for scanning applications with high requirements on functionality, data
volume, network capability and access time, in particular for distributed,
open multi-media systems.


French Abstract

L'invention concerne un système de banque de données (DBS), d'utilisation universelle, destiné au stockage, à l'extraction et à la manipulation de données d'exploration, c'est-à-dire des matrices de n'importe quelle taille et de n'importe quelles dimensions (cette taille et ces dimensions pouvant être fixes ou variables) et de n'importe quel type de base. L'invention se caractérise par la stricte séparation des niveaux logiques (conceptuels) et physiques, séparation ayant pour but de garantir l'indépendance des données, c'est-à-dire la possibilité d'avoir accès à des données d'exploration indépendamment de leur structure de stockage physique de leur codage et de leur compression. En fonction du format des données requis par l'application, le système de base de données entreprend, de façon transparente, la conversion et la (dé)compression requises, tout en prenant en compte les aspects relatifs à l'optimisation de l'accès et de la transmission. Au niveau conceptuel, la définition explicite des structures matricielles fournit au système de base de données, par l'intermédiaire d'un language de définition de données (DDL), la connaissance de la sémantique complète des matrices. Un language de demande orthogonal (DML) comprend des primitives spécifiques des matrices, ainsi que des opérateurs qui peuvent être combinés d'une façon quelconque pour formuler des expressions et des prédicats DML optimisables. Des fonctions standards permettent la conversion de format explicite. Au niveau physique, une architecture de mémoire fondée sur une combinaison de juxtaposition de matrices et d'une structure d'accès spatiale (géo-index) permet un accès efficace aux matrices et aux matrices partielles ainsi que la répartition de matrices sur plusieurs supports de stockage, lesquels sont, dans certains cas, hétérogènes. Cette invention convient surtout aux applications d'exploration soumises à de hautes exigences en ce qui concerne la fonctionnalité, le volume de données, l'aptitude du réseau et le temps d'accès, en particulier pour des systèmes multimédia ouverts et répartis.

Claims

Note: Claims are shown in the official language in which they were submitted.


Claims
1. Database system comprising
- storage means for storing encoded and/or compressed multidimensional array
data,
- a storage interface,
- an application programming interface and
- processing means for effecting a storage and query processing and for
providing
processed data to the storage interface or the application programming
interface,
comprising an encoder/decoder, a compressor/decompressor, a query processor,
a query optimizer and a format converter,
wherein,
- the provision of input data to the storage interface through the processing
means
takes place in a storage format predetermined by an indicator assigned to the
data,
- the provision of output data to the application programming interface
through the
processing means takes place in an output format predetermined by an indicator
transmitted via the application programming interface, and
- the storage format and the output format as well as a predetermined internal
format of the processing means for the processing of the data are respectively
independent from one another.
2. Database system according to claim 1, wherein the provision to the
application
programming interface takes place selectively in an output format suitable for
direct
further processing by an application, or an output format arbitrarily
selectable through
the application programming interface.
3. Database system according to claim 1 or claim 2, wherein the input of array
data takes
place via the application programming interface in an arbitrary data format.

-2-
4. Database system according to any one of claims 1 to 3, wherein the
application
programming interface comprises a declarative interface for definition,
storage,
modification and retrieval of arrays.
5. Database system according to any one of claims 1 to 4, wherein the storage
means
comprise a storage manager.
6. Method for processing multidimensional array data in a database system
according to any
one of claims 1 to 5, comprising the following steps:
1. Transmission of an array input via an application programming interface and
an
input query to a processing unit;
2. generation and optimization of a query plan from the input query;
3. modification of the input array according to the query plan and translation
of the
input array into a predetermined internal format of the processing unit;
4. determination of array data or array partial data affected by the query
plan, which
are stored in storage means of the database system;
5. loading into the processing means, decoding and decompression of the
determined array data or array partial data according to an indicator assigned
to
the data, generation of modified array data or array partial data from the
data of
the input array;
6. translation of overwritten array data or array partial data into a storage
format
predetermined by an indicator assigned to the data and transfer of the data to
a
storage interface.
7. Method according to claim 6, wherein the arrays are stored in the storage
means divided
into array partial data with assignment of an index, and wherein the
determining of the
affected array data or array partial data in step 4 takes place by means of
the index.
8. Method according to claim 7, wherein the compression and encoding of array
partial data
of an array takes place independently from one another.

-3-
9. Method for processing multidimensional array data in a database system
according to any
one of claims 1 to 5, comprising the following steps:
1. Transmission of a query input through an application programming interface
to
a processing unit;
2. generation and optimization of a query plan on the basis of the input
query;
3. allocation of storage place for a result array obtained by the query;
4. determining the array data or array partial data affected by the query
plan, which
are stored in storage means of the database system;
5. loading into the processing means, translation of the determined array data
or
array partial data from the storage format predetermined by the indicator
assigned
to the data into a predetermined internal format of the processing unit,
copying
of relevant array partial data into the result array according to the query
plan;
6. effecting further operations according to the query plan;
7. translation of result array data into an output format predetermined by an
indicator transmitted via the application programming interface, in case this
output format differs from the internal data format;
8. transmission of the result arrays to the application programming interface.
10. Method according to claim 9, wherein step 7 comprises the compression and
encoding
of the result array data.
11. Method according to claim 9 or claim 10, wherein the arrays are stored in
the storage
means divided into array partial data with assignment of an index, and wherein
the
determination of the affected array data or array partial data in step 4 takes
place by
means of the index.
12. Method according to claim 7 or claim 11, wherein the array partial data
are tiles.
13. Method according to any one of claims 7, 11 or 12, wherein the index is a
spatial index
(geo-index).

Description

Note: Descriptions are shown in the official language in which they were submitted.


..T>2
r
CA 02230301 1998-02-24
Peter Baumann
DE-80689 Miinchen
Database System for Management of Arrays
1. SUMMARY OT THE INVENTION
The invention relates to an application- or domain-independent database
system (DBS) for the. storage, retrieval, and manipulation of raster data,
i.e.
arrays of arbitrary (fixed or variable) size and number of dimensions over
arbitrary array base types. The invention is characterized by a strict separa-
tion of logical (conceptual) and physical level to achieve data independence,
i.e. to address raster data independently from their physical data structuring
(storage structure), encoding, and compression. Depending on the data for-
mat requested by the application, the DBS transparently effects the neces-
sary conversion and (de-)compression taking into account access and trans-
fer optimization issues.
On the conceptual level, the explicit definition of array structures via a
data
definition language (DDL) provides the DBS with the knowledge concerning
the complete array semantics. An orthogonal query language (DML) con-
tains array-specific primitives and operators which can be combined arbi-
trarily to form optimi.zable DML-expressions and -predicates. Standard
functions allow for explicit format conversion.
On the physical level, a storage architecture based on the combination of
array tiling and a spatial access structure (geo-index) allows for the e~cient

CA 02230301 1998-02-24
-2-
t
access to arrays and al-ray cut-outs as well as the distribution of an array
over several, potentially heterogeneous storage media.
The invention is particularly suited for raster applications which have de-
manding requirements with respect to functionality, data volumes, network
capability and access tune - in particular distributed, open multimedia sys-
terns.
2. TECHNICAL BACKGROUND OF THE INVENTION
2.1 Technical Area to which the Invention Relates
This invention pertains to a domain-independent database system (DBS) to
store, retrieve and manipulate arbitrary arrays in databases. The term array
is understood here in a programming language sense: A fixed-length or vari-
able-length sequence of similarly structured data items (cells, in computer
graphics and imaging often called pixels) addressed by (integer) position
numbers. The cells themselves may be arrays again, so that arrays of arbi-
trary dimensions can be constructed.
2.2 Prior Art with Sources
DBSs have a considerable tradition and play an important role in the stor-
age, retrieval and manipulation of large amounts of data. To this end, they
offer means for flexible data access, integrity and consistency management,
concurrent access by a plurality of users, query and storage optimization,
backup and recovery, etc. For communication between database application
(client) and database program (server) various techniques exist, which, for

CA 02230301 1998-02-24
-3-
example via function libraries (Application Programmer's Interface, API)
which are tied to the application, effect a network data communication in-
chiding a data conversion invisibly for the application.
However, these advantages are, as yet, only available for data items such as
integers and strings, as well as, for some while now, for so-called long
fields
or blobs (binary large objects), i.e. byte strings of variable length. As for
general raster data (for example audio (1D), raster images (2D) and video
(3D)), current practice is to regard them as bit strings and to map or project
them onto linear blobs for example in [MwLW-89] the authors first state
that "raw image data form a matrix of pixels" and then conclude that "the
raw data appear (in the database) just as a string of bits".
Due to this loss of semantics through the FORTRAN-type linearisation in
the database, raster data can only be read or written as a whole or in a line-
by-line fashion. Raster structures cannot be given in search criteria and can-
not be processed by the DBS, for example to extract only relevant parts.
Moreover, the application must choose one of a plurality of existing data
formats for encoding and compression. This choice is compulsory for all
other database applications having access thereto, and they alone must en-
sure the correct decoding and the decompression. Thus, the database appli-
cation programmer is burdened with a multitude of low-level (near-to-
machine), repetitive, error-prone and time consuming programming tasks.
Furthermore, linearisation of arrays in secondary and tertiary storage de
stroys the neighbouring relationships (locality) between array elements, as
shown in figure 2. A cut-out, which conveys a high degree of locality on a
logical level, is disposed on the background storage in a way which favours

CA 02230301 1998-02-24
-4-
only line-by-line access and puts all other access means at a drastic disad-
vantage. The consequence is an inadequate response time behaviour.
A typical system is described in [MwLW-89]: Raster images are provided in
the database as blobs, encoded in one of various possible image exchange
formats (for example TIFF or GIF); an additional flag indicates to the appli-
cation the presently used format. The EXTR.A/EXCESS-system [VaDe-91]
offers an algebra for modeling and querying raster data, but there is no ac-
companying appropriate storage technique, so that only small arrays (for ex-
ample 4x4-matrixes) can be eff-lciently managed. Sarawagi and Stonebraker
[SaSt-94] recently proposed a storage architecture for arrays based on tiling
(see below), but without a spatial index for access acceleration and without
optimizable query support next to the pure cut-out formation. In [Baum-94]
an approach for raster data management is proposed, which concerns the
conceptual as well as the physical level. A general solution for the problem
of data independence, i.e. the processing of raster data in a DML or API
without knowledge and reference of/to its physical storage structure, encod-
ing and compression, does not exist at the moment.
In imaging, tiling techniques are used for the processing of images, which,
due to their size, do not fit into the main memory as a whole (for example
[Tamu-80]). A tile is .a rectangular cut-out of an image. The image is de-
composed into tiles, so that these do not overlap and together cover the im-
age (see figure 5.1 ). Within a tile, data are stored using a conventional
line-
arisation scheme. Tiling can be advantageously used in order to simulate
neighbourhood/vicinity within an array on a linear storage medium, and thus
forms an important basis for the present invention.

CA 02230301 1998-02-24
-$-
For the management of geometric data such as points, lines and areas, many
spatial indices (geo-induces) exist in order to accelerate access to such data
elements in a database [Guet-94]. In the present invention, such a geo-index
is used for fast tile location.
3. PRESENTATION OF THE INVENTION
3.1 Technical Task 'to be solved
The present invention describes a DBS for raster data which performs:
~ Management of the full semantics of arbitrary arrays.
~ Declarative storage, retrieval and processing/manipulation of raster data
on the semantic level of arrays.
~ Data independence: the presentation of array data by the DBS is explicitly
chooseable by the application in a multitude of different data formats, in-
dependently from a database-internal storage format, encoding and com-
pression.
~ A storage technique which allows an eff'lcient management of very large
arrays, which may stretch across a plurality of possibly heterogeneous
storage media.
~ Storage and query optimization.
3.2 Advantageous Effects of the Invention
A DBS according to the present invention is especially suited for raster ap-
plications which have demanding requirements with respect to functionality,

CA 02230301 2000-10-23
-6-
data volumes, network capability and access time (response time behaviour).
Among the more
prominent application areas are distributed open multimedia systems, medical
imagery/PACS
(Picture Archiving and Communication System) /hospital information systems,
geographical and
environmental information systems (GIS/EIS) as well as scientific
visualization (mechanical
engineering, meteorology, hydrology, astronomy). In detail, the following
advantages can be
achieved:
~ Application or domain independence: array-specific data structures and
operations can
be combined arbitrarily with conventional definitions, expressions and
predicates; this
way, a DBS according the invention can be used for a plurality of application
domains.
~ Data independence: DBS functionality is available on arbitrary platforms and
networks
and independently from a specific data format or a specific set of data
formats.
~ Database application programmers are relieved from low level, repetitive,
error-prone and
time consuming tasks, in that uniform standard solutions are provided by DBS.
~ Less resource consumption due to the tailored/modified storage architecture
and a
declarative, optimizable query language; especially, the response time
behaviour depends
on the query result, and not on the overall data volume on which the query is
performed.
~ Transparent integration of storage media (for example hard disk, jukebox,
tape archives)
for data sets of arbitrary size, in particular for arrays spanning several
data carriers.
~ Classic database services such as transaction support, integrity maintenance
and recovery
become available for raster data.

CA 02230301 1998-02-24
-7-
4. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1: Schematical structure of an arrangement according to the inven-
tion: One or more computers on which raster data applications
are provided are, via a local or long distance net, connected with
the server on which the raster DBS is provided.
Figure 2: Destruction of spatial locality/neighbourhood through linearisa-
tion in connection with storage projection, shown for the exam-
ple of an array cutout formation (circles denote cells selected by
the cutout, dots represent cells not included by the query).
Figure 2.1: 2-D image with marked cutout (logical view).
Figure 2.2: Linearized image with scattered parts of the selected cutout.
Figure 3: Visualization of the effect of sample queries on arrays (selected
areas are shown with shaded lines).
Figure 3.1: Trim operation, applied to a 2-D array.
Figure 3.2: Projection along the x/z-plane of a 3-D array, yielding a 2-D ar-
ray.
Figure 3.3: Projection along the y-axis of a 3-D array; yielding a 1-D array.
Figure 4: Extension o~f a variable 2-D array during assignment.
Figure S: Raster storage management by means of a combination of tiling
and spatial index (geo-index); here: Example of storage of a 2-D
array.
Figure 5.1: Factoring of a 2-D image into tiles.
Figure 5.2: Spatial index (geo-index) of the tile-factoring in figure 5.1.
Figure 6: Retrieval-algorithm as flow-diagram.
Figure 7: Update-algorithm as flow-diagram.
Figure 8: System architecture of a raster database system according to the
present invention. The internal interface marked by arrows are

CA 02230301 2000-10-23
_g_
especially suitable for interconnection of network communication.
5. DESCRIPTION OF A WAY OF REALIZING THE INVENTION
The present invention is now described with reference to a specific, suitable
embodiment.
However, the invention is not limited to this embodiment. Rather, many
variations and
modifications are possible, without leaving the domain of the invention as
described below in
the claims or their equivalents.
5.1 Raster Semantics
In the following, the C++ type DDL of an object-orientated DBS is used; for
the example
queries, an SQL type DML is used. It is obvious, how the underlying concepts
are transferable
to other models and systems. The invention is in no way limited to a specific
syntax,
programming language, operating system or a specific database paradigm.
5.1.1 Structure definition
The conceptual scheme is described referring to an example mini-world,
stemming from the field
of sensor fusion in environmental information systems. Three object classes
seismicsensor for
variable-length 1-D-time series, LandsatTM (Thematic Mapper) for Landsat-TM
(Thematic
Mapper)-satellite images in the format 7020x5760 (2-D) and weathersimulation
for atmospheric
temperature distributions in a 1000x1000x1000 area (3-D) are defined below;
the simple #
denotes a variable number of cells in the specified dimension:

CA 02230301 1998-02-24
-9-
class SeismicSensor: public PObject
f
public:
coordinate location; // geographical position of sensor
unsigned data [ # ]; // sequence of measured data
class LandsatTM: public PObject
(public:
orbit orbitalData; l/ orbital parameter
Aperture aperture; // aperture
struct (unsigned short cl, c2, c3, c4, c5, c6, c7;~
aorta [7020 [5760; //7-band-image data
class WeatherSimulation: public PObject
f
public:
float data [looo~ [loooJ [looo]; //temperature data
5.1.2 Operations
The array operations can be grouped into value based operations, update
operations and general constructions/principles. The following value based
operations are suggested:
Constants. For use in query expressions or to initialize an array, cell values
can be indicated explicitly or implicitly. Example: 'A 2x2 integer array with
all cells zeroed. " This is indicated by a direct listing, the array structure
properly reflected here through curly braces:
f f o, o }, f o,
Implicit definition is done through some descriptive statement of the kind

CA 02230301 1998-02-24
- lU -
0: [ 1024 ] [ 768
in this case stating 'A 1024 x 768 image with all cells zeroed".
Trimming produces a rectangular array cutout. For example, the query "The
subarray of all Landsat TM images which is given by the corner points
(x0,y0) and (xl , yl) " (see figure 3.1 ) is phrased as
select 1. data [ x0 . . xl ] [ y0 . . y1 ]
from LandsatTM 1
Projection extracts a layer of thickness 1 from an array (cf. figure 3.2). For
example, "air temperature distribution over the whole simulation area at
height over ground h" is stated as
select w. data [ # ] [ h ] [ # ]
from WeatherSimulation w
Induced operations. For each operation available on the array base type
(e.g., subtraction on gl-eyscale pixels), a corresponding operation is made
available, which applies the base operation simultaneously to all array cells
(e.g. subtraction of two greyscale images). Example: "The c3 channel of all
Landsat TM images, reduced in intensity by the value d".
select l.data.c3 - d
from LandsatTM 1
Predicate iterators. The raster predicate some(p) yields true if and only
if at least one cell of a Boolean array p contains the value true. Correspond-
ingly, the raster predicate a 11 ( p ) returns true if and only if all cells
of p
contain true. Example: "The location of all seismic sensors where earth-
quake activity has exceeded t at some time in the past. "
select s.location
from SeismicSensor s
where some ( s.data > t )
Next, the update operations are listed.

CA 02230301 2000-10-23
- 11 -
Initialization. This operation, which is implicitly invoked upon every
creation of an array as part
of for example a tuple or an object, sets all cells to zero values and the
length of variable arrays
to zero.
Assignment. Through an assignment, the cells in an array or part of an array
receive new values.
If the array is variable and the cell positions to be occupied do not all lie
within the already
existing array, the array is extended appropriately. For instance, in figure
4, the old array a . old
is extended by array part v. new which only partially overlaps a . old. Hence,
a . new is formed
as an extended array, made a rectangle by introducing two newly created areas,
a.auxl and
a.aux2, filled with zero (null) values.
Finally, general construction principles are listed which are important
regarding flexibility and
generality of the invention.
Orthogonal query language. The operations listed above preferably are embedded
in a
declarative DML which describes what shall be done and not how to do it,
thereby clearing the
way for intelligent optimization. Expressions and predicates are (recursively)
formed using the
aforementioned array basic operations, the well-known Boolean operators,
parentheses,
functional nesting and, under certain circumstances, the calling of further
functions/methods.
Example 1: "The temperature distribution in a height h of all simulations, in
which at any point
in the area marked by the corner points (x0, y0, z0) and (xl, yl, zl) the
temperature t is exceeded. "
Trimming in three dimensions is here combined with the induced comparison and
of the
collaboration or collapsing into a single Boolean value by the "some"-
operator:
select w. data [ # , h , # ]
from WeatherSimulation w

CA 02230301 1998-02-24
- 12-
where some (w. data [x0 .. x1] [y0 .. yl] [z0 .. z1] > t)
Example 2: "The Landsat-TM images which contain regions of observed
seismic activity, as well as the corresponding sensor positions". Here, in
addition to the raster operation, geometrical operations area ( ) and con-
twins as well as parenthesizing/nesting are used:
select l.data, s.location
from LandsatTM 1, SeismicSensor s
where area (l.orbitalData, l.aperture) contains s.loca-
tion and some ( s.data > t )
Data independence. Raster data are presented to the application program as
generic arrays; the functionality, which is offered on arrays, is independent
of their physical structure in the database. In case now further
specifications
take place, data pass tile DBS-interface in the main memory representation
of the goal machine and the programming language of the application, for
example as C++ array, so that a direct further processing by means of the
application programming language is possible; this representation is called
the direct representation of an array with respect to a specific goal envi-
ronment. Alternatively hereto, the database application can explicitly request
a different representation by means of functions offered by DBS (for exam-
ple JPEG to exploit hardware support on the client side). All conversions
and compressions or decompressions which become necessary due to differ-
ences in DBS-internal storage format and the format necessary for the appli-
cation, are performed DBS-internally and invisibly for the application.
If, for example, a TIFF-encoding is requested (provided TIFF is applicable
to the array structure present) the built-in function tiff ( ) is requested
(called). Example:
'All Landsat-TM images in TIFF format":

CA 02230301 1998-02-24
-13-
select tiff (LandsatTM.data)
Like most other image data formats, TIFF includes further so-called regis-
tration data: These are set to zero values by DBS.
In case of JPEG, the percentage of quality reduction must additionally be
supplied, as JPEG performs a compression with selectable data loss:
select jpeg ( LandsatTM.data, 25 )
The database-internal representation is not known to the application; it can,
but must not be one of these formats. If the internal format does not match
the requested format, the query processor generates the necessary conver-
sion code.
5.2 System Architecture
Preferably, a hardware architecture as shown in figure 1 and a software ar-
chitecture as shown in figure 8 are used for a raster DBS. The application
interface (API) provides two basic ways of access: The query processor
offers the definition and manipulation of arrays as described above; in par-
ticular, it establishes a query execution plan. The raster import and export
facility serves as a bulk data interface (bulk loader) in case arrays as a
whole
are imported or exported. This special case of raster data access requires
only very simple operations, but a very efficient execution, wherefore it is
advantageously separately supported. The query optimizer attempts to rear-
range the execution plan, so that various quality-of service-criteria, e.g.
number of disc accesses, compression/decompression effort or overhead,
and network load (network traffic) are optimized. The basic access module
forms the virtual machine, on which the query processor executes the exe-
cution plan (query plan). Here, tiles are loaded, the requested contents are
extracted therefrom, induced operations are performed and the query result
is prepared and converted into the requested data format. The storage mah-

CA 02230301 1998-02-24
- 14-
ager processes complete tiles, for which writing and reading primitives are
offered. In order to speed-up tile determination a geo-index is maintained
internally.
Within a tile a conventional linearisation or any arbitrary storage mapping is
performed. The storage manager is based on an interface which offers per-
sistent, directly addressable data areas of specified or variable length with-
out fiirther semantics.
It is possible - however not necessary - to place a conventional DBS (for
example relational or object-oriented) under the storage manager, in order to
utilize transaction, recovery and further base (basic) mechanisms. In this
case the underlying DBS serves as persistent storage manager which man-
ages tiles and/or index records for example in blobs, without having specific
knowledge of the semantics. For example, in a relational DBS a relation
Tiles can be defined which holds the tiles of all arrays, regardless of their
dimension:
Tiles (oid:integer, tid:integer, c e:integer, tile: long)
Herein, oid is the object identifier of the array, tid is the tile identifier,
in
c a the respective tile encoding and compression is indicated, and tile
contains the tile data themselves.
It should be noted that at each place in this architecture network communi-
cation can take place; in particular, array construction from tiles and array
decomposition into tiles as well as compression and decompression can be
shifted from the server to the application machine (client machine). How-
ever, strict transparency should be maintained.

CA 02230301 1998-02-24
-15-
5.3 Query Processing
In the following, a DML-language embedding in C and a simplified API-
function dbCall ( ) is utilized in order to describe the basic principles of
query processing. In order to provide the above described functionality in
full, more complicated interface-techniques are necessary which are for ex-
ample state of the art il relational DBS. Encoding/compression is always to
be understood starting out from the main storage format. Decod-
ing/decompression is always performed into the main storage format of the
respectively used platform. Herefore, each array comprises an indicator
stating its present data format. It is stored in the database together with
the
tile; at the API, it is either explicitly set by the application, or produced
im-
plicitly by the preprocessor during source code analysis.
For the description of the method it is presumed that network communica-
tion takes place between the database server on the one side, and the data-
base API and the application on the other side, which, with heterogeneous
platforms, makes necessary a transmission encoding. Herein a compression
can be performed in order to reduce the communication volume. The meth-
ods utilized for compression and for encoding of arrays are not further
specified as they are not subject matter of the present invention; arbitrary
methods may be used.
The communication via network can be performed at the stated place in the
system architecture, cam be omitted or can be performed between other DBS
components (see the arrows in figure 8), wherein the encoding must take
place on the respectively occurring units (for example tiles).

CA 02230301 1998-02-24
- 16-
5.3.1 Retrieval
For the query "The Landsat-TM cutout between (50,100) and (100,200),
therefrom channel c3" the following piece of C-code is formulated in the
application program:
## short landsatPart[51] [101];
## select l.data.c3[50..100] [100..200]
~# from LandsatTM 1
## into :landsatPart:
The two double crosses ## make known the statements to the preprocessor,
which generates database-API-calls from this source code. These are sup-
plemented by information concerning data format. Program variables are
marked herein by a prepositioned colon which is filtered out by the preproc-
essor during code creation:
short landsatPart[51] [101];
dbCall ( "select 1. data. c3[50. . 100] [100. . 200]
from LandsatTM 1 into :1",
landsatPart,
CLIENT INTERNAL-FORMAT );
The first abcall ( ) -parameter is the query string, as transmitted to the
query processor; the variable name in the into-clause is replaced by a posi-
tion indicator for the first (and here only) result parameter landsatPart.
The second parameter is a pointer to the result array, in which the query re-
sult is placed by the API. The third parameter signals to the API, whether
the result array is to be delivered in the direct representation of the
applica-

CA 02230301 1998-02-24
tlOn (CLIENT-INTERNAL FORMAT or in a data format specified lri the query
(EXTERNAL FORMAT; based On the format lridlCatOr CLIENT INTERNAL-
FoRMAT as final parameter the API will, after completion of the query proc-
essing by the DBS, make available the query result in the program variable
landsatPart in the direct representation of the application.
If the query result is to be delivered in another data format known to the
DBS, the application makes this known by calling the corresponding con-
version function, for example by calling a standard fimction j peg ( ) for
JPEG-coding with a 25% reduction:
## char landsatPart (JPEG STRING SIZE];
## select jpeg ( 1. data. c3(50. . 100] (100. . 200], 25 )
## from LandsatTM 1
## into :landsatPart;
Herefrom, the preprocessor generates
char landsatPart(JPEG STRING SIZE];
dbCall ("select jpeg(l.data.c3(50..100] (100. .200], 25) \
from LandsatTM 1 into :1',
landsatPart,
EXTERNAL FORMAT );
Thus, the API provides the array generated by the server in the program
variable landsatPart JPEG-encoded.
During execution of such database requests the further processing of the
query according to above architecture is performed after the following al-
gorithm (figure 6):

CA 02230301 1998-02-24
-18-
1. transmit query to server;
2. generate and optimia;e query plan from the query;
3. allocate result array;
4. using the geo or spatial index determine the M set of the affected tiles;
S. for all tiles k; from M:
5.1 load kl in the main storage;
5.2 decode k, according to encoding information of the tile;
5.3 decompress k= according to encoding information of the tile;
5.4 copy relevant cells from k= according to query plan into the result
array;
6. perform remaining operations according to query plan on the result ar-
ray;
7. in case the direct representation of the application is requested for the
result array:
7.1 compress the array;
7.2 encode the array;
8. transfer result array to application;
9. in case the direct representation is requested for the result array:
9.1 decode the array into the main storage format of the application;
9.2 decompress the array;
In step 1 the query is transmitted from the client to the server. In the next
step the retrieval plan is generated by the query processor and the optimizer.
In step 3 storage space for the query result is provided in the server. The
storage manager determines, in step 4, the set of afFected tiles from the
query plan with the help of the spatial (geo) index. Controlled by the query
processor, the basis access module loads these tiles one after the other (5.1
),
expands them (5.2) and decompresses them (5.3) into the direct representa-
tion of the server and copies the relevant cutout in the result array (5.3);
in

CA 02230301 2000-10-23
- 19-
steps 5.2 and 5.3 the information stored with each tile, according to which
method the tile
contents were encoded and compressed, is utilized (see section 5.2). Possible
further directions
from the select-part of the query are performed by the basis access module in
step 6; inter alia
this comprises a transformation of the result, possibly requested by the
application, into a format
which differs from the direct representation of the application.
In case the result array is encoded in such a data format, it is regarded in
all following steps as
a byte string without further semantics and transferred to the application in
step 8, i.e. steps 7 and
9 are omitted. Otherwise, the array, which is provided in the direct
representation of the server,
is compressed on the semantic level of the array (also utilizing the structure
knowledge) and
encoded (step 7), and, on the application side in the API, again decoded and
decompressed (step
9). Thus, the result array finally is provided in the storage area specified
by the application either
in the direct representation of the application or in the other requested data
format.
5.3.2 Update
The following query shall serve as an example: "Replace in all Landsat-TM
images in channel
c3 in the area between (51,101) and (100, 200) the values by array a ". The
corresponding piece
of C-code reads:
## short a[51] [101];
## update LandsatTM
## set data .c3 [50 . . 100] [100 . . 200] _ :e;
Therefrom the preprocessor generates

CA 02230301 1998-02-24
-20-
short a[X_SIZE] (Y SIZE];
dbCall("update LandsatTM set data.c3(50..100] [100..200]
- ; 1 ~~
a
CLIENT INTERNAL FORMAT );
The first parameter of the query string (the variable name is again replaced
by a position indicator) is followed by the program variable a with the input
array. In view of the iFormat llldlCatOr CLIENT INTERNAL FORMAT aS last
parameter, the API expects a direct representation of the data in e.
If the input data are provided in another format known to DBS, the applica-
tion makes this known by calling the corresponding conversion function, for
example by calling a standard function inv j peg ( ) for JPEG-decoding:
## char a[JPEG STRING SIZE];
## update LandsatTM
## set data.c3 [ 50 .. 100 ] [ 100 .. 200 ] _
inv jpeg ( : e) ;
and therefrom the preprocessor generates
char e(JPEG STRING SIZE];
dbCall("update LandsatTM set data.c3I50..100]
[100. .200] _ \ inv jpeg( :1 ) ",
e,
EXTERNAL FORMAT );
The API transfers the contents of a to the server, so that a JPEG-encoded
array arrives therein.

CA 02230301 1998-02-24
-21-
The further execution by the DBS is performed, according to above architec-
ture, after the following algorithm (see figure 7):
1. in case the input array is provided in direct representation of the appli-
cation:
1. I compress the array;
1.2 encode the array;
2. transfer query and input array to server;
3. in case the input array is provided in the direct representation of the
application:
3.1 decode the array;
3.2 decompress the array;
4. generate and optimize query plan from the query;
5. mode input array according to query plan;
6. determine by means of spatial index the set M of the affected tiles;
7. for all tiles k; from M.'
7.1 load k; in the main storage;
7.2 decode k;;
7.3 decompress k~;
7.4 write relevant cells from the input array to k;
7.5 encode k;;
7.6 compress kt;
7. 7 store k;.
In case the input array is provided in the direct representation of the appli-
cation, it is converted in step 1 by means of a method for the array com-
pression and encoding into a system-neutral format, in step 2 it is transmit-
ted, together with the query, to the server and there transformed into the di-
rect representation of the server (steps 3.1 and 3.2). If the input array is

CA 02230301 1998-02-24
-22-
provided in a different format, it is regarded as a byte string without
further
semantics during transfer and transferred to the server in step 2.
In step 4 the query is translated into the internal query plan and optimized.
During execution, in step 5, modifications specified in the query are first
performed on the input array; inter alia the input array, if it is provided in
encoded form, is transformed into the direct representation of the server by
application of the conversion function specified in the query.
From the trim information in the query the storage manager determines, in
step 6, by means of the spatial index the affected tiles which, in step 7.1,
are
loaded by the storage manager and transmitted to the basis access module.
Controlled by the query processor, this expands the tiles (steps 7.2 and 7.3)
depending on the encoding information with each tile, updates the tiles with
the relevant cells from the expanded input array (7.4), transfers the tiles
back
into the storage formal: predetermined by the tile indicator (steps 7.5 and
7.6) and finally transfers them back to the storage manager for rewriting into
the database (7.7).
6. ESSENTIAL THOUGHTS CONCERNING THE INVENTION
1. A DBS for the management of arrays. The DBS can be implemented as
an individual system or as a component of a further DBS.
2. Said DBS with the ability to manage arrays
- of an arbitrary number of dimensions
- an arbitrary, possibly variable number of cells per dimension
- over arbitrary basis types.
3. Logical level:

CA 02230301 2000-10-23
- 23 -
- The DBS comprises a DDL for structure definition of arrays.
- The DBS comprises a DML in the usual database sense, which renders possible
the processing of arrays by means of arbitrary expressions and predicates
(possibly mixed with such ones over conventional data types).
- Data independence of raster data: the presentation of array data by the DBS
is
independent of the database-internal storage format, the encoding and the
compression as well as the programming language, operating system and
hardware of client and server. The application (client) can choose, which
format
the raster data shall have; the machine internal main storage representation
in the
application as well as an arbitrary number of data exchange formats can be
chosen.
4. Physical level:
The DBS uses a combination of n-dimensional tiling technique and a
n-dimensional spatial index in order to achieve a fast and efficient
management
of arrays of arbitrary size and dimension.
- Each tile can be stored individually on an arbitrary storage medium, so that
the
DBS can distribute an array over an arbitrary number of possibly heterogeneous
data carriers, without this becoming visible for the application.
- The DBS can utilize a number of compression methods internally, in order to
optimize the storage and transmission of raster data, without making the
compression/decompression visible for the application.
- By means of an indicator, which is stored with each tile, the encoding and
compression for each tile can be determined individually; especially,
different
tiles of the same array can be treated differently.
Each array in the main storage (with the DBS server or in the API on the
client
side) comprises an indicator for the encoding/compression

CA 02230301 2000-10-23
-24-
in which it is provided; this indicator is essential in order to offer
arbitrary data
formats on the API level, i.e. to realize data independence.
- Based on the data definition, the storage organization as well as other
useful
information, a query optimizer can reorganize the execution plan of a query
according to a multitude of methods, so that to the quality of service
criteria like
CPU-load, storage access, net load and response times can be optimized.
- As possible implementations tiles can be projected onto attributes of
another DBS
(for example relational or object orientated) in such a way that each tuple or
each
object comprises a tile (additionally possible management information). Thus,
classic data bank features such as transaction security and recovery can be
realized with limited means or effort.
7. LITERATURE REFERENCES
[Baum-94 ]
P. Baumann: On the Management of Multidimensional Discrete Data. VLDB Journal
3 (4) 1994, Special Issue on Spatial Databases, pp. O 1- 444
[Guet-94]
R.H. Gueting: An Introduction to Spatial Database Systems. VLDB Journal 3(4)
1994,
Special Issue on Spatial Databases, pp. 357- 400
MwI,W-89]
K. Meyer-Wegener, W. Lum; C. Wu: Image Management in a Multimedia Database.
Proc. Working Conference on Visual Databases, Tokyo, Japan, April 1989,
Springer
1989, pp. 29- 40

CA 02230301 1998-02-24
-25-
[SaSt-94]
S. Sarawagi, M. Stonebraker: Efficient Organization of Large Multi-
dimensional Arrays. Proc. 10th Int. Conf. on Data Engineering, Febru-
ary 1994
[Tamu-80]
H. Tamura: Image Database Management for Pattern Information
Processing Studies. S. Chang, K. Fu (eds): Pictorial Information Sys-
tems, Lecture Noises in Computer Science Vol. 80, Springer 1980, pp.
198-227
[VaDe-91 ]
S. Vandenberg, D. DeWitt: Algebraic Support for Complex Objects
with Arrays, Identity, and Inheritance. Proc. ACM SIGMOD Conf.
1991, pp. 158-161

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Inactive: IPC expired 2019-01-01
Time Limit for Reversal Expired 2004-08-23
Letter Sent 2003-08-22
Grant by Issuance 2001-05-15
Inactive: Cover page published 2001-05-14
Inactive: Final fee received 2001-02-16
Pre-grant 2001-02-16
Notice of Allowance is Issued 2001-01-10
Letter Sent 2001-01-10
4 2001-01-10
Notice of Allowance is Issued 2001-01-10
Inactive: Approved for allowance (AFA) 2000-12-28
Amendment Received - Voluntary Amendment 2000-10-23
Inactive: S.30(2) Rules - Examiner requisition 2000-07-21
Amendment Received - Voluntary Amendment 1999-09-27
Change of Address or Method of Correspondence Request Received 1998-06-05
Inactive: IPC assigned 1998-05-28
Classification Modified 1998-05-28
Inactive: First IPC assigned 1998-05-28
Inactive: Acknowledgment of national entry - RFE 1998-05-14
Application Received - PCT 1998-05-12
All Requirements for Examination Determined Compliant 1998-02-24
Request for Examination Requirements Determined Compliant 1998-02-24
Application Published (Open to Public Inspection) 1997-03-06

Abandonment History

There is no abandonment history.

Maintenance Fee

The last payment was received on 2000-07-26

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Fee History

Fee Type Anniversary Year Due Date Paid Date
Basic national fee - small 1998-02-24
Request for examination - small 1998-02-24
MF (application, 2nd anniv.) - small 02 1998-08-24 1998-08-10
MF (application, 3rd anniv.) - small 03 1999-08-23 1999-08-18
MF (application, 4th anniv.) - small 04 2000-08-22 2000-07-26
Final fee - small 2001-02-16
MF (patent, 5th anniv.) - small 2001-08-22 2001-08-09
MF (patent, 6th anniv.) - small 2002-08-22 2002-07-26
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
PETER BAUMANN
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column (Temporarily unavailable). To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 1998-02-23 25 972
Abstract 1998-02-23 1 62
Claims 1998-02-23 4 142
Drawings 1998-02-23 8 150
Cover Page 1998-05-31 2 104
Cover Page 2001-04-30 1 53
Description 2000-10-22 25 962
Claims 2000-10-22 3 131
Representative drawing 1998-05-31 1 15
Representative drawing 2001-04-30 1 10
Reminder of maintenance fee due 1998-05-13 1 111
Notice of National Entry 1998-05-13 1 202
Commissioner's Notice - Application Found Allowable 2001-01-09 1 165
Maintenance Fee Notice 2003-09-21 1 173
International preliminary examination report 1998-02-23 16 580
Fees 2001-08-08 1 32
Correspondence 2001-02-15 1 34
Correspondence 1998-06-04 1 25
PCT 1998-05-06 6 156
Fees 2002-07-25 1 44
Fees 1998-08-09 1 48
Fees 1999-08-17 1 41
Fees 2000-07-24 1 41