본문 바로가기

DATABASE

데이터베이스에서 수행되는 작업의 단위인 트랜젝션(transaction)의 개요 트랜젝션(Transaction)의 정의데이터베이스에서 Read 와 Write 의 연산을 한번에 수행하는 단위를 말함.데이터베이스에서 수행되는 작업의 논리적 단위를 말함. 트랜젝션의 특징 - ACID원자성(Atomicity) : All or Nothing일관성(Consistency) : 동일한 결과를 얻는다.고립성(Isolation) : 수행중인 트랜젝션에서 생성되는 연산 결과에 다른 트랜젝션이 접근 할 수 없다.영속성(Duration) : 성공으로 완료된 트랜젝션의 결과를 데이터베이스에 영구적으로 기록한다. 트랜젝션의 격리성트랜젝션의 격리 수준에 따라 바람직하지 않는 세 가지 읽기 연산이 발생할 수 있다. 현상설명dirty read- 아직 커밋되지 않는 변경값을 읽는 것 - 트랜젝션 A가 x 를 x' 로.. 더보기
직렬화가능성(serializability)을 보장하기 위한 동시성 제어의 개요 핵심키워드 : 동시성 제어, LDIC, 갱신내용손실, 현황파악오류, 모순성, 연쇄복귀불가동시성 제어(Concurrency Control)의 정의다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜젝션들이 동시에 성공적으로 실행할 수 있도록 지원하는 기능동시성 제어의 목적트랜젝션의 직렬성 보장데이터의 무결성 과 일관성 보장동시성 제어를 하지 않을 경우 문제점갱신내용손실(Lost Update)현황파악오류(Dirty Read)모순성(Inconsistency)연쇄복귀불가(Cascading Rollback)갱신내용손실(Lost Update)이전 트랜젝션이 데이터를 갱신한 후 트랜젝션을 종료하기 전 다른 트랜젝션에서 데이터를 갱신하는 경우에 발생Transaction1DATATransaction2Begin .. 더보기
데이터 무결성 보장을 위한 데이터 회복의 개요 핵심키워드 : 데이터 회복, 회로체그, 지연갱신기법, 즉시갱신기법, 체크포인트 회복기법, 그림자페이지 회복기법데이터 회복의 정의데이터베이스를 장애 발생 이전의 일관된 상태로 복원하는 기법데이터 회복의 기본원칙요소개념데이터데이터의 중복Archive 또는 Dump다른 저장장치로 자료의 복사 또는 덤프 기록Log 또는 Journal데이터가 변경될때마다 변경 내용을 로그에 기록회복을 위한 조치구분개념REDO(Forward Recovery)장애발생시에 로그에 기록된 가장 최근의 변경 사항을 재실행하여 데이터베이스의 내용을 복원 Archive 사본 + Log = commit 후의 최종상태UNDO(Backword Recovery)장애발생시에 데이터베이스이 모든 변경사항을 취소하여 원래의 데이터베이스의 내용을 복원 L.. 더보기
데이터 독립성 가. 데이터 독립성의 정의하위단계의 데이터 구조가 변경되더라도 상위단계에 영향을 미치지 않는 속성을 말함.데이터의 독립석을 보장하기 위해 하위단계의 구현내용을 추상화하여, 상위단계에서 인지하지 못하도록 하는 것임.(3단계 데이터베이스 구조) 나. 3단계 데이터베이스 구조 기본 개념외부단계 : 사용자가 보는 DB 스키마로 StoredProcedure 및 Query(질의어)를 말함. 개념적단계 : 통합 모델링된 스키마. 즉, DB 테이블을 말함. 내부적단계 : 데이터가 물리적으로 저장된 형식 또는 컴퓨터 시스템을 말함. 더보기
오라클 DB 에서 트리거로, UPDATE CASCADE 흉내내기 현재 서비스 중인 앱의 기능을 강화하기 위해 다른 회사와 제휴를 맺어 데이터를 정기적으로 받고 있는 것이 있습니다. 제휴사에서 제공한 DB 정의서에 따라 PK, FK 를 설정해서 개발중이었는데, 테스트를 하던중 중대한 문제가 발생하였습니다. PK 로 잡혀 있는 키 값이 제휴사 사정에 의해 변경된다는 것입니다. 이 값이 변경되면, FK 로 연결되어 있는 모든 테이블의 데이터가 변경되어야 하는데, 오라클은 UPDATE CASCADE 기능을 제공하지 않고 있어, 데이터 수정이 불가능 합니다. 이번만 그렇다면, 잠시 FK 제거하고 데이터 변경후 다시 FK 설정을 하면 되는데, 제휴사에서 종종(혹은 자주) 서비스 개선을 위한 작업의 일환(?)으로 변경될 수 있다고 합니다. 더군다나, 운영계 시스템에서는 DDL 에.. 더보기
Apache Common DBCP removeAbandoned 옵션 설명 참여하고 있는 프로젝트의 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.. 더보기
알티베이스에서 문자열 Bytes 로 자르기 알티베이스에서 문자열을 bytes 로 자르기 위해선 substrb 함수를 사용하면 된다. 이 함수는 아래와 같은 형식을 같는다. substrb('문자열', 시작위치, byte크기) substrb 함수를 사용할 경우 장점은 자르고자 하는 위치에 한글이 있어 bytes 가 걸칠 경우, 자를 수 있는 바로 앞자까지 자른 후 bytes에 맞춰 공백을 붙여주는 것이다. 즉, 한글에 대한 신경을 쓸 필요가 없이 결과값을 믿고 사용할 수 있다. 더보기