brunch

You can make anything
by writing

C.S.Lewis

by Don Lee Feb 20. 2022

개인용 DB Vs. 기업용 DB

#4 궁금했던 IT 이야기 - Apple2에서 Cloud까지

   데이터베이스(Database, 이하 DB)는 개인이나 기업에서 데이터를 효율적으로 관리하기 위한 소프트웨어입니다. 8/90년대 처음 접한 데이터베이스는 클리퍼(Clipper),  디베이스(DBase 3,4), 로터스 1-2-3(Lotus 1-2-3) 뒤늦게 Microsoft Access 등이 대표적인 개인용 데이터베이스입니다. 요즘 30년이 지나도 아직 남아있는 건 Access 정도만 Microsoft Office Package에 포함되어 있는 것 같습니다.



   8/90년대 기업에서 많이 쓰는 데이터베이스는 IBM DB2와 Oracle 6/7가 있습니다. 기업용 솔루션이기에 아직도 많은 기업에서 버전업해서 사용을 하고 있습니다. 개인용과 기업용 DB의 가장 큰 차이점은 동시 업데이트할 수 있는 여부에 따라 달라집니다. 개인용은 PC에서 자신의 데이터를 추가/수정/삭제 처리를 하는 형태로 관리하는 것이고 기업용은 동시에 여러 사람이 데이터를 추가/수정/삭제할 수 있는 데이터베이스를 말합니다.

   필자가 처음 Oracle 데이터베이스를 배울 때 강사님께 왜 어려운 오라클을 쓰는지 모르겠다고 Clipper나 DBASE가 훨씬 편한 것 같다고 했었는데 몇 년 뒤 대학에서 DB 관련 강의를 할 때 한 학생이 자기는 Access가 더 좋은 것 같다고 똑같이 질문하는 걸 듣고 "비교 상대가 아닙니다. 학생" 이전에 강사님께 들은 답변을 그대로 했던 기억이 납니다. 거의 30년 전에 Oracle6을 처음 배웠는데 오라클은 아직 많은 기업에서 관계형 데이터베이스로 사용하고 있으니 소프트웨어 중 데이터베이스 최강자의 저력은 무시할 수 없는 것 같습니다.


데이터베이스(Database, DB)

사람들의 활동 중에 의미 있는 데이터(자료) 또는 사람들이 관심을 가지고 있는 데이터를 모아둔 것으로 사용자의 물음에 답을 줄 수 있어야 한다.
하나의 Database 에는 서로 관련된 데이터들이 컴퓨터가 처리할 수 있는 형태로 저장되어 있고 계속 변경되는 자료에 대한 갱신(추가, 변경, 삭제)이 가능해야 하고 저장된 데이터는 사용자의 물음에 대해 대답할(조회) 수 있어야 한다.

※ Database 예
은행의 계좌 Database
- 계좌 012-0011222의 잔액은 얼마인가?
학교의 학생 Database
- 2001년 2학기 경영정보학부의 학사경고자의 명단을 출력하시오.
도서관의 도서 Database
- 도서 ’ 데이터 베이스 입문’을 언제쯤 대출할 수 있는가?


일반적인 Database Management System (DBMS)


   필자가 데이터베이스라고 했지만 데이터베이스에도 많은 종류가 있습니다. 앞서 이야기한 데이터베이스는 관계형 데이터베이스(Relational Database, 이하 RDB)는 테이블에 컬럼 간의 관계에 의해 데이터를 관리하는 데이터베이스 관리 시스템입니다.


관계형 데이터베이스(關係形 Database, Relational Database, RDB)

키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다. 1970년 에드거 F. 커드가 제안한 데이터 관계형 모델에 기초하는 디지털 데이터베이스이다.

- 데이터들은 행과 열로 이루어진 여러 개의 서로 다른 테이블에 저장된다.
- 테이블은 키필드 또는 공통 필드를 통하여 연결된다.
- 레코드의 삽입, 수정, 삭제가 쉽다.
- 검색시간이 경우에 따라 다소 길 수 있다.
- 오늘날 가장 널리 사용되는 모델

