{"id":761,"date":"2009-12-18T14:58:00","date_gmt":"2009-12-18T14:58:00","guid":{"rendered":"\/blogs\/paul\/post\/So-you-want-to-write-a-Storage-Engine.aspx"},"modified":"2021-10-19T11:29:36","modified_gmt":"2021-10-19T18:29:36","slug":"so-you-want-to-write-a-storage-engine","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/","title":{"rendered":"So you want to write a Storage Engine&#8230;"},"content":{"rendered":"<p><span style=\"font-family: verdana, geneva; font-size: small;\">Earlier today there was a thread on Twitter asking about what degrees and academic background people have who work on SQL Server. I volunteered to put together a reading list for those wanting to know more of the theory behind a relational database management system, rather than just how to use one. <\/span><\/p>\n<p><span style=\"font-family: verdana, geneva; font-size: small;\">Here I present a reading list that will take you from how to program well up to how to architect multi-threaded database servers. I&#8217;ve read all of these at some point between finishing my CS\/EE degree in Edinburgh in 1994 and stopping dev work in 2005, and they&#8217;re sitting on my bookshelf as I type this. They&#8217;re all the best books I could find on the subject at the time, and they&#8217;re all absolutely excellent. I&#8217;ve included Amazon.com links to the most up-to-date editions\u00a0(because I&#8217;m nice like that :-).<\/span><\/p>\n<p><span style=\"font-family: verdana, geneva;\"><span style=\"font-size: small;\"><strong>Programming<\/strong> <\/span><\/span><\/p>\n<ul>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Art-Computer-Programming-Fundamental-Algorithms\/dp\/0201896834\/ref=pd_sim_b_2\"><span style=\"font-family: verdana, geneva; font-size: small;\">The Art of Computer Programming, Volume 1: Fundamental Algorithms<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Knuth, 672pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Art-Computer-Programming-Seminumerical-Algorithms\/dp\/0201896842\/ref=pd_sim_b_1\"><span style=\"font-family: verdana, geneva; font-size: small;\">The Art of Computer Programming, Volume 2: Seminumerical Algorithms<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Knuth, 784pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Art-Computer-Programming-Sorting-Searching\/dp\/0201896850\/ref=sr_1_7?ie=UTF8&amp;s=books&amp;qid=1261177973&amp;sr=1-7\"><span style=\"font-family: verdana, geneva; font-size: small;\">The Art of Computer Programming, Volume 3: Sorting and Searching<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Knuth, 800pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/smile.amazon.com\/Algorithms-Parts-1-4-Fundamentals-Structure\/dp\/0201350882\/\"><span style=\"font-family: verdana, geneva; font-size: small;\">Algorithms in C++, Parts 1-4<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Sedgewick, 752pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/C-Programming-Language-Special\/dp\/0201700735\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177870&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">The C++ Programming Language: Special Edition<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\">\u00a0(Stroustrup, 1030pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Design-Analysis-Computer-Algorithms\/dp\/0201000296\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177821&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">The Design and Analysis of Computer Algorithms<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Aho\/Hopcroft\/Ullman, 470pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/smile.amazon.com\/Design-Patterns-Elements-Reusable-Object-Oriented\/dp\/0201633612\/\"><span style=\"font-family: verdana, geneva; font-size: small;\">Design Patterns: Elements of Reusable Object-Oriented Software<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Gamma\/Helm\/Johnson\/Vlissides, 416pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/How-Solve-Heuristics-Zbigniew-Michalewicz\/dp\/3540224947\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177696&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">How to Solve It: Modern Heuristics<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Michalewicz\/Fogel, 554pp)<\/span><\/div>\n<\/li>\n<\/ul>\n<p><span style=\"font-family: verdana, geneva;\"><span style=\"font-size: small;\"><strong>Underneath the RDBMS<\/strong> <\/span><\/span><\/p>\n<ul>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Computer-Networks-4th-Andrew-Tanenbaum\/dp\/0130661023\/ref=pd_sim_b_2\"><span style=\"font-family: verdana, geneva; font-size: small;\">Computer Networks<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Tanenbaum, 912pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Modern-Operating-Systems-Andrew-Tanenbaum\/dp\/0136006639\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177566&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Modern Operating Systems<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Tanenbaum, 1104pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Distributed-Systems-Principles-Paradigms-2nd\/dp\/0132392275\/ref=ntt_at_ep_dpi_3\"><span style=\"font-family: verdana, geneva; font-size: small;\">Distributed Systems: Principles and Paradigms<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Tanenbaum, 704pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/smile.amazon.com\/Computer-Architecture-Organization-John-Hayes\/dp\/0070273553\/\"><span style=\"font-family: verdana, geneva; font-size: small;\">Computer Architecture and Organization<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Hayes, 624pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Computer-Architecture-Quantitative-Approach-4th\/dp\/0123704901\/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1261177430&amp;sr=1-2\"><span style=\"font-family: verdana, geneva; font-size: small;\">Computer Architecture: A Quantative Approach<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Hennessy\/Patterson, 704pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Cryptography-Network-Security-William-Stallings\/dp\/0136097049\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177352&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Cryptography and Network Security<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Stallings, 744pp)<\/span><\/div>\n<\/li>\n<\/ul>\n<p><span style=\"font-family: verdana, geneva;\"><span style=\"font-size: small;\"><strong>Concepts<\/strong> <\/span><\/span><\/p>\n<ul>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Parallel-Processing-Algorithms-Theory-Computation\/dp\/0387987169\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177310&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Parallel Processing and Parallel Algorithms: Theory and Computation<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Roosta, 566pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Decision-Support-Business-Intelligence-Systems\/dp\/0131986600\/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1261177191&amp;sr=1-2\"><span style=\"font-family: verdana, geneva; font-size: small;\">Decision Support Systems and Intelligent Systems<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Turban\/Aronson\/Liang\/Sharda, 850pp)<\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Distributed-Algorithms-Kaufmann-Management-Systems\/dp\/1558603484\/ref=pd_sim_b_4\"><span style=\"font-family: verdana, geneva; font-size: small;\">Distributed Algorithms<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Lynch, 904pp)<\/span><\/div>\n<\/li>\n<li><a href=\"https:\/\/www.amazon.com\/Transactional-Information-Systems-Algorithms-Concurrency\/dp\/1558605088\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261177003&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Weikum\/Vossen, 852pp) <\/span><\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Transaction-Processing-Concepts-Techniques-Management\/dp\/1558601902\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261176947&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Transaction Processing: Concepts and Techniques<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Gray\/Reuter, 1070pp) <\/span><\/div>\n<\/li>\n<\/ul>\n<p><span style=\"font-family: verdana, geneva;\"><span style=\"font-size: small;\"><strong>RDBMS architecture<\/strong> <\/span><\/span><\/p>\n<ul>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Database-Management-Systems-Raghu-Ramakrishnan\/dp\/0071230572\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261176870&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Database Management Systems<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\">\u00a0(Ramakrishnan\/Gehrke, 936pp) <\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Introduction-Database-Systems-C-J-Date\/dp\/0321197844\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261176613&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Introduction to Database Systems<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Date, 1024pp) <\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Database-Principles-Programming-Performance-Management\/dp\/1558604383\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261176817&amp;sr=1-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Database: Principles, Programming, and Performance<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (O&#8217;Neil\/O&#8217;Neil, 870pp) <\/span><\/div>\n<\/li>\n<li>\n<div><a href=\"https:\/\/www.amazon.com\/Readings-Database-Systems-Joseph-Hellerstein\/dp\/0262693143\/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1261176468&amp;sr=8-1\"><span style=\"font-family: verdana, geneva; font-size: small;\">Readings in Database Systems<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\"> (Stonebraker\/Hellerstein, 877pp) <\/span><\/div>\n<\/li>\n<\/ul>\n<p><span style=\"font-family: verdana, geneva; font-size: small;\">You should also checkout the <\/span><a href=\"http:\/\/www.sigmod.org\/\"><span style=\"font-family: verdana, geneva; font-size: small;\">ACM Special Interest Group on Management of Data (SIGMOD)<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\">, and the <\/span><a href=\"http:\/\/vldb2009.org\/\"><span style=\"font-family: verdana, geneva; font-size: small;\">VLDB Conference<\/span><\/a><span style=\"font-family: verdana, geneva; font-size: small;\">\u00a0&#8211; these are the premier academic conferences to do with database management systems.<\/span><\/p>\n<p><span style=\"font-size: small;\">This should keep you busy.. happy reading!<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Earlier today there was a thread on Twitter asking about what degrees and academic background people have who work on SQL Server. I volunteered to put together a reading list for those wanting to know more of the theory behind a relational database management system, rather than just how to use one. Here I present [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,44],"tags":[],"class_list":["post-761","post","type-post","status-publish","format-standard","hentry","category-books","category-general"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>So you want to write a Storage Engine... - Paul S. Randal<\/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.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"So you want to write a Storage Engine... - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"Earlier today there was a thread on Twitter asking about what degrees and academic background people have who work on SQL Server. I volunteered to put together a reading list for those wanting to know more of the theory behind a relational database management system, rather than just how to use one. Here I present [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2009-12-18T14:58:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-19T18:29:36+00:00\" \/>\n<meta name=\"author\" content=\"Paul Randal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Randal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/\",\"name\":\"So you want to write a Storage Engine... - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2009-12-18T14:58:00+00:00\",\"dateModified\":\"2021-10-19T18:29:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"So you want to write a Storage Engine&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\",\"name\":\"Paul S. Randal\",\"description\":\"In Recovery...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\",\"name\":\"Paul Randal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"caption\":\"Paul Randal\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/paul\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"So you want to write a Storage Engine... - Paul S. Randal","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.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/","og_locale":"en_US","og_type":"article","og_title":"So you want to write a Storage Engine... - Paul S. Randal","og_description":"Earlier today there was a thread on Twitter asking about what degrees and academic background people have who work on SQL Server. I volunteered to put together a reading list for those wanting to know more of the theory behind a relational database management system, rather than just how to use one. Here I present [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/","og_site_name":"Paul S. Randal","article_published_time":"2009-12-18T14:58:00+00:00","article_modified_time":"2021-10-19T18:29:36+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/","name":"So you want to write a Storage Engine... - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2009-12-18T14:58:00+00:00","dateModified":"2021-10-19T18:29:36+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/so-you-want-to-write-a-storage-engine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"So you want to write a Storage Engine&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/","name":"Paul S. Randal","description":"In Recovery...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce","name":"Paul Randal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","caption":"Paul Randal"},"sameAs":["http:\/\/3.209.169.194\/blogs\/paul"],"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/comments?post=761"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/761\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}