SlideShare a Scribd company logo
1 of 22
Databases
Masters Academy, 2018
Relational DB
Data normalization
Read more
Relation DB structure
Primary key Primary key
Primary key
Foreign key
Foreign key Foreign key
SQL - Structured Query Language
CREATE TABLE student(id INT, first_name VARCHAR(25), last_name VARCHAR(25),
email VARCHAR(100), PRIMARY KEY (id));
INSERT INTO student VALUES (1, 'John', 'Peterson', 'jpeterson@email');
SELECT * FROM student;
SQL WIKI tutorial
SQL
SELECT * FROM student s JOIN student_course sc ON s.id = sc.student_id JOIN
course c ON sc.course_id = c.id WHERE c.mentor_id = 3;
SELECT s.id, s.first_name, s.last_name, c.id, c.title FROM student s JOIN
student_course sc ON s.id = sc.student_id JOIN course c ON sc.course_id = c.id
WHERE c.mentor_id = 3 ORDER BY s.id;
Indexes
Індекс (англ. index) — об'єкт бази даних, що створений з метою підвищення ефективності виконання запитів. Таблиці в базі
даних можуть мати велику кількість рядків, які зберігаються у довільному порядку, і їх пошук за заданим значенням шляхом
послідовного перегляду таблиці рядок за рядком може займати багато часу. Індекс формується зі значень одного чи кількох
стовпчиків таблиці і вказівників на відповідні рядки таблиці і, таким чином, дозволяє знаходити потрібний рядок за заданим
значенням. Прискорення роботи з використанням індексів досягається в першу чергу за рахунок того, що індекс має структуру,
що оптимізована для пошуку — наприклад, збалансованого дерева. Деякі СКБД розширюють можливості індексів введенням
можливості створення індексів за виразами. Наприклад, індекс може бути створений за виразом upper(last_name) і відповідно
буде зберігати посилання, ключем яких будуть значення поля last_name в верхньому регістрі. Крім цього, індекси можуть бути
оголошенні як унікальні так і не унікальні. Унікальний індекс реалізує обмеження цілісності на таблиці, виключаючи можливість
вставки значень, що повторюються.
Transactions
Транза́кція (англ. transaction) — група послідовних операцій з базою даних, яка є логічною одиницею роботи з даними.
Транзакція може бути виконана або цілком і успішно, дотримуючись цілісності даних і незалежно від інших транзакцій, що
йдуть паралельно, або не виконана зовсім, і тоді вона не може справити ніякого ефекту. Транзакції оброблюються
транзакційними системами, в процесі роботи яких створюється історія транзакцій. Транзакції з базою даних використовуються
для забезпечення прінципів ACID:
● Atomicity (атомарність) - гарантує, що жодна транзакція не буде виконана частково. Будуть або виконані всі операції,
що беруть участь у транзакції, або не виконано жодної. Якщо протягом роботи однієї з операцій виникне помилка і
операцію буде відхилено, то будуть відхилені також усі інші зміни, здійснені в межах транзакції.
● Consistency (узгодженість) - Відповідно до вимоги узгодженості (англ. Consistency), система повинна перебувати в
узгодженому, несуперечливому стані до початку дії транзакції і по її завершенню. При цьому вона може перебувати в
неузгодженому стані протягом виконання транзакції, проте ця неузгодженість завдяки іншим властивостям —
атомарності та ізольованості — не буде видимою за межами транзакції.
● Isolation (ізольованість) - означає, що жодні проміжні зміни не будуть видимі за межами транзакції аж до її завершення.
Питання ізоляції стає актуальним при одночасній роботі багатьох транзакцій з одними й тими самими даними. Згідно з
цією вимогою, якщо дві транзакції намагатимуться змінити одні й ті самі дані, то одну з них буде відхилено або
призупинено до завершення другої.
● Durability (стійкість) - гарантує, що незалежно від інших проблем після відновлення працездатності системи результати
завершених транзакцій будуть збережені. Іншими словами, якщо користувач отримав повідомлення про успішне
завершення транзакції, то він може бути впевнений, що дані будуть збережені та відновлені у випадку збоїв.
Pros
● Relational databases are well-documented
and mature technologies, and RDBMS are
sold and maintained by a number of
established corporations.
● SQL standards are well-defined and
commonly accepted.
● A large pool of qualified developers have
experience with SQL and RDBMS.
● All RDBMS are ACID-compliant, meaning
they satisfy the requirements of Atomicity,
Consistency, Isolation, and Durability.
● RDBMSes don’t work well — or at all — with
unstructured or semi-structured data, due to
schema and type constraints. This makes them
ill-suited for large analytics or IoT event loads.
● The tables in your relational database will not
necessarily map one-to-one with an object or
class representing the same data.
● When migrating one RDBMS to another,
schemas and types must generally be identical
between source and destination tables for
migration to work (schema constraint). For many
of the same reasons, extremely complex datasets
or those containing variable-length records are
generally difficult to handle with an RDBMS
schema.
Cons
Non relational (noSQL) DB
Key-Value Stores
such as Redis and Amazon DynamoDB, are extremely simple database management systems that store only key-value
pairs and provide basic functionality for retrieving the value associated with a known key.
The simplicity of key-value stores makes these database management systems particularly well-suited to embedded
databases, where the stored data is not particularly complex and speed is of paramount importance.
Column Stores
such as Cassandra, Scylla, and HBase, are schema-agnostic systems that enable users to store data in column families or tables, a
single row of which can be thought of as a record — a multi-dimensional key-value store.
These solutions are designed with the goal of scaling well enough to manage petabytes of data across as many as thousands of
commodity servers in a massive, distributed system.
Although technically schema-free, wide column stores like Scylla and Cassandra use an SQL variant called CQL for data definition and
manipulation, making them straightforward to those already familiar with RDBMS.
Document Stores
including MongoDB and Couchbase, are schema-free
systems that store data in the form of JSON documents.
Document stores are similar to key-value or wide column
stores, but the document name is the key and the contents of
the document, whatever they are, are the value.
In a document store, individual records do not require a
uniform structure, can contain many different value types, and
can be nested. This flexibility makes them particularly well-
suited to manage semi-structured data across distributed
systems.
Graph Databases
such as Neo4J and Datastax Enterprise Graph, represent
data as a network of related nodes or objects in order to
facilitate data visualizations and graph analytics.
A node or object in a graph database contains free-form data
that is connected by relationships and grouped according to
labels. Graph-Oriented Database Management Systems
(DBMS) software is designed with an emphasis on illustrating
connections between data points.
As a result, graph databases are typically used when analysis
of the relationships between heterogeneous data points is the
end goal of the system, such as in fraud prevention,
advanced enterprise operations, or Facebook’s original
friends graph.
Search engines
such as Elasticsearch, Splunk, and Solr, store data using schema-free JSON documents. They are similar to document stores, but with
a greater emphasis on making your unstructured or semi-structured data easily accessible via text-based searches with strings of
varying complexity.
MongoDB
MongoDB uses JSON-like documents with schemata. MongoDB is developed by MongoDB Inc., and is published under a combination
of the Server Side Public License and the Apache License.
Read more
Insert
db.products.insert( { item: "card", qty: 15 } );
{ "_id" : ObjectId("5063114bd386d8fadbd6b004"), "item" : "card", "qty" : 15 }
Find
db.products.find( { qty: { $gt: 25 } } );
Databases

