More SQL and Application Programming
Disk
•
구조
•
Access Time = seek time + rotational delay + transfer time + other
•
Speeding up disk access
◦
organize data by cylinder
◦
use multiple disks
◦
mirror disk
◦
disk scheduling
◦
double buffering
•
Disk failures
File System Structure
•
Fixed length
◦
packing
•
Addressing
◦
Logical → Physical address
◦
Physical → memory address
◦
offset table & structured scheme
•
Variable length
◦
variable size of data
◦
repeating → 2가지 방법
◦
insertion & deletion
Indexing and Hasing
•
Index
◦
Dense
◦
Sparse
◦
Multiple Level
◦
Secondary Index
◦
Inverted Index
•
B-Tree
◦
구조
◦
Look up
◦
Insertion
◦
Deletion
◦
Duplicated keys
◦
Efficiency
•
Hash Table
◦
Static & efficiency
◦
Extensible
◦
Linear Hashing
Query Processing
•
Parse Query
◦
Select logical query plan
◦
select physical query plan
•
Query execution
•
Logical plan selection
◦
Commutative and associative laws
◦
Laws for selection
◦
Laws for projection
◦
Laws about join and products
◦
Laws for duplicate elimination
◦
Laws for grouping and aggregation
◦
Which transformation is good?
•
Physical plan selection
◦
Estimate size of result
▪
Size Parameter
▪
Estimating projection
▪
Estimating selection
▪
Estimating join
▪
Estimating Union, Intersect, difference, duplicate elimination, grouping
▪
Obtating estimate for size parameter
◦
Estimate the number of disk I/O’s
Crash Recovery
•
Transaction
•
Undo logging
•
Redo logging
•
Undo/Redo logging
Concurrency Control
•
Seiral Schedule
•
Serializable schedule
•
Conflict & Conflic-serializable schedule
•
Precedence graph
•
Locking
◦
Two-phase Locking
◦
deadlocks
◦
several mode
◦
update lock
◦
increment lock
•
locking schedule
◦
lock table
◦
warning lock
◦
Tree based locking & Tree protocol
◦
Optimistic locking
More Transaction Manager
•
Concurrency control & recovery
•
Deadlocks
◦
Detection
◦
Prevention
MapReduce
•
NoSQL
◦
MapReduce/Hadoop
◦
Apache Spark
•
NewSQL