트랜잭션(Transaction)이란? 트랜잭션이란, 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션의 특징 1. 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 3. 하나의 트랜잭션은 Commit되거나 Rollback 된다. 트랜잭션의 상태 1. 활동(Active) : 트랜잭션이 수행되기 시작하여 현재 수행중인 상태 2. 실패(Failed) : 하드웨어나 소프트웨어의 문제, 트랜잭션 내부의 오류 등 여러 이유로 인하여 트랜잭션 수행이 중단된 상태 3. 철회(Aborted) : 트랜잭션을 ..
정규화(Normalization)란? 정규화란, 하나의 릴레이션(Relation)에 하나의 의미만 존재하도록 릴레이션을 분해하는 과정이다. 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이다. 정규화의 목적 (1) 불필요한 데이터를 제거해 불필요한 중복을 최소화한다. (2) 삽입/갱신/삭제 시 발생할 수 있는 이상 현상(Anomaly)를 방지하기 위해, 테이블의 구성을 논리적이고 직관적으로 한다. 정규화의 원칙 (1) 정보의 무손실 : 분해된 릴레이션이 표현하는 정보는 분해하기 전의 정보를 모두 포함해야 한다. (2) 최소 데이터 중복 : 이상 현상을 제거, 데이터 중복을 최소화 (3) 분리의 원칙 : 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리해서 표현 정규화의 ..
인덱스(Index)란? 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 DB 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 데이터베이스의 index 는 책의 색인과 같다. 인덱스의 장점과 단점 장점 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다. 전반적인 시스템의 부하를 줄일 수 있다. 단점 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요하다. 인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생한다(*). (*) CREATE, DELETE, UPDATE의 발생이 빈번한 속성에 인덱스를 걸게 되면, 인덱스의 크기가 비대해져서 성능히 오히려 저하되는 역효과가 발생할 수 있다. 인덱스를 사용하면 좋은 경우 규모가 큰 테이블에서 소량의 데이터를 검색 INS..
프로시저 (Procedure) 프로시저(Procedure)란, DB에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것 -> (Stored Procedure) 라고도 불림 어떠한 업무를 수행하기 위한 절차를 의미 절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어(TCL) 함수란? 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합 함수가 작업을 위한 기능이라면, 프로시저는 작업을 정리한 절차 프로시저 생성 CREATE PROCEDURE 프로시저_명 ( 파라미터_명 MODE 데이터_타입 ) IS 변수 선언 CREATE OR REPLACE PROCEDURE 프로시저_명 ( 파라미터_명 MODE 데이터_타입 ) AS 변수 선언 # 주의 (1)..
트리거(Trigger)에 대해 설명해주세요 트리거(Trigger)란, 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 특정 테이블에 INSERT, DELETE, UPDATE 같은 DML 문이 수행될 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램이다. ※ 트리거 유형 (1) 행 트리거 : 테이블 안의 영향을 받은 행 각각에 대해 실행(변화가 생길 때마다). 변경 전의 행은 OLD, 변경 후의 행은 NEW라는 가상 줄 변수를 사용하여 읽을 수 있다. (2) 문장 트리거 : INSERT, UPDATE, DELETE 문에 대해 한 번만 실행된다. ※ 트리거 장점 데이터 무결성 강화(참조 무결성) 업무 규칙의 설정 검사 기능의 확장 ※ 트리거 단점 유지보수의 어려움 예상치 못한 오류..