SQL 5주차 과제
문제 : 음식 타입별, 연령별 주문건수 pivot view 만들기 (연령은 10~59세 사이)
- SQL 기본구조 작성하기
- Pivot view 를 만들기 위해 필요한 데이터 가공하기
- Pivot view 문법에 맞추어 수정하기
select cuisine_type,
max(if(age_range=10, cnt, 0)) "10대",
max(if(age_range=20, cnt, 0)) "20대",
max(if(age_range=30, cnt, 0)) "30대",
max(if(age_range=40, cnt, 0)) "40대",
max(if(age_range=50, cnt, 0)) "50대"
from
(
select f.cuisine_type,
case when age between 10 and 19 then 10
when age between 20 and 29 then 20
when age between 30 and 39 then 30
when age between 40 and 49 then 40
when age between 50 and 59 then 50 end age_range,
count(1) cnt
from food_orders f inner join customers c on f.customer_id = c.customer_id
where age between 10 and 59
group by 1, 2
) a
group by 1
서브쿼리에서 case when문을 통해 나이범위별로 10, 20, 30, 40, 50을 할당.
이후 피벗 뷰를 만드는 과정을 수행.
예를 들어 나이가 33이라면 서브쿼리에서 age_range값으로 30을 할당받게 되고,
바깥 select문을 통해 age_range = 30일 때 그 cnt 값을 반환하게 된다.
HTTPS 인증과정
https://brunch.co.kr/@swimjiy/47
해당 블로그를 참고했다.
- 대칭키 암호화
대칭키 암호화는 하나의 비밀 키를 사용하여 데이터를 암호화하고 복호화하는 방식. 이 키는 송신자와 수신자가 공유해야 하며, 키가 노출되면 보안이 위험해짐. - 비대칭키 암호화
비대칭키 암호화는 공개 키와 개인 키라는 두 개의 키를 사용. 공개 키는 누구나 사용할 수 있지만, 개인 키는 소유자만이 가지고 있음. 공개 키로 암호화된 데이터는 개인 키로만 복호화할 수 있고, 개인 키로 서명된 데이터는 공개 키로 검증할 수 있다.
HTTPS는 SSL을 통해 안전한 통신을 제공함.
SSL이란 클라이언트와 서버가 서로 데이터를 암호화해 통신할 수 있도록 돕는 보안 계층.
정리하자면 공개키, 대칭키 두 암호화 기법이 함께 사용된다는 것.
HTTP 통신은 대칭키 암호화로 보호되며, 초기 키 교환 및 인증 과정은 비대칭키 암호화를 사용하여 안전하게 이루어짐.
이러한 HTTPS 인증 과정을 통해 클라이언트와 서버 간의 데이터는 도청과 변조로부터 보호된다.
SQL
SQL 데이터베이스는 관계형 데이터베이스 관리 시스템(RDBMS)으로, 구조화된 데이터를 테이블 형식으로 저장함.
각 테이블은 고정된 스키마를 가지며, 데이터는 행(row)과 열(column)로 구성.
장점
- 복잡한 쿼리와 트랜잭션 관리가 용이함.
- 데이터 무결성과 일관성을 보장함.
- 성숙된 기술과 광범위한 지원 커뮤니티.
단점
- 스키마 변경이 어려울 수 있음.
- 수평적 확장이 어려울 수 있음(대부분의 RDBMS는 수직적 확장에 더 적합함).
NoSQL(Not only SQL)
NoSQL 데이터베이스는 비관계형 데이터베이스.
다양한 데이터 모델을 지원하며 스키마가 유연하거나 없는 경우가 많음.
NoSQL 데이터베이스는 일반적으로 수평적 확장성을 염두에 두고 설계되었음.
장점
- 높은 수평적 확장성.
- 유연한 스키마로 데이터 구조가 자주 변경되는 애플리케이션에 적합.
- 다양한 데이터 모델을 통해 특정 요구에 맞는 데이터 저장 방식을 선택할 수 있음.
단점
- 복잡한 쿼리와 트랜잭션 관리가 어렵거나 제한적일 수 있음.
- 데이터 무결성과 일관성을 보장하기 어려울 수 있음.
- 각 NoSQL 데이터베이스마다 고유의 쿼리 언어나 API를 사용함.
SQL vs NoSQL 비교 요약
오늘의 회고
오늘은 대망의 밍글데이였다. 기대한 것보다 더 재미있었고 특히 라디오 사연들이 너무 웃겼다.
사람들이 사연을 전부 센스있게 보내줘서 듣고만 있어도 재미있었다.
기술면접도 했는데 뒷부분은 거의 대답을 못했다. 멘토님이 피드백 해주신 부분 잘 정리했다.
내일의 목표는 장고 발제 듣고 계획짜기.
'매일 TIL' 카테고리의 다른 글
[내일배움캠프 7-5일] context, 템플릿 필터, 템플릿 태그, 템플릿 상속, 커스텀 템플릿 (0) | 2024.08.09 |
---|---|
[내일배움캠프 7-4일] 파이썬 장고 실무 기초 (0) | 2024.08.08 |
[내일배움캠프 7-2일] SQL 4주차 (0) | 2024.08.06 |
[내일배움캠프 7-1일] 피보나치 수, SQL 3주차 (0) | 2024.08.05 |
[내일배움캠프 6-5일] 최댓값과 최솟값, SQL 2주차 (0) | 2024.08.02 |