NPMG Databases Presentation

21
Databases

Transcript of NPMG Databases Presentation

Page 1: NPMG Databases Presentation

Databases

Page 2: NPMG Databases Presentation

Ognyan Angelov

❖ TUES

❖ FMI

❖ Obecto

❖ Snowboard & Tennis

❖ Tea & Sleeping

Page 3: NPMG Databases Presentation

Databases

❖ Define: “A database is an organised collection of data”

— Wikipedia

❖ In IT we mean DBMS - Database management system

(MySQL, Oracle DB, MongoDB)

Page 4: NPMG Databases Presentation

History of Databases

Page 5: NPMG Databases Presentation

How do we use a DB

❖ Command line interface

❖ Some GUI

❖ Adaptor to another technology (Java, Python, etc)

Page 6: NPMG Databases Presentation

SQL

❖ Structured Query Language

Page 7: NPMG Databases Presentation

Where is the data stored?

❖ Drive

❖ Cloud

❖ Warehouses

❖ In memory

Page 8: NPMG Databases Presentation

Types of DBs

❖ Relational (Last 40+ years)

❖ NoSQL (Last ~15 years)

Page 9: NPMG Databases Presentation

Relational

❖ Schema

❖ Relations

❖ Index

❖ Joins

❖ Transactions

Page 10: NPMG Databases Presentation

ACID

❖ Atomicity

❖ Consistency

❖ Isolation

❖ Durability

Page 11: NPMG Databases Presentation

ACID

❖ Atomicity

❖ Consistency

❖ Isolation

❖ Durability

Page 12: NPMG Databases Presentation

NoSQL

Page 13: NPMG Databases Presentation

NoSQL

Page 14: NPMG Databases Presentation

NoSQL

❖ Documents / Key-Value Pairs / Graphs

❖ Big Data

❖ Horizontally Scalable

Page 15: NPMG Databases Presentation

Example MongoDB

❖ Documents and Collections

❖ Queries

❖ Map Reduce

Page 16: NPMG Databases Presentation

Common Stacks

❖ PHP+ [ORM] + MySQL

❖ Java + Hibernate + MySQL / Oracle / MongoDB

❖ Python / Ruby + ORM + PostgreSQL

❖ NodeJS + MongoDB

Page 17: NPMG Databases Presentation

ORM / ODM

❖ Object Relational Mapper

❖ Object Document Mapper

Page 18: NPMG Databases Presentation

Patterns

❖ Active Record

❖ Data Mapper

Page 19: NPMG Databases Presentation

Interesting Stuff

❖ Column-oriented DBMS

❖ Multiple DB

❖ Spring Data

❖ DDD - Domain Driven Design

❖ CQRS - Command Query Responsibility Segmentation

Page 20: NPMG Databases Presentation

What next?

❖ Books: Martin Fowler - Patterns of Enterprise Application

Architecture

❖ Courses: Coursera/EDX

❖ YouTube Videos (e.g. youtu.be/WovfjprPD_I)

❖ Wiki

Page 21: NPMG Databases Presentation

Thanks :)