ERD
Entity-Relationship Diagram(ERD)는 소프트웨어 개발과 데이터베이스 설계에서 데이터베이스 구조와 관련 정보를 시각화합니다.
설계
ERD를 설계할 때는 아래에 해당되는 속성들을 정의하고 ERD 설계를 해야합니다.
E(Entity. 개체)
- 서비스에서 필요로 하는 데이터를 담을 개체를 식별합니다.
- 예를 들어,
사용자
, 게시물
, 댓글
등
A(Attribute. 속성)
- 각 개체가 가지는 속성을 정의합니다.
- 예를 들어, 사용자 개체는
이름
, 로그인 아이디
, 비밀번호
등의 속성을 가질 수 있습니다.
R(Relationship. 관계)
- 개체들 사이의 관계를 정의합니다.
- 예를 들어, 사용자와 게시물 사이에는
작성하다
라는 관계가 있습니다.
화살표
일대일 관계(One-to-One)
- 화살표가 양쪽 끝에 하나의 끝점을 가지는 경우 일대일 관계를 나타냅니다.
- 예를 들어, '사용자(User)'와 '프로필(Profile)' 사이에는 일대일 관계가 있을 수 있습니다.
일대다 관계(One-to-Many)
- 화살표가 한쪽 끝에 하나의 끝점을 가지고 다른 쪽에는 많은 끝점을 가지는 경우 일대다 관계를 나타냅니다.
- 예를 들어, '게시물(Post)'과 '댓글(Comment)' 사이에는 일대다 관계가 있을 수 있습니다.
- 하나의 게시물에 여러 개의 댓글이 달릴 수 있지만, 하나의 댓글은 항상 하나의 게시물에 속합니다.
다대다 관계(Many-to-Many)
- 화살표 양쪽 끝에 많은 끝점을 가지는 경우 다대다 관계를 나타냅니다.
- 다대다 관계는 보통 중간 테이블을 통해 구현됩니다.
- 예를 들어, '학생(Student)'과 '과목(Subject)' 엔티티 사이에는 다대다 관계가 있을 수 있습니다.
- 한 학생은 여러 개의 과목을 수강할 수 있고, 한 과목은 여러 학생이 수강할 수 있습니다.
Zero or ...
- 관계를 가질 수도 있고 가지지 않을 수도 있다는 것을 나타냅니다.
- 즉, 한 엔티티 인스턴스가 다른 엔티티 인스턴스와 0개 이상의 관계를 가질 수 있습니다.
- 예를 들어, '게시물(Post)'에 '댓글(Comment)'이 있을 수도 없을 수도 있습니다.
One 과 One and Only One
One
학생A는 한 개의 기숙사 방에만 할당될 수 있습니다.
200번 기숙사 방은 1인실이라 한 명의 학생만을 수용할 수 있습니다.
내년에 학생A는 새로운 기숙사 방을 할당받게 되고, 200번 기숙사 방은 새로운 학생에게 할당됩니다.
One and Only One
학생A는 한 개의 아이디를 (예: a11235) 가질 수 있고
해당 아이디는 오직 학생A만 로그안 할 수 있습니다.
학생A가 졸업하면 다른 학생에게 해당 아이디가(a11235)할당될 수 없습니다.
참고