미래를 예측하는 데이터분석가

[K-MOOC] 빅데이터 첫 걸음 - 유환조 : 4주차(SQL 처리/구문 방법) 본문

시스템 & 데이터베이스

[K-MOOC] 빅데이터 첫 걸음 - 유환조 : 4주차(SQL 처리/구문 방법)

잘하다연 2023. 11. 22. 22:42

4주차 Topic 1 Extended Relational Algebra Operations

 

#GROUP BY 

- Aggregation 1 : sum/count/average/maximum/minimum 

- Aggregation 2 : HAVING 

1차적으로 SELECT에서 Group된 컬럼을 sum, count 등으로 계산할 수 있다. 

2차적으로 SELECT한 Group된 컬럼을 HAVING을 사용해 계산할 수 있다. 

 

! 흥미로웠던 점은 SELECT에서 해당 Group 컬럼은 SELECT 문에 무조건 포함되어야한다는 것이다. 

#Interpreting Complicated SQL 해석1

해당 쿼리문은 실제 회사에 사례를 가져온 것이라 한다. 

복잡해보이지만 크게 3단계로 나눠볼 수 있어 색깔이 다르다. 

서브쿼리문을 사용한 것을 확인할 수 있고, 어디서부터 해석하고 어떤 변수를 생성해 가져와 계산하는지에 대해 단계적으로 설명해 이해가 잘 되었다. 하나씩 나눠보니 복잡한 쿼리문의 해석하는 법을 터득했다. 

 

# Interpreting Complicated SQL 2

이렇듯 복잡하게 여러 조건식과 서브쿼리가 얽혀있는 경우 보기가 매우 힘들다. 

그럴 경우 사용하는 것이 User-Defined Function 이다. 

 

사용자가 함수를 정의해 등록한 후 sql로 부르는 것을 말하며,

Scalar , Aggregate, Table 형태가 있다. (구체적인 것은 학부수업)

 

이 것을 지원하는 툴은 Oracle, Microsoft SQL Server, PstgreSQL(SQL, Python, R...)이 있다. 

SQLite는 안타깝게도 지원하지 않는다고 한다. 

 

4주차 lesson 2 - Relational Query Processing 

 

이번 챕터에서 말하고자 했던 점은 sql이 DB에서 작동하는 원리와 순서를 다뤘다. 

쿼리문을 짤 때 어떤 순서로 짜느냐에 따라 DB가 테이블에 접근 순서 및 속도(Cosst)가 달라진다고 한다.

그러나, cost가 전부 다를지라도 그건 DBMS의 성능개선의 개념일 뿐!

 

SQL을 사용하는 목적은 우리가 원하는 것을 추출하기 위함이니 신경쓰지 않아도 된다!

(It is clear WHAT we want, unclear HOW to get it) 


요즘 데이터베이스 수업을 들으면서 이 부분을 보완해서 더 공부하기위해 해당 케이묵 강의를 수강했다.

우선, 포항공대 유환조 교수님의 수업이라 체계적이고, 강의력이 좋을 것 같아 듣기 시작했다. 

예상은 적중했다 ! 기초보다는 깊게 Mid-level 수준으로 강의해주신다. 

빅데이터, 데이터베이스, SQL , 분석을 위한 통계 및 머신러닝을 한 번 쭉 정리해주신다. 

강의자료 퀄리티도 매우 맘에 들어 정리해서 두고두고 볼 예정이다.