Computer Science
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ - File Organization
2026-05-05
๋ฐ์ดํฐ ์ ์ฅ ์ฅ์น ๊ตฌ์กฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ๋ฐ์ดํฐ๋ ๋นํ๋ฐ์ฑ ์ ์ฅ ์ฅ์น์ ์ ์ฅ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๊ธฐ ๋์คํฌ๋ SSD๊ฐ ์ฌ์ฉ๋๋ฉฐ, ์ด๋ค์ ๋ชจ๋ ๋ธ๋ก ๋จ์ ์ฅ์นblock-structured device์ ๋๋ค. ์ฆ ๋ฐ์ดํฐ์ ์ฝ๊ธฐ์ ์ฐ๊ธฐ๋ ๋ชจ๋ ๋ธ๋ก์ด๋ผ๋ ๋จ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ด๋ฉ๋๋ค. ๋ฐ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค๋ฃจ๋ ๋จ์๋ ๋ ์ฝ๋record์ด๋ฉฐ, ๋ ์ฝ๋๋ ๋ธ๋ก๋ณด๋ค ํจ์ฌ ์์ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด์์ฒด์ ๊ฐ ์ ๊ณตํ๋ ํ์ผ ์์คํ ์ ์ค๊ฐ ๊ณ์ธต์ผ๋ก ํ์ฉํ์ฌ ๋ ์ฝ๋๋ฅผ ์ ์ฅํฉ๋๋ค. ํ์ผ ์์คํ ์ด ๋์คํฌ ๋ธ๋ก์ ์ธ๋ถ ์ฌํญ์ ์ด๋ ์ ๋ ์ถ์ํํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ํ ๋ธ๋ก์ ์กด์ฌ๋ฅผ ์ธ์ํด์ผ ํ๋๋ฐ, ๊ทธ ์ด์ ๋ ๋ ๊ฐ์ง์ ๋๋ค. ์ฒซ ๋ฒ์งธ๋ ํจ์จ์ ์ธ ์ ๊ทผ์ ์ํด์์ ๋๋ค. ๋ธ๋ก ๋จ์ ์ ์ถ๋ ฅ์ ๋น์ฉ์ ๊ณ ๋ คํ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ๋ฐฐ์นํ๋ฉด, ๋จ์ํ ์กฐํ์กฐ์ฐจ ๋ถํ์ํ ๋์คํฌ ์ ๊ทผ์ผ๋ก ์ด์ด์ง๊ธฐ ์ฝ์ต๋๋ค. ๋ ๋ฒ์งธ๋ ์ฅ์ ๋ณต๊ตฌ๋ฅผ ์ํด์์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฅ์ ๋ฐ์ ํ ์ผ๊ด์ฑ ์๋ ์ํ๋ก ํ๋ณตํ ์ ์์ด์ผ ํ๋๋ฐ, ์ด๋ฅผ ์ํด์๋ ๋์คํฌ ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ๋ชจ์์ผ๋ก ๋์ฌ ์๋์ง๋ฅผ ์ง์ ํต์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด์์ฒด์ ๊ฐ ์ ๊ณตํ๋ ํ์ผ ์ถ์ํ์ ์ฌ์ฉํ๋ฉด์๋, ๊ทธ ์์์ ๋ ์ฝ๋๊ฐ ๋ธ๋ก์ ์ด๋ป๊ฒ ๋ฐฐ์น๋๋์ง๋ฅผ ์ค์ค๋ก ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ๊ทธ ์ฒซ ๋ฒ์งธ ์ฃผ์ ๋ก ํ์ผ ๊ตฌ์กฐfile organization์ ๋ค๋ฃจ๋ฉฐ, ๋ ์ฝ๋๋ฅผ ๋ธ๋ก ์์ ํํํ๋ ์ฌ๋ฌ ๋ฐฉ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ์ผ ๊ตฌ์กฐ(File Organization)
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ์ฌ๋ฌ ๊ฐ์ ํ์ผ๋ก ๋งคํ๋๋ฉฐ, ์ด ํ์ผ๋ค์ ๋์คํฌ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ํ์ผ์ ์ผ๋ จ์ ๋ ์ฝ๋๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ด ๋ ์ฝ๋๋ค์ ๋ค์ ๋์คํฌ ๋ธ๋ก ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์ด์์ฒด์ ๊ฐ ํ์ผ์ด๋ผ๋ ์ถ์์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ก ์ ๊ณตํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๊ทธ ์์ ๋ ผ๋ฆฌ์ ์ธ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ด๋ป๊ฒ ํํํ ์ง์๋ง ์ง์คํฉ๋๋ค.
๊ฐ ํ์ผ์ ๋ค์ ๋ธ๋กblock์ด๋ผ ๋ถ๋ฆฌ๋ ๊ณ ์ ํฌ๊ธฐ์ ์ ์ฅ ๋จ์๋ก ๋ถํ ๋ฉ๋๋ค. ๋ธ๋ก์ ์ ์ฅ ๊ณต๊ฐ์ ํ ๋น ๋จ์์ด์ ๋ฐ์ดํฐ ์ ์ก์ ๋จ์์ ๋๋ค. ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ 4KB์์ 8KB ์ฌ์ด์ ๋ธ๋ก ํฌ๊ธฐ๊ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ๋ค๋ฅธ ๊ฐ์ ์ง์ ํ ์ ์๋ ์์คํ ๋ ๋ง์ต๋๋ค.
ํ๋์ ๋ธ๋ก์๋ ๋ณดํต ์ฌ๋ฌ ๊ฐ์ ๋ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋๋ค. ์ ํํ ์ด๋ค ๋ ์ฝ๋๋ค์ด ํ ๋ธ๋ก์ ํจ๊ป ์ ์ฅ๋๋์ง๋ ์ฌ์ฉ ์ค์ธ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๊ตฌ์ฑ ๋ฐฉ์์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
์ด ๊ธ์์๋ ๋ ์ฝ๋์ ํฌ๊ธฐ๊ฐ ๋ธ๋ก๋ณด๋ค ํฌ์ง ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋๋ถ๋ถ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ฉ์์๋ ์ด ๊ฐ์ ์ด ํ์ค์ ์ ๋๋ค. ์ด๋ฏธ์ง๋ ์์์ฒ๋ผ ๋ธ๋ก๋ณด๋ค ํจ์ฌ ํฐ ๋ฐ์ดํฐ ํญ๋ชฉ ๋ํ ์กด์ฌํ์ง๋ง, ์ด๋ฐ ํฐ ๊ฐ์ฒด๋ ๋ณ๋๋ก ์ ์ฅํ๊ณ ๋ ์ฝ๋์๋ ํฌ์ธํฐ๋ง ๋จ๊ธฐ๋ ๋ฐฉ์์ผ๋ก ์ฐํํฉ๋๋ค. ๋ํ ํ๋์ ๋ ์ฝ๋๋ ๋จ์ผ ๋ธ๋ก ๋ด๋ถ์ ์จ์ ํ ๋ด๊ฒจ์ผ ํ๋ค๋ ์ ์ฝ์ ๋ก๋๋ค. ํ ๋ ์ฝ๋๊ฐ ์ฌ๋ฌ ๋ธ๋ก์ ๊ฑธ์ณ ์ ์ฅ๋๋ ๊ฒ์ ํ์ฉํ๋ฉด ์ ๊ทผ ๋น์ฉ์ด ๋ ๋ฐฐ๋ก ๋์ด๋๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ๊ธ์งํจ์ผ๋ก์จ ๊ตฌํ๊ณผ ์ฑ๋ฅ ์์ชฝ์ ๋จ์ํ๊ฒ ์ ์งํฉ๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋ก ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ํํ์ ์ผ๋ฐ์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฆ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ผ์ ๋งคํํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ์ฌ์ฉํ๋, ๊ฐ๊ฐ์ ํ์ผ์๋ ๋์ผํ ๊ณ ์ ๊ธธ์ด์ ๋ ์ฝ๋๋ง ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ํ๋์ ํ์ผ์ด ์ฌ๋ฌ ๊ธธ์ด์ ๋ ์ฝ๋๋ฅผ ์์ฉํ ์ ์๋๋ก ๊ตฌ์กฐ๋ฅผ ์ก๋ ๊ฒ์ ๋๋ค. ํ์๊ฐ ๋ ์ ์ฐํ์ง๋ง ๊ตฌํ์ ์ ์๊ฐ ํจ์ฌ ์ฝ๊ณ , ์ ์์์ ์ฌ์ฉ๋ ๊ธฐ๋ฒ ์๋น์๋ ํ์์๋ ๊ทธ๋๋ก ์์ฉ๋ฉ๋๋ค. ์ด๋ฐ ์ด์ ๋ก ๋จผ์ ๊ณ ์ ๊ธธ์ด ๋ ์ฝ๋๋ฅผ ์ดํด๋ณธ ๋ค, ๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋๋ก ํ์ฅํด๋ณด๊ฒ ์ต๋๋ค.
๊ณ ์ ๊ธธ์ด ๋ ์ฝ๋(Fixed-Length Records)
๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ instructor ๋ฆด๋ ์ด์ ์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
type instructor = record
ID varchar(5);
name varchar(20);
dept_name varchar(20);
salary numeric(8,2);
end๊ฐ ๋ฌธ์๊ฐ 1๋ฐ์ดํธ๋ฅผ ์ฐจ์งํ๊ณ numeric(8,2)๊ฐ 8๋ฐ์ดํธ๋ฅผ ์ฐจ์งํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ ์ค์ ์ฌ์ฉ๋๋งํผ๋ง ๋ฐ์ดํธ๋ฅผ ํ ๋นํ๋ ๋์ , ๊ฐ ์์ฑ์ด ๊ฐ์ง ์ ์๋ ์ต๋ ๋ฐ์ดํธ ์๋ฅผ ํญ์ ํ ๋นํ๋ค๊ณ ํด๋ด
์๋ค. ๊ทธ๋ฌ๋ฉด instructor ๋ ์ฝ๋์ ๊ธธ์ด๋ ํญ์ 53๋ฐ์ดํธ๋ก ๊ณ ์ ๋ฉ๋๋ค. ๊ฐ์ฅ ๋จ์ํ ์ ๊ทผ์ ํ์ผ์ ์ฒ์ 53๋ฐ์ดํธ๋ฅผ ์ฒซ ๋ ์ฝ๋๋ก, ๊ทธ๋ค์ 53๋ฐ์ดํธ๋ฅผ ๋ ๋ฒ์งธ ๋ ์ฝ๋๋ก ์ฌ์ฉํ๋ ์์ผ๋ก ๋นํ์์ด ์ด์ด ๋ถ์ด๋ ๊ฒ์
๋๋ค.
์ด ๋จ์ํ ๋ฐฉ์์๋ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
1. ์ผ๋ถ ๋ ์ฝ๋๊ฐ ๋ธ๋ก ๊ฒฝ๊ณ๋ฅผ ๊ฐ๋ก์ง๋ฅด๊ฒ ๋ฉ๋๋ค.
๋ธ๋ก ํฌ๊ธฐ๊ฐ 53์ ๋ฐฐ์๊ฐ ์๋ ํ, ์ด๋ค ๋ ์ฝ๋๋ ์ผ๋ถ๊ฐ ํ ๋ธ๋ก์, ๋๋จธ์ง๊ฐ ๋ค์ ๋ธ๋ก์ ๊ฑธ์ณ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฐ ๋ ์ฝ๋๋ฅผ ํ ๋ฒ ์ฝ๊ฑฐ๋ ์ฐ๋ ค๋ฉด ๋ ๋ฒ์ ๋ธ๋ก ์ ์ถ๋ ฅ์ด ํ์ํด์ง๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด์๋, ํ ๋ธ๋ก์ ์จ์ ํ ๋ค์ด๊ฐ ์ ์๋ ๋งํผ์ ๋ ์ฝ๋๋ง ๋ฐฐ์นํ๊ณ ๋จ๋ ๋ฐ์ดํธ๋ ๊ทธ๋๋ก ๋๋ ๋ฐฉ์์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ธ๋ก ํฌ๊ธฐ๋ฅผ ๋ ์ฝ๋ ํฌ๊ธฐ๋ก ๋๋ ๋ชซ์ด ํ ๋ธ๋ก์ ๋ด์ ์ ์๋ ๋ ์ฝ๋์ ์๊ฐ ๋ฉ๋๋ค.
2. ๋ ์ฝ๋ ์ญ์ ๊ฐ ๊น๋ค๋กญ์ต๋๋ค.
์ญ์ ๋ ๋ ์ฝ๋๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ๋ค๋ฅธ ๋ ์ฝ๋๋ก ์ฑ์ฐ๊ฑฐ๋, ์ญ์ ํ์๋ฅผ ๋จ๊ฒจ ๋ฌด์๋๋๋ก ํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ผ์ด ์ ์ ๋น์ด ์๋ ์ฌ๋กฏ์ผ๋ก ๊ฐ๋ ์ฐจ๊ฒ ๋ฉ๋๋ค.
์ญ์ ๋ ์๋ฆฌ๋ฅผ ๋ฉ์ฐ๋ ๊ฐ์ฅ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์, ๊ทธ ๋ค์ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ํ ์นธ์ฉ ์์ผ๋ก ๋น๊ธฐ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฐฉ์์ ์ญ์ ํ ๋ฒ์ ์๋ง์ ๋ ์ฝ๋๋ฅผ ์ฎ๊ฒจ์ผ ํ๋ฏ๋ก ๋น์ฉ์ด ํฝ๋๋ค. ์ฐจ๋ผ๋ฆฌ ํ์ผ์ ๋ง์ง๋ง ๋ ์ฝ๋๋ฅผ ์ญ์ ๋ ์๋ฆฌ์ ์ฎ๊ฒจ๋๋ ํธ์ด ํจ์ฌ ์ ๋ ดํฉ๋๋ค. ๋ง์ง๋ง ๋ ์ฝ๋๋ ์ด์ฐจํผ ์ด๋๊ฐ๋ก ์ฎ๊ธธ ์ ์๋ ๋ ์ฝ๋์ด๊ณ , ํ ๋ฒ์ ์ด๋์ผ๋ก ๋น ์๋ฆฌ๋ฅผ ๋ฉ์ธ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฐ ์ด๋์กฐ์ฐจ ๊ฒฐ๊ตญ ์ถ๊ฐ์ ์ธ ๋ธ๋ก ์ ๊ทผ์ ์๊ตฌํฉ๋๋ค. ์ฝ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ญ์ ๋ณด๋ค ๋น๋ฒํ๋ฏ๋ก, ์ญ์ ๋ ๊ณต๊ฐ์ ์ผ๋จ ๋น์๋ ์ฑ๋ก ๋์๋ค๊ฐ ๋ค์ ์ฝ์ ์ ์ฌ์ฌ์ฉํ๋ ํธ์ด ๋ ์ ๋ฆฌํฉ๋๋ค. ๋ค๋ง ๋จ์ํ "์ญ์ ๋จ" ํ์๋ง ๋จ๊ธฐ๋ ๊ฒ์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ฝ์ ์์ ์ ๋น ์๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๋นจ๋ฆฌ ์ฐพ์์ง๊ฐ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ผ ํค๋file header๋ผ ๋ถ๋ฆฌ๋ ์์ญ์ ํ์ผ์ ๋งจ ์์ ๋๊ณ , ์ฌ๊ธฐ์ ์ฒซ ๋ฒ์งธ ๋น ๋ ์ฝ๋์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋น ๋ ์ฝ๋์๋ ๋ค์ ๋น ๋ ์ฝ๋์ ์ฃผ์๋ฅผ, ๊ทธ ๋ ์ฝ๋์๋ ๋ ๋ค์ ๋น ๋ ์ฝ๋์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ญ์ ๋ ๋ ์ฝ๋๋ค์ด ํ๋์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํํ๋ก ๋ฌถ์ด๊ฒ ๋๊ณ , ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์์ ๋ฆฌ์คํธfree list๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ํค๋๋ ์์ ๋ฆฌ์คํธ์ ์์์ ๋ง ์๋ฉด ๋ฉ๋๋ค.
์๋ก์ด ๋ ์ฝ๋๋ฅผ ์ฝ์ ํ ๋๋ ํค๋๊ฐ ๊ฐ๋ฆฌํค๋ ์๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ , ํค๋์ ํฌ์ธํฐ๋ฅผ ๊ทธ ๋ค์ ๋น ๋ ์ฝ๋๋ก ์ฎ๊ฒจ์ฃผ๋ฉด ๋ฉ๋๋ค. ๋น ์๋ฆฌ๊ฐ ๋ ์ด์ ์๋ค๋ฉด ํ์ผ์ ๋์ ์ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ณ ์ ๊ธธ์ด ๋ ์ฝ๋์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋จ์ํ ์ด์ ๋, ์ญ์ ๋ก ๋น์์ง ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ์๋ก ์ฝ์ ํ ๋ ์ฝ๋์ ํฌ๊ธฐ์ ์ ํํ ์ผ์นํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋๋ฅผ ๋ค๋ฃจ๋ ์๊ฐ ์ด ๋ฑ์์ด ๊นจ์ง๋ฉด์ ๋ฌธ์ ๋ ํ ๋จ๊ณ ๋ ๋ณต์กํด์ง๋๋ค.
๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋(Variable-Length Records)
๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋๋ ์ฌ๋ฌ ์ด์ ๋ก ์์ฐ์ค๋ฝ๊ฒ ๋ฑ์ฅํฉ๋๋ค. ๊ฐ์ฅ ํํ ์์ธ์ ๊ฐ๋ณ ๊ธธ์ด ํ๋, ์ฆ ๋ฌธ์์ด์ ์กด์ฌ์ ๋๋ค. ๊ทธ ์ธ์๋ ๋ฐฐ์ด์ด๋ ๋ฉํฐ์ ๊ณผ ๊ฐ์ ๋ฐ๋ณต ํ๋๋ฅผ ํฌํจํ๋ ๋ ์ฝ๋ ํ์ , ํ ํ์ผ ์์ ์ฌ๋ฌ ์ข ๋ฅ์ ๋ ์ฝ๋ ํ์ ์ด ํจ๊ป ์ ์ฅ๋๋ ๊ฒฝ์ฐ ๋ฑ์ด ์์ต๋๋ค.
๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋๋ฅผ ๊ตฌํํ ๋๋ ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋์์ ํ์ด์ผ ํฉ๋๋ค.
1. ๋ ์ฝ๋ ์์์ ๊ฐ๋ณ ์์ฑ์ ์ด๋ป๊ฒ ๋น ๋ฅด๊ฒ ์ถ์ถํ ๊ฒ์ธ๊ฐ
2. ํ ๋ธ๋ก ์์ ๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ์นํ ๊ฒ์ธ๊ฐ
๋ ์ฝ๋ ํํ(Record Representation)
๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ ํฌํจํ๋ ๋ ์ฝ๋๋ ๋ณดํต ๋ ๋ถ๋ถ์ผ๋ก ๋๋์ด ํํ๋ฉ๋๋ค. ์์ชฝ์๋ ๋ชจ๋ ๋ ์ฝ๋๊ฐ ๋์ผํ ๊ตฌ์กฐ๋ก ๊ฐ๋ ๊ณ ์ ๊ธธ์ด ๋ถ๋ถ์ด ์ค๊ณ , ๊ทธ ๋ค์ ๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ ์ค์ ๋ด์ฉ์ด ์ด์ด์ง๋๋ค. ์ซ์๋ ๋ ์ง, ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด์ฒ๋ผ ํฌ๊ธฐ๊ฐ ์ ํด์ง ์์ฑ์ ํ์ํ ๋งํผ์ ๋ฐ์ดํธ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ฉด varchar์ฒ๋ผ ํฌ๊ธฐ๊ฐ ์ ํด์ง์ง ์์ ์์ฑ์ ๊ณ ์ ๊ธธ์ด ๋ถ๋ถ์ (์คํ์
, ๊ธธ์ด)๋ผ๋ ํ ์์ ๊ฐ์ผ๋ก ํํ๋ฉ๋๋ค. ์คํ์
์ ํด๋น ์์ฑ์ ๋ฐ์ดํฐ๊ฐ ๋ ์ฝ๋ ๋ด ์ด๋์๋ถํฐ ์์ํ๋์ง๋ฅผ, ๊ธธ์ด๋ ๊ทธ ๋ฐ์ดํฐ๊ฐ ๋ช ๋ฐ์ดํธ์ธ์ง๋ฅผ ๋ํ๋
๋๋ค. ๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ ์ค์ ๊ฐ๋ค์ ๊ณ ์ ๊ธธ์ด ๋ถ๋ถ ๋ค์ ์ฐจ๋ก๋๋ก ์ด์ด ๋ถ์
๋๋ค.
์ด๋ฐ ๊ตฌ์ฑ ๋๋ถ์ ๋ ์ฝ๋์ ์์ชฝ๋ง ๋ด๋ ๋ชจ๋ ์์ฑ์ ์์น์ ํฌ๊ธฐ๋ฅผ ์ฆ์ ์ ์ ์์ต๋๋ค. ID, name, dept_name์ด ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด์ด๊ณ salary๊ฐ 8๋ฐ์ดํธ์ ๊ณ ์ ๊ธธ์ด ์ซ์์ธ instructor ๋ ์ฝ๋๋ฅผ ๊ฐ์ ํ๋ฉด, ๋ ์ฝ๋ ์๋ถ๋ถ์๋ ๊ฐ ์์ฑ๋ง๋ค 4๋ฐ์ดํธ์ฉ(์คํ์ 2๋ฐ์ดํธ + ๊ธธ์ด 2๋ฐ์ดํธ)์ด ์๋ฆฌ๋ฅผ ์ก๊ณ , ๊ทธ ๋ค์ salary 8๋ฐ์ดํธ, ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด๋ค์ด ์ด์ด์ง๋๋ค.
๊ณ ์ ๊ธธ์ด ๋ถ๋ถ์๋ ๋ณดํต ๋ ๋นํธ๋งตnull bitmap์ด ํจ๊ป ๋ค์ด๊ฐ๋๋ค. ์ด๋ค ์์ฑ์ด NULL์ธ์ง๋ฅผ ๋นํธ ๋จ์๋ก ํ์ํ๋ ์์ ์์ญ์ ๋๋ค. ๋ง์ฝ salary๊ฐ NULL์ด๋ผ๋ฉด ๋นํธ๋งต์ ํด๋น ๋นํธ๋ฅผ 1๋ก ๋๊ณ , salary ์๋ฆฌ์ ์ ์ฅ๋ 8๋ฐ์ดํธ๋ ๋ฌด์ํ๋ฉด ๋ฉ๋๋ค. ์์ฑ์ด 4๊ฐ์ธ ๋ ์ฝ๋๋ผ๋ฉด ๋นํธ๋งต์ 1๋ฐ์ดํธ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ด๋ค ๊ตฌํ์์๋ NULL์ธ ์์ฑ์ ๋ํด ๊ฐ๋ฟ๋ง ์๋๋ผ ์คํ์ ๊ณผ ๊ธธ์ด์กฐ์ฐจ ์ ์ฅํ์ง ์์ต๋๋ค. ์ ์ฅ ๊ณต๊ฐ์ ๋ ์๋ ์ ์์ง๋ง, ์์ฑ์ ์ถ์ถํ ๋ ์ฝ๊ฐ์ ์ถ๊ฐ ์์ ์ด ๋ฐ๋ผ์ต๋๋ค. ์์ฑ ์๊ฐ ๋งค์ฐ ๋ง๊ณ ๊ทธ์ค ๋๋ถ๋ถ์ด NULL์ธ ์์ฉ์์๋ ์ด๋ฐ ํํ์ด ํนํ ์ ๋ฆฌํฉ๋๋ค.
NULL ์์ฑ์ ๋์
NULL ์ฒ๋ฆฌ๋ INSERT ์์ ์ธ์ง ์ด๋ฏธ ์ ์ฅ๋ ๋ ์ฝ๋๋ฅผ UPDATEํ๋ ์์ ์ธ์ง์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์์ญ์ ๋ชจ์์ด ๋ฏธ๋ฌํ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
INSERT ์ ์ด๋ค ๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ด NULL์ด๋ผ๋ฉด, ๋นํธ๋งต์ ํด๋น ๋นํธ๊ฐ 1๋ก ์ผ์ง๊ณ ๊ฐ๋ณ ๋ฐ์ดํฐ ์์ญ์๋ ๊ทธ ์์ฑ์ ์๋ฆฌ๋ฅผ ์์ ๋น์๋ก๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๊ทธ ๋ค์ ๊ฐ๋ณ ์์ฑ์ ๋ฐ์ดํฐ๊ฐ ํ ์นธ ์๋น๊ฒจ์ง ์์น์์ ์์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด instructor ๋ ์ฝ๋์์ name์ด NULL์ธ ์ฑ๋ก ๋ค์ด์จ๋ค๋ฉด, dept_name์ ๋ฐ์ดํฐ๋ byte 36์ด ์๋๋ผ byte 26์์ ์์ํฉ๋๋ค. ํค๋์ (offset, length) ์๋ฆฌ์ ๋ฌด์์ ์ ๋์ง๋ ๊ตฌํ๋ง๋ค ๋ค๋ฅธ๋ฐ, Silberschatz ๊ต๊ณผ์์ ํ์ค ํํ์ length ํ๋์ -1 ๊ฐ์ sentinel์ ์ ์ด NULL์ ํ์ํ๊ณ offset ๊ฐ์ ์ด๋ค ๊ฐ์ด๋ ๋ฌด๋ฐฉํ๊ฒ ๋๋ฉฐ, MySQL InnoDB์ฒ๋ผ ๋ ์ ๊ทน์ ์ผ๋ก ๊ณต๊ฐ์ ์๋ผ๋ ๊ตฌํ์ NULL์ธ ๊ฐ๋ณ ์์ฑ์ ๋ํ length ์ ๋ณด ์์ฒด๋ฅผ record ํค๋์์ ๋นผ๋ฒ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค.
์ฌ๊ธฐ์ ๊ฐ๋ณ ๊ธธ์ด ์์ฑ๊ณผ ๊ณ ์ ๊ธธ์ด ์์ฑ์ ๋น๋์นญ์ด ๋๋ฌ๋ฉ๋๋ค. salary๊ฐ NULL์ด์ด๋ byte 12๋ถํฐ 19๊น์ง์ ์์น๋ ์คํค๋ง์ ์ํด ๊ณ ์ ๋์ด ์์ด ์ค์ผ ์ ์์ต๋๋ค. 8๋ฐ์ดํธ๊ฐ ๊ทธ๋๋ก ์๋ฆฌ๋ฅผ ์ฐจ์งํ๊ณ ๋นํธ๋งต ๋นํธ๋ก ๋ฌด์ ํ์๋ ๋ฟ์ ๋๋ค. ๊ณต๊ฐ๋ง ๋ณด๋ฉด ๋ญ๋น์ฒ๋ผ ๋ณด์ด์ง๋ง, ์์น๊ฐ ๊ณ ์ ๋์ด ์๋ค๋ ์ ์ NULL โ non-NULL ์ ํ ์ ๋ค๋ฅธ ์์ฑ์ ๊ฑด๋๋ฆฌ์ง ์๊ณ in-place๋ก ๊ฐฑ์ ํ ์ ์๋ ์ฅ์ ์ด๊ธฐ๋ ํฉ๋๋ค. ๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ ๋ฐ์ดํฐ ์์ญ์์ ์์ฐ์ค๋ฝ๊ฒ ์๋ฆฌ๋ฅผ ๋น์ฐ๋ ๋งํผ ๊ณต๊ฐ ํจ์จ์ ์ข์ง๋ง, ๊ทธ ๋๊ฐ๋ก NULL ์ฌ๋ถ๊ฐ ๋ฐ๋ ๋ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํฉ๋๋ค.
์ด๋ฏธ ์ ์ฅ๋ ๋ ์ฝ๋์์ ๊ฐ๋ณ ๊ธธ์ด ์์ฑ์ด UPDATE๋ก NULL์ด ๋๋ ๊ฒฝ์ฐ๋ ์กฐ๊ธ ๋ ๊น๋ค๋กญ์ต๋๋ค. ๋ฐ์ดํฐ ์์ญ์ ์ด๋ฏธ ๋ค๋ฅธ ์์ฑ๋ค์ ๊ฐ์ด ๋นํ์์ด ์ด์ด์ ธ ์๊ธฐ ๋๋ฌธ์, ๊ทธ ํ ์์ฑ์ ํต์งธ๋ก ๋นผ๋ฒ๋ฆฌ๋ฉด ๋ค ์์ฑ๋ค์ ์์น๊ฐ ์ด๊ธ๋ฉ๋๋ค. ์ฒ๋ฆฌ ๋ฐฉ์์ ๋ณดํต ๋ ๊ฐ์ง๋ก ๊ฐ๋ฆฝ๋๋ค.
์ฒซ ๋ฒ์งธ๋ ๋ฐ์ดํฐ ์์ญ์ ๋ค์ ์ฑ์ ๋ฃ๋repacking ๋ฐฉ์์
๋๋ค. NULL์ด ๋ ์์ฑ์ด ์ฐจ์งํ๋ byte๋ฅผ ๋น์ฐ๊ณ ๊ทธ ๋ค์ ๋ชจ๋ ์์ฑ์ ์์ผ๋ก ๋์ด์ค๋ฉฐ, ํค๋์ (offset, length) ์๋ค๋ ๊ทธ์ ๋ง์ถฐ ๋ค์ ๊ณ์ฐํฉ๋๋ค. ๊ณต๊ฐ์ ํ์๋์ง๋ง ๋ ์ฝ๋์ ์๋น ๋ถ๋ถ์ ๋ค์ ์จ์ผ ํ๋ ๋น์ฉ์ด ๋ฐ๋ฆ
๋๋ค.
๋ ๋ฒ์งธ๋ ๋นํธ๋งต ๋นํธ๋ง 1๋ก ์ผ๊ณ ๋ฐ์ดํฐ ์์ญ๊ณผ ํค๋๋ ์๋์ง ์๋ in-place ๋ฐฉ์์
๋๋ค. ์ถ์ถ ๋ก์ง์ด ์ด์ฐจํผ ๋นํธ๋งต์ ๋จผ์ ํ์ธํ๊ธฐ ๋๋ฌธ์ (offset, length)๋ฅผ ๊ฐฑ์ ํ์ง ์์๋ ๋ฌด๋ฐฉํฉ๋๋ค. ๋น์์ง ์์ญ์ ๋ฐ์ดํธ๋ ์๋ฏธ ์๋ garbage๋ก ๋จ์ง๋ง ๋ค๋ฅธ ๋ถ๋ถ์ ์ ํ ๊ฑด๋๋ฆฌ์ง ์์ ๋น์ฉ์ด ๊ฐ์ฅ ์ ์ต๋๋ค. ์
๋ฐ์ดํธ๊ฐ ์ฆ์ ์ํฌ๋ก๋์์๋ ์ด ๋ฐฉ์์ด ์ผ๋ฐ์ ์ด๋ฉฐ, ๋์ ๋ ๋น ์์ญ์ ์ฃผ๊ธฐ์ ์ธ ์ฌ๊ตฌ์ฑreorganization์ผ๋ก ํ์๋ฉ๋๋ค.
์ฌ๋กฏ ํ์ด์ง ๊ตฌ์กฐ(Slotted-Page Structure)
๊ฐ๋ณ ๊ธธ์ด ๋ ์ฝ๋๋ฅผ ํ ๋ธ๋ก ์์ ์ด๋ป๊ฒ ๋ฐฐ์นํ ๊น์? ํ์ค์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ์์ ์ฌ๋กฏ ํ์ด์ง ๊ตฌ์กฐslotted-page structure์ ๋๋ค.
๋ธ๋ก์ ๋งจ ์์๋ ํค๋๊ฐ ์๋ฆฌ์ก์ผ๋ฉฐ, ๋ค์ ์ ๋ณด๋ฅผ ๋ด์ต๋๋ค.
- ๋ธ๋ก์ ๋ค์ด ์๋ ๋ ์ฝ๋ ์ํธ๋ฆฌ์ ์
- ๋ธ๋ก ๋ด ์์ ๊ณต๊ฐ์ ๋ ์์น
- ๊ฐ ๋ ์ฝ๋์ ์์น์ ํฌ๊ธฐ๋ฅผ ๋ด์ ์ํธ๋ฆฌ์ ๋ฐฐ์ด
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ ์ฝ๋๋ค์ ๋ธ๋ก์ ๋ฐ๋ํธ ๋, ์ฆ ๋ธ๋ก์ ๋์์๋ถํฐ ๊ฑฐ๊พธ๋ก ์ฑ์์ง๋๋ค. ํค๋์ ๋ง์ง๋ง ์ํธ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๋ ์ฝ๋ ์ฌ์ด์ ์์ญ์ด ์์ ๊ณต๊ฐ์ ๋๋ค.
์๋ก์ด ๋ ์ฝ๋๋ฅผ ์ฝ์ ํ ๋๋, ์์ ๊ณต๊ฐ์ ๋์์ ๊ทธ๋งํผ์ ๊ณต๊ฐ์ ์๋ผ ๋ ์ฝ๋๋ฅผ ์ฑ์ฐ๊ณ , ํค๋์ ์์น์ ํฌ๊ธฐ๋ฅผ ๋ด์ ์๋ก์ด ์ํธ๋ฆฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ ์ฝ๋๋ฅผ ์ญ์ ํ ๋๋ ํด๋น ์ํธ๋ฆฌ๋ฅผ ์ญ์ ํ์(์๋ฅผ ๋ค์ด ํฌ๊ธฐ๋ฅผ โ1๋ก ์ค์ )ํ๊ณ , ๊ทธ ๋ ์ฝ๋๋ณด๋ค ์์ชฝ์ ์๋ ๋ ์ฝ๋๋ค์ ํ๊บผ๋ฒ์ ์์ผ๋ก ๋ฐ์ด ๋น ๊ณต๊ฐ์ ๋ฉ์๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ ๊ณต๊ฐ์ด ๋ค์ ํค๋ ๋๊ณผ ์ฒซ ๋ ์ฝ๋ ์ฌ์ด์ ํ ๋ฉ์ด๋ฆฌ๋ก ๋ชจ์ด๊ฒ ๋ฉ๋๋ค. ์์ ๊ณต๊ฐ ๋์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ ๊ทธ์ ๋ง์ถฐ ๊ฐฑ์ ๋ฉ๋๋ค. ๋ ์ฝ๋์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด๋ ๊ฒ ์ญ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ด "์์ผ๋ก ๋ฏธ๋" ์์ ์ด ๋น์ฉ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง ์ค์ ๋ก๋ ๊ฑฐ์ ๋ฌด์ํ ๋งํฉ๋๋ค. ๋ธ๋ก์ ์ด๋ฏธ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ์ํ์์ ์์ ๋๋ฏ๋ก ์์ถ๋ ๋ฉ๋ชจ๋ฆฌ ์์ byte ๋ณต์ฌ๋ก ๋๋๊ณ , ๋ธ๋ก ํฌ๊ธฐ๊ฐ 4~8KB๋ก ์ ํ๋์ด ์์ด ๊ทธ ๋ณต์ฌ ์์ฒด๋ ๋ง์ดํฌ๋ก์ด ๋จ์๋ก ๋๋ฉ๋๋ค. ๋์คํฌ I/O๋ ์ด์ฐจํผ ๋ธ๋ก ๋จ์๋ก ํ ๋ฒ์ ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ๋ธ๋ก ์์์ byte๋ฅผ ์ด๋ป๊ฒ ์ฎ๊ฒจ๋๋ I/O ํ์์๋ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
์ฌ๋กฏ ํ์ด์ง ๊ตฌ์กฐ์ ํ ๊ฐ์ง ์ค์ํ ๊ท์น์, ๋ ์ฝ๋๋ฅผ ์ง์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ์ธ๋ถ์์ ์ฌ์ฉํ์ง ์๋๋ค๋ ์ ์ ๋๋ค. ์ธ๋ถ์ ๋ชจ๋ ํฌ์ธํฐ๋ ๋ ์ฝ๋๊ฐ ์๋๋ผ ํค๋์ ์ํธ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ํ ๋จ๊ณ์ ๊ฐ์ ์ฐธ์กฐ๊ฐ ์ถ๊ฐ๋๊ธด ํ์ง๋ง, ์ด ๋๋ถ์ ๋ธ๋ก ์์์ ๋ ์ฝ๋๋ฅผ ์์ ๋กญ๊ฒ ์ด๋์ํค๋๋ผ๋ ์ธ๋ถ ํฌ์ธํฐ๋ ๊ทธ๋๋ก ์ ํจํ๊ฒ ์ ์ง๋ฉ๋๋ค. ๋ธ๋ก ๋ด๋ถ์ ๋จํธํ๋ฅผ ์์ฝ๊ฒ ์ ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ํต์ฌ์ ์ธ ์ค๊ณ ๊ฒฐ์ ์ ๋๋ค.
๋ํ ๊ฐ์ฒด ์ ์ฅ ๋ฐฉ๋ฒ(Storing Large Objects)
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค๋ค์ผ ํ๋ ๋ฐ์ดํฐ ์ค์๋ ๋์คํฌ ๋ธ๋ก๋ณด๋ค ํจ์ฌ ํฐ ๊ฒ์ด ์ข
์ข
์์ต๋๋ค. ์ด๋ฏธ์ง๋ ์ค๋์ค๋ ์ ๋ฉ๊ฐ๋ฐ์ดํธ, ์์์ ์ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ์ด๋ฅผ ์๋ ์์ต๋๋ค. SQL์ ์ด๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ํด blob(์ด์ง ๋ํ ๊ฐ์ฒด)๊ณผ clob(๋ฌธ์ ๋ํ ๊ฐ์ฒด) ํ์
์ ์ ๊ณตํฉ๋๋ค.
๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ์ ์ผ๋ก ๋ ์ฝ๋์ ํฌ๊ธฐ๊ฐ ๋ธ๋ก์ ๋์ง ๋ชปํ๋๋ก ์ ํํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด์๋ ๋ ์ฝ๋๊ฐ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ํฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ ์ ์๋๋ก, ์ค์ ๋ฐ์ดํฐ๋ ๋ ์ฝ๋ ๋ฐ๊นฅ์ ๋ฐ๋ก ์ ์ฅํ๊ณ ๋ ์ฝ๋์๋ ๊ทธ ๊ฐ์ฒด์ ๋ํ ํฌ์ธํฐ๋ง ๋๋ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
์ด๋ ๊ฒ ๋ถ๋ฆฌ๋ ํฐ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ ๊ฐ๋๋ก ๋๋ฉ๋๋ค. ๋ ๋ค "DB๊ฐ ๊ด๋ฆฌํ๋ ์์ญ ์"์ด๋ผ๋ ์ ์ ๊ฐ์ง๋ง, OS์ ํ์ผ ์์คํ ์ถ์์ ์ด๋๊น์ง ๋น๋ฆฌ๋๋์์ ๊ฐ๋ฆฝ๋๋ค.
์ฒซ ๋ฒ์งธ๋ ํฐ ๊ฐ์ฒด๋ฅผ OS ํ์ผ ์์คํ ์์ ์ผ๋ฐ ํ์ผ๋ก ๋๋ ๋ฐฉ์์ ๋๋ค. DB๋ ์๊ธฐ ์์ญ์ผ๋ก ์ก์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ๊ณ , ํฐ ๊ฐ์ฒด ํ๋๋ง๋ค OS ํ์ผ์ ํ๋ ๋ง๋ค์ด ์ ์ฅํฉ๋๋ค. ํ์ผ ์์ฒด๋ OS๊ฐ ๋ณด๊ธฐ์ ํ๋ฒํ ํ์ผ์ด์ง๋ง ๊ทธ ํ์ผ์ ์์ฑยท์ญ์ ยท์ ๊ทผ ์ ์ด๋ DB๊ฐ ์ฑ ์์ง๋๋ค.
๋ ๋ฒ์งธ๋ ํฐ ๊ฐ์ฒด๋ฅผ DB์ ๋ธ๋ก ์์คํ ์์์ ์ง์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค. OS ํ์ผ ์์คํ ์ถ์์ ๋น๋ฆฌ์ง ์๊ณ , DB๊ฐ ๋ค๋ฅธ ์ผ๋ฐ ๋ ์ฝ๋๋ฅผ ์ ์ฅํ ๋ ์ฐ๋ ํ์ด์ง ํ ๋น๊ธฐ ์์ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๋ธ๋ก์ผ๋ก ํผ์ณ ์ ์ฅํฉ๋๋ค. ์ด ๊ฒฝ์ฐ buffer pool, ํธ๋์ญ์ , ์ ๊ธ ๊ฐ์ DB์ ์ผ๋ฐ ๊ธฐ๋ฅ์ด ํฐ ๊ฐ์ฒด์๋ ๊ทธ๋๋ก ์ ์ฉ๋ฉ๋๋ค. ๋ ๊ฐ์ฒด๋ฅผ B+-tree ํ์ผ ๊ตฌ์กฐ ์์ ์ฌ๋ ค๋๋ฉด ๊ฐ์ฒด ์ ์ฒด๋ฅผ ์ฝ๋ ๊ฒ๋ฟ ์๋๋ผ ์์์ ๋ฐ์ดํธ ๋ฒ์๋ฅผ ์ฝ๊ฑฐ๋, ๊ฐ์ฒด์ ์ผ๋ถ๋ฅผ ์ฝ์ ยท์ญ์ ํ๋ ์ฐ์ฐ๊น์ง ํจ์จ์ ์ผ๋ก ์ง์ํ ์ ์์ต๋๋ค โ OS ํ์ผ ํ ๋ฉ์ด๋ฆฌ๋ก ๋๋ ์ฒซ ๋ฒ์งธ ๋ฐฉ์์ด ๋ถ๋ถ ๊ฐฑ์ ์ ๋ค๋ฃจ๊ธฐ ์ด๋ ค์ด ๊ฒ๊ณผ ๋๋น๋๋ ํฐ ์ฅ์ ์ ๋๋ค.
๋ค๋ง ๋งค์ฐ ํฐ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ๋๋ ๊ฒ์๋ ๋ช ๊ฐ์ง ์ฑ๋ฅ ๋ถ๋ด์ด ๋ฐ๋ฆ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํฐ ๊ฐ์ฒด์ ์ ๊ทผํ๋ ๋น์ฉ์ด ์ฒซ ๋ฒ์งธ์ด๊ณ , ๋ ๋ฒ์งธ๋ ๋ฐฑ์ ํฌ๊ธฐ์ ๋๋ค. ๋ง์ ์กฐ์ง์์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋คํ๋ฅผ ๋ง๋๋๋ฐ, ํฐ ๊ฐ์ฒด๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ฅ๋์ด ์์ผ๋ฉด ๋คํ ํฌ๊ธฐ๊ฐ ๋ฌด์ํ ์ ์์ ์ ๋๋ก ๋ถ์ด๋ฉ๋๋ค.
์ด๋ฐ ์ด์ ๋ก ์์๊ณผ ๊ฐ์ ๋งค์ฐ ํฐ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ถ์ ํ์ผ ์์คํ ์ ์ ์ฅํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๊ทธ ํ์ผ์ ๊ฒฝ๋ก๋ง ์์ฑ์ผ๋ก ๋ณด๊ดํ๋ ๋ฐฉ์์ ์ฑํํ๋ ์์ฉ์ด ๋ง์ต๋๋ค. ๋ค๋ง ์ด ๋ฐฉ์์๋ ๋ณ๋์ ์ํ์ด ๋ฐ๋ผ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ฐ๋ฆฌํค๋ ํ์ผ์ด ์ธ๋ถ์์ ์ญ์ ๋๋ฉด ์ผ์ข ์ ์ธ๋ ํค ์ ์ฝ ์๋ฐ๊ณผ ๋น์ทํ ์ํฉ์ด ๋ฐ์ํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ถํ ์ ์ด ์ญ์ ์ธ๋ถ ํ์ผ ์์คํ ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค. ์ผ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ผ ์์คํ ๊ณผ์ ํตํฉ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ด๋ฌํ ์ ์ฝ๊ณผ ๊ถํ์ด ์ผ๊ด๋๊ฒ ์ ์ง๋๋๋ก ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Oracle์ SecureFiles์ Database File System์ ์ด๋ฌํ ํตํฉ์ ์ ๊ณตํฉ๋๋ค.
๋ง๋ฌด๋ฆฌ
์ง๊ธ๊น์ง ๋ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ฐ์ดํธ๋ก ํํํ๋์ง์, ํ ๋ธ๋ก ์์ ์ฌ๋ฌ ๋ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ์นํ ์ง, ๊ทธ๋ฆฌ๊ณ ๋ธ๋ก๋ณด๋ค ํฐ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃฐ์ง๊น์ง ์ดํด๋ณด์์ต๋๋ค. ๋ชจ๋ ํ ๋ธ๋ก ์์ byte๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃฐ์ง์ ๊ดํ ๋ฐฉ๋ฒ๋ก ์ด์์ต๋๋ค.
๋ค์ ๊ธ์์๋ ํ ๋จ๊ณ ๋ ๋์๊ฐ ๊ฐ์ ๋ฆด๋ ์ด์ ์ ์ํ ์๋ง์ ๋ ์ฝ๋๋ค์ ํ์ผ ์์ ์ด๋ค ์์๋ก, ์ด๋ ๋ธ๋ก์ ๋ฌถ์ด ๋ ๊ฒ์ธ์ง๋ฅผ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.