# Static Hashing
Hashing
- ๋๋ถ๋ถ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ๋์ง๋ง, ํ์ผ์ ๋ ์ฝ๋๋ฅผ ์ ๋ฆฌํ ๋๋ ์ฌ์ฉ๋๋ค.
- ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค ๋๋ ๋ฒ์ผ์ ๋ ์ฝ๋๋ค์ ์ธ๋ฑ์ค๋ค์ด ๋ค์ด์์ง๋ง, ํ์ผ์ ๊ด๋ฆฌํ ๋๋ ์ค์ ๋ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ค.
- Hash Index๋ ํด์ ํจ์๋ฅผ ํต๊ณผํด์ ๋์ค๋ ๊ฐ์ Search key๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
- Bucket์ด๋ผ๋ ๋์คํฌ ๋ธ๋ก์ ๊ฐ์ ํด์ ๊ฐ์ ๊ฐ์ง๋ ์ฌ๋ฌ ์ํธ๋ฆฌ๊ฐ ์ ์ฅ๋์ด ์๋ค.
- ๋ง์ฝ Bucket์ Index๊ฐ ๊ณ ์ ๋์ด ์๋ค๋ฉด Static Hashing ๊ทธ๋ ์ง ์๋ค๋ฉด, Dynamic Hashing์ด๋ผ๊ณ ํ๋ค.
- ๋ค๋ฅธ ์์น ํค ๊ฐ์ ๊ฐ์ง๋๋ผ๋ ํด์ ํจ์๋ฅผ ํต๊ณผํ์ ๋ ๊ฐ์ด ๊ฐ๋ค๋ฉด ๊ฐ์ Bucket์ ์์นํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ํธ๋ฆฌ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์๋ ํด๋น Bucket์ ์ฒด๋ฅผ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํด์ผ ํ๋ค.
- ์ด ๋ ๋ง์ฝ Bucket์ ์ฌ์ด์ฆ๋ณด๋ค ๋ ๋ง์ ์ํธ๋ฆฌ๊ฐ ํด๋น Bucket์ ๋ค์ด๊ฐ์ผ ํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
- ์ด๋ฐ ๋ฌธ์ ๋ ํด์ ํจ์์์ ๋ถ๋ฐฐ๊ฐ ์ ์๋๊ฑฐ๋
- ๋ฒ์ผ ์ฌ์ด์ฆ๊ฐ ์์์ ๋ฐ์ํ๋ค.
- ์ด๋ฐ ๊ฒฝ์ฐ, ์๋ ๊ทธ๋ฆผ์ฒ๋ผ Overflow Block์ ํตํด ์ฒ๋ฆฌํ๋ค.
- ์ด๋ฐ์์ผ๋ก ๊ฐ์ ํด์ ๊ฐ์ ๊ฐ์ง๋ Bucket์ Overflow Block๋ค์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ Overflow Chaining์ด๋ผ๊ณ ํ๋ค.
- ์ด๋ฌํ ๋ฐฉ์์ Closed Addressing ๋๋ Closed Hashing์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- Open Hashing ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐฉ์์ ๊ฐ๋ฐฉํ ๋ฐฉ์์ผ๋ก ๋น์ด์๋ ๊ณต๊ฐ์ ๋๊ณ ์ถ๊ฐ์ ์ธ ํด์ฑ์ ํตํด ๊ตฌํํ๋๋ฐ ์ ์ฌ์ฉ๋์ง ์๋๋ค.
- Static Hasing์ ๊ฒฝ์ฐ ๋ฒํท์ ์ฌ์ด์ฆ๊ฐ ๋๋ฌด ์์ผ๋ฉด Overflow ๋ธ๋ก์ด ๋ง์์ ธ ์ฒ์๋ณด๋ค ํ์ผ ํฌ๊ธฐ๊ฐ ์ ์ ๋๊ฒ์ด๊ณ , ๊ทธ๋ ๋ค๊ณ ๋๋ํ๊ฒ ์ค๋นํ๋ฉด ๋ญ๋น๋ ์ ์๋ค.
- ๋ฐ๋ผ์ ๋ ์ข์ ๋ฐฉ๋ฒ์ Dynamic Hashing์ด๋ค.
- ์ ๋ ฌ๋ Index์ Hashing ์ค์์ ์ผ๋ฐ์ ์ผ๋ก ํน์ ๋ ์ฝ๋๋ ํด์ฑ์ด ๋ ๋นจ๋ฆฌ ์ฒ๋ฆฌ๋์ง๋ง, ๋ฒ์๋ฅผ ๋ฌผ์ด๋ณด๋ ์ฟผ๋ฆฌ๊ฐ ๋ง์ ๊ฒฝ์ฐ์๋ ์ ๋ ฌ๋ Index๊ฐ ๋ ์ ํธ๋๋ค.
'๐ฅ๏ธSW Engineer > Distributed System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ADV_db]Chap 4. Query-processing (0) | 2023.05.21 |
---|---|
[ADV_db]Chap 12-14. ์ฐ์ต๋ฌธ์ (0) | 2023.04.20 |
[ADV_db]Chap 3. Indexing - B+Tree ์ถ๊ฐ๋ด์ฉ๋ค (0) | 2023.04.19 |
[ADV_db]Chap 3. Indexing - B+tree ๊ฒ์,์ฝ์ ,์ญ์ (0) | 2023.04.17 |
[ADV_db]Chap 3. Indexing - B+Tree ์๊ฐ (0) | 2023.04.17 |