Networks/MySQL&DB

SK networks AI Camp - 데이터 모델링 & ERD

코딩하는 Español되기 2024. 7. 18. 08:10

이전 포스팅에서 데이터에 관해 포스팅했는데 이번에는 데이터 모델링과 ERD 표기와 관련하여 적어볼게요.

 

2024.07.17 - [컴퓨터 공학/Networks] - SK networks AI Camp - MySQL

 

데이터 모델링

: 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는 것

데이터 모델링 순서

1. 업무 파악 → 2. 개념적 모델링 → 3. 논리적 데이터 모델링 → 4. 물리적 데이터 모델링

 

○ (2단계) 개념적 모델링

 : 하고자 하는 일의 데이터 간의 관계를 구상하는 단계

   ERD 다이어 그램 생성

  ○ (3단계) 논리적 데이터 모델링

  : 구체화된 업무 중심의 데이터 모델을 만들어 내는 단계

     Key, 속성, 관계를 표시, 정규화 활동 수행

     * 정규화 : 데이터 모델의 일관성을 확보하고 중복을 제거하여 신뢰성 있는 데이터 구조를 얻는데 목적

2024.07.17 - [컴퓨터 공학/Networks] - SK networks AI Camp - 데이터 베이스 정규화

 

정규화 관련 짧은 포스팅

○ (4단계) 물리적 데이터 모델링

   : 최종적으로 데이터를 관리할 DB를 선택하고 선택한 DB에 실제 테이블을 만드는 작업

     시각적인 구조를 생성하고 그것을 SQL 코딩을 통해 완성하는 단계


ERD 표기법

: Peter-Chen 표기법, IE 표기법이 있으며, 그중에 IE 표기법이 가장 많이 사용되고 있습니다.

○ Entity

  : 정의 가능한 사물 또는 개념을 의미

    DB의 테이블이 엔티티로 표현된다고 보면 된다.

○ Attribute

  : Entity에는 개체가 갖고있는 속성(Attribute)을 포함

    DB의 테이블의 각 필드(칼럼)들이 Entity 속성이라고 보면 된다. 

○ 주 식별자(PK)

  : DB 테이블의 Primary Key를 표현

    중복이 없고 NULL 값이 없는 유일한 값에 지정하는 식별자

○ 외래 식별자(FK)

   : DB 테이블의 Foreign Key를 표현

    외래 식별자를 표시할 때에는 선을 이어주는데 개체와 관계를 따져 표시한다.

 ○ Domain

    : 속성의 값, 타입, 제약 사항 등에 대한 값의 범위를 표현하는 것

      데이터 타입을 명시할 때, DB가 지원하는 타입에 맞게 해야 한다.

○ 제약 조건(NOT NULL)

   : 해당 속성에 들어갈 값에 NULL을 비허용한다면, N 혹은 NN을 적는다.

     만약 NULL을 허용하면 N을 적지 않음

○ 식별관계

  : Relation 부모-자식 관계에서 자식이 부모의 주 식별자(PK)를 외래 식별자(FK)로 참조해서 자신의 주 식별자로 설정

○ 비식별 관계

   : Relation 부모-자식 관계에서 자식이 부모의 주 식별자(PK)를 외래 식별자(FK)로 참조해서 일반 속성으로 사용

항목 식별자 관계 비식별자 관계
목적 강한 연결관계 표현 약한 연결관계 표현
자식 PK 영향 자식 PK의 구성에 포함됨 자식 일반 속성에 포함됨
표기법 실선 표현 점선 표현
고려사항 - 반드시 부모 Entity에 종속
- 자식PK구성에 부모 PK포함 필요
- 상속받은 PK속성을 타 Entity에 이전 필요
- 약한 종속관계
- 자식 PK 구성을 독립적으로 구성
- 자식 PK 구성에 부모 PK 부분 필요
- 상속받은 PK속성을 타 Entity에 차단 필요
- 부모쪽의 관계참여가 선택 관계

○ Mapping Cardinality(대응수)

   : 개체와 개체 간의 Mapping Cardinality란, 특정 Entity가 상대 Entity와 관계를 몇 회 맺을 수 있는지를 나타냄

    e.g. 학생과 학급의 소속 관계

           - 한 학급에는 여러 학생이 소속 가능 But 학생이 여러 학급에 소속 불가(학생과 학급의 Cardinality = N:1)

           학생과 학생의 짝꿍 관계

           - 한 학생이 다른 학생과 짝꿍관계를 맺을 수 있는 관계의 경우의 수는 서로 1회 (1:1)

           학생과 동아리간의 관계

           - 하나의 학생이 여러 동아리에 소속 가능, 하나의 동아리 또한 여러 학생 소속시킬 수 있음(N:N)

○ 관계 표현

○ 피터 첸 표기법(Peter Chen Notation)

   : 실무에서는 잘 사용하지 않는 방법

 

○ 까마귀 발 표기법(Crow's Feet)

   : 실무에서 가장 많이 사용되는 방식으로 EBWin과 같은 여러 CASE 툴에서 가장 많이 지원하는 표기법

○ IE 표기법(Information Engineering Notation)

   : 실무에서 가장 많이 사용되는 표기법

    ● Entity

       : 직사각형에 Entity의 이름을 상단에 표기


    Attribute

      : Entity 이름 하단에 좌측에 PK, FK 등의 정보를 표기하고, 우측에는 Attribute 이름을 표기


    ● Relation

      - 실선 : 식별관계를 나타냄

      - 점선 : 비식별관계를 나타냄