
๐ก ๋ฐ๋ณต ์์ ์ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ๊ณ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ ์ ์ฅ ํ๋ก์์ ! ์ง์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋์ , ๋ฏธ๋ฆฌ ์ ์๋ ํ๋ก์์ ๋ฅผ ๋ถ๋ฌ์ ํ์ฉํด ๋ณด์ธ์. ํจ์จ์ ์ธ SQL ์ฟผ๋ฆฌ ๊ด๋ฆฌ์ ํต์ฌ์ ๋๋ค.
์ ์ฅ ํ๋ก์์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฏธ๋ฆฌ ์ ์ฅ๋ SQL ์ฟผ๋ฆฌ ๋๋ ์ฟผ๋ฆฌ๋ค์ ๋ชจ์์ ๋๋ค. ๋ง์น ํ๋์ ํจ์์ฒ๋ผ ์ฌ์ฉํ ์ ์์ด, ๋์ผํ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์์ฑํ๋ ๋ฒ๊ฑฐ๋ก์์ ์์ ์ค๋๋ค. ๋ณต์กํ ๋ก์ง์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๊ณ ํ์ํ ๋๋ง๋ค ํธ์ถํด ์คํํ ์ ์์ต๋๋ค.
์ฅ์ ํ๋์ ๋ณด๊ธฐ:
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋งค๋ฒ ์๋ก์ด ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ๊ท์ฐฎ์ ๋, ๋๋ ๋ณต์กํ ์์ ์ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋ฌ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋, ๋งค๋ฒ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ง ์๊ณ ์ ์ฅ๋ ํ๋ก์์ ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ด์!
CREATE PROCEDURE HireEmployee
@FirstName VARCHAR(50),
@LastName VARCHAR(50),
@BirthDate DATE
AS
BEGIN
INSERT INTO Employees (FirstName, LastName, BirthDate)
VALUES (@FirstName, @LastName, @BirthDate)
END;
์ ์ฝ๋๋ ์๋ก์ด ์ง์์ ๋ฑ๋กํ๋ ์ ์ฅ ํ๋ก์์ ์
๋๋ค. ์ธ์๋ก ์ด๋ฆ, ์ฑ, ์๋
์์ผ์ ๋ฐ์์ Employees ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ์ฝ๋๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํด ๋๋ฉด, ๋์ค์ ์ด๋ ๊ฒ ๊ฐ๋จํ ํธ์ถํ ์ ์์ด์:
EXEC HireEmployee 'John', 'Doe', '1985-02-15';
๋งค๋ฒ ์ฟผ๋ฆฌ๋ฅผ ์๋ก ์์ฑํ๋ ๋์ , ์ ์ฅ๋ ํ๋ก์์ ๋ฅผ ํธ์ถํด ์์ฝ๊ฒ ์์ ์ ์ฒ๋ฆฌํ ์ ์์ฃ .
๐ก ๋ณต์กํ SQL ์์ ์ ํจ์์ฒ๋ผ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ! ํ๋ก์์ ๋ฅผ ํตํด ์ ๋ ฅ(IN)๊ณผ ์ถ๋ ฅ(OUT) ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ์ธ์.
์ ์ฅ ํ๋ก์์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ ์ ์๋ ์ผ์ข ์ ํจ์์ ๋๋ค. ๋ณต์กํ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ฌถ์ด๋๊ณ ํ์ํ ๋๋ง๋ค ํธ์ถํด ์ฌ์ฉํจ์ผ๋ก์จ, ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ํจ์จ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
CREATE OR REPLACE PROCEDURE ํ๋ก์์ ๋ช
(๋ณ์๋ช
1 IN ๋ฐ์ดํฐํ์
, ๋ณ์๋ช
2 OUT ๋ฐ์ดํฐํ์
, ...)
IS
๋ณ์๋ช
1 ๋ฐ์ดํฐํ์
;
๋ณ์๋ช
2 ๋ฐ์ดํฐํ์
;
BEGIN
-- ํ์ํ ๊ธฐ๋ฅ ๊ตฌํ
END;
IN ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ฉํ ํ๋ก์์ ์์์ ๋๋ค. ์ด ํ๋ก์์ ๋ ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋ ฅ๋ฐ์ ์ธ์ฌ๋ง์ ์ถ๋ ฅํ๋ ๊ฐ๋จํ ๊ธฐ๋ฅ์ ํฉ๋๋ค.
CREATE OR REPLACE PROCEDURE introducePerson(name IN VARCHAR2)
IS
greeting VARCHAR2(10) := '์๋
ํ์ธ์,';
BEGIN
dbms_output.put_line(greeting || ' ' || name || '๋');
END;
EXEC introducePerson('์ง์');
์๋
ํ์ธ์, ์ง์๋
์ค๋ช :
name์ผ๋ก ์
๋ ฅ๋ฐ์ ์ด๋ฆ์ ๋ฐ์์ ์ธ์ฌ๋ง๊ณผ ๊ฒฐํฉํ ํ ์ถ๋ ฅํฉ๋๋ค. ๊ฐ๋จํ ๊ตฌ์กฐ์ง๋ง ์ค์ฉ์ ์ด์ฃ !OUT ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์์ ๋ด๋ถ์์ ๊ฐ์ ์ค์ ํ๊ณ , ์ด๋ฅผ ์ธ๋ถ๋ก ๋ฐํํ ์ ์์ต๋๋ค. ์๋ ์์๋ ๋ถ์ ์ด๋ฆ์ ๋ฐํํ๋ ํ๋ก์์ ์ ๋๋ค.
CREATE OR REPLACE PROCEDURE getDepartment(dept OUT VARCHAR2)
IS
BEGIN
dept := '๋ง์ผํ
๋ถ์';
END;
DECLARE
departmentName VARCHAR2(100);
BEGIN
getDepartment(departmentName);
dbms_output.put_line('๋ถ์ ์ด๋ฆ์ ' || departmentName);
END;
EXEC getDepartment(departmentName);
๋ถ์ ์ด๋ฆ์ ๋ง์ผํ
๋ถ์
์ค๋ช :
dept๋ ํ๋ก์์ ๋ด๋ถ์์ ๊ฐ์ด ์ค์ ๋๊ณ , ํธ์ถ ํ departmentName ๋ณ์๋ก ์ ๋ฌ๋์ด ์ถ๋ ฅ๋ฉ๋๋ค.์ต์ ํ์ ์บ์๋ ์ ์ฅ ํ๋ก์์ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ํฅ์์ํค๋ ์ค์ํ ํน์ง์ ๋๋ค.
์ต์ ํ: ์ ์ฅ ํ๋ก์์ ๋ ์ต์ด ์คํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์์ ์ต์ ํ๋ ์ํ๋ก ์ปดํ์ผ๋ฉ๋๋ค. ์ปดํ์ผ๋ ํ๋ก์์ ๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์ํ ์คํ ๊ณํ์ ๋ฏธ๋ฆฌ ์๋ฆฝํ๊ณ , ์ดํ ๋์ผํ ํ๋ก์์ ๊ฐ ํธ์ถ๋ ๋ ์ด ๊ณํ์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ ์ฅํด ๋ก๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋งค๋ฒ SQL ์ฟผ๋ฆฌ๋ฅผ ์๋ก ๋ถ์ํ๊ฑฐ๋ ์คํ ๊ณํ์ ์๋ฆฝํ ํ์๊ฐ ์์ด์ง๋๋ค.
์บ์: ํ ๋ฒ ์คํ๋ ํ๋ก์์ ๋ ์๋ฒ์ ์บ์์ ์ ์ฅ๋ฉ๋๋ค. ์ดํ ๋์ผํ ํ๋ก์์ ๊ฐ ๋ค์ ํธ์ถ๋๋ฉด ์ปดํ์ผ ๊ณผ์ ์์ด ๋ฐ๋ก ์บ์์์ ๊บผ๋ด์ด ์คํ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํค๋ฉฐ, ๋ฐ๋ณต์ ์ธ ์ฟผ๋ฆฌ๋ ๋ณต์กํ ๋ก์ง์ ํฌํจํ ์์ ์์ ํนํ ์ ์ฉํฉ๋๋ค.
์์: ๊ณ ๊ฐ ์ ๋ณด ์กฐํ์ ๊ฐ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํ๋๋ ์์ ์ ๊ฒฝ์ฐ, SQL ์ฟผ๋ฆฌ๋ฅผ ๋งค๋ฒ ๋ค์ ์์ฑํ๊ณ ์ต์ ํํ๋ ๋์ , ์ด๋ฏธ ์ต์ ํ๋ ์ํ๋ก ์บ์์ ์ ์ฅ๋ ํ๋ก์์ ๋ฅผ ํธ์ถํจ์ผ๋ก์จ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ ์ฅ ํ๋ก์์ ๋ ์ ์ง ๋ณด์ ์ธก๋ฉด์์ ๋งค์ฐ ํฐ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ฌ๋ฌ ์ฟผ๋ฆฌ๋ ๋ก์ง์ ํ๋์ ํ๋ก์์ ์ ๋ด์๋๊ณ , ํด๋น ๋ก์ง์ ์์ ํด์ผ ํ ๋๋ ํ๋ก์์ ๋ง ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค.
์ฝ๋ ์ผ๊ด์ฑ: ์ฌ๋ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ ์ฌ์ฉ์๋ค์ด ๋์ผํ ๋ก์ง์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํ๋ค๋ฉด, ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ณณ์์ ์ฟผ๋ฆฌ๋ฅผ ์์ ํ ํ์ ์์ด ํ๋ก์์ ํ๋๋ง ์์ ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ก ์ธํด ์ฝ๋์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ผ๋ฉฐ, ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์ค์์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ฅ์ ๊ณผ ๋จ์ : ํ๋ก์์ ๋ด๋ถ์ ๋ก์ง์ ์์ ํ๋ฉด ํ๋ก์์ ๋ฅผ ํธ์ถํ๋ ๋ชจ๋ ๋ถ๋ถ์ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ฏ๋ก ์ ์ง ๋ณด์๊ฐ ์ฌ์์ง์ง๋ง, ๋ฐ๋๋ก ์ด๋ ์๋์น ์์ ๋ถ์์ฉ์ ๋ฐ์์ํฌ ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์์ ์ ๋ํ ์์ ์ด ๋ค๋ฅธ ์์คํ ์๋ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ก์์ ๋ฅผ ์์ ํ ๋๋ ๊ทธ ์ํฅ ๋ฒ์๋ฅผ ์ฒ ์ ํ ํ์ ํด์ผ ํฉ๋๋ค.
์์: ๋ง์ฝ ์ง์ ๊ธ์ฌ๋ฅผ ๊ณ์ฐํ๋ ๋ก์ง์ด ์ฌ๋ฌ ์์คํ ์์ ์ฌ์ฉ๋๊ณ ์๋ค๋ฉด, ๊ทธ ๋ก์ง์ ๋ด์ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ ํจ์ผ๋ก์จ ๋ชจ๋ ์์คํ ์ ์ฆ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ ์ฅ ํ๋ก์์ ๋ ํธ๋ํฝ ๊ฐ์์ ํฌ๊ฒ ๊ธฐ์ฌํฉ๋๋ค. ํนํ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ์์ ํจ์จ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
๋คํธ์ํฌ ํธ๋ํฝ ์ ๊ฐ: ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ณด๋ด๋ ์ฟผ๋ฆฌ์ ์์ ์ค์ผ ์ ์์ต๋๋ค. ๋ณดํต ํด๋ผ์ด์ธํธ์์ ์ง์ SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ฌ ์๋ฒ๋ก ์ ์กํ๊ฒ ๋๋ฉด ์ฟผ๋ฆฌ์ ์์ด ๋ง์์ง ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๋ ๋จ์ํ ํ๋ก์์ ํธ์ถ๊ณผ ํ์ํ ํ๋ผ๋ฏธํฐ๋ง ์ ๋ฌํ๊ณ , ์๋ฒ์์๋ ์ด๋ฏธ ์ค๋น๋ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๋ฌ๋๋ ๋ฐ์ดํฐ์ ์์ด ์ค์ด๋ญ๋๋ค.
์๋ฒ ๋ถํ ๊ฐ์: ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ๋ณต์กํ SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ง ์๊ณ , ์๋ฒ์์ ๋ฏธ๋ฆฌ ์ ์๋ ์ฟผ๋ฆฌ๋ง์ ์ฒ๋ฆฌํ๋ฏ๋ก ์๋ฒ ๋ถํ๋ ์ค์ด๋ญ๋๋ค. ์๋ฒ์์ ์ต์ ํ๋ ์ํ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ์คํ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ์ ๋์ผ ์ ์์ต๋๋ค.
์์: ํด๋ผ์ด์ธํธ์์ ๋ณต์กํ ์ฃผ๋ฌธ ์กฐํ ์ฟผ๋ฆฌ๋ฅผ ๋งค๋ฒ ์์ฑํด ์๋ฒ๋ก ๋ณด๋ด๋ ๋์ , ์ ์ฅ ํ๋ก์์ ๋ฅผ ํธ์ถํด ํ๋ผ๋ฏธํฐ(์: ์ฃผ๋ฌธ ID)๋ง ์ ๋ฌํจ์ผ๋ก์จ ๋คํธ์ํฌ ํธ๋ํฝ๊ณผ ์๋ฒ ๋ถํ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
๋ณด์ ์ธก๋ฉด์์๋ ์ ์ฅ ํ๋ก์์ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ๋ ธ์ถ ์ต์ํ: ํด๋ผ์ด์ธํธ๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ํธ์ถํ ๋ ๋จ์ง ํ์ํ ์ธ์๋ง ์ ๋ฌํ๋ฉด ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์ฒด์ ์ธ ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ด๋ถ ์ฟผ๋ฆฌ์ ์ ๊ทผํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ก ์ธํด ์ค์ํ ํ ์ด๋ธ์ ์ ๋ณด๋ ๊ตฌ์กฐ๊ฐ ์ธ๋ถ์ ๋ ธ์ถ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๊ถํ ๊ด๋ฆฌ: ํ๋ก์์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ํน์ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ง์ ์ ๊ทผํ์ง ์๊ณ ํ๋ก์์ ๋ฅผ ํตํด์๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๊ฒ ์ค์ ํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์์คํ ์ ํต์ฌ ์ ๋ณด๋ฅผ ๋ณดํธํ๋ ๋ฐ ๋งค์ฐ ํจ๊ณผ์ ์ ๋๋ค.
์์: ๊ณ ๊ฐ ์ ๋ณด๊ฐ ๋ด๊ธด ํ ์ด๋ธ์ ๋ํด ์ง์ ์ ๊ทผ ๊ถํ์ ์ฃผ์ง ์๊ณ , ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์กฐํํ๋ ์ ์ฅ ํ๋ก์์ ์๋ง ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ฉด ๋ณด์์ด ๊ฐํ๋ฉ๋๋ค.
ํธํ์ฑ์ ์ ์ฅ ํ๋ก์์ ์ ๊ฐ์ฅ ํฐ ๋จ์ ์ค ํ๋์ ๋๋ค. SQL ํ์ค๊ณผ์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๊ฐ์ ์ด์์ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ตฌ๋ฌธ ๊ท์น ์ฐจ์ด: ๊ฐ DBMS(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ )๋ SQL/PSM(Stored Procedure Language)์ ํ์ค์ ๋ฐ๋ฅด์ง ์๊ณ , ๊ฐ๊ธฐ ๋ค๋ฅธ ํ๋ก์์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด, MySQL์์ ์ฌ์ฉํ๋ ํ๋ก์์ ๋ฌธ๋ฒ๊ณผ Oracle, SQL Server์ ๋ฌธ๋ฒ์ ๋ค์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ด๋ก ์ธํด ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์์ฑ๋ ํ๋ก์์ ๋ฅผ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฎ๊ธธ ๋๋ ํธํ์ฑ ๋ฌธ์ ๋ก ์ธํด ์ฝ๋ ์์ ์ด ํ์ํฉ๋๋ค.
์ฝ๋ ์ฌ์ฌ์ฉ์ฑ ์ ํ: ์ด์์ฑ(Portability)์ด ๋จ์ด์ง๋ฉด ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ๋ ํฌ๊ฒ ๋ฎ์์ง๋๋ค. ํ๋ก์์ ๋ ํน์ DBMS์์๋ง ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ๋ค๋ฅธ ์์คํ ์ ์ ์ฉํ๋ ค๋ฉด ์ฌ์์ฑํ๊ฑฐ๋ ์์ ํด์ผ ํฉ๋๋ค. ์ด๋ ํนํ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ง์ ์๊ฐ์ ํ์๋ก ํ๋ ์ค์ํ ๋ฌธ์ ์ ๋๋ค.
์์: ๋ง์ฝ MySQL์์ ์์ฑ๋ ์ ์ฅ ํ๋ก์์ ๊ฐ Oracle ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฎ๊ฒจ์ ธ์ผ ํ๋ค๋ฉด, ๋ ์์คํ ๊ฐ์ ๊ตฌ๋ฌธ ์ฐจ์ด๋ก ์ธํด ์๋นํ ์์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ์ง๋ง, ๋ ์์คํ ์์ ์๊ตฌํ๋ ๋ฌธ๋ฒ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ์ฅ ํ๋ก์์ ๋ ์ฑ๋ฅ ์ธก๋ฉด์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๋ณด๋ค ๋๋ฆด ์ ์์ต๋๋ค. ์ด๋ ์ฃผ๋ก ๋ฌธ์์ด ๋๋ ์ซ์ ์ฐ์ฐ์์ ๋๋๋ฌ์ง๊ฒ ๋ํ๋ฉ๋๋ค.
์ธ์ด์ ์ธ ํ๊ณ: ์ ์ฅ ํ๋ก์์ ๋ SQL ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(C, Java ๋ฑ)๋ณด๋ค ๊ณ์ฐ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์ต๋๋ค. ํนํ, ๋ณต์กํ ๊ณ์ฐ์ด ํฌํจ๋ ๋ก์ง์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. SQL ์์ฒด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ต์ ํ๋์ด ์์ง๋ง, ์ํ์ ์ฐ์ฐ์ด๋ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ ๋๋ ์๋์ ์ผ๋ก ํจ์จ์ฑ์ด ๋จ์ด์ง๋๋ค.
๋น๊ต ์์: C, Java์ ๊ฐ์ ์ปดํ์ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค์ ์์คํ ๋ฆฌ์์ค๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ ์ฅ ํ๋ก์์ ๋ SQL ์๋ฒ ๋ด์์ ์คํ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง ์์ฒด์ ์ฑ๋ฅ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ์ฐ์ฐ์ ์ํํ ๋, SQL ํ๋ก์์ ๊ฐ ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๊ฐ์ด ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
์์: ๊ฐ๋จํ ์ซ์ ์ฐ์ฐ์ด๋ ๋ฌธ์์ด ์ฐ๊ฒฐ์ ์ํํ๋ ๊ฒฝ์ฐ, Java ๊ฐ์ ์ธ์ด์์๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ง๋ง, ์ ์ฅ ํ๋ก์์ ์์๋ ์๋์ ์ผ๋ก ๋๋ฆฌ๊ฒ ๋์ํ ์ ์์ต๋๋ค.
๋๋ฒ๊น ์ด๋ ์ฝ๋ ๋ด์์ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ์ฐพ์ ์์ ํ๋ ๊ณผ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฅ ํ๋ก์์ ์์๋ ์ด ๊ณผ์ ์ด ์๋นํ ๊น๋ค๋กญ์ต๋๋ค.
์๋ฌ ์์น ํ์ ์ด๋ ค์: ์ ์ฅ ํ๋ก์์ ๋ ์๋ฒ ๋ด์์ ์คํ๋๋ฏ๋ก, ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ฒ๊น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฆ, ํ๋ก์์ ์คํ ์ค์ ๋ฐ์ํ ์ค๋ฅ๊ฐ ์ด๋ ๋ถ๋ถ์์ ๋ฐ์ํ๋์ง ์ฐพ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ช ํํ์ง ์๊ฑฐ๋, ๋ฌธ์ ์ ์์ธ์ ์ถ์ ํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๋๋ฒ๊น ๋๊ตฌ์ ๋ถ์กฑ: ์ผ๋ถ DBMS์์๋ ๊ธฐ๋ณธ์ ์ธ ๋๋ฒ๊น ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ง๋ง, ์ ์ฒด์ ์ธ ๋๋ฒ๊น ๊ธฐ๋ฅ์ ๋ถ์กฑํฉ๋๋ค. ๋ณต์กํ ํ๋ก์์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ฑฐ๋, SQL ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์คํํ๋ฉด์ ๋ฌธ์ ๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค. ์ด๋ ๋งค์ฐ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ ๋๋ค.
์์: ์ ์ฅ ํ๋ก์์ ๋ด์์ ๋ณต์กํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ก์ง์ด ์์ ๋, ํน์ ์กฐ๊ฑด์์๋ง ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ๊ทธ ์๋ฌ๊ฐ ๋ฐ์ํ ์์ธ์ ์ฐพ๊ธฐ ์ํด ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํ ์ ์์ต๋๋ค. ๋ง์ฝ ํ๋ก์์ ๊ฐ ํฐ ๊ฒฝ์ฐ, ์ด๋ค ๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋ฌ๋์ง ์ฐพ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.