DB

관계형 모델 (Relational Model)

검정비니 2018. 10. 22. 09:57
728x90
반응형

관계형 모델 (Relational Model)





1. 관계형 모델



"관계형 모델"은 함수 종속(Functional Dependency)에 의해 정규화(Normalization)된 모델이다. "함수 종속"이란, 어떤 릴레이션 R에서 X, Y가 릴레이션 R의 부분 속성(Attribute)이라고 할 때 속성 X의 도메인 값 각각에 대해 시간에 관계 없이 항상 속성 Y의 도메인 값이 오직 한개만 연관된다면 Y는 X의 함수 종속이라고 하고, X(결정자) -> Y(종속자)로 표시한다.


함수 종속과 정규화에 대해서는 나중에 자세히 다루도록 하겠다.


관계형 모델은 데이터를 컬럼(column = 열)과 로우(row = 행)를 이루는 하나 이상의 테이블(또는 관계)로 정리하며, 고유 키(Primary key)가 각 로우(row)를 식별한다. 로우는 레코드나 튜플(tuple)로 부른다. 일반적으로 각 테이블은 하나의 엔티티 타입(고객이나 제품과 같은)을 대표한다. 로우는 그 엔티티 종류의 인스턴스(예: "Lee" 등)를 대표하며 컬럼은 그 인스턴스의 속성이 되는 값들(예: 주소나 가격)을 대표한다.





2. 관계



관계(relation 릴레이션)의 각 항목들에 대한 이미지이다.


출처: <http://wiki.gurubee.net/pages/viewpage.action?pageId=28115249>


1) 릴레이션에는 이름이 존재하며, 2차원의 테이블 형태로 데이터(Value, attribute 값)가 관리된다.

2) 각 행을 튜플(Tuple)이라고 하며 각 열을 속성(Attribute) 이라고 한다.

3)  속성 중에서 튜플을 식별할 수 있게 해주는 유일한 값을 가진 것을 식별자(Identifier) 라고 한다.

4) 각 열의 이름을 헤드(Head - Intension 이라고도 불림) 라고 한다.

5) 헤드를 제외한 실제 데이터를 바디(Body - Extension 이라고도 불림) 라고 한다.

6) 릴레이션의 이름과 헤드를 스키마(Schema) 라고도 한다.

7) 튜플의 개수를 카디널러티(Cardinality) 라고 하며, 속성의 개수를 차수(Degree) 라고 한다.

8) 차수가 1 이상이고 카디널리티가 0개 이상이면 유효한 릴레이션이다.

9) 튜플을 흔히 레코드(Record), 로우(Row), 혹은 인스턴스(Instance) 라고도 부른다.

10) 속성은 컬럼(Column), 혹은 필드(Field)라고 부른다.






3. 키 (Key)



키(Key)란, 한 릴레이션 내에서 특정 튜플만을 식별해 낼 수 있는 속성 혹은 속성들의 집합이다.



1) 키의 특성


- 유일성 (Uniqueness)

          • 릴레이션 내에서 같은 중복되는 튜플이 존재하지 않으며,
          • 키의 값이 릴레이션 내에 유일하다는 특성
          • 키의 값으로 릴레이션 내에 있는 튜플들을 식별한다.

- 최소성(Minimality)
          • 키는 꼭 필요한 최소한의 속성들로 이루어져야 한다.

2) 키의 종류

- 슈퍼 키 (Super Key):
키의 특성 중 유일성만을 만족하는 모든 키

- 후보 키 (Candidate Key):
키의 특성 중 유일성과 최소성을 만족시키는 모든 키

- 기본 키 (Primary Key):
여러 후보 키들 중 하나를 선정하여 사용하는 키이다. 보통 키라고 하면 이 기본 키를 의미한다.

- 대체 키 (Alternative Key):
후보 키들 중에서 기본 키를 제외한 모든 키. 기본 키 대신에 사용할 수도 있기에 대체 키라고 부른다.

- 외래 키 (Foreign Key):
다른 릴레이션 혹은 해당 릴레이션 자신의 기본 키를 참조하는 속성 또는 속성의 집합이다.
외래 키는 참조되는 릴레이션의 기본 키와 동일한 키 속성을 가진다.






4. 관계형 질의어 (Relational Query Language)


관계형 질의어로는 Relational algebra (procedural)와 Relational calculus (declarative)가 있다.


Relational algebra



Relational calculus


<http://emzei.tistory.com/234?category=514691>



사실, Relational algebra와 Relational calculus는 서로 다른 표현법일 뿐이다. 따라서, 상황에 따라 하나를 골라서 사용하면 될 것이다. 또는, 둘 중에 사용하기  편리한 것을 사용해도 된다.







5. 관계형 모델 제약 (Constraints of Relational Model)




1) 릴레이션에서 각 튜플은 유일해야 한다.


2) 속성의 모든 값이 동일한 튜플이 존재할 수 없으며, 식별자의 값이 같은 튜플이 존재해서는 안된다.


3) 속성은 단일값이 사용 되어야 하며, 다중 값이나 복합값이 존재해서는 안된다.


4) 전체 모델에서 릴레이션의 이름은 유일해야 하며, 릴레이션 내의 속성 이름도 유일해야 한다. ( = 동일한 릴레이션이 있으면 안된다)


5) 릴레이션 내의 튜플의 순서는 중요하지 않다.


6) 한 릴레이션에는 하나의 데이터 주제만이 포함될 수 있다.


7) 모든 릴레이션은 함수 종속 규칙을 따라야 한다.


8) 릴레이션이 정규화(Normalization)되지 않으면 관계형 모델이라 할 수 없다.


9) 정규화 된 릴레이션 사이에는 외래 식별자(Foreign Identifier)를 통해서 연관 관계가 성립하게 된다.


반응형

'DB' 카테고리의 다른 글

데이터베이스 정규화  (0) 2022.03.31
E-R 모델 (E-R Model)  (0) 2018.10.22
데이터베이스 기본 지식  (0) 2018.10.07