엔티티 관계 다이어그램
엔티티 관계 다이어그램(ER 다이어그램)은 데이터베이스 시스템에서 엔티티 간의 관계를 모델링하는 데 사용됩니다. 데이터베이스의 논리적 구조를 보여줍니다.
문법
기본 요소
- 엔티티:
entity 엔티티명
- 속성: 엔티티 내에 나열
- 관계: 엔티티 간의 다양한 연결 유형
- 카디널리티:
|o--o|
,}o--o{
등
관계 유형
- 일대일:
||--||
- 일대다:
||--o{
- 다대일:
}o--||
- 다대다:
}o--o{
기본 예제
코드:
mermaid
erDiagram
고객 ||--o{ 주문 : 주문
주문 ||--|{ 주문항목 : 포함
상품 ||--o{ 주문항목 : "포함됨"
고급 예제
블로그 시스템을 보여주는 더 자세한 ER 다이어그램:
코드:
mermaid
erDiagram
사용자 ||--o{ 게시글 : 작성
사용자 ||--o{ 댓글 : 작성
사용자 {
int 사용자ID
string 사용자명
string 이메일
string 비밀번호
date 생성일시
}
게시글 ||--o{ 댓글 : 포함
게시글 ||--o{ 카테고리 : 속함
게시글 {
int 게시글ID
string 제목
text 내용
date 발행일시
bool 발행여부
}
댓글 {
int 댓글ID
text 내용
date 생성일시
}
카테고리 {
int 카테고리ID
string 이름
string 슬러그
}
속성과 데이터 타입
속성과 해당 데이터 타입을 지정할 수 있습니다:
코드:
mermaid
erDiagram
고객 {
int 고객ID PK
string 이름
string 이메일 UK
date 가입일시
}
주문 {
int 주문ID PK
int 고객ID FK
decimal 총액
date 주문일시
}
관계 레이블
관계를 설명하는 레이블을 추가할 수 있습니다:
코드:
mermaid
erDiagram
의사 ||--o{ 예약 : "관리"
환자 ||--o{ 예약 : "예약"
예약 ||--|| 처방전 : "생성"
추가 기능
키 타입
- PK: 기본 키
- FK: 외래 키
- UK: 고유 키
코드:
mermaid
erDiagram
상품 {
int 상품ID PK
string 상품명 UK
decimal 가격
int 카테고리ID FK
}
스타일 설정
외관은 다음과 같은 방법으로 사용자 정의할 수 있습니다:
- 다양한 관계 유형
- 속성 타입
- 관계 레이블
- 엔티티 이름과 설명
유용한 팁
- 명확하고 설명적인 엔티티 이름 사용
- 중요한 속성만 포함
- 올바른 카디널리티로 관계 표시
- 의미 있는 관계 설명 추가
- 정규화 규칙 고려
- 관련 엔티티 그룹화
- 표준 명명 규칙 사용
일반적인 문제 해결
설계 문제
- 엔티티 이름이 명확한지 확인
- 관계의 카디널리티 검증
- 속성의 완전성 확인
관계 문제
- 관계 유형이 올바른지 확인
- 외래 키 제약 조건 검증
- 순환 종속성 확인
속성 문제
- 속성 이름이 명확한지 확인
- 데이터 타입 검증
- 키의 정확성 확인