
PHP ์จ๋ผ์ธ ๊ฐ์
>PHP - ์ค๊ธ
๐ PHP ์ค๊ธ - 1์ฃผ์ฐจ: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ด ๋ฐ MySQL ์ฐ๋ (PDO) - 01 ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ (MySQL/MariaDB)
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-07-09 06:45:23 | |
์กฐํ์ | 42 |
๐ PHP ์ค๊ธ - 1์ฃผ์ฐจ: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ด ๋ฐ MySQL ์ฐ๋ (PDO) - 01 ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ (MySQL/MariaDB)
#PHP ์ค๊ธ ๊ณผ์ ์ ์ฒซ ๋ฒ์งธ ์ฃผ์ฐจ์์๋ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ์ด๋ฅผ ๋ค๋ฃจ๊ณ , #PHP์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ #MySQL ๋๋ #MariaDB์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ํนํ ์ด๋ฒ ํฌ์คํ ์์๋ #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ฌ #๊ฐ๋ ์ ๋ํด ์ง์ค์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)๋?
#๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational Database Management System, #RDBMS)๋ #๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ(Table)์ด๋ผ๋ ๊ตฌ์กฐํ๋ ํ์์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ์ ๋๋ค. ๊ฐ ํ ์ด๋ธ์ ์๋ก ๊ด๋ จ๋ #๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก, #ํ(Row)๊ณผ #์ด(Column)์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. #ํ์ ํ๋์ ๋ ์ฝ๋(Record)๋ฅผ ๋ํ๋ด๊ณ , #์ด์ ๊ฐ ๋ ์ฝ๋์ ์์ฑ(Attribute)์ ๋ํ๋ ๋๋ค.
#๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฅ ์ค์ํ ํน์ง์ ํ ์ด๋ธ ๊ฐ์ **๊ด๊ณ(Relationship)**๋ฅผ ์ ์ํ๊ณ ํ์ฉํ์ฌ #๋ฐ์ดํฐ์ ์ค๋ณต์ ์ต์ํํ๊ณ , #๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ด๋ฌํ ๊ด๊ณ๋ ์ฃผ๋ก **์ธ๋ ํค(Foreign Key)**๋ฅผ ํตํด ์ค์ ๋ฉ๋๋ค.
์ฃผ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
#MySQL: ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์คํ ์์ค #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ค ํ๋์ ๋๋ค. ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ, ๋ค์ํ ์ด์ ์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
#MariaDB: #MySQL์ ๊ฐ๋ฐ์๋ค์ด #MySQL์ ๋ฏธ๋์ ๋ํ ์ฐ๋ ค๋ก ์ธํด ๋ง๋ ์คํ ์์ค #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. #MySQL๊ณผ ๋์ ํธํ์ฑ์ ์ ์งํ๋ฉด์๋ ์ผ๋ถ ์ฑ๋ฅ ํฅ์ ๋ฐ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
#PostgreSQL: ๋ ๋ค๋ฅธ ๊ฐ๋ ฅํ ์คํ ์์ค #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ๋์ ์์ค์ #SQL ํ์ค ์ค์, ํ์ฅ์ฑ, ์์ ์ฑ์ ์๋ํฉ๋๋ค.
#Oracle Database: ๊ธฐ์ ํ๊ฒฝ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์์ฉ #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ๋์ ์ฑ๋ฅ๊ณผ ์์ ์ฑ, ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
#Microsoft SQL Server: #Microsoft์์ ๊ฐ๋ฐํ ์์ฉ #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. #Windows ํ๊ฒฝ๊ณผ์ ํตํฉ์ด ์ฉ์ดํ๋ฉฐ, ๋ค์ํ ๊ฐ๋ฐ ๋๊ตฌ์ ์ฐ๋๋ฉ๋๋ค.
์ด๋ฒ ๊ณผ์ ์์๋ ์คํ ์์ค์ด๋ฉฐ #PHP์ ํจ๊ป ๋๋ฆฌ ์ฌ์ฉ๋๋ #MySQL ๋๋ #MariaDB๋ฅผ ์ค์ฌ์ผ๋ก ์ค๋ช ํ ์์ ์ ๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ์ ๊ฐ๋
#๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ดํดํ๊ธฐ ์ํด ์์์ผ ํ ๋ช ๊ฐ์ง ์ฃผ์ #๊ฐ๋ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ํ ์ด๋ธ (Table)
#ํ ์ด๋ธ์ #๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ ๋๋ค. ํ๊ณผ ์ด๋ก ์ด๋ฃจ์ด์ง 2์ฐจ์ ๊ฒฉ์ ํํ๋ก ํํ๋ฉ๋๋ค. ๊ฐ ํ ์ด๋ธ์ ํน์ ์ฃผ์ ๋ ๊ฐ์ฒด์ ๋ํ #๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 'users' ํ ์ด๋ธ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ, 'products' ํ ์ด๋ธ์ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.
2. ํ (Row) ๋๋ ๋ ์ฝ๋ (Record)
#ํ์ ํ ์ด๋ธ์ ๊ฐ๋ก ๋ฐฉํฅ์ผ๋ก, ํ๋์ ์์ ํ #๋ฐ์ดํฐ ํญ๋ชฉ(๊ฐ์ฒด)์ ๋ํ๋ ๋๋ค. 'users' ํ ์ด๋ธ์ ๊ฐ ํ์ ํ ๋ช ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ฉฐ, 'products' ํ ์ด๋ธ์ ๊ฐ ํ์ ํ๋์ ์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
3. ์ด (Column) ๋๋ ํ๋ (Field)
#์ด์ ํ ์ด๋ธ์ ์ธ๋ก ๋ฐฉํฅ์ผ๋ก, ๊ฐ ๋ ์ฝ๋์ ํน์ ์์ฑ์ ๋ํ๋ ๋๋ค. 'users' ํ ์ด๋ธ์ 'user_id', 'username', 'email', 'password' ๋ฑ์ ์ด์ ๊ฐ์ง ์ ์์ผ๋ฉฐ, 'products' ํ ์ด๋ธ์ 'product_id', 'name', 'price', 'description' ๋ฑ์ ์ด์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ฐ ์ด์ ํน์ #๋ฐ์ดํฐ #ํ์ (์: ์ ์, ๋ฌธ์์ด, ๋ ์ง)์ ๊ฐ์ง๋๋ค.
4. ๊ธฐ๋ณธ ํค (Primary Key)
#๊ธฐ๋ณธ #ํค๋ ํ ์ด๋ธ ๋ด์ ๊ฐ #๋ ์ฝ๋๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋ ๋๋ ์ฌ๋ฌ ๊ฐ์ ์ด์ ์กฐํฉ์ ๋๋ค. ๊ธฐ๋ณธ ํค๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๋๋ค.
์ ์ผ์ฑ(Uniqueness): ํ ์ด๋ธ ๋ด์ ๋ชจ๋ ๊ธฐ๋ณธ ํค ๊ฐ์ ์๋ก ๋ฌ๋ผ์ผ ํฉ๋๋ค.
์ต์์ฑ(Minimality): ๊ธฐ๋ณธ ํค๋ฅผ ๊ตฌ์ฑํ๋ ์ด์ ๋ ์ฝ๋๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ๋ฐ ํ์ํ ์ต์ํ์ ์ด๋ก ๊ตฌ์ฑ๋์ด์ผ ํฉ๋๋ค. (๋ณตํฉ ํค์ ๊ฒฝ์ฐ)
๋(Null) ๋ถ๊ฐ: ๊ธฐ๋ณธ ํค ์ด์๋ NULL ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ฐ ํ ์ด๋ธ์ ํ๋์ ๊ธฐ๋ณธ ํค๋ฅผ ๊ฐ์ง๋๋ค.
5. ์ธ๋ ํค (Foreign Key)
#์ธ๋ #ํค๋ ํ ํ ์ด๋ธ์ ์ด(๋๋ ์ด๋ค์ ์กฐํฉ)๋ก์, ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐธ์กฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ธ๋ ํค๋ฅผ ํตํด ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ๊ณ , #๋ฐ์ดํฐ์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 'orders' ํ ์ด๋ธ์ 'user_id' ์ด์ 'users' ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค์ธ 'user_id'๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ ํค๊ฐ ๋ ์ ์์ต๋๋ค.
6. ๊ด๊ณ (Relationship)
ํ ์ด๋ธ ๊ฐ์ ์ฐ๊ฒฐ์ ๋ํ๋ ๋๋ค. ์ธ๋ ํค๋ฅผ ํตํด ์ค์ ๋๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ์ฃผ์ ์ ํ์ด ์์ต๋๋ค.
์ผ๋์ผ (One-to-One): ํ ํ ์ด๋ธ์ ๋ ์ฝ๋ ํ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ ์ฝ๋ ํ๋์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ผ๋๋ค (One-to-Many): ํ ํ ์ด๋ธ์ ๋ ์ฝ๋ ํ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ฌ๋ฌ ๋ ์ฝ๋์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
๋ค๋๋ค (Many-to-Many): ํ ํ ์ด๋ธ์ ์ฌ๋ฌ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ฌ๋ฌ ๋ ์ฝ๋์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ค๋๋ค ๊ด๊ณ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ํ ์ด๋ธ ์ฌ์ด์ ์ฐ๊ฒฐ ํ ์ด๋ธ(Junction Table)์ ๋์ด ์ผ๋๋ค ๊ด๊ณ ๋ ๊ฐ๋ก ํํํฉ๋๋ค.
7. SQL (Structured Query Language)
#SQL์ #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ #๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ์ค #์ธ์ด์ ๋๋ค. #๋ฐ์ดํฐ์ ๊ฒ์(SELECT), ์ฝ์ (INSERT), ์์ (UPDATE), ์ญ์ (DELETE) ๋ฑ ๋ค์ํ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
MySQL/MariaDB์ ํน์ง
#MySQL๊ณผ #MariaDB๋ #PHP ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
์คํ ์์ค: ์์ ๋กญ๊ฒ ์ฌ์ฉ, ์์ , ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋์ ํธํ์ฑ: #PHP์์ ์ฐ๋์ด ๋งค์ฐ ์ฝ๊ณ , ๋ค์ํ #PHP ํ์ฅ ๋ชจ๋์ ํตํด ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ฐํ ์ปค๋ฎค๋ํฐ: ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ๊ถ๊ธํ ์ ์ด ์์ ๋ ๋์์ ๋ฐ์ ์ ์๋ ํฐ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ค์ํ ๊ธฐ๋ฅ: ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ํ์์ ๋ฐ๋ผ ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฑ๋ฅ: ๋๋ถ๋ถ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์์ ์ถฉ๋ถํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ #PHP ์ค๊ธ ๊ณผ์ ์ ์ฒซ ์์์ผ๋ก #๊ด๊ณํ #๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ์ ์ธ #๊ฐ๋ ๊ณผ #MySQL/#MariaDB์ ํน์ง์ ๋ํด ์์๋ณด์์ต๋๋ค.
๋ค์ ํฌ์คํ ์์๋ โข โข SQL ๊ธฐ๋ณธ (SELECT, INSERT, UPDATE, DELETE) ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.