์ ์ฒด ๊ธ
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ ์ค๊ณ
๋ชจ๋ธ๋ง ํ์ค ์ธ๊ณ์ ์ ๋ณด๋ค์ ์ปดํจํฐ์ ํํํ๊ธฐ ์ํด์ ๋จ์ํ, ์ถ์ํ ํ์ฌ ์ฒด๊ณ์ ์ผ๋ก ํํํ ๊ฐ๋ ์ ๋ชจํ ๋ฐ์ดํฐ ๋ชจ๋ธ (data model)์ ๊ฐ๋ ํ์ค ์ธ๊ณ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํํํ๋ ์ค๊ฐ ๊ณผ์ , ์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ณผ์ ์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋๊ตฌ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ฐ๋ ์ ๋ชจ๋ธ๋ง แ์ฒ์ ํ์ค์ธ๊ณ์์ ์ถ์ํ ์์ค์ด ๋์ ์์ ์์ค์ ํ์ํํ๊ธฐ ์ํจ แ๊ฐ์ฒด๋ฅผ ์ถ์ถํ๊ณ ๊ฐ ๊ฐ์ฒด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํด ERD ๊ทธ๋ฆฌ๋ ๊ณผ์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง แ๊ฐ๋ ์ ๋ชจ๋ธ๋ง์์ ์ถ์ถํ์ง ์์๋ ์์ธ ์์ฑ ์ถ์ถ แ์ ๊ทํ แ๋ฐ์ดํฐ ํ์คํ ์ํ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง แDBMS์ ํน์ฑ์ ๋ง๊ฒ ์ ์ฅ ๊ตฌ์กฐ๋ฅผ ์ ์ํด์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ต์ ์ ์ฑ๋ฅ์ ๋ผ ์ ์์ แํธ๋์ญ์ , ์ ์ฅ ๊ณต๊ฐ ์ค๊ณ ์ธก๋ฉด์์ ๊ณ ๋ คํ ์ฌํญ แ๋ฌผ๋ฆฌ์ ์ค๊ณ์ ๊ณ ๋ ค์ฌํญ: ์๋ต..
![[PL/SQL] ์ธ๋ฑ์ค](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcUuMv9%2FbtrJ2a508on%2FAAAAAAAAAAAAAAAAAAAAAByqtC5MABiApc4RfmXjQc2wkf-Dncna64lCcDMcm5He%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DHAbRBW9iFp5g8SWwm8XhP0FZy74%253D)
[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) ์ฒ๋ฆฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb2XAaZ%2FbtrJWrs2uCf%2FAAAAAAAAAAAAAAAAAAAAAJ8VJlLXO6e-CymelZjKEzHqjtOa7dmTkeIdetUXEBXy%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DeTQWnkM%252B1OFpOh32pnaz3Hg9Iy4%253D)
[PL/SQL] ์์ธ(Exception) ์ฒ๋ฆฌ
PL/SQL์์๋ ์๋ฐ์ ๊ฐ์ด ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ์์ธ๋? PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์์ ๋ฐ์๋๋ ์๋ฌ๋ฅผ ์์ธ๋ผ ํจ ์๋ฌ ์ข ๋ฅ แ์ปดํ์ผ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ํ์ฑ(Parsing)๋ ๋ ์ฌ์ฉ์ ์คํ, ๊ตฌ๋ฌธ ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์๋๋ ์๋ฌ แ๋ฐํ์ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์ํ๋ ์๋ฌ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ์์๋ฌ๋ฅผ Exception ๋ฏธ๋ฆฌ ์ ์๋ ์์ธ ์ฌ์ฉ์ ์ ์ ์์ธ ์ฌ์ฉ์๊ฐ ์ง์ ์์ธ๋ฅผ ์ ์ํ๊ณ ์ฒ๋ฆฌํ ๋ก์ง์ ์์ฑ DECLARE -- ์์ธ์ ์ธ -- ์์ธ ์ด๋ฆ EXCEPTION; BEGIN -- ์์ธ ๋ฐ์ -- RAISE ์์ธ ์ด๋ฆ; EXCEPTION WHEN ์์ธ1(์ฌ์ ์ ์๋ ์ค๋ฅ ๋๋ ์ฌ์ฉ์ ์ ์ ์ค๋ฅ) THEN STATEMENT1 ... WHEN ์์ธ2(์ฌ์ ์ ์๋ ์ค..