[CS 학습] 데이터베이스란
1. 데이터 베이스
1.1. 파일 시스템과 데이터 베이스
데이터 베이스의 개념이 등장하기 전 데이터를 관리하기 위해서 파일 시스템을 활용했다.
1.1.1. 파일 시스템
파일 시스템_은 파일 및 디렉토리의 계층 구조(파일 트리)입니다.
파일 시스템은 파일 및 디렉토리를 트리 형태로 관리하는 시스템이다. 논리적인 저장 단위로 일반적으로 레코드단위로 관리한다. 파일 시스템은 관리 파일을 포함하도록 하드 디스크에 할당된다. 응용 프로그램별로 파일 시스템을 할당 받고 응용 프로그램은 할당된 파일 시스템을 통해 필요한 파일에 생성, 삭제, 수정, 검색 등을 하게 된다.
파일 시스템은 여러가지 단점이 존재한다.
데이터의 중복성 응용 프로그램 별로 파일 시스템을 받기 때문에, 여러개의 응용 프로그램에서는 중복된 파일 레코드가 생성되게 된다. 이 때문에 여러개의 파일에 중복된 데이터가 저장되게 된다. 이렇게 될 경우 저장 공간 낭비 뿐만이 아니라 데이터의 일관성 및 무결성을 유지하기 어려워 진다.
응용 프로그램이 데이터 파일에 종속적 응용 프로그램은 파일에 직접 접근하여 데이터를 처리해야 하므로 파일의 데이터를 구성하는 방법이나 물리적인 저장 구조에 맞게 작성되어야 한다. 때문에 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 되는데 이것이 파일에 종속적인 것이다.
동시성 제어가 어려움 일반적인 파일 시스템에서는 한 응용 프로그램이 사용 중인 파일에 대해서 다른 응용 프로그램이 접근하여 사용할 수 있는 동시 공유 기능을 제공하지 않는다. 파일 시스템은 파일 단위로 사용자(응용 프로그램)에게 읽기, 수정, 실행 권한을 부여하여 접근을 통제하기 때문에 단위 레코드나 필드 같은 더 작은 단위에서의 동시성 제어가 어렵다.
보안 조치가 어려움 위와 마찬가지로 파일 단위로 권한을 부여하기 때문에 구체적인 권한 부여가 불가능하고 이때문에 보안 조치가 어렵다.
회복기능이 없음 파일을 변경하는 도중 장애 발생하면, 이전으로 복구, 회복하는 기능이 없다.
- 응용 프로그램의 개발이 어려움 파일에 대한 데이터 접근 및 관리 작업을 응용 프로그램이 담당하기 때문에 개발이 어려움
1.1.2. 데이터 베이스
파일 시스템의 근본 원인은 두가지로 요약할 수있다.
- 데이터 중복성
- 데이터 종속성
데이터 중복성의 문제는 데이터를 통합 관리하면서 해결할 수 있지만 이후 종속성이 가지는 문제들 (동시성, 보안, 회복 등)을 보안해줘야 한다.
특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터 집합
[데이터 베이스 개론, p 023]
이는 책 데이터베이스 개론(저 김연희)에서 정의한 것이다.
위에서 집중해봐야할 키워드 4가지가 있다
- 공유 여러 사용자가 동시에 이용할 수 있어야 한다
- 통합 중복을 최소화하여 통제 관리가 쉬워야한다
- 저장 컴퓨터가 접근할 수 있는 매체에 데이터를 저장해야한다
- 운영 지속적으로 유지해야 한다.
이 키워드를 바탕으로 데이터 베이스는 4가지의 특징을 가지게 된다
- 실시간 접근
- 계속된 변화
- 내용 기반 참조
- 동시 공유
2. DBMS
2.1. DBMS란
Data Base management System으로 데이터 베이스 관리 시스템이다.
파일 시스템의 문제였던 데이터의 중복성은 데이터를 통합 관리하면서 보안할 수 있다. 하지만 이외의 종속성에서 나타나는 문제를 관리할 시스템이 필요하다. 이것이 DBMS이다.
DBMS는 데이터 베이스와 응용 프로그램 혹은 사용자 사이에서 인터페이스를 제공하여 데이터 베이스의 생성 및 접근을 모두 담당하게 된다. 이를 통해 파일 시스템이 가지고 있던 종속성을 해결한다. 데이터 베이스와 관련된 작업은 DBMS가 수행하고 그 결과를 응용 프로그램이나 사용자에게 전달하기 때문에 응용 프로그램 개발자로 하여금 데이터에 대한 부담을 덜 수 있게 한다.
DBMS의 주요 기능으로는 3가지가 있는데
- 정의 기능 데이터베이스의 구조를 정의하거나 수정할 수 있다.
- 조작 기능 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
- 제어 기능 데이터를 항상 정확하고 안전하게 유지할 수 있다.
2.2. DBMS의 장단점
2.2.1. 장점
- 데이터 중복을 통제할 수 있다
- 데이터 독립성이 확보된다
- 데이터를 동시 공유할 수 있다
- 데이터 보안이 향상된다
- 데이터 무결성을 유지할 수 있다
- 표준화 할 수 있다
- 장애 발생 시 회복이 가능하다
- 응용 프로그램의 개발 비용이 줄어든다
2.2.2. 단점
- 비용이 많이 든다
- 백업과 회복 방법이 복잡하다 (장애 발생시 원인 및 사태 파악이 정확히 힘들어짐)
- 데이터의 중앙 집중 관리로 인한 취약점 발생
2.3. 데이터 베이스의 구조
2.3.1. 스키마
스키마란 데이터 베이스에 저장되는 데이터의 구조와 제약 조건을 정의한 것이다.
2.3.2. 3단계 데이터 베이스 구조
데이터 베이스는 매우 복잡한 구조를 가지게 된다.
하지만 모든 사용자가 이 구조를 이해하여 사용해야 한다면 전문가가 아닌 일반 사용자에게는 사용하기 어려운 프로그램이 될 것이다.
때문에 미국 표준화 기관 ANSI/SPARC에서 단계에 따라 추상화를 시킨 3단계 데이터베이스 구조( 3-level database architecture)를 제안하였다.
2.3.2.1. 외부 단계
개별 사용자 관점의 데이터 베이스를 표현한 것이다.
해당 데이터를 이용하고자 하는 관점에서만 사용하는 것으로 이 시스템 전체보다는 목적에 필요한 부분만 관심있는 사용자를 위한 표현방법이다.
외부 단계에서만 사용하는 스키마를 외부 스키마라고 표현한다. 필요한 속성에만 관심이 있으므로 하나의 데이터 베이서 스키마에서 여러개의 외부 스키마가 나올 수 있다. 그래서 서브 스키마라고도 불린다.
2.3.2.2. 개념 단계
이 단계에서는 데이터 베이스 자체를 사용하는 사용자 관점에서 표현한 것이다. 데이터 베이스 관리 시스템이나 관리자 관점에서 필요한 데이터의 논리적 구조를 정의한다.
데이터베이스 관리자의 경우 외부 사용자와 달리 전체에 관심을 가진다. 때문에 부분적인 스키마가 아닌 한 데이터베이스가 가지고 있는 전체 스키마에 관심을 가지게 된다.
따라서 개념 단계에서는 하나의 스키마가 존재하게 된다. 이 스키마를 개념 스키마라고 부르며 일반적으로 스키마라고 부르는 것이 이것이다.
이 단계에서는 데이터 간의 제약 조건이나 보안 정책 접근 권한 등에도 관심을 가지게 된다. 즉 논리적인 구조를 만드는 것이 이 부분이다. 하지만 이를 물리적으로 저장하는 방법이나 장치에는 관심이 없다.
2.3.2.3. 내부 단계
이 단계는 이제 물리적인 저장 개념까지 포함한 구현 단계이다. 디스크와 테이프 같은 저장 장치의 관점에서 이해하고 표현한다.
내부 스키마는 파일에 데이터를 저장하는 레코드의 구조, 필드 크기, 인덱스 등을 정의한다.
2.4. 데이터의 독립성
위에서 데이터 베이스를 3가지 단계로 나누었지만 결국 같은 데이터베이스를 표현한다.
어느 단계에서 접근을 하든 결국에는 내부 단계의 내부 스키마에 따라 저장된 데이터에 접근을 하여야한다.
따라서 하위 단계의 스키마로 접근을 하여도 상위 단계의 스키마와 유기적으로 대응 관계가 성립되어야 한다.
이러한 스키마 사이의 대응 관계를 사상 또는 매핑이라고 한다.
데이터 베이스를 단계별로 나누고 단계별 스키마를 유지하는 이유는 데이터의 독립성을 실현하기 위해서 이다. 하위 스키마가 변경되더라도 상위 스키마에 전파되지 않는 것이 데이터의 독립성이다.
2.4.1. 논리적 데이터 독립성
개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것이다.
이는 전체 데이터 베이스의 논리 구조가 변경되더라도 관련된 외부 정보만 적절히 변경시켜 주면 개별 사용자는 외부 스키마의 변경이 없이 사용할 수 있도록 하는 것이다.
이 말은 곳 개별 사용자 입장에서는 전체 논리적 구조에 대해 관심을 가질 필요가 없다는 것을 의미한다.
2.4.2. 물리적 데이터 독립성
내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것이다.
데이터 베이스 자체의 저장 구조가 변경되어도 개념 스키마만 적절히 대응 시켜 주면 논리적 구조에는 영향이 없는 것을 의미한다.
이도 마찬가지로 내부 스키마 사용자인 데이터 베이스 관리자로 하여금 데이터 베이스 자체의 구조에 관심을 가지지 않아도 된다는 것을 의미한다.
출처
데이터베이스 개론, 김연희 저, 한빛아카데미