[SQL] 33. 관계형 모델

uuuu.jini·2023년 2월 6일
0

SQL 첫걸음

목록 보기
33/36
post-thumbnail

1. 관계형 모델


관계형 모델의 기본적인 요소는 릴레이션이다. 릴레이션이라는 말 자체는 관계를 뜻하지만 관계형 모델의 릴레이션은 SQL에서 말하는 테이블에 해당된다.

릴레이션은 테이블을 말한다.

관계형 모델의 릴레이션에는 몇 가지 속성이 있다. 이 속성은 속성 이름과 형 이름으로 구성된다. 속성은 SQL에서 말하는 열에 해당한다. 그리고 SQL에서의 행은 관계형 모델에서 튜플이라 불린다.

릴레이션은 튜플의 집합이며, 릴레이션에 대한 연산이 집합의 대한 연산에 대응된다는 이론을 관계대수라고 한다.

관계대수의 기본 규칙

  • 하나 이상의 관계를 바탕으로 연산한다.
  • 연산한 결과, 반환되는 것 또한 관계이다.
  • 연산을 중첩 구조로 실행해도 상관없다.

2. 관계형 모델과 SQL


- 합집합(Union)

릴레이션 끼리의 덧셈을 말한다. SQL에서는 UNION에 해당한다.

SELECT * FROM A UNION SELECT * FROM B;

- 차집합(Difference)

릴레이션끼리의 뺄셈을 말한다. SQL에서는 EXCEPT에 해당한다.

SELECT * FROM A EXCEPT SELECT * FROM B;

- 교집합(Intersection)

릴레이션끼리의 공통부분(교집합)을 말한다. SQL에서는 INTERSECT에 해당한다.

SELECT * FROM A INTERSECT SELECT * FROM B;

- 곱집합(Cartesian Product)

릴레이션끼리의 대전표를 조합하는 연산을 말한다. SQL에서는 FROM 구에 복수의 테이블을 지정한 경우 곱집합으로 계산된다. CROSS JOIN으로 교차 결합을 하면 곱집합을 구할 수 있다.

SELECT * FROM A,B;
SELECT * FROM A CROSS JOIN B;

- 선택(Selection)

튜플의 추출을 말한다. 선택은 제한이라 불리기도 한다. 튜플은 SQL에서 행을 말하기 때문에 WHERE 구에 조건을 지정해 데이터를 검색하는 것에 해당된다.

SELECT * FROM A WHERE no < 3;

- 투영(Projection)

속성의 추출을 말한다. SQL에서 속성은 열을 말하기 때문에 SELECT 구에 결과로 반환할 열을 지정하는 것에 해당된다.

SELECT a FROM A;

- 결합(Join)

릴레이션끼리 교차결합해 계산된 곱집합에서 결합조건을 만족하는 튜플을 추출하는 연산이다. SQL에서는 내부 결합에 해당한다. 관계대수에도 내부결합과 외부결합이 있다.

SELECT a FROM A INNER JOIN B ON A.no = B.no;
profile
멋쟁이 토마토

0개의 댓글