목차
데이터베이스라는 개념은 수첩, 주소록처럼 익숙한 정보 저장 형태에서 시작되었다.
우리가 흔히 듣는 "DB 어떤 거 써보셨어요?"라는 질문은 실제로는 DBMS(Database Management System, 데이터베이스 관리 시스템)를 의미하며,
이 시스템 안에는 데이터를 저장하는 데이터베이스가 존재한다.
현재 나는 MySQL을 사용하고 있으며, 데이터 분석 입문 과정에서 SQL을 학습 중이다.
1-1) 데이터의 검색 (SELECT)
데이터베이스의 가장 기본적이면서도 핵심적인 기능은 바로 '검색'이다.
검색은 "질의(Query)", 또는 "데이터 추출"이라고도 한다.
예를 들어 수첩 전화번호부에서 '김'씨 성을 가진 사람들을 찾고 싶다면 ㄱ 인덱스를 기준으로 원하는 정보를 찾는 것이 일종의 데이터 검색이라 할 수 있다.
Q. 주소록에서 김씨 성을 가진 사람들의 데이터만 가져오는 쿼리
SELECT *
FROM 주소록
WHERE 이름 LIKE '김%'
Q. 주소록에서 ‘서울시’에 사는 사람들의 데이터만 가져오는 쿼리
SELECT *
FROM 주소록
WHERE 주소 LIKE '서울시%'
1-2) 데이터 갱신 (INSERT / UPDATE / DELETE)
데이터베이스는 데이터를 단순히 검색하는 것뿐 아니라,
등록(INSERT), 수정(UPDATE), 삭제(DELETE)도 가능해야 한다. 이 세 가지를 묶어 갱신(Update) 기능이라고 한다.
● 새로운 데이터를 '추가'하는 쿼리
INSERT INTO 주소록 VALUES ('정연','010-XXXX-XXXX','서울시 광진구 ㅇㅇㅇ','트와이스 멤버')
● 특정 데이터를 '수정'하는 쿼리
UPDATE 주소록 SET 주소 = '경기도 성남시 OOO' WHERE 이름 = '홍길동'
● 특정 데이터를 '제거'하는 쿼리
DELETE FROM 주소록 WHERE = '홍길동'
->제거는 한 행이 없어지는 거임
※ 데이터베이스의 기본 기능을 도표로 정리하자면 아래와 같다.
입문반 과정에서는 이 중에서도 질의(SELECT)에 대해 배운다.
여러 사용자가 동시에 데이터베이스에 접근하는 상황에서도, 데이터가 충돌 없이 안전하게 처리되어야 한다.
예를 들어 A 사용자가 어떤 데이터를 작성하고 있는 동안 B 사용자가 접근할 때 다음과 같은 상황이 발생할 수 있다.
대부분의 데이터베이스는 1번 또는 2번 방식으로 동시성 제어를 수행한다.
데이터베이스는 장애 상황에도 안정적으로 데이터를 보존해야 한다.
이를 위해 데이터를 여러 장소에 분산 저장하거나 백업을 진행한다.
예를 들어 구글과 같은 대규모 서비스는 한 컴퓨터에만 데이터를 저장하지 않고,
동일한 정보를 여러 대의 서버에 나눠 저장하며, 이는 전 세계 다양한 국가에 분산되어 있다.
데이터베이스는 민감한 개인정보 또는 기업 기밀을 담고 있기 때문에, 접근 권한 관리와 보안이 매우 중요하다.
예를 들어 은행의 데이터베이스는 본인의 계좌 정보는 확인할 수 있지만,
다른 사람의 잔액은 알 수 없다. 이는 계정 기반 접근 제어, 암호화, 권한 분리 등의 보안 기능이 작동하고 있기 때문이다.
NoSQL은 다양한 기능보다 빠른 속도에 집중하는 경향이 있으며,
단순한 데이터 읽기/쓰기 목적의 프로젝트에 특히 적합하다.
관련하여 관계형과 NOSQL 차이를 찾아보다가 좋은 설명이 있는 블로그를 발견하여 추가해본다.
RDB 전문가가 NoSQL DB를 접하면 처음엔 당황합니다.
어떻게 쓰는건지 잘 모르겠거든요.
안되는 것도 많고, 일일히 코딩을 해야 하고.
하지만, 그러라고 나온 DB는 아닙니다.
간단한 개발을 한다면 DB 에 바라는 기능은, 단순히 데이터를 잘 읽고 쓰는 것 정도이죠.
다양한 데이터 조작과 조합기능?
그런거 필요없습니다.
빠른 탐색속도가 더 좋습니다.
NoSQL DB 은 그런 목적에 특화된 DB 입니다.
출처 : https://subokim.wordpress.com/2011/05/31/nosql-db-four-type/
따라서 SQL을 익히면 대부분의 관계형 데이터베이스에 쉽게 적응할 수 있다.
SQL은 데이터 중심의 업무를 수행하는 사람이라면 필수로 익혀야 할 기본 소양이다.
(본 내용은 데이터리안 ‘SQL 데이터 분석 캠프 입문반’을 수강하며 작성한 내용입니다.)
SQL 집계 함수 정리 (0) | 2025.04.20 |
---|---|
SQL 숫자 연산자 정리 (0) | 2025.04.18 |
데이터 순서 정렬하기 (0) | 2025.04.15 |
데이터 필터링하기 - WHERE절 (0) | 2025.04.09 |
데이터 추출하기 (0) | 2025.04.07 |