DATABASE
-
데이터베이스에서 수행되는 작업의 단위인 트랜젝션(transaction)의 개요DATABASE 2018. 8. 28. 22:16
트랜젝션(Transaction)의 정의데이터베이스에서 Read 와 Write 의 연산을 한번에 수행하는 단위를 말함.데이터베이스에서 수행되는 작업의 논리적 단위를 말함. 트랜젝션의 특징 - ACID원자성(Atomicity) : All or Nothing일관성(Consistency) : 동일한 결과를 얻는다.고립성(Isolation) : 수행중인 트랜젝션에서 생성되는 연산 결과에 다른 트랜젝션이 접근 할 수 없다.영속성(Duration) : 성공으로 완료된 트랜젝션의 결과를 데이터베이스에 영구적으로 기록한다. 트랜젝션의 격리성트랜젝션의 격리 수준에 따라 바람직하지 않는 세 가지 읽기 연산이 발생할 수 있다. 현상설명dirty read- 아직 커밋되지 않는 변경값을 읽는 것 - 트랜젝션 A가 x 를 x' 로..
-
직렬화가능성(serializability)을 보장하기 위한 동시성 제어의 개요DATABASE 2018. 8. 25. 11:23
핵심키워드 : 동시성 제어, LDIC, 갱신내용손실, 현황파악오류, 모순성, 연쇄복귀불가동시성 제어(Concurrency Control)의 정의다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜젝션들이 동시에 성공적으로 실행할 수 있도록 지원하는 기능동시성 제어의 목적트랜젝션의 직렬성 보장데이터의 무결성 과 일관성 보장동시성 제어를 하지 않을 경우 문제점갱신내용손실(Lost Update)현황파악오류(Dirty Read)모순성(Inconsistency)연쇄복귀불가(Cascading Rollback)갱신내용손실(Lost Update)이전 트랜젝션이 데이터를 갱신한 후 트랜젝션을 종료하기 전 다른 트랜젝션에서 데이터를 갱신하는 경우에 발생Transaction1DATATransaction2Begin ..
-
데이터 무결성 보장을 위한 데이터 회복의 개요DATABASE 2018. 8. 25. 09:58
핵심키워드 : 데이터 회복, 회로체그, 지연갱신기법, 즉시갱신기법, 체크포인트 회복기법, 그림자페이지 회복기법데이터 회복의 정의데이터베이스를 장애 발생 이전의 일관된 상태로 복원하는 기법데이터 회복의 기본원칙요소개념데이터데이터의 중복Archive 또는 Dump다른 저장장치로 자료의 복사 또는 덤프 기록Log 또는 Journal데이터가 변경될때마다 변경 내용을 로그에 기록회복을 위한 조치구분개념REDO(Forward Recovery)장애발생시에 로그에 기록된 가장 최근의 변경 사항을 재실행하여 데이터베이스의 내용을 복원 Archive 사본 + Log = commit 후의 최종상태UNDO(Backword Recovery)장애발생시에 데이터베이스이 모든 변경사항을 취소하여 원래의 데이터베이스의 내용을 복원 L..
-
데이터 독립성DATABASE 2018. 8. 24. 09:43
가. 데이터 독립성의 정의하위단계의 데이터 구조가 변경되더라도 상위단계에 영향을 미치지 않는 속성을 말함.데이터의 독립석을 보장하기 위해 하위단계의 구현내용을 추상화하여, 상위단계에서 인지하지 못하도록 하는 것임.(3단계 데이터베이스 구조) 나. 3단계 데이터베이스 구조 기본 개념외부단계 : 사용자가 보는 DB 스키마로 StoredProcedure 및 Query(질의어)를 말함. 개념적단계 : 통합 모델링된 스키마. 즉, DB 테이블을 말함. 내부적단계 : 데이터가 물리적으로 저장된 형식 또는 컴퓨터 시스템을 말함.
-
오라클 DB 에서 트리거로, UPDATE CASCADE 흉내내기DATABASE 2016. 9. 18. 00:13
현재 서비스 중인 앱의 기능을 강화하기 위해 다른 회사와 제휴를 맺어 데이터를 정기적으로 받고 있는 것이 있습니다. 제휴사에서 제공한 DB 정의서에 따라 PK, FK 를 설정해서 개발중이었는데, 테스트를 하던중 중대한 문제가 발생하였습니다. PK 로 잡혀 있는 키 값이 제휴사 사정에 의해 변경된다는 것입니다. 이 값이 변경되면, FK 로 연결되어 있는 모든 테이블의 데이터가 변경되어야 하는데, 오라클은 UPDATE CASCADE 기능을 제공하지 않고 있어, 데이터 수정이 불가능 합니다. 이번만 그렇다면, 잠시 FK 제거하고 데이터 변경후 다시 FK 설정을 하면 되는데, 제휴사에서 종종(혹은 자주) 서비스 개선을 위한 작업의 일환(?)으로 변경될 수 있다고 합니다. 더군다나, 운영계 시스템에서는 DDL 에..
-
Apache Common DBCP removeAbandoned 옵션 설명DATABASE 2014. 10. 21. 22:37
참여하고 있는 프로젝트의 DB 성능 향상을 위한 회의에서 removeAbandoned 옵션에 대해 엔지니어간에 서로 다른 내용의 이야기를 하는 바람에 확인을 하느라 많은 시간이 소비 되었다. 이 옵션은 아파치의 Common DBCP 에서 제공하는 옵션으로 사이트에 잘 설명이 되어 있다. 혹시 또 이 이슈로 문제가 될까하여, 정리해 놓는다. removeAbandoned - default false. - Flag to remove abandoned connections if they exceed the removeAbandonedTimout. (removeAbadonedTimeout 에 지정된 시간이 지났을 때 버려진 연결을 제거한다.) - If set to true a connection is consid..