More Related Content

Similar to Databases

Обробка надвеликих масивів даних
Обробка надвеликих масивів данихОбробка надвеликих масивів даних
Обробка надвеликих масивів данихssuser8004f6
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basicseleksdev
 
реферат з інформатики
реферат з інформатикиреферат з інформатики
реферат з інформатикиTanyushka Bora-Bora
 
Lecture 101 - Intro to databases
Lecture 101 - Intro to databasesLecture 101 - Intro to databases
Lecture 101 - Intro to databasesAndrii Kopp
 
Design Structure Matrix (DSM) for the Complex systems (UKR)
Design Structure Matrix (DSM) for the Complex systems (UKR)Design Structure Matrix (DSM) for the Complex systems (UKR)
Design Structure Matrix (DSM) for the Complex systems (UKR)Sergiy Potapov
 
Darabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentationDarabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentationCharlie662408
 
Тема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих данихТема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих данихAndriy Gorbal
 
Система електронного документообігу
Система електронного документообігуСистема електронного документообігу
Система електронного документообігуЮля Староста
 
Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.Наталья Коба
 
поняття моделі даних
поняття моделі данихпоняття моделі даних
поняття моделі данихJulia Stepsnuk
 
ЛК01. Вступ до SAS Enterprise Miner.ppt
ЛК01. Вступ до SAS Enterprise Miner.pptЛК01. Вступ до SAS Enterprise Miner.ppt
ЛК01. Вступ до SAS Enterprise Miner.pptKostiantyn Hrytsenko
 
