본문 바로가기

반응형

CS/데이터베이스

(6)
병행 제어(Concurrency Control) 병행 제어(Concurrency Control) 정의 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행시킬 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것이다. 병행 수행의 문제점 갱신 분실(Lost Update) : 2개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상 비완료 의존성(Uncommitted Dependency) : 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상 모순성(Inconsistency) : 두 개의 트랜잭션이 병행 수행될 때 원치 않는 자료를 이용함으로써 발생하는 문제 연쇄 복귀(Cascading Rollback..
트랜잭션 트랜잭션 정의 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위이다. 하나의 트랜잭션은 Commit되거나 Rollback된다. 트랜잭션은 일반적으로 회복의 단위가 된다. 트랜잭션의 특성 Atomicity (원자성) - 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. - 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 에러가 발생하면 트랜잭션 전부가 취소되어야 한다. Consistency (일관성) - 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관..
시스템 카탈로그 시스템 카탈로그 정의 시스템 그 자체에 관련이 있는 스키마 및 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다. 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지관리하는 시스템 테이블이다. 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다. 카탈로그들이 생성되면 자료 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다. 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 한다. 시스템 카탈로그 특징 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다. INSERT, DELET..
뷰(View) 뷰(View)란? 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블이다. 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다. 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 뷰(View)의 특징 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 가지며, 조작도 기본 테이블과 거의 같다. 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다. 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다. 조인문의 사용을 최소화하여 사용상의 편의성을 최대화한다. 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호할..
내장 SQL(Embedded SQL) 내장 SQL 특징 응용 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램 언어로 만든 프로그램에 삽입된 SQL 내장 SQL 실행문은 호스트 언어에서 실행문이 나타날 수 있는 곳이면 프로그램의 어느 곳에서나 사용할 수 있다. 일반 SQL문은 수행 결과로 여러 개의 튜플을 반환하는 반면, 내장 SQL은 단 하나의 튜플만을 반환한다. 내장 SQL문에 의해 반환되는 튜플은 일반 변수를 사용하여 저장할 수 있다. Host Program의 컴파일 시 내장 SQL문은 선행 처리기에 의해 분리되어 컴파일된다. 호스트 변수와 데이터베이스 필드의 이름은 같아도 된다. 내장 SQL문에 사용된 호스트 변수의 데이터 타입은 이에 대응하는 데이터베이스 필드의 SQL 데이터 타입과 일치하여야 한다. 내장 SQL문이 실행되면 S..
정규화(Normalization) 정규화의 개요 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다. 정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형이 있으며, 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어난다. 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다. 정규화는 논리적 처리 및 품질에 큰 영향을 미친다. 정규화의 목적 데이터 구조의 안정성을 최대화한다. 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다. 효과적인 검색 알고리즘을 생성할 수 있다. 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다. 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.

반응형