본문 바로가기

Programming/DataBase System

Chapter1 - 트랜잭션 관리 트랜잭션 관리 대개, 데이터베이스에 대한 몇 개의 연산이 하나의 논리적 작업 단위를 이룬다. 예금 이체가 하나의 예인데, 이떄 한 학과의 계좌(예를 들면, A)는 출금 계좌이고, 다른 학과의 계좌(B라고 하자)는 입금 계좌이다. 분명히, 입금과 출금이 모두 일어나든지, 모두 일어나지 않든지 하는 것이 필수적이다. 즉, 예금 이체는 전체가 완전히 수행되거나, 일체 수행되지 않아야 한다. 이러한 all or none 요구 조건을 원자성(consisteny)이라고 한다. 또한, 예금 이체의 실행은 데이터베이스의 일고나서을 보존해야 한다. 즉, A의 잔고와 B의 잔고를 합한 값이 보존되어야 한다. 이러한 영속성의 요구 조건을 지속성(durability)이라고 한다. 트랜잭션(transaction)은 데이터베이스.. 더보기
Chapter1 - 데이터 저장과 질의 데이터 저장과 질의 데이터베이스 시스템은 여러 모듈로 구성되며, 이들 각 모듈들이 데이터베이스의 여러 책무들을 나누어 맡는다. 데이터베이스 시스템은 기능적인 관적에서 봤을 때, 크게 두 부분으로 나누어지는데 저장장치 관리자와 질의 처리기가 그것이다. 데이터베이스는 본질적으로 대량의 기억 공간을 필요로 하므로 저장장치 관리자의 역할은 매우 중요하다. 기업의 데이터베이스의 용량은 보통 GB(giga byte)가 소요되고 크게는 TB(tera byte)가 소요된다. 1GB 는 1000MB(mege byte, 실제로는 1024)이고, 1TB(tera byte)는 100만 MB이다. 컴퓨터의 메인 메모리는 이렇게 큰 용량의 정보를 저장할 수 없기 때문에 정보는 디스크에 저장된다. 데이터는 필요할 때마다 디스크 저.. 더보기
Chapter1 - 데이터베이스 설계 데이터베이스 설계 데이터베이스 시스템은 많은 양의 정보를 관리하기 위해 설계된다. 이 많은 양의 정보는 별개의 정보들로 존재하지 않는다. 이 정보들은 회사 운영에 필요한 데이터베이스 혹은 어떤 장치 혹은 서비스에 관련된 자료들이라 할 수 있다. 데이터베이스 설계는 데이터베이스 스키마 설계와 주로 관련된다. 모델화된 회사의 요구를 만족시켜주기 위한 완벽한 데이터베이스 응용 프로그램의 설계는 많은 문제점들을 주의해야 한다. 설계 단계 상위 데이터 모델은 데이터베이스 설계자에게 데이터베이스 사용자의 데이터 요구조건들을 기술하기 위한 개념적인 골격과 데이터베이스가 이러한 요구조건을 만족시키기 위해 어떻게 구성될 것인가에 대한 것을 제공한다. 데이터베이스 설계의 초기 단계는 장래의 데이터베이스 이용자들이 필요로 .. 더보기
Chapter 1 - 관계형 데이터베이스 관계형 데이터베이스 관계형 데이터베이스는 관계형 모델에 기반하여 데이터와 데이터들의 관계를 나타내기 위해 테이블들의 집합을 사용한다. 관계형 데이터베이스는 또한 DML과 DDL을 포함한다. 대부분의 상업적인 관계형 데이터베이스 시스템은 SQL 언어를 사용한다. 테이블 각 테이블은 고유한 이름을 가진 여러 개의 열(column)로 구성된다. 아래의 그림은 두개의 테이블을 가진 관계형 데이터베이스의 예로서, 고객과 그들의 계좌를 나타내는 관계형 데이터베이스를 보이고 있다. 첫 번째 테이블은 대학교 교수들에 대한 상세 정보를, 두 번째 테이블은 대학교의 여러 학과들에 대한 정보를 담고 있다. 첫 번째 instructor 테이블은 이름이 El Said 이고 32343라는 ID를 갖는 교수가 역사학과의 일원이며 .. 더보기
Chapter1 - 데이터베이스 언어 데이터베이스 언어 데이터베이스 시스템은 데이터베이스 스키마를 기술하는 데이터 정의 언어(Data Definition Language : DDL) 와 데이터베이스 질의 및 갱싱을 표현하는 데이터 조작 언어(Data Manipulation Language : DML) 를 제공한다. 실제로, 데이터 정의 언어와 데이터 조작 언어의 경계는 명확히 구분되어 있지 않다. 오늘날 널리 쓰리고 있는 질의어인 SQL에서 이들 두 언어는 단일 데이터베이스 언어의 한 부분을 이룬다. 데이터 조작 언어데이터 조작 언어(Data Manipulation Language : DML) 는 사용자가 적절한 데이터 모델로 구성된 데이터를 접근하거나 조작할 수 있도록 하는 언어이다. 접근의 형태는 다음과 같다. 데이터베이스 내에 저장된 .. 더보기
Chapter 1 - 데이터 관점 데이터 관점 DBMS는 서로 관련이 있는 파일의 모임과 사용자로 하여금 이 파일들을 액세스하거나 수정하도록 하는 프로그램의 집합이다. 데이터베이스 시스템의 주요한 목적은 사용자에게 데이터에 관한 추상적인 관점을 제공하는 것이다. 즉, 시스템은 데이터가 어떻게 저장되고 유지되는지에 관한 세부 사항은 사용자로부터 은폐한다. 데이터의 추상화시스템이 원활하게 사용되려면, 데이터 검색이 효율적으로 이루어져야 한다. 이러한 목적을 이루기 위해, 데이터베이스 내의 데이터를 효율적으로 표현하기 위한 여러 가지 복잡한 데이터 구조가 제안되었다. 많은 데이터베이스 시스템의 경우 사용자의 대부분이 컴퓨터를 잘 다루지 못하는 일반 사람들이므로, 여러 단계의 추상화를 통해 이러한 복잡한 구조를 되도록이면 감추어, 사용자의 이해.. 더보기
Chapter1 - 데이터베이스 시스템의 목적 데이터베이스 관리 시스템(DBMS) 은 서로 관계 있는 데이터들의 모임과 그 데이터에 접근하기 위한 프로그램 (application) 의 집합으로 구성된다. 데이터베이스(database) 는 보통 이 데이터들의 모임을 일컫는 말로서, 흔히 조직과 관련된 정보들을 포함한다. DBMS 의 주요 목적은 데이터베이스에 정보를 저장하고 또 이를 검색하기 윈한 편리하고도 효율적인 환경을 제공하는 데 있다. 데이터베이스는 대규모의 정보를 관리하도록 설계된다. 데이터의 관리에는 정보 저장 구조를 정의하는 작업과 저장된 정보를 조작하기 위한 기법을 제공하는 작업 모두가 포함된다. 또, 데이터베이스 시스템은 저장된 정보를 시스템 고장이나 모든 불법적은 액세스 등으로부터 안전하게 보호해야 한다. 데이터가 여러 사용자간에 공.. 더보기