[1] Database 데이터 모델

데이터 모델

01 데이터 모델의 개요

정보화 시스템 구축 : 현실 세계에서 일어나는 사건들을 전산화

현실 세계를 개념화, 단순화하여 가시적으로 표현

데이터 모델링 : 체계적으로 표현하고 문서화하는 기법 - 정보시스템의 중심을 데이터 관점에서 접근

\1. 어떤 데이터가 존재하는지 2. 업무에서 필요로 하는 정보가 무엇인지 분석 > 모델링 자체가 업무를 분석 : 프로젝트 참여한 모든 사람은 모델링에 참여하거나 내용 이해 필수

데이터 모델 : 현실 세계를 단순화, 추상화하여 체계적으로 데이터의 구조를 표현 > 그래픽적 구현

  • 주 목적

    • 업무 정보를 구성하는데 기초가 되는 정보를 일정한 표기법으로 표현함으로써 정보 시스템 구축 대상이 되는 업무 내용을 정확하게 분석하는 것이다.
    • 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것이다.

>> 새로운 시스템이나 개선 시스템 개발의 기초를 제공하며 조직 내 구성원 간의 의사소통의 수단

데이터 모델의 구성요소
  1. 구조 (S : Structure)

데이터의 정적 성질, 데이터베이스에서 표현될 대상으로써의 엔티티 타임과 이들 간의 관계를 명세

  1. 연산 (O : Operation)

데이터의 동적 성질, 엔티티 인스턴스에 적용 가능한 연산에 대한 명세

엔티티 인스턴스를 처리하는 작업에 대한 명세 > 데이터 조작 기법

  1. 제약조건 (C : Constraint)

데이터가 무결하도록 하기 위해 사용 - 데이터를 조작하는데 있어 한계를 규정짓는 것

엔티티, 관계, 속성
  1. 업무가 관여하는 어떤 것 (Entity)

사람이 생각하는 개념이나 정보단위같은 현실 세계의 대상체

유 / 무형의 정보 > 서로 연관된 몇 개의 속성으로 구성

  1. 업무가 관여하는 어떤 것 간의 관계 (Relation)

데이터의 가장 작은 논리적 단위, 하나의 엔티티는 한 개 이상으 속성으로 구성

  1. 어떤 것이 가지는 성격 (Attribute)

엔티티와 엔티티 혹은 엔티티와 속성 간의 연관성

> 자연계에 존재하는 모든 유형의 정보를 세 가지 관점으로 접근하여 모델링

개념적 데이터 모델과 논리적 데이터 모델

  1. 개념적 데이터 모델

    ( 개체 관계 모델 - E-R 모델 ) » 정보 모델링

엔티티를 인간이 이해할 수 있는 정보구조로 표현하는 과정

현실 세계에서 존재하는 데이터를 엔티티와 엔티티 내의 공통된 속성과 엔티티들 사이의 관계를 정의하는 추상화 과정

엔티티를 추상화 시킨 엔티티 타임 : 해당 타입에 속하는 엔티티들의 공통적이 특성을 나타내는 속성

  1. 논리적 데이터 모델

    데이터 모델링

컴퓨터가 이해할 수 있도록 변환

필드로 기술된 데이터 타입과 이 테이터 타입 간의 관계를 이용하여 현실세계를 표현하는 방법

\1. 관계 데이터 모델 2. 계층 데이터 모델 3. 네트워크 데이터 모델

02 개념적 데이터 모델

  • 목적 : 현실 세계를 추상화하는 과정으로 업무적인 관점에서 접근하고 분석하는 단계

E-R 다이어그램 : 엔티티와 이들 간의 관계를 알기 쉽게 도형을 사용해 표현

엔티티와 엔티티 타입

엔티티 타입 : 독립적으로 전재하면서 고유하게 식별 가능한 실세계의 엔티티 (실체 / 추상)

​ 엔티티들은 엔티티 타입으로 분류

엔티티의 집합 : 동일한 속성을 가진 엔티티의 모임 ( 엔티티 인스턴스의 집합 ).

엔티티 : 엔티티 타입을 구성하는 원소, 다른 모든 것과 구분되는 유/무형의 것 > 업무 수행을 위해 알아야 할 대상

속성

속성 : 엔티티의 성질, 분류, 수량, 상태, 특성을 구체적으로 나타내는 세부 항목

속성값 : 엔티티의 특성이나 상태가 현실화된 값

속성 유형

  1. 단순 속성과 복합 속성

단순 속성 : 더이상 작은 구성원소로 분해할 수 없는 속성

복합 속성 : 몇 개의 기본적 단순 속성으로 분해할 수 있는 속성

  1. 단일 값 속성과 다중 값 속성

단일 값 속성 : 각 엔티티에 대해 하나의 값만 갖는 것

다중 값 속성 : 한 엔티티에 대해 여러 값을 갖는 것

  1. 유도 속성과 저장 속성

유도 속성 : 속성 값이 다른 속성이나 엔티티가 갖고 있는 값으로부터 유도되어 결정되는 경우

저장 속성 : 유도 속성을 생성하는 데 사용된 속성

  1. 널 속성

