/
์ฐธ์กฐ ํ…Œ์ด๋ธ” (Lookup Table)

์ฐธ์กฐ ํ…Œ์ด๋ธ” (Lookup Table)

๊ฐœ๋…


์ฐธ์กฐ ํ…Œ์ด๋ธ”์€ ํœ˜๋ฐœ์„ฑ ํ…Œ์ด๋ธ”๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ์‹œํ‚ด์œผ๋กœ์จ ๋น ๋ฅธ ์งˆ์˜ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ ๋ฐ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด์„œ ๋””์Šคํฌ์— ๋ฐ˜์˜ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ์˜ ์˜๊ตฌ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. ํœ˜๋ฐœ์„ฑ ํ…Œ์ด๋ธ”๊ณผ ๋น„๊ตํ•˜์—ฌ ์งˆ์˜ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์€ ๋™์ผํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐ ๋ณ€๊ฒฝ ์„ฑ๋Šฅ์€ ๋‹ค์†Œ ๋–จ์–ด์ง„๋‹ค.

์ด ํ…Œ์ด๋ธ”์˜ ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋‚ฎ์€ ์ž…๋ ฅ/๊ฐฑ์‹  ์„ฑ๋Šฅ

ํœ˜๋ฐœ์„ฑ ํ…Œ์ด๋ธ”๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๋””์Šคํฌ ๋ฐ์ดํ„ฐ ์ด๋ฏธ์ง€ ์œ ์ง€์— ๋”ฐ๋ฅธ ์ž…๋ ฅ ๋ฐ ๊ฐฑ์‹  ์„ฑ๋Šฅ์ด ๋‚ฎ์œผ๋ฏ€๋กœ ๋Œ€์‹œ๋ณด๋“œ (Dashboard) ๋“ฑ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํ‘œํ˜„์„ ์œ„ํ•œ ํ…Œ์ด๋ธ”์—๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค.

์Šคํ‚ค๋งˆ ๋ณด์กด

์—ญ์‹œ ํœ˜๋ฐœ์„ฑ ํ…Œ์ด๋ธ”๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ์ฐธ์กฐ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ (์Šคํ‚ค๋งˆ) ์ •๋ณด๋Š” ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ํ›„์—๋„ ์œ ์ง€๋œ๋‹ค. ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช…์‹œ์ ์œผ๋กœ DROP TABLE ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ๋ณด์กด

์ฐธ์กฐ ํ…Œ์ด๋ธ”์€ ํœ˜๋ฐœ์„ฑ ํ…Œ์ด๋ธ”๊ณผ ๋‹ฌ๋ฆฌ ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„ ์ข…๋ฃŒ ์ง์ „์˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌ๋œ๋‹ค.

์ธ๋ฑ์Šค ์ œ๊ณต

ํœ˜๋ฐœ์„ฑ ํ…Œ์ด๋ธ”๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ RED-BLACK ์ธ๋ฑ์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฒ€์ƒ‰ ๊ณผ์ •์ด๋‚˜ ๋กœ๊ทธ ํ…Œ์ด๋ธ”๊ณผ์˜ Join ๊ณผ์ •์—์„œ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.


์ž‘์—… ๋ฐฉ๋ฒ•



Sequence for Lookup Table


Lookup ํ…Œ์ด๋ธ”์˜ Uniqueํ•œ Record๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Data์˜ ์ž…๋ ฅ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์œ„ํ•ด Sequence๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ Lookup ํ…Œ์ด๋ธ”์—์„œ datetime column์„ ์‚ฌ์šฉํ•˜์—ฌ Record์˜ ์ˆœ์„œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ

datetime ๊ฐ’์ด ์ค‘๋ณต๋  ๊ฒฝ์šฐ Record์˜ ์ˆœ์„œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ต๊ณ  ๋ฐ์ดํ„ฐ ์ค‘๋ณต์œผ๋กœ ์ธํ•œ Application์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋“ฑ์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.


