DB는 전자적으로 저장되고 사용되는, 관련 있는 데이터들의 조직화된 집합이다. DBMS는 사용자가 그 DB를 정의하고 만들고 관리할 수 있게 해주는 소프트웨어이고 MySQL, PostgreSQL, Oracle, MS-SQL이 여기 속한다. 데이터와 DBMS에 그것을 쓰는 애플리케이션까지 묶으면 Database System인데, 이것도 줄여서 그냥 “DB”라고 부른다. 누가 “DB”라고 말할 때 데이터 자체를 가리키는지 시스템 전체를 가리키는지는 문맥으로 갈라야 한다.

정의를 이루는 세 낱말

DB의 정의는 세 부분이 각각 값어치를 한다. 관련 있다는 것은 같은 출처, 같은 목적, 같은 서비스에서 나온 데이터라는 뜻이다. 조직화되어 있다는 것은 찾는 데이터를 빨리 찾게 해주고, 중복을 막고, 데이터가 서로 어긋나는 것을 막아준다는 뜻이다. 전자적이라는 것은 종이 장부가 아니라는 뜻이다.

메타데이터와 카탈로그

DB를 정의하다 보면 데이터에 관한 데이터가 생긴다. 이것을 메타데이터라고 하고, 저장되는 곳을 카탈로그라고 부른다. 데이터 유형, 구조, 제약조건, 보안 설정, 저장 위치, 인덱스, 사용자 그룹 같은 것들이다. 메타데이터도 DBMS가 저장하고 관리한다.

쿼리 한 건이 거치는 순서

메타데이터가 왜 필요한지는 쿼리 하나가 처리되는 순서를 보면 드러난다. 애플리케이션이 쿼리로 DBMS에 요청하면 DBMS가 그 쿼리를 분석한다. 그다음 메타데이터를 먼저 찾아본다. 요청받은 데이터가 어떤 형태로 어디에 저장되어 있는지 알아야 하기 때문이다. 그 정보를 바탕으로 실제 데이터를 찾아 애플리케이션에 돌려준다. 데이터를 꺼내기 전에 데이터에 관한 정보를 먼저 꺼내는 셈이다.

관련

출처