데이터베이스 정의

데이터베이스란 데이터를 조직적으로 통합하고 구조화해 놓은 데이터의 집합체를 말한다. 통합·저장·운영·공용이라는 성격의 데이터를 다루며, 실시간 접근성과 계속적인 변화, 동시 공용, 내용에 의한 참조라는 특징을 갖는다. 데이터베이스는 개체(개념·정보), 속성(가장 작은 논리적 단위), 관계라는 세 요소로 구성된다.

데이터베이스를 쓰면 중복을 최소화하고 데이터를 공유하며 일관성과 무결성, 보안을 유지할 수 있다는 장점이 있지만, 예산이 늘고 전문적인 기술이 필요하다는 단점도 함께 따라온다.

데이터베이스 시스템 발전배경

초기에는 파일 시스템으로 재고, 인사 같은 업무를 처리했다. 파일 하나로는 정해진 작업만 할 수 있었고, 두 가지 이상 관련된 작업은 사용자가 각각의 처리 결과를 수작업으로 합쳐야 했다. 이런 파일 시스템은 데이터 종속성과 중복성 문제를 낳았는데, 공통 액세스 루틴을 갖춘 파일 관리 시스템이 이 중복성 문제를 어느 정도 해결했다.

DBMS는 이런 단순 파일 처리 방식의 한계를 넘어, 복합적인 형태의 정보를 제공하고 하나의 데이터를 여러 목적으로 함께 쓸 수 있게 하며, 이를 통합적으로 관리한다.

개념

DBMS는 데이터베이스를 생성하고 검색하고 추가·삭제하는 작업을 원활히 처리하기 위한 프로그램의 집합이다. 응용 프로그램과 데이터 사이의 중재자 역할을 하며, 데이터를 저장하고 사용자가 원하는 정보를 효율적으로 제공한다.

기능

DBMS의 기능은 세 갈래로 나뉜다. DDL은 데이터의 구조를 정의하고, DML은 검색·삽입·갱신·삭제를 지원하며, DCL은 무결성과 보안 유지, 권한 절차를 담당한다.

구성요소

데이터베이스는 세 단계의 스키마로 구성된다. 외부스키마는 사용자와 응용 프로그램 관점을, 개념스키마는 범기관적 관점을, 내부스키마는 저장장치(물리적) 관점을 나타낸다. 이를 다루는 주체로는 일반인과 프로그래머를 아우르는 사용자(User), 그리고 시스템 기능이 원활히 돌아가도록 관리하고 책임지는 개인이나 집단인 **데이터베이스 관리자(DBA)**가 있다.

종류

DBMS는 시대에 따라 여러 모델로 발전해왔다. 1960년대 IBM이 개발한 계층형 DBMS는 트리 구조를 기반으로 한 최초의 상업적 성공 사례였고, 같은 시기 허니웰이 만든 네트워크형은 그래프 구조를 기반으로 했다. 1970년대 IBM이 내놓은 관계형은 관계 데이터 모델에 기반한 질의어 표준을 세웠으며 오늘날의 Oracle, DB2, Access, SQL Server 등이 이 계보를 잇는다. 1980년대에는 객체지향형이 등장했고, 오늘날 쇼핑몰이나 홈페이지 대부분은 MySQL, MariaDB, CUBRID 같은 오픈소스 DBMS를 쓴다.

DCL

DCL(Data Control Language)은 데이터베이스에 접근하거나 객체에 권한을 부여하는 역할을 하는 언어로, GRANT, REVOKE, COMMIT, ROLLBACK 같은 명령으로 이루어진다.

DDL

DDL(Data Definition Language)은 데이터베이스를 정의하는, 즉 데이터의 골격을 결정하는 언어로 CREATE, ALTER, DROP, TRUNCATE 명령이 여기 속한다.

DML

DML(Data Manipulation Language)은 데이터베이스에 입력된 레코드를 조회·수정·삭제하는 역할을 하는 언어로 SELECT, INSERT, UPDATE, DELETE 명령으로 이루어진다.