이미지09
Life Story/자격증 공부

[ SQLD ] 1장 - 데이터 모델링의 이해 요약

반응형

 

 

데이터 모델링의 이해 요약

 

 

 

1. 데이터 모델의 이해

> 데이터 모델링 정의

    - 현실 세계의 데이터를 데이터 관점으로 업무 분석하는 기법

    - 데이터베이스를 구축하기 위한 분석 및 설계의 과정

 

> 데이터 모델링 특징

  1 ) 추상화

        - 현실을 일정한 형식에 맞춰 간략하게 표현

 

  2 ) 단순화

        - 누구나 이해하기 쉽게 표현

 

  3 ) 명확성

        - 애매모호함을 배제하고 명확하게 한 가지 의미를 갖도록 표현

 

> 데이터 모델링 유의점

  1 ) 중복

        - 데이터베이스가 여러 장소에 같은 정보를 저장하지 않도록 한다.

 

  2 ) 비유연성

        - 데이터 정의를 프로세스와 분리해 데이터 혹은 프로세스의 변화가 DB에 큰 변화를 일으킬 가능성울 줄여야 함.

 

  3 ) 비일관성

        - 데이터와 데이터간 연관 관계에 대해 명확하게 정의해야 한다.

 

> 데이터 모델링 단계

  1 ) 개념적 모델링

        - 추상화 수준이 높고 업무 중심적인 포괄적인 수준의 모델링

          엔티티와 속성을 도출하며 개념적 ERD를 작성하는 단계

 

  2 ) 논리적 모델링

        - Key, 속성, 관계 등을 정확히 표현하는 단계

          정규화를 통해 재사용성을 높인다.

 

  3 ) 물리적 모델링

        - 실제 데이터베이스에 적용할 수 있도록 성능, 저장 등 물리적인 성격의 설계 단계

 

> 데이터 모델링 관점

  1 ) 데이터 관점

        - 업무가 어떤 데이터와 관련이 있는지 또는, 데이터간의 관계는 무엇인지에 대해 모델링

 

  2 ) 프로세스 관점

        - 업무가 실제 하고 있는 일은 무엇인지 또는, 무엇을 해야하는지 모델링

 

  3 ) 데이터와 프로세스의 상관관점

        - 업무가 처리하는 일의 방법에 따라 데이터는 어떤 영향을 받고 있는지 모델링

 

> 스키마 구조 3단계

  1 ) 외부 스키마

        - 사용자 관점, 응용 프로그래머가 데이터베이스에 접근하는 View 를 표현

 

  2 ) 개념 스키마

        - 설계자 관점, 모든 통합 관점을 가지고 있으며 DB 규칙과 구조를 표현

 

  3 ) 내부 스키마

        - 개발자 관점, 물리적 저장장치 입장에서 본 데이터베이스 구조이며 레코드 구조, 인덱스 등을 표현

 

> 데이터 모델의 표기법인 ERD 의 순서

① 엔티티 도출(그린다)

② 엔티티 배치

③ 엔티티간 관계 설정

④ 관계명을 기술

⑤ 관계의 참여도를 기술

⑥ 관계의 필수여부를 기술

 

 

 

 

 

2. 엔티티

> 엔티티 정의

        - 업무에서 관리해야 하는 데이터 집합이며,

          이는 개념, 사건, 장소 등의 명사이기도 하다.

 

> 엔티티 특징

  1 ) 식별자

        - 유일한 식별자가 있어야 한다 ( ex : 주민등록번호 )

 

  2 ) 인스턴스 집합

        - 2 개 이상의 인스턴스가 있어야 한다.

 

  3 ) 속성

        - 반드시 속성을 가지고 있어야 한다 ( ex : 고객 엔티티면 이름, 주소 등 )

 

  4 ) 관계

        - 다른 엔티티와 최소 한 개 이상의 관계를 가져야 한다 ( ex : 고객은 계좌를 개설한다 )

 

  5 ) 업무

        - 반드시 업무에서 관리되어야 할 집합이어야 한다 ( ex : 고객, 계좌 )

 

> 엔티티 분류

  1 ) 유형과 무형에 따른 분류

        유형 엔티티

          - 업무에서 도출되는 지속적으로 사용되는 물리적 형태 엔티티 ( ex : 고객, 강사, 사원 )

 

        사건 엔티티

          - 업무를 수행함에 따라 생성되는 업무 관련 행위 형태의 엔티티, 각종 통계에 이용 가능 ( ex : 주문, 청구 )

 

        개념 엔티티

          - 오로지 개념적으로만 사용되는 엔티티 ( ex : 거래소 종목, 조직, 생명보험 상품 )

 

  2 ) 발생 시점에 따른 분류

        기본 엔티티

          - 키 엔티티, 불리우며 독립적으로 생산되는 엔티티를 말함 ( ex : 고객, 강사, 사원 )

 

        중심 엔티티

          - 메인 엔티티, 기본 엔티티로부터 발생되며 업무에서 중심 역할을 수행해 행위 엔티티를 생성 ( ex : 주문, 결제, 취소 )

 

        행위 엔티티

          - 두 개 이상의 엔티티로부터 발생되는 엔티티 ( ex : 주문목록, 결제목록 )

 

 

 

3. 속성

> 속성 정의

        - 엔티티가 가지는 항목이며 더 이상 분리되지 않는 데이터 단위

          엔티티는 속성들에 의해 설명되어 진다

 

