๐ฅ๏ธSW Engineer/Distributed System

[ADV_db]Chap 4. Query-processing
# ์ง์ ์ฒ๋ฆฌ ์์ Parsing and Translation ๋ค์ด์จ ์ง์๋ฌธ์์ ๋ฌธ๋ฒ์ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ๊ณ , ๊ด๋ จ ๋ฆด๋ ์ด์ ๋ค์ ํ์ธํ๋ค. DBMS๋ด๋ถ์์ ์๋๊ฐ๋ฅํ ํํ๋ก ๋ฒ์ญํ๊ณ , relational algebra๋ก ๋ณํํ๋ค. View์ฐ์ฐ์ด ํฌํจ๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ, View๋ฅผ ์ ์ํ๋ ๋ชจ๋ ๊ด๊ณ ๋์ ๋ณํ์์ผ๋ก ๋์ฒด๋๋ค. Optimizer ์ฌ๋ฌ relational algebra ์ค์์ ๊ฐ์ฅ ์ข์ Execution plan์ ๊ณ ๋ฅธ๋ค. ๊ณ ๋ฅด๋ ๊ธฐ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ผ์ด ์ ์ฅ๋ ๋ฐฉ์์ด๋ ์ธ๋ฑ์ค์ ์ ๋ฌด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ Cost๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ๋ฎ์ Cost๋ฅผ ๊ฐ์ง Execution plan์ ์ ํํ๋ค. Evaluation ์ฐ์ฐ ์ฒ๋ฆฌ์ ๋ํ ์ฃผ์์ด ๋ฌ๋ฆฐ relational-algebra operation์ e..

[ADV_db]Chap 12-14. ์ฐ์ต๋ฌธ์
# Chap 12 . Physical storage system 12.1 SSD๋ฅผ ์ ์ฅ์ฅ์น๋ก ์ฌ์ฉํ ์๋ ์๊ณ , ์๋๋ฉด ์ ์ฅ์ฅ์น์ ๋ฉ๋ชจ๋ฆฌ๊ฐ์ ๋ฒํผ๋ก ์ฌ์ฉํ ์๋ ์๋ค. ์ด ์ค ๋ง์ฝ real-time์ ์ฌ์ฉ๋๋ SSD๋ผ๋ฉด ์ด๋ค ์ฉ๋๋ก ์ฐ๋๊ฒ ์ ํฉํ ๊น?๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ์์ฒญ ํฐ ๋ฆด๋ ์ด์ ์ด ์๋๋ฐ ์ด ์ค ์ผ๋ถ๋ง ์์ฃผ ์ด์ฉ๋๋ ๊ฒฝ์ฐ๋ผ๋ฉด SSD๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋๊ฒ ์ข์์ง ์ค๋ช ํ์์ค Real-time์ ๊ฒฝ์ฐ ์ ์ฅ์ฅ์น์ ์ฉ๋๋ก ์ฐ๋ ๊ฒ ๋ ์ฑ๋ฅ์ ๋ณด์ฅํ ์ ์๋ค. ํฐ ๋ฆด๋ ์ด์ ์ ๊ฒฝ์ฐ์๋ ์์ฃผ ์ด์ฉํ๋ ๋ถ๋ถ์ ์บ์๋ ๋ฒํผ์ ํํ๋ก SSD๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. 12.2 ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์คํฌ์์ ์์ชฝ Track์ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ๊นฅ์ชฝ Track๋ง ์ฌ์ฉํ๋๋ฐ ์ด๋ฐ ๊ฒฝ์ฐ์ ์ฅ์ ์ ๋ํด ์ค๋ช ํ์์ค. ์ด์ฐจํผ ์์ชฝ์ด๋ ๋ฐ๊นฅ์ชฝ์ด๋..

