[JDBC] DB모델링, ERD
모델링이란?
- 말 그대로 모델을 만드는 작업을 뜻한다.
- 즉, 현실 세계를 단순화 시켜 표현하는 기법 아래의 소프트웨어 개발 프로세스를 보면 요구사항, 분석, 설계 단계를 모델링 단계라고 한다.
DB모델링의 주요 개념
엔티티(Entity)
- 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체) (유형, 무형, 문서, 이력, 코드..)
- 물리적으로 만들어지게되면 테이블이 된다.
속성(Attribute)
- 엔티티에서 관리해야 할 최소 단위 정보 항목(관심이 있는 항목)을 말하며 엔티티는 하나 이상의 속성을 포함
- 컬럼
인스턴스(Instance)
- 엔티티의 속성으로 실제로 구현된 하나의 값
- 하나의 행
관계(Relationship)
- 두 엔티티 사이의 관련성을 나타냄
카디널리티(Cardinality)
- 각 엔티티에 속해 있는 인스턴스들 간에 수적으로 어떤 관계에 있는지를 나타냄
- 종류로는 1:1, 1:N, M:N의 관계가 있다.
학생 한 명의 취미가 하나이거나, 두 개일수도 있다. -> 1:N
주식별자(Primary Identifier)
- 엔티티 내에 있는 각각의 인스턴스를 구별하는 기준
- SQL에서의 PK
외래식별자(Foreign Identifier)
- 엔티티와 엔티티를 연결해주는 고리의 역할
- SQL에서의 FK
ERD(Entity-Relationship Diagram)
- ERD란, 개체 관계도라고도 불리며 요구분석사항에서 얻어낸 엔티티와 속성들을 그림으로 그려내여 그 관계를 도출한 것
ERD표기법
주식별자
- 엔티티에 소속된 인스턴스들을 구별하는 기준 역할을 하는 속성
- 주식별자는 유일성, 최소성, 불변성, 존재성의 특징을 갖는다.
- 주식별자는 하나가 아닌 여러 속성일 수 있다. (복합키)
- 엔티티의 속성 중 주식별자 속성이 없다면 새로운 속성을 만들어준다. (인위적 주식별자)
외래식별자
- 관계가 있는 두 엔티티를 부모, 자식 엔티티로 구분한 후 부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래식별자로 지정
- 자식 엔티티에 부모 엔티티 주식별자 공통 속성이 없을 경우 자식에게 속성을 추가한 후 외래식별자로 지정
식별 관계(Identifying Relationship)
- 1:N관계에서 외래 식별자가 자식 엔티티의 주식별자의 일부가 되는 관계
- PRK로 표시된다. (외래 식별자가 주식별자의 역할도 한다.)
- 실선으로 관계를 표시한다.
비식별 관계(Non-Identifying Relationship)
- 1:N 관계에서 외래 식별자가 자식 엔티티의 주식별자 역할을 하지 못하고 단순히 새로운 속성으로 추가되는 관계
- FK로 표시된다. (단지 외래식별자의 역할만 한다.
- 점선으로 관계를 표시한다.
<실습 1>
http://www.erdcloud.com erdcloud에서 작성했다.
논리&물리 보기로 작성한다.
1. 고객으로부터 전화를 받는다.
2. 고객이 남성이면 A타입 상담일지에 기록하고, 여성이면 B타입 상담일지에 기록한다.
3. 한 건의 상담에 대해 고유한 일련번호를 부여한다.
4. 상담 내용이 수리요청이면 상담일지를 AS 부서에 Fax로 전송한다.
5. 상담 내용이 반품 요청이면 반품 목록에 고객이름, 전화번호, 반품내역을 기록한다.
<실습2>
학원에 다양한 과정이 있다. 각 과정은 코드, 과정명, 수강료를 갖고 있다.
과정들은 1개월에서 6개월 등 기간은 다양하다.
각 강사에 대해 이름과 전화번호를 필요로 하며 한 강사는 여러 개의 과정을 수업할 수 이다.
학생들은 시간에 따라 여러 개의 과정을 이수할 수 있다.
학생 관리 차원에서 각 학생들의 이름과 전화번호를 기록한다.
M:N