Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

pre-FOSDEM MySQL day, February 2018 - MySQL Document Store

493 views

Published on

Discover the power and capabilities of MySQL Document Store

Published in: Technology
  • Be the first to comment

pre-FOSDEM MySQL day, February 2018 - MySQL Document Store

  1. 1. 1 / 113
  2. 2. 2 / 113
  3. 3. MySQL,February2018 MySQLDocumentStore HowtoreplaceaNoSQLdatabasebyMySQLwithouteffortbutwithalotof gains?       Frédéric Descamps - MySQL Community Manager - Oracle 3 / 113
  4. 4.   Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purpose only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. The development, release and timing of any features or functionality described for Oracle´s product remains at the sole discretion of Oracle. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 4 / 113
  5. 5. about.me/lefred WhoamI? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 5 / 113
  6. 6. Frédéric Descamps @lefred MySQL Evangelist Hacking MySQL since 3.23 devops believer living in Belgium 🇧🇪 http://lefred.be Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 6 / 113
  7. 7. RDBMS & MySQL RelationalDatabases Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 7 / 113
  8. 8. Relational Databases Data Integrity Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 8 / 113
  9. 9. Relational Databases Data Integrity normalization Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 9 / 113
  10. 10. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 10 / 113
  11. 11. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 11 / 113
  12. 12. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 12 / 113
  13. 13. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant transactions Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 13 / 113
  14. 14. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant transactions SQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 14 / 113
  15. 15. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant transactions SQL powerfull query language Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 15 / 113
  16. 16. NoSQL & MySQL NoSQLDatabases Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 16 / 113
  17. 17. NoSQL or Document Store Schemaless Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 17 / 113
  18. 18. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 18 / 113
  19. 19. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 19 / 113
  20. 20. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 20 / 113
  21. 21. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 21 / 113
  22. 22. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects valid solution when natural data can't be modelized optimaly into a relational model Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 22 / 113
  23. 23. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects valid solution when natural data can't be modelized optimaly into a relational model objects persistance without the use of any ORM - mapping oobject-oriented Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 23 / 113
  24. 24. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects valid solution when natural data can't be modelized optimaly into a relational model objects persistance without the use of any ORM - mapping oobject-oriented JSON Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 24 / 113
  25. 25. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects valid solution when natural data can't be modelized optimaly into a relational model objects persistance without the use of any ORM - mapping oobject-oriented JSON close to frontend Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 25 / 113
  26. 26. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects valid solution when natural data can't be modelized optimaly into a relational model objects persistance without the use of any ORM - mapping oobject-oriented JSON close to frontend native in JS Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 26 / 113
  27. 27. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects valid solution when natural data can't be modelized optimaly into a relational model objects persistance without the use of any ORM - mapping oobject-oriented JSON close to frontend native in JS easy to learn Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 27 / 113
  28. 28. How DBAs see data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 28 / 113
  29. 29. How DBAs see data How Developers see data { "GNP" : 249704, "Name" : "Belgium", "government" : { "GovernmentForm" : "Constitutional Monarchy, Federation", "HeadOfState" : "Philippe I" }, "_id" : "BEL", "IndepYear" : 1830, "demographics" : { "Population" : 10239000, "LifeExpectancy" : 77.8000030517578 }, "geography" : { "Region" : "Western Europe", "SurfaceArea" : 30518, "Continent" : "Europe" } } Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 29 / 113
  30. 30. RelationalModel Higher upfront effort during design stage data modeling and normalization physical schema definition Database ensures integrity (invalid data rejected) Data types Constraints (foreign keys etc.) Relational Databases vs Document Store Systems Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 30 / 113
  31. 31. RelationalModel Higher upfront effort during design stage data modeling and normalization physical schema definition Database ensures integrity (invalid data rejected) Data types Constraints (foreign keys etc.) DocumentModel Lower upfront effort data structure defined in application code Application responsible for data integrity possibility for bad data to creep into the system (because of bugs, application changes etc.) Relational Databases vs Document Store Systems Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 31 / 113
  32. 32. RelationalModel Steeper learning curve requires knowledge of SQL Query language allows optimizer to execute complex queries efficiently (specially for JOINs) Schema changes can be problematic (ex upgrades) Relational Databases vs Document Store Systems (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 32 / 113
  33. 33. RelationalModel Steeper learning curve requires knowledge of SQL Query language allows optimizer to execute complex queries efficiently (specially for JOINs) Schema changes can be problematic (ex upgrades) DocumentModel Easier to get started with Limited or no JOINs, simple optimizer - complexity off-loaded to application Simpler deployment, different versions of the document can coexist Relational Databases vs Document Store Systems (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 33 / 113
  34. 34. DMBS or NoSQL ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 34 / 113
  35. 35. DMBS or NoSQL ? Why not both ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 35 / 113
  36. 36. Developers: [x] schemaless [x] rapid prototying/simpler APIs [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem [x] simpler application schema upgrades BusinessOwner: [x] don't lose my data == ACID trx [x] capture all my data = extensible/schemaless [x] product on schedule/time to market = rapid developement A solution for all Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 36 / 113
  37. 37. MySQL as Document Store Requirements Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 37 / 113
  38. 38. MySQL as Document Store: requirements Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 38 / 113
  39. 39. MySQL as Document Store: requirements 1. support of JSON datatype Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 39 / 113
  40. 40. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 40 / 113
  41. 41. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations 3. X-Plugin & X Protocol Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 41 / 113
  42. 42. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations 3. X-Plugin & X Protocol extends and replaces the traditional MySQL protocol Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 42 / 113
  43. 43. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations 3. X-Plugin & X Protocol extends and replaces the traditional MySQL protocol supports asynchronous communication to the server Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 43 / 113
  44. 44. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations 3. X-Plugin & X Protocol extends and replaces the traditional MySQL protocol supports asynchronous communication to the server supports multiple API calls like Javascript, Python, SQL... Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 44 / 113
  45. 45. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations 3. X-Plugin & X Protocol extends and replaces the traditional MySQL protocol supports asynchronous communication to the server supports multiple API calls like Javascript, Python, SQL... based on Google Protocol Buffers Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 45 / 113
  46. 46. MySQL as Document Store: requirements 1. support of JSON datatype 2. CRUD Operations 3. X-Plugin & X Protocol extends and replaces the traditional MySQL protocol supports asynchronous communication to the server supports multiple API calls like Javascript, Python, SQL... based on Google Protocol Buffers 4. MySQL Shell Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 46 / 113
  47. 47. MySQL Document Store Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 47 / 113
  48. 48. MySQL as Document Store StartingwithDS Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 48 / 113
  49. 49. Starting using MySQL DS in few minutes Install X Plugin Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 49 / 113
  50. 50. Starting using MySQL DS in few minutes   Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 50 / 113
  51. 51. Migration from MongoDB to MySQL DS For this example, I will use the well known restaurants collection: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 51 / 113
  52. 52. Migration from MongoDB to MySQL DS For this example, I will use the well known restaurants collection: We need to dump the data to a file and we will use MySQL Shell with the Python interpreter to load the data. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 52 / 113
  53. 53. Migration from MongoDB to MySQL DS For this example, I will use the well known restaurants collection: We need to dump the data to a file and we will use MySQL Shell with the Python interpreter to load the data. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 53 / 113
  54. 54. Dump and load using MySQL Shell & Python this example is inspired by @datacharmer's work: https://www.slideshare.net/datacharmer/mysql-documentstore $ mongo --quiet --eval 'DBQuery.shellBatchSize=30000; db.restaurants.find().shellPrint()' | perl -pe 's/(?:ObjectId|ISODate)(("[^"]+"))/ $1/g' > all_recs.json Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 54 / 113
  55. 55. Dump and load using MySQL Shell & Python this example is inspired by @datacharmer's work: https://www.slideshare.net/datacharmer/mysql-documentstore $ mongo --quiet --eval 'DBQuery.shellBatchSize=30000; db.restaurants.find().shellPrint()' | perl -pe 's/(?:ObjectId|ISODate)(("[^"]+"))/ $1/g' > all_recs.json Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 55 / 113
  56. 56. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 56 / 113
  57. 57. Let´s query Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 57 / 113
  58. 58. Let´s query That´s too much records to show it here... let´s limit it Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 58 / 113
  59. 59. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 59 / 113
  60. 60. Some more examples Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 60 / 113
  61. 61. Some more examples Let´s add a selection criteria: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 61 / 113
  62. 62. Syntax slightly different than MongoDB Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 62 / 113
  63. 63. Syntax slightly different than MongoDB > db.restaurants.find({"cuisine": "French", "borough": { $not: /^Manhattan/} }, {"_id":0, "name": 1,"cuisine": 1, "borough": 1}).limit(2) { "borough" : "Queens", "cuisine" : "French", "name" : "La Baraka Restaurant" } { "borough" : "Queens", "cuisine" : "French", "name" : "Air France Lounge" } Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 63 / 113
  64. 64. CRUD operations Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 64 / 113
  65. 65. 8.0.3 what´s new ? WL10446 - Customizable prompts WL10568 - Handling of Ctrl+C has been improved on many scenarios WL10708 and WL10823 - NodeSession disappeared in favor of simply Session WL10912 - Changes on connection options handling: case insensitive: i.e. ssl-mode == Ssl-Mode renamed from camel case to word dashed format: sslMode --> ssl-mode WL11054 - Admin API supports automatic turn of of super-read-only option on several functions. WL10682 - Mysqlx.CRUD.Update on top level document Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 65 / 113
  66. 66. 8.0.3 what´s new ? (part 2) WL10645 - X Protocol Crud.Find with row locking WL10734 - Spatial index type WL10744 - Full-Text Index Type WL10797 - Mysqlx.Crud.Update: MERGE_PATCH WL10447 - auto-completion by hitting in the middle of typing a shell command, database object, object function, ... Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 66 / 113
  67. 67. 8.0.4 what´s new ? WL11434 - X Protocol Crud.Insert with upsert, behavior redefined WL8867 - Add JSON table functions WL8960 - InnoDB: Partial Fetch and Update of BLOB InnoDB now supports partial fetch and update of large object (LOB) data stored in external fields outside of clustered index pages, including JSON documents updated using JSON_SET() and JSON_REPLACE(). Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 67 / 113
  68. 68. 8.0.4-rc: auto-completion Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 68 / 113
  69. 69. 8.0.4-rc: auto-completion Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 69 / 113
  70. 70. 8.0.4 rc: auto-completion - even for SQL ! Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 70 / 113
  71. 71. a bit more... using IN Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 71 / 113
  72. 72. a bit more... Full Text Search Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 72 / 113
  73. 73. what about my old SQL ? Thehiddenpartoftheiceberg Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 73 / 113
  74. 74. JSON datatype is behind the scene native datatype (since 5.7.8) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 74 / 113
  75. 75. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 75 / 113
  76. 76. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 76 / 113
  77. 77. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,...) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 77 / 113
  78. 78. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,...) Generated/virtual columns Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 78 / 113
  79. 79. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,...) Generated/virtual columns Indexing JSON data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 79 / 113
  80. 80. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,...) Generated/virtual columns Indexing JSON data Foreign Keys to JSON data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 80 / 113
  81. 81. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,...) Generated/virtual columns Indexing JSON data Foreign Keys to JSON data SQL Views to JSON data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 81 / 113
  82. 82. How does it work ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 82 / 113
  83. 83. Mapping to SQL examples createCollection('mycollection') Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 83 / 113
  84. 84. Mapping to SQL examples createCollection('mycollection') CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4; Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 84 / 113
  85. 85. Mapping to SQL examples createCollection('mycollection') CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4; mycollection.add({'test':1234}) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 85 / 113
  86. 86. Mapping to SQL examples createCollection('mycollection') CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4; mycollection.add({'test':1234}) INSERT INTO `test`.`mycoll` (doc) VALUES ( JSON_OBJECT('_id','663807fe367ee6114e0e5458bdac28bf', 'test',1234) ); Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 86 / 113
  87. 87. Mapping to SQL examples (2) mycollection.find("test>100") Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 87 / 113
  88. 88. Mapping to SQL examples (2) mycollection.find("test>100") SELECT doc FROM `test`.`mycoll` WHERE (JSON_EXTRACT(doc,'$.test') > 100); Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 88 / 113
  89. 89. SQL and JSON Example Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 89 / 113
  90. 90. SQL and JSON Example same as: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 90 / 113
  91. 91. SQL and JSON Example same as: we can use it in SQL: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 91 / 113
  92. 92. SQL and JSON Example (2): validation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 92 / 113
  93. 93. SQL and JSON Example (2): validation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 93 / 113
  94. 94. SQL and JSON Example (2): validation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 94 / 113
  95. 95. SQL and JSON Example (3): explain Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 95 / 113
  96. 96. SQL and JSON Example (3): explain Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 96 / 113
  97. 97. SQL and JSON Example (4): add index Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 97 / 113
  98. 98. SQL and JSON Example (4): add index Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 98 / 113
  99. 99. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 99 / 113
  100. 100. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 100 / 113
  101. 101. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 101 / 113
  102. 102. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 102 / 113
  103. 103. NoSQL as SQL New in MySQL 8.0.4: JSON_TABLE Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 103 / 113
  104. 104. NoSQL as SQL (2) New in MySQL 8.0.4: JSON_TABLE Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 104 / 113
  105. 105. SQL and NoSQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 105 / 113
  106. 106. SQL and NoSQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 106 / 113
  107. 107. SQL and NoSQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 107 / 113
  108. 108. SQL and NoSQL (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 108 / 113
  109. 109. SQL and NoSQL (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 109 / 113
  110. 110. SQL and NoSQL (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 110 / 113
  111. 111. what do I gain ? Conclusion Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 111 / 113
  112. 112. schemaless flexible data structure easy to start (CRUD) Conclusion This is the best of the two worlds in one product ! Data integrity ACID Compliant SQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 112 / 113
  113. 113. Thank you ! Any Questions ? http://lefred.be Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 113 / 113

×