데이터 모델
01 데이터 모델의 개요
정보화 시스템 구축 : 현실 세계에서 일어나는 사건들을 전산화
현실 세계를 개념화, 단순화하여 가시적으로 표현
데이터 모델링 : 체계적으로 표현하고 문서화하는 기법 - 정보시스템의 중심을 데이터 관점에서 접근
\1. 어떤 데이터가 존재하는지 2. 업무에서 필요로 하는 정보가 무엇인지 분석 > 모델링 자체가 업무를 분석 : 프로젝트 참여한 모든 사람은 모델링에 참여하거나 내용 이해 필수
데이터 모델 : 현실 세계를 단순화, 추상화하여 체계적으로 데이터의 구조를 표현 > 그래픽적 구현
-
주 목적
-
- 업무 정보를 구성하는데 기초가 되는 정보를 일정한 표기법으로 표현함으로써 정보 시스템 구축 대상이 되는 업무 내용을 정확하게 분석하는 것이다.
- 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것이다.
>> 새로운 시스템이나 개선 시스템 개발의 기초를 제공하며 조직 내 구성원 간의 의사소통의 수단
데이터 모델의 구성요소
- 구조 (S : Structure)
데이터의 정적 성질, 데이터베이스에서 표현될 대상으로써의 엔티티 타임과 이들 간의 관계를 명세
- 연산 (O : Operation)
데이터의 동적 성질, 엔티티 인스턴스에 적용 가능한 연산에 대한 명세
엔티티 인스턴스를 처리하는 작업에 대한 명세 > 데이터 조작 기법
- 제약조건 (C : Constraint)
데이터가 무결하도록 하기 위해 사용 - 데이터를 조작하는데 있어 한계를 규정짓는 것
엔티티, 관계, 속성
- 업무가 관여하는 어떤 것 (Entity)
사람이 생각하는 개념이나 정보단위같은 현실 세계의 대상체
유 / 무형의 정보 > 서로 연관된 몇 개의 속성으로 구성
- 업무가 관여하는 어떤 것 간의 관계 (Relation)
데이터의 가장 작은 논리적 단위, 하나의 엔티티는 한 개 이상으 속성으로 구성
- 어떤 것이 가지는 성격 (Attribute)
엔티티와 엔티티 혹은 엔티티와 속성 간의 연관성
> 자연계에 존재하는 모든 유형의 정보를 세 가지 관점으로 접근하여 모델링
개념적 데이터 모델과 논리적 데이터 모델
-
개념적 데이터 모델
( 개체 관계 모델 - E-R 모델 ) » 정보 모델링
엔티티를 인간이 이해할 수 있는 정보구조로 표현하는 과정
현실 세계에서 존재하는 데이터를 엔티티와 엔티티 내의 공통된 속성과 엔티티들 사이의 관계를 정의하는 추상화 과정
엔티티를 추상화 시킨 엔티티 타임 : 해당 타입에 속하는 엔티티들의 공통적이 특성을 나타내는 속성
-
논리적 데이터 모델
데이터 모델링
컴퓨터가 이해할 수 있도록 변환
필드로 기술된 데이터 타입과 이 테이터 타입 간의 관계를 이용하여 현실세계를 표현하는 방법
\1. 관계 데이터 모델 2. 계층 데이터 모델 3. 네트워크 데이터 모델
02 개념적 데이터 모델
- 목적 : 현실 세계를 추상화하는 과정으로 업무적인 관점에서 접근하고 분석하는 단계
E-R 다이어그램 : 엔티티와 이들 간의 관계를 알기 쉽게 도형을 사용해 표현
엔티티와 엔티티 타입
엔티티 타입 : 독립적으로 전재하면서 고유하게 식별 가능한 실세계의 엔티티 (실체 / 추상)
엔티티들은 엔티티 타입으로 분류
엔티티의 집합 : 동일한 속성을 가진 엔티티의 모임 ( 엔티티 인스턴스의 집합 ).
엔티티 : 엔티티 타입을 구성하는 원소, 다른 모든 것과 구분되는 유/무형의 것 > 업무 수행을 위해 알아야 할 대상
속성
속성 : 엔티티의 성질, 분류, 수량, 상태, 특성을 구체적으로 나타내는 세부 항목
속성값 : 엔티티의 특성이나 상태가 현실화된 값
속성 유형
- 단순 속성과 복합 속성
단순 속성 : 더이상 작은 구성원소로 분해할 수 없는 속성
복합 속성 : 몇 개의 기본적 단순 속성으로 분해할 수 있는 속성
- 단일 값 속성과 다중 값 속성
단일 값 속성 : 각 엔티티에 대해 하나의 값만 갖는 것
다중 값 속성 : 한 엔티티에 대해 여러 값을 갖는 것
- 유도 속성과 저장 속성
유도 속성 : 속성 값이 다른 속성이나 엔티티가 갖고 있는 값으로부터 유도되어 결정되는 경우
저장 속성 : 유도 속성을 생성하는 데 사용된 속성
- 널 속성
널 값을 갖는 속성
-
-
속성값이 엔티티에 해당하지 않는 경우
-
속성값을 알 수 없는 경우
-
값이 존재하지만 값이 누락된 경우
-
값이 존재하는지 알 수 없어 모르는 경우
-
관계타입
: 엔티티 사이의 연관성을 표 현하는 개념 > 동사구로 관계 정의 / 엔티티 집합 사이의 대응-사상을 의미
관계 집합 : 한 관계 타입에 속하는 모든 관계 인스턴스
- 관계 유형
카디날리티 : 관계에 참여하는 하나의 엔티티에 대해 다른 엔티티가 몇 개 참여하는지 나타내는 것
> 관계 대응 엔티티 수 : 하나의 관계에 실제 참여 가능한 인스턴스의 수
(1) 일대일 (2) 일대다 (3) 다대다
- 카디날리티 비율의 최소값과 최대값
어떤 관계 타입에 참여하는 각 엔티티 타입에 대해
min은 이 엔티티 타입 내의 각 엔티티는 적어도 min번 관계에 참여함을 의미한다.
min = 0은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미한다
max는 이 엔티티 타입 내의 각 엔티티는 최대한 max번 관계에 참여함을 의미한다.
max = *는 어떤 엔티티가 관계에 임의의 수 만큼 참여할 수 있음을 의미한다.
(표)
엔티티의 키
키 속성 : 엔티티 인스턴스를 유일하게 식별하는 데 사용 : 중복 값을 갖지 않는 속성
> 타 엔티티와 구별할 수 있는 속성이며 키를 속성에 및줄을 그어 표현한다. (그림)
강한 엔티티 타입과 약한 엔티티 타입
강한 엔티티 타입 ( 정규 엔티티 타입 ) : 고유 엔티티들을 식별할 수 있는 엔티티 타입
강한 엔티티 = 독립 / 부모 엔티티
약한 엔티티 타입 : 자기 자신만의 속성만으로는 키를 명세할 수 없는 엔티티
약한 엔티티 = 종속 / 자식 엔티티
소유 엔티티 타입 ( 식별 엔티티 타입 ) : 소유엔타에 의해야만 약한 엔티티 타입이 식별 가능
구별자 ( 부분키 ) : 약한 엔티티 타입을 구별하기 위해 사용되는 이름은 단독으로 엔티티를 구분할 수 없음
구별자는 강한 엔티티와 연관된 약한 엔티티 집합 내에서만 서로 구별 가능
이중링크 : 부양가족 엔티티가 전체참여를 하고 있다는 것
> 약한 엔티티를 강한 엔티티에 연관시켜 엔티티를 유일하게 식별하게 하는 것
ISA 관계
상위 엔티티와 하위 엔티티 간의 관계
같은 속성을 갖는 여러 엔티티를 하나의 상위 엔티티로 결합할 수 있으며, 특정 엔티티는 서로 구별되는 여러 하위 엔티티로 나눌 수 있다.
03 논리적 데이터 모델 ( 데이터 모델링 )
: 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터 환경에 맞도록 변환하는 과정
- 목적 : 정확한 업무 분석을 통한 자료의 흐름을 분석 후 실체와 속성의 관계를 구조적으로 설계
계층 데이터 모델
데이터를 저장하는 단위( Entity )의 구조가 상하종속적인 관계로 구성 /
일대다 ( 1 : N ) 대응 관계만 존재 > 레코드 삭제 시 연쇄삭제
레코드의 집합 : 세그먼트 ( 부모 / 자식 세그먼트 )
레코드 타입 ( 논리적 구조 ) : 트리 형태로 표현 > 엔티티가 트리를 구성하는 노드 역할
장점 : 데이터 액세스 속도가 빠르고 데이터 사용량을 쉽게 예측할 수 있다
단점 : 데이터 구조가 상하 종속적인 관계로 구성 > 변화하는 프로세서 수용 불가능
-
관계의 유형
- 속성 관계 : 세그먼트 (엔티티)를 구성하는 속성들의 관계
- 엔티티 관계 : 엔티티와 엔티티 간의 관계를 링크로 표시
네트워크 데이터 모델
그래프를 이용해 데이터 논리구조를 표현
다대다 ( N : M ) 대응 관계를 만족하는 구조 > 오너와 멤버 관계로 표현
레코드 타입 : 도형적으로 표현 ( 그래프 형태 ) > 망 데이터 모델
단점 : 구성과 설계가 복잠함 / 계층형 데이터베이스 관리 시스템의 단점이었던 데이터 종속성 또한 해결 불가
관계 데이터 모델
: 계층 모델과 망 모델의 복잡한 구조를 단순화
일대일, 일대다, 다대다 관계를 자유로이 표현 가능
장점 : 변화하는 업무 프로세스를 쉽게 적용 가능 > 유지 보수의 용이, 생산성 향상 및 응용프로그램 개발 용이
간결성, 보기 편리하고 구조가 간단하여 설계 및 관리가 편리, 다른 데이터베이스로의 변환이 편리
단점 : 많은 자원이 필요하기에 시스템 부하가 상대적으로 빈번함