2024. 6. 1. 20:03ㆍCS
ER 다이어그램(Entity Relationship Diagram)은 데이터 모델링중 한 단계인
개념적 설계에 속해 있으며 데이터베이스를 시각화하는 도구다.
ER 다이어그램을 설명하기전에 간단하게 데이터 모델링의 단계를 알아보고 가자
- 데이터 모델링
데이터 모델링은 데이터베이스의 구조를 정의하고 설계하는 과정이다.
이 과정에서 데이터가 어떻게 저장되고 관리할것인지 결정한다.
그런데 이 데이터 모델링을 하는 이유가 무엇일까?
1. 파급효과
시스템 구축이 진행되면서 데이터 모델이 변경될 경우 프로젝트에서 큰 위험 요소로 작용 할 수 있기 때문이다.
2. 복잡한 요구사항의 간결한 표현
데이터 모델을 통해 시스템 정보의 요구사항을 간결하게 표현할 수 있기 때문이다.
예를 들어 ER다이어 그램을 통해 요구사항을 간결하게 표시해 클라이언트와 쉽게 의사소통 할 수 있다.
3. 데이터 품질
데이터의 중복을 줄이고 무결성을 유지하며 데이터의 정확성을 보장하기 위해서이다.
- 데이터 모델링의 단계
1. 요구사항 분석
말 그대로 요구사항을 수집하는 단계이다 이때 기능적 요구사항과 비기능적 요구사항이 존재하는데
기능적 요구사항은 시스템이 수행해야 할 구체적 기능을 의미한다.
예를 들어 학생 관리 시스템의 기능적 요구사항을 말해보자면 학생 등록 기능, 성적 관리 기능 등이 있겠다.
비기능적 요구사항은 시스템의 성능, 보안, 사용성등을 말한다.
예시로 시스템의 성능, 보안, 응답시간등이 있다.
2. 개념적 설계
이 글에서 설명할 ER 다이어 그램이 이 단계에 속하며
분석된 요구사항을 통해 뼈대를 만드는 단계이다. 개체를 정의하고 개체간의 관계를
정의해 ER다이어 그램을 만드는 것이다.
3. 논리적 설계
개념적 설계를 기반으로 각 개념을 구체화 해주는 단계이다.
각 테이블의 컬럼을 정의하고, 기본키 외래키를 정의해주며 정규화를 해주는 단계이다.
4. 물리적 설계
논리적 설계를 기반으로 적절한 DBMS를 선택해 실제로 데이터베이스를 구현하는 단계이다.
- ER다이어그램
ER 다이어 그램의 표기법을 먼저 알아보자
표기법의 종류로는 크게
1. Chen 표기법
2. Crow's Foot 표기법
3. Barker 표기법
3가지가 있지만 오늘은 Chen 표기법에 대해 알아볼것이다.
아래의 그림은 첸표기법의 기호이고 각각의 기호의 의미를 나타내고 있다.
물론 이렇게 표만 보면 잘이해가 안될 수 도 있으니 예시를 만들어 볼것이다.
예시로는 개인적으로 진행하는 미니 프로젝트인 게시판 만들기의 데이터베이스의 관계를 기준으로 만들것이다.
일단 게시판에 글쓰기, 해당 글에대한 댓글 기능을 구현 했으니 2가지 테이블
Boards, Comments 2가지가 필요할 것이다.
public class Board {
private Long id;
private String name;
private String title;
private String password;
private String content;
}
public class Comment {
private Long id;
private Long boardId;
private String username;
private String content;
private String password;
}
기존에 진행한 프로젝트에서 만들어 놓은 객체와 그에 따른 속성이다. 원래는 먼저 설계를 해야하지만
객체와 속성을 쉽게 보여주기 위해 예시로 가져왔다.
게시글 하나에 여러 댓글을 관리할 것이기 때문에 1 : N 관계가 될것이다.
이렇게 1 : N 관계를 간단히 나타낼 수 있을것이다.
하지만 아쉽게도 실무에서는 이렇게 간단한 첸표기법을 사용하지 않는다 한다
그래서 다음에는 실무에서 많이 사용하는 Crow's foot표기법에 대해 알아볼것이다.
참고자료
ERD와 정규화 과정
ERD 데이터 모델링 개념적 모델링은 Entity 를 도출하고 ERD를 작성하는 단계이다. 논리적 모델링은 ERD 를 사용할 특정 DBMS 의 논리적 자료구조에 맞게 매핑 (Mapping) 하는 과정이다. 예를들어 RDBMS 를
velog.io
데이터 모델의 이해
1. 모델링의 이해 가. 모델링의 정의 인류의 가장 보편적인 특징이면서 욕구 중의 하나는 의사소통을 하면서 항상 그에 대한 기록을 남기는 것이다. 어떤 현상에 대해 기록하고 남겨 자신 스스로
dataonair.or.kr
데이터 모델링이란 무엇인가요? - 데이터 모델링 설명 - AWS
데이터 모델링은 조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현 또는 청사진을 생성하는 프로세스입니다. 이 청사진 또는 데이터 모델은 데이터 분석자, 과학자, 엔지니어와 같은 다
aws.amazon.com
29일차! ER모델/ER다이어그램
집을 만들 때 땅을 다지듯 소프트웨어를 만들 때 가장 기반을 만드는 작업정보 모델링 :현실에서 개념적인 중요 엔터티를 뽑고(개념적 모델) ERD를 만든다.데이터 모델링 (여기까지가 논리적으로
velog.io
'CS' 카테고리의 다른 글
ER다이어그램 (Crow's Foot) (2) | 2024.06.06 |
---|---|
SOLID 설계 원칙 (0) | 2024.05.31 |