이 글은 원문의 내용을 번역한 글입니다 https://phoenixnap.com/kb/database-relationships
https://hanamon.kr/관계형-데이터베이스-설계-관계-종류/
관계형 데이터베이스의 주요 특징은 관계입니다. 서로 다른 관계 유형은 데이터와 테이블이 서로 관련되는 방식을 제어합니다. 관계를 통해 테이블 간의 링크를 설정하면 이 데이터베이스 유형이 고유해지며 관계가 작동하는 방식을 알면 데이터베이스 모델링 기능을 확장하는 데 도움이 됩니다.
다음 두 요소는 데이터베이스 관계가 설정되는 방식을 정의합니다.
Primary Key(기본 키)
- 값이 테이블 레코드를 고유하게 식별하는 열
입니다.Foreign Key(외래 키)
- 값이 다른 테이블의 기본 키를 참조하는 열
입니다.상위 테이블과 하위 테이블 간의 연결은 상위의 기본 키를 참조하여 존재합니다. 참조의 동작은 두 데이터베이스 테이블 간의 관계 유형을 정의합니다.
데이터베이스는 구조적 쿼리 언어(SQL)의 JOIN 문을 통해 두 테이블 간의 관계를 활용합니다 .
데이터베이스의 관계는 의미 있는 정보를 만드는 데 도움이 됩니다. 결과적으로 데이터베이스 관계의 결과는 다음과 같습니다.
데이터 중복 감소
관계는 기존 테이블에 저장된 참조 정보를 도와 반복을 줄입니다.
더 잘 조직된 데이터베이스
관계는 데이터베이스 정규화 기술을 구현하는 데 도움이 됩니다. 정규화는 더 잘 조직되고 강력한 데이터베이스를 생성하는 데 도움이 됩니다.
무결성 참조
데이터베이스가 커짐에 따라 Join, Query 및 정렬에 소요되는 비용이 높아집니다. 관계는 트랜잭션 수를 줄이고 데이터 유효성을 향상시키는 데 도움이 됩니다.
확립된 데이터베이스 관계인 RDBMS는 실행 가능하고 유연하며 안정적임을 보장합니다.
관계형 데이터베이스는 세 가지 유형의 관계를 구현합니다:
일대일 (1:1)
일대다 (1:N)
다대다 (N:N)
두 테이블을 연결하는 선은 관계를 나타내고 선 끝에 있는 기호는 정확한 관계 유형을 나타냅니다.
예를 들어 ER 다이어그램에서 "One" 및 "Many" 관계 카디널리티는 다음 기호로 나타납니다.
수직선( 1 ).
까마귀 발 ( 많은 ).
원( 0 ).
기호가 결합되어 복잡한 관계 유형을 형성합니다.
참고: 처음 두 옵션은 모호하며 비즈니스 규칙이 구체적으로 정의되지 않은 경우에만 사용해야 합니다.
다음은 예제와 함께 각 관계 유형에 대한 자세한 설명입니다.
데이터베이스의 일대일 관계(1:1)에는 관계의 양쪽에 하나의 레코드가 있습니다. 모든 기본 키는 다른 테이블의 최대 하나의 항목과 관련되어 외래 키를 고유하게 만듭니다.
일대일 관계는 적용된 비즈니스 규칙에서 나타나며 일반적이지 않습니다. 일대일 관계로 두 테이블을 결합해도 정규화 규칙이 깨지지 않습니다.
일대일 관계 예
일대일 관계를 보여주는 간단한 예는 수도입니다. 하나의 국가(또는 주)에는 하나의 수도만 있고 하나의 수도는 하나의 국가(또는 주)에만 속합니다.
국가 및 수도에 대한 정보가 있는 두 테이블은 기본 키를 사용하여 데이터베이스에서 연결됩니다 . 예를 들어 국가 테이블에 추가하면 수도의 고유 ID(기본 키)가 외래 키가 되어 관계가 생성됩니다.
이 경우 일대일 관계는 필수입니다. 모든 국가에는 고유한 수도가 있어야 하며 외래 키는 고유해야 1:1 연결이 가능합니다.
참고: 1:1 관계를 만드는 다른 방법은 country_id
를 수도 테이블의 고유 식별자로 사용하거나 country_id
를 고유 외래 키로 참조하는 것입니다.
데이터베이스의 일대다(1:N) 관계는 한쪽에는 단일 항목이 있고 다른 쪽에는 여러 항목이 있습니다 . 모든 기본 키는 다른 테이블의 하나 이상의 레코드에 해당합니다. 이 경우 외래 키는 고유하지 않습니다.
일대다 관계는 자연스럽고 종종 데이터베이스 모델링에서 논리적 연결로 나타납니다.
일대다 관계 예
일대다 관계의 예는 어머니와 자녀 간의 연결입니다. 어머니는 많은 자녀를 가질 수 있지만 모든 자녀는 한 어머니에게만 속합니다.
어머니와 자녀에 대한 정보가 있는 두 개의 테이블이 포함된 데이터베이스는 기본 키를 사용하여 연결됩니다. 자식 테이블에 추가되면 어머니의 고유 ID가 외래 키가 됩니다. 다른 아이들은 같은 어머니를 가질 수 있습니다.
관계는 양쪽 끝에서 필수이며 연결을 설정하려면 양쪽 테이블에 최소한 하나의 항목이 있어야 합니다.
데이터베이스의 다대다(N:N) 관계에는 관계의 양쪽 끝에 여러 항목이 있습니다(일대다 관계로 양쪽이 연결). 양쪽 끝에 수많은 항목이 존재할 수 있으므로 표준 솔루션은 두 테이블의 외래 키를 사용하여 연결 (정션, 조인) 테이블을 만드는 것입니다.
다대다 관계는 전자상거래 웹사이트와 같은 웹 기술에서 구현된 관계형 데이터베이스의 일반적인 관행입니다.
다대다 관계 예
책과 저자 사이에는 다대다 관계가 존재합니다. 예를 들어 한 권의 책에 여러 명의 저자가 있을 수 있습니다. 마찬가지로 한 명의 저자가 여러 권의 책을 가질 수 있습니다.
책이 포함된 테이블과 저자가 포함된 다른 테이블이 있는 경우 둘 사이의 관계를 설정하는 가장 좋은 방법은 새 테이블을 사용하는 것입니다 . 새 테이블에는 두 부모 테이블의 외래 키가 있어 다대다 관계를 만듭니다.
서로 다른 유형의 JOIN 쿼리를 수행하면 원본 테이블이 중복되지 않도록 보호하면서 두 테이블에서 효율적으로 데이터를 가져옵니다.