CS/자료구조 · DB

[데이터베이스] 1. 데이터베이스의 개념

프로필사진
inup 2023. 9. 29. 02:27

데이터베이스 개념

데이터(Data) : 현실 세계에서 단순히 관찰하거나 측정하여 얻은 사실 또는 값

데이터베이스(Database, DB) : 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합

 

데이터베이스 정의

공유 데이터 (Shared data)

데이터베이스는 특정 조직의 여러 사용자가 함께 사용하는 공용 데이터이다. 사용 목적이 다른 사용자와 응용프로그램을 모두 고려하여 데이터베이스를 구성해야 한다.

 

통합 데이터 (Integrated data)

데이터 중복성(Data redundancy)을 허용하지 않으려 최소한, 통제 가능한의 중복만 허용하게 통합하여 저장한다.

 

저장 데이터 (Stored data)

데이터베이스는 컴퓨터가 접근할 수 있는 매체에 저장하여야 한다.

 

운영 데이터 (Operational data)

일회성 사용이 아닌, 조직의 기능을 수행하기 위해 지속적으로 운영하여 사용하는 데이터이다.

 

 

데이터베이스의 특징

실시간 접근성

사용자의 요구에 실시간으로 응답할 수 있다.

 

지속적인 변화

데이터베이스는 삽입 · 삭제 · 수정을 통해 현재의 정확한 데이터를 유지할 수 있다.

 

동시 공유 가능

여러 사용자가 동시에 같은 데이터베이스를 이용하는 것 뿐 아니라, 같은 데이터를 동시에 사용하는 것도 가능하여야 한다.

 

내용 기반 참조

단순히 경로(path)를 통해 접근하는 것이 아닌, 저장된 데이터의 값(내용)을 통해 참조할 수 있어야 한다.

 

 

파일 시스템 - DBMS 비교

파일 시스템

파일 시스템은 DBMS가 존재하기 이전에 사용하던 정보 처리 시스템이다. 응용 프로그램에 종속적이기 때문에, 별도의 구매 비용이 들지 않는다는 장점이 있으나, 응용 프로그램마다 따로 파일을 유지해야 하기에 아래와 같은 문제가 발생한다.

 

데이터 중복성 문제

데이터 중복성(Data redundancy)이란, 동일한 데이터가 여러 파일에 중복 저장되는 것을 말한다. 데이터 중복성 문제가 발생하게 되면 저장공간을 불필요하게 많이 사용하며, 데이터 일관성(Data consistency), 데이터 무결성(Data integrity)을 유지하기 어렵다.

 

데이터 종속성 문제

응용 프로그램이 파일에 직접 접근하여 데이터를 처리하므로, 사용하는 파일의 구조를 변경 시 응용 프로그램도 함께 변경하여야 한다. 이를 데이터 종속성(Data dependency)이라 한다.

 

외에도 데이터 파일에 대한 동시 공유, 보안, 회복 기능의 부재, 개발의 어려움 등의 문제가 발생하게 된다.

 

 

데이터베이스 관리 시스템 (DBMS)

데이터베이스 관리 시스템(DataBase Management System)은 파일 시스템이 가진 문제(데이터 중복 및 데이터 종속)를 해결하기 위해 제시된 소프트웨어이다. 데이터를 편리하게 저장하고 효율적으로 관리하며 데이터를 정의 · 조작 · 제어할 수 있게 된다.

DBMS가 가지는 장점

1. 데이터 중복성 문제를 해결

2. 데이터 독립성(Data Independence) 확보 : 응용 프로그램과 DB 사이 독립성이 확보됨

3. 동시 공유 가능

4. 보안 및 회복 기능

5. 데이터 무결성(Data integrity) 유지 : 데이터에 오류가 없는 정확한 값만을 저장하고 있음

6. 표준화

7. 개발 비용의 감소 (단, 구매 비용이 별도로 필요)

 

 

3단계 데이터베이스 구조

표준화 기관 ANSI/SPARC에서 제안한 데이터베이스 구조이다.

외부 단계

외부 단계(External level) 또는 뷰 단계는 개별 사용자의 관점에서 DB를 표현한다. 또한 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것을 외부 스키마라고 한다. 외부 스키마는 여러 개 존재할 수 있다. (사용 목적이 다른 사용자들이 여러 명 있을 수 있기 때문)

 

예를 들어, 쇼핑몰의 상품 재고를 관리하는 직원은 상품과 관련된 데이터에만 관심을 가지며, 그 외의 데이터(직원 정보, 고객 정보 등)에는 관심이 없을 것이므로, 사용자의 관점으로 여러 스키마가 존재할 수 있게 된다.

 

외부 스키마는 목적이 같은 사용자들이 공유하여 사용할 수 있으며, 다른 말로 서브 스키마라고도 한다.

 

* 스키마(Schema) : 계획 또는 도식을 일컫는 말. DB에서는 데이터베이스의 구조와 제약조건에 관한 정의를 말한다.

 

개념 단계

개념 단계(Conceptual level) 또는 논리 단계는 조직 전체의 관점에서 DB를 이해한다. 모든 사용자에게 필요한 전체 데이터베이스를 통합하여 논리적 구조를 정의하는 단계이므로, 개념 스키마는 단 하나만 존재한다.

 

개념 스키마는 어떤 데이터가 저장되는지, 데이터 간의 관계와 접근 권한, 보안 등의 정의도 포함한다. 하지만, 물리적으로 데이터가 저장되는 방식과 필요한 저장장치 등과는 독립적이다.

 

내부 단계

내부 단계(Internal level) 또는 물리 단계는 디스크와 같은 저장 장치의 관점에서 이해하고 표현한다. 필드의 크기, 레코드의 구조 등이 내부 스키마에 포함된다. 또한, 내부 스키마는 개념 스키마에 대한 저장 구조를 표현한 스키마이므로, 마찬가지로 단 하나만 존재한다.

 

 

데이터 독립성

 

논리적 데이터 독립성 

개념 스키마가 변경되어도, 외부 스키마는 영향을 받지 않는다. 이는 외부 스키마의 사용자가 개념 스키마(전체 데이터베이스)가 변경됨을 알 필요가 없음을 의미한다.

 

물리적 데이터 독립성

내부 스키마가 변경되어도, 개념 스키마는 영향을 받지 않는다. 따라서, 논리적 데이터 독립성에 의해 외부 스키마도 영향을 받지 않는다.