출처. 위키백과 관계형 데이터베이스


관계형 데이터베이스(Relational Database) 모델 사례


   관계형 데이터베이스(RDB) 이전에는 계층형 데이터베이스(Hierarchical Database, 이하 HDB)가 있었습니다. 지금까지도 가장 많이 사용되는 부분은 LDAP(Lightweight Directory Access Protocol) 서비스에 많이 사용되고 있습니다. 가장 유명한 LDAP 중 하나는 Microsoft AD(Microsoft Active Directory)는 거의 대부분의 기업에서 계정(로그인 ID) 관리용 시스템으로 많이 사용하고 있습니다.


계층형 데이터베이스 모델(Hierarchical Database model)

데이터가 트리 형태의 구조로 조직된 것을 말한다. 이 구조는 반복적인 부모-자식 관계 정보를 표현한다. 각 부모는 다수의 자식을 가질 수 있고, 자식은 단 하나만의 부모를 가질 수 있다. 어떤 레코드에 관한 모든 애트리뷰트(attribute)는 엔티티 타입(entity type) 하나 내에 나열된다.
이 모델에 대한 데이터베이스 구현에서는 하나의 엔티티 타입은 하나의 테이블에 해당한다. 각각의 레코드는 행으로 표현되며, 애트리뷰트(attribute)는 열로 표현된다. 엔티티 타입은 엔티티 타입끼리 서로 1:N 매핑된다. 이 방식은 일-대-다 관계로도 불리는 방식으로 불리기도 한다.
예를 들어, 계층형 데이터베이스 모델의 한 예는 회사의 직원 목록을 "직원"이라는 이름의 테이블(table) (엔티티 타입)에 저장한 것이다. 이 테이블 안에는 성명, 직위, 봉급 같은 속성(열)이 있을 수 있다. 또한 각 직원의 자녀에 대한 자료도 성명, 생년월일 등의 속성을 갖는 "자녀"라는 이름의 별도의 테이블에 둘 수 있다. "직원" 테이블은 부모 세그먼트를 표현하며, "자녀" 테이블은 자녀 세그먼트를 표현한다. 이 두 세그먼트는 “계층”을 하나 형성한다: 각각의 직원은 다수의 자녀를 가질 수 있지만, 각각의 자녀는 한 명의 직원을 부모로서 가진다. (단, 한 회사 안에 부부, 혹은 부모-자녀가 동시에 재직하고 있지 않다고 가정한다.)
계층형 구조는 초창기 메인프레임 컴퓨터 데이터베이스 매니지먼트 시스템에 널리 쓰였다. 여러 타입의 데이터 사이의 계층형 관계를 이용할 경우, 어떤 문제는 매우 쉽게 답할 수 있지만, 어떤 문제는 매우 답하기 어려워진다. 일-대-다의 관계가 무너졌을 경우(예를 들어 학생이 한 명 이상의 담임 선생님을 가질 경우), 계층형 관계는 네트워크 모델이 되어버린다.
오늘날 가장 널리 쓰이는 계층형 모델은 LDAP 모델이다. 이외에는 계층형 모델은 오늘날의 데이터베이스들에서 거의 쓰이지 않고 있다. 그러나, 정보를 기록하는 다른 매체 및 기법들, 예를 들어 XML 문서라든지, 파일 시스템이라든지, 윈도 레지스트리 등에서는 쓰이고 있다.

출처. 위키백과 계층형 모델


계층형 데이터베이스(Hierarchical Database) 모델 사례


   기업용 데이터베이스는 관계형 데이터베이스에서도 기간계 데이터베이스(On-Line transaction processing, 이하 OLTP)와 분석계 데이터베이스(On-Line Analytical Processing, 이하 OLAP)로 구분하기도 합니다. 기간계 데이터베이스는 ERP, 쇼핑몰, SCM 등 업무 처리를 위한 데이터를 관리하는 시스템을 말합니다. 분석계는 기간계 시스템의 데이터를 분석계로 가지고 와서 비즈니스적으로 의미 있는 내용을 찾아내는 형태로 사용합니다. 기간계 시스템은 데이터의 추가/수정/삭제의 속도를 더 중시하는 형태로 데이터 모델이 만들어지고 분석계는 대량의 데이터를 빨리 읽을 수 있는 구조인 Star 또는 Snowflake 모델로 데이터 구조를 구성합니다.


데이터 설계 모델 비교



OLTP Vs. OLAP


   OLAP는 데이터웨어하우스(Data Warehouse, 이하 DW)를 구성하기 위해 일반적인 관계형 데이터베이스(대칭형 다중 처리, Symmetric Multiprocessor, 이하 SMP)와 병렬 처리 데이터베이스(초병렬 처리, Massively Parallel Processor, 이하 MPP)로 구분하여 이야기할 수 있습니다.


SMP Vs. MPP Database 비교



   마지막으로 최근 기업들이 최근 들어 불법적인 은행 계좌 동향이나 인력 구조 분석 등을 하기 위해 사용하는 그래프 데이터베이스(Graph Database)가 있습니다. 관계형 데이터베이스와 같이 대중적인 데이터베이스는 아니지만 특수 목적의 분석을 하기 위해 노드와 엣지, 속성 정보 등을 기반으로 구성되는 그래프 구조의 데이터베이스가 몇몇 업체를 중심으로 발전해 나가고 있습니다. 이전에 네트워크 구조 데이터베이스와 유사합니다. 세상은 돌고 돌듯이 비슷한 것 같으면서 신기술로 변화되어 새롭게 나옵니다.


그래프 데이터베이스(Graph Database)

컴퓨팅에서 그래프 데이터베이스(graph database, GDB)는 시맨틱 쿼리를 위해 노드, 엣지, 프로퍼티와 함께 그래프 구조를 사용하여 데이터를 표현하고 저장하는 데이터베이스이다. 이 시스템의 주 개념은 그래프(엣지 또는 관계)이며 스토어에 직접 데이터 항목들의 관계를 정한다. 이러한 관계들은 스토어 안의 데이터가 함께 직접 연결될 수 있게 한다.
그래프 데이터베이스는 일반적인 그래프를 표현한다는 점에서 1970년대의 네트워크 모델 데이터베이스와 비슷하지만 네트워크 모델 데이터베이스는 더 낮은 수준의 추상화로써 동작하며 일련의 엣지 간의 용이한 횡단이 불가능하다.

출처. 위키백과 그래프 데이터베이스


Graph Database Sample


데이터베이스 변천사

영원한 1위 였던 오라클이 3위로 ibm은 하락의 길

클라우드 1위 AWS와 2위 Microsoft 사들이 DBMS 2위와 1위로 바뀌는 걸 보면 클라우드 준비한 업체만 살아남는 것 같습니다. 클라우드 3위 GCP는 Dbms에서도 하늘 같이 올라는 현상을 보면 이제 클라우드 세상이 되어 가고 있는 것을 검증하는 것 같습니다.

https://www.linkedin.com/feed/update/urn:li:activity:6920686483880235008/


※ 글이 도움되시면 브런치 작가 "구독"과 "좋아요" 부탁드립니다.

    글의 공유 및 인용은 가능하며 반드시 출처를 밝혀 주세요.


※ 궁금했던 IT 이야기 - Apple2에서 Cloud까지

#1 40년 전 취미가 직업이 돼버린 IT 첫 시작 https://brunch.co.kr/@df79991e83ed416/5

#2 16bit 추억의 Windows 3.1과 아래한글 https://brunch.co.kr/@df79991e83ed416/9

#3 X-Window 들어봤나? https://brunch.co.kr/@df79991e83ed416/15

#4 개인용 DB Vs. 기업용 DB  https://brunch.co.kr/@df79991e83ed416/27

#5 PC 통신에서 기가인터넷 https://brunch.co.kr/@df79991e83ed416/44

#6 PDA에서 Smart Devices https://brunch.co.kr/@df79991e83ed416/40




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari