์๋ ํ์ธ์! leebeanbin์ ๋๋ค.
๋น์ ๊ณต์๋ก์จ ํด๊ฒฐํด์ผ ํ ๊ณผ์ ๊ฐ ์ฐธ ๋ง์๋ฐ์,,, ๊ฐ์ค์ ํ๋์ธ CS ์คํฐ๋๋ฅผ ๋๋์ด ์์ํ๊ฒ ๋์์ต๋๋ค! ์์ง ์ ๋ ๋๋ฌด ๊ฐ์์ธ๋ฐ ๐ฅ :(
ํ์ผ ์์คํ ์ ํ์ผ์ ๋จ์ํ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ์ด๋ค. ์ด์์ฒด์ ์ ํจ๊ป ์ค์น๋๊ณ ์์ฉ ํ๋ก๊ทธ๋จ ๋ณ๋ก ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋์ ํ์ผ๋ก ๊ด๋ฆฌํ๋ค.
ํ์ผ์์คํ ์ ์์ ์ฌ์ง์์ ๋ณด๋ ๊ฒ์ ์ฐธ๊ณ ํ์ฌ ์ ์ ์๋ฏ์ด, ์ด์์ฒด์ ์ ๊ฐ์ด ์ค์น๋์ด ๊ฐ ์์ฉํ๋ก๊ทธ๋จ์ ๋ณ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ์๋ ํ์ผ์ด ์ฌ๋ฌ๊ฐ๊ฐ ์๋ค๋ฉด ๊ทธ ๋ฐ์ดํฐ๊ฐ ๋ณ๋ก๋ก ์์ ๋๋ ๋ถ๋ถ์ ๋ํ์ฌ ๋์ ๊ณต์ ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ผ๊ด์ ์ผ๋ก ๊ด๋ฆฌ๊ฐ ๋ ์ ์๊ณ ๊ฐ์ ๋ด์ฉ์ ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํด์ ๋ํ๋ด๊ธฐ์ ๊ทธ ๋งํผ ๋ถํ์ํ ์ ์ฅ๊ณต๊ฐ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
ํ์ผ์์คํ ์์ ํ์ธ ํ ์ ์๋ ๋ฌธ์ ์๋ ๋ฐ์ดํฐ์ ์ค๋ณต์ฑ, ์ข ์์ฑ, ์ผ๊ด์ฑ์ ๋ํ ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋์จ ๊ฒ์ด DBMS ์ ๋๋ค. DataBase๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ์ ํ์์ผ๋ก ์ ์ฅํ๋ฉฐ, ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ ์ ์๋ค.
mysql> CREATE TABLE topic(
-> id INT(11) NOT NULL AUTO_INCREMENT,
-> title VARCHAR(100) NOT NULL,
-> description TEXT NULL,
-> created DATETIME NOT NULL,
-> author VARCHAR(15) NULL,
-> profile VARCHAR(200) NULL
-> );
CREATE TABLE ์ ํ (
์ ํ๋ฒํธ CHAR(3) NOT NULL,
์ ํ๋ช
VARCHAR(2),
์ฌ๊ณ ๋ INT,
๋จ๊ฐ INT,
์ ์กฐ์
์ฒด VARCHAR(2),
PRIMARY KEY(์ ํ๋ฒํธ),
CHECK (์ฌ๊ณ ๋ ใ= AND ์ฌ๊ณ ๋ ใ= 1)
);
CREATE TABLE ์ฃผ๋ฌธ (
์ฃผ๋ฌธ๋ฒํธ CHAR(3) NOT NULL,
์ฃผ๋ฌธ๊ณ ๊ฐ VARCHAR(2),
์ฃผ๋ฌธ์ ํ CHAR(3),
์๋ INT,
๋ฐฐ์ก์ง VARCHAR(3),
์ฃผ๋ฌธ์ผ์ DATETIME,
PRIMARY KEY(์ฃผ๋ฌธ๋ฒํธ),
FOREIGN KEY(์ฃผ๋ฌธ๊ณ ๊ฐ) REFERENCES ๊ณ ๊ฐ(๊ณ ๊ฐ์์ด๋),
FOREIGN KEY(์ฃผ๋ฌธ์ ํ) REFERENCES ์ ํ(์ ํ๋ฒํธ)
);
๐จ ์์ฝํ๋ฉด, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ, ์ผ๊ด์ฑ, ๋ ๋ฆฝ์ฑ, ๋์ ์ ์ด, ๋ณด์, ๋ฐฑ์ ๋ฐ ํ๋ณต, ์ฟผ๋ฆฌ ์ธ์ด์ผ๋ก ๋ณผ ์ ์๋ค. ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ณ ์์ ํ๋ ๋ฑ์ ๊ฐ๊ณต ์์ ์ ํ๋ค.
๐กํธ๋ ์ ์ ์ด๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ธฐ ์ํ ์์ ์ ๋จ์๋ฅผ ๋งํ๋ค.
- ์ด๋ฌํ ํธ๋ ์ ์ ์ ์๊ฐํ ๋ ์คํดํ๋ฉด ์๋๋ ๊ฒ์ด ์ฌ๊ธฐ์ ๋งํ๋ ์์ ์ ๋ด๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๊ณผ์ ์์ ์ ๋ ฅ๋๋ ์ปค๋งจ๋๋ฅผ ๋ชจ๋ ๋ฌถ์ด ํ๋์ ์์ ์ผ๋ก ๋ช ๋ช ํ๋ค. (ex. INSERT, SELECT ๋ฑ๋ฑ์ ์ปค๋งจ๋๋ฅผ ์ด์ฉํ์ฌ SQL์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค. )
์ฅ์ | ๋จ์ |
---|---|
โก ๋ฐ์ดํฐ ์ค๋ณต์ ํต์ ํ ์ ์๋ค | โก ๋น์ฉ์ด ๋ง์ด ๋ ๋ค |
โก ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ์ด ํ๋ณด๋๋ค | โก ๋ฐฑ์ ๊ณผ ํ๋ณต ๋ฐฉ๋ฒ์ด ๋ณต์กํ๋ค |
โก ๋ฐ์ดํฐ๋ฅผ ๋์ ๊ณต์ ํ ์ ์๋ค | โก ์ค์ ์ง์ค ๊ด๋ฆฌ๋ก ์ธํ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ค |
โก ๋ฐ์ดํฐ ๋ณด์์ด ํฅ์๋๋ค | |
โก ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์๋ค | |
โก ํ์คํํ ์ ์๋ค | |
โก ์ฅ์ ๋ฐ์ ์ ํ๋ณต์ด ๊ฐ๋ฅํ๋ค | |
โก ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋น์ฉ์ด ์ค์ด๋ ๋ค |
DBMS๋ ์ฐ๋ฆฌ๊ฐ DataBase Management System์ ์ฝ์๋ก์, ์ฐ๋ฆฌ๊ฐ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ๋ช ๋ช ํ์ง๋ง, ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ,๊ด๋ฆฌ,๊ฒ์,๊ฐฑ์ ํ๋ ์ด๊ด ์ํํธ์จ์ด ์ ๋๋ค.
๐ก DBMS์ ์ญํ
DBMS๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ณ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ด๋ค. ํ์ง๋ง, ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฌด ์์กดํ๋ ๊ฒ์ ์ข์ง ์๋ค. ์๋ํ๋ฉด ์ค์ ๋ก DBMS๋ ์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ๋์์ฃผ์ง๋ง, ์ทจ์ฝ์ ์ด ์กด์ฌ ํ ์ ์๊ณ ๊ทธ ์ ์ผ๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ์์ค๋๋ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐ ํ ์ ์๋ค.
๐ก DataBase's 3 steps
โ External Schema(for user)
์ฌ์ฉ์๊ฐ ํฐ ๋ฒ์์์ ์๋ ๋ฐ์ดํฐ๋ค ์ค ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ณํ๊ณ ์ ์ํ๋ ๊ฒ์ด External Schema๋ผ๊ณ ํ ์ ์์ต๋๋ค.
โ Conceptual Schema(for firm)
์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๋ชจ๋ ํ ์ด๋ธ, ๊ด๊ณ ๋ฐ ์ ์ฝ์กฐ๊ฑด์ ํฌํจํฉ๋๋ค.
โ Internal Schema(for storage)
๋ฌผ๋ฆฌ์ ์คํ ๋ฆฌ์ง๋ฅผ ์ค๋ช ํ๊ณ ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ์ ์ฅ๋๊ณ ์ธ๋ฑ์ฑ๋๋์ง๋ฅผ ์ ์ํฉ๋๋ค.
๋ฐ์ดํฐ์ ๋ ๋ฆฝ์ฑ์ด๋ผ๊ณ ํจ์ ๋ ผ๋ฆฌ์ , ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ์ ๋ ๋ฆฝ์ฑ์ ๋งํ๋ค. ์๋ฅผ๋ค๋ฉด ๋ด๋ถ ์คํค๋ง์ ์ ์ฅ๋์ด ์๋ ์ฐ๋ฝ์ฒ๋ผ๋ ์ปฌ๋ผ์ด ์ ํ๋ฒํธ๋ผ๊ณ ๋ฐ๋๋ ๊ฒฝ์ฐ ๊ฐ๋ /๋ด๋ถ ์ฌ์์ ์ฐ๋ฝ์ฒ๋ผ๋ ์ปฌ๋ผ์ด ์ ํ๋ฒํธ๋ผ๋ ๋ด๋ถ ์คํค๋ง์ ์ปฌ๋ผ๊ณผ ๊ด๋ จ์ด ์๋ค๋ผ๊ณ ํ์ ํด์ฃผ๋ ์์ผ๋ก ์์ ํ ๊ฐ์ง๋ ์์ง๋ง, ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ฅํ๊ณ ์ด๋ฅผ ์ฒ๋ฆฌ ํ ์ ์๋ ์ฅ์ ์ ๊ฐ์ง ์ ์๊ฒ ๋๋ค.
RDBMS๋ ํ ์ด๋ธ ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์คํ ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก SpreadSheet๋ฑ์ ์ด์ฉํ์ฌ ์ ๋ฆฌํ๋ ๋ฐ์ดํฐ๋ค์
์ง๊ด์
์ธ ๋ฐ์ดํฐ๋ผ๊ณ ํ ์ ์์ต๋๋ค. RDBMS์ ๊ฒฝ์ฐ๋ ํ ์คํค๋ง์ ๋ชจ๋ ๋ฐ์ดํฐ๋ค์ ํํ์ฌ ์ค๋ณต์ ์ต์ํํ๊ณ ๋ฐ์ดํฐ์ ์ ์ง ๋ณด์์ฑ์ ํฅ์ ์ํค๊ณ ๋ถ๋ฆฌ ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ์ง๊ด์
์ผ๋ก ๋ง๋ค ์ ์๋ค.
Relation Schema๋ MySql์์ ํ ์ด๋ธ์ ์์ฑํ๊ธฐ ์ ์ ์ฐ๋ฆฌ๋ ๋ฐ๋ก ์ปฌ๋ผ๋ช ๊ณผ ๊ทธ ์์ ๋ค์ด๊ฐ ๋ด์ฉ๋ค์ ์ ํด์คฌ์๋ค. ์ด๋ ๊ฒ ์์ฑ๋ค์ ์ด๋ฆ์ผ๋ก ์ ์ํ๋ ๊ฒ์ Relation Schema๋ผ๊ณ ํ๊ณ ๊ทธ ์์ ๋ค์ด๊ฐ๋ ๋ด์ฉ๋ค์ Relation Instance๋ผ๊ณ ํ๋ค.
mysql> CREATE TABLE topic( -> id INT(11) NOT NULL AUTO_INCREMENT, -> title VARCHAR(100) NOT NULL, -> description TEXT NULL, -> created DATETIME NOT NULL, -> author VARCHAR(15) NULL, -> profile VARCHAR(200) NULL -> );
์์ ์ฌ์ง์ผ๋ก Degree ์ Cardinality๋ ์ฝ๊ฒ ์ค๋ช
ํ ์ ์์ต๋๋ค. ์์ ํ์ ์ฐ๋ฆฌ๊ฐ ์ ์ธํ Relation schema์ Attribute์ ๊ฐ์๋ฅผ ์ฐจ์
๋ผ๊ณ ํ๊ณ ๊ทธ ์ฐจ์์ ์ ์ฝ ์กฐ๊ฑด์ ๋ง์ถฐ ์
๋ ฅ์ด ๋ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ ์ฆ Relation Instance์ ๊ฐ์๊ฐ ์นด๋๋๋ฆฌํฐ
๊ฐ ๋๋ ๊ฒ์
๋๋ค. ๐
์ฌ๊ธฐ์ ํค๋ผ๊ณ ํจ์, ์ฐ๋ฆฌ ์ ๋ ฅํ Relation Instance๋ค์ ์งํฉ์ธ ํํ์ ์ ๋ ฌํ๊ฑฐ๋ ๊ตฌ๋ถํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ๊ฐ๋ ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ชจ๋ Attribute๋ฅผ ํค๋ก ์ ํ์ฌ ๊ตฌ๋ถํ๋ ค๊ณ ํ๋ฉด ์ ์ผํ๊ฒ ๊ตฌ๋ถ์ด ์๋๊ธฐ ๋๋ฌธ์ ํน์ ์์ฑ์ Key๋ก์จ ์ ์ ํ๊ฒ ๋ฉ๋๋ค.
- ์ํผํค(Super Key) : ์ ์ผ์ฑ O, ์ต์์ฑ X
๐ ์ํผํค๋ ์ ์ผ์ฑ์ ํน์ฑ์ ๋ง์กฑํ๋ ์์ฑ ๋๋ ์์ฑ๋ค์ ์งํฉ์ ์๋ฏธํฉ๋๋ค. ํค ๊ฐ์ด ๊ฐ์ ํํ์ ์กด์ฌํ ์ ์๊ธฐ ๋๋ฌธ์ id์ ๊ฒฝ์ฐ๋ ํ ์ด๋ธ์ ์ ์ธ ๋น์์ Increment ์์ฑ์ผ๋ก ํ์ผ๋ฉด, ์ํผํค๊ฐ ๋ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ง์ , ๋์ด ๋ฑ์ ๊ฒฝ์ฐ๋ ๊ฒน์น ์ ์์ด ์ํผํค๋ก ์ฌ์ฉ ๋ถ๊ฐ๋ฅ ํ์ง๋ง id์ ํจ๊ป ์ฌ์ฉํ๋ค๋ฉด ์ํผํค๋ก์จ ์ญํ ์ด ๊ฐ๋ฅํฉ๋๋ค.- ํ๋ณดํค(Candidate Key) : ์ ์ผ์ฑ O, ์ต์์ฑ O
๐ ์ํผํค ์ค ์ต์์ฑ์ ๋ง์กฑํ๋, ์ฆ ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋ชจ๋ ๋ง์กฑํ๋ ์์ฑ ๋๋ ์์ฑ๋ค์ ์งํฉ์ ๋งํฉ๋๋ค. ์ํผํค์ ๋ํ ์ค๋ช ์ ํ๋ฉด์ id, ์ง์ , ๋์ด๋ฑ์ ํค๋ ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง, ์ง์ ๊ณผ ๋์ด์ ๊ฒฝ์ฐ๋ ์ต์์ฑ์ ๋ง์กฑํ์ง ์๊ณ ๊ฐ์ ๊ฐ์ด ๋์ค๊ธฐ ๋๋ฌธ์ id๋ง์ด ํ๋ณดํค๋ก์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.- ๊ธฐ๋ณธํค(Primary Key) : ํ๋ณดํค ์ค ์ ํ๋ฐ์ ํค
๐ ์์ ํ๋ณดํค๋ฅผ ์ ์ ํ๋ ๊ณผ์ ์์ ์ ๋ณ๋ ํ๋ณดํค๋ค ์ค ํ๋๋ฅผ ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํด์ผํฉ๋๋ค. ํ์ง๋ง ๊ธฐ๋ณธํค๋ก ์ ์ ํจ์ ์์ด ์๋ ๊ธฐ์ค์ ํต๊ณผํด์ผ๋ง ๊ธฐ๋ณธํค๋ก์จ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐ก๊ธฐ๋ณธํค ์กฐ๊ฑด
- null ๊ฐ์ ๊ฐ์ง ์ ์๋ ์์ฑ์ด ํฌํจ๋ ํ๋ณดํค๋ ๊ธฐ๋ณธํค๋ก ๋ถ์ ์ ํฉ๋๋ค. - ๊ฐ์ด ์์ฃผ ๋ณ๊ฒฝ๋ ์ ์๋ ์์ฑ์ด ํฌํจ๋ ํ๋ณดํค๋ ๊ธฐ๋ณธํค๋ก ๋ถ์ ์ ํฉ๋๋ค. - ๋จ์ํ ํ๋ณดํค๋ฅผ ๊ธฐ๋ณธํค๋ก ์ ํํฉ๋๋ค.
๐ก๊ธฐ๋ณธํค๊ฐ ๋๊ธฐ ์ํ ์์ฑ ์กฐ๊ฑด
- null๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.(Entity ๋ฌด๊ฒฐ์ฑ ์ฒซ๋ฒ์งธ ์กฐ๊ฑด์ ์ด๊ธ๋๋ค.) - ๊ธฐ๋ณธํค๋ก ์ ์๋ ์์ฑ๋ฐ๋ ๋์ผํ ๊ฐ์ด ์ค๋ณต๋์ด ์ ์ฅ๋ ์ ์๋ค.(Entity ๋ฌด๊ฒฐ์ฑ ๋๋ฒ์งธ ์กฐ๊ฑด์ ์ด๊ธ๋๋ค.)
- ๋์ฒดํค(Alternate Key, UNIQUE) : ํ๋ณดํค ์ค ์ ํ๋ฐ์ง ๋ชปํ ํค
๐ ๊ธฐ๋ณธํค๊ฐ ๋๊ธฐ ์ํ ์กฐ๊ฑด์ ๋๋ถ๋ถ ๋ถํฉํ์ง ์์ ํ๋ฝํ ํ๋ณดํค๋ค์ ๋์ฒดํค๋ผ๊ณ ํฉ๋๋ค.(๋ณด์กฐํค๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค!)
- ์ธ๋ํค(Foreign Key) : ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐ
๐ ๋ ํ ์ด๋ธ์ ์๋ก ์ฐ๊ฒฐํ๋๋ฐ ์ฌ์ฉ๋๋ ํค๋ฅผ ๋งํ๋ค.
์ฌ๊ธฐ์ ์กฐ๊ฑด์ ์ธ๋ํค๋ก ์ง์ ๋๋ฉด ์ฐธ์กฐ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ ์๋ ๊ฐ์ ์์ฑ์ผ๋ก์ ์ ๋ ฅ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. + (์ธ๋ํค๋ ์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค์ ๋์๋์ด ๋ฆด๋ ์ด์ ๊ฐ์ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ํํํ๋๋ฐ ์ค์ํ ๋๊ตฌ๋ก ์ฌ์ฉ๋ฉ๋๋ค.)
๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ ํ ์ด๋ธ๊ฐ์ ํํ ๋ณ๊ฒฝ ๊ท์น
์ํธ ์ฐธ์กฐํ๋ ํ
์ด๋ธ์ ์ง์ ํ๊ธฐ ์ํด์ ์๋ก์ด ํ
์ด๋ธ์ ๋ง๋ค๋ ์์ 4๊ฐ์ง ๊ท์น ์ค์์ ํ๊ฐ์ง๋ฅผ ์ ํํ์ฌ ์ ์ฉํ ์ ์๋ค. ๋ฐ๋ก ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ์๋ On update No action
์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์ ๋๋ค.
๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด์ ์์๋ณด๊ธฐ ์ ์ ๋ฌด๊ฒฐ์ฑ์ด๋ผ๋ ๊ฒ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฌด๊ฒฐ์ฑ
์ด๋ ๋ฐ์ดํฐ์ ์ ํ์ฑ, ์ผ๊ด์ฑ์ ๋ํ๋ ๋๋ค.
๋ฌด๊ฒฐ์ฑ ๋ฐ์ดํฐ๋ผ๋ ๊ฒ์ ๋ค์๋งํด, ์ ํํ๊ณ ์ผ๊ด๋๊ฒ ์ ์ง๋ ๊ฒฐํจ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
- ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(Integrity Constraint)
๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ์ฑ, ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด์ ์ ์ฅ, ์ญ์ , ์์ ๋ฑ์ ์ ์ฝํ๊ธฐ ์ํ ์กฐ๊ฑด์ ๋๋ค. ์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด์ ๋ง๋ ์ ์ฝ ์กฐ๊ฑด์ ์๋์ ๊ฐ์ต๋๋ค
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ
๊ฐ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ NULL์ด๋ ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ
์ธ๋ํค ๊ฐ์ NULL์ด๊ฑฐ๋ ์ฐธ์กฐํ๋ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค ๊ฐ๊ณผ ๋์ผํด์ผ ํฉ๋๋ค. ์ฆ NULL ๊ฐ์ด๋, ๋ฆด๋ ์ด์ ์์ ์ ํ์ ๊ฑธ์ด๋ ๊ฐ์ด ์๋ ๋ค๋ฅธ ๊ฐ์ ์ ๋ ฅํ ์ ์์ผ๋ฉฐ ๊ทธ๊ฒ์ ์ธ๋ํค๋ก์จ ๊ฐ์ ธ์ฌ ์ ์์์ ๋ํ๋ ๋๋ค.
- ๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ
์์ฑ๋ค์ ๊ฐ์ ์ ์๋ ๋๋ฉ์ธ์ ์ํ ๊ฐ์ด์ด์ผ ํฉ๋๋ค.
- ๊ณ ์ ๋ฌด๊ฒฐ์ฑ
ํน์ ์์ฑ์ ๋ํด ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง๋๋ก ์กฐ๊ฑด์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ๋ฆด๋ ์ด์ ์ ๊ฐ ํํ์ด ๊ฐ์ง๋ ์์ฑ ๊ฐ๋ค์ ์๋ก ๋ฌ๋ผ์ผ ํฉ๋๋ค.
- null ๋ฌด๊ฒฐ์ฑ
๋ฆด๋ ์ด์ ์ ํน์ ์์ฑ ๊ฐ์ NULL์ด ๋ ์ ์์ต๋๋ค. SQL์ ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ ํ ์ด๋ธ์ ์์ฑํ ๋ NOT NULL๋ก ์ ์ธ์ ํ์ผ๋ฉด ํด๋น ๊ฐ์ NULL์ด ์ฌ ์ ์์ต๋๋ค.
- Key ๋ฌด๊ฒฐ์ฑ
๊ฐ ๋ฆด๋ ์ด์ ์ ์ต์ํ ํ ๊ฐ ์ด์์ ํค๊ฐ ์กด์ฌํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ ๋ชฉ๋ก
1. ํธ๋์ ์ ์ ๋ํ ์ค๋ช
2. ์ ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ฐ๋ ๋ฐ ์ฐธ๊ณ ์ฌ์ง
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ค๋ช
4. ๋ฆด๋ ์ด์ ์คํค๋ง
5. ํค์ ๊ฐ๋
6. ํค์ ๊ฐ๋ ๋ฐ ์ ์ฝ์กฐ๊ฑด์ ์ดํด
7. ๋ฌด๊ฒฐ์ฑ์ ๊ฐ๋