자격증/정보처리기사 실기
[데이터입출력구현] 1. 논리 데이터 저장소 확인
염두리안
2023. 9. 5. 17:49
728x90
반응형
키워드 |
데이터모델 / 개념적, 논리적, 물리적 데이터 모델 / 관계대수 / 정규화 / 반정규화 / 이상현상 / 함수종속 |
데이터 모델 (★★★)
- 개념 - 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화해 표현한 모델 / 표시해야 할 요소는 논리적 데이터 구조, 연산, 제약 조건
- 연산) DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세 / 릴레이션을 조작하기 위한 관계 연산을 나타냄(SELECT, PROJECT, JOIN, DIVISION)
- 구조) DB에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계 / 데이터 구조 및 정적 성질을 표현하는 요소
- 제약 조건) DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 / 데이터 무결성 유지를 위한 DB의 보편적 방법 / 릴레이션의 특정 칼럼에 설정하는 제약을 의미(개체/참조 무결성 등)
- 데이터 모델 절차
- 요구사항 분석) 도출된 요구사항 간 상충을 해결하고 범위를 파악해 외부 환경과의 상호 작용을 분석을 통해 데이터에 대한 요구 분석
- 개념적 데이터 모델) 사용자 요구에 대한 트랜잭션을 모델링 하는 단계 / 현실 세계에 대한 인식을 추상적/개념적으로 표현해 개념적 구조 도출하는 데이터 모델
- 트랜잭션 모델링, View 통합방법, Attribute 합성 고려 / 이 모델은 DB 종류와 관계 X / 주요 산출물 - 개체관계 다이어그램
- 논리적 데이터 모델) 트랜잭션의 인터페이스 설계하는 단계 / DBMS에 맞는 논리적 스키마 설계 단계 / 업무의 모습을 모델링 표기법으로 형상화해 사람이 이해하기 쉽게 표현한 데이터 모델
- 정규화 수행 / 논리적 DB구조로 매핑 / 스키마 평가, 정제 / 관계 or 계층 데이터 or 네트워크 or 객체지향 or 객체-관계 중 하나 모델에 맞게 설계 / 테이블을 설계하는 단
- 물리적 데이터 모델) 논리적 데이터 모델을 특정 DBMS 특성, 성능을 고려해 물리적인 스키마를 만드는 단계 / 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려해 DB 저장 구조(물리데이터모델)로 변환하는 모델
- 테이블, 인덱스, 뷰, 파티션 등 객체 생성 / 응답시간, 저장 공간의 효율화, 트랜잭션 처리 고려해 설계 / 성능 측면에서 반정규화 수행 / 레코드 집중의 분석 및 설계 / 저장 레코드 양식 설계 / 접근 경로 설계
논리 데이터 모델 검증 (★★★)
- 개념 - 업무의 모습을 모델링 표기법으로 형상화해 사람이 이해하기 쉽게 표현하는 프로세스 / 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
- 종류
- 관계 데이터 모델) 2차원 테이블 형태 / 기본키와 외래키로 관계 표현 / 1:1, 1:N, N:M 관계를 자유롭게 표현
- 계층 데이터 모델) 트리 형태로 구성된 모델 / 상하관계 존재(부모-자식) / 1:N 만 허용
- 네트워크 데이터 모델) 그래프 형태로 구성된 모델 / CODASYL DBTG 모델이라고 불림 / 상위 하위 레코드 사이에 다대다 관계 만족하는 구조
![]() |
![]() |
![]() |
- 관계 데이터 모델) 행/열로 구성된 2차원 테이블 형태
- 구성) 릴레이션(테이블) / 튜플(행) / 속성(열) / 카디널리티(튜플수) / 차수(어트리뷰트 수) / 스키마(DB의 구조, 제약 조건 등 정보를 담고 있는 기본적인 구조) / 인스턴스(정의된 스키마에 따라 생성된 테이블에 저장된 데이터의 집합)
- 관계대수) 절차적 정형 언어
- 일반 집합 연산자) 합집합(Union, ∪) / 교집합(Intersection, ∩) / 차집합(Difference, -) / 카티션 프로덕트(CARTESIAN Product, X)
- 순수 관계 연산자) 셀렉트(Select, σ) / 프로젝트(Project, π) / 조인(Join, ⋈) / 디비젼(Division, ÷)
- 관계해석) 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어 / 튜플 관계 해석, 도메인 관계 해석
- 논리 데이터 모델링 속성) 개체(Entity) / 속성(Attributes) / 관계(Relationship)
- 개체-관계(E-R) 모델) 가장 널리 사용
- 기호
구성 | 기호 |
개체 집합 | □ |
관계 집합 | ◇ |
속성 | ○ |
다중값 속성 | ◎ |
개체 집합-관계 집합 연결 | - (실선) |
개체 집합-속성 연결 | - (실선) |
관계 집합-속성 연결 | --- (점선) |
- 정규화) 관계형 데이터 모델에서 데이터의 중복성을 제거해 이상 현상을 방지하고, 데이터 일관성&정확성 유지하기 위해 무손실 분해하는 과정
- 이상 현상) 데이터 중복성으로 인해 릴레이션 조작 시 발생하는 비합리적 현상
- 삽입 이상) 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
- 삭제 이상) 삭제 시 원치 않는 다른 정보가 같이 삭제
- 갱신 이상) 중복 데이터 중, 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
- 정규화 단계 (자세한 설명은 141~146 보기 >_0)
- 1정규형(1NF) : 원자값으로 구성
- 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 단계)
- 3정규형(3NF) : 이행함수 종속 제거
- 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
- 4정규형(4NF) : 다치(다중 값) 종속 제거
- 5정규형(5NF) : 조인 종속 제거
- 함수 종속) 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건 / X → Y 일 때, X는 결정자 Y는 종속자
- 부분 함수 종속) 릴레이션에서 기본 키가 복합 키일 경우 기본 키를 구성하는 속성 중 일부에게 종속된 경우
- 완전 함수 종속) 릴레이션에서 X → Y 관계가 있을 때, Y는 X의 전체 속성에 대해종속하고, 부분 집합 속성에 종속하지 않는 경우
- 이행 함수 종속) 릴레이션에서 X→Y, Y→Z 종속 관계가 있을 때, X → Z 가 성립하는 경우
- 반 정규화) 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법... 비정규화, 역정규화라고도 함
- 장) 성능 향상, 관리 효율성 증가
- 단) 데이터 일관성/정합성 저하, 유지 비용 별도 발생해 성능에 나쁜 영향 줄 수 있음
- => 데이터의 일관성/무결성을 우선으로 할지, DB 성능/단순화에 우선순위를 둘 것인지 비교해서 조정하는 게 중요
- 기법
- 이상 현상) 데이터 중복성으로 인해 릴레이션 조작 시 발생하는 비합리적 현상
구분 | 수행방법 | 설명 |
테이블 | 테이블 병합 | 1:1, 1:M 관계를 통합해 조인 횟수를 줄여 성능 향상 |
테이블 분할 | 테이블을 수직/수평으로 분할하는 것을 파티셔닝이라 함. | |
중복 테이블 추가 | 대량 데이터에 대한 집계함수를 사용해 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블 추가 | |
컬럼 | 컬럼 중복화 | 조인 성능 향상을 위한 중복 허용 |
관계 | 중복관계 추가 | 데이터 처리 위한 여러 경로를 거쳐 조인 가능하지만. 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법 |
- 테이블분할
- 수평 분할) 테이블 분할에 레코드 기준으로 활용
- 수직 분할) 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용 / 갱신 위주의 속성 분할, 자주 조회되는 속성 분할, 크기가 큰 속성 분할, 보안 적용해야할 때
- 중복 테이블 추가
- 집계 테이블 추가) 집계 데이터 위한 테이블 생성, 각 원본 테이블에 트리거를 설정해 사용하는 것... 트리거의 오버헤드에 유의 필요
- 진행 테이블 추가) 이력 관리 등의 목적으로 추가하는 테이블... 적절한 데이터양의 유지와 활용도 높이기 위해 기본키 적절히 설정
- 특정 부분만을 포함하는 테이블 추가) 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블 생성
728x90
반응형