Database Fundamental
@dylanninin
What is a Database?
an organized collection of data.
Database
What is a DBMS?
a software application.
DataBase Management System
History
Let’s talk about RDBMS
Database Models
Relational Model
Relational Model
Relational Relationships
SQL
• SQL: Structure Query Language
• The Language for RDBMS
• Define/Manipulate/Control data
Relational Algebra
• The Set-theoretic formulation of RDBMS
• The Theory/Mathematics of SQL
Relational Algebra
SQL
Twitter as an example
with SQLite
DDL: Data Definition Language
DDL: CREATE
DDL: ALTER
DDL: TRUNCATE
• deletes all data from a table in a very fast way
• deletes the data inside the table and not the table itself
• usually implies a subsequent COMMIT operation, i.e.
• cannot be rolled back
DDL: DROP
The Data Types
DDL: Data Manipulation Language
DML: SELECT
expr
DML: SELECT join
DML: SELECT Phases
DML: INSERT
DML: UPDATE
DML: DELETE
DML: MERGE
• is used to combine the data of multiple tables
• combines the INSERT and UPDATE elements
• is defined in the SQL:2003 standard
• some databases provided similar functionality via different
syntax, sometimes called "upsert"
TCL: Transaction Control Language
TCL: Transaction
TCL: COMMIT
TCL: ROLLBACK
TCL: SAVEPOINT
DCL: Data Control Language
DCL: Control
• The operations for which privileges may be granted to or
revoked from a user or role apply to both the DDL/DML
• may include CONNECT, SELECT, INSERT, UPDATE,
DELETE, EXECUTE, and USAGE
• SQLite does not have any DCL commands as it does not
have usernames or logins. Instead, SQLite depends on file
system permissions to define who can open and access a
database
DCL: GRANT
by Oracle
DCL: REVOKE
by Oracle
Functions
• definition: function_name(parameter) —> output
• usage: SELECT function_name(parameter);
Aggregrations
avg(X) returns the average value of all non-NULL X within a group
count(X)
returns a count of the number of times that X is not NULL in
a group
max(X) returns the maximum value of all values in the group
min(X)
returns the minimum non-NULL value of all values in the
group
sum(X) return sum of all non-NULL values in the group
Constraints
Constraints: Foreign Key
Constraints: Indexed Column
Indexing
Triggers
Views
Modeling
Entity Relation Diagram
ERD to Table
Normalization
Advanced Topics
Transaction
A
balance: $ 1000
B
balance: $ 1000
Transfer 100$ from A to B
Bank withdraw/deposit
Transactions guaranteed by ACID
ACID Properties
by locking + logging
by runtime checking
by locking
by logging + recovery
ACID Implements
Concurrency
A
balance: $ 1000
B
balance: $ 1000
1) A transfer $100 to B

2) C transfer $1 000 to A
C
balance: $ 1 000 000
Transaction states
Two Phase Locking
Two Phase Locking
Dead Lock
Optimistic Concurrency Control
Multi Version Concurrency Control
Isolation Level
Data Structures + Algorithms
Common Data Structure Operations
Search: SELECT
Search: LIKE
Sort: ORDER BY
Algorithms: B+ Tree
B+ Tree
B+ Tree Example
B+ Tree Index Example
B+ Tree in Database
DBMS
a software application.
DataBase Management System
What are the “Kernel” of any DBMS?
“Kernel”
Client Manager
Query Manager
Data Manager
Cache Manager
Transaction Manager
Log Manager
Simplified ARIES logs
Simplified Log Writing Process
Tuning
SQL Tuning Hierarchy
SQL Phases
Scaling
Vertical/Horizontal Scaling
Scaling Out Cube
Partitioning
Master Slave
Replica Set
Distributed
CAP
Paxos Protocol
Raft Protocol
Reference
• https://en.wikipedia.org/wiki/SQL
• https://en.wikipedia.org/wiki/Database
• https://en.wikipedia.org/wiki/ACID
• https://www.sqlite.org/lang.html
• https://en.wikipedia.org/wiki/Join_(SQL)
• http://coding-geek.com/how-databases-work/
• http://blog.dancrisan.com/a-tiny-intro-to-database-systems
• http://berb.github.io/diploma-thesis/original/060_index.html
• https://en.wikipedia.org/wiki/CAP_theorem
• https://github.com/numetriclabz/awesome-db
• https://github.com/rxin/db-readings
• http://bigocheatsheet.com/
• https://en.wikipedia.org/wiki/BNF
• https://dylanninin.com/blog/2013/10/26/oracle_dba.html

Database Fundamental