Computer Science 기본 지식/데이터 베이스 8

DB (7) 트랜잭션과 동시성 제어

여러 사용자의 요구를 동시에 처리하기 위해 같은 데이터베이스에 대해 연산을 하는 트랜잭션을 동시에 처리해야한다. 동시적 처리, 병행적 연산에 따라 데이터베이스의 데이터가 업데이트되는 데 모든 사용자 요구에 대해 결과가 일관성을 가져야 한다. 따라서 일관성있는 병행처리를 위한 동시성 제어가 필요하다. 동시서성 제어의 목적 프로세스와 디스크 활용을 최대화한다. 단위 시간당 트랜잭션 처리 건수를 증가시킨다. 사용자 서비스 제공에 대한 응답시간을 최소화한다. 데이터베이스 공유 정도의 최대화를 보장한다. 데이터베이스 일관성을 유지한다. 동시성 제어의 문제 - 갱신 분실 Lost Update 2개 이상의 트랜잭션이 같은 데이터를 공유하여 갱신할 때, 한 트랙잭션의 갱신한 내용을 다른 트랜잭션에 의해 잃어버리는 현상..

DB (6) 회복

회복 Recovery 데이터베이스 시스템에 장애가 발생하였을 때 장애가 발생하기 이전 시점의 상태로 복구시키는 것 장애 유형 트랜잭션 장애 : 트랜잭션의 논리적 오류 / 잘못된 데이터 입력 / 시스템 자원의 과다 사용 요구 / 처리 대상 데이터의 부재의 이유로 발생한다. 시스템 장애 : 하드웨어 이상으로 메인 메모리에 저장된 정보가 손실되거나 교착 상태가 발생한 경우 등 미디어 장애 : 디스크 자체의 결함으로 디스크에 저장된 데이터베이스의 일부 혹은 전체가 손상된 상태 통신 장애 : 네트워크 통신망의 결함 회복의 방법 1) 중복 기법 덤프 : 주기적으로 데이터베이스 전체를 다른 곳에 백업해둔다. 로그 : 데이터베이스에서 변경 연산이 일어날 때마다 데이터를 변경하기 전과 이후 값을 별도의 파일로 저장하는 ..

DB (6) 정규화

관계 스킴 - 릴레이션의 표현과 속성들의 관계를 정의하는 방법 데이터베이스를 잘 못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산시 부작용이 발생할 수 있다. 이러한 부작용을 이상(anomaly) 현상이라 한다. 이상 현상을 제거해나가며 데이터베이스를 올바르게 설계하는 것을 정규화라고 한다. 정규화를 통해 데이터의 중복과 의존성을 없앤다. 릴레이션 형태에 따라 제1정규형(First Normal Form), 제2정규형(Second Normal Form), 제 3정규형(Third Normal Form), 보이스-코드 정규형(Boyce-Codd Normal Form), 제 4정규형(Fourth Normal Form), 제 5정규형(Fifth Normal Form)으로..

DB (5) SQL 언어

SQL Structured Query Language SQL은 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 어떻게 처리하는 지 제시하지 않기 때문에 비절차적 데이터 언어 특성을 가진다. SQL문의 구성 SQL 데이터 정의 테이블 생성 CREATE TABLE 테이블 변경 ALTER TABLE 테이블 제거 DROP TABLE 뷰 생성 CREATE VIEW 뷰 삭제 DROP VIEW 데이터 조작 데이터 검색 SELECT 데이터 삽입 INSERT 데이터 수정 UPDATE 데이터 삭제 DELETE 데이터 제어 권한 부여 GRANT 권한 회수 REVOKE 정상적 완료 COMMIT 복구 ROLLBACK SQL의 특징 ANSI, ISO에서 정한 관계 데이터베이스 표준 언어이다. 관계 대수와 관계 해석을 기초로한..

DB (4) 관계 데이터베이스

관계 데이터 모델에 따라 제작된 데이터베이스를 관계 데이터베이스(relational database)라고 한다. 기본 개념 관계 데이터 모델은 동일한 구조(릴레이션) 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통해 데이터 접근을 제공한다. 관계 데이터 모델에서는 하나의 개체에 대한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다. 관계 데이터베이스를 구성하는 요소 관계 데이터 모델 관계 데이터베이스 릴레이션 테이블 행 또는 튜플 레코드 열 또는 속성 필드 또는 데이터 항목 릴레이션 인스턴스 테이블 인스턴스 릴레이션 스킴 테이블 스킴 릴레이션 카디널리티 레코드의 개수 릴레이션 차수 필드의 개수 (1) 속성 릴레이션의 열을 속성 또는 애트리뷰트라고 한다. (2) 튜플 릴레이션의 행을 ..

DB (3) 개체-관계 모델링

현실 세계를 개체와 개체간의 관계를 이용해 개념적 구조로 표현하는 방법이다. 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것을 개체-관계 다이어그램 또는 E-R 다이어그램이라 한다. 데이터베이스 생명 주기 요구 조건 분석: 사용자와 응용을 식별하고 요구사항을 분석한다. 설계: 개념적 설계, 논리적 설계 및 물리적 설계로 단계적으로 실행한다. 구현: 설계된 데이터베이스 스키마를 정의하고 빈 데이터베이스 파일을 생성하며 응용 소프트웨어를 목표 DBMS 환경에 맞도록 구현한다. 운영: 데이터베이스 시스템과 응용 시스템을 실제로 운영하고 관리하여 사용자의 요구에 따라 서비스를 제공한다. 감시 및 개선: 시스템을 계속적으로 감시하고 데이터베이스를 변경하여 개선한다. 데이터베이스 설계..

DB (2) 데이터베이스 시스템

데이터베이스 시스템(DBS) 데이터베이스에 데이터를 저장하고 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 컴퓨터 중심의 시스템 데이터베이스 시스템 3단계 구조 데이터 베이스에서 데이터 구조와 제약조건에 대한 명세를 기술한 메타 데이터를 스키마라고 한다. 스키마에는 데이터 구조를 표현하는 데이터 객체(data object or entity)와 특성을 표현하는 속성(Attribute) 그리고 관계에 대한 정의(relationship), 유지해야할 제약조건(constraint)이 포함되어 있다. 스키마는 사용자 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉘어진다. 데이터베이스 관리 측면에서 데이터를 이용하는 개인 뷰, 뷰가 종합된 전체 뷰 그리고 시스템, 저장 장치의 뷰 등 세단계로..

DB (1) 기초 용어

데이터 베이스 Database 파일 시스템의 파일은 응용 프로그램에 의해 정의되고 사용되므로 프로그램 의존도가 높다. 또한 데이터가 많은 파일에 저장되어 중복 데이터에 대한 처리가 어렵고 기억 공간이 낭비된다. 데이터베이스 시스템은 파일 시스템이 갖는 문제를 해결하기 위해 제안된 시스템으로 모든 응용프로그램이 데이터베이스를 공용할 수 있도록 관리해준다. DBMS의 필수 기능 1) 정의 기능 Definition 응용 프로그램이 요구하는 데이터 구조를 지원하기 위해 저장될 데이터의 행과 구조에 대한 정의, 이용 방식, 제약 조건등을 명시한다. 2) 조작 기능 Manipulation 데이터 검색, 갱신, 삽입, 삭제 등을 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공한다. 3) 제어 기능 ..