데이터 모델링 / 엔터티
<1~15>
데이터모델링이란?
- 정보시스템을 구축하기위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는과정
- 데이터베이스를 구축하기 위한 분석 / 설계 과정
> 시스템 구현만이 아닌 업무분석 및 업무 형상화 목적도 있음
데이터 모델링 주요한 이유
- 정보시스템 구축의 대상이 되는 업무내용을 정확하게 분석 하는것
- 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용
- 단지 데이터 베이스 구축 용도만 아니라
데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에서 매우 중요한 의미
데이터 모델링 유의점
1. 중복
>여러장소에 같은 정보를 저장하면 안됨
2. 비유연성
> 사소한 업무변화에도 모델이 수시로 변경되면 유지보수에 어려움
> 데이터의 정의를 데이터의 사용프로세스와 분리함으로써 작은변화가 에플리케이션과 데이터베이스에 중대한 변화가 일어나지 않도록 가능성을 줄인다.
3. 비일관성
> 데이터의 중복이 없더라도 비일관성은 발생 할 수 있다.
> 데이터간의 상호관계를 명확히 정의한다면 예방가능
> 사용자가 처리하는 프로세스에 테이블 연계성을 높인다면 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점이 될 수 있다.
데이터 모델링 개념
-1. 개념적 데이터 모델링
> 추상화 수준이 높고, 업무중심적, 포괄적인 수준의 모델링
> EA 수립시 많이 이용
2. 논리적 데이터 모델링
> 시스템 구축 업무에 대해 key, 속성, 관계 등을 정확하게 표현
> 재사용성 높음
3. 물리적 데이터 모델링
> 실제로 데이터베이스에 이식할 수 있도록 성능,저장 등 물리적인 성격을 고려하여 설계
데이터베이스 스키마(database schema):
- 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조
- 데이터 베이스 스키마 구조는 3단계로 구분되고 각각은 상호 독립적인 의미를 가지고 고유한 기능을 가진다.
데이터 베이스 스키마 구조 3단계
1. 외부 스키마(External Schema) :
프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
2. 개념 스키마(Conceptual Schema) :
모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것
> 통합 관점의 스키마구조
> 데이터 모델링은 → 통합적인 뷰를 가지고 있는 개념스키마를 만들어 가는 과정
3. 내부 스키마(Internal Schema) :
전체 데이터베이스의 물리적 저장 형태를 기술하는 것
Entity 개념
- 실체, 객체라는 의미
- 여러 속성을 가지고 있음
-업무에 필요한 정보를 저장하고 관리하기 위한 집합
ex) 학생이라는 Entity → [ 학번, 이름, 학점, 생일, 전공 ] 등의 속성을 가지고 있음
Entity의 다양한 정의
- 변별할 수있는 사물 : Peter Cheb (1976)
- 데이터베이스 내에서 변별 가능한 객체 : C.J Date (1986)
- 정보를 저장 할 수 있는 어떤 것 : James Martin (1989)
- 정보가 저장될 수 있는 사람 , 장소, 물건, 사건 그리고 개념 등 - Thomas Bruce (1992)
Entity의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보
- 유일한 식별자에 의해 식별가능해야한다.
- 엔터티는 인스턴스의 집합이어야함( ※ 2개이상, 1개아님 )
- 업무 프로세스에 이용되어야한다. ( 업무에 필요하지 않다면 성립 X )
- 반드시 속성이 있어야한다.
- 엔터티는 다른 엔터티와 최소 한개 이상의 관계가 있어야한다.
> 통계성 엔터티나, 코드성 엔터티의 경우 관계 생략가능
ERD 작성순서
엔터티를 그린다 → 엔터티를 적절하게 배치 → 엔터티간 관계 설정 → 관계명 기술 → 관계의 참여도 기술 → 관계의 필수여부 기술
> 관계의 명칭은 관계 표현에 있어서 매우 중요한 부분
> 가장 중요한 엔터티는 왼쪽 상단에서 조금 아래쪽 중앙에 배치
Entity 분류 ( 발생시점에 따른 분류)
[ 기본 엔터티 ▶ 중심 엔터티 ▶ 행위 엔터티 ]
- 기본 엔터티 (Fundamental , Key Entity)
> 업무에 원래 존재하는 정보, 엔터티와의 관계에 의해 생성 되지 않고 독립적으로 생성가능
> 타 엔터티의 부모 역할
> 다른 엔터티로부터 주식별자를 상속 받지 않고 자신의 고유한 주식별자를 갖는다.
ex) 사원, 부서, 고객, 상품, 자재
- 중심 엔터티( Main Entity)
> 기본 엔터티로부터 발생, 업무에서 중심적인 역할
> 데이터양이 많이 발생
> 다른 엔터티와의 관계를 통해 많은 행위엔터티 생성
ex) 계약, 사고, 예금원자으, 청구, 주문, 매출
-행위 엔터티 (Active Entity)
> 두개이상의 부모 엔터티로부터 발생
> 자주 내용이 바뀌거나 데이터 량이 증가
> 분석 초기 단계에서 잘 나타나지 않고 상세 설계단계나 프로세스와 상관 모델링을 진행하면서 도출 될 수 있다.
ex) 주문목록, 사원변경이력
>>> [개념 엔터티]는 엔터티 유형이 아니다.
엔터티 이름 부여 기준
- 현업업무에서 사용하는 언어, 업무상의 의미를 분명하게 한다.
- 가능하면 약어를 사용하지 않는다.
- 단수명사를 사용한다.
- 유일한 이름을 부여한다. (중복X)
- 엔터티 생성의미대로 자연스럽게 이름을 부여한다.
속성 (ATTRIBUTE)
- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔터티에 대한 자세하고 구체적인 정보를 나타낸다
- 하나의 엔터티는 2개 이상의 속성을 갖는다.
- 한개의 속성은 하나의 속성값을 갖는다.
- 속성도 집합이다.
엔터티 / 인스턴스 / 속성 / 속성값/ 의 관계
- 한개의 엔터티 → 두개 이상의 인스턴스
- 한개의 엔터티 → 2개 이상의 속성
- 한개의 속성 → 1개의 속성 값