[데이터베이스설계] Entity - RelationShip Model

2024. 4. 16. 22:04데이터베이스설계

1. Entity - Rleation Model (엔티티 - 관계 모델, 이하 E-R Model)

E-R Model은 데이터베이스 구조를 개념적으로 표현하는데 사용되는 모델링 기법이다. 정보 시스템의 구조적인 설계나 데이터베이스의 논리적 설계를 위해서 널리 사용된다.

 

2. 구성 요소

  1. 엔티티(Entity) : 데이터베이스에 저장될 실체나 객체를 의미. 엔티티는 보통 명사로 표햔되며, 예를 들어 회원, 도서, 대출 등이 엔티티에 해당함. 관계형 DBMS 상에서 데이터 테이블 이름
  2. 속성(Attribute) : 엔티티를 구성하는 세부 정보로, 엔티티의 특성을 나타냄. 예를 들어 '회원'이라는 엔티티에는 이름, 회원ID, 성별 등의 속성을 가질 수 있음. 관계형 DBMS상에서는 테이블에 존재하는 컬럼
  3. 관계(Realationship) : 엔티티 간의 연관성이나 상호작용을 나타냄. 예를 들어, '회원' 과 '도서' 사이에는 '대출'이라는 관계가 있을 수 있으며, 이는 수강생이 프로그램을 수강한다는 관계를 설명

크게 위와 같은 3개의 요소로 구성되며, 아래는 E-R Model에 메인이 되는 요소는 아니지만 중요한 것들을 정리해놓았습니다.

  1. 식별자(Identifier) : 각 엔티티 인스턴스를 유일하게 식별할 수 있는 하나 이상의 속성의 집합. 예를 들어, 회원의 경우 회원ID가 식별자가 될 수 있음. 관계형 DBMS로 설명하면 Key값이 되는 컬럼
  2. 카디널리티(Cardinality) : 관계의 특성을 설명하며, 관계에 참여하는 엔티티 인스턴스의 수를 나타내는 데 사용. 1:1, 1:N, N:M 이 있음. 예를 들어 '회원' 이라는 엔티티는 '도서'을 여러개 대출 할 수 있음으로 1:N의 카디널리티를 가짐.

3. E-R 다이어그램

우선 기본적으로 E-R 다이어그램을 그리는 방법에 대해서 서술합니다.

  •  엔티티(Entity) : 사각형

  • 속성(Attribute) : 타원

  • 관계(Relationship) : 마름모 

  • 카디널리티 (Cardinality) : 직선 + 텍스트 or 새발

카디널리티를 직선+텍스트로 표현한다면 아래와 같이 표현 할 수 있습니다. 

 

카디널리티를 새발로 표현한다면 아래와 같이 표현할 수 있습니다.

새발로 카디널리티를 표현할 때는 최소/최대 카디널리티의 개념이 들어가는데, 이는 위에서 설명한 '회원'과 '도서'를 그림상에서 A 와 B로 대입해서 생각해본다면 하나의 회원은 도서를 0개를 빌린다는 개념은 없으니 1:0은 성립이 되지않고, 하나의 회원은 1개의 도서만 대출 할 수 있으니 최소 카디널리티는 1:1이 되고, 하나의 회원은 여러권의 도서를 대출 할 수 있으니 최대 카디널리티는 1:N이 될 수 있습니다. 그래서 회원, A 는 1이고 도서,B는 1과 N이 되어 회원과 도서는 4번째 그림처럼 그릴 수 있습니다.

4. E-R 다이어그램 예시

간단하게 도서관을 예시를 들어보겠습니다. 예시에서는 카디널리티를 직선+텍스트로 표현했습니다. 만약 도서관 관리 시스템에 아래와 같은 데이터베이스가 있다고 가정합니다.

1. Book

  • ISBN : 각 도서의 고유 식별 번호
  • Title : 도서의 이름
  • Author : 도서의 저자 이름
  • Publish Year : 출판된 연도

2. Member

  • Member ID : 회원을 식별하는 고유 번호
  • Name : 회원의 이름
  • Phone : 회원의 전화번호
  • Address : 회원의 주소

3.Loan

  • Loan Number : 대출 거래를 식별하는 고유 번호
  • Loan Date : 도서가 대출된 날짜
  • Due Date : 도서의 반납 예정일

이 예시에서는 Book, Member, Loan이라는 엔티티를 가지고 각 엔티티들은 속성들을 3개에서 4개씩 가지고 있습니다. 또 각 속성의 상단에 위치한 것들은 식별자로 모두 고유한 번호입니다. 

 

먼저 각 엔티티와 속성들을 그려보면 아래와 같이 그릴 수 있습니다.

 

다음으로, 관계를 생각하고, 관계와 카디널리티를 추가해보겠습니다.

이 예시에서 관계는 Member과 Book 사이에 Loans라는 대출 관계가 있을 수 있으며, 한 회원은 여러 권의 도서를 대출할 수 있으며, 한 도서는 한번에 한 회원에게만 대출 될 수 있기 때문에 N:1의 카디널리티를 가집니다.

 

여기서 각 엔티티의 관계와 카디널리티를 추가하면 아래와 같이 그릴 수 있습니다.

 

'데이터베이스설계' 카테고리의 다른 글

[데이터베이스설계] 데이터 정규화  (0) 2024.01.13