ERD(Entity Relationship Diagram)란?
구조화된 데이터를 저장하기 위해서 데이터베이스를 사용합니다. 데이터베이스는 데이터의 구조 및 그에 수반한 제약 조건들은 다양한 기법에 의해 설계될 수 있습니다. 수많은 기법 중 하나인 ERM(Entity-Relationship Modeling)를 사용하여 프로세스를 개체와 관계 중점적으로 한눈에 알아보기 쉽게 그려놓은 다이어그램을 말합니다.
ERD의 구성 요소
Entity (개체)
Entity는 정의 가능한 사물 또는 개념을 의미합니다. 데이터베이스의 Table이 하나의 Entity로 표현할 수 있습니다.
모든 Entity는 1개 이상의 식별자(unique identifier, UID)를 지녀야 하고, 식별자가 없다면 Entity라고 할 수 없습니다.
Entity의 종류
- Tangible Entitiy (유형)
물리적인 형태가 있습니다. - Conceptual Entity (개념)
물리적인 형태가 없고 개념적 정보입니다. - Event Entity (사건)
비지니스 수행함에 따라 발생하는 정보입니다. - Fundamental Entity (기본)
독립적으로 생성이 가능하며. 타 Entity의 부모의 역할을 합니다. - Main Entity (중심)
Fundamental Entity로부터 발생하고 중심적인 역할을 합니다. 다른 Entity와의 관계를 통해 많은 Active Entity를 만듭니다. - Active Entity (행위)
2개 이상의 부모 Entity로 발생되고 자주 내용이 바뀌거나 데이터 양이 증가할 수 있습니다.
Entity의 명명 규칙
- 실제 사용하는 업무의 명칭을 사용한다.
- 약어를 사용하지 않는다.
- 단수 명사를 사용한다.
- 모든 Entity에서 유일한 이름이어야 한다.
- Entity 생성 의미가 있어야 한다.
Attribute (속성)
Entity가 갖고 있는 속성이며 데이터베이스의 Table의 Field입니다.
Attribute의 종류
- Key Attribute
중복되지 않는 고유한 값을 가진 Attribute로 Entity를 식별하는 데 사용합니다. - Composite Attribute
독립적인 Attribute들이 모여서 생성된 Attribute입니다. - Multi-Valued Attribute
하나의 Attribute가 여러 개의 값을 가지는 Attribute를 의미합니다. - Derived Attribute
다른 Attribute가 갖고 있는 값으로부터 유도된 속성을 의미합니다.
Domain (도메인)
Entity의 Attribute들이 가질 수 있는 값, 데이터 타입, 길이, 제약 사항 등에 대한 값의 범위를 표현하는 것입니다.
Domain 정의 방법
1. 데이터 모델의 모든 Attribute를 Entity별로 나열한다.
2. 모든 Attribute를 복합 명사를 분리하여 명사별로 정리한다.
3. 명사가 비슷한 것끼리 묶어 도메인 분류명을 부여한다.
4. 각 도메인 분류명으로 정리한 후 Attribute의 데이터 타입과 길이를 조사한다.
5. 데이터 타입과 길이와 분류명을 조합하여 도메인 이름을 부여한다.
6. 각 Entity의 Attribute에 Domain을 할당한다.
사용자 작성 방법에 따라 데이터 타입만 보일 수 있고, 가독성을 위해 생략하는 경우도 있습니다. 데이터 타입을 명시할 때는 사용하고 있는 데이터베이스가 지원하는 타입에 맞게 작성해야 합니다.
Relationship (관계)
2개 이상 Entity들이 어떻게 서로 연관되어 있는지 선으로 표현합니다. 부모 Entity의 Key Attribute를 자식 Entity의 Key Attribute로 사용 여부에 따라 실선과 점선으로 표현됩니다.
식별자 관계
부모 Entity의 Primary Key를 자식 Entity의 Primary Key 구성에 포함하여 사용하고 있으면 강한 연결 관계를 갖고 있습니다. 이런 경우에 실선으로 표시합니다.
비식별자 관계
부모 Entity의 Primary Key가 자식 Entity의 일반적인 Attribute에 포함되어 있으면 약한 연결 관계를 갖고 있습니다. 이런 경우 점선으로 표시합니다.
Relationship의 Cardinality 표현 기호
Cardinality는 특정 데이터 집합에서 발생할 수 있는 유니크한 값의 개수를 의미하는 용어입니다. 두 Entity 관계에 몇 개의 개체와 대응되는지 제약조건을 기호로 표시할 수 있습니다.
1. 일 대 일(One to One)
한 개의 대응은 수직 파이프(|) 기호를 사용하여 표현합니다.
달리기 활동 정보에 핵심 가치 정보는 하나만 가질 수 있다는 것을 의미합니다.
동그라미 기호를 추가할 경우에는 없거나 하나만 가질 수 있다는 것을 의미합니다.
2. 일 대 다(One to Many) & 다 대 일(Many to One)
여러 개의 대응은 문어발 다리 기호를 사용하여 표현합니다.
하나의 핵심 가치는 여러 달리기 활동 정보와 대응될 수 있습니다.
3. 다 대 다(Many to Many)
두 Entity는 서로 여러 개 대응되는 관계를 가질 수 있는 경우도 있습니다. 하지만 이런 경우에서는 데이터 모델링에서는 완성되지 않은 모델로 간주하여 두 Entity를 관계를 위한 중간 Entity를 생성하여 1:N, N:1로 조정합니다.
여러 명언에는 여러 가지 핵심 가치들이 있을 수 있습니다. 또 여러 가지 핵심 가치에는 여러 가지 명언이 있을 수 있습니다. 두 Entity를 연결해 주는 맵핑 Entity를 생성하여 2개의 Entity의 고유 속성을 가져와 연결합니다.
참고 사이트
블로그 : https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EB%A7%81-1N-%EA%B4%80%EA%B3%84-%F0%9F%93%88-ERD-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8
블로그 : https://mslilsunshine.tistory.com/164
위키백과:https://ko.wikipedia.org/wiki/%EA%B0%9C%EC%B2%B4-%EA%B4%80%EA%B3%84_%EB%AA%A8%EB%8D%B8
도메인 : https://velog.io/@gillog/DBDomain-Data-Dictionary
도메인 구루비비 : http://wiki.gurubee.net/pages/viewpage.action?pageId=1966775
'개발 > Computer Science' 카테고리의 다른 글
오픈 소스 소프트웨어 라이선스 (0) | 2023.09.29 |
---|---|
클라우드 컴퓨팅이란? (0) | 2023.09.04 |
[네트워크] SSH와 SFTP(SSH 파일 전송 프로토콜) (0) | 2023.07.18 |
[C프로그래밍] HTML 생성 프로그램 만들기 (0) | 2023.06.20 |
[C프로그래밍] 나의 Tistory 카테고리 알파벳 순서로 정렬하기 (0) | 2023.05.09 |