수업 목표
- 데이터 모델링 구성 요소 4가지에 대해 학습
- 엔터티
- 속성
- 관계
- 식별자
엔터티(Entity)
엔터티의 개념
엔터티의 개념
- 엔터티: 데이터 모델의 핵심 구성 요소
- ‘개체’라고 표현하며 정보의 세계에서 의미 있는 하나의 정보 단위를 뜻함
- 개체: 관련 있는 속성(사물의 본질적인 성질)들이 모여서 의미 있는 하나의 정보 단위를 이룬 것
- 데이터베이스에서는 레코드가 개체에 해당
- 개체 관계 모델(Entity-Relationship model): 개체와 관계를 나타넨 모달
- 엔터티의 사전적 의미는 ‘독립체’
- 쉽게 말해 업무에서 쓰이는 데이터들을 분류한 그룹이라 할 수 있음
엔터티와 인스턴스
- 엔터티와 인스턴스의 관계는 여러 가지 방법으로 표현 가능
- ERD, 표 등
- 표현하는 바는 같지만 다른 형태로 표현할 수 있음
- 예시
- 사원 정보를 담고 있는 테이블 == Entity
- 엔터티는 업무에서 필요로 하는 정보를 저장하기 위한 무언가를 의미
- 사원에 대한 정보를 행과 열을 2차원 구조로 저장하여 관리하고 업무에서 활용 가능하기 때문에 엔터티라고 할 수 있음
- 인스턴스: 데이터베이스 테이블에 저장된 특정한 데이터 내용의 전체 집합
- 즉, 하나의 row(행) == 인스턴스
- 한 명의 사원이 가질 수 있는 모든 내용을 포함한 요소
- 속성(attribute): 하나의 인스턴스가 갖는 각각의 특징
- 테이블의 세로(column) 영역에 해당
- 하나의 엔터티(사원 테이블)는 여러 인스턴스(하나의 행)를 가질 수 있고, 하나의 인스턴스는 1개 이상의 속성(이름, 사번, 부서, 직책 등)을 가질 수 있음
엔터티의 특징
- 업무에서 필요로 하는 정보
- 엔터티는 특정한 업무에서 필요로 하는지를 파악하는 것이 중요함
- 데이터를 수집하고 관리하는 목적이 기본적으로 업무에서 활용하기 위해서이기 때문
- 식별 가능 여부
- 엔터티를 도출하는 경우 업무적으로 의미를 갖는 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증해야 함
- 인스턴스의 집합
- 엔터티는 기본적으로 2개 이상의 인스턴스로 구성되어 있어야 함
- 인스턴스가 한 개 밖에 없는 엔터티는 집합이 아니기 때문에 엔터티가 아님
- 업무 프로세스에 의해 활용되어야 함
- 엔터티는 업무 프로세스에 활용되어야 함
- 만약 활용되지 않는 엔터티가 있을 경우 해당 엔터티를 제거하거나 프로세스에서 놓치고 있는 부분은 없는지 확인해야 함
- 속성을 포함해야 함
- 엔터티가 도출되었다는 건 해당 업무에서 어떠한 연관성을 갖고 다른 엔터티와의 연관성이 있다는 의미
- 엔터티는 엔터티를 설명할 수 있는 속성이 존재해야 의미를 가짐
- 관계의 존재
- 엔터티가 도출되었다는 것은 해당 업무에서 어떠한 연관성을 갖고 다른 엔터티와의 연관성이 있음을 나타냄
- 관계가 설정되지 않은 엔터티는 부적절한 엔터티가 도출되었거나 다른 엔터티와의 직접적인 연결 관계를 찾지 못했을 수 있음
엔터티의 분류
- 유·무형에 따른 분류
- 유형 엔터티
- 물리적인 형태가 존재하는 엔터티이며 안정적이고 지속적
예) 상품, 강사, 병장
- 개념 엔터티
- 물리적인 형태가 아닌 관리해야 할 개념적인 정보로 구분되는 엔터티
예) 학과, 코스닥 종목
- 사건 엔터티
- 특정한 이벤트에 종속되는 엔터티
- 업무 수행에 따라 발생되는 엔터티로 비교적 발생량이 많으며 각종 통계에 이용되는 엔터티
예) 이벤트 응모, 주문
- 발생 시점에 따른 분류
- 기본·키 엔터티(Basic Entity)
- 관계가 아닌 독립적인 생성이 가능하고 다른 엔터티의 부모 엔터티 역할을 함
- 고유한 주식별자를 가짐
예) 고객, 상품
- 중심 엔터티(Main Entity)
- 기본 엔터티로부터 발생하고 업무에서 중심적인 역할을 함
- 처리해야 하는 데이터의 양이 많으며 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성함
예) 주문, 취소
- 행위 엔터티(Activie Entity)
- 두 개 이상의 부모 엔터티로부터 발생
- 자주 내용이 바뀌거나 데이터의 양이 증가함
예) 주문 내역, 취소 내역
- 엔터티 분류 방법의 예시
엔터티의 이름짓기 방식
- 엔터티는 고유한 이름을 가짐
- 이 때 특정한 규칙을 기반으로 이름 짓기(네이밍) 함
- 가능하면 업무에서 사용하는 용어 쓰기
- (가능하면) 축약어(shortcut) 쓰지 않기
- 단수 명사를 사용하고 띄어쓰기 하지 않기
- 모든 엔터티에서 유일한 이름이 부여되어야 함
- 엔터티 생성 의미대로 이름 부여
속성(Attribute)
속성의 개념
속성의 개념
- 인스턴스가 가진 어떠한 성질(성격)
- 인스턴스가 갖는 개별 특징
- 하나의 인스턴스는 최소 하나 이상의 속성을 가짐
- 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 테이블로 예를 들면:
테이블 전체 → 엔티티
행(row) → 개별 인스턴스
행은 테이블에서 하나의 데이터 집합을 의미
- 엔터티는
- 사람, 장소, 물건, 사건, 개념 등의 명사
- 업무상 관리가 필요한 관심사
- 저장이 되기 위한 어떤 것(Thing)
엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 함
- 한 개의 엔터티는 두 개 이상의 속성으로 구성
- 한 개의 속성은 한 개의 속성값을 가짐
속성 표기법
-
IE 표기법
-
Barker 표기법
속성의 특징 및 분류
속성의 특징
- 업무에서 필요로 함
- 아무 요소나 모두 속성이 되는 게 아님
- 업무에 관련된 특징이 속성이 될 수 있음
- 해당 업무에서 관리하고자 하는 정보여야 함
- 의미상 더 이상 분리되지 않는 그 자체로 독립성 유지
- 엔터티를 설명하고 인스턴스의 구성요소가 됨
- 속성을 통해 인스턴스가 구성되며 인스턴스가 모여 엔터티가 되기 때문에 결과적으로 엔터티를 설명한다 볼 수 있음
- 정규화 이론에 기반을 두고 정해진 주식별자에 함수적 종속성을 가짐
- 함수적 종속성(Functional Dependency)
- X(결정자) → Y(종속자)
: X의 값을 알면 Y의 값을 바로 알 수 있고 X값에 의해 Y값이 달라지는 경우 "Y는 X에 함수적 종속"이라 함
(예) 학생 테이블에서 학번 - 이름, 학번 - 전공
- 종류: 완전 함수 종속, 부분 함수 종속, 이행 함수 종속
- 하나의 속성은 한 개의 값만 가짐