[데이터베이스] 데이터베이스(Database)란?

2023. 10. 16. 01:13CS/데이터베이스

 

자료(Data)와 정보(Information)

 

료(Data) : 문자, 숫자, 그림, 영상 등 현실 세계에서 관찰이나 측정을 통해 수집할 수 있는 단순한 사실 혹은 결과 값

정보(Information) : 특정한 목적의 의사결정을 위해 자료에 의미를 부여하여 가공한 형태

 

정보 시스템(Informaiton System)

 

정보 시스템은 개인 또는 집단에게 필요한 자료를 수집하고 저장해 두었다가 필요시 자료들을 효과적으로 가공하여 의사결정에 도움을 주는 정보를 생성하고 분배하는 시스템이다. 정보 시스템은 경영, 군사, 인사 행정, 의사 결졍 지원 등 사용하는 목적에 따라 분류되어 사용된다.

 

정보 시스템 구조

 

데이터베이스 (Database)

 

정의

데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들을 구조적으로 통합해 놓은 것을 의미한다. 데이터베이스는 다음과 같이 정의할 수 있다.

  • 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임
  • 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
  • 운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 되는 반드시 필요한 자료
  • 공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

 

특징

데이터베이스는 대표적으로 4가지의 특징을 가지고 있다.

  • 실시간 접근성(Real-Time Accessibility) : 데이터베이스는 사용자의 요구에 실시간으로 응답이 가능해야 한다.
  • 계속적인 변화(Continuous Evolution) : 데이터베이스의 상태는 동적인 상태이기 때문에 데이터의 삽입, 삭제, 수정 등의 기능을 통하여 항상 최신의 데이터를 유지해야 한다.
  • 동시 공유(Concurrent Sharing) : 데이터베이스는 서로 다른 목적을 가진 여러 사용자를 위한 것이다. 그렇기 때문에 데이터베이스를 이용하는 여러 사용자들은 동시에 같은 데이터를 이용 가능 해야 한다.
  • 내용 기반 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 데이터가 저장되어있는 주소나 위치가 아닌 사용자가 요구하는 데이터의 내용에 기반하여 데이터를 찾을 수 있어야 한다.

 

데이터베이스 관리 시스템 (DBMS : DataBase Management System)

 

DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어를 의미한다. DBMS는 이전에 데이터를 관리할 때 사용하던 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용 프로그램들이 데이터베이스를 공용으로 관리할 수 있도록 관리해 준다. 다시 말해서 파일 시스템의 단점을 보완하여 만들어진 것이 DBMS이다.

 

DBMS의 역할

 

파일 시스템이란?

파일 시스템은 파일을 저장 장치에 저장하고 사용하기 위한 운영체제 상의 일종의 규칙이나 체계를 말한다. 즉, 사용자가 원하는 파일의 생성, 삭제, 변경 등의 기능을 효율적으로 처리하기 위해 사용한다. 또한 파일 시스템에 저장된 정보를 이용하려면 요구사항에 맞는 다양한 응용 프로그램이 필요하다. 그러나 파일 시스템을 이용한 데이터 저장 방법은 데이터의 중복성 및 종속성에 문제가 발생한다. 

예를 들어 두 응용 프로그램 A와 B에 동일한 내용을 가지는 데이터 D가 존재한다 하자. 이때 데이터 D의 내용이 변경되었을 때 A응용 프로그램에서의 데이터 D는 변경된 내용이 적용되었고 B응용 프로그램에서의 데이터 D는 변경되지 않았다면 데이터가 중복이 되어 버리고 이로 인해 데이터의 불일치가 발생한다. 이것이 파일 시스템에서의 데이터 중복성 문제점이다.

이번에는 한 응용 프로그램 C가 존재한다 하자. 응용 프로그램 C에 존재하는 F데이터의 변경이 발생했을 때 F데이터를 포함하고 있는 모든 응용 프로그램을 하나하나 수정해줘야 한다. 이것이 파일 시스템에서의 데이터 종속성 문제점이다.

 

DBMS의 특징

 

DBMS는 파일 시스템의 단점들을 보완하여 개발되었기 때문에 파일 시스템의 단점을 보완한 것이 곧 DBMS의 장점들이다.

 

