์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ/์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ

| 2020 ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (ํ•„๊ธฐ) | 2. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ - ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ ๊ตฌํ˜„

ํ•œ์ฝ”๋”ฉ 2020. 8. 3. 22:27
728x90
728x90
34. ์ž๋ฃŒ ๊ตฌ์กฐ

 

์ž๋ฃŒ ๊ตฌ์กฐ

ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๋ฅผ ๊ธฐ์–ต์žฅ์น˜ ๊ณต๊ฐ„ ๋‚ด์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ €์žฅ๋œ ๊ทธ๋ฃน ๋‚ด์— ์กด์žฌํ•˜๋Š” ์ž๋ฃŒ ๊ฐ„์˜ ๊ด€๊ณ„, ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ๋“ฑ์„ ์—ฐ๊ตฌ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ

- ์ž๋ฃŒ์˜ ํ‘œํ˜„๊ณผ ๊ทธ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์—ฐ์‚ฐ

- ์ผ๋ จ์˜ ์ž๋ฃŒ๋“ค์„ ์กฐ์งํ•˜๊ณ  ๊ตฌ์กฐํ™”ํ•˜๋Š” ๊ฒƒ

- ์–ด๋– ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์—์„œ๋„ ํ•„์š”ํ•œ ๋ชจ๋“  ์—ฐ์‚ฐ๋“ค์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

- ์ž๋ฃŒ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง

 

 

โ€ข ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ๋ถ„๋ฅ˜

 

์„ ํ˜• ๊ตฌ์กฐ(Linear Structure)

 

1. ๋ฐฐ์—ด(Array)

๋™์ผํ•œ ์ž๋ฃŒ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜์—ด๋˜์–ด ์ˆœ์„œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ง‘ํ•ฉ

- ์ •์ ์ธ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ๊ธฐ์–ต ์žฅ์†Œ์˜ ์ถ”๊ฐ€๊ฐ€ ์–ด๋ ค์›€

- ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๊ธฐ์–ต ์žฅ์†Œ๋Š” ๋นˆ ๊ณต๊ฐ„์œผ๋กœ ๋‚จ์•„์žˆ์–ด ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ญ๋น„ ๋ฐœ์ƒ

- ๋ฐ˜๋ณต์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ž‘์—…์— ์ ํ•ฉํ•œ ๊ตฌ์กฐ

- ๋ฐ์ดํ„ฐ๋งˆ๋‹ค ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ ๊ฐ„ํŽธ

- ์‚ฌ์šฉํ•œ ์ฒจ์ž์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ n์ฐจ์› ๋ฐฐ์—ด์ด๋ผ ๋ถ€๋ฆ„

 

- a๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„

- '[์ˆซ์ž]' ๋Š” ์ฒจ์ž์— ํ•ด๋‹น

- ํ•˜๋‚˜์˜ ์‚ฌ๊ฐํ˜•์€ ํ•˜๋‚˜์˜ ๊ธฐ์–ต ์žฅ์†Œ

 

 

 

2. ์„ ํ˜• ๋ฆฌ์ŠคํŠธ(Linear List)

์ผ์ •ํ•œ ์ˆœ์„œ์— ์˜ํ•ด ๋‚˜์—ด๋œ ์ž๋ฃŒ ๊ตฌ์กฐ

- ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋Š” ์—ฐ์† ๋ฆฌ์ŠคํŠธ์™€ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌ๋ถ„

ํฌ์ธํ„ฐ (Pointer) : ํ˜„์žฌ์˜ ์œ„์น˜์—์„œ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์š”์†Œ

 

โ€ข ์—ฐ์† ๋ฆฌ์ŠคํŠธ(Contiguous List)

๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ์—ฐ์†๋˜๋Š” ๊ธฐ์–ต ์žฅ์†Œ์— ์ €์žฅ๋˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ

- ๊ธฐ์–ต ์žฅ์†Œ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์ •๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ต์žฅ์†Œ ์ด์šฉ ํšจ์œจ์€ ๋ฐ€๋„๊ฐ€ 1(๋นˆ ๊ณต๊ฐ„ ์—†์ด ๊ฝ‰ ์ฐจ๊ฒŒ ์‚ฌ์šฉ)๋กœ์„œ ๊ฐ€์žฅ ์ข‹์Œ

- ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฐ์†๋œ ๋นˆ ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์‚ฝ์ž…, ์‚ญ์ œ ์‹œ ์ž๋ฃŒ์˜ ์ด๋™ ํ•„์š”

 

โ€ข ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)

์ž๋ฃŒ๋“ค์„ ๋ฐ˜๋“œ์‹œ ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์—ด์‹œํ‚ค์ง€๋Š” ์•Š๊ณ  ์ž„์˜์˜ ๊ธฐ์–ต๊ณต๊ฐ„์— ๊ธฐ์–ต์‹œํ‚ค๋˜, ์ž๋ฃŒ ํ•ญ๋ชฉ์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ ๋ถ€๋ถ„์„ ์ด์šฉํ•ด ์„œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚จ ์ž๋ฃŒ๊ตฌ์กฐ

๋…ธ๋“œ (Node) : ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„๊ณผ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์ธ ๋งํฌ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ

- ๋…ธ๋“œ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ์šฉ์ด

- ๊ธฐ์–ต ๊ณต๊ฐ„์ด ์—ฐ์†์ ์œผ๋กœ ๋†“์—ฌ ์žˆ์ง€ ์•Š์•„๋„ ์ €์žฅ ๊ฐ€๋Šฅ

- ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ๋งํฌ ๋ถ€๋ถ„์ด ํ•„์š”ํ•ด ๊ธฐ์–ต ๊ณต๊ฐ„์˜ ์ด์šฉ ํšจ์œจ์ด ์ข‹์ง€ ์•Š์Œ

- ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์ฐพ๋Š” ์‹œ๊ฐ„์ด ํ•„์š”ํ•ด ์ ‘๊ทผ ์†๋„ ๋Š๋ฆผ

- ์ค‘๊ฐ„ ๋…ธ๋“œ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด ๊ทธ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์ฐพ๊ธฐ ํž˜๋“ฆ

 

 

3. ์Šคํƒ(Stack)

๋ฆฌ์ŠคํŠธ์˜ ํ•œ์ชฝ ๋์œผ๋กœ๋งŒ ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง€๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ

- ๊ฐ€์žฅ ๋‚˜์ค‘์— ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋จ = ํ›„์ž… ์„ ์ถœ(LIFO; Last In First Out) ๋ฐฉ์‹

- ์Šคํƒ์˜ ๋ชจ๋“  ๊ธฐ์–ต ๊ณต๊ฐ„์ด ๊ฝ‰ ์ฑ„์›Œ์ ธ ์ž‡๋Š” ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‹œ. ์˜ค๋ฒ„ํ”Œ๋กœ(Overflow) ๋ฐœ์ƒ

- ๋” ์ด์ƒ ์‚ญ์ œํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์‹œ. ์–ธ๋” ํ”Œ๋กœ(Underflow) ๋ฐœ์ƒ

 

 

 

4. ํ(Queue)

๋ฆฌ์ŠคํŠธ์˜ ํ•œ์ชฝ์—์„œ๋Š” ์‚ฝ์ž… ๋‹ค๋ฅธ ํ•œ์ชฝ์—์„œ๋Š” ์‚ญ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋„๋ก ๊ตฌ์„ฑํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ

- ๊ฐ€์žฅ ๋จผ์ € ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋จ = ์„ ์ž…์„ ์ถœ(FIFO; First In First Out) ๋ฐฉ์‹

- ์‹œ์ž‘๊ณผ ๋์„ ํ‘œ์‹œํ•˜๋Š” 2๊ฐœ์˜ ํฌ์ธํ„ฐ

- ์šด์˜์ฒด์ œ์˜ ์ž‘์—… ์Šค์ผ€์ค„๋ง์— ์‚ฌ์šฉ

 

 

๋น„์„ ํ˜• ๊ตฌ์กฐ(Non-Linear Structure)

 

1. ํŠธ๋ฆฌ(Tree)

์ •์ (Node, ๋…ธ๋“œ)๊ณผ ์„ ๋ถ„(Branch, ๊ฐ€์ง€)์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์ดํด์„ ์ด๋ฃจ์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•œ ๊ทธ๋ž˜ํ”„์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ

