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 | 31 |
Tags
- modebit
- 노출모듈패턴
- 함수형
- MVVM
- 처리량
- redis
- 링크계층
- nosql
- 럼바우
- M/M
- 스레싱
- 프록시패턴
- 다크모드
- 페이징 교체 알고리즘
- 요구사항 분석
- 3-way handshake
- 프로그래머스 데브코스
- MongoDB
- 다단계 큐
- 절차형
- PERT/CPM
- 개발 모델
- 관계형 데이터베이스
- 프로젝트 계확
- 선언형
- 지연시간
- CPU 스케줄링
- 메모리
- 인터넷계층
- 4-way handshake
Archives
- Today
- Total
노트
2 데이터 입출력 구현 - 2 본문
7. 관계 데이터베이스 모델
- 튜플(Tuple) or 레코드(Recode); 행(Row), 카디널리티(Cardinality) = 튜플의 수
- 속성(Attribute) or 필드(Field): 열(Column), 차수(Degree) = 속성의 수
- 도메인(Domain): 하나의 속성이 가질 수 있는 값의 범위
관계 대수 - 절차적: 원하는 데이터를 찾기 위한 처리 과정을 명시
- SELECT: 선택 - σ <조건> (테이블) -> 조건을 만족하는 튜플의 부분 집합
- PROJECT: 추출 - π <리스트> (테이블) -> 리스트에 제시된 속성 값만을 추출
- JOIN: 연관된 튜플 결합 - R ⋈ <조건> S -> 공통 속성을 중심으로 두 릴레이션을 하나로 합침
- DIVISIN: 관련있는 튜플 반환 - R ÷ S -> R에서 S 조건에 맞는 것만 분리
- ∪(Union), ∩(Intersection). -(Difference), ×(Cartersian Product)
관계 해석 - 비절차적: 원하는 정보가 무엇이라는 것만 정의
- ∨(OR), ∧(AND), ᄀ(NOT), ∀(For All): 모든 가능한 튜플, ∃(There Exists): 어떤 튜플 하나라도 존재
8. 키와 무결성 제약조건
구성 방식에 따른 키 분류
- Primary Key: 릴레이션에서 튜플을 유일하게 구분할 수 있는 속성
- Foreign Key): 다른 릴레이션과의 관계에서 참조하고 있는 속성
- 일반 속성: 릴레이션에 포함된 속성 중, PK와 FK가 아닌 속성
키 종류
- 후보키(Candidate Key): 튜플을 유일하게 식별할 수 있는 속성들의 부분집합, 유일성 + 최소성 만족
- 기본키(Primary Key): 후보키 중에서 선택한 Main Key, 중복되지 않은 고유한 값, NULL값 허용 X
- 대체키(Alternate Key): 후보키가 둘 이상을 때 키본키를 제외한 나머지 후보키
- 슈퍼키(Super Key): 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 모든 가능한 조합들, 유일성만 만족
- 외래키(Foreign Key): 관계를 맺고 있는 릴레이션 R1, R2에서 R1이 참조하고 있는 R2의 기본키와 같은 속성
데이터베이스 무결성
- 개체 무결성(Entity Integrity): 모든 릴레이션은 기본키(PK)를 가져야하며, 기본키를 구성하는 어떤 속성도 NULL 또는 중복값을 가징수 없음.
- 참조 무결성(Referntial Integrity): 외래키 값은 NULL이거나 참조하는 릴레이션의 기본키 값과 동일해야 함. 각 릴레이션은 참조할 수 없는 외래키 값을 가질수 없음.
9. 병행제어와 데이터전환
- 병행제어: 여러 트랜잭션이 동시에 실행되면서 DB의 일관성을 유지할 수 있게 하는 기법
- 목적: DB일관성 유지 - 무결성 지킴
문제점
- 갱신 분실(Loss Update): 두 개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
- 비완료 읜존성(Uncommitted Dependency), 현황 파악오류(Dirty Read): 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하느 현상
- 모순성(Inconsistency): 두 개의 트랜잭션이 병행 수행될 때 원치 않는 자료를 이용함으로써 발생, 갱신 분실과 비슷해보이지만 여러 데이터를 가져올 때 발생힘.
- 연쇄 복귀(Cascading Rollback): 병행 수행 된 트랜잭션 중 어느 하나에 문제가 생겨 Rollback하는 경우 다른 트랜잭션도 함께 Rollback 되는 현상
기법
- Locking: 트랜잭션이 데이터에 접근하조가 할 때 수행, 다른 사람이 변경하지 못하게 함으로써 무결성, 일관성 유지
- 낙관적 병행제어(Optimistic Concurrency Control): 어러 버전의 타임스탬프를 비교, 스케줄상 직렬 가능성이 보장되는 타임스탬프 선택
회복(Database Recovery)
트랜잭션을 수행하는 도중 장애로 인해 손상된 DB를 손상되기 이전의 정상적인 상태로 복구시키는 작업
- 트랜잭션 장애, 시스템 장애, 미디어 장애
Undo: 취소하여 복구 수행
Redo: 재실행하여 복구 수행
회복 기법
로그 기반 회복 기법
- 지연갱신 회복(Deferred Update): 커밋이 발생하기 전까지 DB에 기록 X 중간에 장애가 생기더라도 DB에 기록되지 않았으므로 Undo 사용 X
- 즉시갱신 회복(Immediate Update): 트랜잭션 수행 도중에도 변경 내용을 즉시 데이터베이스에 기록, 커밋 발생 이전의 갱신은 원자성이 보장되지 않은 미완료 갱신이므로 장애 발생시 Undo 필요
- 검사점 회복(Checkpoint): 장애 발생 시 검사점 이전에 처리된 트랜잭션은 회복에서 제외, 검사점 이후에 처리된 트랜잭션은 회복 작업 수행
- 그림자 페이징 회복(Shadow Paging): 수행 전 복사본을 가지고 장애가 발생하면 교체
- 미디어 회복(Media): 디스크와 같은 비휘발성 저장 장치가 손상되는 장애 발생을 대비
- ARIES(Algorithms form Recovery and Isolation Exploiting Semantics): 분석단계 - REDO 단계 - UNDO 단계
데이터 전환
ETL(Extraction, Transformation, Loading)
기존의 원천 시스템에서 데이터를 추출(Extraction)하여
목적 시스템의 DB에 적합한 형식과 내용으로 변환(Transformation) 후
목적 시스템에 적재(Loading) 하는 일련의 과정
'정보처리기사 정리' 카테고리의 다른 글
4 서버 프로그램 구현 (0) | 2024.04.17 |
---|---|
3 통합 구현 (0) | 2024.04.16 |
2 데이터 입출력 구현 (0) | 2024.04.16 |
소프트웨어 설계의 기본 원칙 (0) | 2024.04.15 |
요구사항 모델링 (0) | 2024.04.13 |