[ADV_db]Chap 3. Hash index
# Static Hashing Hashing ๋๋ถ๋ถ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ๋์ง๋ง, ํ์ผ์ ๋ ์ฝ๋๋ฅผ ์ ๋ฆฌํ ๋๋ ์ฌ์ฉ๋๋ค. ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค ๋๋ ๋ฒ์ผ์ ๋ ์ฝ๋๋ค์ ์ธ๋ฑ์ค๋ค์ด ๋ค์ด์์ง๋ง, ํ์ผ์ ๊ด๋ฆฌํ ๋๋ ์ค์ ๋ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ค. Hash Index๋ ํด์ ํจ์๋ฅผ ํต๊ณผํด์ ๋์ค๋ ๊ฐ์ Search key๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. Bucket์ด๋ผ๋ ๋์คํฌ ๋ธ๋ก์ ๊ฐ์ ํด์ ๊ฐ์ ๊ฐ์ง๋ ์ฌ๋ฌ ์ํธ๋ฆฌ๊ฐ ์ ์ฅ๋์ด ์๋ค. ๋ง์ฝ Bucket์ Index๊ฐ ๊ณ ์ ๋์ด ์๋ค๋ฉด Static Hashing ๊ทธ๋ ์ง ์๋ค๋ฉด, Dynamic Hashing์ด๋ผ๊ณ ํ๋ค. ๋ค๋ฅธ ์์น ํค ๊ฐ์ ๊ฐ์ง๋๋ผ๋ ํด์ ํจ์๋ฅผ ํต๊ณผํ์ ๋ ๊ฐ์ด ๊ฐ๋ค๋ฉด ๊ฐ์ Bucket์ ์์นํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ํธ๋ฆฌ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์๋ ํด๋น B..

[ADV_db]Chap 3. Indexing - B+Tree ์ถ๊ฐ๋ด์ฉ๋ค
# B+tree Extensions B+Tree File Organization ๋ฆฌํ ๋ ธ๋์ ํฌ์ธํฐ๊ฐ ์๋ ๋ ์ฝ๋ ์์ฒด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์ ์ฝ์ /์ญ์ /๊ฐฑ์ ์ด ์ผ์ด๋๋๋ผ๋ ํญ์ Clustered๋ ์ํ๋ฅผ ์ ์งํ๊ฒ ํด์ค๋ค. ๋ ์ฝ๋๊ฐ ํฌ์ธํฐ๋ณด๋ค ์ฌ์ด์ฆ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ๋ฆฌํ ๋ ธ๋์ ๋ค์ด๊ฐ๋ ๋ ์ฝ๋์ ์ต๋ ์๋ ๋ฆฌํ ๋ ธ๋๊ฐ ์๋ ๋ ธ๋๋ค์ ํฌ์ธํฐ ์๋ณด๋ค ์์ ์ ๋ฐ์ ์๋ค. ๋ฐ๋ผ์ ๊ณต๊ฐ ํ์ฉ๋๊ฐ ์ค์ํ๋ฐ ์ด๋ฅผ ์ํด์ ๊ฐ๋ฅํ ๋ง์ Siblings๋ฅผ Split/Merge์ ํฌํจ์ํค๊ฒ ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ m๊ฐ์ sibling๋ ธ๋๊ฐ ์ฌ๋ถ๋ฐฐ์ ์ฐธ์ฌํ๋ค๋ฉด ๊ฐ ๋ ธ๋๋ง๋ค ์ต์⌊(m-1)n/m⌋๊ฐ์ ์ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ฆฌํ ๋ ธ๋์ ์๋ ๋ ์ฝ๋๊ฐ ๋ ธ๋ ์ฌ์ด์ฆ๋ณด๋ค ์ปค์ ธ์ Split์ ํด์ผํ๋ค๋ฉด, ๋ ์ฝ๋๋ฅผ ์ด๋ ์ํค๋ ๋น์ฉ์..