- ๋…ธ๋“œ : ํ•˜๋‚˜์˜ ๊ธฐ์–ต ๊ณต๊ฐ„

- ๋งํฌ : ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„ 

- ์กฑ๋ณด, ์กฐ์ง๋„ ๋“ฑ์„ ํ‘œํ˜„ํ•˜๊ธฐ์— ์ ํ•ฉ

- ๋…ธ๋“œ (Node) : ํŠธ๋ฆฌ์˜ ๊ธฐ๋ณธ ์š”์†Œ    ex) A, B, C, D, E, F, G, H, I, J

- ๊ทผ ๋…ธ๋“œ(Root Node) : ํŠธ๋ฆฌ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ๋…ธ๋“œ    ex) A

- ์ฐจ์ˆ˜ (Degree) : ๊ฐ ๋…ธ๋“œ์—์„œ ๋ป—์–ด ๋‚˜์˜จ ๊ฐ€์ง€์˜ ์ˆ˜    ex) A=2, B=2, E=1

- ๋‹จ๋ง ๋…ธ๋“œ (Terminal Node) = ์žŽ ๋…ธ๋“œ(Leaf Node) : ์ž์‹์ด ํ•˜๋‚˜๋„ ์—†๋Š” ๋…ธ๋“œ    ex) F, G   

- ์ž์‹ ๋…ธ๋“œ (Son Node) : ์–ด๋–ค ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๋‹ค์Œ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋“ค    ex) D์˜ ์ž์‹ ๋…ธ๋“œ : H, I   

- ๋ถ€๋ชจ ๋…ธ๋“œ (Parent Node) : ์–ด๋–ค ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ์ด์ „ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋“ค    ex) H, I์˜ ๋ถ€๋ชจ ๋…ธ๋“œ : D

- ํ˜•์ œ ๋…ธ๋“œ (Brother Node, Sibling) : ๋™์ผํ•œ ๋ถ€๋ชจ๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋“ค    ex) H์˜ ํ˜•์ œ ๋…ธ๋“œ : I   

- ํŠธ๋ฆฌ์˜ Degree : ๋…ธ๋“œ๋“ค์˜ Degree ์ค‘์—์„œ ๊ฐ€์žฅ ๋งŽ์€ ์ˆ˜    ex) Degree 2๊ฐ€ ์ตœ๋Œ€๋‹ˆ ์•ž ํŠธ๋ฆฌ์˜ Degree๋Š” 2   

 

35. ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ / ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค / DBMS

 

๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋‹ค๋ฃจ์–ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๋“ค์„ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ์กฐ์งํ™”ํ•˜๊ฑฐ๋‚˜, ๋ฌผ๋ฆฌ์ ์ธ ๊ณต๊ฐ„์— ๊ตฌ์ถ•ํ•œ ๊ฒƒ์„ ์˜๋ฏธ

๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ : ๋ฐ์ดํ„ฐ ๋ฐ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ, ์ œ์•ฝ์กฐ๊ฑด์„ ์‹๋ณ„ํ•˜์—ฌ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ์กฐ์งํ™”ํ•œ ๊ฒƒ

๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ : ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ๊ตฌ์กฐ๋“ค์„ HW์ ์ธ ์ €์žฅ์žฅ์น˜์— ์ €์žฅํ•œ ๊ฒƒ

- ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์˜ ๊ตฌ์ถ• ๊ณผ์ •๊ณผ DB ๊ตฌ์ถ• ๊ณผ์ •์€ ๋™์ผ

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

ํŠน์ • ์กฐ์ง์˜ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ƒํ˜ธ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋“ค์˜ ๋ชจ์ž„์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ

ํ†ตํ•ฉ๋œ ๋ฐ์ดํ„ฐ (Integrated Data) : ์ž๋ฃŒ์˜ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ์ž„

์ €์žฅ๋œ ๋ฐ์ดํ„ฐ (Stored Data) : ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ ๋งค์ฒด์— ์ €์žฅ๋œ ์ž๋ฃŒ

