๐Ÿ–ฅ๏ธSW Engineer

    [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์—์„œ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ์— ๋“ค์–ด์žˆ๊ฑฐ๋‚˜, ๊ทธ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋…ธ๋“œ๋ฅผ "์ธ๋ฑ์Šค ๋…ธ๋“œ"๋ผ ๋ถ€๋ฅด๊ณ , ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ "๋ฐ์ดํ„ฐ ๋…ธ๋“œ"๋ผ ๋ถ€๋ฅธ๋‹ค. ๋ชจ๋“  ๋ฆฌํ”„ ๋…ธ๋“œ๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ , ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ..

    [ADV_db]Chap 3. Indexing

    # Basic Concept Index File(Index entries) ์ด๋Ÿฐ Index File์€ ๋” ๋น ๋ฅธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฒ€์ƒ‰ ํ‚ค์™€ ํฌ์ธํ„ฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์›๋ณธ ํŒŒ์ผ๋ณด๋‹ค๋Š” ์šฉ๋Ÿ‰์ด ์ž‘๋‹ค. ๋˜ํ•œ, ์—ฌ๋Ÿฌ ๊ฒ€์ƒ‰ ํ‚ค๋งˆ๋‹ค ์—ฌ๋Ÿฌ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. Search Key ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” Search Key๋Š” ๊ทธ๋™์•ˆ ๋ฐฐ์› ๋˜ primary key,Candidate key,super key์™€๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค ํŒŒ์ผ์—๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ฒ€์ƒ‰ ํ‚ค์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฑ…์„ ๊ณ ๋ฅผ ๋•Œ ์ž‘๊ฐ€,์ถœํŒ์‚ฌ,์ฃผ์ œ,์ œ๋ชฉ ๋“ฑ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋‘˜ ์ˆ˜ ์žˆ๋Š” ๊ฑฐ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค. Index์˜ ๊ธฐ๋ณธ์ ์ธ ์ข…๋ฅ˜ Ordered Indices Search Key์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ..

    [ADV_db]Chap 2. ๋ฐ์ดํ„ฐ ์ €์žฅ ์žฅ์น˜ ๊ตฌ์กฐ-2

    # ๋ ˆ์ฝ”๋“œ ์ €์žฅ ๋ฐฉ๋ฒ• Heap File Organization ๋นˆ ๊ณต๊ฐ„์— ์–ด๋””๋“  ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹ ํ•œ๋ฒˆ ํ• ๋‹น๋ฐ›์•„์„œ ์ €์žฅ๋œ ๋ ˆ์ฝ”๋“œ๋“ค์€ ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค. ์ค‘์š”ํ•œ ๋ฌธ์ œ๋Š” Free Space๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฐพ๋Š” ๋ฐฉ๋ฒ• Free-Space Map ํŒŒ์ผ์˜ ๋ธ”๋ก ์ค‘์— ๋นˆ๊ณณ์„ ํ‘œ์‹œํ•ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋งŒ์•ฝ ํ•˜๋‚˜์˜ ๋ธ”๋ก์ด 3bit๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด, ๊ฐ ๋ธ”๋ก์„ 8๋กœ ๋‚˜๋ˆ„๋ฉด ๋น„์–ด์žˆ๋Š” ๊ณณ์ด ์–ผ๋งˆ๋‚˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. Second-Level Free Space Map ๊ฐ ์—”ํŠธ๋ฆฌ๊ฐ€ First-level Space Map์˜ 4๊ฐœ์”ฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๋ฉด ๊ทธ ์ค‘ ์ตœ๋Œ€๊ฐ’๋งŒ์„ ์ด์šฉํ•˜์—ฌ ๋นˆ๊ณณ์„ ํƒ์ƒ‰ํ•˜๋Š” ์‹œ๊ฐ„์„ ๋”์šฑ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. Sequential File Organization Search-Key๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ํŒŒ์ผ์— ๋ ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•œ๋‹ค...

    [ADV_db]Chap 2. ๋ฐ์ดํ„ฐ ์ €์žฅ ์žฅ์น˜ ๊ตฌ์กฐ

    # ํŒŒ์ผ ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํŒŒ์ผ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ํŒŒ์ผ๋“ค์„ ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ ˆ์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ์—ฐ์†์ ์ธ ํ•„๋“œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ด ๋•Œ, ํŒŒ์ผ์˜ ๋ ˆ์ฝ”๋“œ์˜ ์‚ฌ์ด์ฆˆ๋Š” ๊ณ ์ •๋˜์–ด ์žˆ๊ณ , ๋ ˆ์ฝ”๋“œ๋Š” ๋””์Šคํฌ ๋ธ”๋ก๋ณด๋‹ค ์ž‘๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ERROR 1 ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ์‹์œผ๋กœ ํŒŒ์ผ์ด ์ด๋ฃจ์–ด์ ธ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด ๋•Œ ๊ฐ ๋ ˆ์ฝ”๋“œ์˜ ํฌ๊ธฐ๋ฅผ 170kb๋ผ๊ณ  ํ•˜๊ณ  ๋ธ”๋ก์˜ ํฌ๊ธฐ๋ฅผ 512kb๋ผ๊ณ  ํ•˜๋ฉด,ํ•œ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ €์žฅํ•  ๋•Œ 2kB์”ฉ "Cross Block Boundaries"์ฆ‰ ๋ ˆ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ถ„์„ ์ž˜๋ผ์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ธ”๋ก ์‚ฌ์ด์ฆˆ๋ฅผ ๋ชจ๋‘ ์ฑ„์šฐ์ง€ ์•Š๊ณ , ์˜จ์ „ํ•œ ์ƒํƒœ์˜ ๋ ˆ์ฝ”๋“œ๋“ค๋กœ ์ฑ„์šด ํ›„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ERROR 2 ์ค‘๊ฐ„์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์‚ญ์ œ๋œ ๊ฒฝ์šฐ, ์ € ๋ถ€๋ถ„์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋’ค์— ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ์นธ์”ฉ ์ด๋™ํ•œ๋‹ค๋ฉด,..