데이터베이스(Database)
1. 들어가며
정보화 시대에서 인간은 수많은 정보 속에 살고있다. 정보를 기초로 움직이고 선택하며 결정을 내린다. 오늘 비가 온다는 정보를 얻은 뒤 당신의 외출 고려사항은? 우산을 챙기고 장화를 신지 않겠는가? 필자는 정보 혹은 데이터를 아주 중요하게 생각한다. 하루에 수십만가지에서 수십억개의 데이터가 생성되고 삭제가 된다. 하지만 그 데이터들이 유용한가, 실용적인가에 대한 고민은 항상한다. 시간은 한정적이고 우리 뇌에서 기억하는 데이터 또한 한정적이다. 그러면 우리에게 필요하고 중요한 데이터들만 쏙쏙 뽑아 쓸순 없을까? 보다 깔끔하고 정리된 정보들은 우리들의 삶을 좀 더 나은 방향으로 이끌어 줄 것이다. 이 글에서는 데이터베이스의 정의, 저장, 종류, 쓰임새 등에 대한 기초적인 지식에 대해 알아볼 것이다.
2. 데이터베이스(Database)의 정의
-
데이터베이스란 일반적으로 컴퓨터 시스템에 전자 방식의 구조화된 정보 또는 데이터의 체계적인 집합을 의미한다. 데이터베이스는 보통 데이터베이스 관리 시스템(DBMS-Database Management System)에 의해 제어되고, 데이터와 DBMS는 연관된 어플리케이션들과 함께 ‘데이터베이스 시스템’으로 불린다. 현대에서는 편의상 더 짧게 ‘데이터베이스’라고 통칭된다.
-
오늘날 운용되는 가장 공통적인 유형의 데이터베이스의 데이터는 일반적으로 표 혹은 테이블이라고 불리는 곳 안에 행(row)과 열(element)로 모델링된다. 이러한 일관적인 구조는 데이터를 쉽게 액세스, 관리, 수정, 업데이트, 제어, 체계화시키고 그 효율성을 증대하기 위해서이다. 대부분의 데이터베이스는 데이터 작성 및 쿼리 작업에 구조화 질의 언어(SQL)를 사용한다.
3. SQL(Structured-Query-Language) 정의
:SQL은 데이터를 정의, 관리, 수정, 조작, 제어를 목적으로 대부분의 관계형 데이터베이스에 의해 사용되는 프로그래밍 언어이다. 목적에따라 총 3가지 구문으로 나뉘어진다.
- DDL(Data Definition Language): 데이터 혹은 DB를 생성 혹은 삭제하거나 그 구조를 변경하기 위해 사용되는 명령어
- ex. CREATE, DROP, ALTER
- DML(Data Manipulation Language): 데이터 처리, 조회, 검색하기 위한 명령어
- ex. INSERT, SELECT
- DCL(Data Control Language): 데이터 관리, 무결성, 보안성을 지키기 위해 사용되는 명령어이다.
- ex. GRANT, REVOKE
4. 데이터베이스(Database) 기본 요소
- 테이블(Table) : 'Religion' 혹은 'Entity'라고도 불리며, 데이터를 행과 열이 있는 표 모양으로 나타낸 것을 가리킨다.
- 열(Column) : 테이블의 세로축으로, 'Column'이나 'Field'라고 불리기도 한다. 데이터를 구분하는 항목이 된다.
- 행(Row) : 테이블의 가로축으로, 'Row'나 'Record'라고 불리기도 하며, 실질적인 데이터가 담긴다.
5. 데이터베이스(Database) 종류
꾸준한 경제 성장과 함께 반도체 부분의 상당한 발전이 다양한 유형의 데이터베이스를 구축하는데 많은 도움을 주었다. 산업별 혹은 조직에 적합한 데이터를 어떻게 활용할것인가에 따라 데이터베이스의 종류를 선택하고 적용할 수 있다. 아래는 현시대에 대표적인 데이터베이스의 종류들과 그 특징에대해 알아보자.
-
관계형 데이터베이스(RDB-Relational Database)
- 관계형 데이터베이스 내 항목들은 행(row)과 열(column)을 가진 일련의 표 혹은 테이블로 체계화되고, 고유키(Primary Key)를 사용해 서로 다른 데이터를 식별한다. 이러한 기술은 구조화된 정보에 접근 할 수 있는 가장 효율적이고 유연한 방식을 제공한다.
-
객체 지향형 데이터베이스(ODB-Object Database)
- 데이터를 객체(Object)의 형태로 표현한 데이터베이스이며, 객체 지향형 프로그래밍을 사용할때 유용하다. 객체 지향형 프로그래밍과 마찬가지로 객체식별자(OID-Object Identifier), 속성(Attribute), 매소드(Method), 클래스(Class), 상속(Inheritance) 등 기본적인 구조로 되어 있으며 그 특성 또한 유사하다.
-
분산 데이터베이스(Distributed Database)
- 하나의 데이터베이스 관리 시스템(DBMS)이 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스이다. 물리적으로 동일한 위치에 여러 대의 컴퓨터로 구성된 경우 또는 컴퓨터 네트워크에서 상호 연결된 컴퓨터 군에 분산되어있는 경우 등이 있다.
-
데이터 웨어하우스(Data Warehouse Database)
- 데이터 중앙 보관소인 데이터 웨어하우스는 신속한 쿼리 및 분석을 위해 특별히 설계된 데이터베이스 유형 중 하나이다. 서버내 무수한 데이터중에 필요한 데이터들만 적절한 필터와 가공을 거쳐 1차적으로 저장 및 관리를 하는곳이다.
-
NoSQL 데이터베이스(no relational)
- NoSQL 또는 비관계형 데이터베이스는 (데이터베이스에 입력되는 모든 데이터가 구성되는 방식을 정의하는 관계형 데이터베이스와 달리) 비정형 데이터와 반정형 데이터가 저장 및 조작될 수 있도록 지원한다. NoSQL 데이터베이스는 웹 어플리케이션이 더 흔해지고 더 복잡해짐에 따라 활용도가 높아지기 시작하고 있다.
-
그래프 데이터베이스(Graph Database)
- 그래프 데이터베이스는 개체, 그리고 개체 간 관계 측면에서 데이터를 저장한다.
-
OLTP 데이터베이스(Online Transaction Processing Database)
- OLTP 데이터베이스는 빠른 속도의 분석용 데이터베이스로, 다수의 사용자에 의해 수행되는 다량의 트랜잭션을 위해 설계되었다.
-
클라우드 데이터베이스:(Cloud Database)
- 프라이빗, 퍼블릭 또는 하이브리드 클라우드 컴퓨팅 플랫폼에 존재하는 정형/비정형 데이터 집합이다. 클라우드 데이터베이스 모델 유형으로는 전통 방식의 데이터베이스와 서비스형 데이터베이스(DBaaS)가 있는데, 이 경우 서비스 제공업체가 관리 업무와 유지보수 서비스를 제공한다.
6. 데이터베이스 관리 시스템(DBMS-Database Management System)
데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)으로 알려진 포괄적인 데이터베이스 소프트웨어 프로그램을 필요로 한다. DBMS는 데이터베이스와 최종 사용자 또는 프로그램 사이의 인터페이스로서, 사용자들이 정보를 체계화 및 최적화하는 방식을 검색, 업데이트 및 관리하도록 도와준다. 또한, 데이터베이스에 대한 관리 및 제어를 가능하게 하여 성능 모니터링, 튜닝, 백업, 복구 등과 같은 다양한 관리 작업을 지원한다.
흔히 사용되는 데이터베이스 소프트웨어 또는 DBMS로는 MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Database, dBASE가 있다. 아래 그림은 2013년도부터 2019년도까지 다른 종류의 RDBMS의 실제 사용빈도 및 선호도에 대한 조시를 나타냈다.
7. 마치며
데이터베이스와 마친가지로 컴퓨터는 지금 이 순간에도 변화를 거듭하고 성장하고 있다. 매 순간 찾아보고 공부를해야 뒤떨어지지 않는다. 이 길로 들어선 순간부터 죽을때가지 공부한다는 각오로 임해야한다. 인생 역시 공부의 연속이듯…
8. reference
[Database-General-Idea-and-Definition-of-DataBase/Oracle]
[Database-Classification-Object-Database-Concept-and-example/naver-blog/mhanaro728]
[Database-Definition/wiki]
[Database-Definition-of-SQL-and-Example/dbguide]
[Image-of-Database-Main/blogs-oracle/database]
[Image-of-Database-DBMS-Example/Namuwiki]
[Image-of-Database-Table-Example/thoughtco]
[Image-of-Database-Relational-Example/omnisci]
[Image-of-Database-Object-Example/codeproject]
[Image-of-Database-Distributed-Example/researchgate]
[Image-of-Database-Data-Warehouse-Example/monitis]
[Image-of-Database-No-SQL-Database-Example/datastax]
[Image-of-Database-Graph-Example/venturebeat]
[Image-of-Database-Online-Transaction-Processing-Example/Oracle]
[Image-of-Database-Cloud-Example/researchgate]