24.01.31 수 트랜잭션이란? Atomic 하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 SELECT에는 트랜잭션을 사용할 이유가 없음 DDL이나 DML 중 레코드를 수정/추가/삭제한 것에만 의미가 있음 BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용 ROLLBACK 은행 계좌 이체가 좋은 예시 계좌 이체: 인출과 입금의 두 과정으로 이뤄짐 만일 인출은 성공했는데 입금이 실패한다면? 이 두 과정은 동시에 성공하던지 실패해야 함 -> Atomic 하다는 의미 이런 과정들을 트랜잭션으로 묶어주어야 함 조회만 한다면 이는 트랜잭션으로 묶일 이유가 없음 BEGIN; A의 계좌로부터 인출; B의 계좌로 입금; END; -- END와 COMMIT은 동일 --..
230511 목요일 학습 주제 - 데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (4) JOIN SQL에서 JOIN이란 두 개 이상의 테이블을 공통 필드를 가지고 merge 하는 것이다. JOIN은 6가지의 종류가 있다. JOIN의 방식에 따라 아래의 두 가지가 달라진다. 1. 어떤 레코드들이 선택되는지? 2. 어떤 필드들이 채워지는지? 아래의 6가지 JOIN 방식을 꼭 기억하자!! 1. INNER JOIN - 양쪽 테이블에서 매치가 되는 레코드들만 리턴함 - 양쪽 테이블의 필드가 모두 채워진 상태로 리턴됨 2. LEFT JOIN - RIGHT JOIN과 방향만 다르므로 RIGHT JOIN은 생략 - 왼쪽 테이블(Base)의 모든 레코드들을 리턴함 - 오른쪽 테이블..
230510 수요일 학습 주제 - 데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (3) GROUP BY와 Aggregate 함수 GROUP BY는 Aggregate 함수와 함께 사용한다. 많이 쓰이는 Aggregate 함수에는 COUNT, SUM, AVG, MIN, MAX, LISTAGG 함수 등이 있다. 이들은 테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보를 계산할 때 사용하는데 이때 두 단계를 거쳐 생각하고 사용할 수 있다. 1. 먼저 그룹핑할 필드를 결정한다. 이때 하나 이상의 필드가 될 수 있다. ex) GROUP BY 1,2,... 2. 그룹별로 계산할 내용을 결정하고 적절한 Aggregate 함수를 사용한다. 간단한 사용 예제 두 가지를 살펴보자. -..
230509 화요일 학습 주제 - 데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (2) 실습에 대하여 AWS 콘솔을 통해 Redshift cluster를 launch 하는 방법을 배웠다. 그리고 강사님께서 launch 하신 cluster에 접근하여 다양한 실습들을 해보는데 이때 사용할 예제 테이블에 대해 전달받았다. 웹서비스 사용자/세션 정보가 들어있는 테이블인데 이는 사용자 트래픽 분석이 가능하고 마케팅에 바로 직결되는 부분이다 보니 매우 흥미롭게 느껴졌다. 데이터를 다루기 전 기억할 것! - 항상 데이터를 믿을 수 있는지 의심할 것 => 실제 레코드를 몇 개 살펴보기(노가다) => 중복된 레코드 체크! => 최근 데이터의 존재 여부 체크!(freshness) =..
230508 월요일 학습 주제 - 데이터 웨어하우스와 SQL 기본에 대해 배우고 이를 바탕으로 데이터 분석에 대해 학습 (1) 관계형 데이터베이스(RDB, Relational DataBase)란? 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지이다. 관계형 데이터베이스를 조작하는 프로그래밍 언어가 SQL이다. 관계형 데이터베이스는 프로덕션 데이터베이스와 데이터 웨어하우스로 나누어진다. 프로덕션 데이터베이스 - MySQL, PostgreSQL, Oracle - OLTP(Online Transcation Processing) - 빠른 속도에 집중, 서비스에 필요한 정보 저장 - 사용자용 데이터 웨어하우스 - Redshift, Snowflake, BigQuery, Hive - OLAP(Online..