독학사/데이터베이스

    검증 기법

    평가영역 상세 평가영역 없음 검증 기법 read연산은 사실 트랜잭션간의 충돌이 발생할 확률이 낮다. 그런데 이런 연산에서조차 동시성 제어를 하면 자원낭비가 심해진다. 그렇다고 다른 방법을 쓰면 미리 충돌하는 트랜잭션을 알수없다. 따라서, 시스템을 감시하는 기법(검증 기법)이 필요하다. 검증 단계 판독 단계: 모든 write연산은 DB를 바로갱신하지 않고 지역변수에 저장한다. 검증 단계: 지역변수에 있는값을 DB에 넣을수 있는지 검증한다. 기록 단계: 가능하면 실제 DB에 값을 기록한다.

    타임스탬프 순서 기법

    평가영역 상세 평가영역 없음 타임스탬프 데이터베이스 시스템으로 입력된 복수의 트랜잭션에 대하여 입력된 시간에따라 타임스탬프를부여하는 기법으로아래의 두가지 방법이 있다. 시스템 시계의 값을 타임스탬프로 사용 새로운 타임스탬프가 할당된 후에 증가하는 계수기(counter)를 사용 또한 read와 write 트랜잭션을 다르게 관리하기위해(read인지 write인지에 따라 동시성제어가 달라지므로) 아래와 같은 2개의 값을 이용한다. R-타임스탬프(Q): read(Q)를 성공적으로 실행한 트랜잭션중에서 가장 큰 타임스탬프 W-타임스탬프(Q): write(Q)를 성공적으로 실행한 트랜잭션중에서 가장 큰 타임스탬프 이들은 새로운 read(Q)와 write(Q) 명령을 실행할 때마다 갱신한다. 중요한것은 빠른 타임스탬..

    로킹

    평가영역 상세 평가영역 없음 로킹 트랜잭션의 동시 접근 문제 발생을 막기위해 모든 트랜잭션은 서로 간섭이 없어야 하고 순차적으로 실행해야 한다. 이를 위한 방법으로 로킹이 있다. 읽기 로킹 = 데이터를 읽는 동안 실행되는 로킹. 다른 트랜잭션도 해당 데이터를 읽을 수 있다. 공유 로킹이라고도 한다. 쓰기 로킹 = 데이터를 갱신하는 동안 실행되는 로킹. 다른 트랜잭션은 해당 데이터를 사용할 수 없다. 배타적 로킹이라고도 한다. 교착상태 로킹은 바람직하지 않은 상황을 만들 수 있는데, 이미 베타로크를 소유하고 있는 데이터에 대해 공유 로크를 요청하는 등두개의 트랜잭션 모두 실행할 수 없는 상태가 될 수 있는데, 이를 교착상태(deadlock)라고 한다.

    트랜잭션과 직렬화

    평가영역 트랜잭션과 직렬화 트랜잭션 직렬화 검사 트랜잭션 직렬화 트랜잭션의 기본 속성 중 하나인 고립성을 지키기 위해 동시에 여러개의 트랜잭션이 발생할 때 순서를 제어하는것을 동시성 제어라고 부른다. 트랜잭션 직렬화 검사 동시에 들어온 트랜잭션들이 모두 read 또는 write일 경우에는 문제가 되지 않는다. 그러나 동시에 들어온 트랜잭션이 read와 write일 경우 write가 완료되기 전 실행된 read는 갱신된 값을 볼 수 없다. 이를 충돌이라고 한다.

    트랜잭션

    트랜잭션

    평가영역 트랜잭션의 개념 트랜잭션의 상태와 전이 트랜잭션의 개념 데이터베이스에서 데이터의 활용을 분석하기 위한 기본 단위. 연속된 일련의 기능을 수행하는 작업 단위로서, 업무 처리의 기본단위가 된다. 쿼리 날리는거 ACID 원자성(atomicity) = 트랜잭션은 중간에 끊기면 안되고 포함된 연산을 전부 실행하거나 아예 취소를 해야한다. 일관성(consistency) = 트랜잭션 후에도 DB상태는 무결성이 유지되고 모순되어서는 안된다. 고립성(isolation) = 트랜잭션이 실행되는 중간에는 어떤것도 침범하지 못한다. 실행중인 트랜잭션의 결과는 사용할 수 없다. 영속성(durability)= 트랜잭션에 의해 변화된 상태는 계속해서 유지되어야 한다. 트랜잭션의 상태와 전이 상태 부분완료: 트랜잭션이 마지..

    정규형간의 관계

    정규형간의 관계

    평가영역 상세 평가영역 없음 각 정규형들은 단계가 높아질수록 제약조건이 강해진다. 비정규화 정규화에 의해 너무 많은 테이블로 나누었을때 조인해야하는 경우가 많아지면 수행속도의 저하가 발생할 수 있다. 이를 방지하기 위해 테이블들이 합쳐지도록 설계하는것을 비정규화 라고 한다.

    진보된 정규형

    평가영역 다중치 종속과 제4정규형 제5정규형 다중치 종속과 제4정규형 다치종속을 제거예) 과목 교수 교재 물리학 A c 물리학 A d 물리학 B c 물리학 B d 이런식으로 중복되는 데이터들이 많아져서 낭비가 심해지고 이상이 발생할 수 있다. 과목 교수 물리학 A 물리학 B 과목 교재 물리학 c 물리학 d 다음과 같이 무손실 분해하여 제4정규화를 성립한다. 제5정규형 조인 종속을 제거 릴레이션에 존재하는 모든 조인 종속이 후보키를 통해서만 성립 보통 3정규화 까지만 작업을 하고 4,5 정규화는 강력한 제약조건때문에 잘 안쓴다고한다.실제로 생각해보면 실무에서 사용하는 테이블들은 이렇게까지 쪼개져있지 않다.

    기본 정규형

    평가영역 제1정규형 제2정규형 제3정규형 BCNF(Boyce-Codd 정규형) 정규화의 예 기본 정규형의 정리 정규형 순서 (도-부-이-결-다-조) 제1정규형 = 도메인이 원자값 제2정규형 = 부분 함수종속 제거 제3정규형 = 이행적 함수종속 제거 BCNF = 결정자가 후보키가 함수종속 제거 제4정규형 = 함수종속이 아닌 다치종속 제거 제5정규형 = 후보키를 통하지 않은 함수적 종속 제거 모든 정규형은 이전 정규형을 만족한다. (예: 제2정규형은 제1정규형을 만족하면서 부분 함수종속도 제거됨) 제1정규형 하나의 컬럼 안에 값이 여러개 있는경우를 제거 제2정규형 부분적 함수적 종속을 제거 예) (강좌번호, 수강자)가 기본키일때 "학점" 컬럼은 기본키에 완전 함수적 종속이지만(강좌번호와 수강자 모두 있어야 ..

    정규화를 위한 릴레이션 분해조건

    평가영역 무손실 분해 (함수적) 종속관계 보존 무손실 분해 릴레이션은 의미적으로 동등한 릴레이션들로 분해되어야 하며 분해로 인한 정보 손실이 발생해서는 안된다. 분해완료 된 릴레이션을 pk기준으로 자연조인하면 이전의 릴레이션으로 복원 가능해야 한다. (함수적)종속관계 보존 몰?루 함수적 종속과 정규화 1. 함수적 종속 1) 함수적 종속이란? - 어떤 릴레이션에서 X와 Y를 각각 속성의 부분집합이라고 할 때, X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 kimcoder.tistory.com 함수적 종속에 따른 규칙들을 말하는건가...

    함수적 종속성

    함수적 종속성

    평가영역 상세 평가영역 없음 함수적 종속성 함수적 종속성은 A -> B 와같이 나타낼 수 있다. 이때 B는 A에 종속된다고 말하며 A를 결정자, B를 종속자라 한다. 상기 예에서 학년과 이름은 (학번, 과목번호)에 대해 부분 함수 종속이고, 성적은 완전 함수 종속이다.