반응형

 우리는 자료와 정보라는 말을 많이 사용한다. 보통 두 단어를 혼동해서 많이 사용하는데  엄밀히 따지자면 각각 정의가 다르다.

자료(Data) 는 숫자, 영상, 단어 등의 형태로 된 의미 단위로 날것(raw)에 가깝다. 이러한 자료에 의미를 부여하거나 정리하면 정보가 된다.  

실제로 크게 구분하진 않지만 알아두면 좋을 것 같다!

 

 

 

데이터베이스 (DB, database )란


 데이터베이스란 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임이다.

등산할 때 기반이 되는 기지를 베이스캠프라 하듯이 데이터베이스라는 용어도 1950년대 미국에서 데이터의 기지라는 뜻에서 데이터베이스라는 용어를 처음 사용했다고 한다. 

(..데이터를 모아둔 창고라고 생각하면 되겠다.)

 

 

 

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


 데이터베이스 관리 시스템이란 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어들을 의미한다.

데이터베이스 관리 시스템이 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다.

파일 시스템은 응용 프로그램을 이용해 데이터를 파일로 관리하는 것이다.

예를들어 쇼핑몰의 경우 고객관리 프로그램과 주문관리 프로그램이 존재하여 각각 데이터를 파일로 저장해 관리한다.

파일을 기반으로 데이터를 관리하게되면 데이터 중복, 데이터 불일치 등 문제가 발생한다.

이러한 파일 시스템의 단점을 보완하기 위해 데이터베이스가 생겨났다.

데이터베이스는 곧 데이터베이스 관리 시스템이라 할만큼 데이터베이스 관리 시스템은 중요하다고 볼 수 있다.

데이터베이스 관리 시스템을 전문적으로 운영하는 인력을 DBA (DataBase Administrator)라 한다.

 

데이터 불일치 문제란?
데이터 불일치 문제는 데이터를 파일로 저장했을 때 파일을 수정하는 도중에 해당 파일을 불러온다면 데이터가 동기화 문제가 발생하여 데이터가 불일치하는 문제가 발생할 수 있다.

 

 

 

데이터베이스 관리 시스템의 특징


데이터베이스 관리 시스템은 파일 시스템의 문제점을 해결하기 위해 만들어졌기 때문에 

데이터베이스 관리 시스템의 특징은 곧 파일 시스템의 단점을 의미한다.

 

 

1. 데이터의 독립성 ( 파일 시스템은 데이터와 응용 프로그램이 상호 의존 관계에 있다. )

  • 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
    (파일 시스템은 응용 프로그램의 기능을 확장하려면 파일의 구조를 재조직해야 한다.)

  • 논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
    ( 파일 시스템에서는 파일의 구조가 응용 프로그램에 반영되어 있기 때문에 파일의 구조가 바뀌면 영향을 받는 모든 응용 프로그램들을 수정해야 한다. )

 

2. 데이터의 무결성 

 : 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다. 예를들면 입력 조건에 맞지 않는 입력값은 저장할 수 없도록 방지하는 기능이 있을 수 있다.

( 파일 시스템은 응용 프로그램 별로 제약 조건을 하나하나 처리해야하기 때문에 무결성을 유지하기가 어렵다. )

 

 

3. 데이터의 보안성 

 :  허가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.

( 파일 시스템은 파일 단위로 검색, 갱신, 실행 등의 권한을 부여할 수 있어서 사용자 별 세밀한 접근 제어가 어렵다.)

 

 

4. 데이터의 일관성 

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

또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.

( 파일 시스템에서는 중복된 데이터를 변경하는 게 어렵기 때문에 중복 데이터 중 일부만 변경된다고 하면 중복 데이터 간에 불일치가 발생할 수 있다. )

 

 

5. 데이터의 중복 최소화 

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

( 파일 시스템은 응용 프로그램별로 데이터를 파일로 관리하기 때문에 같은 데이터가 여러 파일에 저장되어 데이터 중복 문제가 발생할 수 있다. )

 

 

 

데이터베이스 관리 시스템의 종류


DBMS는 시간이 지남에 따라 계속해서 새로운 모델들이 제시되어 왔다.

