MySQL Cluster and Codd’s Rule 11

Posted in: Technical Track

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.

Interested in working with Alex? Schedule a tech call.

About the Author

What does it take to be chief technology officer at a company of technology experts? Experience. Imagination. Passion. Alex Gorbachev has all three. He’s played a key role in taking the company global, having set up Pythian’s Asia Pacific operations. Today, the CTO office is an incubator of new services and technologies – a mini-startup inside Pythian. Most recently, Alex built a Big Data Engineering services team and established a Data Science practice. Highly sought after for his deep expertise and interest in emerging trends, Alex routinely speaks at industry events as a member of the OakTable.

6 Comments. Leave new

DB2 DPF does this, too.

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

William Robertson
February 10, 2007 5:02 am

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.


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.


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

Your email address will not be published. Required fields are marked *