[SQL] 관계형 모델

가비·2021년 1월 13일
0

[SQL]

목록 보기
11/13

관계형 모델

  • 관계형 모델(Relational Model)의 기본적인 요소는 릴레이션(Relation)으로 SQL에서 말하는 테이블에 해당된다.
    👉 테이블끼리의 관계 아님 !
  • 관계형 모델은 데이터 구조에 관해 정의한다.

속성(attribute)

  • 속성 이름과 형 이름으로 구성된다.
  • SQL의 열에 해당한다.

튜플(tuple)

  • SQL의 행에 해당한다.

관계대수

  • 릴레이션은 튜플의 집합이며, 릴레이션에 대한 연산이 집합의 대한 연산에 대응 된다.

✔️ 관계 대수의 기본 규칙

- 하나 이상의 관계를 바탕으로 연산한다.
- 연산한 결과와 반환되는 것 또한 관계이다.
👉 UNION이나 테이블의 결합처럼 연산한 결과도 관계(릴레이션 = 테이블)
- 연산을 중첩 구조로 실행해도 상관없다.

관계형 모델과 SQL

  • 관계대수에서는 릴레이션의 연산 방법을 몇 가지 규정한다.

합집합

mysql> select * from sample71_a;
+------+
| a    |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

mysql> select * from sample71_b;
+------+
| b    |
+------+
|    2 |
|   10 |
|   11 |
+------+
3 rows in set (0.00 sec)

mysql> select * from sample71_a UNION select * from sample71_b;
+------+
| a    |
+------+
|    1 |
|    2 |
|    3 |
|   10 |
|   11 |
+------+
5 rows in set (0.00 sec)
  • 릴레이션끼리의 덧셈
  • SQL의 UNION

차집합

  • MySQL🙅🏻
  • 릴레이션끼리의 뺄셈
  • SQL의 EXCEPT

교집합

  • MySQL🙅🏻
  • 릴레이션끼리의 공통부분
  • SQL의 INTERSECT

곱집합

mysql> select * from sample71_a, sample71_b;
+------+------+
| a    | b    |
+------+------+
|    1 |    2 |
|    2 |    2 |
|    3 |    2 |
|    1 |   10 |
|    2 |   10 |
|    3 |   10 |
|    1 |   11 |
|    2 |   11 |
|    3 |   11 |
+------+------+
9 rows in set (0.00 sec)

mysql> select * from sample71_a CROSS JOIN sample71_b;
+------+------+
| a    | b    |
+------+------+
|    1 |    2 |
|    2 |    2 |
|    3 |    2 |
|    1 |   10 |
|    2 |   10 |
|    3 |   10 |
|    1 |   11 |
|    2 |   11 |
|    3 |   11 |
+------+------+
9 rows in set (0.00 sec)
  • 릴레이션끼리의 대전표를 조합하는 연산을 말한다.
  • SQL에서는 FROM 구에 복수의 테이블을 지정한 경우 곱집합으로 계산된다.
    👉 CROSS JOIN으로 교차결합을 하면 곱집합을 구할 수 있다.

선택

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

투영

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

결합

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

0개의 댓글