npmg databases presentation
TRANSCRIPT
Databases
Ognyan Angelov
❖ TUES
❖ FMI
❖ Obecto
❖ Snowboard & Tennis
❖ Tea & Sleeping
Databases
❖ Define: “A database is an organised collection of data”
— Wikipedia
❖ In IT we mean DBMS - Database management system
(MySQL, Oracle DB, MongoDB)
History of Databases
How do we use a DB
❖ Command line interface
❖ Some GUI
❖ Adaptor to another technology (Java, Python, etc)
SQL
❖ Structured Query Language
Where is the data stored?
❖ Drive
❖ Cloud
❖ Warehouses
❖ In memory
Types of DBs
❖ Relational (Last 40+ years)
❖ NoSQL (Last ~15 years)
Relational
❖ Schema
❖ Relations
❖ Index
❖ Joins
❖ Transactions
ACID
❖ Atomicity
❖ Consistency
❖ Isolation
❖ Durability
ACID
❖ Atomicity
❖ Consistency
❖ Isolation
❖ Durability
NoSQL
NoSQL
NoSQL
❖ Documents / Key-Value Pairs / Graphs
❖ Big Data
❖ Horizontally Scalable
Example MongoDB
❖ Documents and Collections
❖ Queries
❖ Map Reduce
Common Stacks
❖ PHP+ [ORM] + MySQL
❖ Java + Hibernate + MySQL / Oracle / MongoDB
❖ Python / Ruby + ORM + PostgreSQL
❖ NodeJS + MongoDB
ORM / ODM
❖ Object Relational Mapper
❖ Object Document Mapper
Patterns
❖ Active Record
❖ Data Mapper
Interesting Stuff
❖ Column-oriented DBMS
❖ Multiple DB
❖ Spring Data
❖ DDD - Domain Driven Design
❖ CQRS - Command Query Responsibility Segmentation
What next?
❖ Books: Martin Fowler - Patterns of Enterprise Application
Architecture
❖ Courses: Coursera/EDX
❖ YouTube Videos (e.g. youtu.be/WovfjprPD_I)
❖ Wiki
Thanks :)