반응형
데이터베이스 엔티티 (Entity)
- 엔티티는 업무에서 관리해야 하는 데이터 집합을 의미
- 개념, 사건, 장소 등의 명사
엔티티 특징
- 식별자 : 유일한 식별자
- 인스턴스 집합 : 2개 이상의 인스턴스 필요
- ex) 고객 정보는 2명 이상 있어야 한다.
- 속성 : 엔티티는 반드시 속성을 가지고 있다.
- ex) 고객 엔티티에 이름, 주소, 전화번호 등
- 관계 : 다른 엔티티와 최소한 한 개 이상 관계 필요
- 업무 : 업무에서 관리되어야 하는 집합
엔티티 종류
- 엔티티의 종류는 유형과 무형에 따른 종류, 발생하는 시점에 따른 종류로 나뉜다.
유형과 무형
- 유형 엔티티 : 업무에서 도출되며 지속적으로 사용되는 엔티티
- ex) 고객, 강사, 사원
- 개념 엔티티 : 유형 엔티티는 물리적 형태가 있지만, 개념 엔티티는 없다.
- ex) 거래소 종목, 코스닥 종목, 생명보험 상품
- 사건 엔티티 : 비즈니스 프로세스를 실행하면서 생성되는 엔티티
- ex) 주문, 체결, 취소 등
유형과 무형으로 분리하는 기준은 물리적 형태의 존재 여부이다.
발생 시점에 따른 분류
- 기본 엔티티 : 키 엔티티라고도 하며, 다른 엔티티 영향 없이 독립적으로 생성
- ex) 고객, 상품, 부서
- 중심 엔티티 : 기본 엔티티와 행위 엔티티 중간에 있는 것으로 기본 엔티티로부터 발생되고, 행위 엔티티를 생성
- ex) 계좌, 주문, 취소, 체결 등
- 행위 엔티티 : 2개 이상의 엔티티로 부터 발생
- ex) 주문 이력, 체결 이력
속성 (Attribute)
- 속성이란 업무에서 필요한 정보인 엔티티가 가지는 항목
- 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
- 인스턴스의 구성요소이다.
속성의 특징
- 속성은 업무에서 관리되는 정보이다.
- 속성은 하나의 값만 가진다.
- 주식별자에게 함수적으로 종속된다.
- 기본키가 변경되면 속성의 값도 변경
속성의 종류
분해 여부에 따른 속성의 종류
- 단일 속성 : 하나의 의미로 구성된 것
- ex) 회원 ID, 이름
- 복합 속성 : 여러 개의 의미가 있는 것
- ex) 주소는 시, 군, 동 등 분해될 수 있다.
- 다중값 속성 : 속성에 여러 개의 값을 가질 수 있는 것
- 다중값 속성은 엔티티로 분해된다.
특성에 따른 속성의 종류
- 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
- ex) 회원 ID, 이름 등
- 설계 속성 : 데이터 모델링 과정에서 발생되는 속성
- 유일한 값을 부여한다. ex) 상품 코드, 지점 코드 등
- 파생 속성 : 다른 속성에 의해 만들어지는 속성
- ex) 합계, 평균 등
관계 (Relationship)
- 관계란 엔티티 간의 관련성을 의미하며 존재 관계와 행위 관계로 분류된다.
- 존재 관계는 두 개의 엔티티가 존재 여부 관계가 있는 것이고, 행위 관계는 두 개의 엔티티가 어떤 행위에 의한 관련성이 있는 것이다.
관계의 종류
존재 관계
- 존재 관계는 엔티티 간의 상태를 의미한다.
- ex) 고객이 은행에 가입하면 관리점이 할당되고, 그 할당된 관리점에서 고객 관리
행위 관계
- 엔티티 간에 어떤 행위가 있는 것으로, 계좌를 사용해서 주문을 발주하는 관계
- ex) 증권회사는 계좌를 개설하고 주문을 발주
관계 차수
- 두 엔티티 간에 관계를 참여하는 횟수
- 최대 기수성 (1:1 , 1:M, N:M)
- 1대1 관계 : 한 명의 고객은 하나의 고객등급이 부여
- 1대N 관계 : 한 명의 고객은 여러 계좌를 개설할 수 있다.
- M대N 관계 : 조인이 카테시안 곱이 발생하므로 1대N 또는 N대1로 해소 필요
- 최소 기수성 (필수 (|), 선택 (0))
식별 관계
- 고객 엔티티의 기본키인 ID를 계좌 엔티티에 기본키로 FK를 공유한 경우 가정
- 고객과 계좌 엔티티에서 고객은 독립적으로 존재할 수 있는 강한 개체이다.
- 강한 개체의 기본키 값이 변경되면 식별 관계에 있는 엔티티의 값도 변경된다.
- 여기서 계좌 엔티티는 약한 개체가 된다.
- 이러한 강한 개체는 식별 관계로 표현된다.
- 실선으로 표현
비식별관계
- 강한 개체의 기본키를 다른 엔티티의 일반 컬럼으로 관계를 가지는 경우
- 점선으로 표현
강한 개체 (Strong Entity) : 누구에게도 지배되지 않는 독립적인 개체
약한 개체 (Weak Entity) : 개체의 존재가 다른 개체의 존재에 달려 있는 개체
엔티티 식별자
- 식별자란, 엔티티를 대표할 수 있는 유일성을 만족하는 속성을 말한다.
주식별자 (기본키)
- 최소성 : 주식별자는 최소성을 만족
- 대표성 : 주식별자는 엔티티를 대표할 수 있어야 한다.
- 유일성 : 주식별자는 엔티티의 인스턴스를 유일하게 식별한다.
- 불변성 : 주식별자는 자주 변경되지 않아야 한다.
키의 종류
- 기본키 : 후보키 중에서 엔티티를 대표할 수 있는 키
- 후보키 : 유일성과 최소성을 만족하는 키
- 슈퍼키 : 유일성은 만족하지만 최소성은 만족하지 않는 키
- 대체키 : 여러 후보 키 중에서 기본키를 선정하고 남은 키
- 외래키 : 참조 무결성을 확인하기 위해 다른 테이블의 필드를 가리키는 키
식별자 종류
- 대표성, 생성 여부, 속성의 수, 대체 여부로 분류
식별자의 대표성
- 주 식별자 : 유일성과 최소성을 만족하면서 엔티티를 대표하는 식별자
- 다른 엔티티와 참조 관계로 연결될 수 있다.
- 보조 식별자 : 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
생성 여부
- 내부 식별자 : 엔티티 내부에서 스스로 생성되는 식별자
- ex) 부서코드, 주문번호, 종목코드
- 외부 식별자 : 다른 엔티티와 관계로 인하여 만들어지는 식별자
- ex) 계좌 엔티티에 회원ID
속성의 수
- 단일 식별자 : 하나의 속성으로 구성
- ex) 고객 엔티티에 회원ID
- 복합 식별자 : 두 개 이상의 속성으로 구성
대체 여부
- 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자
- 인조 식별자 : 인위적으로 만들어지는 식별자
인조 식별자는 후보 식별자 중에서 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 컬럼으로 되어 있는 경우에 사용한다.
즉, 순서 번호를 사용해서 식별자를 만드는 것이다. ex) oracle - rownum
반응형