cs 전공지식 #07 데이터베이스 - 엔티티, 릴레이션, 속성, 도메인
2022/11/16
- 학습내용
1. 엔티티(Entity)
= 실체, 객체
데이터의 집합을 의미한다.
저장되고, 관리되어야하는 데이터이다.
개념, 장소, 사건 등을 가리킨다.
유형 또는 무형의 대상을 가리킨다.
엔터티는 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당된다.
엔터티는 업무상 관리가 필요한 것에 해당된다.
엔터티는 저장 되기 위한 어떤 것(Thing)에 해당된다.
특징
- 반드시 엔터티가 사용되는 곳의 업무에서 필요하며 관리하고자 하는 정보
- 엔터티가 포함하는 인스턴스에 대해 유일한 식별자로 식별이 가능해야 함
- 엔터티는 지속적으로 존재하는 두개 이상의 인스턴스들의 조합이어야 함
- 엔터티는 반드시 속성을 지녀야 함
- 엔터티는 업무 프로세스에 의해서 이용되어야 함
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함
식별자 - 유일한 식별자를 갖고 있어야 한다. ex) 주민번호, ID 등...
인스턴스 집합 - 2개 이상의 인스턴스가 있어야 한다.
속성 - 반드시 속성을 가지고 있어야 한다. ex) 학생에 학번, 이름, 주소 등...
관계 - 다른 엔티티와 최소 한 개 이상 관계가 있어야 한다. ex) 학생은 이름을 갖고 있음.
업무 - 업무에서 관리되어야 하는 집합이다. ex) 학생, 성적
분류
실체유형(유무형)에 따른 분류
- 유형 엔터티(Tangible Entity)
물리적인 형태가 존재하는 엔터티이며 안정적이고 지속적으로 활용되는 엔터티이다.
- 개념 엔터티(Conceptual Entity)
물리적인 형태는 존재하지 않고 관리해야 할 개념적인 정보로 구분이 되는 엔터티이다.
- 사건 엔터티(Event Entity)
업무를 수행함에 따라 발생되는 엔터티이다.
발생시점에 따른 분류
- 기본/키 엔터티(Fundamental/Key Entity)
해당 업무에 원래 존재하는 정보로 다른 엔터티와의 관계에 의해 발생 또는 생성되지 않고 독립적으로 존재하는 엔터티이다. 이는 독립적으로 생성이 가능하며 다른 엔터티의 부모역할을 한다.
- 중심 엔터티(Main Entity)
기본 엔터티로 부터 발생되며 업무에 있어서 중심적인 역할을 한다. 일반적으로 데이터 양이 많으며 다른 엔터티와의 관계를 통해 행위 엔터티를 생성한다.
- 행위 엔터티(Active Entity)
두 개이상의 부모엔터티로 부터 주로 발생되고, 자주 엔터티의 내용이 바뀌거나 데이터양이 증감한다. 분석초기 단계보다는 상세 설계단계나 프로세스와 상관모델링을 진행하면서 도출될 수 있다.
Spring Entity ex)
2.릴레이션(relation)
관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다.
DB테이블이 릴레이션이다.
MySQL 데이터베이스에서는 컬렉션이라고 한다.
ERD의 네모칸 하나하나가 결국 릴레이션이다.
3.속성(Attribute)
데이터 모델의 관점에서 속성은, 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 정의할 수 있다.
릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보이다.
ex) 자동차에서 속성이라 하면 자동차 넘버, 바퀴 수, 차종, 색깔 등이 있다.
4.도메인(Domain)
속성의 값, 타입, 제약사항 등에 대한 값들의 집합
도메인이라는 개념이 필요한 이유는
릴레이션에 저장되는 데이터 값들이 본래 의도했던 값들만 저장되고 관리하기 위해서이다.
ex) 성별이라는 속성이 있다면 DB 설계자는 성별의 도메인을 'SEX'를 정의하고 그 값으로 남, 여 로 지정한 뒤
성별이라는 속성은 SEX 도메인에 있는 값만을 가질 수 있다고 지정해 놓으면 사용자들이 실수로 남,여 이외의 값을 입력하는 것을 방지할 수 있다.
-> 도메인의 이름은 속성 이름과 같을 수도 있고 다를 수도 있다.