## Second-Order Signature: A Tool for Specifying Data Models (1993)

Venue: | Query Processing, and Optimization. Proc. ACM SIGMOD Conf |

Citations: | 32 - 23 self |

### BibTeX

@INPROCEEDINGS{Güting93second-ordersignature:,

author = {Ralf Hartmut Güting},

title = {Second-Order Signature: A Tool for Specifying Data Models},

booktitle = {Query Processing, and Optimization. Proc. ACM SIGMOD Conf},

year = {1993},

pages = {277--286},

publisher = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

We propose a framework for the specification of extensible database systems. A particular goal is to implement a software component for parsing and rule-based optimization that can be used with widely varying data models and query languages as well as representation and query processing systems. The key idea is to use second-order signature (and algebra), a system of two coupled many-sorted signatures, where the top-level signature offers kinds and type constructors and the bottom-level signature provides polymorphic operations over the types defined as terms of the top level. Hence the top level can be used to define a data or representation model and the bottom level to describe a query algebra or a query processing algebra. We show the applicability of this framework by examples drawn from relational modeling and query processing.

### Citations

985 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...f type parameters is known as parametric polymorphism; the formal basis for this is secondorder (polymorphic) typed lambda calculus invented independently by Girard [Gi72] and Reynolds [Re74]. Milner =-=[Mil78]-=- showed that in many cases the types of polymorphic functions can be inferred without explicitly mentioning type parameters. This led to ML and other functional programming languages. Cardelli and Weg... |

510 | A semantics of multiple inheritance
- Cardelli
- 1984
(Show Context)
Citation Context ...object-oriented programming (e.g. [Ca84, BrW86]). In [CaW85] it is also shown how parametric polymorphism viewed as universal quantification over all types can be integrated with subtype polymorphism =-=[Ca84]-=- viewed as bounded quantification over all subtypes of a given type. Closer yet to our work is the proposal of a three-level type structure [Ca88, CaL90] consisting of (i) values including functional ... |

378 |
Towards a theory of type structure
- Reynolds
- 1974
(Show Context)
Citation Context ...ions. The use of type parameters is known as parametric polymorphism; the formal basis for this is secondorder (polymorphic) typed lambda calculus invented independently by Girard [Gi72] and Reynolds =-=[Re74]-=-. Milner [Mil78] showed that in many cases the types of polymorphic functions can be inferred without explicitly mentioning type parameters. This led to ML and other functional programming languages. ... |

299 |
Interprétation fonctionelle et élimination des coupures de l’arithmétique d’ordre supérieur
- Girard
- 1972
(Show Context)
Citation Context ...d polymorphic operations. The use of type parameters is known as parametric polymorphism; the formal basis for this is secondorder (polymorphic) typed lambda calculus invented independently by Girard =-=[Gi72]-=- and Reynolds [Re74]. Milner [Mil78] showed that in many cases the types of polymorphic functions can be inferred without explicitly mentioning type parameters. This led to ML and other functional pro... |

191 |
On Understanding Types
- Cardelli, Wegner
- 1985
(Show Context)
Citation Context ...: a value of type (s1 × … × sn → s) can be written as fun (x1: s1, …, xn: sn)st where t is a term of sort s with free variables x1, … xn. So the notation uses a variant of typed lambda calculus as in =-=[CaW85]-=-. – Assuming now that person is the name of a tuple type tuple(<(name, string), (age, int)>) and that persons is the name of a relation object of type rel(person), we can formulate a query (“Find peop... |

181 | A formal semantic database model - Abiteboul, Hull |

167 | The EXODUS Optimizer Generator - Graefe, DeWitt - 1987 |

145 |
Type Systems for Programming Languages
- Mitchell
- 1990
(Show Context)
Citation Context ...s led to ML and other functional programming languages. Cardelli and Wegner [CaW85] give a survey of types and polymorphism in programming languages; a survey of the underlying theory is presented in =-=[Mit90]-=-. A major aspect of recent research in type systems in programming languages as well as databases has been the modeling of subtypes and inheritance known from object-oriented programming (e.g. [Ca84, ... |

142 | Typeful Programming
- Cardelli
- 1989
(Show Context)
Citation Context ...niversal and bounded quantification from [CaW85] can now both be viewed as quantification over kinds. The three-level –s19s– structure is further pursued in the design of a programming language Quest =-=[Ca89]-=- for which [CaL90] gives formal typing rules and semantics. Since the three-level structure occurs also in SOS, we discuss similarities and differences in more detail below. In database systems, one s... |

129 | Fundamentals of Algebraic Specification I - Ehrig, Mahr - 1985 |

123 | On the Power of Languages for the Manipulation of Complex Objects
- Abiteboul, Beeri
- 1988
(Show Context)
Citation Context ... type of the result stream is determined by the operator itself. This operator realizes at the representation level operators like λ or extend in the NST-algebra [GüZC89] or replace in the algebra of =-=[AbB88]-=-. – For convenience we add a simpler operator useful for udates which replaces an attribute value in a tuple by a new one: ∀stream: stream(tuple: tuple(list)) in STREAM. ∀(attrname, dtype) in list. st... |

108 | The LSD Tree: Spatial Access to Multidimensional Point- and Non-Point-Objects
- Henrich, Six, et al.
- 1989
(Show Context)
Citation Context ...e same meaning as in the first specification, but also btree(city, fun (c: city) c pop div 1000) The capability of indexing on derived values is not only interesting but even crucial for the LSD-tree =-=[HeSW89]-=-, a structure capable of storing rectangles. It is used to store (tuples by) the bounding –s12s– boxes of polygons which are the values actually occurring as attributes (for example, geographical regi... |

107 | Gucht, A Graph-Oriented Object Database Model - Gyssens, Paredaens, et al. - 1990 |

98 | GENESIS: An Extensible Database Management System - Batory, Barnett, et al. - 1988 |

93 | A Graphical Query Language Supporting Recursion - Cruz, Mendelzon, et al. - 1987 |

90 | Database Programming in Machiavelli – a Polymorphic Language with Static Type Inference
- Ohori, Buneman, et al.
- 1989
(Show Context)
Citation Context ...database programming languages (e.g. [Stem90]). Here a main goal is to make static type checking possible for query expressions. Perhaps the most successful attempt so far is the language Machiavelli =-=[OhBB89]-=- where, for example, projection and join operations can be defined and the result types of operations be inferred. A key idea to achieve this is a generalization of the relational model by a partial o... |

81 |
A Calculus for Complex Objects
- Bancilhon, Khoshafian
- 1986
(Show Context)
Citation Context ...esenting books is, for example: rel(< (title, string), (authors, rel(< (name, string), (country, string) >)), (publisher, string), (year, int)s>) Here is a complex object type system in the spirit of =-=[BaK86]-=-: kinds IDENT, OBJ type constructors → IDENT ident → OBJ bottom, top, int, real, string, bool (ident × OBJ)+ → OBJ tuple OBJ → OBJ set A type in OBJ to represent persons is: tuple(< (name, string), (c... |

67 | Algebraic Support for Complex Objects with Arrays - Vandenberg, DeWitt - 1991 |

64 | A Semantic Basis for Quest
- Cardelli, Longo
- 1990
(Show Context)
Citation Context ...ded quantification from [CaW85] can now both be viewed as quantification over kinds. The three-level –s19s– structure is further pursued in the design of a programming language Quest [Ca89] for which =-=[CaL90]-=- gives formal typing rules and semantics. Since the three-level structure occurs also in SOS, we discuss similarities and differences in more detail below. In database systems, one standard approach t... |

60 | A Relational Object Model - Scholl, Schek - 1990 |

49 | The DASDBS Project: Objectives, Experiences, and Future Prospects - Schek, Paul, et al. - 1990 |

48 |
Rule-Based Optimization and Query Processing in an Extensible Geometric Database System
- Becker, Güting
- 1992
(Show Context)
Citation Context ...ations of algebra terms with variables and an optimizer can be built as a rule file consisting of several steps where each step has its own collection of rules and employs a selected control strategy =-=[BeG92]-=-. However, the underlying framework in Gral is still restricted in several ways. Gral is an extensible relational system, so in the data model an arbitrary collection of atomic data types is allowed, ... |

47 | An Object-Oriented Query Algebra - Shaw, Zdonik - 1989 |

45 |
An Algebra for Structured Office Documents
- Güting, Zicari, et al.
- 1989
(Show Context)
Citation Context ... an old attribute name). Note that the type of the result stream is determined by the operator itself. This operator realizes at the representation level operators like λ or extend in the NST-algebra =-=[GüZC89]-=- or replace in the algebra of [AbB88]. – For convenience we add a simpler operator useful for udates which replaces an attribute value in a tuple by a new one: ∀stream: stream(tuple: tuple(list)) in S... |

45 | Gral: An Extensible Relational Database System for Geometric Applications
- Güting
- 1989
(Show Context)
Citation Context ... describe data models and query languages, representation models and execution languages, and optimization rules to map between these two levels. Some initial work in this direction has been reported =-=[Gü89]-=- and been exemplified in a prototype, the Gral system. There, the formal basis is many-sorted algebra. Such an algebra defines an application-specific query language, another algebra a representation ... |

39 | Algebraische Spezifikation abstrakter Datentypen - Ehrich, Gogolla, et al. - 1989 |

33 | Type Inference in a Database Programming Language - Ohori, Buneman - 1988 |

29 | Explicit Graphs in a Functional Model for Spatial Databases
- Erwig, Güting
- 1991
(Show Context)
Citation Context ...he idea of using a two-level algebraic framework where the top-level algebra describes a type system and the bottom level an algebra over these types was developed in joint work with Martin Erwig. In =-=[ErG91]-=- a preliminary description of such a framework was given and applied to define a data model that integrates object class hierarchies with explicit graph structures. 2 The Framework: Informal Introduct... |

26 | An Investigation of a Programming Language with a Polymorphic Type Structure - McCracken - 1979 |

23 | Semantics of Types for Database Objects - Ohori |

21 |
Exceeding the Limits of Polymorphism in Database Programming Languages
- Stemple, Fegaras, et al.
- 1990
(Show Context)
Citation Context ...ome ad-hoc formalism. The difficulty of describing operations like that of relational algebra within type systems has been observed particularly by researchers in database programming languages (e.g. =-=[Stem90]-=-). Here a main goal is to make static type checking possible for query expressions. Perhaps the most successful attempt so far is the language Machiavelli [OhBB89] where, for example, projection and j... |

17 | Types for Data-Oriented Languages
- Cardelli
- 1988
(Show Context)
Citation Context ...nd type operators, and (iii) kinds, where types classify values and functions, and kinds classify types and type operators. The notion of kinds as “the types of types” is taken from [McC79]. Cardelli =-=[Ca88]-=- describes various type systems with e.g. a single type, many types, one kind, and many kinds. TYPE is introduced as the kind containing all types and POWER[A] for a type A as the kind containing all ... |

15 | A Type System that Reconciles Classes and Extents
- Buneman, Ohori
- 1991
(Show Context)
Citation Context ...ns be inferred. A key idea to achieve this is a generalization of the relational model by a partial order on tuple (or record) types [Oh88, OhB88]. Recently, the notion of kinds has also been used in =-=[BuO91]-=- to model subtyping; a kind describes all record types which have a given set of components (labels) – this is related to the POWER[A] kind of [Ca88]. There is also some work related to SOS on the alg... |

14 |
A Review of Recent Work on Multi-attribute Access Methods
- Lomet
- 1992
(Show Context)
Citation Context ... × point → stream(tuple) point_search _ _ # lsdtree × rect → stream(tuple) overlap_search _ _ # –s13s– It is also possible, although a little more involved, to specify multi-attribute structures (see =-=[Lo92]-=-) indexing by an arbitrary number of dimensions together with operators for the well-known query types such as multi-dimensional exact-match, partial-match, or range queries. Or one can define a multi... |

13 | Gral: An Extensible Relational Database System for Geometric Applications - Gting - 1989 |

11 | An Algebraic Model of Subtypes in Object-Oriented Langauges - Bruce, Wegner - 1986 |

9 | Interpr#tation fonctionelle et #limination des coupures de l'arithm#- tique d'ordre sup#rieur - Girard - 1972 |

4 | From Relations and Nested Relations to Object Models - Schek, Scholl - 1991 |

1 |
Typing: An Algebraic Specification Perspective
- Leszczylowski, Wirsing, et al.
- 1991
(Show Context)
Citation Context ...scribes all record types which have a given set of components (labels) – this is related to the POWER[A] kind of [Ca88]. There is also some work related to SOS on the algebraic specification side. In =-=[LeW91]-=- “higher order signatures” are mentioned and it is observed that there exist sort constructors such as seq: Sort → Sort which for a given specification form a (single-sorted) signature. However, in de... |