2024. 4. 16. 22:04ㆍ데이터베이스설계
1. Entity - Rleation Model (엔티티 - 관계 모델, 이하 E-R Model)
E-R Model은 데이터베이스 구조를 개념적으로 표현하는데 사용되는 모델링 기법이다. 정보 시스템의 구조적인 설계나 데이터베이스의 논리적 설계를 위해서 널리 사용된다.
2. 구성 요소
- 엔티티(Entity) : 데이터베이스에 저장될 실체나 객체를 의미. 엔티티는 보통 명사로 표햔되며, 예를 들어 회원, 도서, 대출 등이 엔티티에 해당함. 관계형 DBMS 상에서 데이터 테이블 이름
- 속성(Attribute) : 엔티티를 구성하는 세부 정보로, 엔티티의 특성을 나타냄. 예를 들어 '회원'이라는 엔티티에는 이름, 회원ID, 성별 등의 속성을 가질 수 있음. 관계형 DBMS상에서는 테이블에 존재하는 컬럼
- 관계(Realationship) : 엔티티 간의 연관성이나 상호작용을 나타냄. 예를 들어, '회원' 과 '도서' 사이에는 '대출'이라는 관계가 있을 수 있으며, 이는 수강생이 프로그램을 수강한다는 관계를 설명
크게 위와 같은 3개의 요소로 구성되며, 아래는 E-R Model에 메인이 되는 요소는 아니지만 중요한 것들을 정리해놓았습니다.
- 식별자(Identifier) : 각 엔티티 인스턴스를 유일하게 식별할 수 있는 하나 이상의 속성의 집합. 예를 들어, 회원의 경우 회원ID가 식별자가 될 수 있음. 관계형 DBMS로 설명하면 Key값이 되는 컬럼
- 카디널리티(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 |
---|