์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐ ์„ค๊ณ„

    ๋ชจ๋ธ๋ง ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ •๋ณด๋“ค์„ ์ปดํ“จํ„ฐ์— ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹จ์ˆœํ™”, ์ถ”์ƒํ™” ํ•˜์—ฌ ์ฒด๊ณ„์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฐœ๋…์  ๋ชจํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ (data model)์˜ ๊ฐœ๋… ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ‘œํ˜„ํ•˜๋Š” ์ค‘๊ฐ„ ๊ณผ์ •, ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ฐœ๋…์  ๋ชจ๋ธ๋ง แ†ž์ฒ˜์Œ ํ˜„์‹ค์„ธ๊ณ„์—์„œ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’์€ ์ƒ์œ„ ์ˆ˜์ค€์„ ํ˜•์ƒํ™”ํ•˜๊ธฐ ์œ„ํ•จ แ†ž๊ฐœ์ฒด๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๊ฐ ๊ฐœ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•ด ERD ๊ทธ๋ฆฌ๋Š” ๊ณผ์ • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง แ†ž๊ฐœ๋…์  ๋ชจ๋ธ๋ง์—์„œ ์ถ”์ถœํ•˜์ง€ ์•Š์•˜๋˜ ์ƒ์„ธ ์†์„ฑ ์ถ”์ถœ แ†ž์ •๊ทœํ™” แ†ž๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ์ˆ˜ํ–‰ ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง แ†žDBMS์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•ด์•ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ์Œ แ†žํŠธ๋žœ์žญ์…˜, ์ €์žฅ ๊ณต๊ฐ„ ์„ค๊ณ„ ์ธก๋ฉด์—์„œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ แ†ž๋ฌผ๋ฆฌ์  ์„ค๊ณ„์‹œ ๊ณ ๋ ค์‚ฌํ•ญ: ์‘๋‹ต..

    [PL/SQL] ์ธ๋ฑ์Šค

    [PL/SQL] ์ธ๋ฑ์Šค

    ์ธ๋ฑ์Šค แ†ž์ผ๋ฐ˜ ํ…Œ์ด๋ธ”์ด๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์“ฐ์—ฌ์ง€๋Š” ์„ ํƒ์ ์ธ ๊ฐ์ฒด แ†ž์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๋‚ด์˜ ์›ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ แ†ž๋””์Šคํฌ I/O๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ• แ†ž์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์š”์†Œ ์ธ๋ฑ์Šค ํŠน์„ฑ แ†ž์—ฐ๊ด€๋œ ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ์™€ ๋…ผ๋ฆฌ์  ๋ฐ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋…๋ฆฝ์ ์ธ ์Šคํ‚ค๋งˆ ๊ฐ์ฒด แ†žํ…Œ์ด๋ธ”์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ ์ธ๋ฑ์Šค ์ข…๋ฅ˜ 1) B-Tree Indexes แ†ž์ผ๋ฐ˜์ ์ธ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค 2) Bitmap๊ณผ Bitmap join indexes แ†ž๋น„ํŠธ ๋งต ์ธ๋ฑ์Šค์—์„œ ์ธ๋ฑ์Šค ํ•ญ๋ชฉ์€ ๋น„ํŠธ ๋งต์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ–‰์„ ๊ฐ€๋ฆฌํ‚ด แ†ž๋น„ํŠธ๋งต ์กฐ์ธ ์ธ๋ฑ์Šค๋Š” ๋‘˜์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ธฐ ์œ„ํ•œ ๋น„ํŠธ๋งต ์ธ๋ฑ์Šค 3) ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜ ์ธ๋ฑ์Šค(Functi..

    [PL/SQL] ํŠธ๋ฆฌ๊ฑฐ

    ํŠธ๋ฆฌ๊ฑฐ(Trigger) แ†ž์Šคํ‚ค๋งˆ ๊ฐ์ฒด์˜ ์ผ์ข… แ†ž๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ฏธ๋ฆฌ ์ •ํ•ด ๋†“์€ ํŠน์ • ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜๊ฑฐ๋‚˜ ์–ด๋–ค ๋™์ž‘์ด ์ˆ˜ํ–‰๋˜๋ฉด ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ์ •์˜ํ•œ ๋™์ž‘ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์‹คํ–‰๋  ์กฐ๊ฑด์ด ๋˜๋Š” ์ด๋ฒคํŠธ แ†ž๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐ์ž‘(DML) ๋ฌธ : DELETE, INSERT ๋˜๋Š” UPDATE แ†ž๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜(DDL) ๋ฌธ : CREATE, ALTER ๋˜๋Š” DROP แ†ž๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… : SERVERERROR, LOGON, LOGOFF, STARTUP ๋˜๋Š” SHUTDOWN ํŠธ๋ฆฌ๊ฑฐ ์œ ํ˜• DML ํŠธ๋ฆฌ๊ฑฐ, INSTEAD OF ํŠธ๋ฆฌ๊ฑฐ, ์‹œ์Šคํ…œ ํŠธ๋ฆฌ๊ฑฐ ํŠธ๋ฆฌ๊ฑฐ ์ •๋ณด ํ™•์ธ ํŠธ๋ฆฌ๊ฑฐ ๋ชฉ๋ก ํ™•์ธ SELECT * FROM user_triggers; ํŠธ๋ฆฌ๊ฑฐ ์†Œ์Šค ํ™•์ธ SELECT * FROM user_source; ์‚ฌ์šฉ์ž์˜ ์‹œ์Šคํ…œ ๊ถŒํ•œ ํ™•์ธ SEL..

    [PL/SQL] ์˜ˆ์™ธ(Exception) ์ฒ˜๋ฆฌ

    [PL/SQL] ์˜ˆ์™ธ(Exception) ์ฒ˜๋ฆฌ

    PL/SQL์—์„œ๋„ ์ž๋ฐ”์™€ ๊ฐ™์ด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์™ธ๋ž€? PL/SQL ๋ธ”๋ก์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ์— ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ๋ฅผ ์˜ˆ์™ธ๋ผ ํ•จ ์—๋Ÿฌ ์ข…๋ฅ˜ แ†ž์ปดํŒŒ์ผ ์—๋Ÿฌ : PL/SQL ๋ธ”๋ก์ด ํŒŒ์‹ฑ(Parsing)๋  ๋•Œ ์‚ฌ์šฉ์ž ์˜คํƒ€, ๊ตฌ๋ฌธ ์˜ค๋ฅ˜ ๋“ฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒ๋˜๋Š” ์—๋Ÿฌ แ†ž๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ : PL/SQL ๋ธ”๋ก์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๋ฅผ Exception ๋ฏธ๋ฆฌ ์ •์˜๋œ ์˜ˆ์™ธ ์‚ฌ์šฉ์ž ์ •์˜ ์˜ˆ์™ธ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์˜ˆ์™ธ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ๋กœ์ง์„ ์ž‘์„ฑ DECLARE -- ์˜ˆ์™ธ์„ ์–ธ -- ์˜ˆ์™ธ ์ด๋ฆ„ EXCEPTION; BEGIN -- ์˜ˆ์™ธ ๋ฐœ์ƒ -- RAISE ์˜ˆ์™ธ ์ด๋ฆ„; EXCEPTION WHEN ์˜ˆ์™ธ1(์‚ฌ์ „ ์ •์˜๋œ ์˜ค๋ฅ˜ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์˜ค๋ฅ˜) THEN STATEMENT1 ... WHEN ์˜ˆ์™ธ2(์‚ฌ์ „ ์ •์˜๋œ ์˜ค..