주제
고급 SQL 활용
1. SQL과 데이터베이스 소개
2. 관계형 데이터베이스
3. 데이터 모델링 방식
4. 데이터 웨어하우스 소개
5. 클라우드
SQL과 데이터베이스 소개
관계형 데이터베이스란?
- 구조화된 데이터를 저장하는 데 사용되는 데이터베이스
- 테이블로 데이터를 정의하고 저장
- 열과 행이 존재
- 이를 조작하는 프로그래밍 언어는 SQL (DDL & DML)
대표적 관계형 데이터베이스
| 프로덕션 데이터베이스 | 데이터 웨어하우스 |
| OLTP (OnLine Transaction Processing) | OLAP (OnLine Analytical Processing) |
| 빠른 속도에 집중, 서비스에 필요한 정보 저장 | 처리 데이터 크기에 집중, 데이터 분석 혹은 모델 빌딩 등을 위한 데이터 저장 |
| MySQL, PostgreSQL, Oracle, ... | Redshift, Snowflake, BigQuery, Hive, ... |
관계형 데이터베이스의 구조
- 2단계로 구성
- 가장 밑단은 테이블
- 테이블은 데이터베이스(혹은 스키마)라는 폴더 밑으로 구성
- 테이블의 구조
- 레코드들로 구성 (행)
- 레코드는 하나 이상의 필드로 구성
- 필드는 이름과 타입과 속성으로 구성
SQL 소개
- 관계형 데이터베이스에 있는 데이터를 질의하거나 조작하는 언어
- 두 종류 :
- DDL : 테이블의 구조를 정의
- DML : 테이블에서 원하는 레코드를 읽어오는 질의 언어, 테이블에 레코드를 추가 / 삭제 / 갱신
- SQL은 빅데이터 세상에서도 중요
- 구조화된 데이터를 다루는 이상 SQL은 데이터 규모와 상관없이 쓰임
- 모든 대용량 데이터 웨어하우스는 SQL 기반
SQL의 단점
- 구조화된 데이터를 다루는데 최적화
- 정규표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 심함
- 많은 관계형 데이터베이스들이 플랫한 구조만 지원 (nested x)
- 비구조화된 데이터를 다루는데 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요해짐 -> SQL 만으로는 비구조화 데이터를 처리하지 못함
- 관계형 데이터베이스마다 문법이 조금씩 상이
데이터 모델링 방식
| Star schema | Denormalized schema |
| Production DB용 관계형 데이터베이스에서는 보통 스키마를 사용해 데이터를 저장 | 데이터 웨어하우스에서 사용하는 방식 |
| 데이터를 논리적 단위로 나누고 필요시 조인 | 단위 테이블로 나눠 저장하지 않고 한개의 테이블만 사용 |
| 스토리지의 낭비가 덜하고 업데이트가 쉬움 | 스토리지를 더 사용하지만 조인이 필요 없어 빠른 계산 가능 |
데이터 웨어하우스 소개
- 회사에 필요한 모든 데이터를 저장
- 프로덕션 데이터베이스와는 별도이어야 함
- Redshift, Snowflake, Big Query 등
- 고객이 아닌 내부 직원을 위한 데이터베이스
- ETL 혹은 파이프라인
- 외부에 존재하는 데이터를 읽어와서 데이터 웨어하우스로 저장해주는 것이 필요
※ 데이터 인프라란?
- 데이터 엔지니어가 관리
- 한 단계 발전하면 대용량 분산처리 시스템이 일부 추가됨
- 데이터 순환 구조

클라우드
- 정의 : 컴퓨팅 자원을 네트웍을 통해 서비스 형태로 사용하는 것
- 자원을 필요한만큼 실시간으로 할당하여 사용하고, 사용한만큼 지불
- 장점 :
- 초기 투자 비용이 크게 줄어든다
- CAPEX(Capital Expense) vs. OPEX(Operating Expense)
- 리소스 준비를 위한 대기시간 대폭 감소
- 노는 리소스 제거로 비용 감소
- 글로벌 확장 용이
- 소프트웨어 개발 시간 단축
- 초기 투자 비용이 크게 줄어든다
클라우드 컴퓨팅이 없었다면?
- 서버 / 네트웍 / 스토리지 구매와 설정 등을 직접 수행해야 함
- 데이터센터 공간을 직접 확보
- 서버를 구매하여 설치하고 네트웍 직접 설정
- Peak time을 기준으로 Capacity planning을 해야함 (놀고 있는 자원들이 많아짐)
'Data Science > TIL (Today I Learned)' 카테고리의 다른 글
| 프로그래머스 데이터분석 데브코스 1기 - 23일차 (1) | 2023.12.20 |
|---|---|
| 프로그래머스 데이터분석 데브코스 1기 - 22일차 (0) | 2023.12.19 |
| 프로그래머스 데이터분석 데브코스 1기 - 20일차 (0) | 2023.12.15 |
| 프로그래머스 데이터분석 데브코스 1기 - 19일차 (0) | 2023.12.14 |
| 프로그래머스 데이터분석 데브코스 1기 - 18일차 (0) | 2023.12.13 |