관계는 관계형 데이터베이스의 중요한 구성 요소다.
- 이것은 논리적으로 서로 연관된 한 쌍의 테이블들 사이의 연결을 설정한다.
- 이것은 테이블 구조를 더 개선하고 이중 데이터를 최소화하도록 도와준다.
- 이것은 여러 테이블들로부터 동시에 데이터를 추출할 수 있도록 해 주는 메커니즘이다.
적절히 정의된 관계는 관계 수준의 무결성을 제공하는데, 이것은 관계 자체가 신뢰성 있고 정상적이라는 것을 보장한다. 적절한 관계 설정에 실패해버리면 여러 테이블로부터 온 데이터를 갖고 작업하기가 힘들어지고, 연관된 테이블들에 레코드를 삽입, 갱신 또는 삭제하려고 할 때 문제에 맞닥뜨리게 된다.
관계의 종류
데이터베이스 내의 테이블들 사이의 관계 설정을 시작하기 전에 주어진 한 상의 테이블들 사이에 존재할 수 있는 관계의 종류에 대해 알아야만 한다. 이것들은 어떻게 식별하는지 아는 것은 데이터베이스를 성공적으로 설계하기 위한 매우 중요한 기술이다.
일대일 관계
테이블 A의 한 레코드가 테이블 B의 오직 한 레코드와 연관되고, 테이블 B의 한 레코드가 테이블 A의 오직 한 레코드와 연관된다. 일대일 관계는 보통 부분 집합 테이블을 수반한다. 다이어그램에서 테이블들 사이에 나타나는 선은 관계의 종류를 가리키고, 각 종류를 위해 사용하는 특별한 선이 있다.
일대다 관계
테이블 A의 한 레코드는 테이블 B의 하나 이상의 레코드들과 연관될 수 있고, 테이블 B의 한 레코드는 테이블 A의 오직 한 레코드와 연관된다. 이것은 데이터베이스 내의 한 쌍의 테이블들 사이에 존재하는 가장 일반적인 관계이고, 식별하기가 가장 쉽니다. 데이터 무결성 관점에서 이것은 결정적으로 중요한데, 왜냐면 이것이 이중 데이터를 제거하고 중복 데이터를 절대적으로 최소화해 주기 때문이다.
까마귀 발 기호는 항상 관계의 '다(many)' 측의 테이블 옆에 위치한다는 것에 유의 한다.
다대다 관계
테이블 A의 한 레코드는 테이블 B의 하나 이상의 레코드들과 연관될 수 있고, 테이블 B의 한 레코드는 테이블 A의 하나 이상의 레코드들과 연관될 수 있다. 이것은 데이터베이스의 한 쌍의 테이블들 사이에 존재하는 두 번째로 흔한 관계다.
다대다 관계의 경우 각 테이블 옆에 까마귀 발들이 있다.
다대다 관계의 문제
- 테이블들 중 하나로부터 정보를 추출하는 것이 지루하고 다소 어려울 것이다.
- 테이블들 중 하나가 대량의 중복 데이터를 포함할 것이다.
- 양 테이블에 이중 데이터가 존재할 것이다.
- 데이터를 삽입/갱신/삭제하기 어려울 것이다.
자기 참조 관계
이 특별한 종류의 관계는 한 쌍의 테이블들 사이에 존재하지 않고 한 테이블 내의 레코드들 사이에 존재하는 관계다. 그러나 설계 작업에서 이 관계도 테이블 관계로 간주할 것이다.
일대일
테이블 내이 주어진 레코드가 그 테이블 내의 오직 하나의 다른 레코드와 연관될 수 있을 때 자기 참조 일대일 관계가 존재한다.
예) 회원 테이블에서 주어진 회원은 조직 내 오직 한 명의 다른 회원을 보증할 수 있다.
일대다
테이블 내의 주어진 레코드가 그 테이블 내의 하나 이상의 다른 레코드들과 연관될 수 있을 때 테이블은 자기 참조 일대다 관계를 가진다.
예) 주어진 고객이 조직 내의 다른 고객들을 참조할 수 있다.
다대다
테이블 내의 주어진 레코드가 그 테이블 내의 하나 이상의 다른 레코드들과 연관될 수 있고, 하나 이상의 레코드들 그 자체도 주어진 레코드와 연관될 수 있을 때 자기 참조 다대다 관계가 존재한다.
예) 특별한 부품이 여러 다른 구성 요소 부품들을 포함할 수 있고, 그 자체가 다른 부품의 구성 요소가 될 수 있다.
'소프트웨어 공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 필드 명세 (0) | 2021.08.23 |
---|---|
[데이터베이스] 키 (0) | 2021.08.23 |
[데이터베이스] 필드 정하기 (0) | 2021.08.23 |
[데이터베이스] 테이블 정하기 (0) | 2021.08.23 |
[데이터베이스] 임무 목표 정의하기 (0) | 2021.08.23 |