[ADV_db]Chap 3. Indexing - B+tree ๊ฒ์,์ฝ์ ,์ญ์
# B+Tree ๊ฒ์ ๋ฃจํธ ๋ ธ๋๋ถํฐ ๊ฒ์ํ๋ key๊ฐ์ธ v๋ณด๋ค ํฐ key๊ฐ์ด ๋์ฌ ๋๊น์ง ๊ฒ์ํ๋ค ๊ฐ์ key๊ฐ์ ๊ฐ์ง๋ฉด, P(i+1)๋ก ์๋๋ฉด P(i)๋ก ๊ฐ์ ๋ฆฌํ ๋ ธ๋๊ฐ ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค. ํ๋์ ๋ ธ๋๋ ๋ณดํต ํ๋์ ๋์คํฌ ๋ธ๋ก ์ฌ์ด์ฆ์ธ 4kb๋ก ํ๋ค. ๋ฐ๋ผ์ ๋ณดํต ํ๋์ index๋น ํฌ๊ธฐ๋ 40byte๋ก ์ ํ๊ณ Fanout n์ 100์ ๋๋ก ํ๋ ๊ฒ ๋ณดํต์ด๋ค. ๊ทธ๋ผ key๊ฐ ๋ฐฑ๋ง๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์ ๋, log50(1,000,000) = 4 ์ด๋ฏ๋ก ๊ฒ์ํ ๋๋ง๋ค 4๊ฐ์ ๋ ธ๋๋ฅผ ์ง๋๋ค. Composite key(๋ณตํฉํค) ๋ง์ฝ key๊ฐ primary key๊ฐ ์๋ ๊ฒฝ์ฐ, ์ ์ผ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ด๋ ต๋ค. ์ด๋ฐ ๊ฒฝ์ฐ, (ai , Ap)์์ผ๋ก ๋ณตํฉํค๋ฅผ ๋ง๋ค์ด ์ ์ผ์ฑ์ ๋ณด์ฅํ ์ ์๋ค. ํ์ง๋ง, ์ด๋ฌ๋ฉด ๋ ๋ง์ I..

[ADV_db]Chap 3. Indexing - B+Tree ์๊ฐ
# B+Tree B+Tree vs Sequential index B+Tree Sequential index ์ฅ์ 1. ์ฝ์ ,์ญ์ ๊ณผ์ ์์ ์์์ ์ฌ๊ตฌ์ฑ์ด ์ผ์ด๋๋ค. 2. ์ฑ๋ฅ ์ ์ง๋ฅผ ์ํ ์ ์ฒด ํ์ผ ์ฌ๊ตฌ์ฑ์ด ํ์ํ์ง ์๋ค. 1. ์ฝ๋ค ใ ๋จ์ ์ฝ์ ,์ญ์ ๊ณผ์ ์ด ์ข ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ํธ๋ฆฌ๋ฅผ ์ ์ฅํ ์ถ๊ฐ ๊ณต๊ฐ์ด ํ์ํ๋ค. 1. Overflow Block๋๋ฌธ์ ํ์ผ์ด ์ปค์ง์๋ก ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค 2. ์ฃผ๊ธฐ์ ์ผ๋ก ์ฌ์ ๋น๊ฐ ์๊ตฌ๋๋ค. B+Tree ํน์ง B+tree์์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ฆฌํ ๋ ธ๋์ ๋ค์ด์๊ฑฐ๋, ๊ทธ ์ฃผ์๊ฐ ์ ์ฅ๋์ด ์๋ค. ๋ฐ๋ผ์ ๋ฆฌํ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ ธ๋๋ฅผ "์ธ๋ฑ์ค ๋ ธ๋"๋ผ ๋ถ๋ฅด๊ณ , ๋ฆฌํ ๋ ธ๋๋ฅผ "๋ฐ์ดํฐ ๋ ธ๋"๋ผ ๋ถ๋ฅธ๋ค. ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ , ์์๋๋ก ์ ๋ ฌ๋์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ..