• 데이터베이스의 종류

    2021. 5. 28.

    by. Jacob Lee

    728x90

     


     

    데이터베이스의 종류

    DBMS는 데이터 저장 방법에 따라 몇 가지로 분류될 수 있다.

     

    계층형 데이터 베이스

    역사가 오래된 DBMS로, 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식이다.

    하드디스크나 DVD 파일 시스템을 이러한 계층형 데이터베이스라고 할 수 있다.

    현재는 거의 사용되지 않는 방식이다.

     

    관계형 데이터베이스

    관계 대수(relational algebra)라는 것에 착안하여 만들어진 데이터베이스이다.

    관계 대수 형태란, 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다.

    가로 방향으로는 '행(row)'을, 세로 방향으로는 '열(column)'을 나열한다.

    각각의 표에 이름을 붙여 관리하고, 이때 데이터베이스 안의 데이터는 SQL 명령어로 조작할 수 있다.

     

    객체지향 데이터베이스

    객체지향 언어란 '객체(object)'라는 것을 중심으로 프로그래밍하는 언어이다.

    여기서 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것이 객체지향 데이터베이스이다.

     

    XML 데이터베이스

    XML이란 자료 형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것이다.

    태그는 HTML과 비슷한 형식으로 <data>데이터</data>와 같은 형식으로 표현한다.

     

    즉, XML 데이터베이스는 이처럼 XML 형식으로 기록된 데이터를 저장하는 데이터베이스이다.

    XML 데이터베이스에서는 SQL 명령을 사용할 수 없고, XQuery라는 전용 명령어를 사용해야 한다.

     

    키-밸류 스토어(KVS)

    키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스이다.

    키와 밸류의 조합은 연상 배열이나 해시 테이블(hash table)에서 자주 볼 수 있다.

    NoSQL(Not only SQL)이라는 슬로건으로부터 생겨난 데이터베이스로, 열 지향 데이터베이스라고도 불린다.

     

    *연상 배열(associative array): 자료 구조의 하나로, 키 하나와 값 하나가 연관되어 있으며 키를 통해 연관되는 값을 얻을 수 있다. 연상 배열, 결합성 배열, 맵(map), 딕셔너리(dictionary)라고 불리기도 한다.

     


     

    RDBMS 사용 시스템

    관계형 데이터베이스 관리 시스템(RDBMS)은 역사가 깊은 만큼 다양한 시스템에서 사용된다.

    메인프레임(main frame)은 대부분 RDBMS를 사용한다고 해도 과언이 아닐 정도이다.

     

    현재 일반적으로 사용하는 인프라는 당연히 인터넷인데, 웹 시스템과 연동하여 RDBMS를 사용하는 경우도 매우 많아졌다. 비행기나 전철의 대규모 예약 시스템에서부터 마을 병원의 작은 예약 시스템에 이르기까지, RDBMS는 널리 쓰이고 있다.

     

    하드웨어의 진화 역시 한몫을 하는데, 단말이 고성능화, 소형화되면서 지금은 휴대전화에도 RDBMS가 내장되어 있다.

    예를 들어, 구글이 개발한 휴대전화용 OS인 안드로이드에도 'SQLite'라는 RDBMS가 표준으로 기본 내장되어 있다.

    이름에서도 알 수 있듯이 SQLite는 휴대 단말 등 작은 하드웨어용으로 경량화한, 임베디드 시스템에 자주 쓰이는 RDBMS이다.

     


     

    데이터베이스 제품

    RDBMS는 관계형 데이터베이스를 관리하는 소프트웨어를 일컫는 말이지만, RDBMS라는 이름의 소프트웨어가 존재하는 것은 아니다. RDBMS에는 다음과 같은 제품들이 있다.

     

    Oracle

    오라클에서 개발한 RDBMS이다.

    현재 가장 많이 쓰이는 RDBMS 중 하나로, RDBMS의 사실상 표준이라고 할 수 있다.

     

    DB2

    IBM이 개발한 데이터베이스로 오라클만큼 역사가 오래된 RDBMS이다.

    DB2는 발표된 이래 한동안 IBM 컴퓨터에서만 구동되었기 때문에 오라클보다 다소 덜 유명하다.

     

    SQL Server

    마이크로소프트가 개발한 RDBMS로, 윈도우 플랫폼에서만 동작한다.

    앞에 제품들과 비교해서 비교적 새로운 제품이다.

     

    PostgreSQL

    PostgreSQL은 오픈 소스 커뮤니티가 개발한 RDBMS이다.

    기반이 되는 RDBMS가 UC Berkeley에서 탄생해서 실험적인 기능이나 독특한 구조를 가지기도 한다.

     

    MySQL

    마찬가지로 오픈 소스 커뮤니티에서 태어난 RDBMS이다.

    처음 출시할 때만 해도 경량 데이터베이스라는 점을 강조해 필요한 최소한의 기능만을 갖추었지만, 지금은 기능이 확장되면서 다른 RDBMS와 비교해도 부족해지 않을 정도이다.

     

    SQLite

    오픈 소스 커뮤니티에서 태어났고, 임베디드 시스템에 자주 쓰이는 작은 RDBMS이다.

     


     

    SQL의 방언과 표준화

    RDBMS는 처음부터 SQL 명령어를 이용해 데이터베이스를 조작하도록 설계된 만큼, 모든 RDBMS에서 SQL을 사용할 수 있다. 하지만 각 데이터베이스 제품별로 기능 확장이 이루어지는 과정에서 비슷한 조작을 실행해도 서로 다른 명령어가 필요한 상황이 발생했다. 즉, 특정 데이터베이스 제품에만 통용되는 고유 방언이 생겨난 것이다.

    이 같은 고유 방언의 간단한 사례 중 하나로 키워드 생략을 들 수 있다. 예를 들면, 데이터를 삭제할 때는 `DELETE` 명령어를 사용하는데, Oracle이나 SQL Server에서는 `DELETE` 뒤에 붙는 `FROM`을 생략해도 별 다른 문제가 없다. 하지만 DB2나, PostgreSQL, MySQL에서는 `FROM`을 생략할 경우 구문 에러가 발생해서 실행되지 않는다.

    프로그래밍 언어의 세계에서 방언은 환영받지 못한다. 

    그래서 이 같은 방언을 없애려 '표준어'가 등장하기 시작했다. 

    ISO나 ANSI가 결정한 'SQL-92', 'SQL-99', 'SQL-2003'등이 바로 표준 SQL이다.

     

     

    Reference

    728x90

    'Back-end > Database' 카테고리의 다른 글

    데이터베이스 서버 이해하기  (0) 2021.05.28
    데이터베이스 이해하기  (0) 2021.05.27

    댓글