[DB] Primary Key๋?Web_Backend/DB2023. 5. 26. 14:50
Table of Contents
๐ฌ Primary Key๋ ๋ฌด์์ธ๊ฐ์?
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ์๋ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ Key๋ฅผ ๊ธฐ๋ณธํค, primary key๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์์๋ก ๊ตญ๋ฏผ์ด๋ผ๋ ํ ์ด๋ธ์ PK๋ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๊ฐ ๋ ์ ์์ผ๋ฉฐ, Nosql์์๋ Key ๊ฐ์ด Primary Key ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ํ Primary Key์ ๊ฒฝ์ฐ ๋จ์ผ ์นผ๋ผ๋ฟ ์๋๋ผ ์ฌ๋ฌ ๊ฐ์ ์นผ๋ผ์ด ํฉ์ณ์ ธ PK๊ฐ ๋ ์ ์๋๋ฐ, ์๋ฅผ ๋ค๋ฉด ์ด๋์ ์๋ผ๋ ํ ์ด๋ธ์์ id๊ฐ PK๊ฐ ๋ ์ ์์ง๋ง, ๋๋ถ์ด ํ ์ด๋ฆ๊ณผ ๋ฑ๋ฒํธ๋ฅผ ํฉ์น ๊ฒ ๋ํ PK๊ฐ ๋ ์ ์์ต๋๋ค.
Primary key
Primary key(๊ธฐ๋ณธ ํค)๋?
๐ SQL ๋ฐ์ดํฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ค๊ณ๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ํค(A uniquely identifying key in the design of database tables)
NoSQL์ Key-Valueํ DB์ key์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ PK๊ฐ ์ ์๋์ด ๋ค์ด๊ฐ๋ฉฐ, ์์ฑ๊ฐ์ value์ ์ ์ฅ๋จ.
์ฆ, ๋ ์ฝ๋๋ฅผ ์ ์ผํ๊ฒ ์๋ณ ํ ์ ์๋ ์นผ๋ผ.
- Data Table์ ์๋ ์ ์ผํ๊ฒ ๊ตฌ๋ถ๋๋ Data-Key๋ฅผ ๊ธฐ๋ณธํค(Primary Key)๋ผ๊ณ ๋ถ๋ฆ
- Primary Key๋ ์ ์ผํ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง ์ ์์
- Primary Key๋ ๊ณต๋ฐฑ์ ๊ฐ์ง ์ ์์
- Primary Key๋ ํ๋ ์ด์์ ์นผ๋ผ์ด ๊ทธ๋ฃนํ๋์ด ๊ธฐ๋ณธ ํค๋ก ์ฐ์ผ ์ ์์.
Unieque key๋?
๐ ์ ์ผ์ฑ์ ๊ฐ์ง๊ธฐ ์ํด ์ค์ ํ๋ ํค. ๋ฌด๊ฒฐ์ฑ์ด ์ ์ฝ์กฐ๊ฑด์.
Foreign key(์ธ๋ ํค)๋?
๐ ํ Table๊ณผ ์ฐธ์กฐ๋๋ ๋ค๋ฅธ Table ๊ฐ์ ์ฐ๊ฒฐ๋๋ Primary Key Column
- Foreign Key๋ ๋ค๋ฅธ Primary Key๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ ๋๋ ์์ฑ๋ค์ ์งํฉ์ ์๋ฏธ
- Foreign Key๋ ์ฐธ์กฐ๊ด๊ณ์ ๊ธฐ๋ณธ ํค์ ๊ฐ์ ์์ฑ
Candidate key(ํ๋ณด ํค)๋?
๐ Primary Key์ Foreign Key์ ๊ฐ์ ๊ฐ Data๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์์ฑ๋ค์ ์งํฉ.
- Candidate Key๋ ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋ชจ๋ ๋ง์กฑ
- ์ ์ผ์ฑ : ํ๋์ Key ๊ฐ์ผ๋ก ํ๋์ Data๋ฅผ ์๋ณํ๋ ์ฑ์ง
- ์ต์์ฑ : ๋ชจ๋ Data๋ฅผ ์ ์ผํ๊ฒ ์๋ณํ๋ ์์ฑ์ผ๋ก๋ง ๊ตฌ์ฑ๋๋ ์ฑ์ง
Super key(์ํผ ํค)๋?
- ํ๋ ์ด์์ ์์ฑ์ด ํ๋์ Data๋ฅผ ๊ตฌ๋ณํ๋ฉด ๊ทธ๊ฒ์ Super Key๋ก ์ ์
Primary Key์ Unique Key์ ์ฐจ์ด์
PK๋ UK์ ์ฑ์ง์ ํฌํจํ๋ ํค ์ค์์ ์ค๊ณ์๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํํ ํค. ์ ๋ํฌ ํค์ ๊ฒฝ์ฐ ํ๋์ ํ ์ด๋ธ ์์ ์นผ๋ผ๋ง๋ค ์ง์ ๊ฐ๋ฅํ์ง๋ง, ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ๊ฒฝ์ฐ ์ค์ง ํ๋๋ง ์ค์ ํ ์ ์์.
'Web_Backend > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
@Yanako :: Yana's coding story
์ผ๋์ ์ฝ๋ฉ ์ผ๊ธฐ์ฅ :) #์ฝ๋ฉ๋ธ๋ก๊ทธ #๊ธฐ์ ๋ธ๋ก๊ทธ #์ฝ๋ฉ #์กฐ๊ธ์ฉ,๊พธ์คํ
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!