[SQLD] 1-1. 데이터 모델링의 이해 2
업데이트:
엔터티, 속성, 식별자
엔터티
엔터티란?
엔터티(Entity)
:
업무에 필요하며 유용한 정보를 저장하고 관리하기 위한 집합적인 대상, 혹은 행위의 집합
엔터티에 대해서 데이터 모델과 데이터베이스에 권위자가 정의한 사항은 다음과 같다
변별할 수 있는 사물 - Peter Chen (1976) -
데이터베이스 내에서 변별 가능한 객체 - C.J Date (1986) -
정보를 저장할 수 있는 어떤 것 - James Martin (1989) -
정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 - Thomas Bruce (1992) -
위 정의들의 공통점을 모아 정의한다면,
업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)으로 설명할 수 있다
또는, 엔터티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합으로 정의할 수 있다
엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.(예. 환자, 토익의 응시횟수, …)
2. 유일한 식별자에 의해 식별이 가능해야 한다.
3. 영속적으로 존재하는 인스턴스의 집합이어야 한다.
(‘한 개’가 아니라 ‘두 개 이상’)
4. 엔터티는 업무 프로세스에 의해 이용되어야 한다.
5. 엔터티는 반드시 속성이 있어야 한다.
(예외적으로 관계엔터티의 경우는 주식별자 속성만 가지고 있어도 인정됨)
6. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
(엔터티 도출은 업무적인 연관성을 가지고 다른 엔터티와 연관이 있음을 의미함)
- 6번의 예외 사항(관계를 생략하여 표현해야 하는 경우)
1) 통계성 엔터티 도출
2) 코드성 엔터티 도출
3) 시스템 처리시 내부 필요에 의한 엔터티 도출
엔터티의 분류
대표적으로 유무형에 따른 분류 / 발생시점에 따른 분류가 있다
이 밖에도 스스로 생성될 수 있는지 여부에 따라 독립엔터티 / 의존엔터티로 구분할 수 있다
유무형에 따른 분류
- 유형 엔터티
물리적인 형태가 있고, 안정적이며 지속적으로 활용되는 엔터티 - 개념 엔터티
물리적 형태는 존재하지 않지만 관리해야할 개념적 정보 - 사건 엔터티
업무를 수행함에 따라 발생되는 엔터티로 비교적 발생량이 많다
발생 시점에 따른 분류
- 기본/키 엔터티
업무에 원래 존재하는 정보로서 관계에 의해서가 아닌 독립적으로 생성 가능하다
타 엔터티의 부모 역할을 하게된다
다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 갖게된다 - 중심 엔터티
기본엔터티로부터 발생되고 업무에 중요한 역할을 한다
데이터의 양이 많이 발생되고 다른 엔터티와 관계를 통해 많은 행위 엔터티를 생성한다 - 행위 엔터티
두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다
엔터티 명명규칙
1. 현업 업무에서 사용하는 용어를 사용한다
2. 가능한 약어를 사용하지 않는다
3. 단수명사를 사용한다
4. 모든 엔터티에서 유일하게 이름이 부여되야한다
5. 엔터티 생성의미대로 이름을 부여한다
속성
속성이란?
속성
은 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 이다
속성이 가질 수 있는 값의 범위는 도메인
엔터티, 인스턴스와 속성, 속성 값
엔터티, 인스턴스, 속성, 속성 값의 관계
엔터티는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성 정보를 두 개 이상 갖는다
엔터티 내에 있는 하나의 인스턴스는 각각의 속성들에 대해 한 개의 속성값만을 가질 수 있다
- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다
- 한 개의 엔터티는 두 개 이상의 속성을 갖는다
- 한 개의 속성은 한 개의 속성 값을 갖는다
친구
번호 | 이름 | 출생년도 |
---|---|---|
1 | 김미미 | 1995 |
2 | 최자두 | 1996 |
3 | 김도식 | 1997 |
엔터티 : 친구
속성(col) : 번호, 이름, 출생년도
인스턴스(row) : [1, 김미미, 1995], [2, 최자두, 1996], [3, 김도식, 1997]
속성 값 : 번호 속성의 속성 값은 [1, 2, 3]
속성의 특징
- 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.
- 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
속성의 분류
속성은 크게 특성에 따른 분류 / 엔터티 구성방식에 따른 분류로 나눌 수 있다
속성의 특성에 따른 분류
- 기본 속성
업무로부터 추출한 모든 속성 - 설계 속성
업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화 하기위해 새로 만들거나 변형해 정의한 속성 - 파생 속성
다른 속성에 영향을 받아 발생하는 속성(계산된 값 등)
엔터티 구성방식에 따른 분류
- PK 속성
엔터티를 식별할 수 있는 속성 - FK 속성
다른 엔터티와의 관계에서 포함된 속성 - 일반 속성
엔터티에 포함되어 있고, PK, FK에 포함되지 않은 속성
속성 명명규칙
1. 현업 업무에서 사용하는 이름를 사용한다
2. 서술식 속성명은 사용하지 않는다
3. 약어 사용은 가급적 제한한다
4. 전체 데이터 모델에서 유일성 확보하는 것이 좋다
식별자
식별자란?
식별자
: 엔터티에서 각각을 구분할 수 있는 논리적인 이름
하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성
주식별자의 특징
- 유일성
주식별자에 의해 엔터티 내에 모든 인스턴스들은 유일하게 구분되어야 한다 - 최소성
주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다 - 불변성
지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다 - 존재성
주식별자가 지정되면 반드시 값이 들어와야 한다(NULL 불가능)
식별자의 분류
주식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다
- 명칭, 내역 등과 같이 이름으로 기술되는 것은 가능하면 피한다
- 복합으로 주식별자로 구성할 경우 너무많은 속성을 포함하지 않도록 한다
식별자와 비식별자관계 비교
항목 | 식별자 관계 | 비식별자 관계 |
---|---|---|
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 | 반드시 부모엔터티 종속 자식 주식별자 구성에 부모 주식별자 포함 필요 상속받은 주식별자속성을 타 엔터티에 이전 필요 |
약한 종속 관계 자식 주식별자 구성을 독립적으로 구성 자식 주식별자 구성에 부모 주식별자 부분 필요 상속받은 주식별자속성을 타엔터티에 차단 필요 부모쪽의 관계 참여가 선택 관계 |
댓글남기기