ERD (Entity Relationship Diagram)

 

ERD (Entity Relationship Diagram)
  • 테이블 간 서로의 상관관계를 그림으로 도식화 한것을 E-R 다이어그램이라 하며, 간략히 ERD라 함
  • ERD의 구성요소는 객체(Entity), 관계(Relationship), 속성(Attribute) 3가지 (현실 세계의 데이터는 이 3가지 구성요소로 모두 표현 가능)
  • ex) 팀과 선수 간의 ERD

 

논리 모델과 물리 모델

 

데이터 관계
  • 관계란 두 개의 엔터티 사이의 논리적인 연결, 즉 엔터티와 엔터티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말함
  • 비즈니스에서 중요한 어떤 것(동사)을 표현
  • 일반적으로 두 엔터티 사이에 존재하나, 한 엔터티 스스로 관계를 가질 수도 있음(자기참조: Recursive / Reflexive reltaionship)
  • 하나의 관계는 두 가지 관점을 가짐 (Relationship membership, Parallel relationship)
  • 양쪽 측면에서 역할 명을 지정할 수  있음

 

데이터 관계의 종류

 

1) 존재에 의한 관계

-> 사원은 부서에 속해 있다. (구조상 그냥 그렇게 존재)

 

 

2) 행위에 의한 관계

-> 주문이라는 activity를 할 때 새로운 관계 발생

 

 

데이터 관계의 요소

 

1) 멤버쉽 (Membership)

: 엔터티 간의 관계에 대한 구체적인 서술 (서로 연관성이 있다 -> 멤버쉽이 있다)

관계를 읽을 땐 항상 두 번씩 읽음. 왼쪽에서 오른쪽, 그리고 오른쪽에서 왼쪽

 

멤버쉽은 엔터티가 참여하는 관계에 대한 자신으로부터의 관점임.

하나의 부서엔 여러 명의 사원을 포함하는 멤버쉽이 있음 (부서 입장)

한 명의 사원은 하나의 부서에 소속된다는 멤버쉽이 있음 (사원 입장)

 

2) 카디널리티 (Cardinality)

  • 1:1은 그냥 한 개씩 참여하는거 (읽을 때 기준은 항상 한 개)

-> 개의 구매신청서에 대해 개의 구매주문을 작성하고, 

개의 구매주문에는 개의 구매신청내용이 작성됨.

 

  • 1:M은 가장 많이 발생하는 관계 형태. 하나에 대해 여러 개가 참여

왼->오 한 번, 오->왼 한 번. 총 두 번 읽어줘야함

부서는 여러 사원을 포함하고 명의 사원은 부서에 소속됨.

 

  • M:M은 여러 개와 여러 개

왼 -> 오 읽을 때 1:M, 오 -> 왼 읽을 때 1:M이니까 합해서 M:M

하나의 주문은 여러 개의 제품을 주문할 수 있고

하나의 제품은 여러 개의 주문에 의해 주문될 수 있음 (읽을 때 기준은 하나니까 시작은 하나로)

 

3) 관계의 참여도 (Optionality)

부서 입장에서, 한 부서에 사원이 없을 수도 있으니까 선택 참여 (포함할 수도 있고 안할수도 있고~)

하지만, 사원 입장에선 한 명의 사원은 반드시 한 부서에 항상 속하니까 필수 참여

 

예제 테이블과 칼럼 정보

- 한 테이블 안에서 컬럼 이름은 달라야 하지만, 다른 테이블의 컬럼 이름과는 같을 수 있음

- 같은 이름을 가진 컬럼들은 기본키와 외래키의 관계를 가지는 경우가 많으며, 향후 테이블 간의 조인 조건으로 주로 사용되는 중요한 연결고리 컬럼들임

TB_EMP(사원) 테이블 정의서

테이블 관계도 (ERD)

논리적

  • 엔터티 명 = 테이블 명
  • 각 엔터티 위 쪽 -> PK(Primary Key)
  • 밑에 칼럼들 -> 속성
  • FK(Foreign Key) -> 다른 테이블의 PK에서 가져오는 경우가 많음 (고객-계좌에서, 계좌를 개설하려면 고객이 꼭 필요함 -> 고객 번호가 계좌 테이블의 FK로 존재)

 

  • 상위조직코드(FK) -> 자기참조관계 (상-하 부서들이 연속적으로 있으니까. 하나의 상위조직은 하나의 하위조직이고..)
  • 사원-조직 관계를 보면 하나의 조직에는 사원이 여러명 있고, 조직에 따라선 사원이 없을 수도 있다. (동그라미 표시) 사원 입장에선 반드시 하나의 조직에만 속하는데, 어떤 사원은 아직 조직에 할당 받지 못한 사원이 있을 수 있다. (동그라미 표시)
  • 사원-계좌                                                                                                                                                                          : 한 사원은 여러 개의 계좌 가질 수 있고, 계좌가 없는 사원도 있을 수 있음. 한 계좌는 한 사원에만 할당되어 있어야 함
  • 계좌-거래내역                                                                                                                                                                   : 하나의 계좌에는 여러번의 거래내역이 있을수도 없을수도 있고, 거래내역은 반드시 계좌번호를 가지고 있어야함.(FK)

 

TB_ACCNT에 CUST_NO과 PRD_CD를 FK로 가져옴