기존의 DBMS 모델의 문제점이나 단점을 보완하기 위해 계속해서 새로운 모델들이 만들어지기 때문이다.

각 DBMS 모델을 간단히 정리해보면 다음과 같다.

 

 

< 데이터베이스 모델 발전 과정 >

 

 

계층형 ( Hierarchical DataBase )

  • 데이터 간의 관계가 트리 형태의 구조이다. 트리는 부모-자식 관계로 표현되며 부모와 자식 간에는 1:N ( 일 대 다 )로 구성될 수 있다.
    데이터를 세그먼트 ( 레코드 ) 단위로 관리하며 세그먼트 간 계층을 트리구조로 관리한다. 구조가 간단하고 구현, 수정, 검색이 쉽지만 부모 자식 간에 N:N (다 대 다) 관계 처리가 불가능하고, 구조 변경이 어렵다.

  • DBMS 예 : IMS ( IBM 의 Information Management System )

< 계층형 데이터베이스 모델 구조 >

 

 

네트워크형 ( Network DataBase )

  • 계층형 데이터베이스의 단점을 보완하여 데이터 간 N:N ( 다 대 다) 구성이 가능한 망 형 모델이다. 계층 구조에 링크를 추가하여 유연성과 접근성을 높였다. 하지만 구조가 복잡해 유지보수가 어렵다.

  • DBMS 예 : IDMS ( Integrated Data Store ) 

< 네트워크형 데이터베이스 모델 구조 >

 

 

관계형 ( Relational DataBase )

  • 관계형 데이터베이스 모델은 키( key )와 값 ( value )으로 이루어진 데이터들을 행( row )과 열 ( Column )로 구성된 테이블 구조로 단순화 시킨 모델이다. SQL ( Structured Query Language ) 를 사용하여 테이터를 처리한다. 데이터 모델링이 간단하지만 CAD/CAM , GIS 등과 같은 비정형 데이터들을 다루거나 실시간 분석에는 적합하지 않다.

  • DBMS 예 : MySQL 

< 관계형 데이터베이스 모델 구조 >

 

 

객체 지향형 ( Object-Oriented DataBase )

  • 객체지향 프로그래밍 개념에 기반하여 만든 데이터베이스 모델이다. 정보를 객체의 형태로 표현한다. 객체지향 프로그래밍 개념 ( 클래스, 상속 등 )을 사용할 수 있다.
    CAD/CAM. GIS 등의 비정형 데이터들을 데이터베이스화 할 수 있도록 하기 위해 만들어진 모델이다.
    멀티미디어 데이터 지원이 가능하지만 SQL 쿼리를 사용할 수 없고 ( OQL 이 있긴하다. ), 검색이나 대규모 트랜잭션 처리에서 성능이 떨어지는 단점이 있어 몇몇 특수한 전문분야 정도에서만 사용되고 있다.

  • DBMS 예 : O2, ONTOS

 

객체 관계형 ( Object-Relational DataBase )

  • 관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스 모델이다. 객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 관계형 데이터베이스 보다 더 다양하게 추가되었다.

  • DBMS 예 : UniSQL, Object store

 

 

NoSQL 

  • Not Only SQL 의 줄임말로 SQL 뿐만 아니라 다양한 특성을 지원한다는 의미라고 해석할 수 있다. 데이터 간에 관계를 정의하지 않는 데이터베이스 모델로 기존의 RDBMS 의 복잡도와 용량의 한계를 극복하기 위한 목적으로 만들어졌다. 비정형 데이터 처리에 유리하지만 스키마 변경이 불가능해  데이터값에 문제가 발생하면 감지가 어렵다. 

  • DBMS 예 : redis

 

 

NewSQL

  • New 와 SQL 의 합성어이다. RDBMS 의 SQL 과 NoSQL 의 장점을 결합하여 관계형 모델, 트랜잭션 지원 및 확장성과 고 가용성을 모두 만족시키려는 목적에서 만들어진 데이터베이스 모델이다.

  • DBMS 예 : VoltDB

 

 

 

 

 

 

 

 

반응형

+ Recent posts