12. 논리 데이터 모델 검증

y55n·2022년 3월 24일
1

정보처리기사

목록 보기
12/50
post-custom-banner

수제비 2022 정보처리기사 실기 수험서를 보고 공부한 기록입니다.


[1. 논리 데이터 모델링 개념]

  • 논리적 데이터 모델링은 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스이다
  • 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델이다

[2. 논리적 데이터 모델링 종류]

관계 데이터 모델

  • 논리적 구조가 2차원 테이블 형태로 구성된 모델
  • 기본 키(PK)와 이를 참조하는 외래 키(FK)로 관계 표현
  • 1:1, 1:N, N:M 관계를 자유롭게 표현

계층 데이터 모델

  • 논리적 구조가 트리 형태로 구성된 모델
  • 상하관계 존재한다(부모 개체-자식 개체)
  • 1:N 관계만 허용

네트워크 데이터 모델

  • 논리적 구조가 그래프 형태로 구성된 모델
  • CODASYL DBTG 모델이라고 불림
  • 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조

[3. 관계 데이터 모델]

1. 관계 데이터 모델

①관계 데이터 모델(Relation Data Model) 개념

  • 관계 데이터 모델은 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델이다
  • 수학자 E.F.Codd 박사가 제안한 모델이다

②관계 데이터 모델의 구성

  • 릴레이션(Relation) : 행(Row)와 열(Column)로 구성된 테이블
  • 튜플(Tuple) : 릴레이션의 행(Row)에 해당되는 요소
  • 속성(Attribute) : 릴레이션의 열(Column)에 해당되는 요소
  • 카디널리티(Cardinality) : 튜플(Row)의 수
  • 차수(Degree) : 애트리뷰트(Column)의 수
  • 스키마(Schema) : 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
  • 인스턴스(Instance) : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

2. 관계 데이터 모델의 표현

  • 데이터 간의 관계를 기본 키와 이를 참조하는 외래 키로 표현한다
  • 테이블 간 관계를 1:1, 1:N, M:N 관계로 목적에 맞게 표현한다

3. 관계 대수

①관계 대수 개념

관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어이다

②관계 대수 연산자의 종류

▼일반 집합 연산자 : 수학의 집합 개념을 릴레이션에 적용한 연산자이다

연산자기호표현설명
합집합 (Union)R∪S합병 가능한 두 릴레이션의 R과 S의 합집합
교집합 (Intersection)R∩S릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성
차집합 (Difference)-R-SR에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성
카티션 프로덕트 (CARTESIAN Product)×R×SR과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성

순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자이다

연산자기호표현설명
셀렉트 (Select)σσ조건(R)릴레이션 R에서 조건을 만족하는 튜플 반환
프로젝트 (Project)ππ속성리스트(R)릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인 (Join)▷◁R▷◁S공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
디비전 (Division)÷R÷S릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환

4. 관계 해석

①관계 해석 개념

관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다

②관계 해석 특징

프레디킷 해석(Predicate Calculus)에 기반한 언어이며 비절차적 언어(원하는 정보가 무엇이라는 것만 선언)이다

[4. 논리 데이터 모델링 속성]

개체(Entity) : 관리할 대상이 되는 실체

속성(Attributes) : 관리할 정보의 구체적 항목

관계(Relationship) : 개체 간의 대응 관계

1. 개체(Entity)

  • 개체는 사물 또는 사건으로 정의되며 개체라고도 한다
  • 피터 챈 모델(Peter Chen Model)에서는 개체를 사각형(□)으로 표시한다
  • 까마귀발 모델(Crow's Foot Model)에서는 개체를 표 형식으로 표시한다

2. 속성(Attribute)

  • 속성은 개체가 가지고 있는 요소 또는 성질이다
  • 피터 챈 모델(Peter Chen Model)에서는 개체를 타원형(○)으로 표시한다
  • 까마귀발 모델(Crow's Foot Model)에서는 개체를 표 내부에 표시한다
  • 속성명은 단수형으로 명명한다
  • 개체명은 사용하지 않는다
  • 속성이 필수 사항(Not Null)인지, 필수 사항이 아닌지(Null) 고려하여 작성한다

3. 관계(Relationship)

  • 두 개체(Entity) 간의 관계를 정의한다
  • 피터 챈 모델(Peter Chen Model)에서는 개체를 마름모(◇)로 표시한다
  • 까마귀발 모델(Crow's Foot Model)에서는 속성을 다음과 같이 표시한다

[5. 개체-관계(E-R) 모델]

1. 개체-관계(E-R) 모델 개념

  • E-R 모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델이다
  • 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E-R 모델을 활용한다

2. 개체-관계(E-R) 다이어그램 기호

  • 개체: □ (사각형)
  • 관계: ◇ (마름모)
  • 속성: ○ (타원)
  • 다중 값 속성: ◎ (이중타원)
  • 관계-속성 연결: ─ (선)

[6. 정규화]

1. 정규화(Normalization)의 개념

  • 정규화는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다

2. 이상 현상(Anomaly)

  • 이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다
  • 삽입, 삭제, 갱신 이상이 있다
  • 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
  • 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

3. 정규화의 단계

  • 1정규형(1NF) : 원자값으로 구성
  • 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)
  • 3정규형(3NF) : 이행함수 종속 제거
  • 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF) : 다치(다중 값) 종속 제거
  • 5정규형(5NF) : 조인 종속 제거

[7. 반 정규화]

1. 반 정규화(De-Normalization) 개념

  • 반 정규화는 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다
  • 비정규화, 역정규화라고도 불린다

2. 반 정규화 특징

장점

  • 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가

단점

  • 데이터의 일관성 및 정합성 저하
  • 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음

반 정규화를 위해서는 데이터의 일관성과 무결성을 우선으로 할지 데이터베이스의 성능과 단순화에 우선순위를 둘 것인지를 비교하여 조정하는 과정이 중요하다

3. 반 정규화 기법

▼테이블

테이블 병합

  • 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상
  • 슈퍼타입/서브타입 테이블 통합 통해 성능 향상

테이블 분할

  • 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함
  • 수평 분할
    • 테이블 분할에 레코드를 기준으로 활용
  • 수직 분할
    • 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용
    • 갱신 위주의 속성 분할, 자주 조회되는 속성 분할, 크기가 큰 속성 분할, 보안을 적용해야 하는 속성 분할

중복 테이블 추가

  • 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등) 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가
  • 집계 테이블 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것으로, 트리거의 오버헤드에 유의 필요
  • 진행 테이블 추가 : 이력 관리 등의 목적으로 추가하는 테이블로, 적절한 데이터양의 유지와 활용도를 높이기 위해 기본키를 적절히 설정
  • 특정 부분만을 포함하는 테이블 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성

▼컬럼

컬럼 중복화 

  • 조인 성능 향상을 위한 중복 허용

▼관계

중복관계 추가

  • 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만, 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법
profile
나 혼자 공부 기록
post-custom-banner

0개의 댓글