[STARTERS 4๊ธฐ TIL] #32์ผ์ฐจ(23.03.22)

 


๐Ÿ“š ์˜ค๋Š˜์˜  ํ•™์Šต

1. ATTR ๊ฐ„๋‹จ ์˜ˆ์ œ

โ‘  ๋‹จ์ผ ๊ฐ’๋งŒ ์กด์žฌํ•˜๋Š” ํ–‰ ์ฐพ๊ธฐ

→ ATTR(Order ID)์„ ํ•„ํ„ฐ์— ๊ฑธ์–ด ํ•œ ๋ฒˆ๋งŒ ํŒ”๋ฆฐ ์ œํ’ˆ ๋ชฉ๋ก์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ‘ก ๊ฐ™์€ ์ฐจ์› ๋‹ค๋ฅธ ์ง‘๊ณ„

ATTR(๋ฌธ์ž์—ด)์œผ๋กœ ์ง‘๊ณ„ํ•˜์—ฌ, ๊ฐ™์€ ์ฐจ์› ๋‚ด ๋‹ค๋ฅธ ์ง‘๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ‘ข ์„ธ๋ถ„ํ™” ์ˆ˜์ค€ ํŒŒ์•…

 → ATTR์„ ๋„๊ตฌ ์„ค๋ช…์— ์ถ”๊ฐ€ํ•˜์—ฌ, ๋ถ„๋ฅ˜ ์„ธ๋ถ„ํ™” ์ˆ˜์ค€์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2. ๊ฒฐํ•ฉ๋œ ํ•„๋“œ - ์ฐจ์› ์ •๋ ฌ nested setting

์ •๋ ฌ ์ „ / ์ •๋ ฌ ํ›„

์ฒซ๋ฒˆ์งธ ์‚ฌ์ง„์„ ๋ณด๋ฉด, ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ์ฃผ ๋ณ„ ๋ถ„๋ฅ˜๊ฐ€ ๋งค์ถœ ์ˆœ์ด ์•„๋‹Œ ์ฃผ ์ด๋ฆ„ ์ˆœ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

์ฆ‰, 3๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ๋ชจ๋“  ์ฃผ๋Š” ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋‹ค.

 

โ˜…โ˜… ์šฐ๋ฆฌ๋Š” ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ์ฃผ ๋ณ„ ๋งค์ถœ ์ˆœ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

 โ‘  ๋‘๋ฒˆ์งธ ์‚ฌ์ง„์—์„œ ์„ ํƒ๋˜์–ด ์žˆ๋Š” [State/Province]์™€ [Category]๋ฅผ ๊ฒฐํ•ฉ๋œ ํ•„๋“œ๋กœ ์„ค์ •

 โ‘ก ํ•ด๋‹น ๊ฒฐํ•ฉ๋œ ํ•„๋“œ๋ฅผ ์„ธ๋ถ€ ์„ค์ •์— ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ(์ œ์ผ ์ƒ๋‹จ)

 

 

3. ์ง‘ํ•ฉ์ด๋ž€?
 ์ง‘ํ•ฉ ์ด๋ก 

 ํ•˜๋‚˜์˜ ํ•„๋“œ๋ฅผ ๋‘˜๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ

 

 ์ง‘ํ•ฉ์ด ํ•„ํ„ฐ์™€ ๋‹ค๋ฅธ ์ 

· ์ง‘ํ•ฉ : ํ•„๋“œ๋ฅผ ๋‚˜๋ˆ„์ง€๋งŒ ์–ด๋Š ๊ฒƒ๋„ ์ œ์™ธํ•˜์ง€ ์•Š์Œ

· ํ•„ํ„ฐ : ํ•„๋“œ๋ฅผ ๋‚˜๋ˆ„๊ณ  ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ œ๊ฑฐ

 → ์ง‘ํ•ฉ์ด ํ•„ํ„ฐ๋ณด๋‹ค ์ƒ์œ„ ๊ฐœ๋…. ํ•„ํ„ฐ๋Š” ์ง‘ํ•ฉ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์–‘์ƒ ์ค‘ ํ•˜๋‚˜

 → ๊ทธ๋Ÿผ, ์ง‘ํ•ฉ์„ ํ•„ํ„ฐ๋กœ ๋„ฃ์œผ๋ฉด ํ•„ํ„ฐ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 T/F ํ•„๋“œ์™€ ๋‹ค๋ฅธ ์ 

์ง‘ํ•ฉ vs T/F

· ์ง‘ํ•ฉ : ์ง‘๊ณ„๋œ ๊ฐ’์— ๋Œ€ํ•œ sum(sales) → ์•„๋ฌด๋ฆฌ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ์„ ํƒ ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  ์ฒ˜์Œ์— Customer Name์œผ๋กœ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Customer Name์— ๋Œ€ํ•œ sum(sales)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง‘ํ•ฉ์ด ๊ณ ์ •๋œ๋‹ค.

