안녕하세요. 셀프조인왜글해요 제목은 오늘 점심으로 해봤습니다.
오늘은 또 무슨 헛소리를 할까요. 버스 혼자 앉는 법, 기분에 따른 아이스크림 고르는 법, 운동할 때 최대한 힘든 척하는 법 등 하고 싶은 이야기는 참 많습니다.
'오늘은 운동할 때 최대한 힘든척하는 법'에 대해서 그럼 말해 보겠습니다. 자 우선 어느 정도는 운동을 하고 실제로 힘들어야 합니다. 그냥 운동을 시작하기도 전에 힘든 척을 하면 환자라고 오해를 받습니다. 그럼 병원가야 해요. 아 생각해 보니까 이건 제가 헬스를 그만두는 날 세상에 공개하도록 하겠습니다. 같이 운동하는 친구가 보면 큰일이니까요.
그럼.. 뭐 복습하겠습니다.
오늘 한 것
- 트랜잭션이 발생시킬 수 있는 여러 DB 동시성 이슈, 각 이슈를 해결할 수 있는 level 단위
unrepeatable read, dirty read, phantom read 같은 이슈와 Un committed Read , committed Read, repeatble read, serializabled의 격리 수준이 존재.
옆에 같은 경우 처럼, 트랜잭션이 동시에 혹은 한 번에 많이 수행될 경우 잘 못된 데이터를 읽거나 업데이트함
그렇다면 서비스를 구상 할 때, 이 서비스가 어떤 이슈(예상 사용자의 수, 데이터의 중요도, 트랜잭션 간의 관계)를 발생시킬 수 있고, 그렇다면 어떤 level(낙관적 , 비관적 lock 등)을 줘야 하는가와 같은 고민이 필요하다
> 데이터 베이스 아키텍쳐
- join과 union
테이블 관리..?라고 해야 하나 테이블을 합쳐서 우리가 원하는 행과 각 행에 적합한 데이터로 만듦..? join 공유 값이 필요함
join으로 뭘 할 수 있을까? 사용자가 보기 편한 테이블이 효과적인 db 설계와는 다르니 다른 테이블의 칼럼들을 하나의 독립적인 테이블로 만들어 조회가 가능하다.
union은 테이블을 합치기 동일한 칼럼에 속하는 데이터들을 합치기. select을 통해 원하는 표를 생성도 가능! (select은 되게 넓은 의미를 가지는 것 같다)
- 서브쿼리
쿼리 안에 쿼리가 있는 구조. 근데 아직 너무 어색함.. 흐름 자체가 살짝 이해가 떨어지는 듯
- group by과 HAVING 절
데이터의 특정 값으로 그룹화 만들어줌. 데이터 간 요게 포인트. 데이터의 의미를 넓힐 수 있음(예로 단골손님 찾기)
이해가 될 듯 말 듯.. 사용은 하는데 설명은 못하는 그런 느낌
- 집계함수 count, sum, avg , max, min
- 재귀 구문(그냥 외워 보겠어..?)
WITH RECURSIVE number_sq(HOUR) AS(
SELECT 0 as HOUR
UNION ALL SELECT HOUR + 1 FROM number_sq WHERE HOUR <23
)
SELECT HOUR, 0 as COUNT FROM number_sq;
그르니까~ number_sq라는 테이블을 union 시켜서 만드는데.. 이거 왜 이렇게 되지
주말에 할 것
1. DB 진도 다 나가면 다시 한번 정리하고 주제별 포스팅(포인트만 싹)
2. 아!! 코테문제 적절스 한 걸로 3개 풀기(코테 스터디 시작했어요)
3. 지금! 주말에 할 것 노션에 따로 정리해서 TODO로 정리하기 (자꾸 모른척하고 안 하려고 함)
마무리
'플레이데이터 sw 캠프 3기 > 기억더듬더듬 하루 회고록' 카테고리의 다른 글
[11.23 목] MariaDB-6 (2) | 2023.11.24 |
---|---|
[11.22 수] MariaDB - 5 (4) | 2023.11.23 |
[11.20 월] 어...?내 주말 (MariaDB-3) (1) | 2023.11.21 |
[11/14 - 11/17] 1주차 회고 (3) | 2023.11.19 |
[11.17 금] 행복한 금요일(MariaDB-2) (0) | 2023.11.17 |