본문 바로가기

ABAP 프로그래밍 개념/OPEN SQL

2.4 Relationship

외래 키(Foreign Key)는 실제 세계의 엔티티들(Real-world Entities) 간의 관계를 모델링합니다. 이러한 실제 세계의 엔티티들(Real-world Entities)은 복잡한 관계를 가질 수 있습니다. 예를 들어, 한 엔티티는 다른 엔티티와 여러 관계를 가질 수 있습니다. 관계형 데이터베이스에서, 관계는 두 테이블 간에서 정의됩니다.

이러한 테이블들은 세 가지 방법 중 하나로 관련될 수 있습니다.

1) One-to-One Relationship
두 개의 테이블이 일대일(one-to-one) 관계에 있다는 것은 첫 번째 테이블의 각 행에 대해 두 번째 테이블에 최대 한 개의 행만 존재한다는 것을 의미합니다. 일대일 관계는 거의 사용되지 않습니다. 주로 데이터를 소프트웨어 제한 때문에 여러 테이블로 분할해야 할 때 사용됩니다. 예를 들어, 필드의 수가 테이블 당 249개 제한을 초과하는 경우 데이터를 두 개의 테이블로 분할할 수 있습니다. 또는 고객에 대한 민감한 정보를 저장할 수 있는 한 테이블과 일반 고객 정보를 저장하는 다른 테이블을 모델링할 수 있습니다. 이러한 경우 일반 고객 정보 보다 보다 더 민감한 정보를 저장하는 테이블에 대한 액세스 제어 제한을 더욱 세밀하게 조절할 수 있습니다. 일대일 관계의 테이블들은 유사한 기본 키를 가져야 합니다.

2) One-to-Many Relationship
첫 번째 테이블의 각 행마다 두 번째 테이블에 0개, 1개 또는 여러 개의 행이 있을 수 있지만, 두 번째 테이블의 각 행마다는 첫 번째 테이블에 정확히 한 개의 행이 있는 경우, 두 개의 테이블이 일대다(One-to-Many) 관계에 있다고 말할 수 있습니다. 

일대다 관계는 가장 흔히 모델링되는 관계입니다. 일대다 관계의 테이블은 부모-자식 테이블 또는 헤더-아이템 테이블이라고도합니다. SAP 시스템의 공통 테이블 중 일대다 관계를 가진 테이블로는 판매 주문의 헤더 및 항목 세부 정보를 저장하는 VBAK-VBAP와 구매 주문의 헤더 및 항목 세부 정보를 저장하는 EKKO-EKPO 등이 있습니다. 일대다 관계는 룩업 테이블(Lookup Table)과 기본 테이블을 연결하는 데도 사용됩니다. 예를 들어, 주문 테이블에서 단위(UoM)를 나타내는 두 자리 약어를 저장할 수 있으며 이 정보는 약어에 대한 설명이 유지 관리되는 룩업 테이블에 연결될 수 있습니다.

3) Many-to-Many Relationship
두 테이블이 다(many)-대-다(many) 관계를 갖는다는 것은 첫 번째 테이블의 각 행마다 두 번째 테이블에 많은 행이 있을 수 있으며, 두 번째 테이블의 각 행마다 첫 번째 테이블에 많은 행이 있을 수 있다는 것을 의미합니다. 다(many)-대-다(many) 관계는 관계형 데이터베이스에서 직접적으로 모델링할 수 없으며, 일반적으로 여러 개의 일대다 관계로 분해됩니다.

반응형

'ABAP 프로그래밍 개념 > OPEN SQL' 카테고리의 다른 글

3. Selecting Data from Database Tables  (0) 2023.05.04
2.5 Normalization  (0) 2023.05.03
2.3 Foreign Keys and Domains  (0) 2023.05.03
2.2 Tables and Keys  (0) 2023.05.02
2.1 Relational Database Design  (0) 2023.05.02