ERD
Entitity Relationship Diagram [ERD] 는
시스템의 엔티티들이 무엇이 있는지 어떤 관계를 가지고 있는지를 구조적으로 나타낸 다이어그램이다.
앞서, 개념적 데이터 모델링으로
기획 상황을 속성, 그룹, 관계 카테고리로 정리했다.
ERD는 개념적 데이터 모델링을 데이터베이스 표현인
칼럼, 테이블, PK & FK 로 설계하는 행위이다.
따라서,
속성, 그룹, 관계 카테고리로 표현된 개념적 데이터 모델링을
데이터베이스 표현으로 나타낸 다이어그램을 ERD라고 한다.
ERD 구성요소
개념적 데이터모델링은 다음과 같이
3가지 카테고리로 구분한다.
1. Entity (그룹)
2. Attribute (속성)
3. Relation (관계)
데이터베이스 표현으로 살펴보면,
1. Entitiy (그룹) -> Table
2. Attribute (속성) -> Column
3. Relation (관계) -> PK, FK
위와 같이
개념적 데이터모델링에서 정의한 3가지 카테고리는
각각 DB의 요소인 Table, Column, PK, FK 를 뜻한다.
ERD의 Table - 그룹 정의
그룹은 비슷한 속성들의 집합이다.
데이터베이스에선, 많은 정보들을 Table 에 모아서 담는다.
이때, Table이 개념적으로 그룹을 의미한다.
그럼, 그룹은 어떻게 정의할 수 있을까?
기획 상황분석을 토대로 그룹을 정의한다.
그 중에서, 고객&유저의 이벤트가 발생하는 지점을 확인한다.
쓰기, 회원가입, 로그인, 댓글작성 등등의 행위가 발생하는 지점을
제한하여 관찰함으로써 그룹을 쉽게 정의할 수 있다.
아래는 기획 기본 UI이다.
그룹을 찾아보자..
어떤가?
잘 보이지 않을 것이다.
어떤 그룹이 있고, 어떻게 그룹으로 정의해야될 진 쉽지않다.
그럼, 아래는 기획의 이벤트 부분 UI이다.
그룹을 찾아보자
저자,
글,
댓글
로 3가지 그룹이 분명하게 보인다.
어떤가?
일반 UI를 살펴보는 것보다,
이벤트 UI를 살펴보는 것이 각 그룹을 직관적으로 정의하기에 편리하다.
ERD의 Column - 속성 정의
속성은 어떤 한 그룹에 무조건 소속되어있다.
즉, 고유한 존재로써 데이터베이스 속 덩그러니 남아있는 속성은 존재하지 않는다.
어떻게든, 데이터베이스 속에서 속성은 연결되어져 있다.
따라서 속성을 정의하기란,
이벤트가 발생한 지점 + 시스템 UI를 살펴보며
어떤 한 그룹에 무조건 소속되어지는 특징을 토대로 속성을 정의한다.
정리해서 그룹들을 먼저 정의하고,
속성들을 각 그룹들에 기입하며 덩그러니 남아있는 속성이 존재하지 않도록 정의하는 것이 편리하다.
그룹 -> 속성
속성은 어떻게든, 한 그룹에 무조건 소속되기 때문이다.
식별자 지정 - 속성의 특성 정의
식별자란, 속성들 중 전체를 대변하는 기능을 지닌 속성을 의미한다.
쉽게 말해,
회사 사원증이 있다고 하자.
사원증은 사원번호, 이름, 사진, 이메일 등등 여러 개인정보가 담겨있다.
그 중 사원번호가 식별자를 의미한다.
모든 회사원의 사원번호는 모두 다르며, 고유한 값을 가진다.
따라서, 하나의 사원번호는 특정 한사람의 개인정보를 의미한다.
이와 같이 전체를 대표가능한 속성을
식별자라고 말한다.
식별자는 여러 종류가 존재한다.
1. 기본키 (Primary Key - PK)
식별자로써 정의된 속성
즉, 전체인 테이블을 대표하는 속성을 기본키 PK라 한다.
2. 후보키
식별자로써 정의가능한 모든 속성들을 후보키라 한다.
3. 대체키 (Alternate Key)
기본키를 제외한 식별자로 대체가능한 속성
즉, 후보키에서, 기본키를 제외한 속성들을 대체키라 한다.
4. 중복키 (Composite Key)
두가지 이상의 속성들의 의미를 합하여
기본키로써 역할이 가능한 속성들의 집합
이렇게, 식별자는
전체를 대표가능한 속성을 의미한다.
식별자 역할은 관계형 데이터베이스 규칙을
잘 준수하게된다.
(중복 데이터 삽입 등등)
만약, 그룹에 식별자로써 지정할만한 속성이 없다면
기본키 역할을 수행할 임의의 속성을 추가하면된다. (그룹의 인덱스 속성)
ERD의 PK, FK - 관계 정의
관계는 그룹 간의 서로 어떠한 관계로 연결되어져 있는지 확인하여
정의내릴 수 있다.
담임선생님과 학급 반과의 관계를 살펴보자
담임 선생님은 몇 개의 반에 속할 수 있을까?
당연히, 하나의 반에만 속한다.
반대로,
하나의 반에는 몇명의 담임선생님이 존재할 수 있을까?
담임 선생님은 한명이다.
그렇다. 담임선생님과 학급 반과의 관계는
1 : 1 관계로 한명의 담임선생님이 있다면, 하나의 반은 반드시 존재한다.
정리해서, 관계란
여러 그룹들이 서로 연결되어 실체상으로 표현되게 한다.
왜, 그룹들을 연결할까? 잠시 살펴보자
(하나의 테이블에 모든 데이터를 담는 건 관리&이용측면에서 비효율.. 그리고 복잡했다.)
우린, DB의 효율성과 복잡하게 엃여있던 개념들을 단순하게 나타내고자
기획 상황을 여러 그룹들로 표현했다.
그렇다. 이젠, 예전에 쪼갰던 의미를 다시 표현하기 위해
관계를 정의한다.
관계의 종류에는 3가지가 있다.
- 1 : 1 관계
- 1 : N 관계
- M : N 관계
그룹 간의 고유한 관계를 찾아내기 위해선,
두 그룹간 서로서로 여러 개 혹은 한개의 데이터가 존재할 수 있는지
알아봄으로써 고유한 관계를 발견할 수 있다.
위의 예시를 토대로 관계를 쉽게 정의하는 방법을 살펴보자
저자는 여러 개의 글을 작성할 수 있다!
글은 여러 저자를 포함할 수 있다!
즉, 저자 그룹과 글 그룹은
N : M 다대다 관계이다.
정리해서,
관계란, 쪼깻던 그룹들을 서로 연결시켜
기획 상황들을 다시 표현하기 위해 존재한다.
그리고, 관계를 정의할 땐
기획 당시의 상황을 토대로 그룹 간의 관계를 정의한다.
마치며
이번 포스팅으로
이전 포스팅에서 배웠던 개념적 데이터모델링을
데이터베이스 표현으로 바꾼 ERD를 배울 수 있었다.
ERD의 구성요소들을 알아보고,
각 요소들을 어떻게 발견하고 정의하는지를 새롭게 배웠다.
예전에는 무의식으로 각 요소들을 발견하고 정의했다면
이번 배움의 기회로 구체적인 개념화를 진행할 수 있었다.
이번 포스팅은
개념적 데이터모델링 과정을 토대로
ERD를 이론적으로 설계해봤다.
다음 포스팅은
이론적으로 설계된 ERD를 토대로
ERD 설계를 진행하는 방법에 대해 포스팅하겠다.
- 여기까지 읽어주신 독자여러분께
감사의 말씀을 드립니다.
뭐든 하고자하는 의지만 있다면 이룰 수 있는 세상에 살아가고 있습니다!
우리 모두 화이팅입니다 ! -
Posted. 꿈 많은 욱22
'📚 스터디 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 가이드북, 정규화 [4] (2) | 2023.09.30 |
---|---|
[데이터베이스] 데이베이스 설계도, ERD 설계 [3] (3) | 2023.09.30 |
[데이터베이스] 데이터 모델링의 시작, 개념적 데이터모델링 [1] (0) | 2023.09.17 |
[데이터베이스] 데이터 모델링을 시작하며 (0) | 2023.09.16 |
[DataBase] 어제까지는 잘되다가 갑자기 오늘 DB timeout 에러.... - 네트워크 넌 도대체 누구냐 (3) | 2022.07.22 |