한 걸음씩 기록하며

[Database]란 무엇인가 본문

DATABASE

[Database]란 무엇인가

Haksae 2022. 2. 6. 22:18

1. Database

  • Data는 컴퓨터에서 다루는 모든 자료들을 의미힌다.
  • Database(이하 DB)는 컴퓨터에서 다루는 자료들을 통합하여 관리하는 데이터의 집합체를 의미한다.

 📋 왜 데이터 베이스를 사용하는 것일까?

  • 데이터를 오랜 기간 저장 및 보존하기 위해
    • 메모리(RAM)에 존재하는 데이터는 휘발성이기 때문에 영구히 보존할 수 없다. 보관하고 싶은 데이터를 DB를 사용하여 저장하면 필요한 자료들을 계속해서 보존할 수 있다.
  • 데이터를 체계적으로 관리하기 위해
    • 데이터를 그냥 저장하면, 저장된 데이터들을 사용하기 어렵고 수많은 비효율을 양산해낼 것이다.
    • DB는 데이터를 구조화하여 관리할 수 있게 해주며, 중복된 데이터를 없애고 효율적인 처리를 할 수 있도록 관리한다.

2. DBMS (Database Management System)

  • DB가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. (응용프로그램을 이용해 데이터를 관리하는 방법)
  • 이러한 방법은 데이터 중복, 데이터 불일치의 문제를 유발시켰다. 이러한 시스템의 단점을 보완하기 위해 DB가 만들어졌다.
데이터 불일치란?
- 데이터 중복으로 발생할 수 있는 대표적인 문제 중 하나로서, 동일한 데이터를 가지고 있음에도 데이터가 mismatch하는 것을 의미한다.
- 가령, A,B라는 두 개의 DB가 있을 때, 각 DB에 중복되는 동일한 데이터를 수정할 때, 참조하는 데이터가 똑같은 자료임에도 불구하고 다르게 나타나는 현상을 의미한다.

 

  • DB와 사용자 사이에서 사용자의 요구에 따라 정보를 생성해주고 DB를 관리할 수 있게 해주는 소프트웨어를 DBMS라고 한다.
  • DBMS는 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용 프로그램들이 DB를 공용할 수 있도록 관리해준다.
  • DBMS는 DB의 구성, 접근방법, 유지관리에 대한 모든 책임을 갖는다.

3. DB와 DBMS의 특징

*DB를 관리해주는 소프트웨어가 DBMS이니, 둘의 특징은 같다고 봐도 무방하다.

 

  • 데이터의 독립성 
    • 물리적 독립성 : DB 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
    • 논리적 독립성 : DB는 다양한 응용 프로그램의 논리적 요구를 만족 시켜줄 수 있다.
  • 데이터의 무결성
    • 데이터의 유효성 검사를 통해서, 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지한다.
    • 이를 통해 데이터의 무결성을 구현하게 된다.
  • 데이터의 보완성
    • 허가된 사용자들만 DB나 DB 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정할 수 있다.
    • 이를 통해 모든 데이터에 대한 보안을 구현할 수 있다.
  • 데이터의 일관성
    • 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다.
    • 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
  • 데이터의 중복 최소화
    • DB는 데이터를 통합해서 관리함으로써 데이터 중복 문제를 해결 할 수 있다.

4. DBMS의 종류

*기존의 DBMS 모델의 문제점이나 단점을 보완하기 위한 새로운 모델들은 역사 속에서 아래와 같이 계속 제시되어왔다.

 

1) 계층형 (Hierarchical DataBase )

 

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


2) 네트워크형 (Network Database)

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

 

3) 관계형 ( Relational DataBase )

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

4) 객체 지향형 ( Object-Oriented DataBase )

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

5) 객체 관계형 ( Object-Relational DataBase )

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

6) NoSQL 

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

7) NewSQL

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


참고 및 출처

https://velog.io/@dnjscksdn98/Database-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EB%9E%80

https://noahlogs.tistory.com/36

https://velog.io/@catalyst88/Database

'DATABASE' 카테고리의 다른 글

[ODM]이란 무엇인가?  (0) 2022.03.21
[ERD]란 무엇인가?  (0) 2022.02.27
[Data Modeling]이란 무엇인가  (0) 2022.02.27
[ORM]이란 무엇인가  (0) 2022.02.06
[ SQL, NoSQL]이란 무엇인가  (0) 2022.02.06
Comments