본문 바로가기

IT기술노트/데이터베이스69

동시성제어의 문제점 I. 동시성제어 문제점 가. 갱신내용 손실 구분 설명 발생시점 - 트랜잭션들이 동일 데이터를 동시에 갱신할 경우 발생 - 이전 트랜잭션이 데이터를 갱신한 후 트랜잭션을 종료하기 전에 나중 트랜잭션이 갱신 값을 덮어쓰는 경우 발생 예제 나. 현황파악 오류 구분 설명 발생시점 - 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조함으로써 발생하는 오류 예제 다. 모순성 구분 설명 문제점 - 두 트랜잭션이 동시에 실행할 때 DB가 일관성이 없는 모순된 상태로 남는 문제 발생시점 - 복수의 사용자가 동시에 DB를 Access 하여 갱신한 결과 DB내의 Data들이 상호 일치하지 않거나 출력된 정보에 모순이 나타나는 경우 예제 (예) A가 예약인원 추가에 대해서 예약금을 추가 입금하는 도중에 B도 예약인원 추가와 .. 2021. 3. 7.
동시성제어(Concurrency Control) I. 데이터베이스 무결성 확보를 위한, 동시성제어의 개요 가. 동시성제어(Concurrency Control)의 정의 - 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행 될 수 있도록 지원하는 기능 II. 동시성제어의 문제점 및 제어기법 가. 동시성제어의 문제점 문제점 설명 갱신내용 손실 (Lost Update) - 트랜잭션들이 동일 데이터를 동시에 갱신하는 경우 발생 - 이전 트랜잭션이 데이터를 갱신 후 종료 전 나중 트랜잭션이 갱신 값을 덮어쓰는 경우 오류 발생 현황파악 오류 (Dirty Read) - 트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로 발생하는 오류 모순성 (Inconsistency) - 두 트랜잭션이 동시에 실행할 때 DB가 일관성이 .. 2021. 3. 7.
Isolation Level I. ACID 속성 보장을 위한, Isolation Level의 개요 가. Isolation Level의 정의 - 트랜잭션 실행 중 중간 연산 결과가 다른 트랜잭션으로 접근 불가하도록 고립성을 유지하기 위한 데이터를 허용하는 수준 나. Isolation Level의 특징 특징 설명 ANSI/ISO SQL Standard - SQL 92 표준에서 4단계로 표준화, DBMS 벤더들이 준수 ACID 보장 - 트랜잭션의 속성인 ACID를 만족하기 위한 설정 Locking 기반 - 각각의 설정은 Locking 기술을 기반으로 Isolation Level을 조정 II. Isolation Level 4단계의 격리 범위와 읽기이상 현상 가. Isolation Level 4단계 수준 내용 Isolation Level 격.. 2021. 3. 7.
Phantom Read I. Phantom Read 정의 한 트랜잭션 내에서 같은 쿼리를 두 번 수행 시, 첫 번째 쿼리에서 없던 레코드(유령, Phantom)가 두 번째 쿼리에서 발생하는 현상 절차 절차 트랜잭션 데이터 예제 설명 ① Read Transaction B Read Transaction 은 총 N 개의 Record 를 Read ② Write (Insert) Transaction A Write Transaction 에 의해 기존 Record 에신규로 Insert 를 수행하여 Record Count 가 N+1 로 증가 ③ Read Transaction B Read Transaction 은 동일 Data 에 대해서 Read 를 재 수행 하였으나, 처음 읽었을 때보다 N+1 로 Record Count 증가 - 이 외에 R.. 2021. 3. 7.
Dirty Read I. Dirty Read 정의 변경 후 아직 commit 되지 않은 값을 읽고, Rollback 된 후의 값을 다시 읽어 최종 결과 값이 상이한 현상 절차 절차 트랜잭션 데이터 예제 설명 ① Write Transaction B S = 200 Write Transaction 이 공유 Data 의 value 를 Update 하고 아직 Commit 이 되지 않아서 Cache 에만 반영되고, Disk 는 미 반영 상태 ② Read Transaction A S = 200 Read Transaction 은 아직 commit 되지 않은 Dirty Page 의 Data 를 Read ③ Rollback Transaction B S = 100 Write 한 Transaction 이 어떠한 이유로 Rollback 되어 Da.. 2021. 3. 7.
정적, 동적 인덱싱 I. 정적, 동적 인덱싱의 개요 구분 정적 인덱싱 동적 인덱싱 개념 - 데이터 파일에 레코드가 삽입되거나 삭제됨에 따라 인덱스의 내용은 변하지만 인덱스 구조는 변경되지 않게 하는 기법 - 인덱스와 데이터 파일을 블록으로 구성하고 각 블록에는 나중에 레코드가 삽입될 것을 감안하여 빈 공간을 준비하는 기법 특징 - 데이터 파일에 새로운 레코드를 저장할 공간이 없으면 오버플로우 영역 사용 - 하나의 블록이 가득 차게 되면 동적으로 분열 구성도 오버플로우 처리 - 오버플로우가 발생하면 오버플로우 영역에 체인으로 연결 - 오버플로우가 발생하면 데이터 블록을 분할하고 인덱스 수정 장점 - 보조기억장치의 물리적 특성에 맞추어 구성하므로 효율적인 액세스 가능 - 오버플로우 체인을 사용하지 않으므로 보다 효율적으로 레코.. 2021. 3. 7.
Dense, Sparse, Multilevel Index I. Dense, Sparse, Multilevel Index의 개요 가. Sorting이 되어 있다는 가정하에 적용 가능 나. Dense Index (밀집 인덱스) - 인덱스 레코드는 파일에 있는 모든 Search Key값에 대해 Index 구성 - 인덱스 레코드는 Search Key값과 그 Search Key값의 첫번째 데이터 레코드에 대한 포인터 포함 - 같은 Search Key를 가진 나머지 레코드들은 첫번째 레코드 이후부터 연속적 저장 - 레코드 위치를 정할 때는 희소 인덱스보다 빠름 다. Sparse Index (희소 인덱스) - 인덱스 레코드는 Search Key 값에 대해 몇 개만 나타냄 - 레코드를 위치 시키기 위해 찾고자 하는 검색 값보다 작거나 동일한 것 중 가장 큰 Search Ke.. 2021. 3. 7.
DB Index I. DB Index의 개요 가. DB Index의 정의 - 검색 연산을 최적화하기 위해 탐색 키 값과 탐색 키 값을 가지는 데이터의 위치 정보로 구성되어 있는 데이터 구조 나. DB Index의 목적 - 성능향상, 독립성, 알고리즘, Trade-off II. Index의 구조 및 구성요소 가. Index의 구조 나. Index의 구성요소 구성요소 내용 Leaf Block - 테이블의 각 레코드에 대한 인덱스 정보를 가지고 있는 Block Block Header - 인덱스 컬럼의 구간 값과 인덱스 바의 물리적인 위치 정보 Branched Block - Leaf Block과 Root Block 중간에서 Block간 정보에 대한 다리 역할 Block내 인덱스 바 - 각 인덱스 간에 구분을 해주는 인덱스 헤더.. 2021. 3. 7.
데이터베이스 보안 I. 기업 정보자산의 기밀성, 무결성, 가용성 확보전략 데이터베이스 보안의 개요 가. 데이터베이스 보안의 정의 - 저장된 데이터에 대한 인증, 기밀성, 무결성, 가용성을 유지하기 위한 관리적, 물리적, 기술적 활동 나. 데이터베이스 보안의 필요성 - 기업 정보의 가치 중요성 증대, 정보시스템 보안 위협 증가, 데이터베이스 보안 미비, 실수 방지 II. 데이터베이스 보안의 개념도 및 보안 방안 가. 데이터베이스 보안 개념도 - 보안의 목적) 권한이 없는 사용자를 제어하여 정보의 불법적인 접근, 고의적인 파괴 및 변경을 방지하고 우발적인 사고로부터 보호 나. 데이터베이스 보안 방안 구분 주요내용 접근통제(Access Control) - 허가 받지 않는 사용자의 DB 자체에 대한 접근을 방지, 예) 계정&암호.. 2021. 3. 7.
CBO, RBO I. CBO, RBO의 개요 가. CBO(Cost Based Optimizer)의 설명 항목 설명 개념 - 처리방법들에 대한 비용을 산정해보고 가장 적은 비용이 들어가는 처리 방법을 선택 특징 - 현실을 감안한 판단, 통계 정보의 관리를 통한 최적화 제어, 옵티마이저를 깊이 이해하고 있지 않더라도 최소 성능 보장, 실행 계획을 미리 예측, 제어가 어려움 원리 - 여러 가지 경우의 처리 시간에 비례한 비용을 산출해 내고, 이들 비용에서 가장 작은 비용을 갖는 플랜을 결정 - 실행 계획에 대한 소요 시간을 구하기 위해서 데이터 분포도 및 테이블, 인덱스와 클러스터의 저장 공간의 특징 등의 통계 정보를 이용하여 비용을 계산하여 선택하는 방법 - 특정 실행계획을 통한 SQL 명령문을 실행하는데 필요한 메모리, .. 2021. 3. 7.
반응형