๊ธ๋ก๋ฒ์ด ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๊ธ๋ก๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ด๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์์ฐ์ฑ์ด๋ ๋ฌธ์ ํด๊ฒฐ์ ๋จ์ํ(
์ ์ญ์ SQL์ ํ
์ด๋ธ๊ณผ ์์ ํ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋ ํน๋ณํ ๋ฐฉ๋ฒ์
๋๋ค. ๊ทธ๋ค์ 1966๋
์ ์ธ์ด๋ก ๋ฑ์ฅํ์ต๋๋ค.
์ต์ DBMS์ ์ ์ญ ๋ณ์๋ ํธ๋์ญ์ , ๋ก๊น , ๋ณต์ ๋ฐ ํํฐ์ ๋์ ์ง์ํฉ๋๋ค. ์ ๊ฒ๋ค. ํ๋์ ์ด๊ณ ์์ ์ ์ด๋ฉฐ ๋ถ์ฐ๋๊ณ ๋น ๋ฅธ ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์ญ์ ๊ด๊ณํ ๋ชจ๋ธ๋ก ์ ํ๋์ง ์์ต๋๋ค. ํน์ ์์ ์ ์ต์ ํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ ๋กญ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ๋ง์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ ์ญ ๋ณ์๋ฅผ ํ๋ช ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ๊ด๊ณํ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์๊ฐ ๊ฟ๊ฟ์๋ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์ง์ ํ ๋น๋ฐ ๋ฌด๊ธฐ๊ฐ ๋ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ญ ๋ณ์๋ ๊ณ ๊ธ ๋ฐ ์ ๊ธ์ ๋ง์ ์ต์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ๊ธฐ์ฌ์์๋ ์ ์ญ์ด๊ฐ ์๋ ๋์จ ์ธ์ด๊ฐ ์๋๋ผ ํน๋ณํ ์ ์ญ์ด์ ์ด์ ์ ๋ง์ถ ๊ฒ์
๋๋ค.
2. ๊ธ๋ก๋ฒ ์๋ ๋ฐฉ์
๋จผ์ ๊ธ๋ก๋ฒ์ด ์ด๋ป๊ฒ ์๋ํ๊ณ ๊ทธ๋ค์ ๊ฐ์ ์ด ๋ฌด์์ธ์ง ์ดํดํฉ์๋ค. ์ ์ญ ๋ณ์๋ ๋ค์ํ ๊ด์ ์์ ๋ณผ ์ ์์ต๋๋ค. ๊ธฐ์ฌ์ ์ด ๋ถ๋ถ์์๋ ์ด๋ค์ ๋๋ฌด๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋๋ ๊ณ์ธต์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ๊ฐ์ต๋๋ค.
๊ฐ๋จํ ๋งํด์ ์ ์ญ์ ์๊ตฌ ๋ฐฐ์ด์
๋๋ค. ๋์คํฌ์ ์๋์ผ๋ก ์ ์ฅ๋๋ ๋ฐฐ์ด์
๋๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ด๋ณด๋ค ๋ ๊ฐ๋จํ ๊ฒ์ ์์ํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ์ฝ๋(COS/M ์ธ์ด)์์๋ ๊ธฐํธ๋ง ์ผ๋ฐ ์ฐ๊ด ๋ฐฐ์ด๊ณผ ๋ค๋ฆ
๋๋ค. ^ ์ด๋ฆ ์์.
์ ์ญ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด SQL ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ๋ฐฐ์ธ ํ์๊ฐ ์์ผ๋ฉฐ ์์ ๋ช ๋ น์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ํ ์๊ฐ ์์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ์๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. 2๊ฐ์ ๊ฐ์ง๊ฐ ์๋ ๋จ์ผ ๋ ๋ฒจ ํธ๋ฆฌ์ ๋๋ค. ์์ ๋ COS๋ก ์์ฑ๋์์ต๋๋ค.
Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"
์ ๋ณด๋ฅผ ์ ์ญ(Set ๋ช
๋ น)์ ์ฝ์
ํ๋ฉด ๋ค์ 3๊ฐ์ง ์ผ์ด ์๋์ผ๋ก ๋ฐ์ํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํฉ๋๋ค.
- ์ธ๋ฑ์ฑ. ๊ดํธ ์์ ๋ด์ฉ์ ํค(์๋ฌธํ์์๋ "์๋ ์ฒจ์")์ด๊ณ ๋ฑํธ ์ค๋ฅธ์ชฝ์๋ ๊ฐ("๋ ธ๋ ๊ฐ")์ด ์์ต๋๋ค.
- ์ ๋ ฌ. ๋ฐ์ดํฐ๋ ํค๋ณ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ์์ผ๋ก ๋ฐฐ์ด์ ํ์ํ ๋ ์ฒซ ๋ฒ์งธ ์์๋ "Sergey Smith"์ด๊ณ ๋ ๋ฒ์งธ ์์๋ "John Sidorov"์ ๋๋ค. ์ ์ญ์์ ์ฌ์ฉ์ ๋ชฉ๋ก์ ์์ ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ ฌํ๋ ๋ฐ ์๊ฐ์ ๋ญ๋นํ์ง ์์ต๋๋ค. ๋ํ ์กด์ฌํ์ง ์๋ ํค๋ถํฐ ์์ํ์ฌ ์ ๋ ฌ๋ ๋ชฉ๋ก์ ์ถ๋ ฅ์ ์์ฒญํ ์ ์์ต๋๋ค. ์ถ๋ ฅ์ ์กด์ฌํ์ง ์๋ ํค ๋ค์ ์ค๋ ์ฒซ ๋ฒ์งธ ์ค์ ํค์์ ์์๋ฉ๋๋ค.
์ด ๋ชจ๋ ์์
์ ๋๋ผ์ธ ์ ๋๋ก ๋น ๋ฅด๊ฒ ์ด๋ฃจ์ด์ง๋๋ค. ๋ด ์ง ์ปดํจํฐ์์๋ ๋จ์ผ ํ๋ก์ธ์ค์์ ์ต๋ 750๊ฐ์ ์ฝ์
/์ด ๊ฐ์ ์ป์์ต๋๋ค. ๋ฉํฐ ์ฝ์ด ํ๋ก์ธ์์์๋ ๊ฐ์ด ๋๋ฌํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์ฝ์
์๋ ์์ฒด๋ ๊ทธ๋ค์ง ์๋ฏธ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ์ ๋ณด๋ฅผ ํ
์คํธ ํ์ผ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ธ ์ ์์ต๋๋ค.
- ๊ธ๋ก๋ฒ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์๋ก์ด ๋ ธ๋๋ฅผ ์ฝ์ ํ ์ ์๋ ์๋์ ๋๋ค.
- ์ ์ญ ๋ฐ์ดํฐ๋ ํญ์ ์ธ๋ฑ์ฑ๋ฉ๋๋ค. ํ ์์ค์์๋ ํธ๋ฆฌ ๊น์ ๊ณณ์์ ํ์ํ๋ ๊ฒ์ ํญ์ ๋น ๋ฆ ๋๋ค.
์ ์ญ์ ๋ ๋ฒ์งธ ๋ฐ ์ธ ๋ฒ์งธ ์์ค์ ๋ถ๊ธฐ๋ฅผ ๋ช ๊ฐ ๋ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36
๊ธ๋ก๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ค ๋ ๋ฒจ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ ์ ์๋ค๋ ๊ฒ์ ๋ถ๋ช
ํฉ๋๋ค. ๋ํ ์ฝ์
์ค ์๋ ์ธ๋ฑ์ฑ์ผ๋ก ์ธํด ๋ชจ๋ ๋
ธ๋์ ๊ฑฐ์ ์ฆ๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํธ๋ฆฌ์ ๋ชจ๋ ์์ค์์ ๋ชจ๋ ๊ฐ์ง๊ฐ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค.
๋ณด์๋ค์ํผ ์ ๋ณด๋ ํค์ ๊ฐ ๋ชจ๋์ ์ ์ฅ๋ ์ ์์ต๋๋ค. ์ด ํค ๊ธธ์ด(๋ชจ๋ ์ธ๋ฑ์ค ๊ธธ์ด์ ํฉ)๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ ๋ค๋ฅธ ํฅ๋ฏธ๋ก์ด ์ . ์์ ๋ ๋ฒจ์ ๋ ธ๋ ๊ฐ์ ์ง์ ํ์ง ์๊ณ ๋ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3
๋น ์์ ๊ฐ์ด ํ ๋น๋์ง ์์ ๋
ธ๋์
๋๋ค.
์ ์ญ์ ๋ ์ ์ดํดํ๊ธฐ ์ํด ์ด๋ฅผ ๋ค๋ฅธ ํธ๋ฆฌ(์ ์ ํธ๋ฆฌ ๋ฐ ํ์ผ ์์คํ
์ด๋ฆ ํธ๋ฆฌ)์ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฅ ์น์ํ ๊ณ์ธต ๊ตฌ์กฐ์ธ ์ ์ญ์ ๋๋ฌด๋ฅผ ์ ์๊ณผ ๋คํ์์ ์๋ผ๋ ์ผ๋ฐ ๋๋ฌด ๋ฐ ํ์ผ ์์คํ ๊ณผ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
์ ์์์์ ๋ณผ ์ ์๋ฏ์ด ์๊ณผ ์ด๋งค๋ ๊ฐ์ง ๋์์๋ง ๋ฐ๊ฒฌ๋ฉ๋๋ค.
ํ์ผ ์์คํ
- ์ ๋ณด๋ ์ ๊ทํ๋ ํ์ผ ์ด๋ฆ์ธ ๋ถ๊ธฐ ๋์๋ง ์ ์ฅ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ ์ญ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค.
์ฐจ์ด์ :
- ๋ด๋ถ ๋ ธ๋: ์ ์ญ์ ์ ๋ณด๋ ๋ถ๊ธฐ ๋๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ ธ๋์ ์ ์ฅ๋ ์ ์์ต๋๋ค.
- ์ธ๋ถ ๋ ธ๋: ๊ธ๋ก๋ฒ์ ๊ฐ์ง ๋์ ๊ฐ์ ์ ์ํด์ผ ํ์ง๋ง FS์ ์ ์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ด๋ถ ๋
ธ๋ ์ธก๋ฉด์์ ์ ์ญ ๊ตฌ์กฐ๋ ํ์ผ ์์คํ
๋ฐ ์ ์ ํธ๋ฆฌ์ ์ด๋ฆ ํธ๋ฆฌ ๊ตฌ์กฐ์ ์์ ์งํฉ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ์ ๊ฒ๋ค. ๋ ์ ์ฐํด์ก์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ธ๋ก๋ฒ์ ๊ฐ ๋ ธ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ์์ ํธ๋ฆฌ.
์ ์ญ์ ์์ ์ ๋ ์ ์ดํดํ๊ธฐ ์ํด ํ์ผ ์์คํ ์์ฑ์๊ฐ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ ์ญ๊ณผ ์ ์ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ค๋ฉด ์ด๋ค ์ผ์ด ์ผ์ด๋ ์ง ์์ํด ๋ณด์ญ์์ค.
- ๋๋ ํฐ๋ฆฌ์์ ๋จ์ผ ํ์ผ์ ์ญ์ ํ๋ฉด ํด๋น ๋๋ ํฐ๋ฆฌ๋ ๋ฌผ๋ก ๋ฐฉ๊ธ ์ญ์ ํ ๋๋ ํฐ๋ฆฌ ํ๋๋ง ํฌํจํ๋ ๋ชจ๋ ์์ ๋๋ ํฐ๋ฆฌ๋ ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค.
- ๋๋ ํ ๋ฆฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋จ์ํ ํ์ ํ์ผ์ด ์๋ ํ์ผ๊ณผ ํ์ ํ์ผ์ด ์๋ ํ์ผ์ด ์์ ์ ์์ต๋๋ค. ์ผ๋ฐ ๋๋ฌด์ ๋น์ ํ๋ฉด ๊ฐ์ง ํ๋ํ๋๊ฐ ์ด๋งค๊ฐ ๋ฉ๋๋ค.
- README.txt ํ์ผ ๊ฐ์ ๊ฒ์ ํ์ํ์ง ์์ ์๋ ์์ต๋๋ค. ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ๊ดํด ์ธ๊ธํด์ผ ํ ๋ชจ๋ ๋ด์ฉ์ ๋๋ ํ ๋ฆฌ ํ์ผ ์์ฒด์ ๊ธฐ๋ก๋ ์ ์์ต๋๋ค. ๊ฒฝ๋ก ๊ณต๊ฐ์์๋ ํ์ผ๋ช ๊ณผ ๋๋ ํฐ๋ฆฌ๋ช ์ ๊ตฌ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ผ๋ง์ผ๋ก๋ ๊ฐ๋ฅํ๋ค.
- ์ค์ฒฉ๋ ํ์ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ๋ ์๋๊ฐ ํฌ๊ฒ ํฅ์๋ฉ๋๋ค. Habrรฉ์๋ ์๋ฐฑ๋ง ๊ฐ์ ์์ ํ์ผ์ ์ญ์ ํ๋ ๋ฐ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๊ณ ์ด๋ ค์ด์ง์ ๋ํ ๊ธฐ์ฌ๊ฐ ์ฌ๋ฌ ๋ฒ ์์์ต๋๋ค(
1 ,2 ). ๊ทธ๋ฌ๋ ์ ์ญ์์ ์์ฌ ํ์ผ ์์คํ ์ ๋ง๋๋ ๊ฒฝ์ฐ์๋ ๋ช ์ด ๋๋ ๊ทธ ๋ช ๋ถ์ 1์ด ์์๋ฉ๋๋ค. ๊ฐ์ ์ฉ ์ปดํจํฐ์์ ํ์ ํธ๋ฆฌ ์ญ์ ๋ฅผ ํ ์คํธํ์ ๋ HDD(SSD ์๋)์ 96๊ณ์ธต ํธ๋ฆฌ์์ 341์ด ๋ง์ XNUMX๋ง~XNUMX์ต XNUMX๋ง ๊ฐ์ ๋ ธ๋๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. ๋ํ ์ ์ญ์ด ํฌํจ๋ ์ ์ฒด ํ์ผ๋ฟ๋ง ์๋๋ผ ํธ๋ฆฌ์ ์ผ๋ถ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
ํ์ ํธ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ์ ์ญ ๋ณ์์ ๋ ๋ค๋ฅธ ์ฅ์ ์
๋๋ค. ์ด๋ฅผ ์ํด์๋ ์ฌ๊ท๊ฐ ํ์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ์์ฒญ๋๊ฒ ๋นจ๋ฆฌ ์ผ์ด๋ฉ๋๋ค.
์ฐ๋ฆฌ ํธ๋ฆฌ์์๋ ๋ค์ ๋ช ๋ น์ผ๋ก ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ฃฝ์ด๋ค.
Kill ^a("+7926X")
์ ์ธ๊ณ์ ์ผ๋ก ์ด๋ค ์กฐ์น๋ฅผ ์ทจํ ์ ์๋์ง ๋ ์ ์ดํดํ๊ธฐ ์ํด ๊ฐ๋จํ ํ๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
COS์์ ์ ์ญ ์์ ์ ์ํ ๊ธฐ๋ณธ ๋ช ๋ น ๋ฐ ๊ธฐ๋ฅ
๋
ธ๋์ ๋ํ ๋ถ๊ธฐ ์ค์ (์์ง ์ ์๋์ง ์์ ๊ฒฝ์ฐ) ๋ฐ ๋
ธ๋ ๊ฐ
ํ์ ํธ๋ฆฌ ๋ณต์ฌ
ํ์ ํธ๋ฆฌ ์ ๊ฑฐ
ํน์ ๋
ธ๋์ ๊ฐ์ ์ญ์ ํฉ๋๋ค. ๋
ธ๋์์ ๋์ค๋ ํ์ ํธ๋ฆฌ๋ ๊ฑด๋๋ฆฌ์ง ์์ต๋๋ค.
ํธ๋ฆฌ๋ฅผ ์์ ํ ์ํํ์ฌ ํธ๋ฆฌ ๋ด๋ถ๋ก ๊น์์ด ๋ค์ด๊ฐ๋๋ค.
ํน์ ๋
ธ๋์ ๊ฐ์ง ์ํ
๋
ธ๋๊ฐ ์ ์๋์ด ์๋์ง ํ์ธ
๋
ธ๋ ๊ฐ์ ์์์ ์ผ๋ก ์ฆ๊ฐ์ํต๋๋ค. ACID์ ๊ฒฝ์ฐ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ์ต๊ทผ์๋ ๋ค์์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๊ถ์ฅ๋์์ต๋๋ค.
๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทํ์ ์ง๋ฌธ์ ๋ต๋ณํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค.
์ฑ ์ ๋ถ์ธ: ์ด ๊ธฐ์ฌ์ ์ด์ ๋ํ ๋ด ์๊ฒฌ์ ๋ด ์๊ฒฌ์ด๋ฉฐ InterSystems Corporation์ ๊ณต์ ์ ์ฅ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
ํ์ฅ
์ถ์ฒ : habr.com