{"id":26,"date":"2009-06-04T22:15:00","date_gmt":"2009-06-04T22:15:00","guid":{"rendered":""},"modified":"2018-12-04T23:25:14","modified_gmt":"2018-12-04T23:25:14","slug":"im-speaking-on-sql-at-oscon","status":"publish","type":"post","link":"https:\/\/karwin.com\/blog\/index.php\/2009\/06\/04\/im-speaking-on-sql-at-oscon\/","title":{"rendered":"I&#8217;m Speaking on SQL at OSCON"},"content":{"rendered":"<p><a href=\"http:\/\/conferences.oreilly.com\/oscon\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" style=\"float: right;\" src=\"https:\/\/i0.wp.com\/karwin.com\/blog\/wp-content\/uploads\/2009\/06\/oscon2009_banner_speaking_125x125.gif?resize=125%2C125&#038;ssl=1\" alt=\"OSCON 2009\" title=\"OSCON 2009\" border=\"0\" height=\"125\" width=\"125\" \/><\/a><\/p>\n<p><a href=\"https:\/\/en.oreilly.com\/oscon2009\/public\/register\"><\/a><\/p>\n<blockquote>\n<p><a href=\"https:\/\/en.oreilly.com\/oscon2009\/public\/register\">Early Registration<\/a> has been extended to June 23.  Save up to $250!<\/p>\n<p>Enter my friends-of-speaker discount code &#8220;<span style=\"font-weight: bold;\">os09fos<\/span>&#8221; when you register, and save an additional 20%!  Just because you read my blog.<\/p>\n<\/blockquote>\n<p><\/p>\n<h2><a href=\"http:\/\/en.oreilly.com\/oscon2009\/public\/schedule\/detail\/7988\">Practical Object-Oriented Models in SQL<\/a><\/h2>\n<p>Wednesday July 22, 5:20pm.<\/p>\n<p style=\"font-style: italic;\">SQL is from Mars, Objects are from Venus.<\/p>\n<p>This talk is for software developers who know SQL but are stuck trying to implement common object-oriented structures in an SQL database.  Mimicking polymorphism, extensibility, and hierarchical data in the relational database paradigm can be confusing and awkward, but they don&#8217;t have to be.<\/p>\n<ul>\n<li><span style=\"font-weight: bold;\">Polymorphism:<\/span>   Suppose your blog supports comments, but then your comments need to reference multiple types of content, for example news, blog articles, and videos.  What then?<\/li>\n<li><span style=\"font-weight: bold;\">Extensibility:<\/span>   We\u2019ve all designed customizable software, allowing customers to extend a data model with new data attributes.  See how to design flexible systems, while using efficient SQL queries.<\/li>\n<li><span style=\"font-weight: bold;\">Hierarchies:  <\/span>Tree-structured data relationships are common, but working with trees in SQL usually implies recursive queries.  There are a few solutions to solve this more cleanly.<\/li>\n<li><span style=\"font-weight: bold;\">ActiveRecord<\/span> Dos and Don&#8217;ts:   Web development frameworks have popularized the use of design patterns, but when it comes to multi-table queries, complex views, and assignment of OO responsibilities, ActiveRecord falls short as a one-size-fits-all Domain Model.<\/li>\n<\/ul>\n<h2><a href=\"http:\/\/en.oreilly.com\/oscon2009\/public\/schedule\/detail\/9760\">BoF:  Meet Authors from Pragmatic Bookshelf<\/a><\/h2>\n<p>Wednesday July 22, 7:00pm<\/p>\n<p>Gather with published and upcoming authors of programming books from the industry favorite publisher, <a href=\"http:\/\/www.pragprog.com\/\">Pragmatic Bookshelf<\/a>.  Join this informal chat about programming, writing books, job hunting, and career development.<\/p>\n<p> Agenda:<\/p>\n<div>\n<ul>\n<li>Author introductions, books, <span>OSCON<\/span> presentations.<\/li>\n<li>Experiences working with a publisher.<\/li>\n<li>How does authoring a book aid a tech career?<\/li>\n<li>What tech books would you like to see?<\/li>\n<\/ul>\n<p>Pragmatic Bookshelf authors attending <span>OSCON<\/span> include:<\/p>\n<ul>\n<li>Ian Dees is presenting \u201cTesting iPhone Apps with Ruby and Cucumber\u201d at <span>OSCON<\/span> (Wednesday 10:45am).  Ian authored the book \u201c<a href=\"http:\/\/www.pragprog.com\/titles\/idgtr\/scripted-gui-testing-with-ruby\">Scripted <span>GUI<\/span> Testing with Ruby<\/a>.\u201d <\/li>\n<li>Bill Karwin is presenting \u201cPractical Object-Oriented Models in <span>SQL<\/span>\u201d at <span>OSCON<\/span> (Wednesday 5:20pm).  Bill is currently writing a book \u201cSQL Antipatterns.\u201d <\/li>\n<li>Other Prag authors are attending <span>OSCON<\/span>, and plan to be at this BoF.<\/li>\n<\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Early Registration has been extended to June 23. Save up to $250! Enter my friends-of-speaker discount code &#8220;os09fos&#8221; when you register, and save an additional 20%! Just because you read my blog. Practical Object-Oriented Models in SQL Wednesday July 22, 5:20pm. SQL is from Mars, Objects are from Venus. This talk is for software developers [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":106,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13,2],"tags":[],"class_list":["post-26","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conference","category-mysql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/karwin.com\/blog\/wp-content\/uploads\/2009\/06\/oscon2009_banner_speaking_125x125.gif?fit=125%2C125&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pawgV7-q","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/media\/106"}],"wp:attachment":[{"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/karwin.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}