2021/09/17 8

트랜잭션_로킹 기법의 로크(LOCK) 단위_오버헤드, 동시성

▣ 트랜잭션_로킹 기법의 로크(LOCK) 단위_오버헤드, 동시성 - 로킹은 데이터베이스 병행 제어를 위해 트랜잭션(transaction)이 접근하고자 하는 데이터를 잠가(lock) 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법 로킹 단위가 크면 -> 로크의 수가 적어진다. -> 제어 기법이 간단해 진다. -> 병행성이 감소한다. 로킹 단위가 작으면 -> 로크의 수가 많아진다. -> 제어 하기 까다롭다. -> 병행성이 증가한다. 로킹 단위 로크의 수 병행 제어 로킹 오버헤드 병행성 수준 데이터베이스 공유도 (동시성 정도) 커짐 적어짐 단순 감소 감소 감소 작아짐 많아짐 복잡 증가 증가 증가 2018년 75번 정답 : 1번 Lock단위가 작아지면 로킹 오버헤드 증가하지만 데이터베이스 공유도(동시성)..

데이터베이스 2021.09.17

질의 최적화 기법_옵티마이저(Optimizer), CBO, RBO

▣ 질의 최적화 기법_옵티마이저(Optimizer) - 질의 최적화(Query Optimization)는 주어진 질의 처리 방식 중 가장 효율적인 실행계획(execution plan)을 선택하는 과정 - 실행계획 수립은 옵티마이저의 고유 기능으로 개발자가 직접 수정/편집할 수 없음 - 개발자는 SQL/INDEX 튜닝이나 HINT 사용을 통해 개선된 실행 계획을 옵티마이저에게 권고할 수 있음 구 분 CBO(Cost Based Optimizer) RBO(Rule Based Optimizer) 특징 - 실행계획을 미리 예측하기 힘들고, 실행계획을 특정한 처 리경로로 유도하는 등의 제어가 어려움 - 최적화된 결정을 위해 정기적으로 통계정보의 갱신 필요 - 통계정보를 사용하지 않고 SQL문 실행시 사전에 정의된 ..

데이터베이스 2021.09.17

동적 해싱 방법_확장성 해싱(extendible hashing), 해시, hash, 충돌 해결 기법, 버킷, 모조키

▣ 동적 해싱 방법_확장성 해싱(extendible hashing), 해시, hash, 충돌 해결 기법 동적 해싱에서 가장 많이 사용하는 방식으로 깊이가 2인 트리구조 - 동작 원리 : 사용할 수 있는 비트스트링을 모두 사용하지 않고 일부 비트스트링만 사용한 후 더 많은 버킷이 필요한 경우 비트스트링을 하나씩 추가 - 특징 : 버킷을 쪼개고 합치는 재구조화가 한 번에 하나의 버킷에서만 일어나므로 상대적으로 적은 오버헤드가 발생하며, 현재 필요치 않는 버킷을 절약할 수 있음 오버플로우 발생 시 버킷을 2개의 버킷으로 분할 주소테이블 (Address Table) 데이터 인덱스역할을 하며 버킷에 대한 주소 포인터를 저장 디렉터리 정수값 d(디렉터리 깊이, 전역 깊이 - global depth)를 포함하는 헤더..

데이터베이스 2021.09.17

데이터 웨어하우징(DW), 주제지향, 시계열, 비휘발성, 통합, 주시비통

▣ 데이터 웨어하우징(DW) 주제 지향적(Subject-Oriented) 조직에서 의사 결정에 필요한 특정 주제(subject)의 데이터만을 가지고 그 외의 데이터는 포함하지 않음 업무 중심이 아닌 특정 주제 지향적 시계열적(Time-Variant) 시간에 따라 변화된 데이터 정보를 저장 시점별 분석이 가능(주가, 환율정보 등) 비 휘발성(Non-Volitile), 비소멸적 데이터 입력 후 수정, 삭제가 허용되지 않고 읽기 전용으로 존재 갱신 없는 조회 전용 통합적(intergated) 다수의 서로 다른 기간 계 시스템의 데이터베이스로부터 추출 및 통합 필요한 데이터를 원하는 형태로 통합 암기 : 주시비통 2018년 71번 정답 : 3번 2011년 58번 정답 : 3번 2013년 57번 정답 : 1번 2..

