데이터베이스 기초 용어 완전정복

데이터베이스, 테이블, SQL과 NoSQL, 쿼리, 기본 키, 백업. 이 일곱 단어가 서로 어떻게 맞물리는지 역사와 실제 사례까지 따라가 봅니다.

한눈에 보기

데이터베이스는 데이터를 체계적으로 저장해 두고, 필요할 때 빠르고 정확하게 꺼내 쓰도록 관리하는 장치입니다. 서비스 점검 공지, 개인정보 유출 뉴스, 앱 개발 회의에서 이 용어들이 계속 나옵니다. 이 글에서는 일곱 개 용어를 아래 카드로 먼저 정리하고, 관계형 모델이 나온 배경, 표 구조와 키의 역할, SQL과 NoSQL의 차이, 실제 사례 세 가지, 흔한 오해를 차례로 살펴봅니다.

아래 카드는 용어별 한 줄 정의입니다.

🗄️

데이터베이스

체계적으로 정리되어 컴퓨터가 쉽게 검색하고 관리할 수 있도록 저장된 데이터의 모음입니다.

🗄️

테이블

데이터베이스 안에서 행과 열로 구성된 표 형태의 데이터 저장 단위로, 엑셀의 시트와 비슷한 구조입니다.

🗄️

SQL(관계형) 데이터베이스

데이터를 미리 정해진 표 형태의 구조로 저장하며, 정확성과 일관성이 중요한 은행이나 쇼핑몰 시스템에 주로 사용됩니다.

🗄️

NoSQL 데이터베이스

정해진 표 구조 없이 유연한 형태로 데이터를 저장할 수 있어, 다양한 형태의 데이터를 빠르게 처리해야 하는 서비스에 적합합니다.

🗄️

쿼리

데이터베이스에 원하는 데이터를 조회하거나 변경해달라고 요청하는 명령문을 뜻합니다.

🗄️

기본 키(Primary Key)

테이블 안의 각 행을 고유하게 식별할 수 있도록 지정하는 값으로, 같은 값이 중복될 수 없습니다.

🗄️

백업

데이터 손실에 대비해 데이터베이스의 내용을 별도로 복사해 안전하게 보관해두는 작업입니다.

배경: 포인터를 따라가던 시대에서 표로

위키백과의 데이터베이스 항목에 따르면 1960년대의 초기 데이터베이스는 IBM의 IMS 같은 계층형 모델과 CODASYL 네트워크 모델이었고, 레코드끼리 포인터(흔히 디스크 주소)로 연결되어 있었습니다. 1970년 에드거 F. 커드가 제안한 관계형 모델은 데이터를 표(관계)로 저장하고, 표끼리는 기본 키로 잇고, 연결 경로 대신 내용으로 검색하도록 바꾸었습니다. 오늘 쓰는 '테이블', '기본 키', 'SQL'이라는 말은 대부분 이 흐름에서 나왔습니다.

표와 키가 하는 일

테이블의 한 줄이 행(레코드), 각 칸의 항목 이름이 열(속성)입니다. 위키백과의 관계형 모델 항목은 기본 키를 '행을 유일하게 식별하는 최소한의 속성 묶음(후보 키) 중에서 대표로 고른 것'으로 설명합니다. 그래서 기본 키가 중복되면 "이 주문이 어느 주문인가"를 가릴 수 없게 됩니다. 다음은 개념을 보여 주기 위한 가상 예시입니다.

회원번호(기본 키)이름가입일
1001김하나2024-03-02
1002이둘2024-03-05
1003김하나2024-04-11

이름이 같아도(동명이인) 회원번호가 다르므로 두 사람을 구분할 수 있습니다. 이름을 기본 키로 삼았다면 1001과 1003을 구분하지 못했을 것입니다. 이름이 김하나인 회원을 찾는 쿼리는 SQL에서 일반적으로 아래와 같은 모양입니다(가상 예시).

SELECT * FROM members WHERE name = '김하나';

SELECT는 조회, FROM은 어느 표에서, WHERE는 어떤 조건으로를 뜻합니다. 데이터를 지우거나 바꾸는 명령(DELETE, UPDATE)은 WHERE 조건을 빠뜨리면 표 전체에 적용될 수 있으니, 실제 데이터에서는 먼저 백업을 해 두고 조건을 두 번 확인하세요.

SQL과 NoSQL을 한눈에 비교

위키백과의 NoSQL 항목은 이 이름이 하나의 기술이 아니라 여러 데이터 모델의 묶음임을 보여 줍니다. 아래 표는 그 항목이 정리한 분류와 예시입니다.

구분저장 방식대표 예시(위키백과 기준)
관계형(SQL)열이 정해진 표, 표끼리 키로 연결IBM Db2, Oracle
키-값키 하나에 값 하나를 연결Redis, DynamoDB
문서JSON 같은 자기 설명형 문서MongoDB, CouchDB
와이드 컬럼열 묶음 단위로 저장Cassandra, HBase, Bigtable
그래프점과 관계(연결) 중심으로 저장Neo4j, AllegroGraph