> 속성의 분류

  1 ) 엔티티 구성에 따른 분류

        PK 속성

          - 엔티티를 식별할 수 있는 속성

 

        FK 속성

          - 다른 엔티티와의 관계에서 포함된 속성

 

        일반 속성

          - PK 속성, FK 속성에 포함되지 않은 속성

 

  2 ) 분해 여부에 따른 분류

        복합 속성

          - 여러 개의 의미를 지닌 속성 ( ex : 주소 속성은 시, 구, 동 등 세부 속성들로 구성 가능 )

 

        단일 속성

          - 오로지 하나의 의미를 지닌 속성이며 하나의 속성은 한 개의 값만을 가질 수 있다 ( ex : 나이, 성별 등 )

 

        다중값 속성

          - 하나의 속성에 여러 개의 값을 가지는 경우다. 이는 정규화를 거쳐 별도의 엔티티를 생성해 관계로 연결해야 함.

            ( ex : 한 사람이 두 개의 계좌를 가질 수 있음. 이는 고객과 계좌로 엔티티를 분리해야 함 )

 

  3 ) 특성에 따른 분류

        기본 속성

          - 업무로부터 추출한 모든 속성이며 엔티티의 속성 비율 중 가장 많은 비율을 차지한다.

 

        설계 속성

          - 업무상 필요하진 않지만 데이터 모델링을 위해 생성하거나 변형하여 정의하는 속성이다.

            이는 일련번호와 같은 유일 값을 가진다. ( ex : 상품코드 )

 

        파생 속성

          - 다른 속성의 영향을 받아 발생하는 속성이며 주로 집계등의 속성이 이에 해당 ( ex : 평균, 합계 )

 

 

 

4. 관계

> 관계의 정의

        엔티티 간의 관련성을 의미

 

> 관계의 유의점

        - 두 개의 엔티티 사이에 연관 규칙이 존재하는가?

          업무기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는가?

          업무기술서, 장표에 관계 연결 규칙이 서술되어 있는가?

          두 개의 엔티티 사이에서 정보의 조합이 발생하는가?

 

> 관계의 분류

  1 ) 존재에 의한 관계

        - 두 개의 엔티티가 존재 여부에 대한 관계가 이루어진 상태 ( ex : 부서와 사원은 소속이라는 존재 관계를 이룸 )

 

  2 ) 행위에 의한 관계

        - 두 개의 엔티티가 어떤 행위의 관련성에 대해 관계가 이루어진 상태 ( ex : 고객과 상점은 구매라는 행위 관계를 이룸 )

 

> 관계의 표기법

  1 ) 1대1 관계

        - A 엔티티와 B 엔티티는 서로가 속성 하나씩만을 가지는 관계

          ( ex : 하나의 고객은 하나의 주민등록번호를 가짐, 하나의 주민등록번호 또한 하나의 고객만을 가짐 )

 

  2 ) 1대N 관계

        - 하나의 A 엔티티는 B 엔티티의 속성 하나를 가질 수 있고 B 엔티티는 A 엔티티의 여러 속성을 가지는 관계 

           ( ex : 하나의 학생은 하나의 학과만을 가지지만, 하나의 학과는 여러 학생을 가질 수 있다 )

 

  3 ) N대N 관계

        - A 엔티티는 B 엔티티의 여러 속성을, B 엔티티는 A 엔티티의 여러 속성을 가질 수 있는 관계

          ( ex : 하나의 학생은 여러 은행의 통장을 가질 수 있고, 하나의 은행은 여러 고객을 가질 수 있다 )

 

 

 

5. 식별자

> 식별자 정의

        - 하나의 엔티티에 구성되어 있는 여러 속성 중에 엔티티를 대표할 수 있는 속성

          하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 함

          업무적으로 구분이 되는 정보이며 논리 데이터 모델링 단계에서 사용된다.

          (키는 데이터베이스 테이블에 접근을 위한 매개체로, 물리 데이터 모델링 단계에서 사용된다)

 

* 여기서 키를 간단히 분류하면

후보키 : 유일성과 최소성을 만족하는 키
슈퍼키 : 유일성은 만족하지만 최소성을 만족하지 못하는 키
대체키 : 후보키 중 기본키를 제외하고 남은 나머지 키
외래키 : 다른 테이블의 기본 키 필드를 가리키며 참조 무결성이 특징인 키

 

> 식별자 특징

  1 ) 유일성

        - 식별자에 의해 엔티티 내에 모든 인스턴스들은 유일하게 구분되어야 함

 

  2 ) 최소성

        - 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함

 

  3 ) 불변성

        - 식별자가 한 번 지정되면 그 식별자의 값은 변하지 않아야 함

 

  4 ) 존재성

        - 식별자가 지정되면 반드시 식별자의 값이 존재해야 함

 

> 식별자 분류

  1 ) 대표성 여부에 따른 분류

        주식별자

        - 유일성과 최소성을 만족하면서 엔티티를 대표하는 식별자이며 타 엔티티와 참조관계 연결 가능

 

        보조식별자

        - 유일성과 최소성을 만족하지만 엔티티를 대표하지 못해 타 엔티티와 참조관계 연결 불가능

 

  2 ) 스스로 생성여부에 따른 분류

        내부식별자

        - 엔티티 내부에서 스스로 만들어지는 식별자

 

        외부식별자

        - 타 엔티티와의 관계를 통해 타 엔티티로부터 받아오는 식별자

 

  3 ) 속성의 수에 따른 분류

        단일식별자

        - 하나의 속성으로 구성된 식별자

 

        복합식별자

        - 둘 이상의 속성으로 구성된 식별자

 

  4 ) 대체 여부에 따른 분류

        본질식별자

        - 업무에 의해 자연스레 만들어지는 식별자

 

        인조식별자

        - 업무에 의해 자연스레 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있어 인위적으로 만든 식별자

 

 

 

 

 

 

 

 

반응형