Sequence ์ง€์› Machbase Edition

Edge / Fog / Cluster


Sequence ์ง€์› Table ์ข…๋ฅ˜

Lookup Table


Lookup ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ Sequence ์„ค์ •

Create Table SQL ๋ฌธ์œผ๋กœ Lookup ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ Sequence๋กœ ์‚ฌ์šฉํ•  ์ปฌ๋Ÿผ์— PROPERTY ์ ˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ Sequence๋ฅผ ์„ค์ •ํ•˜๊ฒ ๋‹ค๊ณ  ๋ช…์‹œํ•˜๋ฉด ๋œ๋‹ค.

Sequence๋กœ ์„ค์ •ํ•  ์ปฌ๋Ÿผ์€ LONG datatype(64bit, unsigned)๋งŒ ์ง€์›ํ•˜๋ฉฐ ์ด์™ธ์˜ datatype์€ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ถ”๊ฐ€๋กœ, Sequence์˜ ์‹œ์ž‘๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ 1๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ Sequence๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘์ด ๋œ๋‹ค. (0์ด๋‚˜ ์Œ์ˆ˜๋Š” ์ง€์› ์•ˆํ•จ)

CREATEย LOOKUPย TABLEย table_name (v1 LONG PROPERTY(SEQUENCE=1), v2ย VARCHAR(10));


Sequence ์ปฌ๋Ÿผ์˜ ์‚ฌ์šฉ

Lookup ํ…Œ์ด๋ธ”์˜ Sequence ์ปฌ๋Ÿผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผ๋ฐ˜ Long ์ปฌ๋Ÿผ๊ณผ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ Sequence ๊ฐ’์€ ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

Sequence ์ปฌ๋Ÿผ์— ์ง์ ‘ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ์šฉ๋˜๋ฉฐ ์‹ฌ์ง€์–ด ์ค‘๋ณต ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋Œ€์‹ , Sequence ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด nextval ์ด๋ผ๋Š” ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ Sequence ์ „์šฉ Function์„ ์‚ฌ์šฉํ•˜์—ฌ Sequence๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋‚ด๋ถ€์ ์œผ๋กœ๋Š” Sequence๋กœ ์„ค์ •๋œ ์ปฌ๋Ÿผ์˜ ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์— ๋Œ€ํ•ด ์ €์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ดํ›„์— nextval Function์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅํ•  ๋•Œ Sequence ์ปฌ๋Ÿผ ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’ + 1 ์˜ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.
Sequence ์ปฌ๋Ÿผ์˜ ์‚ฌ์šฉ ์˜ˆ

//ย Sequenceย ์ปฌ๋Ÿผ์— nextvalย Function์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œย Sequenceย ๊ฐ’ ์ž…๋ ฅ
INSERTย INTOย table_name (v1, v2)ย valuesย (nextval(v1),ย 'aaaa');
ย ย 
//ย Sequenceย ์ปฌ๋Ÿผ์— ์ง์ ‘ ๊ฐ’์„ ์ž…๋ ฅ
INSERTย INTOย table_name (v1, v2)ย valuesย (100,ย 'aaaa');
ย ย 
//ย Sequenceย ์ปฌ๋Ÿผ์— ์—ฐ์‚ฐ์„ ํ†ตํ•œ ๊ฐ’์„ ์ž…๋ ฅ
INSERTย INTOย table_name (v1, v2)ย valuesย (1 + 99,ย 'aaaa');
ย ย 
//ย Sequenceย ์ปฌ๋Ÿผ์„ ํฌํ•จํ•œ Lookup ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ •์ƒย Select
SELECTย v1, v2ย FROMย table_name;
ย 
//ย Sequenceย ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œย Selectย (nextval ์ปฌ๋Ÿผ์€ย insertย ์‹œ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
SELECTย nextval(v1), v2ย FROMย table_name;

Related content