{"id":8867,"date":"2018-08-28T22:36:02","date_gmt":"2018-08-28T20:36:02","guid":{"rendered":"https:\/\/www.salvis.com\/blog\/?p=8867"},"modified":"2023-11-08T03:22:30","modified_gmt":"2023-11-08T02:22:30","slug":"smartdb-as-of-2018-08-21","status":"publish","type":"post","link":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/","title":{"rendered":"SmartDB as of 2018-08-21"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>This is a transcription of the <a href=\"https:\/\/youtu.be\/VEBbH7cJ0gE?t=355\">recorded Ask TOM #SmartDB Office Hours from August 21, 2018<\/a>, where Bryn Llewellyn presented an updated, narrow definition of the Smart Database Paradigm (SmartDB).&nbsp;It covers the time between 05:55 to 12:19. A big thank you to Bryn&nbsp;for taking the time to clarify the SmartDB definition.<\/p>\n\n\n\n<p>I highly recommend watching the whole recording. Personally, however,&nbsp;I find it easier to browse through written documents, rather than watch videos and\/or listen to audio streams. I hope you find this transcription useful, as well.<\/p>\n\n\n\n<p>I took the liberty of adding headers for the SmartDB properties I&#8217;ve described in <a href=\"https:\/\/www.salvis.com\/blog\/2018\/07\/18\/is-your-application-smartdb\/\">this post<\/a>. At that time I assumed that all these five properties were mandatory, which in fact only holds true for the first two.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SmartDB Definition<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>This I think is the terse and appropriate definition of our Smart Database Paradigm. And it\u2019s as simple as this.<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1662\" height=\"936\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png\" alt=\"\" class=\"wp-image-8870\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png 1662w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1-300x169.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1-768x433.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1-1024x577.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1-260x146.png 260w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1-50x28.png 50w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1-133x75.png 133w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1662px) 100vw, 1662px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">1. The connect user does not own database objects<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>By conventional regime of credentials publication \u2013 you know there is a database and there is client code that connects and it would be a miracle if anyone would set up any regime where ordinary client code connects as <code>sys<\/code>&nbsp;and from that you can deduce that client code is given credentials of certain users, so that it connects and do stuff. And it\u2019s not given credentials of other users who are considered to be more private within the database. And it\u2019s very simple to arrange that you give credentials out to the outside world only to schemas (there is no reason that it should be only one, but it\u2019s easier to talk as it is one) [\u2026] which are empty of objects and which when they are created have zero privileges apart from the obvious <code>create session<\/code>.<\/p>\n\n\n\n<p>That\u2019s the starting point. And we won\u2019t fuss with whatever public privileges, there\u2019s no sensible way to talk \u2018bout that and we leave that out of the picture.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">2. The connect user can execute PL\/SQL API units only<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>And then [\u2026] the user who owns that empty schema is given exactly and only execute privileges on a well-defined set of PL\/SQL subprograms who have been designed to be the API of the application backend that the database hosts to the outside world. And that means by construction the only sensible thing, why I should say the only thing at all you can do (if you don\u2019t trouble ourselves with <code>select * from all_users<\/code>&nbsp;or something silly like that) is execute these API subprograms. And they\u2019re designed to be single operations, so it would be very funny, if you wrote <code>begin<\/code>&nbsp;and then <code>api.number1;<\/code>, <code>api.number2;<\/code>&nbsp;and so on, but here is no way to stop anyone doing that. But the spirit of it is, that each time you do a top-level database call, you call just one subprogram. And indeed, it\u2019s the case that these very straight forward procedural set of steps ensures, that the people who know the credentials you\u2019ve given out, can only invoke your API subprograms.<\/p>\n\n\n\n<p>And that is the Smart Database Paradigm.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">SmartDB Recommendations<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Everything else that we say under the umbrella of it, is let\u2019s say recommendations, icing on the cake and notions that could be useful as applications get bigger and bigger and more complex.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">3. PL\/SQL API units handle transactions<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>But you can see that a straight corollary of that statement of the paradigm is that, obviously we assume that there&#8217;s tables and someone\u2019s gonna put stuff in and get stuff out by <code>select<\/code>. Where those SQL gonna come from? Well, they cannot come from the outside world by construction. In other words, the <code>insert<\/code>, <code>update<\/code>, <code>delete<\/code>&nbsp;and <code>commit<\/code>&nbsp;of course, and <code>select<\/code>&nbsp;statements that [\u2026] must be issued to implement the application\u2019s purpose, they can only come out of PL\/SQL code inside the database. Okay. So, if I state the paradigm as I did at first, then this bit here, let me highlight it<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1662\" height=\"166\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2.png\" alt=\"\" class=\"wp-image-8871\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2.png 1662w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2-300x30.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2-768x77.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2-1024x102.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2-260x26.png 260w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2-50x5.png 50w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_2-150x15.png 150w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1662px) 100vw, 1662px\" \/><\/a><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>is not a statement of the paradigm, it\u2019s a theorem that you could deduce from that axiom that is the paradigm. Okay.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">4. SQL statements are written by human hand<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>And now this bit<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1662\" height=\"115\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3.png\" alt=\"\" class=\"wp-image-8872\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3.png 1662w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3-300x21.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3-768x53.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3-1024x71.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3-260x18.png 260w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3-50x3.png 50w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_3-150x10.png 150w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1662px) 100vw, 1662px\" \/><\/a><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>has troubled a lot of people. It\u2019s not [\u2026] at all a requirement that you use only static SQL, it\u2019s just a happy fact, that the huge majority of requirements for SQL and ordinary OLTP applications are well met by PL\/SQL static SQL. And that\u2019s why I\u2019ve put the word \u201cprobably\u201d there. And there\u2019s a huge advantage in using static SQL of course, because of all the rich metadata that you can get to learn various properties of the application in a heartbeat like these days in 12.2 where are the <code>inserts<\/code>&nbsp;happening and what tables are involved and what <code>inserts<\/code>&nbsp;at what statement locations, right. Just by querying up the right metadata tables.<\/p>\n\n\n\n<p>And this one here<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1662\" height=\"104\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4.png\" alt=\"\" class=\"wp-image-8873\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4.png 1662w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4-300x19.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4-768x48.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4-1024x64.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4-260x16.png 260w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4-50x3.png 50w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_4-150x9.png 150w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1662px) 100vw, 1662px\" \/><\/a><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>is hugely contentious. My point (and Toon\u2019s too) is that SQL is a very natural language. It maps perfectly on to the way people talk about the information requirement in the business world. All this entity-relationship modeling stuff that maps so directly onto tables. And if you write your SQL ordinarily by human hand, well it\u2019s not going to be that difficult in the common case, because it wraps, I should say maps so obviously to the real world that your application is modeling. That\u2019s not to say that there\u2019s anything in the Smart Database Paradigm that prohibits generated SQL. Not at all. And there was a huge misunderstanding about that in Twitter. Rather it means, that it\u2019s not particularly remarkable if one writes SQL to achieve the end goal.<\/p>\n\n\n\n<p>There\u2019s gotta be programming involved. Some of the programming is in PL\/SQL and some of it is in SQL. These two languages are a very natural fit for the task at hand, that\u2019s all.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">5. SQL statements exploit the full power of set-based SQL<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>And then the next bit, again you know,<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1662\" height=\"147\" src=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5.png\" alt=\"\" class=\"wp-image-8874\" srcset=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5.png 1662w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5-300x27.png 300w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5-768x68.png 768w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5-1024x91.png 1024w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5-260x23.png 260w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5-50x4.png 50w, https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_5-150x13.png 150w\" sizes=\"auto, (max-width:767px) 480px, (max-width:1662px) 100vw, 1662px\" \/><\/a><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>it would be so so sensible and proper to exploit the full set-based power of SQL. You can get correct result if you do row-by-row slow-by-slow. But why would you do that, if you understand SQL, which you would. And if you write this stuff by hand, which you likely to find easy enough, that you wouldn\u2019t worry doing it any other way. And the same goes about using the bulk binding constructs.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Introduction This is a transcription of the recorded Ask TOM #SmartDB Office Hours from August 21, 2018, where Bryn Llewellyn presented an updated, narrow definition of the Smart Database Paradigm (SmartDB).&nbsp;It covers the time between 05:55 to 12:19. A big thank you to Bryn&nbsp;for taking the time to clarify the SmartDB definition.<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":1,"featured_media":8870,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[103],"class_list":["post-8867","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-smartdb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SmartDB as of 2018-08-21 - Philipp Salvisberg&#039;s Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SmartDB as of 2018-08-21 - Philipp Salvisberg&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"Introduction This is a transcription of the recorded Ask TOM #SmartDB Office Hours from August 21, 2018, where Bryn Llewellyn presented an updated, narrow definition of the Smart Database Paradigm (SmartDB).&nbsp;It covers the time between 05:55 to 12:19. A big thank you to Bryn&nbsp;for taking the time to clarify the SmartDB definition. [\u2026]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/\" \/>\n<meta property=\"og:site_name\" content=\"Philipp Salvisberg&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-28T20:36:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-08T02:22:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1662\" \/>\n\t<meta property=\"og:image:height\" content=\"936\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Philipp Salvisberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@phsalvisberg\" \/>\n<meta name=\"twitter:site\" content=\"@phsalvisberg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Philipp Salvisberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/\"},\"author\":{\"name\":\"Philipp Salvisberg\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"headline\":\"SmartDB as of 2018-08-21\",\"datePublished\":\"2018-08-28T20:36:02+00:00\",\"dateModified\":\"2023-11-08T02:22:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/\"},\"wordCount\":1086,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"image\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/atoh_smartdb_1.png\",\"keywords\":[\"SmartDB\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/\",\"name\":\"SmartDB as of 2018-08-21 - Philipp Salvisberg&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/atoh_smartdb_1.png\",\"datePublished\":\"2018-08-28T20:36:02+00:00\",\"dateModified\":\"2023-11-08T02:22:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/atoh_smartdb_1.png\",\"contentUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/atoh_smartdb_1.png\",\"width\":1662,\"height\":936},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/2018\\\/08\\\/28\\\/smartdb-as-of-2018-08-21\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SmartDB as of 2018-08-21\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/\",\"name\":\"Philipp Salvisberg&#039;s Blog\",\"description\":\"Database-centric development\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/#\\\/schema\\\/person\\\/34352245c48678b1a5a05d4bc1339515\",\"name\":\"Philipp Salvisberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"url\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"contentUrl\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\",\"width\":400,\"height\":400,\"caption\":\"Philipp Salvisberg\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.salvis.com\\\/blog\\\/wp-content\\\/uploads\\\/2010\\\/11\\\/phs_trivadis4.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.salvis.com\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SmartDB as of 2018-08-21 - Philipp Salvisberg&#039;s Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/","og_locale":"en_US","og_type":"article","og_title":"SmartDB as of 2018-08-21 - Philipp Salvisberg&#039;s Blog","og_description":"Introduction This is a transcription of the recorded Ask TOM #SmartDB Office Hours from August 21, 2018, where Bryn Llewellyn presented an updated, narrow definition of the Smart Database Paradigm (SmartDB).&nbsp;It covers the time between 05:55 to 12:19. A big thank you to Bryn&nbsp;for taking the time to clarify the SmartDB definition. [\u2026]","og_url":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/","og_site_name":"Philipp Salvisberg&#039;s Blog","article_published_time":"2018-08-28T20:36:02+00:00","article_modified_time":"2023-11-08T02:22:30+00:00","og_image":[{"width":1662,"height":936,"url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png","type":"image\/png"}],"author":"Philipp Salvisberg","twitter_card":"summary_large_image","twitter_creator":"@phsalvisberg","twitter_site":"@phsalvisberg","twitter_misc":{"Written by":"Philipp Salvisberg","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#article","isPartOf":{"@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/"},"author":{"name":"Philipp Salvisberg","@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"headline":"SmartDB as of 2018-08-21","datePublished":"2018-08-28T20:36:02+00:00","dateModified":"2023-11-08T02:22:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/"},"wordCount":1086,"commentCount":12,"publisher":{"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"image":{"@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png","keywords":["SmartDB"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/","url":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/","name":"SmartDB as of 2018-08-21 - Philipp Salvisberg&#039;s Blog","isPartOf":{"@id":"https:\/\/www.salvis.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#primaryimage"},"image":{"@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png","datePublished":"2018-08-28T20:36:02+00:00","dateModified":"2023-11-08T02:22:30+00:00","breadcrumb":{"@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#primaryimage","url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png","contentUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2018\/08\/atoh_smartdb_1.png","width":1662,"height":936},{"@type":"BreadcrumbList","@id":"https:\/\/www.salvis.com\/blog\/2018\/08\/28\/smartdb-as-of-2018-08-21\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.salvis.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SmartDB as of 2018-08-21"}]},{"@type":"WebSite","@id":"https:\/\/www.salvis.com\/blog\/#website","url":"https:\/\/www.salvis.com\/blog\/","name":"Philipp Salvisberg&#039;s Blog","description":"Database-centric development","publisher":{"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.salvis.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.salvis.com\/blog\/#\/schema\/person\/34352245c48678b1a5a05d4bc1339515","name":"Philipp Salvisberg","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","url":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","contentUrl":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg","width":400,"height":400,"caption":"Philipp Salvisberg"},"logo":{"@id":"https:\/\/www.salvis.com\/blog\/wp-content\/uploads\/2010\/11\/phs_trivadis4.jpg"},"sameAs":["http:\/\/www.salvis.com\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/8867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/comments?post=8867"}],"version-history":[{"count":18,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/8867\/revisions"}],"predecessor-version":[{"id":12650,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/posts\/8867\/revisions\/12650"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/media\/8870"}],"wp:attachment":[{"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/media?parent=8867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/categories?post=8867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.salvis.com\/blog\/wp-json\/wp\/v2\/tags?post=8867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}