1장-1강 데이터베이스

2019. 3. 8. 11:23SQL 첫걸음


데이터베이스란 도대체 무엇을 말하는 것일까요?

1강에서는 데이터 베이스의 개념에 관해 배우도록 하겠습니다.

데이터란 컴퓨터 안에 기록되어 있는 숫자를 의미하며, 이러한 데이터의 집합을 데이터베이스라고 합니다. 없은 의미에서는 '컴퓨터 안에 기록된 모든 것'을 데이터베이스라고 할 수 있습니다. 다만 일반적으로 통용되는 데이터베이스라는 개념은 조금 닫른데, 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 형태를 가리킵니다.

데이터베이스 내의 데이터는 영구적으로 보존되어야 합니다. 주기억장치에만 데이터를 저장한다면, 전원을 끄는 순간 모든 데이터는 사라져 버립니다. 이런 상태에서는 영구적이라 말할 수 없습니다. 따라서 데이터베이스의 데이터는 하드디스크나 플래시메모리(SSD) 등 비휘발성 저장장치에 저장합니다.


1. 시스템 내의 데이터베이스

얼마 전까지만 해도 데이터베이스는 일반적으로 데이터센터의 서버에서 운용했습니다. 이는 유저가 상상할 수 있는 일반적인 데이터베이스입니다. 하지만 현재는 데이터베이스가 개인용 컴퓨터나 휴대용 기기에 내장되어 있기도 합니다.

물론 데이터센터에 설치된 데이터베이스를 사용하는 시스템도 여전히 많습니다. 인터넷에서 쇼핑을 하거나 뭔가를 예약해야 할 때는 웹 시스템을 통해 데이터베이스에 접근할 수 있습니다.

시스템을 직접 사용하지 않는 상황에서도 데이터베이스에 데이터가 전송되는 경우가 있습니다. 예를 들어 편의점에서 물건을 사면, 계산대(POS 시스템)에서 데이터가 데이터베이스로 전송됩니다.

휴대용 기기에도 작은 데이터베이스가 있습니다. 휴대전화의 전화번호부가 좋은예입니다. 이처럼 데이터베이스는 다양한 시스템에서 사용되며 일상생활과도 밀접히 관련되어 있습니다.


2. DB와 DBMS

데이터베이스는 일반적으로 DB라는 약자로 통용됩니다. DB는 Database에서 알파벳 D와 B를 하나씩 추려내 만든 단어입니다. 데이터베이스는 저장장치 내에 정리되어 저장된 데이터의 집합이고, 이를 효율적으로 관리하는 소프트웨어를 '데이터베이스 관리 시스템(Database Management System)' 약자로 DBMS라 부릅니다.

다음으로 DBMS와 같은 전용 소프트웨어가 필요한 이유에 대해 설명하겠습니다.

-생산성

시스템 개발 과정에서의 생상성 향상을 도모할 수 있습니다. 어떤 시스템에서든지 데이터 검색, 추가, 삭제, 갱신과 같은 처리가 이루어지기 마련입니다. 이와 같은 기본 기능을 DBMS가 제공합니다. 시스템을 구축할 때 기본 기능부터 구현하는 것은 비용 측면에서 효율적이지 않습니다.

- 기능성

DBMS는 데이터 베이스를 다루는 기능을 많이 제공합니다. 복수 유저의 요청에 대응하거나, 대용량의 데이터를 저장하고 고속으로 검색하는 기능을 제공하기도 합니다. 나아가 데이터베이스 관리 기능을 유저가 확장할 수도 있어 유연하게 시스템을 개발할 수 있습니다.

- 신뢰성

대규모 데이터베이스는 많은 요청에 대응할 수 있도록 만들어져 있습니다. 이를 위해 하드웨어를 여러대로 구성하여 신뢰성을 높이는 동시에 성능 향상을 꾀하기도 합니다. 실제로 일부 DBMS는 컴퓨터 여러 대를 두고, 소프트웨어를 통해 확장성(Scalability)과 부하 분산(Load balancing)을 구현합니다. 이를 보통 '클러스터 구성' 또는 '스케일 아웃'이라고 부릅니다.

또한, 많은 DBMS가 데이터베이스의 데이터를 다른 저장장치로 내보내거나, 반대로 데이터베이스 안에 데이터를 집어 넣는 등의 기능을 갖췄습니다. 이때 집어 넣기 및 내보내기 기능을 통해 데이터베이스를 간단하게 백업할 수 있습니다.


3. 데이터베이스를 조작하는 언어 SQL

지금까지 설명했듯 DBMS는 데이터베이스를 관리하는 소프트웨어입니다. DBMS를 이용하면 간접적으로 데이터베이스를 참조할 수 있고, 혹은 데이터를 추가하거나 삭제, 갱신할 수도 있습니다.

이 같은 DBMS와의 대화에 필요한 것이 바로 SQL입니다. 뒤에서 자세히 설명하겠습니다만, 데이터 베이스에도 몇 가지 종휴가 있습니다. SQL은 그중 '관계형 데이터베이스 관리 시스템(RDBMS: Relational Database Management System)'을 조작할 때 사용합니다.

SQL은 IMB이 개발한 SEQUEL이라는 관계형 데이터베이스 조작용 언어를 기반으로 만들어졌습니다. 현재 ISO 등에 의해 표준화가 진행되어, C언어나 자바와 마찬가지로 표준 언어입니다. 이때 표준 언어라는 말은 곧 생상성을 향상시킬 수 있다는 의미입니다.

-SQL 명령의 종류

SQL 명령은 크게 다음과 같이 3가지로 나뉠 수 있습니다.

  • DML
    Data Manipulation Language의 약자. 데이터베이스에 새롭게 데이터를 추가하거나 삭제하거나 내용을 갱신하는 등, 데이터를 조작할 때 사용합니다. SQL의 가장 기본이 되는 명령셋(set)입니다.
  • DDL
    Data Definition Language의 약자로 데이터를 정의하는 명령어. 데이터베이스는 '데이터베이스 객체(object)라는 데이터 그릇을 이용하여 데이터를 관리하는데, 이 같은 객체를 만들거나 삭제하는 명령어입니다.
  • DCL
    Data Control Language의 약자로 데이터를 제어하는 명령어. DCL에는 트랜잭션을 제어하는 명령과 데이터 접근권한을 제어하는 명령이 포함되어 있습니다. 트랙젝션에 관해서는 8장에서 자세히 설명합니다.


'SQL 첫걸음' 카테고리의 다른 글

1장-3강 데이터베이스 서버  (0) 2019.03.13
1장-2강 다양한 데이터베이스  (0) 2019.03.11