SQL 스터디 | SQL을 활용한 분석 (1)

Gomcha ·2024년 1월 31일

STUDY_데이터분석

목록 보기
3/3
post-thumbnail
  • 본 게시물은 O'REILLY의 SQL로 시작하는 데이터 분석을 읽고 재구성한 자료입니다. 내용 참고 시 출처 기입을 해주시고, 무단으로 도용 및 배포는 되도록 삼가하여 주시기 바랍니다.

1. 데이터 분석이란

  • 데이터 분석은 마케터, 프로덕트 매니저, 비즈니스 분석가 등 여러 분야의 사람들이 활용
    ⇒ 더 나은 의사결정을 목적으로 하며, 갈수록 자동화된 분석이 증가하는 추세임.
    ⇒ 마케팅, 영업, 유통, 제품개발, 사용자 경험 설계, 지원센터, 인적관리 등 다양한 목적으로 사용됨.

  • BI 도구 => 보고서나 대시보드 작성을 위한 소프트웨어

  • 분석이란 호기심을 가지고 '왜' 그 숫자, 결과가 나왔는지 질문을 던지는 일이며, 다양한 패턴과 현상들, 비즈니스, 인간 행동에 대해 이해하기 위한 단서를 찾고 해석하는 일

2. SQL을 사용하는 이유

2-1) SQL이란

  • 데이터베이스와 대화하기 위한 언어

  • 데이터베이스에 접근하고 데이터를 가져와서 처리하는 데 사용함.

데이터베이스 설명

  • 스키마 : 데이터베이스의 구성요소이자 다른 오브젝트를 포함하는 하나 이상의 스키마가 있음. (스키마의 오브젝트는 테이블, 뷰, 함수)
  • 테이블 : 데이터를 저장하는 필드와 하나 이상의 인덱스가 있으며, 인덱스는 데이터를 효율적으로 가져오도록 하는 특수한 데이터 구조
  • 인덱스 : 주로 데이터베이스 관리자가 지정
  • 뷰 : 테이블과 동일하게 참조할 수 있도록 저장된 쿼리이며, 함수에서 자주사용하는 계산이나 절차를 미리 저장해두고 필요할 때 쿼리에서 쉽게 호출해 사용함.

서브언어

  • 데이터베이스와 통신하기 위한 각 다른 용도의 언어

  • DQL : 주로 다루는 SQL 서브언어로, 데이터 베이스에서 원하는 데이터를 가져오기 위한 '쿼리'를 작성하는데 사용

    • SELECT 명령어
    • 한 줄로 짧게 작성하거나 수십 줄로 길게 작성 가능
    • 하나의 테이블(또는 뷰)에 접근 가능하며 JOIN을 사용해 여러 테이블에서 데이터를 가져와 조합, 같은 데이터베이스에 속한 여러 스키마에 쿼리 수행 가능
    • 독립적으로 구성되므로 테이블을 제외하고 이전 단계에서 생성된 변수나 결과 데이터는 쿼리에서 사용 불가
  • DDL : 데이터베이스에서 테이블, 뷰, 사용자 및 기타 오브젝트를 생성하고 수정하는데 사용(내용이 아닌 구조를 생성하거나 수정함)

    • CREATE, ALTER, DROP 명렁어
    • CREATE : 새 오브젝트 생성, ALTER : 테이블에 필드 추가 등 오브젝트 구조 변경, DROP : 전체 오브젝트와 구조 삭제
  • DCL : 접근 제어에 사용

    • GRANT, REVOKE 등 명령어
    • GRANT : 분석 업무 수행 시 테이블에 동료가 쿼리를 날릴 수 있도록 권한부여, 테이블 접근 부여 등에 사용
  • DML : 데이터 자체를 다루는 데 사용하며, 임시 테이블이나 샌드박스 테이블을 다루거나 데이터베이스 소유자로서 직접 관리하는 테이블을 다룰 때 사용

    • INSERT, UPDATE, DELETE 명령어
    • INSERT : 새로운 레코드 추가에 사용하며, 추출, 변환, 로드의 ETL 단계 중 로드에 해당
    • UPDATE : 필드의 값을 변경
    • DELETE : 행을 삭제