Реляційна модель БД
Реляційна модель БДРеляційна модель БД
Реляційна модель БДpogromskaya
 
Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...Nikolay Shaygorodskiy
 
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
Тема 6. Системи  зберігання  даних.  Віртуалізація  сховища  данихТема 6. Системи  зберігання  даних.  Віртуалізація  сховища  даних
Тема 6. Системи зберігання даних. Віртуалізація сховища данихOleg Nazarevych
 
Data Structures
Data StructuresData Structures
Data Structureseleksdev
 

Similar to Databases (20)

Обробка надвеликих масивів даних
Обробка надвеликих масивів данихОбробка надвеликих масивів даних
Обробка надвеликих масивів даних
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
 
реферат з інформатики
реферат з інформатикиреферат з інформатики
реферат з інформатики
 
Lecture 101 - Intro to databases
Lecture 101 - Intro to databasesLecture 101 - Intro to databases
Lecture 101 - Intro to databases
 
DAL
DALDAL
DAL
 
Design Structure Matrix (DSM) for the Complex systems (UKR)
Design Structure Matrix (DSM) for the Complex systems (UKR)Design Structure Matrix (DSM) for the Complex systems (UKR)
Design Structure Matrix (DSM) for the Complex systems (UKR)
 
Darabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentationDarabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentation
 
Тема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих данихТема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих даних
 
Система електронного документообігу
Система електронного документообігуСистема електронного документообігу
Система електронного документообігу
 
Бази даних.pptx
Бази даних.pptxБази даних.pptx
Бази даних.pptx
 
Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.
 
поняття моделі даних
поняття моделі данихпоняття моделі даних
поняття моделі даних
 
ЛК01. Вступ до SAS Enterprise Miner.ppt
ЛК01. Вступ до SAS Enterprise Miner.pptЛК01. Вступ до SAS Enterprise Miner.ppt
ЛК01. Вступ до SAS Enterprise Miner.ppt
 
Реляційна модель БД
Реляційна модель БДРеляційна модель БД
Реляційна модель БД
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...
 
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
Тема 6. Системи  зберігання  даних.  Віртуалізація  сховища  данихТема 6. Системи  зберігання  даних.  Віртуалізація  сховища  даних
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
 
Dbase
DbaseDbase
Dbase
 
Data Structures
Data StructuresData Structures
Data Structures
 
Bd rozdil 1
Bd rozdil 1Bd rozdil 1
Bd rozdil 1
 

More from Masters Academy (20)

Ruby Exceptions
Ruby ExceptionsRuby Exceptions
Ruby Exceptions
 
API
APIAPI
API
 
Basic Net technologies
Basic Net technologiesBasic Net technologies
Basic Net technologies
 
Environment
EnvironmentEnvironment
Environment
 
Frontend
FrontendFrontend
Frontend
 
Development Methodologies
Development MethodologiesDevelopment Methodologies
Development Methodologies
 
Object-Oriented Programming
Object-Oriented ProgrammingObject-Oriented Programming
Object-Oriented Programming
 
Testing
TestingTesting
Testing
 
Processing
ProcessingProcessing
Processing
 
Serialization
SerializationSerialization
Serialization
 
Serverless
ServerlessServerless
Serverless
 
Data Types
Data TypesData Types
Data Types
 
How to be up todate
How to be up todateHow to be up todate
How to be up todate
 
