Day 29
SQL์ ๊ด๊ณํ ๋ชจ๋ธ์ ์ํด ๊ตฌ์ถ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ๋ ์ฒด๊ณ์ ์ธ ๋ช ๋ น์ ์งํฉ์ด๋ค
๊ด๊ณํ ๋ชจ๋ธ(Relational Model)
๊ด๊ณํ ๋ชจ๋ธ์ ๊ธฐ๋ณธ์ ์ธ ์์๋ ๋ฆด๋ ์ด์ , ๊ด๊ณ์ด๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ๋ฐ์ ์ธ ์์คํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ณต์์ ํ ์ด๋ธ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๊ฐ ๋งค์ฐ ์ค์ํ๋ค ๊ด๊ณํ ๋ชจ๋ธ์ ๋ฆด๋ ์ด์ ์ SQL์์ ๋งํ๋ ํ ์ด๋ธ์ ํด๋น๋๋ค
๊ด๊ณํ ๋ชจ๋ธ์ ๋ฆด๋ ์ด์ ์๋ ๋ช ๊ฐ์ง ์์ฑ(Attribute)์ด ์๊ณ ๊ทธ ์์ฑ์๋ ์์ฑ์ ์ด๋ฆ๊ณผ ํ ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋๋ค ๊ทธ๋ฆฌ๊ณ SQL์์์ ํ์ ๊ด๊ณํ ๋ชจ๋ธ์์ tuple์ด๋ผ๊ณ ๋ถ๋ฆฌ์ด๋ค ๋ฆด๋ ์ด์ ์ ๋ํ ์ฐ์ฐ์ด ์งํฉ์ ๋ํ ์ฐ์ฐ์ ๋์๋๋ค๋ ์ด๋ก ์ ๊ด๊ณ๋์๋ผ๊ณ ํ๊ณ ๊ด๊ณ๋์์ ๊ธฐ๋ณธ ๊ท์น์ ์ด๋ ๋ค
ํ๋ ์ด์์ ๊ด๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์ฐ์ฐํ๋ค
์ฐ์ฐํ ๊ฒฐ๊ณผ, ๋ฐํ๋๋ ๊ฒ ๋ํ ๊ด๊ณ์ด๋ค
์ฐ์ฐ์ ์ค์ฒฉ ๊ตฌ์กฐ๋ก ์คํํด๋ ์๊ด์๋ค
๊ด๊ณํ ๋ชจ๋ธ๊ณผ SQL
ํ ์ด๋ธ A์ ํ ์ด๋ธ B๊ฐ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ณด์
ํฉ์งํฉ ํฉ์งํฉ(union)์ ๋ฆด๋ ์ด์ ๋ผ๋ฆฌ์ ๋ง์ ์ ์๋ฏธํ๊ณ SQL์์๋ UNION์ ํด๋นํจ
์ฐจ์งํฉ ์ฐจ์งํฉ(difference)์ ๋ฆด๋ ์ด์ ๋ผ๋ฆฌ์ ๋บ์ ์ ์๋ฏธํ๊ณ SQL์์๋ EXCEPT์ ํด๋นํจ
๊ต์งํฉ ๊ต์งํฉ(intersection)์ ๋ฆด๋ ์ด์ ๋ผ๋ฆฌ์ ๊ณตํต๋ถ๋ถ์ ์๋ฏธํ๊ณ SQL์์๋ INTERSECT์ ํด๋นํจ
๊ณฑ์งํฉ ๊ณฑ์งํฉ์ ์ด์ ์ ๋ดค๋ ์นดํฐ์ ํ๋ก๋ํธ์ ํด๋นํ๊ณ CROSS JOIN์ผ๋ก ๊ต์ฐจ๊ฒฐํฉ์ ํตํด์ ๊ณฑ์งํฉ์ ๊ตฌํด๋ผ ์ ์์
์ ํ SELECT์ ํํ์ ์ถ์ถ์ ์๋ฏธํ๊ณ ์ ํ์ ์ ํ์ด๋ผ๊ณ ๋ ํ๋ค -> ์ฌ๊ธฐ์ WHERE ๊ตฌ๋ฅผ ํตํด์ ์กฐ๊ฑด์ ์ง์ ํด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์
ํฌ์ ํฌ์(projection)์ ์์ฑ์ ์ถ์ถ์ ์๋ฏธํ๊ณ SQL์์ ์์ฑ์ ์ด์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ SELECT ๊ตฌ์ ๊ฒฐ๊ณผ๋ก ๋ฐํ๋ ์ด์ ์ง์ ํ๋ ๊ฒ์ ํด๋น
๊ฒฐํฉ ๊ฒฐํฉ(join)์ ๋ฆด๋ ์ด์ ๋ผ๋ฆฌ ๊ต์ฐจ๊ฒฐํฉํด ๊ณ์ฐ๋ ๊ณฑ์งํฉ์์ ๊ฒฐํฉ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ์ ์ถ์ถํ๋ ์ฐ์ฐ์ด๊ณ SQL์์๋ ๋ด๋ถ๊ฒฐํฉ์ ํด๋น๋๋ค
Last updated
Was this helpful?