MySQL Cluster and Codd’s Rule 11

Feb 9, 2007 / By Alex Gorbachev

Tags: ,

Just a small thought to share.

Oracle doesn’t really comply to the rule 11 of Codd’s 12 rules. It does have database links and tables can be grouped in different locations (databases) but it’s not possible to distribute a table transparently across several locations. MySQL Cluster, on the other hand, distributes rows of a table over different data nodes using hash function on the primary key and it’s transparent to the client so it conforms to the Rule 11 as opposed to Oracle.

By the way, if you are interested on MySQL Cluster, keep an eye on Pythian Goodies — one of the last topics was on MySQL Cluster and I believe it should be posted soon.

6 Responses to “MySQL Cluster and Codd’s Rule 11”

  • Mr. Ed says:

    DB2 DPF does this, too.

    I mean, it’d better… Codd worked there!

  • Does Rule 11 actually require the ability to distribute portions of a table in separate databases in this way? It seems to refer only to “portions of the database” and “various locations”, although to be fair, Dave Ensor’s overview in “Tales of the Oak Table” takes it to mean something similar. As ever, it’s a sketchy definition that leaves you wondering exactly what Codd had in mind. Presumably he wrote more about the subject than twelve vaguely defined rules.
    http://en.wikipedia.org/wiki/Codd%27s_12_rules

  • TT says:

    Ehh…. Ericsson sold the cluster software to MySQL and started using Oracle…

  • “locations” (as in rule 11) has never really been that well defined. A lot of folks think table partitioning fits this bill.

  • Noons says:

    Agreed. It’s never been very clear what was meant by the “locations” bit, indeed. If only tables, then Oracle was compliant since release 5! But if “portions of tables” is the meaning, then it isn’t compliant.
    Still, that mysql feature/ability is something that can be mighty useful to defuse “hot spots”. Or create them…

  • Actually, in Oracle you can create union view over parts of different tables via database links and make it updatable with INSTEAD OF triggers.
    In many cases performance will be far from optimal but it’s doable. :)

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>