데이터베이스 2021.09.17

경혐적(heuristic) 규칙 질의 최적화_질의 트리(query tree), 질의 그래프(query graph)

▣ 경혐적(heuristic) 규칙 질의 최적화_질의 트리(query tree), 질의 그래프(query graph) 구분 설 명 질의 트리 - 관계대수 혹은 확장된 관계대수식을 표현하는데 사용 - 질의트리의 구조 리프노드 : 질의의 입력 릴레이션들, 내부노드 : 관계대수 연산들 - 내부노드의 연산에 대해 피연산자가 사용 가능할 때마다 그 연산을 실행하고, 그 연산의 결과로 생성된 릴레이션 으로 그 내부노드를 대치한다. - 루트노드가 실행되어 질의에 대한 최종 결과 릴레이션이 생성되면 실행이 끝난다. - 각 질의는 여러 질의 트리로 표현 가능하다 질의그래프 - 관계해석식을 표현하는데 사용 - 질의그래프의 구조 릴레이션 노드 : 질의의 입력 릴레이션들 은 한겹 원으로 표시, 상수 노드 : 질의의 상수값들은..

데이터베이스 2021.09.17

Ajax(Asynchronous JavaScript and XML) 웹 개발 기법, RSS(Rich Site Summary), DOM(Document Object Model), SQL, XQUERY

▣ Ajax(Asynchronous JavaScript and XML) 웹 개발 기법, RSS(Rich Site Summary), DOM(Document Object Model), SQL, XQUERY 비동기적인 웹 애플리케이션의 구현을 위한 자바스크립트 요청/응답 처리 기법 기존의 웹 애플리케이션은 브라우저에서 폼을 채우고 이를 웹 서버로 제출(submit)을 하면 하나의 요청으로 웹 서버는 요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지를 작성하고 응답하는 방식으로 되돌려 줌 이때 최초에 폼을 가지고 있던 페이지와 사용자가 이 폼을 채워 결과물로서 되돌려 받은 페이지는 일반적으로 유사한 내용을 가지고 있는 경우가 많음. 결과적으로 중복되는 HTML 코드를 다시 한번 전송을 받음으로써 많은 대..

데이터베이스 2021.09.17

트리거(TRIGGER), 주장(ASSERTION), 인덱스, 메타데이터, 저장 프로시저

▣ 트리거(TRIGGER), 주장(ASSERTION) 1. 트리거(TRIGGER) 특정 릴레이션에 변경이 생길 경우 해당 이벤트 전/후에 특정 조건에 따라 조치 수행 (Event - Condition – Action) 명시된 사건(Event) 발생할 경우에만 수행(INSERT, UPDATE, DELETE 등)하며 조건을 확인하고 조건 충족 시, 전(BEFORE)이나 후(AFTER)에 조치 수행 [예시] CREATE TRIGGER salary_check BEFORE INSERT OR UPDATE OF salary, job_id ON employees FOR EACH ROW WHEN (new.job_id 'AD_VP') CALL check_sal(:new.job_id, :new.salary, :new.las..

데이터베이스 2021.09.17

함수종속, 정규화_무손실 조인 분해(lossless-Join decomposition)

▣ 함수종속, 정규화_무손실 조인 분해(lossless-Join decomposition) - 무손실 조인 분해는 하나의 릴레이션을 분해하고 다시 조인연산을 했을 때 데이터 손실이 없는 것을 뜻함 - R = (A, B, C)에서 R1 = (A, B), R2 = (B, C) 으로 분해 했을 때, R1 ∩ R2 가 R1 또는 R2 의 키이면 무손실 분해이다. R1 ∩ R2 ={B} 이고, B는 R2의 키 이므로 무손실 분해이다. - R = (A, B, C) F = {A → B, B → C)에서 R1 = (A, B), R2 = (B, C) 으로 분해 했을 때 무손실 분해이며, 종속성 보존이 된다. 구분 릴레이션 분해 무손실 분해 여부 분해 1 특강수강(학생번호, 특강이름, 교수) → R1(학생번호, 교수), ..

데이터베이스 2021.09.17