CQL: Categorical Databases

(categoricaldata.net)

33 points | by noworriesnate 2 days ago

5 comments

  • bob1029 1 hour ago
    > CQL is not a database management system: it neither stores nor updates data.

    The same could be said for SQL. How does CQL differ from SQL? If I squint my eyes just a tiny amount, these ideas become really difficult to separate. I was always under the impression that the relational model is based upon many concepts studied in category theory. To my mind, all of the following things are overlapping parts of the exact same monster:

      Set theory
      Category theory
      Graph theory
      Type theory
      Discrete mathematics 
      Relational algebra
      Relational calculus
      Relational modeling
      An actual sql schema
    • js8 52 minutes ago
      > How does CQL differ from SQL?

      SQL is like Java, CQL is like Haskell. SQL has been around and used in production. CQL is a research language, possibly cleaner foundation but YMMV.

      The math fields you list are connected, but whether they are the same monster - again it's kinda like claiming all programming languages and implementations are the same (Turing-complete?) monster.

      • randomNumber7 19 minutes ago
        SQL is not an imperative programming language.
  • srean 1 hour ago
    There was a good blog post on how the category theoretic ideas behind this applies to data frames

    What Category Theory Teaches Us About DataFrames https://mchav.github.io/what-category-theory-teaches-us-abou...

    Discussed on HN at (67 comments)

    https://news.ycombinator.com/item?id=47561426

  • randomNumber7 1 hour ago
    Since Codd's paper showed that the relational model dominates other approaches (for data storage) I would expect a paper that shows categorical database are not affected by this and what benefit they have.
    • js8 1 hour ago
      My (amateur) take. CDB model (based on functions) has three advantages over RDB model (based on relations):

      1. Easier modelling sum types (inheritance) due to duality.

      2. Better handling of null due to labelled null.

      3. Better foundation of elementary types (they're just another table ids). (Column stores often do that already, if your question is about storage.)

  • flying_sheep 1 hour ago
    Thanks for the sharing. It looks interesting but I did not dive deep into it. Just wonder how is it different from SQL trigger which can also ensure integrities?
    • js8 1 hour ago
      It's not much really, CDBs are based on foreign key relationships as a fundamental building block, rather than on relation.

      The difference is more in theory than in practice.

  • mattsouth 16 minutes ago
    Not to be confused with https://cql.hl7.org/ which is the CQL I know of.