Cohe
3. 데이터 입출력 구현 본문
728x90
반응형
논리 데이터 저장소 확인
데이터 모델
1. 데이터 모델 개념
데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델입니다.
데이터 모델의 표시 요소
- 구조(Structure)
- 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
- 데이터 구조 및 정적 성질을 표현하는 요소
- 연산(Operation)
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 릴레이션을 조작하기 위한 관계 연산을 나타냄 (SELECT, PROJECT, JOIN, DIVISION)
- 제약 조건(Constraint)
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
- 데이터 무결성 유지를 위한 DB의 보편적 방법
- 릴레이션의 특정 칼럼에 설정하는 제약을 의미 (예: 개체 무결성, 참조 무결성 등)
2. 데이터 모델 절차
- 요구사항 분석
- 도출된 요구사항 간 상충을 해결하고 범위를 파악
- 외부 환경과의 상호작용을 분석을 통해 데이터에 대한 요구 분석
- 개념적 설계 (개념적 데이터 모델)
- 사용자의 요구에 대한 트랜잭션을 모델링하는 단계
- 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출
- 트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려
- DB 종류와 관계없음
- 주요 산출물: 개체관계 다이어그램
- 논리적 설계 (논리적 데이터 모델)
- 트랜잭션의 인터페이스를 설계하는 단계
- DBMS에 맞는 논리적 스키마를 설계
- 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현
- 테이블, 인덱스, 뷰, 파티션 등 객체를 생성
- 응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
- 성능 측면에서 반정규화를 수행
- 정규화 수행
- 논리적 데이터베이스 구조로 매핑
- 스키마의 평가 및 정제
- "관계 데이터 모델", "계층 데이터 모델", "네트워크 데이터 모델", "객체 지향 데이터 모델", "객체-관계 데이터 모델" 중 하나에 맞게 설계
- 관계형 데이터베이스에서는 테이블을 설계하는 단계
- 물리적 설계 (물리적 데이터 모델)
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환
논리 데이터 모델
1. 논리 데이터 모델링 개념
- 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
- 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
2. 논리적 데이터 모델링 종류
- 관계 데이터 모델
- 2차원 테이블 형태로 구성
- 기본 키(PK)와 외래 키(FK)로 관계 표현
- 계층 데이터 모델
- 트리 형태로 구성
- 1:N 관계만 허용
- 네트워크 데이터 모델
- 그래프 형태로 구성
- N:M 관계 만족 구조
3. 관계 데이터 모델
- 구성요소
- 릴레이션(Relation): 행과 열로 구성된 테이블
- 튜플(Tuple): 행(Row)
- 속성(Attribute): 열(Column)
- 카디널리티(Cardinality): 튜플의 수
- 차수(Degree): 애트리뷰트의 수
- 스키마(Schema): 데이터베이스의 구조, 제약 조건 등의 정보
- 인스턴스(Instance): 실제 저장된 데이터의 집합
- 관계 대수
- 절차적 정형 언어
- 연산자: 일반 집합 연산자, 순수 관계 연산자
- 관계 해석
- 비절차적 언어
- 튜플 관계 해석과 도메인 관계 해석
4. 논리 데이터 모델링 속성
- 개체(Entity)
- 속성(Attribute)
- 관계(Relationship)
5. 개체-관계(E-R) 모델
- 데이터와 그들 간의 관계를 명확하게 표현하는 모델
- 개체, 속성, 관계로 구성
6. 정규화
- 개념: 데이터의 중복성을 제거하여 이상 현상을 방지하는 과정
- 단계:
- 1NF: 원자값으로 구성
- 2NF: 부분 함수 종속 제거
- 3NF: 이행함수 종속 제거
- BCNF: 결정자가 후보 키가 아닌 함수 종속 제거
- 4NF: 다치 종속 제거
- 5NF: 조인 종속 제거
- 함수 종속
- 부분 함수 종속
- 완전 함수 종속
- 이행 함수 종속
7. 반정규화
- 개념: 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 기법
- 특징:
- 장점: 성능 향상, 관리 효율성 증가
- 단점: 데이터 일관성 및 정합성 저하, 유지 비용 발생
- 기법:
- 테이블 병합
- 테이블 분할 (수평/수직)
- 중복 테이블 추가
- 컬럼 중복화
- 중복 관계 추가
물리 데이터 저장소 설계
1. 물리 데이터 모델링 개념
- 논리 모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정
2. 물리 데이터 모델링 변환 절차
- 개체를 테이블로 변환
- 테이블과 개체 명칭을 동일하게 권고
- 개체는 한글명 사용
- 테이블은 가독성을 위해 영문명 사용
- 속성을 컬럼으로 변환
- 표준화된 약어 사용 권고
- SQL 예약어 사용 피해야 함
- 짧은 컬럼 명칭 권고
- 복합단어는 미리 정의된 표준에 따라 명명
- UID를 기본키로 변환
- 개체의 UID에 해당하는 모든 속성을 기본키로 선언
- Not Null, Unique 등의 제약 조건 추가 정의
- 관계에 의한 외래키가 기본키에 포함될 수 있음
- 관계를 외래키로 변환
- 외래키명은 기본키 이름을 그대로 사용 (다른 의미를 가질 경우 변경 가능)
- 순환 관계에서 자신의 기본키는 외래키로 정의
- 컬럼 유형과 길이 정의
- 적절한 유형 정의 및 데이터의 최대 길이 설정
- 주요 데이터 유형:
- CHAR: 최대 2000바이트의 고정길이 문자열
- VARCHAR2: 최대 4000바이트의 가변 길이 문자열
- NUMBER: 38 자릿수의 숫자
- DATE: 날짜 값
- BLOB, CLOB: 바이너리, 텍스트 데이터 (최대 4GB)
- 반정규화 수행
- 시스템 성능 향상과 개발 및 운영의 단순화를 위해 수행
- 주요 기법:
a. 테이블 조합- 1:1 관계 테이블 조합
- 1:M 관계 테이블 조합
- 슈퍼타입/서브타입 테이블 조합
b. 테이블 제거 - 테이블 재정의
- 접근하지 않는 테이블 제거
c. 컬럼 중복화 - 조인 성능 향상을 위한 중복 허용
d. 테이블 분할 - 수직 분할 / 수평 분할
e. 중복 테이블 추가 - 집계 테이블 추가
- 특정 부분만 포함하는 테이블 추가
물리 데이터 저장소 구성
1. 데이터베이스 무결성
1.1 개념
- 저장된 데이터 값과 현실 세계의 실제 값이 일치하는 성질
- DBMS의 중요한 기능으로, 데이터 연산에 제한을 두어 유지
1.2 종류
- 개체 무결성: 동일한 기본 키(PK) 불가, NULL 허용 안 됨
- 참조 무결성: 외래 키는 참조하는 개체의 기본 키값이나 NULL이어야 함
- 속성 무결성: 기본값, NULL 여부, 도메인 규칙 준수
- 사용자 정의 무결성: 사용자의 의미적 요구사항 준수
- 키 무결성: 같은 키값을 가진 튜플 허용 안 됨
2. 키
2.1 개념
- 튜플을 구별할 수 있는 기준이 되는 속성
2.2 특성
- 유일성: 모든 엔터티를 유일하게 구분
- 최소성: 최소한의 속성으로 구성
2.3 종류
- 기본 키: 각 튜플을 고유하게 식별하는 컬럼
- 대체 키: 후보 키 중 기본 키로 선택되지 않은 키
- 후보 키: 각 튜플을 구별하는 기준이 되는 컬럼
- 슈퍼 키: 기본 키와 대체 키를 합친 키
- 외래 키: 다른 릴레이션의 기본 키를 참조하는 키
3. 인덱스 설계
3.1 개념
- 검색 최적화를 위한 데이터 구조
3.2 적용 기준
- 인덱스 분포도 10-15% 이내
- 부분처리 목적
- 조회 및 출력 조건으로 사용되는 컬럼
- 기본키와 Unique 키의 제약 조건
3.3 컬럼 선정
- 분포도가 좋은 컬럼은 단독 생성
- 자주 조합되는 컬럼은 결합 인덱스로 생성
- 수정이 빈번하지 않은 컬럼 선정
4. 파티셔닝
4.1 개념
- 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법
4.2 유형
- 레인지 파티셔닝: 연속적인 숫자나 날짜 기준
- 해시 파티셔닝: 해시 함수 값 기준
- 리스트 파티셔닝: 특정 파티션에 대한 명시적 제어
- 컴포지트 파티셔닝: 2개 이상의 파티셔닝 결합
- 라운드로빈: 순차적으로 파티션에 할당
4.3 장점
- 성능 향상: 데이터 액세스 범위 감소
- 가용성 향상: 전체 데이터 훼손 가능성 감소
- 백업 가능: 분할 영역 독립적 백업 및 복구
- 경합 감소: 입출력 성능 향상, 디스크 컨트롤러 경합 감소
데이터베이스 개념 및 트렌드 요약
1. 데이터베이스 기본 개념
- 정의: 다수가 사용할 목적으로 통합 관리되는 데이터 집합
- 특성: 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조
- 종류:
- 파일 시스템
- 관계형 데이터베이스 관리시스템 (RDBMS)
- 계층형 데이터베이스 관리시스템 (HDBMS)
- 네트워크 데이터베이스 관리시스템 (NDBMS)
2. DBMS (Database Management System)
- 개념: 데이터 관리의 복잡성을 해결하고 다양한 기능을 지원하는 소프트웨어
- 유형:
- 키-값(Key-Value) DBMS
- 컬럼 기반 데이터 저장 DBMS
- 문서 저장(Document Store) DBMS
- 그래프(Graph) DBMS
- 특징: 데이터 무결성, 일관성, 회복성, 보안성, 효율성
3. 데이터베이스 기술 트렌드
3.1 빅데이터
- 개념: 기존 처리 범위를 넘어서는 대규모 비정형 데이터
- 특성: 데이터의 양, 다양성, 속도, 가치
- 기술: 수집, 저장, 처리, 분석, 시각화 기술
3.2 NoSQL
- 개념: 비관계형, 분산, 개방 소스 데이터베이스 시스템
- 특성: BASE (Basically Available, Soft-state, Eventually consistent)
- 유형: Key-Value Store, Column Family Data Store, Document Store, Graph Store
3.3 데이터 마이닝
- 개념: 대규모 데이터에서 패턴을 찾아내는 기술
- 절차: 목적 설정 → 데이터 준비 → 데이터 가공 → 마이닝 기법 적용
- 주요 기법: 분류 규칙, 연관 규칙, 연속 규칙, 데이터 군집화
728x90
반응형
'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글
5. 인터페이스 구현 (3) | 2024.10.05 |
---|---|
4. 통합 구현 (0) | 2024.10.05 |
2. 화면 설계 (1) | 2024.10.02 |
1-1 소프트웨어 개발방법론, 프로젝트 관리 (1) | 2024.09.30 |
오답 - 키워드 정리만 해놓음 (2) | 2024.09.29 |