genesis: a project to develop an extensible database management system  existing database management systems are tailored to traditional business applications. since 1980, a variety of new database applications have arisen: vlsi cad, graphics, and statistical databases are examples. these new applications cannot be handled easily or efficiently by available dbmss because their requirements are so unusual. in particular, they demand special- purpose data types and operators, and require novel storage structures and new query processing techniques. the idea that a single dbms can handle all database tasks equally well is no longer practical. customized database systems are needed.  two approaches are currently taken to customize a dbms. either a system is built from scratch, or an existing system is modified. however, neither approach is cost effective as it takes many man- years of effort and hundreds of thousands of dollars to produce an operational system.  recently, a number of researchers have independently conceived the idea of extensible or reconfigurable dbmss ([car85], [day85], [sto86], [bat86a]). these systems are modular, they are essentially software busses where modules with desired dbms capabilities can be plugged or unplugged in a matter of hours or days at virtually no cost to produce a customized dbms. the idea of extensible dbmss is a powerful concept, and is certainly a more attractive approach to dbms customization than current methods.  features that can be customized in dbmss can be broadly categorized as being logical front-end or physical back-end. at the logical front-end of a dbms, it should be possible to introduce new object types and new operators. for example, conventional relational dbmss provide only integer, float, and string data types. nontraditional applications require novel data types, such as polygons and time-series. it should be possible to support new abstraction concepts, such as molecular objects and versions which are useful in the context of vlsi cad data ([bat85a]). also, it should be possible to express and process recursive queries and rules. at the physical back-end of a dbms, it should be possible to admit new storage structures, new concurrency control and recovery algorithms, and new query optimization algorithms. these are just some of the more important examples.  genesis is an extensible database management system that is being developed to address the needs of nontraditional applications. our approach to developing genesis software is based on three principles. first, we are using theoretical models of logical and physical database organization to help identify the software atoms of database management systems. that is, we are taking a building blocks approach to dbms construction: by composing different atoms (modules) in different ways, we can quickly construct different (i.e., customized) dbmss. there are several important advantages to this approach. software atoms (modules) can be written and debugged separately rather than the common approach to write and debug compositions of many atoms simultaneously. in this way, software development is simplified. also, our approach provides the means for fast technology transfer. if a new file structure or database algorithm is invented, it is a matter of writing the software atom (module) that encodes this file structure or algorithm.  the atom could then be used immediately in the construction of dbmss.  second, all software atoms are plug compatible. that is, all modules that implement dbms primitives have the same interface. this makes module composition trivial.  third, all software atoms are reusable. many dbmss use exactly the same software atoms, which means that many algorithms have been reinvented over and over again at an enormous cost. our approach attempts to minimize technology reinvention by writing atoms once and reusing them.  it turns out that the techniques that are needed to achieve logical database extensibility and physical database extensibility are rather different. we are using a functional data model and data language as the logical front-end to genesis ([shi81], [bun82]). the functional approach is well-suited for extensible database systems as it is open-ended: new object types and operators can be added easily. a description of the genesis data model and data language, the techniques that are being used for its implementation, and how the data language is being used to express and process queries on non1nf relational databases is given in [bat86b].  the physical back-end of genesis is based on the unifying model ([bat82]) and transformation model ([bat85b]). these models explain how complicated storage structures that are used in commercial database management systems are actually are combinations of primitive file structures, linkset structures, and conceptual-to-internal mappings. a description of the implementation of the physical back-end of genesis is given in [bat86c].  we are using object-based models as a means for unifying database research with techniques in software engineering.  d. s. batory