1. 데이터의 독립성

  • 물리적 독립성 : 데이터베이스 구조 및 데이터 내용의 변경이 발생하더라도 관련 응용 프로그램을 하나하나 수정할 필요가 없다.
  • 논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

2. 데이터의 무결성 

 : 데이터의 유효성 검사를 통해 입력 조건에 맞지 않는 입력값은 저장할 수 없도록 방지할 수 있다.

 

3. 데이터의 보안성 

 :  인가된 사용자들만 자원에 접근할 수 있도록 접근 권한을 설정 가능하다.

 

4. 데이터의 일관성 

 : 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치를 방지할 수 있다.

 

5. 데이터의 중복 최소화 

 : 데이터베이스는 데이터를 통합해서 관리함으로써 데이터 중복 문제를 최소화 할 수 있다.

 

 

DBMS의 종류

 

DBMS도 여러 종류가 존재한다. 시간이 지남에 따라 기존에 쓰이던 DBMS의 문제점이나 단점들을 계속해서 보완하여 새로운 DBMS들을 개발해 나갔다. 지금까지 쓰였던 DBMS의 종류들에 대해서 간단하게 알아보자.

 

파일 시스템 → 계층형 DBMS → 네트워크형 DBMS → 관계형 DBMS
→ 객체 지향형 DBMS → 객체 관계형 DBMS → NoSQL → NewSQL

 

계층형 DBMS (Hierarchical DBMS)

: 데이터 간의 관계가 트리 형태로 이루어진 구조로 트리 형태는 각 데이터가 부모-자식 관계로 이루어져 있으며 부모와 자식 간 관계는 1:N 형태로 구성된다. 구조가 간단하고 구현, 수정, 검색 등이 쉽지만 N:N 형태의 처리가 불가능하고 구조 변경이 어려운 단점이 있다.

 

계층형 DBMS 모델

 

네트워크형 DBMS (Network DBMS)

: 계층형 DBMS의 단점인 N:N 형태를 보완하여 개발된 DBMS이다. 계층형 구조에 링크를 추가하여 유연성 및 접근성을 확보하였다. 그러나 구조가 복잡해 유지보수가 어렵다.

 

네트워크형 DBMS 모델

 

관계형 DBMS (Relational DBMS)

: 관계형 DBMS는 Key와 Value로 이루어진 데이터들을 행과 열로 이루어진 테이블 구조로 단순화시킨 형태이다. SQL(Structured Query Language)을 사용하여 데이터를 다룬다. 데이터 모델링이 간단하여 현재까지도 주로 사용되는 DBMS지만 CAD/CAM, GIS 등과 같이 비정형 데이터들과 실시간 데이터 분석은 어렵다.

 

관계형 DBMS 모델

 

객체 지향형 DBMS (Object-Oriented DBMS)

: 객체 지향 개념에 기반하여 개발된 DBMS이다. 정보를 객체의 형태로 표현하며 클래스, 상속 등을 사용 가능하다. 관계형 DBMS에서 다루지 못했던 CAD/CAM, GIS 등의 비정형 데이터들을 다루기 위해 만들어진 모델이다. 그러나 SQL을 사용하지 못하며 검색이나 대규모 트랜젝션 처리에 대한 낮은 성능이란 단점을 가지고 있어 특정 전문분야에서만 사용되고 있다.

 

객체 관계형 DBMS (Object-Relational DBMS)

: 관계형 DBMS에 객체 지향 개념을 접목하여 개발된 DBMS이다. 객체 지향 개념을 지원하는 표준 SQL을 사용할 수 있고 데이터 타입도 관계형 DBMS 보다 더 다양하게 지원한다.

 

NoSQL (Not Only SQL)

: SQL뿐만 아니라 다양한 특성을 지원하는 DBMS이다. 데이터 간의 관계를 정의하지 않는 DBMS 모델로 기존의 관계형 DBMS의 복잡도와 용량을 극복하기 위해 개발되었다. 비정형 데이터 처리도 가능하지만 스키마 변경이 불가능하여 데이터에 문제가 발생하게 되면 감지하기가 어려운 단점을 가지고 있다.

 

NewSQL

: 관계형 DBMS의 SQL과 NoSQL의 장점을 결합시킨 모델이다. 트랜젝션 지원 및 확장성과 고가용성을 모두 만족시키는 장점을 가진다.