Call stack, event loop and async programming
Call stack, event loop and async programmingCall stack, event loop and async programming
Call stack, event loop and async programming
 
Html, css, js
Html, css, jsHtml, css, js
Html, css, js
 
Server architecture
Server architectureServer architecture
Server architecture
 
Serialization
SerializationSerialization
Serialization
 
Data types
Data typesData types
Data types
 
Net Technologies
Net TechnologiesNet Technologies
Net Technologies
 
Net Technologies
Net TechnologiesNet Technologies
Net Technologies
 

Recently uploaded

О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxvitalina6709
 
освітня програма 2023-2024 .
освітня програма  2023-2024                    .освітня програма  2023-2024                    .
освітня програма 2023-2024 .zaskalko111
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 

Recently uploaded (7)

Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptx
 
освітня програма 2023-2024 .
освітня програма  2023-2024                    .освітня програма  2023-2024                    .
освітня програма 2023-2024 .
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 

Databases

  • 2.
  • 3.
  • 7. Primary key Primary key Primary key Foreign key Foreign key Foreign key
  • 8. SQL - Structured Query Language CREATE TABLE student(id INT, first_name VARCHAR(25), last_name VARCHAR(25), email VARCHAR(100), PRIMARY KEY (id)); INSERT INTO student VALUES (1, 'John', 'Peterson', 'jpeterson@email'); SELECT * FROM student; SQL WIKI tutorial
  • 9. SQL SELECT * FROM student s JOIN student_course sc ON s.id = sc.student_id JOIN course c ON sc.course_id = c.id WHERE c.mentor_id = 3; SELECT s.id, s.first_name, s.last_name, c.id, c.title FROM student s JOIN student_course sc ON s.id = sc.student_id JOIN course c ON sc.course_id = c.id WHERE c.mentor_id = 3 ORDER BY s.id;
  • 10.
  • 11. Indexes Індекс (англ. index) — об'єкт бази даних, що створений з метою підвищення ефективності виконання запитів. Таблиці в базі даних можуть мати велику кількість рядків, які зберігаються у довільному порядку, і їх пошук за заданим значенням шляхом послідовного перегляду таблиці рядок за рядком може займати багато часу. Індекс формується зі значень одного чи кількох стовпчиків таблиці і вказівників на відповідні рядки таблиці і, таким чином, дозволяє знаходити потрібний рядок за заданим значенням. Прискорення роботи з використанням індексів досягається в першу чергу за рахунок того, що індекс має структуру, що оптимізована для пошуку — наприклад, збалансованого дерева. Деякі СКБД розширюють можливості індексів введенням можливості створення індексів за виразами. Наприклад, індекс може бути створений за виразом upper(last_name) і відповідно буде зберігати посилання, ключем яких будуть значення поля last_name в верхньому регістрі. Крім цього, індекси можуть бути оголошенні як унікальні так і не унікальні. Унікальний індекс реалізує обмеження цілісності на таблиці, виключаючи можливість вставки значень, що повторюються.
  • 12. Transactions Транза́кція (англ. transaction) — група послідовних операцій з базою даних, яка є логічною одиницею роботи з даними. Транзакція може бути виконана або цілком і успішно, дотримуючись цілісності даних і незалежно від інших транзакцій, що йдуть паралельно, або не виконана зовсім, і тоді вона не може справити ніякого ефекту. Транзакції оброблюються транзакційними системами, в процесі роботи яких створюється історія транзакцій. Транзакції з базою даних використовуються для забезпечення прінципів ACID: ● Atomicity (атомарність) - гарантує, що жодна транзакція не буде виконана частково. Будуть або виконані всі операції, що беруть участь у транзакції, або не виконано жодної. Якщо протягом роботи однієї з операцій виникне помилка і операцію буде відхилено, то будуть відхилені також усі інші зміни, здійснені в межах транзакції. ● Consistency (узгодженість) - Відповідно до вимоги узгодженості (англ. Consistency), система повинна перебувати в узгодженому, несуперечливому стані до початку дії транзакції і по її завершенню. При цьому вона може перебувати в неузгодженому стані протягом виконання транзакції, проте ця неузгодженість завдяки іншим властивостям — атомарності та ізольованості — не буде видимою за межами транзакції. ● Isolation (ізольованість) - означає, що жодні проміжні зміни не будуть видимі за межами транзакції аж до її завершення. Питання ізоляції стає актуальним при одночасній роботі багатьох транзакцій з одними й тими самими даними. Згідно з цією вимогою, якщо дві транзакції намагатимуться змінити одні й ті самі дані, то одну з них буде відхилено або призупинено до завершення другої. ● Durability (стійкість) - гарантує, що незалежно від інших проблем після відновлення працездатності системи результати завершених транзакцій будуть збережені. Іншими словами, якщо користувач отримав повідомлення про успішне завершення транзакції, то він може бути впевнений, що дані будуть збережені та відновлені у випадку збоїв.
  • 13. Pros ● Relational databases are well-documented and mature technologies, and RDBMS are sold and maintained by a number of established corporations. ● SQL standards are well-defined and commonly accepted. ● A large pool of qualified developers have experience with SQL and RDBMS. ● All RDBMS are ACID-compliant, meaning they satisfy the requirements of Atomicity, Consistency, Isolation, and Durability. ● RDBMSes don’t work well — or at all — with unstructured or semi-structured data, due to schema and type constraints. This makes them ill-suited for large analytics or IoT event loads. ● The tables in your relational database will not necessarily map one-to-one with an object or class representing the same data. ● When migrating one RDBMS to another, schemas and types must generally be identical between source and destination tables for migration to work (schema constraint). For many of the same reasons, extremely complex datasets or those containing variable-length records are generally difficult to handle with an RDBMS schema. Cons
  • 15. Key-Value Stores such as Redis and Amazon DynamoDB, are extremely simple database management systems that store only key-value pairs and provide basic functionality for retrieving the value associated with a known key. The simplicity of key-value stores makes these database management systems particularly well-suited to embedded databases, where the stored data is not particularly complex and speed is of paramount importance.
  • 16. Column Stores such as Cassandra, Scylla, and HBase, are schema-agnostic systems that enable users to store data in column families or tables, a single row of which can be thought of as a record — a multi-dimensional key-value store. These solutions are designed with the goal of scaling well enough to manage petabytes of data across as many as thousands of commodity servers in a massive, distributed system. Although technically schema-free, wide column stores like Scylla and Cassandra use an SQL variant called CQL for data definition and manipulation, making them straightforward to those already familiar with RDBMS.
  • 17. Document Stores including MongoDB and Couchbase, are schema-free systems that store data in the form of JSON documents. Document stores are similar to key-value or wide column stores, but the document name is the key and the contents of the document, whatever they are, are the value. In a document store, individual records do not require a uniform structure, can contain many different value types, and can be nested. This flexibility makes them particularly well- suited to manage semi-structured data across distributed systems.
  • 18. Graph Databases such as Neo4J and Datastax Enterprise Graph, represent data as a network of related nodes or objects in order to facilitate data visualizations and graph analytics. A node or object in a graph database contains free-form data that is connected by relationships and grouped according to labels. Graph-Oriented Database Management Systems (DBMS) software is designed with an emphasis on illustrating connections between data points. As a result, graph databases are typically used when analysis of the relationships between heterogeneous data points is the end goal of the system, such as in fraud prevention, advanced enterprise operations, or Facebook’s original friends graph.
  • 19. Search engines such as Elasticsearch, Splunk, and Solr, store data using schema-free JSON documents. They are similar to document stores, but with a greater emphasis on making your unstructured or semi-structured data easily accessible via text-based searches with strings of varying complexity.
  • 20. MongoDB MongoDB uses JSON-like documents with schemata. MongoDB is developed by MongoDB Inc., and is published under a combination of the Server Side Public License and the Apache License. Read more
  • 21. Insert db.products.insert( { item: "card", qty: 15 } ); { "_id" : ObjectId("5063114bd386d8fadbd6b004"), "item" : "card", "qty" : 15 } Find db.products.find( { qty: { $gt: 25 } } );