[1] 데이터베이스 – SQL 첫걸음

데이터베이스란?

데이터베이스의 정의를 알기 전에 데이터가 무엇인지부터 알아야 합니다.

데이터란 컴퓨터 안에 기록되어 있는 숫자를 의미하며, 이러한 데이터의 집합을 데이터베이스라고 합니다.

일반적으로 통용되는 데이터베이스란 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 형태를 말합니다.

데이터베이스 내의 데이터는 영구적으로 보존되어야 하기때문에 이 데이터들은 하드디스크 등의 비휘발성 저장장치에 저장합니다.

 

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

일반적으로 사람들이 생각하는 데이터베이스는 아래와 같은 그림이죠.
이 곳은 스웨덴에 건설중인 페이스북 데이터센터 서버팜 입니다.

유명한 SNS 인 페이스북에 올라오는 글, 사진, 동영상 등의 막대한 양의 파일을 관리하기위해선 막대한 양의 데이터베이스를 관리하는 곳도 필요하겠죠?

그곳이 바로 데이터센터 입니다.

이 데이터센터에 있는 서버컴퓨터(위 사진에서 길다란 검은색 물체)가 수많은 정보가 담긴 데이터베이스를 가지고 있습니다.

하지만 요즘은 데이터베이스가 개인용 컴퓨터나 스마트폰 등에 내장되어 있기도 합니다.

‘[0] 소개 및 준비’ 단계에서 MySQL 을 설치하셨다면 설치된 컴퓨터에 데이터베이스가 있는겁니다.

일상생활에서 보면 인터넷쇼핑을 할 때 장바구니에 물건을 담으면 데이터베이스에 그 물품정보가 저장된 것이고, 마트에서 물건을 살때 바코드를 찍으면 데이터베이스에 있는 정보를 가져와서 물품 정보를 얻어오는 것이며, 휴대폰에 전화번호를 저장할 때 데이터베이스에 연락처가 저장되는 것입니다.

 

2. DB와 DBMS

DB(Database, 데이터베이스) : 저장장치 내에 정리되어 저장된 데이터의 집합

DBMS(Database Management System, 데이터베이스 관리 시스템) : 데이터베이스를 효율적으로 관리하는 소프트웨어

DBMS를 사용하는 이유에는 3가지가 있습니다.

– 생산성

어떤 시스템이든 데이터 검색, 추가, 삭제, 갱신과 같은 처리가 필요합니다.

이와 같은 기본 기능을 DBMS가 제공합니다.

공장에서 물건을 만들 때 기계가 있는데 굳이 사람이 일일이 작업하지 않는다와 같습니다.

그저 기계를 작동시키는 법만 알고 사용해서 물건을 만들면 된다는 것입니다.

– 기능성

DBMS는 데이터베이스를 다루는 기능을 많이 제공합니다.

여러 유저들의 요청에 대응하거나, 대용량 데이터를 저장하고 고속으로 데이터를 검색하는 기능을 제공하기도 합니다.

– 신뢰성

대규모 데이터베이스는 많은 요청에 대응할 수 있도록 만들어져 있습니다.

이를 위해 하드웨어를 여러 대로 구성하여 신뢰성이 높이는 동시에 성능 향상을 하기도 합니다.

실제로, 컴퓨터를 여러대 두고, 소프트웨어를 통해 확장성부하 분산을 구현합니다.

또한, 많은 DBMS가 데이터베이스의 데이터를 다른 저장장치로 내보내는 기능(export)와 데이터베이스 안에 데이터를 집어는 기능(import)도 제공하기도 합니다. 이 기능으로 우리는 데이터를 백업, 복구 할 수 있습니다.

 

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

지금까지 알아온 데이터베이스를 관리하는 소프트웨어인 DBMS, 이 DBMS를 다루기 위해서는 이를 조작하는 언어인 SQL이 필요합니다.

데이터베이스에도 몇 가지 종류가 있습니다.

SQL은 그 중 ‘관계형 데이터베이스 관리 시스템(RDBMS: Relational Database Management System)’을 조작할 때 사용합니다.

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

– DML (Data Manipulation Language)

데이터베이스에 새롭게 데이터를 추가하거나 삭제하거나 내용은 갱신하는 등 데이터를 조작할 때 사용합니다.

– DDL (Data Definition Language)

데이터베이스는 ‘데이터 베이스 객체(object)’라는 데이터 그릇을 이용하여 데이터를 관리하는데, 이같은 객체를 만들거나 삭제 등 데이터를 정의할 때 사용합니다.

– DCL (Data Control Language)

트랜잭션을 제어하거나 데이터 접근권한을 제어하는 등 데이터를 제어할 때 사용합니다. 트랜잭션은 이후 ‘[36] 트랜잭션’ 에서 배우게 됩니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다