널 값을 갖는 속성

    1. 속성값이 엔티티에 해당하지 않는 경우

    2. 속성값을 알 수 없는 경우

    3. 값이 존재하지만 값이 누락된 경우

    4. 값이 존재하는지 알 수 없어 모르는 경우

관계타입

: 엔티티 사이의 연관성을 표 현하는 개념 > 동사구로 관계 정의 / 엔티티 집합 사이의 대응-사상을 의미

관계 집합 : 한 관계 타입에 속하는 모든 관계 인스턴스

  1. 관계 유형

카디날리티 : 관계에 참여하는 하나의 엔티티에 대해 다른 엔티티가 몇 개 참여하는지 나타내는 것

> 관계 대응 엔티티 수 : 하나의 관계에 실제 참여 가능한 인스턴스의 수

(1) 일대일 (2) 일대다 (3) 다대다

  1. 카디날리티 비율의 최소값과 최대값

어떤 관계 타입에 참여하는 각 엔티티 타입에 대해

min은 이 엔티티 타입 내의 각 엔티티는 적어도 min번 관계에 참여함을 의미한다.

min = 0은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미한다

max는 이 엔티티 타입 내의 각 엔티티는 최대한 max번 관계에 참여함을 의미한다.

max = *는 어떤 엔티티가 관계에 임의의 수 만큼 참여할 수 있음을 의미한다.

(표)

엔티티의 키

키 속성 : 엔티티 인스턴스를 유일하게 식별하는 데 사용 : 중복 값을 갖지 않는 속성

> 타 엔티티와 구별할 수 있는 속성이며 키를 속성에 및줄을 그어 표현한다. (그림)

강한 엔티티 타입과 약한 엔티티 타입

강한 엔티티 타입 ( 정규 엔티티 타입 ) : 고유 엔티티들을 식별할 수 있는 엔티티 타입

강한 엔티티 = 독립 / 부모 엔티티

약한 엔티티 타입 : 자기 자신만의 속성만으로는 키를 명세할 수 없는 엔티티

약한 엔티티 = 종속 / 자식 엔티티

소유 엔티티 타입 ( 식별 엔티티 타입 ) : 소유엔타에 의해야만 약한 엔티티 타입이 식별 가능

구별자 ( 부분키 ) : 약한 엔티티 타입을 구별하기 위해 사용되는 이름은 단독으로 엔티티를 구분할 수 없음

구별자는 강한 엔티티와 연관된 약한 엔티티 집합 내에서만 서로 구별 가능

이중링크 : 부양가족 엔티티가 전체참여를 하고 있다는 것

​ > 약한 엔티티를 강한 엔티티에 연관시켜 엔티티를 유일하게 식별하게 하는 것

ISA 관계

상위 엔티티와 하위 엔티티 간의 관계

같은 속성을 갖는 여러 엔티티를 하나의 상위 엔티티로 결합할 수 있으며, 특정 엔티티는 서로 구별되는 여러 하위 엔티티로 나눌 수 있다.

03 논리적 데이터 모델 ( 데이터 모델링 )

: 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터 환경에 맞도록 변환하는 과정

  • 목적 : 정확한 업무 분석을 통한 자료의 흐름을 분석 후 실체와 속성의 관계를 구조적으로 설계

계층 데이터 모델

데이터를 저장하는 단위( Entity )의 구조가 상하종속적인 관계로 구성 /

일대다 ( 1 : N ) 대응 관계만 존재 > 레코드 삭제 시 연쇄삭제

레코드의 집합 : 세그먼트 ( 부모 / 자식 세그먼트 )

레코드 타입 ( 논리적 구조 ) : 트리 형태로 표현 > 엔티티가 트리를 구성하는 노드 역할

장점 : 데이터 액세스 속도가 빠르고 데이터 사용량을 쉽게 예측할 수 있다

단점 : 데이터 구조가 상하 종속적인 관계로 구성 > 변화하는 프로세서 수용 불가능

  • 관계의 유형

    - 속성 관계 : 세그먼트 (엔티티)를 구성하는 속성들의 관계

    - 엔티티 관계 : 엔티티와 엔티티 간의 관계를 링크로 표시

네트워크 데이터 모델

그래프를 이용해 데이터 논리구조를 표현

다대다 ( N : M ) 대응 관계를 만족하는 구조 > 오너와 멤버 관계로 표현

레코드 타입 : 도형적으로 표현 ( 그래프 형태 ) > 망 데이터 모델

단점 : 구성과 설계가 복잠함 / 계층형 데이터베이스 관리 시스템의 단점이었던 데이터 종속성 또한 해결 불가

관계 데이터 모델

: 계층 모델과 망 모델의 복잡한 구조를 단순화

일대일, 일대다, 다대다 관계를 자유로이 표현 가능

장점 : 변화하는 업무 프로세스를 쉽게 적용 가능 > 유지 보수의 용이, 생산성 향상 및 응용프로그램 개발 용이

​ 간결성, 보기 편리하고 구조가 간단하여 설계 및 관리가 편리, 다른 데이터베이스로의 변환이 편리

단점 : 많은 자원이 필요하기에 시스템 부하가 상대적으로 빈번함