1. 엔터티(Entity)
1.1 개념
- 정보의 세계에서 의미 있는 하나의 정보 단위로, 개체라고 표현한다
- 관련 있는 속성들이 모여 하나의 의미 있는 이룬 정보 단위
- 데이터베이스의 레코드가 개체에 해당
- 사람, 장소, 물건, 사건, 개념 등 업무상 관리 필요한 관심사
1.2 엔터티와 인스턴스
- 엔터티는 인스턴스의 집합
- 과목에는 데이터베이스, 인스턴스가 있고, 강사에는 Justin, Ed가 있다
- 이때 과목과 강사가 엔터티, 데이터베이스,인스턴스, Justin, Ed가 인스턴스에 해당한다
- 사원 정보를 담고 있는 테이블이 엔터티
- 인스턴스는 데이터베이스 테이블에 저장된 특정한 데이터 내용의 전체 집합(하나의 row(행))
- 하나의 인스턴스가 갖는 특징이 속성, 테이블의 세로 영역에 해당
1.3 특징
- 엔터티는 특정 업무에서 필요로 하는지 파악해야 함
- 엔터티 도출하는 경우 업무적으로 의미 갖는 인스턴스가 식별자에 의해 한개씩만 존재하는지 검증해야 함
- 엔터티는 기본적으로 2개 이상의 인스턴스로 구성
- 업무 프로세스에 활용되지 않는 엔터티가 있는 경우 해당 엔터티 제거하거나 프로세스에서 놓치고 있는 부분 없는지 확인해야 함
- 엔터티는 엔터티를 설명할 수 있는 속성이 존재해야 의미를 가짐
- 엔터티가 도출되었다는 것은 해당 업무에서 연관성을 가지는 다른 엔터티와 관계가 있음
1.4 엔터티의 분류
1) 유/무형에 따른 분류
- 유형 엔터티 : 물리적인 형태 존재하는 엔터티, 안정적이고 지속적이어야 함 ex) 상품, 강사, 병장
- 개념 엔터티 : 물리적 형태 아닌 관리해야 할 개념적인 정보로 구분되는 엔터티 ex) 학과, 코스닥 종목
- 사건 엔터티 : 특정 이벤트에 종속되는 엔터티, 업무 수행에 따라 발생되는 엔터티로 비교적으로 발생량 많음 ex) 이벤트 응모, 주문
2) 발생 시점에 따른 분류
-
기본/키 엔터티 :관계가 아닌 독립적인 생성 가능, 다른 엔터티의 부모 엔터티 역할(고유한 주식별자를 가짐)
예) 고객, 상품
-
중심 엔터티 : 기본 엔터티로부터 발생, 업무에서 중심적인 역할. 처리해야 하는 데이터의 양이 많고 다른 엔터티와의 관계 통해 많은 엔터티 생성
예) 주문, 취소
-
행위 엔터티 : 두개 이상의 부모 엔터티에서 발생, 자주 내용이 바뀌거나 데이터의 양 증가
예) 주문 내역, 취소 내역
1.5 엔터티 이름짓기 규칙
- 가능하면 업무에서 사용하는 용어 사용하기
- (가능하면) 축약어 사용하지 않기 -> 의미 온전히 드러나게 작성
- 단수명사 사용, 띄어쓰기 하지 않기
- 모든 엔터티에 유일한 이름 부여하기(중복x)
- 엔터티 생성 의미대로 이름 부여하기
2. 속성(Attribute)
2.1 개념
- 인스턴스의 본질적인 성질
- 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 분리되지 않는 최소의 데이터 단위
엔터티, 인스턴스, 속성, 속성값의 관계
- 하나의 엔터티는 두 개 이상의 인스턴스의 집합
- 하나의 엔터티는 두 개 이상의 속성으로 구성
- 하나의 속성은 한 개의 속성값을 가짐
2.2 특징
- 속성은 업무에서 필요로 함
- 속성은 의미상 더 이상 분리되지 않는 가장 작은 단위로 독립성 유지
- 엔터티를 설명하고 인스턴스의 구성요소가 됨
- 정규화 이론에 기반을 두고 정해진 주식별자에 함수석 종속성 가져야 함
2.3 속성의 분류
1) 속성의 특징에 따른 분류
- 기본 속성 : 업무로부터 추출된 모든 속성, 가장 많은 종류 차지
- 설계 속성 : 데이터 모델링, 업무 규칙화 등을 위해 새로 만들거나 변형하여 정의하는 속성
- 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성, 보통 계산된 형태의 값. 데이터의 정합성을 유지하기 위해서는 가급적 파생적 속성 적게 정의하는 것이 좋음
2) 엔터티 구성 방식에 따른 분류
- PK 속성 : 엔터티를 식별할 수 있는 속성
- FK 속성 : 다른 엔터티와의 관계에 포함된 속성
- 일반 속성 : PK,FK에 포함되지 않은 속성
2.4 도메인 및 속성의 명명
-
도메인 : 각 속성이 가질 수 있는 값의 범위, 엔터티 내 속성에 대한 데이터 타입, 크기, 제약 사항 등 지정
-
속성 명명 규칙
1. 가능하면 업무에서 사용하는 용어 사용
2. 가능하면 축약어 쓰지 않고 의미 온전하게 드러나게 사용
3. 서술형보다는 명사형
4. 수식어 많이 붙지 않고 명확하게 의미 파악할 수 있어야 함
5. 전체 데이터 모델에서 유일하게 작성
3. 관계(Relationship)
- 엔터티와 인스턴스 사이의 논리적인 연관성으로서 존재의 형태 행위로서 서로에게 연관성 부여된 상태
- 엔터티들 간 연관성을 표현하므로 엔터티의 정의에 따라 영향을 받기도 하고 속성 정의 및 관계 정의에 따라 다양하게 변할 수 있음
3.1 관계의 페어링
- 관계는 엔터티 안에 인스턴스가 개별적으로 연결되어 있는 구조. 이러한 관계를 '페어링'이라 함
- 연결 관계의 집합을 관계로 표현 가능
- 개별 인스턴스가 다른 종류의 관계를 가지면 두 엔터티 사이 두개 이상 관계 형성 가능
3.2 관계의 분류
관계는 크게 어떤 목적으로 연결지어졌는지에 따라 존재(소속/포함의 형태)/행위(행동/행위의 결과)에 의한 관계 2가지로 분류 가능하다
3.3 관계 차수(Degree/Cardinality)
- 1:1(One to One) 관계 표시
- 두 엔터티간의 관계되는 데이터의 개수가 1개인 엔터티 간 관계
- 1:M(One to Many) 관계 표시
- 한 엔터티에 존재하는 데이터 1개와 관계되는 다른 엔터티에 존재하는 데이터의 개수가 여러 개인 엔터티 간 관계
- M:N(Many to Many) 관계 표시
- 두 엔터티 간 관계되는 데이터의 개수가 여러개인 엔터티 간 관계
3.4 관계선택사항
- 필수 조건 : 상대 엔터티에 대한 해당 조건 만족하는 엔터티 반드시 존재할 경우 표시
- 선택 조건 : 점선으로 표시, 상대 엔터티에 대한 해당 조건 만족하는 엔터티 존재할수도, 아닐 수도 있음
- 하나의 주문목록에는 하나의 상품목록을 항상 포함, 한 상품목록은 여러 개의 주문 몽록 포함될 수 있음
3.5 관계 읽는 방법
- 기준 엔터티를 한개/각으로 읽는다
- 대상 엔터티의 관계 참여도 개수(하나/하나 이상)로 읽는다
- 관계 선택 사양과 관계 이름 읽는다
4. 식별자(Identifier)
- 집합체를 구분할 수 있는 구분자
- 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에서 엔터티를 대표할 수 있는 속성
- 하나의 엔터티는 반드시 하나의 유일한 식별자 존재해야 함
4.1 주식별자의 특징
- 유일성 : 주식별자에 의해 엔터티 내 모든 인스턴스 유일하게 구분
- 최소성 : 주식별자 구성하는 속성 수는 유일성 만족하는 최소의 수 되어야 함
- 불변성 : 한번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성 : 주식별자 지정되면 반드시 데이터 값 존재해야 함(NULL값 허용하지 않음)
4.2 식별자 분류
1) 대표성 여부
- 주식별자 : 다른 엔터티와 참조 관계 연결 가능 식별자
- 보조 식별자 : 엔터티간 참조 관계 연결 불가능
- 두 식별자 모두 엔터티 내에서 각 인스턴스 구분할 수 있는 구분자
2) 스스로 생성 여부
- 내부 식별자 : 엔터티 내부에서 정의되는 식별자
- 외부 식별자 : 다른 엔터티와의 관계를 통해 다른 엔터티로부터 받아오는 식별자
3) 속성의 수
- 단일 식별자 : 하나의 속성으로 구성된 식별자
- 복합 식별자 : 둘 이상의 속성으로 구성된 식별자
4) 대체 여부
- 본질 식별자 : 업무에 의해 만들어지는 식별자
- 인조 식별자 : 업무적으로 만들어지진 않지만 인위적으로 만들어진 식별자
식별자 표기법
4.2 주식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성으로 설정
- 명칭, 내역 등과 같이 특정한 이름으로 기술되는 것은 가능하면 주식별자로 사용하지 않음
- 복합으로 주식별자 구성하는 경우 너무 많은 속성 포함되지 않도록 해야 함