관계형 모델

banjjoknim·2021년 2월 27일
0

33강. 관계형 모델

  • 관계형 모델을 기반으로 작성된 데이터베이스가 관계형 데이터베이스이다.
  • SQL은 관계형 모델에 의해 구축된 데이터베이스를 조작하는 체계적인 명령의 집합이다.
  • 관계형 모델에서 SQL이 만들어졌지만 유감스럽게도 관계형 모델에서 사용하는 용어와 SQL의 용어는 일치하지 않는다.
  • SQL을 사용하는 이상 관계형 모델의 용어를 몰라도 딱히 어려움은 없지만 알아두는 것이 좋다.

1. 관계형 모델

  • 관계형 모델(Relational Model)의 기본적인 요소는 릴레이션(Relation)이다.
  • 이 릴레이션이라는 말 자체는 관계를 뜻하지만 관계형 모델에서는 약간 다른 의미를 가진다.
  • 결합에 관해 설명할 때 일반적인 시스템의 데이터베이스에는 복수의 테이블이 있어 테이블 간의 관계가 중요하다고 했다.
  • 관계형 모델의 릴레이션은 SQL에서 말하는 테이블에 해당한다. 테이블끼리의 관계가 아니다.
릴레이션은 테이블을 말한다!
  • 관계형 모델의 릴레이션에는 몇 가지 속성(attribute)이 있다.
  • 이 속성은 속성 이름과 형 이름으로 구성된다.
  • 속성은 SQL에서 말하는 열에 해당한다.
  • 그리고 SQL에서의 행은 관계형 모델에서 튜플(tuple)이라 불린다.
  • 정리하자면 릴레이션은 테이블, 속성은 열, 행은 튜플에 해당한다.
  • 관계형 모델은 데이터 구조에 관해 정의한다. 릴레이션은 튜플의 집합이며, 릴레이션에 대한 연산이 집합에 대한 연산에 대응된다는 이론을 관계대수라고 한다.
  • 이 같은 관계대수의 기본규칙은 다음과 같다.
    • 하나 이상의 관계를 바탕으로 연산한다.
    • 연산한 결과, 반환되는 것 또한 관계이다.
    • 연산을 중첩 구조로 실행해도 상관없다.
  • UNION이나 테이블의 결합을 익힌 만큼, 연산한 결과도 관계(릴레이션 = 테이블)이다.

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개의 댓글