Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 처리량
- 노출모듈패턴
- redis
- M/M
- MVVM
- 함수형
- 절차형
- CPU 스케줄링
- nosql
- 링크계층
- 럼바우
- 요구사항 분석
- 프록시패턴
- 개발 모델
- 관계형 데이터베이스
- 프로젝트 계확
- 스레싱
- PERT/CPM
- 다크모드
- 4-way handshake
- 페이징 교체 알고리즘
- MongoDB
- 다단계 큐
- 지연시간
- 프로그래머스 데브코스
- 메모리
- 3-way handshake
- modebit
- 인터넷계층
- 선언형
Archives
- Today
- Total
노트
2 데이터 입출력 구현 본문
1. 데이터 베이스 개념
데이터베이스 정의
- 공유 데이터: 여러 응용 프로그램들이 공동으로 사용하는 데이터
- 저장 데이터: 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터
- 통합 데이터: 검색의 효율성을 위해 중복이 초소화된 데이터의 모임
- 운영 데이터: 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터
데이터 언어
- 정의어 DDL(Definition): DB의 구축과 변경 목적으로 사용, 데이터 형식, 구조, 제약조건 명시
- 조작어 DML(Manipulation): 검색, 삽입, 삭제, 갱신 연산을 포함한 집합
- 제어어 DCL(Control): 데이터 무경성(Integrity), 보안(Security), 권한(Authority) 검사, 병행 제어(Concurrency Control)
3계층 스키마
스키마(Schema): 데이터 사전(Data Dictionary)에 저장
1. 외부(External) 스키마: 사용자 뷰
| <-- 논리적 독립성
2. 개념(Conceptual) 스키마: DB의 전체적인 논리적 구조
| <-- 물리적 독립성
3. 내부(Internal) 스키마: 물리적 저장장치 입장에서 본 DB 구조
데이터 독립성
- 논리적 독립성: 개념 스키마가 변경되어도 외부스키마에는 영향을 미치지 않도록 지원
- 물리적 독립성: 내부 스키마가 변경되어도 외부/개념 스키마가 영향받지 않도록 지원
2. 데이터베이스 설계 순서
- 요구조건 분석
- 개념적 설계: 현실세계를 데이터 관점으로 추상화하여 개념적 스키마 설계, 트랜잭션 모델링, E-R 모델
- 논리적 설계: 데이터를 컴퓨터가 이해할 수 있도록 논리적 스키마 설계, 트랜잭션 인터페이스 설계, 정규화
- 물리적 설계: 물리적 구조의 데이터로 변환 물리적 스키마 생성, 트랜잭션 세부 설계, 반정규화
- 구현: DDL로 데이터베이스 생성, 트랜잭션 작성
3. 데이터 모델링
현실세계의 요소를 인간과 컴퓨터가 이해할 수 있는 정보로 표현한 것
데이터 모델 표시해야 할 요소
- 구조(Structure)
- 연산(Operation)
- 제약조건(Contraint)
개체 관계 모델
E-R 다이어그램
사각형 | 개체(Entity) |
마름모 | 관계(Relationship) |
타원 | 속성(Attribute) |
밑줄 타원 | 기본키 속성 |
이중 타원 | 복합 속성, 다중값 |
데이터 모델의 품질 기준
- 정확성: 요구사항 정확 반영
- 완전성: 정의할 때 누락 최소화, 반영에 누락 없음
- 준거성: 제반 준수 요건이 누락 없이 정확히 준수
- 최신성: 최신 상태 반영, 이슈 사항 지체 없이 반영
- 일관성: 여러 곳에서 참조, 활용 일관성 유지
- 활용성: 유연하게 설계
4. 논리 데이터베이스 설계
정규화
- 데이터의 중복 최소화
- 정보의 무손실
- 독립적인 관계는 별개의 릴레이션으로 표현
- 정보의 검색을 보다 용이
- 이상 현상 최소화
장점
- 중복을 최소화하여 저장 공간의 효율적 사용
- 이상현상 제거
단점
- 처리 명령의 복잡
- 실행 속도 저하
- 분리된 릴레이션 간 참조 무결성 유지를 위한 노력 필요
- 분리된 여러 개의 테이블에서 정보를 취합하기 위해 JOIN 연산 필요
이상현상
데이터 중복으로 인해 예상치 못한 현상이 발생하는 것
- 삽입이상
- 삭제이상
- 갱신이상
함수적 종속(Functional Dependency)
X -> Y : X를 알면 Y를 알 수 있다.
- 완전 함수적 종속
- 부분 함수적 종속
- 이행적 함수 종속
정규화 과정
비정규 릴레이션
| 도메인이 원자값
1NF
| 부분 함수적 종속 제거
2NF
| 이행적 함수 종속 제거
3NF
| 결정자이면서 후보키가 아닌 것 제거
BCNF
| 다치 종속 제거
4NF
| 조인 종속성 이용
5NF
5. 물리 데이터베이스 설계
물리 데이터베이스 설계 시 고려사항
- 무결성, 일관성, 회복성, 효율성, 확장성
반정규화
- 시스템의 성능향상을 위해 정규화에 위배되는 중복을 허용하는 기법
- 관리 효율성은 증가할 수 있으나 데이터의 일관성 및 정합성이 저하될 수 있음.
트랜잭션
데이터베이스의 상태를 변화시키는 논리적 기능을 수행하기 위한 작업의 단위 또한 연산
- 원자성(Atomicity): 트랜잭션이 DB에 모두 반영되도록 완료(Commit) 또는 전혀 반영되지 않도록 복구(Rollback)
- 일관성(Consistency): 트랜잭션이 성공적으로 완료하면 일관성 있는 DB 상태로 변환
- 독립성(Isolation): 트랜잭션 실행 중 다른 트랜잭션 연산이 끼어들 수 없음.
- 영속성(Durability): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영
인덱스(Index): 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
뷰(View): 실제로 데이터를 저장하지 않고 논리적으로만 존재하는 가상 테이블
RTO/RPO
- RTO(Recovery Time Objective) 목표 복구 시간: 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요시간
- RPO(Recovery Point Objective) 목표 복구 시점: 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미
'정보처리기사 정리' 카테고리의 다른 글
3 통합 구현 (0) | 2024.04.16 |
---|---|
2 데이터 입출력 구현 - 2 (0) | 2024.04.16 |
소프트웨어 설계의 기본 원칙 (0) | 2024.04.15 |
요구사항 모델링 (0) | 2024.04.13 |
요구사항 분석 (0) | 2024.04.12 |