๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ์ด ์ ๋ฆฌ - ๋ฆด๋ ์ด์ (ํ ์ด๋ธ) ์์ฑ ํฌํ(๋ ์ฝ๋) ๋๋ฉ์ธ ํค(๊ธฐ๋ณธํค ์ธ๋ํค) ERD entity ๊ฐ์ฒด ์์ฑ
๋ฆด๋ ์ด์ (ํ ์ด๋ธ) : ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ณด๋ฅผ ๊ตฌ๋ถํ์ฌ ์ ์ฅํ๋ ๊ธฐ๋ณธ ๋จ์ ๋ฆด๋ ์ด์ ์ ํ์ค์ธ๊ณ์ ์ด๋ค ๊ฐ์ฒด(entity)๋ฅผ ํํํ๊ณ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋จ (๊ฐ์ฒด๋ก๋ ์ฌ๋ฌผ, ์ถ์์ ์ธ ๊ฐ๋ ๊ฐ๋ฅ) ๋ฐ์ดํฐ๋ค์ ํ(Table)์ ํํ๋ก ํํํ ๊ฒ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ๋ฆด๋ ์ด์ ์คํค๋ง์ ์ค์ ๊ฐ๋ค์ธ ๋ฆด๋ ์ด์ ์ธ์คํด์ค๋ก ๊ตฌ์ฑ๋จ ์์ฑ: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์์ด๋ฉฐ ๊ฐ์ฒด์ ํน์ฑ์ ๊ธฐ์ ๋ด๊ฐ ์ ์ฅํ๊ณ ์ถ์ ๊ฐ์ฒด์ ํญ๋ชฉ๋ค ํ๋์ ์ด์ ํ๋์ ์์ฑ ์ ๋ณด๋ฅผ ํ์ํจ ๋์ผ ๋ฆด๋ ์ด์ ๋ด์์๋ ๊ฐ์ ์ด๋ฆ์ ์์ฑ์ด ์กด์ฌํ ์ ์์ผ๋, ๋ฆด๋ ์ด์ ์ด ๋ค๋ฅด๋ฉด ๊ฐ์ ์์ฑ ์ด๋ฆ์ ๊ณตํต์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ ๋ ์ฝ๋,ํฌํ: ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ํ์ ๋งํ๋ฉฐ, ์์ฑ์ ๋ชจ์์ผ๋ก ๊ตฌ์ฑ ๋ฆด๋ ์ด์ ์ด ๋ํ๋ด๋ ๊ฐ์ฒดentity์ ํน์ ์ธ์คํด์ค์..
0201 ๊ตญ๋น ์์ ์ค๋ผํด index(unique non unique composite) ์ธ๋ฑ์ค ์ฌ๊ตฌ์ถ rebuild ์ธ๋ฑ์ค ํํธ index hint
*index - ๋ ์ฝ๋์ ์์ด ๋ง์ ๋ ๋น ๋ฅธ ๊ฒ์์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฐ์ฒด (CPU cost๊ฐ ์ค์ด๋ ๋ค) - ์๋ ์ธ๋ฑ์ค, ์๋ ์ธ๋ฑ์ค ์ ๊ณต ์๋์ธ๋ฑ์ค: ํ ์ด๋ธ์ ์์ฑํ์ ๋ ์๋์ผ๋ก PK,UX์ ์ํด ์๋์ผ๋ก ์์ฑ๋๋ ์ธ๋ฑ์ค unique ์ธ๋ฑ์ค๊ฐ ์๋ ์์ฑ ์๋์ธ๋ฑ์ค: ๊ฐ๋ฐ์๊ฐ ํ์์ ์ํด์ ์์ฑํ๋ ์ธ๋ฑ์ค(unique,non unique, bitmap,composite) -๋ชจ๋ ๊ณ์ ์ index๋ฅผ ์์ฑํ ์ ์์ - user_indexes DD์์ ๋ง๋ค์ด์ง ์ธ๋ฑ์ค ํ์ธ ๊ฐ๋ฅ -๋ชจ๋ ๋ ์ฝ๋๋ rowid(๋ ์ฝ๋๋ฅผ ์๋ณํ๊ธฐ ์ํ ๋ฌผ๋ฆฌ์ ์ฃผ์, ๊ฒน์น์ง ์์)๋ฅผ ๊ฐ์ง AAAShCAAHAAAAKEAAA ( AAAShC ๋ฐ์ดํฐ๊ฐ์ฒด๋ฒํธ AAH ํ์ผ๋ฒํธ AAAAKE ๋ธ๋ก๋ฒํธ AAA ๋ ์ฝ๋๋ฒํธ) DB๋ ๋ด์ฉ์ ์ํ ..
์ค๋ผํด CRUD
*CRUD (create, insert, select, update, alter, delete, truncate) create - create, insert, grant read - select update - update, alter, commit(๋ฉ๋ชจ๋ฆฌ ์์ ๋ด์ฉ์ ํ๋์ ์ ์ฉ), rollback(์์ ์ทจ์) delete - delete, truncate, drop, revoke
0201 ๊ตญ๋น ์์ JDBC driver DBMS ์์ ์์ DB ์ฐ๊ฒฐ ์์ ์๋ฐ ์ฟผ๋ฆฌ ์คํ
Java DBMS ์ฐ์ฐ, ์ ์ด, ์ ์ถ๋ ฅ, ๋คํธ์ํฌ, ํ๋ฉด ์์ฑ (๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์) ๋ฐ์ดํฐ ๊ด๋ฆฌ, ์ฐ์ฐ (ํ๋ฉด ์์ฑ ๋ชปํจ) JDBC ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๋๋ฉด์ ์์ ํ๋ฉด์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ ์ฌ์ฉ์์๊ฒ ์ ๊ณต *JDBC(Java DataBase Connectivity) -Java์์ DBMS์ ์ฐ๋ํ๊ธฐ์ํ ์ ์์ค API -java.sql ํจํค์ง์์ ๊ด๋ จ ์ธํฐํ์ด์ค, ํด๋์ค๋ฅผ ์ ๊ณต -Driver loading ๋ฐฉ์ ( Driver๋ง ์ ๊ณต๋๋ค๋ฉด ๋ชจ๋ DBMS์ ์ฐ๋ํ ์ ์์) *Driver: -DB Server์ ์ ์ํ๊ธฐ ์ํ DB Client๋ฅผ .classํ์ผ๋ก ๋ง๋ ๊ฒ -sun์ฌ์์ interface๋ก ์์ ๋ชฉ๋ก์ ์ ๊ณตํ๊ณ , DB Vendor์ฌ์์ interface์ ํด๋นํ๋ ์์ ๋ค์ ์์ฒด ๊ฐ๋ฐํ์ฌ ์ ๊ณต..
0131 ๊ตญ๋น ์์ ์ค๋ผํด outer join self join ๋ฐฑ์ ๋ณต์ ๊ณ์ synonym ๋์์ด view
*outer join -ํ์ชฝ ํ ์ด๋ธ์๋ง ๊ฐ(๋ ์ฝ๋)์ด ์กด์ฌํด๋ ๊ฒ์๋๋ ์กฐ์ธ -ANSI ๋ฌธ๋ฒ > left,right,full outer๋ฅผ ์ง์ -Oracle ๋ฌธ๋ฒ > left,right๋ง ์ง์ ๋ฌธ๋ฒ) Oracle select ์ปฌ๋ผ๋ช , ํ ์ด๋ธ๋ช .์ปฌ๋ผ๋ช , alias.์ปฌ๋ผ๋ช // alias์ฃผ๊ธฐ ์ from ํ ์ด๋ธ๋ช alias , ์กฐ์ธํ ํ ์ด๋ธ๋ช alias,,, where (์กฐ์ธ์กฐ๊ฑด) and (๊ฒ์์กฐ๊ฑด) alias.์ปฌ๋ผ๋ช (+) = alias.์ปฌ๋ผ๋ช (driving ํ ์ด๋ธ) // ๋ ์ค์ ํ ์ชฝ์๋ง ๊ฐ์ด ์์ด๋ ๊ฐ์ ธ์ด (+) ๊ธฐํธ๋ฅผ ๋ ์ฝ๋๊ฐ ์๋ ์ปฌ๋ผ์ ๋ถ์ธ๋ค //์์ชฝ์ ๋ถ์ด๋ฉด ์๋ฌ ANSI select ์ปฌ๋ผ๋ช ,,,, , ํ ์ด๋ธ๋ช .์ปฌ๋ผ๋ช , alias.์ปฌ๋ผ๋ช from ํ ์ด๋ธ๋ช alias [left|right|ful..
0130 sequence ํ ์ด๋ธ ์กฐํฉ ๊ฒ์(union join) ์ ๊ทํ(1NF 2NF 3NF) ๋๋ฉ์ธ์ ์์์ฑ ๋ถ๋ถํจ์ ์ดํํจ์ ์ข ์์ ๊ฑฐ drivingํ ์ด๋ธ inner join
*sequence -์์ฐจ์ ์ธ ๋ฒํธ๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด -Oracle 11g๊น์ง๋ DBMS๊ฐ ์ข ๋ฃ๋๋ฉด ์ค์ ํด๋์ ๋ฒํธ๋งํผ ์ฌ๋ผ์ง (12c๋ถํฐ๋ ํด๋น ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง) - ์ฟผ๋ฆฌ๋ฌธ์ด ์คํจ๋๋ฉด ํด๋น ๋ฒํธ๊ฐ ์ฌ๋ผ์ง (ex. 1,2,3,5,6,7,10...) // ์ฐ๋ฒ์ ์ธ ๋ max+1 -user_sequences DD์์ sequence ํ์ธํ ์ ์์ ๋ฌธ๋ฒ) -์์ฑ create sequence ์ํ์ค๋ช start with ์์๋ฒํธ maxvalue ๋๋ฒํธ increment by ์ฆ๊ฐ๊ฐ cache ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด๋์ ์์ ๊ฐ์ // ๋ฉ๋ชจ๋ฆฌ์ ์ผ์ ๊ฐ์ ์ฌ๋ ค๋๊ณ ๊บผ๋ด ์ด๋ค(์๋๊ฐ ํฅ์๋จ) ๋ฐ๋ณต์ฌ๋ถ (nocycle/cycle) ; -์ญ์ drop sequence ์ํ์ค๋ช ; -์ฌ์ฉ ํ์ฌ ๋ฒํธ๋ฅผ ์ป๊ธฐ (์ ์์ ์ธ์ ์ ์ํ์ค..
0127 ๊ตญ๋น ์์ ์ค๋ผํด ์ธ๋ํค(foreign key) unique check์กฐ๊ฑด not null์กฐ๊ฑด default alter(ํ ์ด๋ธ ์ ์ฝ์ฌํญ ๊ณ์ ๊ด๋ฆฌ)
*์ธ๋ํค (foreign key) - ๋ถ๋ชจ ํ ์ด๋ธ์ ์กด์ฌํ๋ ์ปฌ๋ผ ๊ฐ์ผ๋ก๋ง ์ปฌ๋ผ์ ์ถ๊ฐํด์ผ ํ ๋ - ํ ์ด๋ธ์ ๊ด๊ณ๊ฐ ์ค์ ๋จ ( ๋ถ๋ชจ-์์๊ด๊ณ) - null์ ํ์ฉ ( ๊ฐ์ด ์์ ์๋ ์์ง๋ง ๊ฐ์ด ์๋ค๋ฉด ๋ถ๋ชจํ ์ด๋ธ์ ์ปฌ๋ผ ๊ฐ์ผ๋ก๋ง ์กด์ฌ) - ํ๋์ ํ ์ด๋ธ์ ์ฌ๋ฌ ๊ฐ์ FK๋ฅผ ๊ฐ์ง ์ ์์ - user_constraints DD์์ constraint_type์ด ‘R’ ๋ก ์ค์ ๋จ - ์ ์ฝ์ฌํฅ๋ช : FK_ํ ์ด๋ธ๋ช _์ปฌ๋ผ๋ช ๋ฌธ๋ฒ) ์ปฌ๋ผ ๋จ์ ์ปฌ๋ผ๋ช ๋ฐ์ดํฐํ(ํฌ๊ธฐ) constraint ์ ์ฝ์ฌํญ๋ช references ๋ถ๋ชจํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช ) on delete cascade (๋ถ๋ชจํ ์ด๋ธ์ ๋ ์ฝ๋๊ฐ ์ญ์ ๋๋ฉด ์์ ํ ์ด๋ธ์ ๋ ์ฝ๋๊ฐ ์๋์ผ๋ก ์ญ์ ๋๋ ์ต์ (์์ ๊ถ์ด ๋ฌ๋ผ์ ์ ์์)) ํ ์ด๋ธ๋จ์ ์ปฌ๋ผ๋ช ๋ฐ์ดํฐํ(ํฌ๊ธฐ) , ,..
0126 ๊ตญ๋น ์์ ์ค๋ผํด select ์๋ธ์ฟผ๋ฆฌ scalar ์๋ธ์ฟผ๋ฆฌ ๋ณต์ํ ์๋ธ์ฟผ๋ฆฌ rownum ์ ์ฝ์ฌํญ constraint ๊ธฐ๋ณธํค primary key ERD
*select ์๋ธ์ฟผ๋ฆฌ -๋จ์ํ, ๋ณต์ํ, scalar ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ ๊ณต scalar ์๋ธ์ฟผ๋ฆฌ: -๋ค๋ฅธ ํ ์ด๋ธ์ ์ปฌ๋ผ ๊ฐ์ผ๋ก ์กฐํํ ๋ ์ฌ์ฉ - ์๋ธ์ฟผ๋ฆฌ๋ง ๋ณ๋์ ์คํ์ ํ ์ ์์ -๋จ์ํ ์๋ธ์ฟผ๋ฆฌ๋ง ๊ฐ๋ฅ -ํ ์ด๋ธ์ ๋ค๋ฅด๊ณ ์ปฌ๋ผ๋ช ์ด ๊ฐ์ ๋ ์๋ณํด์ผ ํจ(ํ ์ด๋ธ๋ช .์ปฌ๋ผ๋ช ) ์ฟผ๋ฆฌ๊ฐ ์คํ๋ ์์ ์ ์ปฌ๋ผ๊ฐ์ผ๋ก ๋์ฒด๋จ ๋ฌธ๋ฒ) select ์ปฌ๋ผ๋ช , (select,,,) from ํ ์ด๋ธ๋ช *๋ณต์ํ ์๋ธ์ฟผ๋ฆฌ -inline view๋ฅผ ์ฌ์ฉํ ๊ฒ์ (์กฐํ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ ์ฌ์กฐํ) -์ธ๋ถ select์ฟผ๋ฆฌ๋ฌธ ์ปฌ๋ผ๋ช ์ inline view์ ์ํด ๊ฒ์๋ ์ปฌ๋ผ๋ช ์ด ๋จ (์์ชฝ์ธ ์๋ธ์ฟผ๋ฆฌ์์ alias๊ฐ ์ฌ์ฉ๋๋ฉด ๋ฐ๊นฅ ์ฟผ๋ฆฌ์์๋ alias๋ช ์ผ๋ก๋ง ์ฌ์ฉ๋จ ) -๋ง์ ์์ ๋ ์ฝ๋์์ ์ผ๋ถ๋ถ์ ๋ ์ฝ๋๋ฅผ ๋ณด์ฌ์ค์ผํ ๋ ์ฌ์ฉํจ (ex. ๊ฒ์๊ธ..