같은 항목은 많은 NoSQL 시스템이 엄격한 일관성보다 속도와 가용성을 우선하며, 갱신이 모든 서버에 곧바로 반영되지 않는 '최종적 일관성'을 쓰기도 한다고 설명합니다. 다만 일부 제품(예: MongoDB)은 트랜잭션 지원을 주요 기능으로 내세우므로, 'NoSQL은 모두 정확성이 약하다'는 식의 일반화는 맞지 않습니다.

실제 사례 세 가지

사례 1. 1970년의 논문: 관계형 모델의 등장 (개념의 사례)

영국 출신 컴퓨터 과학자 에드거 F. 커드는 1969년 IBM 연구 보고서에 이어, 1970년 학술지 《Communications of the ACM》 13권 6호에 'A Relational Model of Data for Large Shared Data Banks'를 발표했습니다. 핵심은 데이터를 저장 방식이 아니라 표(관계)라는 논리 구조로 다루자는 것이었습니다. 위키백과는 관계형 시스템이 1990년대 초에는 대규모 데이터 처리의 주류가 되었다고 정리합니다. 배울 점은 '테이블'과 '기본 키' 같은 평범한 용어 뒤에 특정 시점의 구체적인 설계 제안이 있다는 것입니다.

사례 2. SEQUEL에서 SQL로: 질의 언어의 표준화 (제도의 사례)

SQL은 1970년대 초 IBM의 도널드 체임벌린과 레이먼드 보이스가 커드의 관계형 모델을 접한 뒤 개발했고, 처음 이름은 Structured English Query Language의 줄임말인 SEQUEL이었습니다. 위키백과에 따르면 영국 회사의 상표와 겹쳐 이름이 SQL로 바뀌었습니다. 1979년에는 Relational Software(현 오라클)가 Oracle V2를 내놓았고, IBM Db2는 1983년에 상용화되었습니다. SQL은 1986년 ANSI, 1987년 ISO 표준으로 채택된 뒤 여러 차례 개정되어 가장 최근 개정이 2023년으로 기록됩니다. 배울 점은 한 언어가 연구실의 프로젝트에서 국제 표준으로 자리 잡기까지 십 년 이상 걸렸다는 점입니다. 사용하는 제품의 세부 문법은 그 제품의 공식 문서로 확인하세요.

사례 3. 'NoSQL'이라는 이름의 두 번의 등장 (용어의 사례)

위키백과에 따르면 카를로 스트로치가 1998년 'NoSQL'이라는 이름을 표준 SQL 인터페이스가 없는 가벼운 오픈소스 관계형 데이터베이스에 붙였습니다. 2009년 초에는 Last.fm의 개발자 요한 오스카르손이 이 용어를 다시 소개했다고 서술됩니다. 즉 같은 이름이 처음에는 '표를 쓰되 SQL이 없는' 제품을, 나중에는 표 구조를 따르지 않는 다양한 제품군을 가리키게 된 셈입니다. 같은 항목의 도입부는 이 용어가 2000년대 초에 등장했다고 쓰고 있어 서술이 엇갈리므로, 정확한 시기가 필요하면 원 자료를 확인해야 합니다. 배울 점은 'NoSQL'이 엄밀한 기술 정의가 아니라 시기에 따라 가리키는 대상이 달라진 이름이라는 것입니다.

내 서비스와 일상에서 확인하기

흔한 오해와 정정

한계와 더 알아볼 점

이 글은 용어 입문이며 성능 튜닝, 인덱스, 트랜잭션 설계, 보안 설정은 다루지 않습니다. 트랜잭션이 보장하려는 네 가지 성질(원자성, 일관성, 격리성, 지속성; ACID)은 데이터 정확성을 이해하는 다음 주제입니다. 어떤 데이터베이스를 고를지는 데이터 규모, 일관성 요구, 팀의 경험에 따라 달라지므로 한 가지 정답은 없습니다. 제품별 기능과 제한은 각 제품의 공식 문서에서 확인하세요.

자주 묻는 질문

SQL과 NoSQL 중 어느 것이 더 좋은가요?

어느 쪽이 더 우월하다기보다, 데이터의 구조가 명확하고 일관성이 중요하면 SQL을, 유연한 구조와 빠른 확장이 필요하면 NoSQL을 선택하는 것이 일반적입니다.

기본 키는 왜 중복되면 안 되나요?

기본 키는 각 데이터를 유일하게 식별하는 역할을 하기 때문에 중복되면 어떤 데이터를 가리키는지 구분할 수 없게 되어 데이터의 정확성이 깨지게 됩니다.

SQL은 프로그래밍 언어인가요?

SQL은 데이터베이스에 무엇을 원하는지 요청하는 질의 언어입니다. 앱을 만드는 일반 프로그래밍 언어와 쓰임이 달라서 보통 함께 사용합니다.

테이블과 데이터베이스는 어떻게 다른가요?

데이터베이스가 전체 저장소라면 테이블은 그 안의 표 하나입니다. 하나의 데이터베이스에 회원 테이블, 주문 테이블처럼 여러 테이블이 들어가고 키로 서로 연결됩니다.

쿼리를 잘못 실행하면 데이터가 사라질 수 있나요?

조회 쿼리는 데이터를 바꾸지 않지만, 삭제·수정 쿼리는 조건을 잘못 쓰면 의도보다 많은 행에 적용될 수 있습니다. 운영 데이터에서는 실행 전 백업과 조건 확인이 필요합니다.

이어서 읽어 보세요