Snooze: Object Relational Mapping of PLT Structures

Dave Gurnell, Noel Welsh, and Matt Jadud

{dave, noel, matt} at untyped

Snooze is an Object Relational Mapping (ORM) library similar to ActiveRecord or Hibernate. It provides a mapping from structures in PLT Scheme to rows in a relational database.

Snooze currently includes back-end code to connect to SQLite 3.6+ and PostgreSQL 8.3+ databases.

    1 Quick start

      1.1 Install a DBMS

      1.2 Link the Snooze API

      1.3 Start using Snooze

    2 Snooze modules

      2.1 DBMS independent code

      2.2 DBMS specific code

      2.3 Audit trail code

    3 Persistent structures

      3.1 Defining persistent structure types

      3.2 IDs and revisions

    4 Entities, relationships and attributes

      4.1 Entities

      4.2 Relationships

      4.3 Attributes

      4.4 Attribute types

      4.5 Shorthand types

      4.6 Persistent structure utilities

    5 Connecting to, querying and updating databases

      5.1 Object oriented interface

      5.2 Procedural interface

      5.3 Saving and deleting structures

    6 Queries

      6.1 Query procedures

      6.2 Working with generators

      6.3 Procedural query language

        6.3.1 Aliases

        6.3.2 Select statements

        6.3.3 #:from clauses

        6.3.4 #:what clauses

        6.3.5 Expressions

 Expression types

 Boolean operators

 Simple comparison functions

 Mathematical functions

 String and pattern matching functions

 Conditional functions

 Functions related to NULL

 IN functions

 Aggregate functions

        6.3.6 #:order clauses

        6.3.7 #:group and #:having clauses

      6.4 Syntax query language

      6.5 Underlying query structures

    7 Acknowledgements