108. ํ๋ก์์ (Procedure) / ์ฉ์ด์ ๋ฆฌ, ์ ์
ํ๋ก์์ (Procedure)
์ ์ฐจํ SQL์ ํ์ฉํ์ฌ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ์ผ์ข ์ ํธ๋์ญ์ ์ธ์ด
์ ์ฐจํ SQL : C, JAVA๋ฑ์ ์ธ์ด์ ๊ฐ์ด ์ฐ์์ ์ธ ์คํ์ด๋ ๋ถ๊ธฐ, ๋ฐ๋ณต ๋ฑ์ ์ ์ด๊ฐ ๊ฐ๋ฅํ SQL
- ์ผ์ผ ๋ง๊ฐ ์์ , ์ผ๊ด ์์ ๋ฑ์ ์ฃผ๋ก ์ฌ์ฉ
- ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์์ ํธ์ถํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
- DB์ ์ ์ฅ๋์ด ์ํ๋๊ธฐ ๋๋ฌธ์ ์คํ ์ด๋ ํ๋ก์์ ๋ผ๊ณ ๋ ๋ถ๋ฆผ
109. ํธ๋ฆฌ๊ฑฐ(Trigger) / ์ฉ์ด์ ๋ฆฌ, ์ ์
ํธ๋ฆฌ๊ฑฐ (Trigger)
DB ์์คํ ์์ ๋ฐ์ดํฐ์ ์ฝ์ , ๊ฐฑ์ , ์ญ์ ๋ฑ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ๊ด๋ จ ์์ ์ด ์๋์ผ๋ก ์ํ๋๋ ์ ์ฐจํ SQL
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ, ๋ฌด๊ฒฐ์ฑ ์ ์ง, ๋ก๊ทธ ๋ฉ์ธ์ง ์ถ๋ ฅ ๋ฑ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- ํธ๋ฆฌ๊ฑฐ ๊ตฌ๋ฌธ์๋ DCL์ ์ฌ์ฉํ ์ ์์
110. ์ฌ์ฉ์ ์ ์ ํจ์ / ์ฉ์ด์ ๋ฆฌ, ์ ์
์ฌ์ฉ์ ์ ์ ํจ์
SQL์ ์ฌ์ฉํ๋ฉฐ ์ผ๋ จ์ ์์ ์ ์ฐ์์ ์ผ๋ก ์ฒ๋ฆฌ, ์ข ๋ฃ ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋จ์ผ๊ฐ์ผ๋ก ๋ฐํํ๋ ์ ์ฐจํ SQL
- RETURN์ ํตํด ๊ฐ์ ๋ฐํ, ์ถ๋ ฅ ํ๋ผ๋ฏธํฐ๊ฐ ์์
- ํ๋ก์์ ํธ์ถ ๋ถ๊ฐ
- INSERT, DELETE, UPDATE๋ฅผ ํตํ ํ ์ด๋ธ ์กฐ์ ๋ถ๊ฐ, SELECT๋ฅผ ํตํ ์กฐํ๋ง ๊ฐ๋ฅ
- SUM( ), AVG( ) ๋ฑ์ ํจ์์ฒ๋ผ DML๋ฌธ์์ ๋ฐํ๊ฐ์ ํ์ฉํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ
• ํ๋ก์์ vs ์ฌ์ฉ์ ์ ์ ํจ์
๊ตฌ๋ถ |
ํ๋ก์์ |
์ฌ์ฉ์ ์ ์ ํจ์ |
๋ฐํ๊ฐ |
์๊ฑฐ๋ 1๊ฐ ์ด์ ๊ฐ๋ฅ |
1๊ฐ |
ํ๋ผ๋ฏธํฐ |
์ , ์ถ๋ ฅ ๊ฐ๋ฅ |
์ ๋ ฅ๋ง ๊ฐ๋ฅ |
์ฌ์ฉ ๊ฐ๋ฅ ๋ช ๋ น๋ฌธ |
DML, DCL |
SELECT |
ํธ์ถ |
ํ๋ก์์ , ์ฌ์ฉ์ ์ ์ ํจ์ |
์ฌ์ฉ์ ์ ์ ํจ์ |
์ฌ์ฉ ๋ฐฉ๋ฒ |
์คํ๋ฌธ |
DML์ ํฌํจ |
111. DBMS ์ ์ ๊ธฐ์
DBMS ์ ์
์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์์ฉ ์์คํ ์ ์ด์ฉํ์ฌ DBMS ์ ๊ทผํ๋ ๊ฒ
• ์น ์์ฉ ์์คํ ์ ๊ตฌ์กฐ
• DBMS ์ ์ ๊ธฐ์
1. JDBC(Java DataBase Connectivity)
Java์ DB๋ฅผ ์ฐ๊ฒฐํ๋ API
- ์ฌ ๋ง์ดํฌ๋ก์์คํ ์์ ์ถ์
- Java SE์ ํฌํจ๋์ด ์์, ํด๋์ค๋ java.sql, javax.sql์ ํฌํจ
- DBMS์ ๋ํ ๋๋ผ์ด๋ฒ ํ์
2. ODBC(Open DataBase Connectivity) √
DB์ ์ ๊ทผํ๊ธฐ ์ํ ํ์ค ๊ฐ๋ฐฉํ API, ๊ฐ๋ฐ ์ธ์ด์ ๊ด๊ณ์์ด ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ง์ดํฌ๋ก์ํํธ์์ ์ถ์
3. MyBatis √
JDBC ์ฝ๋๋ฅผ ๋จ์ํํด ์ฌ์ฉํ ์ ์๋ SQL Mapping ๊ธฐ๋ฐ ์คํ ์์ค ์ ์ ํ๋ ์์ํฌ
๋๋ฒ๊น : ์ค๋ฅ๋ฅผ ์ก๊ธฐ ์ํด ํ์ค ํ์ค ๊ฒ์ฌํ๋ ์์
TCL : ํธ๋์ญ์ ์ ์ ์ดํ๋ COMMIT, ROLLBACK, SAVEPOINT ๋ช ๋ น์ ๊ฐ๋ฆฌํค๋ ์ฉ์ด
113. ORM(Object-Relational Mapping)
ORM (Object-Relational Mapping)
๊ฐ์ฒด์ ๊ด๊ณํ DB์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ธฐ์
- ์ฌ์ฌ์ฉ ๋ฐ ์ ์ง๋ณด์๊ฐ ์ฉ์ด
• ORM ํ๋ ์์ํฌ
- JAVA : JPA, Hibernate, EclipseLink ๋ฑ
- C ++ : ODB, QxORM ๋ฑ
- Python : Django, SQLAlchemy, Storm ๋ฑ
- IOS : DatabaseObjects, Core Data ๋ฑ
- PHP : Doctrine, Propel ๋ฑ