관계형 모델을 기반으로 작성된 데이터베이스가 '관계형 데이터베이스'이다.
SQL은 관계형 모델에 의해 구축된 데이터베이스를 조작하는 체계적인 명령의 집합이지만,
관계형 모델에서 사용하는 용어와 SQL 용어는 일치하지 않다.
관계형 모델(Relational Model)의 기본적인 요소는 릴레이션(Relation)이다.
릴레이션이라는 말 자체가 관계를 뜻하지만 SQL에서는 테이블에 해당한다.
관계형 모델의 릴레이션에는 몇 가지 속성(Attribute)이 있는데 이는 SQL에서 열에 해당한다.
그리고 SQL에서의 행은 관계형 모델에서 튜플(tuple)이라 부른다.
관계형 모델은 데이터 구조에 관해 정의한다.
릴레이션은 튜플의 집합이며, 릴레이션에 대한 연산이 집합에 대한 연산에 대응된다는 이론을 관계대수라 한다.
관계대수의 기본 규칙은 다음과 같다.
- 하나 이상의 관계를 바탕으로 연산한다.
- 연산한 결과, 반환되는 것 또한 관계이다.
- 연산을 중첩 구조로 실행해도 상관없다.
관계대수에서는 자주 사용되는 릴레이션의 연산 방법을 몇 가지 규정한다.
이에 관해 SQL 명령과 비교해 보자.
연산 방법 | 관계 대수 | SQL |
합집합(union) | 릴레이션끼리의 덧셈 | UNION |
차집합(difference) | 릴레이션끼리의 뺄셈 | EXCEPT |
교집합(intersection) | 릴레이션끼리의 공통부분(교집합) | INTERSECT |
곱집합 (cartesain product) |
릴레이션끼리의 대전표를 조합하는 연산 | FROM구에 복수의 테이블을 지정한 경우 CROSS JOIN |
선택(selection) | 튜플의 추출 | WHERE구에 조건을 지정해 데이터를 검색하는 것 |
투영(projection) | 속성의 추출 | SELECT구에 결과로 반환할 열을 지정하는 것 |
결합(join) | 릴레이션끼리 교차결합해 계산된 곱집합에서 결합조건을 만족하는 튜플을 추출하는 연산 | 내부결합 |
'Language > MySQL' 카테고리의 다른 글
[MySQL] 테이블 결합 - JOIN (0) | 2022.12.20 |
---|---|
[MySQL] 집합 연산 - UNION (0) | 2022.12.19 |
[MySQL] 뷰 작성과 삭제 (0) | 2022.12.14 |
[MySQL] 인덱스 작성과 삭제 (0) | 2022.12.13 |
[MySQL] 인덱스 구조 (0) | 2022.11.24 |