2025/12 7

# 위클리페이퍼 5

데이터베이스 정규화란 무엇인가요? 또, 정규화의 장단점은 무엇인가요?정규화란, 데이터 중복을 줄이고 데이터 무결성을 지키기 위해 테이블 구조를 논리적으로 쪼개는 과정보통 1정규형 → 2정규형 → 3정규형까지가 실무 표준 이상현상(Anomaly)을 구조적으로 차단하기 위함. 삽입 이상: 정보 하나 넣으려고 의미 없는 데이터까지 같이 넣어야 함갱신 이상: 같은 값 여러 군데 있어서 하나만 고치면 불일치 발생삭제 이상: 데이터 지웠더니 필요한 정보까지 같이 날아감단점으로는, JOIN이 많아지고, 읽기 성능 저하, 설계 난이도 상승 등이 있다. 따라서 필요하면 비정규화를 하는 경우도 있음 1차 정규형 : 모든 컬럼이 '원자성(Atomicity)'을 가져야 한다쉽게 말해서 컬럼당 하나의 값만 가져야 함 2차 정..

코딩 자율학습단 18기 후기

4주간 코딩자율학습단으로 SQL 데이터베이스 입문을 학습하면서, 이전에 부트캠프에서 배웠던 SQL 내용을 체계적으로 복습할 수 있었다. 단순히 아는 내용을 다시 보는 수준이 아니라, 그동안 이해가 부족했던 JOIN, GROUP BY, 서브쿼리, 집계 개념을 다시 정리하면서 빈 부분을 확실히 채울 수 있었다는 점이 가장 큰 수확이었다. 이 책은 혼자 학습하기에 매우 용이한 구성과 흐름으로 되어 있어, 앞에서 배운 개념이 뒤의 내용과 자연스럽게 연결된다. 덕분에 학습 흐름이 끊기지 않고 끝까지 완독할 수 있었고, 책을 따라가다 보니 데이터베이스 구조와 SQL 쿼리의 역할이 머릿속에 정리되었다. 단순 문법 암기가 아니라, 실제 실무에서 어떤 상황에 어떤 쿼리를 써야 하는지까지 함께 생각하게 만든다. 코딩자..

코딩 자율학습단 18기 SQL 데이터베이스 4주차

16일차: ~8.4 셀프체크 (종이책: p.247-264)상품 유형별 집계. 그룹바이 활용하기주문 총액 -> 세 테이블을 조인하여 select 상위 3개 튜플만 가져오기-> group by name order by sum(count) desc, name asc limit 3; 17일차: ~9.2 다양한 위치에서의 서브쿼리 (종이책: p.266-282)서브쿼리란? -> 쿼리 안의 또 다른 쿼리1. 중첩구조다2. 메인쿼리와 독립적으로 실행된다3. 다양한 위치에서 사용 가능하다4. 단일 값 또는 다중 값을 반환한다. 단일값은 비교연산자와 다중 값은 in, any, all, exists와 함께 사용5. 조건 필터링 결과 또는 데이터 집계 결과를 반환한다. amount - (select avg(amount) fr..

코딩 자율학습단 18기 SQL 데이터베이스 3주차

11일차: ~6.2 다양한 관계 만들기 (종이책: p168-183)일대일 관계, 일대다 관계, 다대다 관계 등다대다 관계에는 중간 테이블이 필수적이다 ex) 사용자 - 좋아요 - 사진 기본키 -> 유일성, 비널, 불변성, 식별성 보통은 id를 사용외래키 -> null을 허용제약조건을 걸어줄 수 있다. unsigned도 제약조건 중 하나 check는 where처럼 조건절foreign key (country_id) refernces countries(id) -> 이렇게 외래키 지정 가능 12일차: ~6.4 셀프체크 (종이책 p.184-200)auto_increment 제약조건을 걸면 1씩 추가됨반드시 입력해야 하는 제약조건은 not null 일대다 관계에서는 일쪽이 기본키 다쪽이 외래키를 선언해야함!다대다 ..

코딩 자율학습단 18기 SQL 데이터베이스 2주차

5일차: ~3.3 셀프체크 (종이책 p.109)컬럼에 별칭 넣을 때, as 쓰는데 생략 가능! 6일차: ~4.2 집계 함수 실습: 은행 DB (종이책 p.112~p.128)sum, max, min, count, avg 함수중복을 제거하고 유일한 값은 distinct 사용select distinct 칼럼명 from 테이블명; 7일차: ~4.3 셀프체크 (종이책 p.129)select max(salary) - min(salary)from empolyeeswhere department = 'Sales'; 최댓값과 최솟값의 집계함수끼리도 산술연산자를 쓸 수 있다. 8일차 : ~5.1 자료형이란 (종이책 p132-148)자료형이란, 데이터의 형태를 말하는 것integer(정수형) varchar(50) 최..

# 위클리페이퍼 4

GROUP BY 절과 HAVING 절의 차이점은 무엇인가요? - GROUP BY행(row)을 그룹으로 묶는 역할집계 함수(SUM, COUNT, AVG 등)를 쓰기 위한 전제 조건그룹을 만드는 단계 -> 부서별로 행을 묶어서 표시해줌 SELECT department, COUNT(*)FROM employeesGROUP BY department; - HAVING BY그룹화된 결과를 필터링집계 함수 결과에 조건을 걸 때 사용GROUP BY 이후에 실행 -> 그룹 바이 이후에 조건을 걸어주는 명령어. where와 비슷하게 사용하지만, 개별행에 조건을 걸어주는 것이 아니라는 점이 다름SELECT department, COUNT(*)FROM employeesGROUP BY departmentHAVING COUNT(..