์šด์˜ ๋ฐ์ดํ„ฐ (Operational Data) : ์กฐ์ง์˜ ๊ณ ์œ ํ•œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์กด์žฌ ๊ฐ€์น˜๊ฐ€ ํ™•์‹คํ•˜๊ณ  ์—†์–ด์„œ๋Š” ์•ˆ ๋  ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ž๋ฃŒ

๊ณต์šฉ ๋ฐ์ดํ„ฐ(Shared Data) : ์—ฌ๋Ÿฌ ์‘์šฉ ์‹œ์Šคํ…œ๋“ค์ด ๊ณต๋™์œผ๋กœ ์†Œ์œ ํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ์ž๋ฃŒ

 

 

DBMS (DataBase Management System)

์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์ด์—์„œ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” DB ๊ด€๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด

- ๊ธฐ์กด์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…์†์„ฑ๊ณผ ์ค‘๋ณต์„ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œํ•œ๋œ ์‹œ์Šคํ…œ

 

โ€ข DBMS์˜ ํ•„์ˆ˜ ๊ธฐ๋Šฅ

1. ์ •์˜ ๊ธฐ๋Šฅ 

๋ชจ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์š”๊ตฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด DB์— ์ €์žฅ๋  ๋ฐ์ดํ„ฐ ํ˜•๊ณผ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ •์˜, ์ด์šฉ ๋ฐฉ์‹, ์ œ์•ฝ ์กฐ๊ฑด ๋“ฑ์„ ๋ช…์‹œํ•˜๋Š” ๊ธฐ๋Šฅ

์‘์šฉ P โ†” DB

 

2. ์กฐ์ž‘ ๊ธฐ๋Šฅ

๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ๊ฐฑ์‹ , ์‚ฝ์ž… ๋“ฑ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž์™€ DB ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ

์‚ฌ์šฉ์ž โ†” DB

 

3. ์ œ์–ด ๊ธฐ๋Šฅ

- ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ์œ ์ง€๋˜๋„๋ก ์ œ์–ด

- ๋ณด์•ˆ ์œ ์ง€, ๊ถŒํ•œ ๊ฒ€์‚ฌ

- ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ DB๋ฅผ ๋™์‹œ ์ ‘๊ทผํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ์ •ํ™•์„ฑ์„ ์œ ์ง€ํ•˜๋„๋ก ๋ณ‘ํ˜•์ œ์–ด 

 

 

โ€ข DBMS์˜ ์žฅ๋‹จ์ 

์žฅ์  

๋‹จ์  

- ๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์ , ๋ฌผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ ๋ณด์žฅ

- ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ํ”ผํ•  ์ˆ˜ ์žˆ์Œ, ๊ธฐ์–ต ๊ณต๊ฐ„ ์ ˆ์•ฝ

- ์ €์žฅ๋œ ์ž๋ฃŒ๋ฅผ ๊ณต๋™์œผ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Œ

- ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€

- ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ ์œ ์ง€

- ๋ณด์•ˆ ์œ ์ง€

- ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ๊ฐ€๋Šฅ

- ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

- ํ•ญ์ƒ ์ตœ์‹ ์˜ ๋ฐ์ดํ„ฐ ์œ ์ง€

- ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ 

- DB์˜ ์ „๋ฌธ๊ฐ€ ๋ถ€์กฑ

- ์ „์‚ฐํ™” ๋น„์šฉ ์ฆ๊ฐ€ 

- ๋Œ€์šฉ๋Ÿ‰ ๋””์Šคํฌ๋กœ์˜ ์ง‘์ค‘์ ์ธ ์ ‘๊ทผ์œผ๋กœ ๊ณผ๋ถ€ํ•˜ ๋ฐœ์ƒ

- ํŒŒ์ผ์˜ Backup๊ณผ Recovery๊ฐ€ ์–ด๋ ค์›€

- ์‹œ์Šคํ…œ ๋ณต์žก 

 

 

36. ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ

 

๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ

์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด DB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ณ , DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ž‘์—…

- ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ ์œ„ํ•ด SQL ์‚ฌ์šฉ

 

 

SQL (Structured Query Language)

๊ตญ์ œ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด

