[DB] ERD

박세건·2024년 2월 22일
0

CS 학습

목록 보기
1/23

ERD란?

우리는 DB를 설계하기위해서 데이터 모델링라는 과정을 거치게됩니다. 데이터 모델링이란 업무내용을 분석하고 약속된 표기법에 의해 표현하는 것을 의미합니다.
데이터 모델링 총 4가지의 절차로 이루어집니다.

  1. 업무파악(요구사항 수집 및 분석)
  2. 필요한 데이터를 파악해서 관계를 설정하는 개념적 데이터 모데링 : 추상적인 데이터( E-R Model )
  3. 개념적 모델링을 표로 만들어내는 논리적 데이터 모델링 : 구체적인 데이터
  4. 이러한 과정을 거친 것을 실제 DB 테이블로 만들어내는 물리적 데이터 모델링

이러한 과정에서 ERD는 논리적 데이터 모델링에 속하게됩니다.

추가적으로 DBMS는 2->3 과정으로 넘어갈때 선정한다고 합니다.


ERD : Entity Relationship Diagram 으로 개체와 관계를 중심으로 표현해서 데이터베이스 구조를 한 눈에 쉽게 알아 보기위해 그려놓은 다이어그램을 의미합니다.
다이어그램이란, 기호, 선 점 등을 이용해서 상호관계나 구조 등을 이해시키위한 그림을 의미합니다.

표기법

  • Entity (정의 가능한 개념) : 테이블이 엔티티로 표현된다고 생각하면 됩니다.
  • Attribute(속성) : 테이블의 컬럼들을 보면됩니다.
  • Domain : E - R Model 과는 다르게 도메인을 표시해줄 수 있습니다.
    • 엔티티 도메인은 속성의 타입과 제약사항 등을 표현해주는 것입니다.
    • 필수는 아니기에 표시되는 정도가 다를 수 있고 생략될 수도 있습니다.
    • 도메인은 DB가 지원하는 타입에 맞게 설정하는 것이 중요합니다.

키 제약 조건 표기법

  • PK (기본키): 테이블의 PK는 구분을 해주기위해 구분선을 주거나 열쇠모양, 마름모 모양으로 표현하기도 합니다.
  • NOT NULL : null이 될 수 없는 제약조건이 있는 속성에는 추가로 표시를 해줍니다.( N, NN 으로 표현)
  • FK(외래키) : 외래키 역시 열쇠모양으로 표시하고 매칭되는 엔티티에 연결해주면서 어떤 관계인지 표현해줍니다.
    img1 daumcdn

관계 표기법

  • 각 엔티티를 표현한뒤에 관계가 있는 개체끼리 선을 이어서 관계를 표시해줘야합니다.
  • 엔티티에 관계에 따라 점선과 실선으로 표시합니다.
    • 강한 연결관계(부모의 기본키를 참조해서 자식의 기본키로 사용) : 실선 표시
    • 약한 연결관계(부모의 기본키를 참조해서 자식의 일반키로 사용) : 점선 표시

      ERD 관계의 카디널리티

      카디널리티(Cardinality) : 한 개체에서 발생할 수 있는 횟수를 나타내고, 다른 개체에서 발생할 수 있는 횟수와 연관됩니다.

  • One to one
  • One to many
  • Many to one
  • Many to Many(제품과 제조업체)
    ERD에서는 이러한 관계를 표시해주기 위해서는 많은 선들이 필요할 것이고 이는 가독성이 안좋아지기에 선 끝의 모양을 다르게 표시하는 방법을 사용합니다.
    • One에 해당된다면 선의 끝 부분에 세로줄 하나를 표기합니다.
    • Many에 해당된다면 선의 끝 부분을 삼지창 모양으로 표기합니다.

ERD 관계의 참여도

  • 반드시 관계에 필요한 개체는 끝 부분에 세로줄 하나를 추가합니다.(학생과 취미의 관계에서 학생 개체)
  • 관계에 포함되지 않아도 되는 개체는 끝부분에 O 표시를 추가합니다.(학생과 취미의 관계에서 취미 개체, 학생은 취미가 없을 수 있다.)

Many to Many 관계의 해소

Many to Many는 데이터모델링에서 완서오디지 않은 모델로 간주합니다. 때문에 이러한 관계를 1 : N , N : 1 관계로 조정해주어야합니다.
이 두 관련성을 표현해주기 위해서 중간에 또 다른 엔티티가 필요합니다.
ex) 제품과 제조업체의 관계를 해소해주기 위해서는 중간에 업체별제품 이라는 엔티티가 필요합니다.

  • 때문에 ERD 프로그램에서 M : N 을 발견한다면 자동으로 조정 작업이 이루어집니다.

엔티티 분류

  • ERD 를 설계할때에 저장하는 정보에 따라서 엔티티 분류 구분을 적절히 해주어야 주제에 맞는 엔티티를 설계할 수 있습니다.
    • 예를들어서, 고객과 같은 물리적인 형태와 장바구니 같은 개념적으로 존재하는 엔티티는 구분되어야합니다.

ERM란, Entity-Relationship-Model으로 개체-관계 모델을 의미합니다.

여기서 Entity란 테이블과 매칭되는 객체를 의미하고 추가로 속성들은 테이블의 컬럼들과 매칭됩니다.

  • DB에서 테이블간의 관계를 설명해주는 다이어그램입니다.
  • 이를 통해서 테이블의 구조를 한눈에 쉽게 파악할 수 있게되기에 설계의 문제점을 파악할 수 있습니다.

표기법

  • 직사각형(Entity), 마름모(Relationship), 타원형(Attribute) 및 연결선 등과 같은 기호로 이루어져있습니다.
    • 추가로 속성을 나타낼때에 밑줄을 그어준다면 PK를 의미합니다.
    • 연결선을 통해 일대일, 일대다, 다대다 등의 관계를 표현해줄 수 있습니다.
    • 확장되어서 WeakEntity, MulitivaluedAttribute, WeakRelationship 를 나태내어 주는 기호도 존재합니다 이는 각각의 기호들이 두줄로 이루어져있습니다.
      - Weak Entity란, 다른 개체에게 의존해야 하는 개체 (분반은 강의의 정보에 의존해야한다)
      - Multivalued Attribute란, 하나 이상의 값을 가지고 있는 속성을 의미합니다. ex) teacher - subjects
      - Weak Relationship이란, Weak Entity와 관계를 맺을때 사용
      이러한 기호를 통해서 Entity, relationships 과 해당 속성의 연결성을 나타내줍니다.

구성관계

  • ERM는 Entity로 이루어져있고, Entity는 그것의 속성으로 이루어져있습니다.
profile
멋있는 사람 - 일단 하자

0개의 댓글

관련 채용 정보