๋ฐ์ดํฐ?
: ์ธก์ ๋ฐ ์์งํ ๊ฐ
์ ๋ณด?
: ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ์ฌ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ๊ฒ
๋ฐ์ดํฐ๋ฒ ์ด์ค (DataBase)
: โ๋ฐ์ดํฐ ์ ์ฅ์โ
๋ฐ์ดํฐ + ๋ฒ ์ด์ค
โข
๋ฐ์ดํฐ : ์ธก์ ๋ฐ ์์งํ ๊ฐ
โข
๋ฒ ์ด์ค : ๊ธฐ์ง
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค : ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๊ธฐ์ง; โ๋ฐ์ดํฐ ์ ์ฅ์โ
๊ณต์ ํ๊ธฐ ์ํด ํตํฉํ์ฌ ์ ์ฅํ ์ด์ ๋ฐ์ดํฐ์ ์งํฉ
๋ฐ์ดํฐ๋ฒ ์ด์ค ํน์ง
๋ฐ์ดํฐ๋ฅผ ํ์ผ ์์คํ
์ผ๋ก ๊ด๋ฆฌํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ค๋ณต ๋ฐ ๋๋ฝ๋ ๊ฐ๋ฅ์ฑ์ด ๋น๊ต์ ๋ ํฌ๋ค. ๋ํ, ์ฌ๋ฌ ์์คํ
๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ์ด๋ ต๋ค. ํ์ง๋ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด, ์ฌ๋ฌ ์์คํ
์ ์ฌ์ฉํ๋๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ค๋ณต ๋ฐ ๋๋ฝ์ ์ต์ํํ ์ ์์ผ๋ฉฐ ์์คํ
๊ฐ ์ค์๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
: ์ฌ์ฉ์ + ์ธํฐํ์ด์ค + DBMS + ๋ฐ์ดํฐ๋ฒ ์ด์ค(๋ฐ์ดํฐ์ฌ์ , ์ ์ฅDB)
โข
์ฌ์ฉ์
: ์ผ๋ฐ ์ฌ์ฉ์, ๊ฐ๋ฐ์, SQL ์ฌ์ฉ์, DBA
โข
์ธํฐํ์ด์ค
: UI, DB API, DB TOOL
โฆ
UI
: ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ํ๋ฉด
โช
์น, ์ฑ, ํ๋ก๊ทธ๋จ ํ๋ฉด
โฆ
DB API
: ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ๋ ํ๋ก๊ทธ๋จ๊ณผ ์ฐ๊ฒฐ๋ ์ธํฐํ์ด์ค
โช
DB ๋๋ผ์ด๋ฒ (JDBC ๋ฑ)
โฆ
DB TOOL
: ๋ฐ์ดํฐ ๊ด๋ฆฌ์๊ฐ DBMS ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ
โช
SQL Developer, Workbench, DBeaver, Toad ๋ฑ
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค
: ๋ฐ์ดํฐ ์ฌ์ + ์ ์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค
โฆ
๋ฐ์ดํฐ ์ฌ์
โช
๋ฉํ ํ
์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ
โช
๋ฉํ๋ฐ์ดํฐ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ, ์คํค๋ง, ํ
์ด๋ธ ์ ์, ์ ์ฝ ์กฐ๊ฑด, ์ธ๋ฑ์ค, ๋ทฐ ๋ฑ
โฆ
์ ์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค
โช
์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ
โข
DBMS
: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ
โฆ
์ฃผ์ ์ ํ : ORACLE, MySQL, MS-SQL
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ ๊ตฌ์ฑ์์๋ ์ฌ์ฉ์, ์ธํฐํ์ด์ค, DBMS, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์
๋๋ค.
์ฌ์ฉ์๋,
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ ์ฌ์ฉํ๋ ์ฌ๋ ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋งํฉ๋๋ค. ์ฌ์ฉ์๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ถ๊ฐ, ์์ , ์ญ์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
์ธํฐํ์ด์ค๋,
์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
๊ฐ์ ์ํธ ์์ฉ์ ์ํ ๋งค๊ฐ์ฒด๋ก, ๋ช
๋ น์ ์
๋ ฅํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค. ์ธํฐํ์ด์ค๋ ๋ช
๋ น ์ค ์ธํฐํ์ด์ค(CLI), ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(GUI), ์์ฉ ํ๋ก๊ทธ๋จ API ๋ฑ ๋ค์ํ ํํ๋ก ์กด์ฌํ ์ ์์ต๋๋ค.
DBMS(Database Management System) ๋,
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ ํต์ฌ ๊ตฌ์ฑ ์์๋ก, ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์กฐ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด์
๋๋ค. DBMS๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ, ์กฐ์, ์ ์ง ๊ด๋ฆฌ, ๋ณด์, ๋ฌด๊ฒฐ์ฑ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋,
์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์ฅ์์
๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ์ฌ์ (๋ฉํ๋ฐ์ดํฐ)๊ณผ ์ ์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ฌ์ ์ ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ , ์ ์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค์ ๋ฐ์ดํฐ ๋ ์ฝ๋๋ฅผ ๋ณด์ ํฉ๋๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ
: ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ๊ฐ๋จํ๊ฒ ์ค๋ช
ํด์ฃผ๋ ๊ตฌ์กฐ
( ๋ชจ๋ธ : ์ค์ฒด๋ฅผ ๊ฐ๋จํ๊ฒ ์ค๋ช
ํด์ฃผ๋ ์์ ๊ตฌ์กฐ )
๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ข ๋ฅ
โข
๊ณ์ธตํ
โข
๋คํธ์ํฌํ
โข
๊ฐ์ฒด์งํฅํ
โข
๊ด๊ณํ
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ
: ํ๊ณผ ์ด์ ๊ฐ๋ 2์ฐจ์ ๊ตฌ์กฐ์ ํ
์ด๋ธ ํํ๋ฅผ ํตํ์ฌ ์๋ฃ๋ฅผ ํํํ๋ ๊ฒ
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํต์ฌ ๊ตฌ์ฑ ์์
โข
๊ฐ์ฒด(Entity) = ๋ฆด๋ ์ด์
(์ค์ DB์ ํ
์ด๋ธ๊ณผ ๋์)
โข
์์ฑ(Attriute)
โข
๊ด๊ณ(Relationship)
๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑ์์
โข
๋ฆด๋ ์ด์
(Relation) : ๋ฐ์ดํฐ๋ค์ 2์ฐจ์ ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ก ์ ์ฅํ ๊ฒ(ํ
์ด๋ธ)
โข
์์ฑ(Attribute) : ๋ฆด๋ ์ด์
์ ์ด (์ปฌ๋ผ; column)
โข
ํํ(Tuple) : ๋ฆด๋ ์ด์
์ ํ (๋ก์ฐ; row)
โข
์ฐจ์(Degree) : ๋ฆด๋ ์ด์
์์ฑ์ ๊ฐ์
โข
์นด๋๋๋ฆฌํฐ(Cardinality) : ๋ฆด๋ ์ด์
์ ์
๋ ฅ๋ ํํ์ ๊ฐ์
โข
๋๋ฉ์ธ(Domain) : ํ๋์ ์์ฑ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์
๋ฆด๋ ์ด์ ์ ํน์ง
โข
ํํ์ ์์ฑ์ ํ๋์ ๋ฐ์ดํฐ๋ง ์ ์ฅํ๋ค
โข
ํํ์ ๋ชจ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ก ์ ์ผํ ๊ฐ์ ๊ฐ๋๋ค
โข
ํํ ๊ฐ์ ์์๋ ์๋ฏธ๊ฐ ์๋ค
โข
์์ฑ ๊ฐ์ ์์๋ ์๋ฏธ๊ฐ ์๋ค
โข
์์ฑ์ ๋ถํด๋์ง ์๋ ์์๊ฐ๋ฅผ ๊ฐ๋๋ค (ํ๋์ ์์ฑ์ ํ๋์ ๊ฐ๋ง ๊ฐ๋๋ค)
๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋จ์ํํ ๊ตฌ์กฐ์ด๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ํ ์ฐ๊ตฌ๊ฐ ์งํ๋๋ฉด์, ๋ค์ํ ํํ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ๋ฑ์ฅํ์์ผ๋, ํ์ฌ๊น์ง ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ ํ์ ํํ, ์ฆ ํ
์ด๋ธ์ด๋ผ๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํ๊ณ ๊ด๋ฆฌํ๋ ๊ตฌ์กฐ์ด๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ๋ช
ํํ๊ฒ ์ ์ํ์ฌ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ, ๋ฌด๊ฒฐ์ฑ, ๋ณด์ ๋ฑ์ ์ ์งํ๊ณ ๊ด๋ฆฌํ๊ธฐ์ ์ ํฉํ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. ์ด๋ฌํ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ํ๋ค. ์ฝ๊ฒ ๋งํด, ํ๊ณผ ์ด์ 2์ฐจ์ ๊ตฌ์กฐ์ธ ํ
์ด๋ธ์ ๊ธฐ๋ณธ์ผ๋ก ๋ค๋ฃจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ํ ์ ์๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
: ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ๋ฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
RDBMS(Relational Database Management System)
: ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๋ฐ ๊ด๋ฆฌํ๋ ์์คํ
SQL (Sturctrured Query Language)
: "๊ตฌ์กฐํ๋ ์ง์์ด"
RDBMS ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ณ ๊ด๋ฆฌํ๋ ์ง์ ์ธ์ด
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ
โข
ORACLE
โข
MySQL
โข
MS-SQL
SQL ๋ถ๋ฅ
์ข
๋ฅ | ์ค๋ช
|
DDL | - DB ์ ๊ฐ์ฒด ๋ฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ์ด
- Data Definition Language
- CREATE, ALTER, DROP, RENAME, TRUNCATE |
DML | - ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ, ์กฐํ, ์์ , ์ญ์ ํ๋ ์ธ์ด
- Data Manipulation Language
- INSERT, SELECT, UPDATE, DELETE |
DCL | - ์ฌ์ฉ์์๊ฒ ๊ถํ ๋ถ์ฌ ๋ฐ ํ์ํ๋ ์ธ์ด
- Data Control Language
- GRANT, REVOKE |
TCL | - ํธ๋์ญ์
์ ์ ์ดํ๋ ์ธ์ด
- Transaction, Control Language
- COMMIT, ROLLBACK, SAVEPOINT |
DDL (๋ฐ์ดํฐ ์ ์์ด)
: ํ
์ด๋ธ์ ํฌํจํ ์ฌ๋ฌ ๊ฐ์ฒด ์์ฑ, ์์ , ์ญ์ ํ๋ ๋ช
๋ น์ด
- CREATE : ๊ฐ์ฒด ์์ฑ
- ALTER : ๊ฐ์ฒด ์์
- DROP : ๊ฐ์ฒด ์ญ์
- TRUNCATE : ๋ด๋ถ์ ๋ด์ฉ์ ์ญ์
Plain Text
๋ณต์ฌ
DML (๋ฐ์ดํฐ ์กฐ์์ด)
: ํ
์ด๋ธ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ถ๊ฐ, ์์ , ์ญ์ ํ๋ ๋ช
๋ น์ด
- SELECT : ๋ฐ์ดํฐ ์กฐํ
- INSERT : ๋ฐ์ดํฐ ์ถ๊ฐ
- UPDATE : ๋ฐ์ดํฐ ์์
- DELETE : ๋ฐ์ดํฐ ์ญ์
Plain Text
๋ณต์ฌ
DCL (๋ฐ์ดํฐ ์ ์ด์ด)
: ๋ฐ์ดํฐ์ ๋ํ ์ฌ์ฉ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ํด์ ํ๋ ๋ช
๋ น์ด
- GRANT : ๊ถํ ๋ถ์ฌ
- REVOKE : ๊ถํ ํด์
Plain Text
๋ณต์ฌ
TCL (ํธ๋์ญ์ ์ ์ด์ด)
: ํธ๋์ญ์
๋จ์๋ก ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ฌํญ์ ์๊ตฌ ์ ์ฅํ๊ฑฐ๋ ๋๋๋ฆฌ๋ ๋ช
๋ น์ด
- COMMIT : ํธ๋์ญ์
์์ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๋ ๋ช
๋ น
- ROLLBACK : ํธ๋์ญ์
์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์ํ๊ณ ์ด์ ์ํ๋ก ๋๋๋ฆฌ๋ ๋ช
๋ น
Plain Text
๋ณต์ฌ
ํธ๋์ญ์ ? (Transaction)
: DBMS ์์ ๋ฐ์ํ๋ ํ๋์ ๋
ผ๋ฆฌ์ ์์
๋จ์
ํธ๋์ญ์ ์ ํน์ง - ACID
โข
A
โฆ
์์์ฑ (Atomicity): ํ๋์ ํธ๋์ญ์
์ ๋ชจ๋ ์ฐ์ฐ์ด ์์ ํ ์ํ๋๊ฑฐ๋ ์๋ฌด๋ฐ ์ฐ์ฐ๋ ์ํ๋์ง ์์ ์ํ๋ก ์ ์ง๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์ฆ, ํธ๋์ญ์
๋ด์ ๋ชจ๋ ์์
์ ํจ๊ป ์คํ๋๊ฑฐ๋ ์๋ฌด๊ฒ๋ ์คํ๋์ง ์์์ผ ํฉ๋๋ค.
โข
C
โฆ
์ผ๊ด์ฑ (Consistency): ํธ๋์ญ์
์๋ฃ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฏธ๋ฆฌ ์ ์๋ ์ผ๊ด๋ ์ํ์ ์์ด์ผ ํฉ๋๋ค. ํธ๋์ญ์
์์
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๊ด์ฑ์ ์ ์งํด์ผ ํฉ๋๋ค.
โข
I
โฆ
๊ฒฉ๋ฆฌ์ฑ (Isolation): ๋์์ ์ฌ๋ฌ ํธ๋์ญ์
์ด ์คํ๋ ๋, ํ ํธ๋์ญ์
์ ์์
์ด ๋ค๋ฅธ ํธ๋์ญ์
์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ๊ฒฉ๋ฆฌ๋์ด์ผ ํฉ๋๋ค. ๊ฐ ํธ๋์ญ์
์ ๋ค๋ฅธ ํธ๋์ญ์
์ ์์
์ ๋ชจ๋ฅด๊ณ ๋
๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
โข
D
โฆ
์์์ฑ (Durability): ํธ๋์ญ์
์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค. ์์คํ
์ฅ์ ๋๋ ๋น์ ์ ์ข
๋ฃ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๋ฐ์ดํฐ์ ์ง์์ฑ์ด ๋ณด์ฅ๋์ด์ผ ํฉ๋๋ค.
์ด๋ฌํ ํธ๋์ญ์
์ ํน์ง์ผ๋ก ์ธํด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์๋ค.