- ๊ด€๊ณ„ ๋Œ€์ˆ˜์™€ ๊ด€๊ณ„ ํ•ด์„์„ ๊ธฐ์ดˆ๋กœ ํ•จ

- SQL์€ ๋ฐ์ดํ„ฐ ์ •์˜์–ด (DDL), ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML), ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (DCL)๋กœ ๊ตฌ๋ถ„

 

 

๋ฐ์ดํ„ฐ ์ ‘์† (Data Mapping)

์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ์™€ DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ

- SQL Mapping : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ ๋‚ด์— SQL์„ ์ง์ ‘ ์ž…๋ ฅํ•ด  DBMS์˜ ๋ฐ์ดํ„ฐ์— ์ ‘์†ํ•˜๋Š” ๊ธฐ์ˆ  (JDBC, ODBC, MyBatis ๋“ฑ)

- ORM (Object-Relational Mapping) : ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ์ˆ  (JPA, Hibernate, Django ๋“ฑ)

 

 

ํŠธ๋žœ์žญ์…˜ (Transaction)

DB ์ƒํƒœ๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„, ํ•œ๊บผ๋ฒˆ์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์ผ๋ จ์˜ ์—ฐ์‚ฐ

- ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด : TCL (Transaction Control Language)

- TCL์˜ ์ข…๋ฅ˜ : COMMIT, ROLLBACK, SAVEPOINT

 

37. ์ ˆ์ฐจํ˜• SQL

 

์ ˆ์ฐจํ˜• SQL

C, JAVA ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๊ฐ™์ด ์—ฐ์†์ ์ธ ์‹คํ–‰์ด๋‚˜ ๋ถ„๊ธฐ, ๋ฐ˜๋ณต ๋“ฑ์˜ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•œ SQL

 

โ€ข ์ ˆ์ฐจํ˜• SQL์˜ ์ข…๋ฅ˜

1. ํ”„๋กœ์‹œ์ €(Procedure)

ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ์ข…์˜ ํŠธ๋žœ์žญ์…˜ ์–ธ์–ด, ํ˜ธ์ถœ์„ ํ†ตํ•ด ์‹คํ–‰๋˜์–ด ๋ฏธ๋ฆฌ ์ €์žฅํ•ด ๋†“์€ SQL ์ž‘์—… ์ˆ˜ํ–‰

 

2. ํŠธ๋ฆฌ๊ฑฐ(Trigger)

DB ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ, ๊ฐฑ์‹ , ์‚ญ์ œ ๋“ฑ์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๊ด€๋ จ ์ž‘์—…์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰

 

3. ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜

ํ”„๋กœ์‹œ์ €์™€ ์œ ์‚ฌํ•˜๊ฒŒ SQL์„ ์‚ฌ์šฉํ•ด ์ผ๋ จ์˜ ์ž‘์—…์„ ์—ฐ์†์ ์œผ๋กœ ์ฒ˜๋ฆฌ, ์ข…๋ฃŒ ์‹œ ์˜ˆ์•ฝ์–ด Return ์‚ฌ์šฉํ•ด ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‹จ์ผ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜

 

 

โ€ข ์ ˆ์ฐจํ˜• SQL์˜ ํ…Œ์ŠคํŠธ์™€ ๋””๋ฒ„๊น…

๋””๋ฒ„๊น…์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์˜ ์ ํ•ฉ์„ฑ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆ, ์‹คํ–‰์„ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ ๊ณผ์ • ์ˆ˜ํ–‰

๋””๋ฒ„๊น… : ์˜ค๋ฅ˜ ์žก๋Š” ์ž‘์—…

 


โ€ข ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ์ตœ์ ํ™”

๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด SQL ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ

- ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ „, ARM์„ ์‚ฌ์šฉํ•ด ์ตœ์ ํ™”ํ•  ์ฟผ๋ฆฌ ์„ ์ •

- ์ตœ์ ํ™” ํ•  ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ˆ˜๋ฆฝํ•œ ์‹คํ–‰ ๊ณ„ํš ๊ฒ€ํ† , SQL ์ฝ”๋“œ์™€ ์ธ๋ฑ์Šค ์žฌ๊ตฌ์„ฑ

728x90
๋ฐ˜์‘ํ˜•