2-2) SQL 장점

  • 뛰어난 연산처리 능력, 많이 사용되고 있으며, 유연하게 사용 가능한 데이터 분석 도구

  • 데이터베이스와 인터랙션하고 데이터를 불러오는 작업을 가능하게 함.

  • 스프레드시트, BI 도구 및 시각화 도구 등 소프트웨어 및 파이썬, R 같은 코딩 언어에서도 데이터베이스와 연동하기 위해 SQL 사용

  • 데이터변환, 연산 수행 가능

2-3) SQL vs R, 파이썬

코딩언어

  • R : 통계 및 그래프를 위한 언어
  • 파이썬 : 데이터를 다ㅇ루는 데 강점 있는 범용 프로그래밍 언어

차이점
1) 코드가 실행되는 장소와 요구되는 컴퓨팅 성능
- SQL : 데이터베시으 서버에서 실행되며 모든 컴퓨팅 자원의 이점을 활용
- 코딩언어 : 로컬에서 실행되므로 컴퓨팅 자원이 해당 로컬의 성능에 좌우되어 한정적
2) 데이터가 저장되고 구성되는 방식
- SQL : 관계형 데이터베이스는 데이터를 테이블에 행과 열로 구분해 저장하므로 SQL 쿼리를 작성할 때 모든 데이터 구조가 맞게 저장되어있다고 가정함.
- 코딩언어 : 변수, 리스트, 딕셔너리 등 다양한 방법으로 데이터를 저장함 -> 사용법을 학습하는데 어려움
3) 반복의 유무, 특정 조건을 만족할 때까지 지정된 명령을 계속해서 ㅌ되풀이 하는 것
- SQL : 반복을 위한 코드가 따로 없어도 내부적으로 데이터 셋을 반복함.

단점

  • 코딩언어 : 파일에서 데이터를 읽어와 로컬에 저장하거나 서버나 웹사이트에 저장된 파일에 쉽게 접근하능하며, 일회성 프로젝트에 사용하기 편리함
  • SQL : 데이터가 데이터베이스에 저장되어 있어야 함.

2-4) 데이터 분석 워크플로에서 SQL

자원시스템 -> 데이터 웨어하우스 -> 쿼리와 분석 -> 발표(시각화, 보고서, 대시보드, 논문)

1) 자원시스템 : 데이터 생성

  • 다양한 타입과 형식의 데이터를 생성할 수 있음

2) 데이터웨어하우스 : 분석을 위해 데이터를 데이터베이스로 옮기는 단계

  • 여러 조직의 데이터를 하나의 중앙 저장소에 통합한 데이터베이스를 데이터 웨어하우스
  • 쿼리를 보낼 수 있는 모든 종류의 데이터 저장 시스템은 데이터 스토어
  • 데이터 웨어하우스의 서브셋 또는 좁은 의미의 데이터 웨어하우스를 의미하는 데이터 마트
  • 파일 저장시스템에 데이터를 저장하거나 데이터 웨어하우스에서 주로 사용하는 형태로 변환되지 않은 채 데이터를 저장한 데이터베이스를 의미하는 데이터 레이크

3) 쿼리와 분석

  • 탐색 → 프로파일링 → 정제 → 셰이핑 → 분석을 수행
  • 탐색 : 데이터와 관련된 주제는 무엇인지, 데이터가 어디에서 생성됐는지, 저장된 데이터베이스 테이블은 무엇인지 알아가는 과정
  • 프로파일링 : 데이터셋에서 고유한 값은 무엇이며 값의 분포는 어떠한지 등 확인하는 과정
  • 정제 : 틀리거나 불완전한 데이터를 수정하고 카테고리를 추가하거나 결측값 등을 다루는 과정
  • 셰이핑 : 데이터를 분석 목적에 따라 행과 열로 저장하는 과정
  • 분석
profile
공부하는 데이터 분석가 👩‍💻

0개의 댓글