SlideShare a Scribd company logo
noSQL vs SQL
Comparative usage of noSQL and SQL DBMS in enterprise applications
Contents
noSQL vs SQL
MongoDB in production
MongoDB + Oracle in production
Measuring performance
Querying: examples
Intro
A few words about me
• My name is Hanna Kaplun, I’m a QA Lead at Intellias
• Got more than 10 years of experience in testing
• and a few as a support specialist, technical writer, Oracle DB
developer, BA
• Here’s my LinkedIn
• Yes, testing is my conscious choice 
• Held a few trainings, meetups etc. for various audiences
• Wrote a number of articles about testing
• and data science using R
• Got myself a husband and two kids, 6 yrs and 1 yr
correspondingly 
noSQL vs SQL
SQL vs noSQL: main differences
• They are relational, i.e. they can be normalized to store the data
efficiently taking less space
• There is a pre-defined schema, the structure where the data is
stored (DDL portion of SQL)
• Data structures to store data are tables with fixed columns
• Vertical scaling (buy a larger server)
• Multi-record transactions are supported
SQL noSQL
• They are non-relational, therefore no storage optimization
• The schema is dynamic as the data are unstructured
• Data structures may vary
– Document (JSON, i.e. trees)
– Key-value
– Wide-column (tables with dynamic columns)
– Graph (nodes and edges, dict of lists as a rule)
• Horizontal scaling (buy more servers)
• Multi-record transactions are usually not supported
SQL vs noSQL: advantages and disadvantages
• Advantages
– Normalization is available to optimize data
storage
– Transactions to support ACID
– ANY data can be stored this way
• Disadvantages
– Joins and lots of complicated query stuff
– May be slow
– Additional interfaces to communicate with
DBMS from a programming language
SQL noSQL
• Advantages
– Fast
– Easy to understand and query as the data are
stored naturally and dynamically, no need to
restructure them
– Easy to query from a programming language
• Disadvantages
– Possible data duplication
– No transactions, so implementing ACID
principles may be a challenge (usually it is done
via a programming language, not via a DBMS)
SQL vs noSQL: DBMS examples
• Oracle
• MySQL
• MS SQL Server
• PostgreSQL
• SQLite
SQL noSQL
• Document-based
– MongoDB
– CouchDB
• Key-value based
– DynamoDB
– Redis
• Wide-column based:
– Cassandra
– HBase
• Graph based:
– Neo4j
– Amazon
Neptune
MongoDB in production
The application
• The general idea of the application was to sign the documents with electronic
signatures and store the signature and the information about the document
but not the document itself
• The electronic signatures have two- or three-level of verification, depending on
the authority issuing the certificate to use for this purpose
• The meta-data about the document may or may not contain some information
though there are the mandatory fields like document title, size, format
• The non-mandatory fields may be the following: category, date of verification,
author information (name, surname, the company, job title etc.)
The application: conclusions
• The data to be stored has tree structure (the certificate issuing authorities,
documents and their authors)
• The data is dynamic (some of the values may or may not be present, as well as
the nodes in the tree)
• Initial DBMS proposal: Oracle (the team is familiar with it; any data can be
stored in SQL format)
• Alternative DBMS proposal: MongoDB (dynamic schema, tree-like data, JSONs
as a format to store it in by default)
The application: DBMS choice
• Advantages
– The team knows it, we have a DBA and Oracle DB devs on the
team
– Everything can be stored in SQL, no matter what the new data
we need to store, it will be possible
• Disadvantages
– The DML queries became complicated almost from scratch
when the DB schema was normalized (to BCNF – Boyce-Codd
normal form, 3.5NF), it appeared that we needed to write e.g.
recursive queries to fetch the info we needed from tree-like
data
– Vertical scaling was not available while horizontal was
(customer’s request)
Oracle MongoDB
• Advantages
– Backend devs could just use it, no need for a DBA or a
separate DB dev team
– Querying appeared to be easy and fast
– We could use MongoDB sharding for horizontal scaling
• Disadvantages
– Significant data duplication, so sharding has been on demand
almost immediately after we deployed to production
– Further performance optimization was either exponential or
index-based
MongoDB + Oracle in
production
The application: extension
• The application we have deployed in previous section had to be expanded: we
were now supposed to store the documents themselves and monitor user
activity so that the potential data fraud or data loss or other types of attacks
focused on the data could be detected
• Therefore, it was necessary to store the documents in addition to their
metadata (quite a challenge as the formats could vary from .txt to .jpg or .pdf)
• We also needed to add extensive logging and add a complicated real-time log
analysis system to detect the possible threats and inform the relevant
stakeholders about them
The application extension: conclusions
• There is no need to query the documents, just to store them and make sure
they are intact
• The logs and the relevant business logic raise a few challenges
– The number of records is increasing alarmingly fast as well as the file size to store these along with the increasing
number of users (approximately 1 000 000 records per day)
– The log records are to be analyzed in the real time, so performance of this business logic implementation is of
essence
• The alerting mechanism should be fast not only from performance point of
view but also reach the responsible person as quickly as possible
The application extension: solutions
• We decided to store the documents in Oracle (allowing full-functional
transactions, batch processing and regular data backups)
• The main data architecture challenge of storing the data in relational DBMS and
its meta-data in non-relational DBMS is to ensure the proper correspondence
between the two (we wrote a correspondence layer for that purpose in a
backend programming language)
• The logs were stored in MongoDB despite their pre-defined structure (log
message type, log message, date and time) – the reason for that were relatively
simple queries including date-time and message type and further text analysis
implemented as part of the backend source code (i.e. the performance was of
essence and good enough for the project needs)
Measuring
performance
Measuring performance: a few hints
• In Oracle something like profiling can be used,
which was the case for us – a few queries of
interest were selected, and we have measured
the time it took to get the view with the results
on different DB states (empty, average data
amount, maximum foreseeable data amount)
• Useful links
– Measuring DB performance for Oracle
– Oracle DB performance tuning guide
Oracle MongoDB
• MongoDB has a DB profiler and a diagnostic log.
It has explain() method to see the indexes
applied and the execution stats for the query of
interest (which is exactly what we have used)
• Useful links
– Evaluating operations
– Performance in MongoDB
– Monitoring
Querying:
samples
Querying: the differences
• INSERT INTO users (user_id, age, status)
VALUES ('bcd001', 45, 'A’)
• SELECT * FROM users
• UPDATE users SET status = 'C' WHERE age
> 25
• db.start_transaction()
cursor.execute(orderInsert, orderData)
cursor.execute(stockUpdate, stockData)
db.commit()
Oracle MongoDB
• db.users.insert({ user_id: 'bcd001', age: 45,
status: 'A’ })
• db.users.find()
• db.users.update( { age: { $gt: 25 } }, { $set:
{ status: 'C' } }, { multi: true } )
• s.starttransaction() orders.insertone(order,
session=s) stock.updateone(item,
stockUpdate, session=s)
s.committransaction()
Querying Stackoverflow: the schema
• StackExchange Data Explorer
Thinking JSON: Post to User
• StackExchange Data Explorer
{"id": 3048642,
"creationDate": "2010-06-15 20:07:34",
"Body": "<p>You can try something like that :</p><..."}
...,
"Author": {"id": 12164792,
"creationDate": "2019-10-04 13:40:14",
"DisplayName": "q8cworu271",
...}
}
Thinking JSON: User to Post
• StackExchange Data Explorer
{"id": 12164792,
"creationDate": "2019-10-04 13:40:14",
"DisplayName": "q8cworu271",
...,
"posts": [{"id": 3048642,
"creationDate": "2010-06-15 20:07:34",
"Body": "<p>You can try something like that :.
…},
...]
}
Querying Stackoverflow: the examples
SQL MongoDB
• select top 10 * from posts
• select * from users where DisplayName =
'q8cworu271’
• select * from users where DisplayName =
'q8cworu271' AND Reputation = 1
• select top 10 * from users order by
CreationDate
• db.posts.find().limit(10)
• db.users.find( { “DisplayName":
"q8cworu271" } )
• db.users.find( { $and: [ {“DisplayName":
"q8cworu271"}, { “Reputation”: 1 } ] } )
• db.users.find().sort( { “CreationDate": 1 }
).limit(10)
THANK
YOU!
Lorem ipsum
Ad

More Related Content

What's hot (20)

NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
BADR
 
RDBMS vs NoSQL
RDBMS vs NoSQLRDBMS vs NoSQL
RDBMS vs NoSQL
Murat Çakal
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra
 
Research on vector spatial data storage scheme based
Research on vector spatial data storage scheme basedResearch on vector spatial data storage scheme based
Research on vector spatial data storage scheme based
Anant Kumar
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
MongoDB
 
Best storage engine for MySQL
Best storage engine for MySQLBest storage engine for MySQL
Best storage engine for MySQL
tomflemingh2
 
Mongo DB: Operational Big Data Database
Mongo DB: Operational Big Data DatabaseMongo DB: Operational Big Data Database
Mongo DB: Operational Big Data Database
Xpand IT
 
Unit 3 MongDB
Unit 3 MongDBUnit 3 MongDB
Unit 3 MongDB
Praveen M Jigajinni
 
Oracle InMemory hardcore edition
Oracle InMemory hardcore editionOracle InMemory hardcore edition
Oracle InMemory hardcore edition
Alexander Tokarev
 
v9.1.2 update
 v9.1.2 update v9.1.2 update
v9.1.2 update
IBM Sverige
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The Move
IBM Cloud Data Services
 
2018 05 08_biological_databases_no_sql
2018 05 08_biological_databases_no_sql2018 05 08_biological_databases_no_sql
2018 05 08_biological_databases_no_sql
Prof. Wim Van Criekinge
 
Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers  Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers
EDB
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
RTigger
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
Zaid Shabbir
 
Key Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresKey Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to Postgres
EDB
 
Big data for cio 2015
Big data for cio 2015Big data for cio 2015
Big data for cio 2015
Zohar Elkayam
 
Heterogeneous Data - Published
Heterogeneous Data - PublishedHeterogeneous Data - Published
Heterogeneous Data - Published
Paul Steffensen
 
Faceted search with Oracle InMemory option
Faceted search with Oracle InMemory optionFaceted search with Oracle InMemory option
Faceted search with Oracle InMemory option
Alexander Tokarev
 
The Hadoop Ecosystem for Developers
The Hadoop Ecosystem for DevelopersThe Hadoop Ecosystem for Developers
The Hadoop Ecosystem for Developers
Zohar Elkayam
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
BADR
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra
 
Research on vector spatial data storage scheme based
Research on vector spatial data storage scheme basedResearch on vector spatial data storage scheme based
Research on vector spatial data storage scheme based
Anant Kumar
 
Transitioning from SQL to MongoDB
Transitioning from SQL to MongoDBTransitioning from SQL to MongoDB
Transitioning from SQL to MongoDB
MongoDB
 
Best storage engine for MySQL
Best storage engine for MySQLBest storage engine for MySQL
Best storage engine for MySQL
tomflemingh2
 
Mongo DB: Operational Big Data Database
Mongo DB: Operational Big Data DatabaseMongo DB: Operational Big Data Database
Mongo DB: Operational Big Data Database
Xpand IT
 
Oracle InMemory hardcore edition
Oracle InMemory hardcore editionOracle InMemory hardcore edition
Oracle InMemory hardcore edition
Alexander Tokarev
 
SQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The MoveSQL To NoSQL - Top 6 Questions Before Making The Move
SQL To NoSQL - Top 6 Questions Before Making The Move
IBM Cloud Data Services
 
Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers  Postgres Foreign Data Wrappers
Postgres Foreign Data Wrappers
EDB
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
RTigger
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
Zaid Shabbir
 
Key Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to PostgresKey Methodologies for Migrating from Oracle to Postgres
Key Methodologies for Migrating from Oracle to Postgres
EDB
 
Big data for cio 2015
Big data for cio 2015Big data for cio 2015
Big data for cio 2015
Zohar Elkayam
 
Heterogeneous Data - Published
Heterogeneous Data - PublishedHeterogeneous Data - Published
Heterogeneous Data - Published
Paul Steffensen
 
Faceted search with Oracle InMemory option
Faceted search with Oracle InMemory optionFaceted search with Oracle InMemory option
Faceted search with Oracle InMemory option
Alexander Tokarev
 
The Hadoop Ecosystem for Developers
The Hadoop Ecosystem for DevelopersThe Hadoop Ecosystem for Developers
The Hadoop Ecosystem for Developers
Zohar Elkayam
 

Similar to ГАННА КАПЛУН «noSQL vs SQL: порівняння використання реляційних та нереляційних СУБД в комерційних програмах» Kyiv QADay 2021 (20)

NoSQLDatabases
NoSQLDatabasesNoSQLDatabases
NoSQLDatabases
Adi Challa
 
MongoDB Lab Manual (1).pdf used in data science
MongoDB Lab Manual (1).pdf used in data scienceMongoDB Lab Manual (1).pdf used in data science
MongoDB Lab Manual (1).pdf used in data science
bitragowthamkumar1
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Got documents - The Raven Bouns Edition
Got documents - The Raven Bouns EditionGot documents - The Raven Bouns Edition
Got documents - The Raven Bouns Edition
Maggie Pint
 
(Dbms) class 1 & 2 (Presentation)
(Dbms) class 1 & 2 (Presentation)(Dbms) class 1 & 2 (Presentation)
(Dbms) class 1 & 2 (Presentation)
Dr. Mazin Mohamed alkathiri
 
INTRODUCTION OF DATA BASE
INTRODUCTION OF DATA BASEINTRODUCTION OF DATA BASE
INTRODUCTION OF DATA BASE
AMUTHAG2
 
SQL vs MongoDB
SQL vs MongoDBSQL vs MongoDB
SQL vs MongoDB
calltutors
 
Transform your DBMS to drive engagement innovation with Big Data
Transform your DBMS to drive engagement innovation with Big DataTransform your DBMS to drive engagement innovation with Big Data
Transform your DBMS to drive engagement innovation with Big Data
Ashnikbiz
 
NoSQL and MongoDB
NoSQL and MongoDBNoSQL and MongoDB
NoSQL and MongoDB
Rajesh Menon
 
Introduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQLIntroduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQL
Mayur Patil
 
Replacing Oracle Database at an International Bank
Replacing Oracle Database at an International BankReplacing Oracle Database at an International Bank
Replacing Oracle Database at an International Bank
MariaDB plc
 
NoSql Brownbag
NoSql BrownbagNoSql Brownbag
NoSql Brownbag
Sandeep Kumar
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
PolarSeven Pty Ltd
 
Mongo DB
Mongo DB Mongo DB
Mongo DB
Tata Consultancy Services
 
Database Technologies
Database TechnologiesDatabase Technologies
Database Technologies
Michel de Goede
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
EDB
 
Mongodb
MongodbMongodb
Mongodb
Apurva Vyas
 
Introduction to asdfghjkln b vfgh n v
Introduction to asdfghjkln b vfgh n    vIntroduction to asdfghjkln b vfgh n    v
Introduction to asdfghjkln b vfgh n v
23mz02
 
MongoDB for Spatio-Behavioral Data Analysis and Visualization
MongoDB for Spatio-Behavioral Data Analysis and VisualizationMongoDB for Spatio-Behavioral Data Analysis and Visualization
MongoDB for Spatio-Behavioral Data Analysis and Visualization
MongoDB
 
MongoDB vs Firebase
MongoDB vs Firebase MongoDB vs Firebase
MongoDB vs Firebase
MERN Stack Development Company
 
NoSQLDatabases
NoSQLDatabasesNoSQLDatabases
NoSQLDatabases
Adi Challa
 
MongoDB Lab Manual (1).pdf used in data science
MongoDB Lab Manual (1).pdf used in data scienceMongoDB Lab Manual (1).pdf used in data science
MongoDB Lab Manual (1).pdf used in data science
bitragowthamkumar1
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Got documents - The Raven Bouns Edition
Got documents - The Raven Bouns EditionGot documents - The Raven Bouns Edition
Got documents - The Raven Bouns Edition
Maggie Pint
 
INTRODUCTION OF DATA BASE
INTRODUCTION OF DATA BASEINTRODUCTION OF DATA BASE
INTRODUCTION OF DATA BASE
AMUTHAG2
 
SQL vs MongoDB
SQL vs MongoDBSQL vs MongoDB
SQL vs MongoDB
calltutors
 
Transform your DBMS to drive engagement innovation with Big Data
Transform your DBMS to drive engagement innovation with Big DataTransform your DBMS to drive engagement innovation with Big Data
Transform your DBMS to drive engagement innovation with Big Data
Ashnikbiz
 
Introduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQLIntroduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQL
Mayur Patil
 
Replacing Oracle Database at an International Bank
Replacing Oracle Database at an International BankReplacing Oracle Database at an International Bank
Replacing Oracle Database at an International Bank
MariaDB plc
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
EDB
 
Introduction to asdfghjkln b vfgh n v
Introduction to asdfghjkln b vfgh n    vIntroduction to asdfghjkln b vfgh n    v
Introduction to asdfghjkln b vfgh n v
23mz02
 
MongoDB for Spatio-Behavioral Data Analysis and Visualization
MongoDB for Spatio-Behavioral Data Analysis and VisualizationMongoDB for Spatio-Behavioral Data Analysis and Visualization
MongoDB for Spatio-Behavioral Data Analysis and Visualization
MongoDB
 
Ad

More from QADay (20)

СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...
СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...
СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...
QADay
 
РАМЕЛЛА БАСЕНКО - Tехніки тест дизайну в дії: розбір задач та корисні поради...
РАМЕЛЛА БАСЕНКО -  Tехніки тест дизайну в дії: розбір задач та корисні поради...РАМЕЛЛА БАСЕНКО -  Tехніки тест дизайну в дії: розбір задач та корисні поради...
РАМЕЛЛА БАСЕНКО - Tехніки тест дизайну в дії: розбір задач та корисні поради...
QADay
 
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
QADay
 
ЮРІЙ БАЖАН «Один спринт з життя тестувальника»
ЮРІЙ БАЖАН «Один спринт з життя тестувальника»ЮРІЙ БАЖАН «Один спринт з життя тестувальника»
ЮРІЙ БАЖАН «Один спринт з життя тестувальника»
QADay
 
АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»
АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»
АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»
QADay
 
ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..
ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..
ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..
QADay
 
АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»
АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»
АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»
QADay
 
РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»
РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»
РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»
QADay
 
КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»
КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»
КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»
QADay
 
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
QADay
 
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
АНАСТАСІЯ ЧУДОВСЬКА  «Переїзд з моноліта на мікросервіси з точки зору QA: як ...АНАСТАСІЯ ЧУДОВСЬКА  «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
QADay
 
СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»
СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»
СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»
QADay
 
ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...
ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...
ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...
QADay
 
ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...
ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...
ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...
QADay
 
ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»
ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»
ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»
QADay
 
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
QADay
 
ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»
ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»
ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»
QADay
 
НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»
НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»
НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»
QADay
 
ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...
ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...
ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...
QADay
 
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
QADay
 
СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...
СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...
СТАНІСЛАВ ПОЛЬСЬКОЙ «QA це спільна справа: залучення БА та девів у процес заб...
QADay
 
РАМЕЛЛА БАСЕНКО - Tехніки тест дизайну в дії: розбір задач та корисні поради...
РАМЕЛЛА БАСЕНКО -  Tехніки тест дизайну в дії: розбір задач та корисні поради...РАМЕЛЛА БАСЕНКО -  Tехніки тест дизайну в дії: розбір задач та корисні поради...
РАМЕЛЛА БАСЕНКО - Tехніки тест дизайну в дії: розбір задач та корисні поради...
QADay
 
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
КАТЕРИНА АБЗЯТОВА - Tехніки тест дизайну в дії: розбір задач та корисні порад...
QADay
 
ЮРІЙ БАЖАН «Один спринт з життя тестувальника»
ЮРІЙ БАЖАН «Один спринт з життя тестувальника»ЮРІЙ БАЖАН «Один спринт з життя тестувальника»
ЮРІЙ БАЖАН «Один спринт з життя тестувальника»
QADay
 
АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»
АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»
АЛЛА ПЕНАЛЬБА «QA automation, the secret weapon that need (a) manual»
QADay
 
ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..
ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..
ЮРІЙ МАЛИЙ «QA метрики в процесі SDLC»..
QADay
 
АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»
АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»
АНДРІЙ ЗАБЛОЦЬКИЙ « Досвід побудови сильної та ефективної QA команди»
QADay
 
РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»
РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»
РІНА УЖЕВКО «Тестування локалізації та терміни в Gamedev»
QADay
 
КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»
КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»
КАТЕРИНА АБЗЯТОВА «Від бар’єрів до мостів: Важливість Accessibility Testing»
QADay
 
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
ЄВГЕН ГАЙДАЙ «Виділена команда автоматизації тестування. Досвід підтримки та ...
QADay
 
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
АНАСТАСІЯ ЧУДОВСЬКА  «Переїзд з моноліта на мікросервіси з точки зору QA: як ...АНАСТАСІЯ ЧУДОВСЬКА  «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
QADay
 
СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»
СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»
СОФІЯ НОВАЧЕНКО «Успішне поєднання QA/BA обовʼязків»
QADay
 
ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...
ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...
ОЛЕНА НІКІТІНА «Глибинне занурення в процеси тестування: від документації до ...
QADay
 
ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...
ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...
ОЛЕСЬ НІКАНЮК «Особливості тестування в міжнародних організаціях: досвід та в...
QADay
 
ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»
ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»
ОЛЕГ ЗАРЕВИЧ «Взаємодії між DevOps і QA»
QADay
 
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
СВЯТ ЛОГІН «Що можна витягнути з мобільних додатків»
QADay
 
ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»
ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»
ГАННА КАПЛУН «Тестування на основі персон: ідея, інструменти, приклади»
QADay
 
НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»
НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»
НАТАЛІЯ КРИВОНІС «Необхідні навички для керування командою»
QADay
 
ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...
ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...
ОКСАНА ВЕРЕТЮК «Effective project quality check або як успішно налагодити про...
QADay
 
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
QADay
 
Ad

Recently uploaded (20)

Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
Celine George
 
SPRING FESTIVITIES - UK AND USA -
SPRING FESTIVITIES - UK AND USA            -SPRING FESTIVITIES - UK AND USA            -
SPRING FESTIVITIES - UK AND USA -
Colégio Santa Teresinha
 
Biophysics Chapter 3 Methods of Studying Macromolecules.pdf
Biophysics Chapter 3 Methods of Studying Macromolecules.pdfBiophysics Chapter 3 Methods of Studying Macromolecules.pdf
Biophysics Chapter 3 Methods of Studying Macromolecules.pdf
PKLI-Institute of Nursing and Allied Health Sciences Lahore , Pakistan.
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Library Association of Ireland
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
One Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learningOne Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learning
momer9505
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACYUNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
DR.PRISCILLA MARY J
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
Operations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdfOperations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdf
Arab Academy for Science, Technology and Maritime Transport
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
Celine George
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Marie Boran Special Collections Librarian Hardiman Library, University of Gal...
Library Association of Ireland
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
One Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learningOne Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learning
momer9505
 
Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025Stein, Hunt, Green letter to Congress April 2025
Stein, Hunt, Green letter to Congress April 2025
Mebane Rash
 
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACYUNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
DR.PRISCILLA MARY J
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 

ГАННА КАПЛУН «noSQL vs SQL: порівняння використання реляційних та нереляційних СУБД в комерційних програмах» Kyiv QADay 2021

  • 1. noSQL vs SQL Comparative usage of noSQL and SQL DBMS in enterprise applications
  • 2. Contents noSQL vs SQL MongoDB in production MongoDB + Oracle in production Measuring performance Querying: examples
  • 3. Intro A few words about me • My name is Hanna Kaplun, I’m a QA Lead at Intellias • Got more than 10 years of experience in testing • and a few as a support specialist, technical writer, Oracle DB developer, BA • Here’s my LinkedIn • Yes, testing is my conscious choice  • Held a few trainings, meetups etc. for various audiences • Wrote a number of articles about testing • and data science using R • Got myself a husband and two kids, 6 yrs and 1 yr correspondingly 
  • 5. SQL vs noSQL: main differences • They are relational, i.e. they can be normalized to store the data efficiently taking less space • There is a pre-defined schema, the structure where the data is stored (DDL portion of SQL) • Data structures to store data are tables with fixed columns • Vertical scaling (buy a larger server) • Multi-record transactions are supported SQL noSQL • They are non-relational, therefore no storage optimization • The schema is dynamic as the data are unstructured • Data structures may vary – Document (JSON, i.e. trees) – Key-value – Wide-column (tables with dynamic columns) – Graph (nodes and edges, dict of lists as a rule) • Horizontal scaling (buy more servers) • Multi-record transactions are usually not supported
  • 6. SQL vs noSQL: advantages and disadvantages • Advantages – Normalization is available to optimize data storage – Transactions to support ACID – ANY data can be stored this way • Disadvantages – Joins and lots of complicated query stuff – May be slow – Additional interfaces to communicate with DBMS from a programming language SQL noSQL • Advantages – Fast – Easy to understand and query as the data are stored naturally and dynamically, no need to restructure them – Easy to query from a programming language • Disadvantages – Possible data duplication – No transactions, so implementing ACID principles may be a challenge (usually it is done via a programming language, not via a DBMS)
  • 7. SQL vs noSQL: DBMS examples • Oracle • MySQL • MS SQL Server • PostgreSQL • SQLite SQL noSQL • Document-based – MongoDB – CouchDB • Key-value based – DynamoDB – Redis • Wide-column based: – Cassandra – HBase • Graph based: – Neo4j – Amazon Neptune
  • 9. The application • The general idea of the application was to sign the documents with electronic signatures and store the signature and the information about the document but not the document itself • The electronic signatures have two- or three-level of verification, depending on the authority issuing the certificate to use for this purpose • The meta-data about the document may or may not contain some information though there are the mandatory fields like document title, size, format • The non-mandatory fields may be the following: category, date of verification, author information (name, surname, the company, job title etc.)
  • 10. The application: conclusions • The data to be stored has tree structure (the certificate issuing authorities, documents and their authors) • The data is dynamic (some of the values may or may not be present, as well as the nodes in the tree) • Initial DBMS proposal: Oracle (the team is familiar with it; any data can be stored in SQL format) • Alternative DBMS proposal: MongoDB (dynamic schema, tree-like data, JSONs as a format to store it in by default)
  • 11. The application: DBMS choice • Advantages – The team knows it, we have a DBA and Oracle DB devs on the team – Everything can be stored in SQL, no matter what the new data we need to store, it will be possible • Disadvantages – The DML queries became complicated almost from scratch when the DB schema was normalized (to BCNF – Boyce-Codd normal form, 3.5NF), it appeared that we needed to write e.g. recursive queries to fetch the info we needed from tree-like data – Vertical scaling was not available while horizontal was (customer’s request) Oracle MongoDB • Advantages – Backend devs could just use it, no need for a DBA or a separate DB dev team – Querying appeared to be easy and fast – We could use MongoDB sharding for horizontal scaling • Disadvantages – Significant data duplication, so sharding has been on demand almost immediately after we deployed to production – Further performance optimization was either exponential or index-based
  • 12. MongoDB + Oracle in production
  • 13. The application: extension • The application we have deployed in previous section had to be expanded: we were now supposed to store the documents themselves and monitor user activity so that the potential data fraud or data loss or other types of attacks focused on the data could be detected • Therefore, it was necessary to store the documents in addition to their metadata (quite a challenge as the formats could vary from .txt to .jpg or .pdf) • We also needed to add extensive logging and add a complicated real-time log analysis system to detect the possible threats and inform the relevant stakeholders about them
  • 14. The application extension: conclusions • There is no need to query the documents, just to store them and make sure they are intact • The logs and the relevant business logic raise a few challenges – The number of records is increasing alarmingly fast as well as the file size to store these along with the increasing number of users (approximately 1 000 000 records per day) – The log records are to be analyzed in the real time, so performance of this business logic implementation is of essence • The alerting mechanism should be fast not only from performance point of view but also reach the responsible person as quickly as possible
  • 15. The application extension: solutions • We decided to store the documents in Oracle (allowing full-functional transactions, batch processing and regular data backups) • The main data architecture challenge of storing the data in relational DBMS and its meta-data in non-relational DBMS is to ensure the proper correspondence between the two (we wrote a correspondence layer for that purpose in a backend programming language) • The logs were stored in MongoDB despite their pre-defined structure (log message type, log message, date and time) – the reason for that were relatively simple queries including date-time and message type and further text analysis implemented as part of the backend source code (i.e. the performance was of essence and good enough for the project needs)
  • 17. Measuring performance: a few hints • In Oracle something like profiling can be used, which was the case for us – a few queries of interest were selected, and we have measured the time it took to get the view with the results on different DB states (empty, average data amount, maximum foreseeable data amount) • Useful links – Measuring DB performance for Oracle – Oracle DB performance tuning guide Oracle MongoDB • MongoDB has a DB profiler and a diagnostic log. It has explain() method to see the indexes applied and the execution stats for the query of interest (which is exactly what we have used) • Useful links – Evaluating operations – Performance in MongoDB – Monitoring
  • 19. Querying: the differences • INSERT INTO users (user_id, age, status) VALUES ('bcd001', 45, 'A’) • SELECT * FROM users • UPDATE users SET status = 'C' WHERE age > 25 • db.start_transaction() cursor.execute(orderInsert, orderData) cursor.execute(stockUpdate, stockData) db.commit() Oracle MongoDB • db.users.insert({ user_id: 'bcd001', age: 45, status: 'A’ }) • db.users.find() • db.users.update( { age: { $gt: 25 } }, { $set: { status: 'C' } }, { multi: true } ) • s.starttransaction() orders.insertone(order, session=s) stock.updateone(item, stockUpdate, session=s) s.committransaction()
  • 20. Querying Stackoverflow: the schema • StackExchange Data Explorer
  • 21. Thinking JSON: Post to User • StackExchange Data Explorer {"id": 3048642, "creationDate": "2010-06-15 20:07:34", "Body": "<p>You can try something like that :</p><..."} ..., "Author": {"id": 12164792, "creationDate": "2019-10-04 13:40:14", "DisplayName": "q8cworu271", ...} }
  • 22. Thinking JSON: User to Post • StackExchange Data Explorer {"id": 12164792, "creationDate": "2019-10-04 13:40:14", "DisplayName": "q8cworu271", ..., "posts": [{"id": 3048642, "creationDate": "2010-06-15 20:07:34", "Body": "<p>You can try something like that :. …}, ...] }
  • 23. Querying Stackoverflow: the examples SQL MongoDB • select top 10 * from posts • select * from users where DisplayName = 'q8cworu271’ • select * from users where DisplayName = 'q8cworu271' AND Reputation = 1 • select top 10 * from users order by CreationDate • db.posts.find().limit(10) • db.users.find( { “DisplayName": "q8cworu271" } ) • db.users.find( { $and: [ {“DisplayName": "q8cworu271"}, { “Reputation”: 1 } ] } ) • db.users.find().sort( { “CreationDate": 1 } ).limit(10)