Running Thoughts

Tim Bauer's webcast summaries/insights

Take Off Your Rose Colored Relational DB Glasses

Ben Scofield gave a talk @ WindyCity Rails on 9/12/09 on domains and databases. I decided to take a spin:

image0035

Ben’s Book on REST and Rails 2

image0022

· Why it caught my eye

Modeling business entities is no simple task so I was intrigued on what nuggets he might drop.

· Would I recommend you watch it?:

Tuff call. He uses the first 30 minutes (of 40) establishing the problem (relational DB don’t align well to real world structures which rarely are discretely defined) and then spends 10 minutes talking through alternative DB’s that might work in chaotic models. So he does a good job of clarifying the issue (via example) but little on firm solutions.

· Most Notable Point:

Around 30 minutes he walks through the options beyond relational. His points there seemed the most memorable.

· Nuance You Might Miss:

I suspect his key point was to consider all DB options (including a mashup of DBs) when solving a business problem. That is a worthy point.

Hope it helps. Raw notes below.

*** START OF RAW SCRIBBLE TAKEN WHILE RUNNING ***

• Ben Scofield

• Comics is Hard" On Domains and Databases

http://vimeo.com/6702444

• 0:7.308 – Intro

……..○ Problem is domains that are hard to model

……..○ Map to code then to persistance layer and oo layer (like ruby)

……..○ Less focus on modeling @ DB layer

• 1:47.332 – Biology Basis

……..○ Linnean taxonomy (will use this as an example how system models fail)

…………….§ Fungi, Plants, Animals, etc

…………….§ Picture tables by levels

……..○ Problems levels are arbitrary (ie lions vs tigers)

……..○ Different opinions on what levels should be (ie sub/super on levels)

……..○ 4:24.248 – issues with class always having sub classes and super classes

……..○ He had a degree in biology

……..○ 4:24.248 – biological definition of species …

……..○ Examples

…………….§ 5:3.709 – Insect example

…………….§ 5:3.709 – Cross breeding example (point being cross breed object models, I assume)

……..○ 8:6.614 – Bacteria example

……..○ 8:42.644 – Tomato example

……..○ 9:32.983 – Plum example

……..○ 10:29.218 – Numerical Taxonomy

…………….§ Degrees of similarity between entities

…………….§ Real taxonomy is Cladistics

……………………□ Focus on picking out traits (i.e. chambers in hearts)

……………………□ Change in trait is branch point

……………………□ 12:21.251 – Doesn’t work – historical (can’t do forward)

……..○ 13:31.903 – The Challenge (imprecise – Biology)

• 13:50.356 – Comics

……..○ Publisher, Title, Issue (model)

…………….§ Naïve – Vertigo versus Johnny lines in Publisher

…………….§ Add imprint table (between issue / title)

……..○ 15:24.589 – Examples of different volumes of title (multiple series under same title)

…………….§ Add volume between title and issue

……..○ 16:23.117 – Issue

…………….§ Three types of issue by quality (hardback, comic, bulk)

…………….§ Giant size x-men … reprint of older xmen

…………….§ So add trades

……..○ 18:23.886 – Free comic book day

…………….§ Variations – Revisions (directors cut, censorship, art)

…………….§ Launch one comic w/ 5-6 covers … interior is same …cover is different

…………….§ Sketch variants (no color)

…………….§ 21:12.812 – XMEN example of bloody variant

……..○ 21:50.919 – Aquaman example

…………….§ Relaunchs in 90 and 2000

…………….§ Hand made out of water (issue 39)

…………….§ Aquaman releases w/ same title but use same number

……..○ 23:26.902 – Batman and the Outsiders

…………….§ Changed to just "batman" on 15

…………….§ Titles can be multiples then

……..○ 24:0.533 – Captain America

…………….§ Went away around 1947 … backup in Tales of Suspense (backup feature in this)

…………….§ Number change and title change

…………….§ Relaunch in 2005 … #1

…………….§ Jump from 51 to 600 … Marvel decided to renumber

……..○ 26:24.780 – Remundi

…………….§ Darkhorse … titles can change publishers

…………….§ Pulls imprint out

……..○ 27:20.578 – Genres

…………….§ Pirates, Marshal arts, etc … not there

• 27:49.954 – The Challenge In Modeling (The point)

……..○ Smash comic book domain onto a relational schema didn’t work

……..○ Possible doesn’t mean it’s a good idea

……..○ 29:9.335 – DBMS options

…………….§ Keyvalue stores – YAML, Memcache replacements

…………….§ Series on Engine Yard talks about Keyvalue Stores (read that)

……..○ 30:38.330 – CouchDB (Document Oriented DBs)

…………….§ JSON Hash – Mini structured key value store

…………….§ No schema

…………….§ Mongo mapper to hit mongo db

…………….§ YAML could be document format in document orientated DB

…………….§ Good for biology … example … dog vs tiger … keep both animals but no null storage if not there

…………….§ Good for surveys …

…………….§ Build a CMS on a document database

…………….§ Expression Engine

……..○ 34:10.493 Graph Databases

…………….§ New hotness for 2010

…………….§ There are a lot of them but you can’t see them (built internally ie Akami)

…………….§ Neo4j and AllegroGraph

……………………□ Nodes (like documents w/ attributes but not non-relational … relationships are 1st class objects

…………….§ Been around for awhile (not widely used)

…………….§ RDF is a graph database

…………….§ Do things without schemas here as well

…………….§ 37:45.278 – Comics

……………………□ Example of going to superhero node

……………………□ Create nodes, link them, get relationships

……..○ 38:51.668 – Other

…………….§ Column Oriented (BigTable)

…………….§ Temporal (time woven)

…………….§ Constant DB (can’t change)

…………….§ Link

• 39:54.239 – Polyglot Persistence

……..○ No SQL is a bad idea

……..○ Use DB tailored to job … create a hybrid DB for your solution

…………….§ Blog = couchDB for comments, tagging in relationships

……..○ The power is yours

• 41:53.695 – QA

……..○ Graph storage easy … what about retrieval … when you get a node you pull the relationships tied to the node

……..○ Graph DB how traverse the entire graph or complex queries … not sure

October 14, 2009 - Posted by | 2-Perhaps (what floats your boat?) |

No comments yet.

Leave a comment