SQL이 뭔데 왜 필수지?
주변 실무자의 경험담을 통해 질문에 대한 답을 들어보겠습니다.
저는 마케팅 직무로 회사에 입사했습니다.
최근 트렌드가 데이터 기반의 퍼포먼스 마케팅이라는 이야기를 많이 들었고, 실제로 회사의 업무도 데이터 수치를 통해 서로 간에 공유되고 있었습니다. 구글 애널리틱스라든지 서버 데이터라든지 굉장히 많은 데이터가 존재했지만, 이를 어떻게 활용할지 알 수 없었습니다.
시간이 지나며 어느 정도 회사 생활은 그럭저럭 적응했습니다. 그런데 저의 고민은 여기서 시작되었습니다. 회사 내부의 데이터를 확인하여 마케팅에 활용하려고 하더라도, 당장 회사 서버에 있는 데이터를 확인할 길이 없었습니다. 다행히 IT 부서 개발팀에게 의뢰하여, 기다림의 시간 끝에 데이터를 사용할 수는 있었습니다. 하지만 데이터를 확인하면서 꼬리에 꼬리를 무는 새로운 질문에 대한 답을 확인하기 위해 다른 데이터를 추가로 확인하는 것은 괜히 눈치보이는 일이었습니다.
데이터를 보고 싶더라도, 데이터를 내 입맛대로 볼 수 없는 지금 어떻게 해야 할지 막막합니다.
여기서 핵심은 회사 내부 데이터입니다.
어떠한 방식이든 제품을 판매하거나 서비스를 운영하면서 생겨나거나 축적해둔 데이터가 있습니다.
예를 들면, 제품의 재고 수량, 주문 수량, 입출고 기록부터 구매 고객의 배송지 주소까지
굉장히 다양한 데이터가 존재하게 됩니다.
그리고 이러한 데이터는 어떠한 방식으로든 데이터베이스라는 저장소에 담기게 됩니다.
또한 크게 나누어 본다면 비관계형 데이터베이스과 관계형 데이터베이스로 분류할 수 있습니다.
이렇게 데이터베이스에 담긴 수많은 양의 데이터를 다루는 언어가 바로 SQL입니다.
사전적으로는 Structured Query Language, 구조화 질의어라 불립니다.
최근에는 확장성, 유연성 등의 장점으로 인해 비관계형 데이터베이스가 각광받고 있기는 합니다.
하지만 여전히 많은 기업에서 관계형 데이터베이스를 활용하고 있으며, 실제로 비관계형 DB에서 채워주지 못하는 것을 RDBMS에서 채워주고 있습니다.
그러므로 현업에 종사하면서 실제로 마케팅, 영업, 기획 등 다양한 업무를 진행할 때,
SQL은 데이터 분석을 위해 절대 피해갈 수 없는 통과 관문이라고 할 수 있습니다.
그렇다면 SQL로 뭘 할 수 있지?
SQL 표준에 따르면, SQL 구문을 크게 3가지로 구분하고 있습니다.
- 데이터 정의어 (DDL): 데이터 간의 관계를 정의하여 데이터베이스 구조를 설정하는 문장
- 데이터 조작어 (DML): 데이터베이스 내의 저장된 데이터를 추출, 수정, 삽입, 삭제하기 위한 문장
- 데이터 제어어 (DCL): 데이터베이스에 접근하고 객체를 사용하는 권한을 주거나 회수하기 위한 문장
여기서 데이터 분석을 꿈꾸는 사람이라면, 데이터 조작어에 집중해야 합니다.
데이터 분석을 위해서는 분석 목적에 맞는 데이터를 추출할 수 있는 게 기본적인 준비 단계이기 때문입니다.
즉, SQL을 통해 내가 사용하고자 하는 목적에 부합하는 정보만 추출할 수 있다는 것이 핵심입니다.
데이터 분석 목적 이외에도 SQL을 통해 할 수 있는 것은 아래와 같이 굉장히 다양합니다.
- SQL을 통해 데이터베이스를 생성할 수 있습니다.
- SQL을 통해 데이터베이스 내의 정보를 검색(쿼리)할 수 있습니다.
- SQL을 통해 필요한 정보를 검색하는 쿼리문을 자동화할 수 있습니다.
- SQL을 통해 필요한 데이터만 모아볼 수 있는 가상의 뷰를 만들 수 있습니다.
SQL 학습 전에 알아둘 관계형 데이터베이스 구조
본격적으로 SQL에 대한 공부를 하기에 앞서, 기본적인 구조를 알아두시면 좀 더 쉽게 이해하실 수 있습니다.
위의 그림을 따라 찬찬히 살펴보겠습니다.
우선, 위의 이미지는 데이터베이스의 스키마(Schema)를 시각화한 다이어그램(Diagram)이라 불립니다.
데이터베이스의 스키마는 데이터베이스 구조에 대해 자세히 적어놓은 설명서입니다.
그리고 다이어그램은 그림으로 된 설명서로 받아들이시면 이해하기 수월합니다.
데이터베이스 내부에는 다양한 테이블(Table)이 존재합니다.
테이블은 데이터 집합의 모임으로 데이터를 주제별로 모아둔 것입니다.
테이블 내에는 컬럼(Column)이라 불리는 테이블 관련 데이터 분류 개체가 있습니다.
컬럼은 필드(Field)로 불리기도 합니다.
마지막으로 테이블 내에는 행(Row)라 불리는 실제 데이터가 있으며,
행은 레코드(Record)라고도 불립니다.
예시를 통해 좀 더 쉽게 이해할 수 있습니다.
- 지구라는 데이터베이스가 있습니다.
- 지구 안에는 대한민국, 미국, 중국, 러시아, 인도 등 여러 개의 테이블이 있습니다.
- 대한민국이라는 테이블 내에는 성별, 연령, 출생지 등의 다양한 컬럼이 존재합니다.
- 그리고 한국인인 나는 대한민국 테이블에 저장된 실제 데이터, 즉 행(레코드)입니다.
이외에도 각 테이블 간의 연결 관계가 존재한다는 것이 관계형 데이터베이스의 큰 특징입니다.
이는 보통 다이어그램 내에서 화살표를 통해 표현되는데, 역시 예시를 통해 확인하겠습니다.
예를 들어 저에게 30대 미국인 남성 친구 마이클이 있다고 가정합니다.
그럼 저를 설명해주는 컬럼 중 '미국 친구'라는 컬럼이 있고,
여기에는 30대 미국인 남성인 마이클을 나타내는 정보가 담깁니다.
이를 통해 지구촌에서 비록 국적은 다르더라도 친구 관계를 표현해낼 수 있는 것입니다.
SQL부터 공부하세요
간단하게 SQL의 필요성을 확인하고, 관계형 데이터베이스에 대해 살펴보았습니다.
최근 데이터 분석에 대한 업계 전반의 관심이 커짐에 따라, 많은 분들이 관심을 가지고 있습니다.
물론 기초적인 엑셀부터 파이썬, R 등 데이터 분석에 활용할 수 있는 기술들은 굉장히 다양합니다.
그리고 어떠한 데이터를 다루느냐에 따라 요구되는 기술 스택 역시 달라지게 됩니다.
이에 대한 판단은 본인이 꿈꾸거나, 현재 맡고 있는 업무, 커리와 연관지어 고민해보시기 바랍니다.
다만 제 짧은 경험에 따르면, 엑셀은 비교적 접근성이 좋은 편이기 때문에
따로 시간을 들여 학습하지 않더라도 업무 숙련도에 따라 실력 역시 향상되기 마련입니다.
그리고 파이썬이나 R의 경우, 최근 실무에서 활용되는 데이터 트랙킹 툴들의 도움을 받는다면
굳이 사용하지 않더라도 데이터 분석이 충분히 가능합니다. (엑셀로 해결할 수 있습니다.)
하지만 SQL은 내가 몸담고 있는 회사와 직접적인 연관성이 매우 큰 내부 데이터를
자유롭게 다룰 수 있게 한다는 점에서 무엇보다 우선적으로 학습해야 하는 것이라 생각합니다.
모쪼록 자신의 필요에 따라 학습 과정을 계획하시되, SQL의 중요성은 꼭 알고 가시기 바랍니다.
부족한 글 읽어주셔서 감사드리며, 여러분의 공감과 댓글은 언제나 큰 힘이 됩니다.
P.S. 엑셀로 하는 데이터 분석이 궁금하시다면 아래의 글을 확인해 주세요!
'데이터 사이언스 > SQL' 카테고리의 다른 글
[SQLD 학습 자료 요약] 데이터 모델링의 이해 1.3. 속성 (5) | 2020.11.11 |
---|---|
[SQLD 학습 자료 요약] 데이터 모델링의 이해 1.2. 엔터티 (0) | 2020.11.11 |
[SQLD 학습 자료 요약] 데이터 모델링의 이해 1.1. 데이터 모델링의 이해 (26) | 2020.11.10 |
PostgreSQL 쿼리문 연습용 샘플 DB 설치 - DBeaver 사용 (1) | 2020.06.03 |
SQL 초보를 위한 실전 쿼리문 연습용 샘플 데이터베이스 모음 (0) | 2020.05.31 |