Database
SQL 테이블의 중앙값을 찾는법
테이블의 중앙값 구하기 student_id(학생 ID) weight(체중 kg) A100 50 A101 55 A124 55 B343 60 B346 72 B378 72 C563 72 C345 72 1. 집합 지향적 방법 테이블을 상위 집합과 하위 집합으로 분할하고 그 공통부분을 검색하는 방법 SELECT AVG(weight) FROM (SELECT W1.weight FROM Weights W1, Weights W2 GROUP BY W1.weight HAVING SUM(CASE WHEN W2.weight >= W1.weight THEN 1 ELSE 0 END) >= COUNT (*) / 2 AND SUM(CASE WHEN W2.weight = COUNT (*) TMP ) CASE 식에 표현한 두 개의 함수 ..
트랜잭션 매커니즘 - redo, undo, log,
트랜잭션 매커니즘 데이터베이스 시스템은 보통 비휘발성 저장 장치인 디스크에 데이터를 저장하며 전체 데이터베이스의 일부분을 메인 메모리에 유지한다. DBMS는 데이터를 고정 길이의 페이지(page)로 저장하며, 디스크에서 읽거나 쓸 때에 페이지 단위로 입출력이 이루어진다. 메인 메모리에 유지하는 페이지들을 관리하는 모듈을 보통 페이지 버퍼(page buffer) 관리자 또는 버퍼 관리자라고 부르는데, DBMS의 많은 주요 모듈 중에서 매우 중요한 모듈 중의 하나이다. DBMS는 각 제품마다 구조가 다르기는 하지만, 크게 질의 처리기(Query Processor)와 저장 시스템(Storage System)으로 나눠볼 수 있다. 아직 완료되지 않은 트랜잭션이 수정한 페이지들도 디스크에 출력될 수 있으므로, 페..
동시성 제어, 동시성 이슈
동시성 제어란 동시성 제어(Concurrency Control)란 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 동시에 실행되는 여러 트랜잭션간의 간섭으로 문제가 발생하지 않도록 트랜잭션의 실행순서를 제어하는 기법 다중 사용자 환경을 지원하는 DB system의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 한다. 동시성 제어(concurrency control)는 가능한 빠른 조회와 동시에 병행되는 동작의 정확한 결과가 발생하는 것을 보증한다. 동시성 제어는 데이터베이스에서 발생하는 작업의 동시 실행을 제어하는 데 필요한 관리 절차. 그러나 동시성 제어에 대해 알기 전에 동시 실행(Conccurent Execution에 대해 알아야 한다. Concurrent Execution in DBMS..