데이터베이스
-
[데이터베이스] RowID 분석, INDEX, Binary Search Tree공부/데이터베이스 2022. 12. 23. 15:04
■ RowID 분석 SELECT rowid, id, name FROM test; 위 코드를 실행하여보자 ID 10번의 RowID의 세부내용을 해석하자면 아래의 표와 같다. 6자리(객체의 주소) 3자리(Relative File Addr) 6자리(Block ID) 3자리(RowID) AAAFU8 AAE AAAAHE AAA ■ Index 명칭 설명 INDEX Key Value + RowID ■ Binary Search Tree(이진 탐색 트리) 명칭 설명 Binary Search Tree 중위순회 방식 사용 왼쪽 서브 트리 -> 노드 -> 오른쪽 서브 트리 순으로 순회 만약 3번 Key Value가 사라진다고하여도 RowID는 삭제되지 않고 그대로 남아있는다. 이는 언제든지 다른 값이 들어와 대체 될 수 있기..
-
[데이터베이스] DEAD Lock(교착 상태)공부/데이터베이스 2022. 12. 22. 21:12
■ DEADLock(교착 상태) 명칭 설명 DEAD LOCK Lock의 가장 치명적인 상태 Lock을 써서 DEAD Lock이 발생 ■ DeadLock Detection(교착 상태 탐지) 교착 상태 탐지를 하지 않으면 DEAD LOCK이 발생할 수도 있다. 교착 상태를 예방하기 위해서는 2가지의 알고리즘이 필요하다. 교착 상태가 발생했는지 확인하는 알고리즘 교착 상태에서 회복하는 알고리즘 DeadLock Detection은 기본적으로 DeadLock이 일어난 후에 복구 방법이다. 교착 상태 탐지에는 방식이 2가지가 존재한다. 명칭 설명 DEAD LOCK DETECTION 인스턴스 하나를 가진 시스템 두 개 이상의 인스턴스를 가진 시스템 ■ Wait For Graph(대기 그래프) 명칭 설명 Wait Fo..
-
[데이터베이스] Integrity(무결성), Concurrency(동시성), Consistency(일관성)공부/데이터베이스 2022. 12. 22. 20:38
■ Integrity(무결성) 명칭 설명 데이터의 무결성 정확성, 일관성, 유효성이 유지되는 것 데이터베이스 관리시스템(DBMS)의 주요 기능 ■ 무결성 제약조건 명칭 설명 개체 무결성(Entity integrity) 기본키는 Null 값을 가질 수 없다. 참조 무결성(Referential integrity) 외래키는 참조할 수 없는 값을 가질 수 없다. 도메인 무결성(Domain integrity) 필드의 타입, Null 값 허용 등에 대한 것을 정의한다. Null무결성(Null integrity) 테이블의 특정 속성 값은 Null을 가질 수 없다. 고유 무결성 (Unique integrity) 테이블의 특정 속성에 레코드는 서로 값이 달라야 한다. 키 무결성 (Key integrity) 하나의 테이블..
-
[데이터베이스] 동기화 확인 방법공부/데이터베이스 2022. 12. 22. 14:26
■ 동기화 확인 방법 Controll File, Data File, RedoLog File을 확인하여 SCN을 확인하여 3개의 파일의 SCN이 동일하다면 동기화가 완료되었다는 것이다. RedoLog File에 SCN이 동일하지 않다면 Archive RedoLog File을 찾아본다. ■ System Commit Number(SCN) 명칭 설명 System Commit Number(SCN) COMMIT이 발생하면 이를 처리하던 트랜잭션은 고유 번호(SCN)를 받는다. 트랜잭션들을 관리(읽기 일관성)할 수 있다. 장애 발생 시 복구의 키가 될 수 있다. Control File, DataFile, RedoLog File에 기록된 SCN을 비교하면 복구 위치를 알 수 있다. ■ LRU List 명칭 설명 LRU..
-
[데이터베이스] Oracle 서버 기동 단계(Shoutdown, Nomount, Mount, Open)공부/데이터베이스 2022. 12. 21. 21:47
■ Oracle 서버 기동 단계 상태 설명 Shutdown Database, Instance를 중지한 상태 Nomount Parameter File을 읽고 Instance를 시작 Control File 재창조 Database 생성 Mount Istance, Database *맵핑 생성된 Istance를 사용할 Database로 연결 Open 정상적으로 Oracle 서버를 서비스할 수 있는 단계 모든 파일의 존재를 확인 Control File, Data File, RedoLog File이 동기화 되어있지 않으면 오류 반환 *맵핑 : 하나의 값을 다른 값으로 대응시키는 것 ■ Archive Log Mode 명칭 설명 Archive Log Mode RedoLog File을 Archive Log File에 저장..
-
[데이터베이스] Segment Header, FreeList, BitMap, HighWaterMark(HWM)공부/데이터베이스 2022. 12. 21. 21:15
■ Segment Header 명칭 설명 Segment Header SEGMENT ID, BITMAP or FREELIST, HWM이 존재한다. ■ FreeList 0 0 ~ 39% 1 40% 이상 FreeList는 0~39%이면 0 40% 이상이면 1로 표기한다. FreeList가 1일 때 40%만큼의 공간만 차지한다고 하더라도 추가할 수 없다. ■ BitMap 00 0 ~ 25% 01 26 ~ 50% 10 51 ~ 75% 11 76 ~ 100% 위와 같이 정의했다고 가정해보자 DATABASE BLOCK 1K 00 01 10 11 1 2 3 4 1번 블록은 0~25%, 2번 블록은 26~50%, 3번 블록은 51~75%, 4번 블록은 76~100%가 채워져있다는 소리이다. 만약 1번 블록에 이미 100..
-
[데이터베이스] CHAR, VARCHAR2공부/데이터베이스 2022. 12. 21. 17:11
■ CHAR 명칭 설명 CHAR 고정적 CHAR(100)을 설정하고 50byte만 사용하더라도 항상 100byte를 차지한다. ■ VARCHAR2 명칭 설명 VARCHAR2 가변적 VARCHAR2(100)으로 설정하고 50byte만 사용하였다면 남은 50byte를 다음 컬럼으로 넘겨준다. 디스크를 1K로 만들면 작업을 위한 프리 스페이스(엑스트라 스페이스)가 10% 여유 공간으로 만들어진다. 50byte를 이미 사용하고 있는데 Update, Insert 등으로 설정한 100byte가 넘게되었으면 프리스페이스에서 블록체인으로 연결되어 작업을 하게된다. 만약에 Update나 Insert를 통해 수정이나 삽입을 할 때 프리스페이스 공간보다 크면 Migration 현상이 일어나게 된다. ■ VARCHAR2 - ..
-
[데이터베이스] Oracle 저장 구조 Extent, Segment공부/데이터베이스 2022. 12. 21. 14:16
■ 오라클 저장 구조 명칭 설명 Extent 연속적으로 있는 Block을 묶어 둔 것을 의미하는 논리적 단위 하나의 데이터 파일에 여러 개의 테이블이 존재할 수 있다. 테이블 별로 Block의 구역을 나누어 저장하여 검색범위를 줄이기 위해 Extent를 사용 Segment Extent를 여러 개 묶어 둔 것을 의미하는 논리적 단위 Oracle Object 중 독자적인 저장 공간을 가지는 것들 Table, Index, Undo, Temp 등이 있다. 세그먼트 블록에 첫번째 Extent블록을 세그먼트 헤드 블록이라고 한다.