30

Tuples and Database Predicates

 4 years ago
source link: https://www.tuicool.com/articles/36jYJbm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Today's releases ofDatomic Cloud andDatomic On-Prem include two major new features: tuples and  database predicates.

Tuples are a new compound data type, small vectors as values. You can use tuples to create multi-attribute unique keys on domain entities. You can also use tuples to optimize queries that otherwise would have to join two or more high-population attributes.

  • If you declare a composite tuple, Datomic will automatically populate the tuple from existing attributes. 
  • You can also define your own homogeneous or heterogeneous tuple types that you populate as you see fit.

Database predicates are functions and attribute lists that constrain the values accepted by transactions.

  • Attribute predicates are declared in schema and constrain the values taken on by a single attribute, in all contexts.  For example, you could limit a test/grade attribute to the range 0-100.
  • Entity specs comprise lists of required attributes and/or predicates of the entity and the post-transaction db. You can use entity specs to ensure properties across different attributes of an entity or even across entities.  For example, you might enforce that a game player's score/lowest must be less than or equal to their score/highest .  You must explicitly call for entity specs in transactions in which you want them to apply.

To learn more about tuples, database predicates, and other enhancements:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK