데이터베이스 공부를 시작했습니다. 일단 첫 번째로 데이터베이스가 무엇인지 그리고 회사에서 어떻게 사용되고 있는지 알아보도록 하겠습니다.
데이터베이스(database)란 data와 base의 합성어이다. 이는 결국 두 가지 기능을 지니고 있다고 생각할 수 있다.
- 데이터 저장소
- 데이터베이스 관리 시스템(DBMS)
따라서 데이터베이스는 크게 두 부분으로 나눌 수 있다.
- 데이터베이스 운용법
데이터베이스 운용은 주로 DBA라고 하는 데이터베이스 관리자에 의해서 수행된다. DBA는 주로 하드웨어 부분과 백업, 복구, 튜닝, 그리고 보안 등의 역할을 수행한다.
이와 관련된 자격증으로는 OCP와 OCM이 있다.
- 데이터베이스 구축법
데이터베이스 구축은 주로 개발자, 즉 프로그래머에 의해 행해진다. 이는 데이터의 생성, 수정, 삭제와 관련되며 SQL이라고 하는 표준 언어를 사용한다. 이 표준은 미국 표준협회(ANSI)에서 그 기준을 정한다. 보통 DBMS 시스템을 제공하는 기업들이 미국기업이기 때문에 자연스럽게 미국 표준을 따르고 있다.
DBMS에 관련된 업체는 굉장히 많지만 몇가지 주요회사들에 대해 살펴보자.
먼저 가장 알려져 있는 기업은 Oracle이 있다. 주로 Oracle의 경우에는 oracle이라고 하는 중대형급 또는 범용에서 사용되는 DBMS를 제공한다. 뿐만 아니라 mySQL이라는 중소형급 DBMS도 제공하고 있다.
두 번째로 IBM이 있다. IBM은 대형 컴퓨터를 주로 다루는 회사인 만큼 DB2라는 대형급 DBMS를 제공한다.
세 번째로 Mariadb라는 회사가 있다. 이는 mySQL과 유사한 중소형급 DMBS를 제공하는데, 실제로 Oracle사에서 mySQL을 개발하던 개발자들이 유료화에 반대하며 독립한 회사이다. 따라서 mySQL과 거의 똑같다.
마지막으로 SQLite라는 DBMS가 존재한다. 이는 초경량형에서 주로 사용하며, 스마트폰에 내장되어 있다.
이 외에도 우리가 잘 아는 엑셀을 사용하여 데이터베이스를 간단하게 구축하기도 하는데, 이를 위해 MS사에서 엑세스를 제공하고 있다.
데이터베이스는 일반적으로 엑셀과 매우 유사하다. 행 단위로 데이터가 삽입되고, 열 단위로 구분된다. 따라서 거대한 엑셀 형태의 구조라고 생각할 수 있다.
그리고 이런 데이터베이스 서버는 그래픽 인터페이스가 없기 때문에 우리가 눈으로 볼 수는 없다. 원하는 데이터들을 클라이언트를 이용하여 접근한다.
저장구조 > 관리 시스템 > (네트워크) > 클라이언트의 구조로 데이터베이스가 이루어져 있다고 생각할 수 있다.
우리가 흔히 데이터베이스와 함께 자바 언어를 배우는데 이는 클라이언트를 만들 때 자바 언어로 작성하기 때문이다.
다음은 DBMS가 어떻게 발전해왔는지를 알아보자.
먼저 과거에는 데이터를 문서로 저장하고 있었다. 따라서 초기에는 이런 종이류의 데이터들을 전산화하는 것이 가장 중요한 일이였다. 이렇게 등장한 것이 ERP이다.
ERP는 Enterprise Resource Price를 말하며 사무자동화를 위해 모든 데이터를 전산화하는 작업이다. 따라서 이 당시에는 Insert, Update, Delete 등의 데이터 입력 작업이 중요했다.
하지만 현대에 오면서 ERP가 아닌 이렇게 축적한 데이터를 활용하는 것이 점차 중요해졌고, 이를 위해 Extended ERP가 등장하게 되었다. 따라서 데이터 입력보단 select와 같은 데이터 검색이 더 중요해졌다.
Extended ERP에는 대표적으로 CRM과 SCM, 그리고 SEM이 존재한다. 일단 CRM과 SCM에 대해서 살펴보자.
CRM은 Customer Relationship Management의 약자이며, 말 그대로 고객 매출 정보, 구매 정보와 같은 고객 관련 정보들을 다룬다. 하지만 여기서 더 나아가 날씨 정보를 데이터베이스에 덧붙여 날씨와 고객 매출 간의 상관관계를 분석하기도 하고, 또는 고객들마다 구매정보를 바탕으로 그들의 lifecyle을 파악한다. 그리고 이를 바탕으로 맞춤형 상품 혜택들을 제공하는 것이다.
SCM은 Supply Chain Management를 의미한다. 즉 공급망과 관련된 정보들을 다룬다. 보통 공장 등에서 필요한 물품들이 부족하면 이에 대해 업체에 주문을 한다. 하지만 이런 번거로움을 해결하기 위해 SCM은 공급업체와 이런 공장 사이에 공유하는 데이터베이스를 구축하여 해당 물품량에 따라 배송을 할 수 있도록 한다. 쉽게 생각하면 쿠팡 정기배송정도로 보면 될 것 같다.
마지막으로 KM에 대해서 살펴보자. 이는 Knowledge base Management의 약자이며, 사실상 데이터베이스의 최종 목표라고 할 수 있다. 결국 데이터베이스라는 것은 단순하게 데이터를 저장하거나 분석하는 것 뿐 아니라 이를 활용하여 기업 경영에 적용하는 것이 핵심이다. 따라서 KM에서는 경영자에게 데이터 분석 결과를 보고해야하기 때문에 시각화가 가장 중요하다.
이를 간략하게 정리하면,
정보 축적(ERP) -> 정보 활용 분석(Extended ERP - CRM / SCM) -> 경영 전략(KM)
다음은 SQL에 대해서 간단하게 알아보자.
SQL문은 크게 DML ,DDL, DCL, TCL로 나누어진다. 각 기능에 대해서는 하나씩 공부하기로 하고, 일단 종류만 살펴보도록 하겠다.
- DML: insert, update, delete, merge, select(*)
select의 경우에는 DQL이라고 부르기도 한다.
- DDL: create, alter, drop, rename, truncate
- DCL: grant, revoke
- TCL: commit, rollback. savepoint
SQL 문장 작성 요령은 다음과 같다.
- sql문장은 대소문자를 구별하지 않음: 하지만 데이터의 경우는 구별해야한다.
- sql문장은 여러 줄에 걸쳐서 작성할 수 있다.
- 가독성이 중요하다.
- 키워드는 줄여 쓸 수 없고, 여러 줄에 걸쳐서 작성할 수도 없다.
- 일반적으로 각 키워드는 별도 라인에 작성한다.
- ;으로 끝나야 한다.
여기까지가 데이터베이스의 기본적인 사항들이며, 이제 본격적으로 SQL문을 공부하며 데이터베이스에 대해서 알아보도록 하겠다.
댓글
댓글 쓰기