· T/F : ๋‚ด๊ฐ€ ์ง€๊ธˆ ๋ณด๊ณ ์žˆ๋Š” VLOD ์ฐจ์›์— ๋Œ€ํ•œ sum(sales) → ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์„ ํƒ ๊ฐ’์ด ๋‹ฌ๋ผ์ง„๋‹ค.

 

 

4. ๊ฐ„๋‹จ LOD ์ด๋ก 
LOD

์ด๋ฏธ ์บ”๋ฒ„์Šค์—์„œ ๋ณด์ด๋Š” ์„ธ๋ถ€ ์ˆ˜์ค€(VLOD)์€ ์œ ์ง€ํ•˜๋ฉด์„œ ์ถ”๊ฐ€์  ์ •๋ณด๋ฅผ ๋ณด๊ณ ์‹ถ์„ ๋•Œ

์‚ฌ์šฉํ•˜๋Š” ๊ณ„์‚ฐ์‹์„ '์„ธ๋ถ€์ˆ˜์ค€(LOD) ๊ณ„์‚ฐ์‹'์ด๋ผ ํ•œ๋‹ค.

 

์„ธ๋ถ€ ์ˆ˜์ค€ ๊ณ„์‚ฐ์‹ ํ•จ์ˆ˜

1.  {FIXED [์ฐจ์›] ... : ์ง‘๊ณ„์‹([์ธก์ •๊ฐ’])}

2. {INCLUDE [์ฐจ์›] ... : ์ง‘๊ณ„์‹([์ธก์ •๊ฐ’])}

3. {EXCLUDE [์ฐจ์›] ... : ์ง‘๊ณ„์‹([์ธก์ •๊ฐ’])}

 

โ‘  FIXED

[Example 1]

์œ„ ์‚ฌ์ง„์—์„œ 1๋ฒˆ๊ณผ 2๋ฒˆ ๊ทธ๋ž˜ํ”„๋Š” ๋™์ผํ•œ ์ˆ˜์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ํ•˜๋‚˜์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋˜‘๊ฐ™์ด ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋‘ ๊ทธ๋ž˜ํ”„๋Š” ๋‹ค๋ฅธ ๊ทธ๋ž˜ํ”„๋‹ค.

 

๋จผ์ €, 1๋ฒˆ ๊ทธ๋ž˜ํ”„๋Š” VLOD ์ƒ์— ๋‚˜ํƒ€๋‚œ ๊ทธ๋Œ€๋กœ [Category > Sub-Category]์˜ ๋ฒ”์ฃผ ํ•˜์—์„œ Sales์˜ ํ‰๊ท ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋ฐ˜๋ฉด, 2๋ฒˆ ๊ทธ๋ž˜ํ”„๋Š” LOD ๊ณ„์‚ฐ์‹์„ ์ด์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด๋‚ธ ํ•„๋“œ์˜ ์ˆ˜์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ทธ๋ž˜ํ”„๋‹ค.

2๋ฒˆ์—์„œ ์‚ฌ์šฉํ•œ LOD ๊ณ„์‚ฐ์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

{ FIXED [Sub-Category] : AVG([Sales])}

FIXED๋ฅผ ํ†ตํ•ด ์ฐจ์›์„ Sub-Category๋กœ ๊ณ ์ •์‹œํ‚ค๊ณ , ๊ทธ์— ๋Œ€ํ•œ ๋งค์ถœ ํ‰๊ท ์ด ์ง‘๊ณ„๋˜๋„๋ก ์„ค์ •ํ•œ ๊ฒƒ์ด๋‹ค.

 

 

[Example 2]

์ด์ „ ์˜ˆ์‹œ์™€ ๊ฐ™์€ ์‹œํŠธ์—์„œ ์ฐจ์›์„ [Category > Sub-Category > Manufactuer]๋กœ ํ•œ ๋‹จ๊ณ„ ๋” ์„ธ๋ถ„ํ™”์‹œ์ผฐ๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ 1๋ฒˆ ๊ทธ๋ž˜ํ”„๋Š” VLOD์— ๋”ฐ๋ผ ์ธก์ •๊ฐ’์ด Manufactuer์— ๋”ฐ๋ฅธ ๋งค์ถœ ํ‰๊ท ์œผ๋กœ ๋ณ€ํ™”ํ•˜์˜€์ง€๋งŒ,

2๋ฒˆ ๊ทธ๋ž˜ํ”„์˜ ์ˆ˜์น˜๋Š” ๋ณ€ํ•˜์ง€ ์•Š์•˜๋‹ค.

FIXED๋ฅผ ํ†ตํ•ด ์ธก์ •๊ฐ’ ์ง‘๊ณ„์— ๋Œ€ํ•œ ์ฐจ์›์ด ๊ณ ์ •๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์œ„์™€ ๊ฐ™์ด ๋‘๋ฒˆ์งธ ์˜ˆ์‹œ ์‹œํŠธ์— ์ด์ค‘์ถ•์„ ๊ฑธ๋ฉด, Sub-Category๋ณ„ ํ‰๊ท  ๋งค์ถœ๊ณผ ๊ฐ Manufactuer์˜ ํ‰๊ท  ๋งค์ถœ ์ฐจ๋ฅผ ๋น„๊ตํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

โ‘ก INCLUDE

VLOD์— ํฌํ•จ๋˜์ง€ ์•Š์€ ํŠน์ • ์ฐจ์›์„ ํฌํ•จํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

[Example 1]

๋‘ ๊ทธ๋ž˜ํ”„ ๊ฐ„ ์ˆ˜์น˜ ์ฐจ์ด๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค.

์œ„ ๊ทธ๋ž˜ํ”„๋Š” VLOD์— ๋”ฐ๋ผ Category ๋ณ„๋กœ raw ๋ฐ์ดํ„ฐ์˜ AVG(Sales)์ด๋ฉฐ,

์•„๋ž˜ ๊ทธ๋ž˜ํ”„๋Š” Sub-Category ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด์ง„ AVG(Sales) ๋ฐ์ดํ„ฐ๋ฅผ Category ๋ณ„๋กœ ๋‹ค์‹œ ํ‰๊ท  ์ง‘๊ณ„ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค.


๋‹ค์‹œ ๋งํ•ด,

โ‘  Include LOD์— ๋ช…์‹œ๋œ ์ฐจ์›(Sub-Category)์„ ํฌํ•จํ•˜์—ฌ ์ง‘๊ณ„(AVG(Sales))๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฉฐ,

โ‘ก VLOD์— ๋งž์ถ”์–ด ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ๋ฒˆ์งธ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์žฌ์ง‘๊ณ„(AVG(Sales))ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฐจ์›์„ Category > Sub-Category๋กœ ํ™•์žฅํ•˜๋‹ˆ, ๋‘ ๊ทธ๋ž˜ํ”„์˜ ์ˆ˜์น˜๊ฐ€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์ฒซ๋ฒˆ์งธ ์‚ฌ์ง„ ๋‚ด ์•„๋ž˜ ๊ทธ๋ž˜ํ”„๋Š” ๋‘๋ฒˆ์งธ ์‚ฌ์ง„์— ๋‚˜์˜จ Sub-Category ๋ณ„ ํ‰๊ท  ๋งค์ถœ์„ Category ํ‘œํ˜„ํ•˜๊ธฐ์œ„ํ•ด ํ•œ ๋ฒˆ ๋” ์ง‘๊ณ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

โ‘ข EXCLUDE

VLOD์— ํฌํ•จ๋œ ํŠน์ • ์ฐจ์›์„ ์ œ์™ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

์ฒซ๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„ : VLOD์— ๋”ฐ๋ผ Category > Sub-Category ๋ณ„๋กœ ํ‘œํ˜„๋œ AVG(Sales)

๋‘๋ฒˆ์งธ ๊ทธ๋ž˜ํ”„ : Sub-Category ์ฐจ์›์„ ์ œ์™ธํ•œ, Category ๋ณ„๋กœ ํ‘œํ˜„๋œ AVG(Sales) 

 

๋‹ค์‹œ ๋งํ•ด,

โ‘  Exclude LOD์— ๋ช…์‹œ๋œ ์ฐจ์›์„ ์ œ์™ธํ•œ ํ›„ ์ง‘๊ณ„๊ฐ€ ์ด๋ฃจ์–ด์ง

โ‘ก VLOD์— ๋งž์ถ”์–ด ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ฒซ๋ฒˆ์งธ ๋‹จ๊ณ„ ๊ฒฐ๊ณผ๋ฅผ ๋ณต์ œํ•จ


์–ด๋ ค์šด LOD..๐Ÿ˜ฉ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ ํ•˜์—ฌ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Ž

 

[Tableau] LOD ํ‘œํ˜„์‹

๊ฐ„๋‹จํ•œ ๊ตฌ๋ฌธ์œผ๋กœ ๊ฐ•๋ ฅํ•œ ํ‘œํ˜„์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” LOD ํ‘œํ˜„์‹ (Include, Exclude, Fixed)

velog.io