2장 데이터 입출력 구현
2021. 4. 28. 10:16ㆍ자격증/정보처리기사 실기
제2장 데이터 입출력 구현
1.데이터저장소
(1) 논리 데이터 모델링
분석 → (설계 → 개념 → 논리→물리) → 구현
- 사용자들의 요구 사항을 분석하여 DB에 저장될 정보를 파악하고, 필요한 정보들 간의 연관 관계를 모형화하는 과정이다.
- 데이터 모델링 절차
- 요구 조건 분석
- 사용자가 원하는 데이터베이스의 용도를 파악하는 것
- 사용자의 요구 조건을 수집하여 분석하고 정형적인 요구 조건 명세를 만든다.
- 개념적 모델링(h/w 독립적)
- 요구사항을 이해하기 쉬운 형식으로 간단히 기술
- 개념 스키마 모델링과 트랜잭션 모델링을 병행적으로 수행(스키마=구조)
- 개념 스키마 모델링:데이터의 조직과 표현을 중심으로 한 데이터 중심 설계
- 트랜잭션 모델링(처리*흐름 중심 설계) : 응용을 위한 데이터 처리에 주안점을 둔 처리 중심 설계
- 논리적 모델링(h/w 독립적)
- 개념적 설계에서 만들어진 구조를 구현 가능한 data 모델로 변환하는 단계
- 목표하는 DBMS가 구현되어 있는 환경과 특성까지는 고려하지 않고 해당 DBMS가 지원하는 데이터 모델에 적합하게 변환한다. 즉 DBMS에 종속적이다.
- 앞 단계에서 만들어진 정보 구조로부터 목표 DBMS가 처리할 수 있는 스키마를 생성한다. 이 스키마는 요구 조건 명세를 만족해야되고, 무결성과 일관성 제약 조건도 만족하여야한다.
- 물리적 모델링(DBMS H/W 종속적)
- 논리적 데이터베이스 구조를 내부 저장 장치 구조와 접근 경로 등을 설계
- 물리적 데이터베이스의 기본적인 데이터 단위는 저장레코드 이다.
- 파일이 동일한 타입의 저장 레코드 집합이라면, 물리적 데이터베이스는 여러 가지 타입의 저장 레코드 집합이라는 면에서 단순한 파일과 다르다.
- 물리적 데이터베이스 구조는 데이터베이스에 포함될 여러 파일 타입에 대한 저장 레코드의 양식, 순서, 접근 경로, 저장 공간의 할당 등을 기술한다.
- 데이터베이스 구현
- 논리적 데이터 독립성 :DB의 논리적 구조의 변화와 대해 응용프로그램들이 영향을 받지 않는 능력을 말한다. 논리적 구조 바뀜→ 응용프로그램 변화X 그러나 응용프로그램변화→ 논리적구조변화X 안됨
- 3단계 스키마
- 스키마란 데이터베이스의 구조(개체, 속성, 관계)에 대한 정의와 이에 대한 제약 조건 등을 기술한 것으로 컴파일 되어 데이터 사전에 저장한다.→ 시스템 카탈로그 = 데이터사전 = 메타데이터의 모음
- 어떤 입장에서 데이터베이스를 보느냐에 따라 스키마는 다르게 될 수 밖에 없다.(ANSI/SPARC 3 Level Architecture - 외부스키마, 개념스키마, 내부스키마)
- 가장 바깥 쪽 스키마로, 전체 데이터 중 사용자가 사용하는 한 부분에서 본 구조 (사용자가 무엇을 사용하느냐에 따라 다름) - 서브스키마, 뷰 라고도 함. 사용자의 관점
- 사용자 개개인이 보는 자료에 대한 관점과 관련
- 사용자 논리 단계(user logical level)
- 논리적 관점에서 본 구조로 전체적인 데이터 구조(일반적으로 스키마라 불림)
- 범 기관적 입장에서 데이터베이스를 정의 (기관 전체의 견해) 전사적
- 조직 논리 단계(community logical level)
- 모든 데이터 개체, 관계, 제약조건, 접근권한, 무결성 규칙, 보안정책 등을 명세
- 물리적 저장장치 관점에서 전체 데이터베이스가 저장되는 방법 명세
- 실제로 저장되는 내부 레코드 형식, 저장 데이터 항목의 표현 방법, 인덱스 유무, 내부 레코드의 물리적 순서를 나타냄.
(2)논리 데이터저장소
- 논리 데이터 모델링과 관련하여 데이터 구조로 만들어진 데이터 저장소이다.
- 데이터베이스의 논리적 구성속성(attribute):개체의 특성이나 상태를 기술하는 것이다.(단독으로 존재하기는 어렵다)
- 관계(relationship):개체간 또는 속성간의 상호 작용
- 개체(entity):표현하려는 유형, 무형 정보의 대상으로 존재하면서 서로 구별이 되는 것으로, 하나 이상의 속성으로 구성된다.
2.정규화☆☆
(1)정규화의 개념
- 개념
- 이상 문제를 해결하기 위해 어트리뷰트 간의 종속관계를 분석하여 여러개의 릴레이션으로 분해하는 과정.
- 릴레이션의 애트리뷰트, 엔티티, 관계성을 파악하여 데이터의 중복성을 최소화하는 과정
- 논리적 설계 단계에서 수행
- 정규화를 통해 릴레이션을 분해하면 일반적으로 연산시간이 증가한다.(성능저하가능)
- 정규화 과정은 주어진 릴레이션 변수들의 모임을 더 바람직한 어떤 형태로 점차 유도해 가는 과정으로 특징지을 수 있다. 이 과정은 가역적(reversible)이다.
- 목적
- 데이터베이스 연산의 여러 가지 이상을 없애기 위함이다.
- 데이터베이스의 물리적 구조나 물리적 처리에 영향을 주는 것이 아니라, 논리적 처리 및 품질에 큰 영향을 미친다.
- 이상(anomaly)
- 어트리뷰트간에 존재하는 여러 종속관계를 하나의 릴레이션에 포함함으로 인해 발생하는 현상.(삽입이상, 삭제이상, 갱신이상)
- 삽입이상: 원하지 않는 정보를 강제 삽입해야 하는 경우와 불필요한 데이터가 함께 삽입되는 경우이다.
- 삭제이상:튜플을 삭제함으로써 유지되어야 하는 정보까지도 연쇄 삭제(triggered delete)되는 정보의 손실(loss of information)을 삭제이상이라한다.
- 갱신 이상: 중복된 튜플 중에서 일부의 attribute만 갱신시킴으로써 정보의 모순성(inconsistency)이 생기는 현상이다.
- 스키마 변환의 원리
- 정보의 무손실 표현
- 데이터 중복성 감소
- 분리의 원칙
- 종속성 보존(원래있던 종속은 그대로 이상현상유발 종속성제거)
- 함수적 종속(functional dependency)
- 어떤 릴레이션에서 속성들의 부분집합을 X,Y라 할 떄, 임의 튜플에서 X의 값이 Y의 값을 함수적으로 결정한다면, Y가 X에 함수적으로 종속되었다고 하고, 기호는 X→Y로 표기한다.
- 함수 종속 다이어그램(FD diagram)
(2)정규화 체계
- 제1정규형(NF)
- 모든 정규화 릴레이션은 제 1정규형에 속한다.
- address와 같은 복합속성(composite attribute)은 원자적 도메인이 아니다.
- 어떤 릴레이션 R에 속한 모든 도메인이 원자값(atomic value)만으로 되어있다면, 제 1 정규형(1NF)에 속한다.
- 제 2정규형(2NF)
- 1NF이면서 2NF가 아닌 릴레이션은 프로젝션을 하여 의미상으로 동등한 두 개의 2NF로 분해할 수 있고, 자연조인(natural join)을 통해 아무런 정보손실 없이 원래의 릴레이션으로 복귀가 가능하다.
- 2NF에서는 함수종속 관계 A→B, B→C이면 A→C가 성립하는 이행적 함수종속이 존재한다. 이는 이상현상의 원인이 된다.
- 어떤 릴레이션 R이 1NF이고 키(기본)에 속하지 않은 애트리뷰트는 모든 기본키의 완전함수종속이면, 제 2 정규형(2NF)에 속한다.
- 제 3정규형(3NF)
- 어떤 릴레이션이 R이 2NF이고 키(기본)에 속하지 않은 모든 애트리뷰트들이 기본키에 이행적 함수종속이 아닐 때 제 3 정규형(3NF)에 속한다.
- 보이스/코드 정규형(BCNF)BCNF는 1NF, 2NF, 기본키, 이행 종속 등의 개념을 이용하지 않고 정의될 수 있기 때문에 개념적으로는 3NF보다 간단하다.
- BCNF는 제3NF보다 강력하다고 볼 수 있고 그래서 이 BCNF를 "강한 제 3 정규형(Strong 3NF)"이라고도 한다.
- 릴레이션 R의 모든 결정자(deteminant)가 후보키(candidate key)이면 릴레이션 R은 보이스/코드 정규형(BCNF)에 속한다.
- 제 4정규형(4NF)
- 릴레이션 R에 MVD A→>B 가 존재할 때 R의 모든 애트리뷰트들도 또한 A에 함수종속(즉, R의 모든 애트리뷰트 X에 대해 A→X 이고 A가 후보키)이면 릴레이션 R은 제 4정규형에 속한다.
- 제 5정규형(5NF)
- 릴레이션 R에 존재하는 모든 조인 종속이 릴레이션 R의 후보키를 통해서만 성립된다면 릴레이션 R은 제 5 정규형에 속한다.
[정규화 과정]
(3)반정규화(De-Normaliztion)=비정규화
- 반정규화의 정의
- 정규화되어 있는 것을 정규화 이전 상태로 만드는 것을 말한다.(성능 상승)
- 많은 조인에 의해 성능이 저하되거나 데이터 조회시 디스크 I/O량이 많을 떄 부분적인 반정규화를 고려한다.
- 반정규화 절차
- 반정규화 대상조사
- 반정규화 대상을 다른 방법으로 처리 유도 할 수 있는지 검토
- 반정규화 적용
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
스크럼 기법 (0) | 2022.04.04 |
---|---|
소프트웨어 생명주기 (0) | 2022.04.04 |
4장 서버프로그램 구현 (0) | 2021.04.28 |
3장 통합 구현 (0) | 2021.04.28 |
1장 요구사항확인 (0) | 2021.04.10 |