실세계의 다양한 유형의 많은 데이터를 효율적으로 저장하고 관리하기 위해서는 데이터베이스 기술이 필요하다.
데이터는 그 자체만으로는 의미가 없지만 데이터를 가공한 정보는 우리에게 유용한 이점을 준다.
정보를 얻기 위해 하나의 기관에서 데이터를 수집, 조직 저장하고 정보를 생성, 분배하는 시스템을 정보처리 시스템이라고 한다. 이러한 시스템에서는 여러 응용 소프트웨어 기술 중에서 실세계의 방대한 데이터를 효과적으로 저장, 운용하기 위한 데이터베이스 기술의 응용이 필수적이다.
십수 년 전에는 파일 처리 방식에 의존하여 데이터를 관리하였는데 이 방식은 데이터베이스에서 데이터를 관리하는 방식과 큰 차이가 있다. 파일 중심의 방식에서는 각 사용자가 특정한 응용 프로그램을 위해서 필요한 파일을 직접 관리해야만 했으며 응용 프로그램은 각 파일에 의존성을 띄우며 관리의 한계점을 보였다. 여기서 문제 된 것이 바로 데이터 종속성과 데이터 중복성이라는 문제점이다.
데이터 종속성이란 응용 프로그램과 데이터 사이의 상호 의존관계를 나타내는데 파일 처리 방식은 1:1인 관계를 갖기에 단단한 결합력을 가지게 되어 유지 보수에 어려움을 겪었다.
또한 데이터 중복성은 말 그대로 중복된 데이터가 파일 안에 여러 개 존재할 수 있다는 것인데, 이러한 중복된 데이터는 일관성 유지가 어렵고, 논리적으로 같은 데이터들에 대해 보안성과 저장공간에 대한 추가적인 비용이 발생되는 문제점을 가지게 됐다.
이 두 가지 문제점을 해결하기 위해 데이터 공유의 개념을 바탕으로 발전한 것이 바로 데이터 베이스 기술이다.
데이터베이스는 다음과 같이 정의될 수 있다.
"한 조직의 여러 응용 시스템이 공용으로 사용하기 위한 통합, 저장된 운영 데이터의 집합"
공용이란 조직 안에서 여러 응용프로그램이 공용으로 소유하고 사용하기 위함이며 통합은 중복된 데이터를 최대한 배제하여 각 데이터의 일관성을 유지함을 의미한다.
데이터베이스의 특징
1. 데이터베이스 시스템의 자기 기술성
데이터베이스 시스템의 자기 기술성이란 하나의 데이터베이스 시스템이 데이터베이스 자체뿐만 아니라 데이터베이스에 대한 정의나 설명에 대한 것까지 가지고 있다는 것이다.
정의는 데이터베이스에 포함되는 각 파일의 구조, 각 데이터들의 타입과 저장 형식, 제약 조건 등이 포함되며 시스템 카탈로그에 저장된다.
2. 프로그램-데이터 독립성
파일 처리 방식에서는 데이터 파일의 구조에 대한 정보가 응용 프로그램 내에 표현되므로 파일 구조가 변경되면 그 파일에 접근하는 모든 응용 프로그램의 변경이 필요했지만 데이터베이스 경우 데이터 파일 구조가 프로그램으로부터 분리되어 시스템 카탈로그에 저장되므로 특정 데이터 파일과 무관되게 응용 프로그램을 만들 수 있다.
3. 데이터 추상화
데이터베이스는 데이터가 어떻게 저장되어 있는가 보다는 사용자에게 데이터에 대한 개념적인 표현을 제공하므로 써 쉽게 데이터를 다룰 수 있도록 한다.
4. 다중 뷰 제공
데이터베이스를 사용하는 사용자들은 필요에 따라 다른 관점의 데이터를 요구하는데 이러한 필요한 부분만을 추출해서 볼 수 있도록 view를 제공한다.
5. 데이터 공유 및 다수 사용자의 트랜잭션 처리
여러 사용자가 동시에 데이터베이스에 접근해서 데이터를 검색할 수 있도록 하며,
또한 동시성 제어 기능을 통해 데이터의 변경에 대해서 제약 조건을 걸어 데이터의 일관성을 보장한다.
데이터베이스 시스템은 데이터를 데이터베이스에 저장학 간리 해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템이라고 할 수 있다. 이런 데이터베이스 시스템은 데이터베이스, 데이터베이스 관리 시스템, 데이터 언어, 데이터베이스 사용자, 데이터베이스 관리자, 데이터베이스 기계와 같은 요소로 구성된다.
데이터베이스 시스템의 가장 기본적 요소는 데이터베이스이며, 다양한 관점에서 정보에 접근할 수 있는 기능을 제공하는 다차원적인 데이터의 집합체이다.
스키마(schema)는 데이터베이스의 논리적 정의, 즉 데이터 구조와 제약 조건에 대한 명세를 기술 한것으로, 이는 데이터 베이스를 바라보는 세 가지 관점에 따라 달라진다.
데이터베이스 관리 측면에서는 각 개인의 관점과 개인이 모인 기관 전체의 관점, 실제 저장장치에 저장되는 물리적인 관점이 있을 수 있다.
따라서 여러 관점의 사용자들에게 데이터를 제공할 수 있는 기능을 제공해야 한다. 그렇기에 추상화와 데이터의 독립성을 확보하기 위해 데이터베이스 시스템은 3단계 구조를 띤다.
외부 단계, 개념 단계, 내부 단계로 구성된다. 이 단계 구조는 ANSI/SPARC 구조라고도 한다.
1. 외부 단계
추상화의 최상위 단계로서 뷰 단계라고도 한다. 뷰 단계에서의 스키마를 외부 스키마라고 하는데, 이 스키마는 개별 사용자나 응용 프로그래머가 관림을 갖는 데이터베이스의 일부분만 기술하고 다른 부분은 은폐한다.
하나의 데이터베이스 시스템은 여러 응용 시스템을 지원하기에 여러 개의 외부 스키마가 존재한다.
2. 개념 단계
개념 단계는 물리적 저장구조의 세부 사항을 은폐하고, 어떤 데이터가 저장되었는지와 데이터 간에 존재하는 관계를 기술하는 단계로서, 논리적 단계라고도 한다.
기관적 입장에서 데이터베이스의 전체 구조를 추상화하는 단계로 개념 스키마를 통해 구조를 기술한다. 개념 스키마는 모든 응용 프로그램이나 사용자가 필요로 하는 데이터베이스의 구조를 전체적이고 종합적인 관점에서 기술하므로 단 하나만 존재하고, 모든 외부 스키마는 이 개념 스키마로부터 생성되고 지원된다.
3. 내부 단계
물리적 단계라고도 하며, 이 단계는 추상화의 최하위 단계이다. 하나의 내부 스키마가 존재하며, 내부 스키마는 개념 스키마에 대한 저장구조를 정의한다. 개념 스키마에는 저장 레코드의 형식, 인덱스 유무, 저장 필드의 표현 방법, 저장 레코드의 물리적 순서와 같이 저장장치의 입장에서 데이터가 실제로 어떻게 저장되는가를 기술한다.
ANSI/SPARC 구조에서는 세 개의 서로 다른 스키마가 존재하고, 이 스키마들 사이에서 상호 변환을 위해 사상이라는 과정을 거친다. 이 사상의 개념은 데이터의 독립성을 구현하는 방법으로서 중요한 역할을 한다.
외부/개념 사상에서의 사상은 뷰 단계와 논리적 단계의 대응 관계를 정의한다. 개념 스키마에서 변화가 생긴다고 하더라도 이 사상만 적절히 변경하면 뷰 단계의 스키마에 어떠한 영향을 미치지 않는다. 이것을 논리적 데이터 독립성이라고 한다.
개념/내부 사상에서는 다른 물리적 디스크로의 데이터의 이동이나 파일 구조의 변경과 같은 물리적인 변경에 대해 내부 스키마를 정확하게 변경시키면 개념 스키마에는 아무런 영향을 미치지 않으며, 따라서 응용 프로그램에도 아무런 영향을 주지 않는다. 이것을 물리적 데이터 독립성이라고 한다.
'Database' 카테고리의 다른 글
ER 모델 (0) | 2021.04.12 |
---|---|
데이터베이스 관리자 DBA (0) | 2021.04.12 |
Indexing (0) | 2021.03.01 |
DataBase 정규화 (0) | 2021.02.27 |
비식별관계와 식별관계 (0) | 2021.01.28 |
댓글