본문 바로가기

데이터 베이스

(4)
[sqld] 모르는 거 속성 정리 정규형 제1정규형: 모든 도메인이 원자값 (모두 ATTR) 제2정규형: 부분 함수 종속 제거 (상이한 ATTR 분리) 제3정규형: 이행적 함수 종속 제거 (이행 -> 삼단논법) BCNF: 모든 결정자가 후보키 정규화와 반정규화 정규화: 중복성 제거 입력, 수정, 삭제 성능 향상, 조회 성능 보장 X 반정규화: 조회 성능 향상 기대 가능 테이블 병합 (1:1, 1:M, 슈퍼/서브) 테이블 분할 (수직, 수평) 테이블 추가 (중복, 통계, 이력, 부분) 중복칼럼 추가 파생칼럼 추가 이력테이블 칼럼추가 PK에 의한 칼럼 추가 응용시스템 오작동을 위한 칼럼 추가 중복 관계 추가 엔터티 종류 유형과 무형에 따른 엔터티 유형 엔터티: 물리적 형태가 있는 엔터티 (EX. 학생, 교수 등) 개념 엔터티: 형태가 없는 ..
[프로그래머스 SQL 고득점 Kit] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 데이터 그룹핑 문제 https://school.programmers.co.kr/learn/courses/30/lessons/151139 [문제 설명] 8월~10월 사이의 총 대여 횟수가 5회 이상인 차들에 대해 월별로 몇 번 대여 됐는지를 알아내는 문제입니다. 대여 시작일(AS MONTH), 자동차 ID, 월별 대여 횟수(AS RECORDS)를 출력하면 됩니다. 대여가 한 번도 되지 않은 월은 출력하지 않고, 월을 기준으로 오름차순, 그 후에는 자동차 ID를 기준으로 내림차순 정렬해야 한다는 조건이 있습니다. 차근차근 보겠습니다. 출력이 대여 시작일, 자동차 ID, 월별 대여 횟수로 지정되어 있으므로 대여 시작일: date타입인 START_DATE를 월만 잘라서 출력. 자동차 ID: 그냥 CAR_ID 출..
[프로그래머스 SQL 고득점 Kit] 중복 제거하기 그룹 함수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/59408 [문제 설명] 주어진 테이블 내에서 NULL을 제외한 동물의 이름이 몇 개인지 출력하는 문제입니다. 단순히 열이 몇 개 인지 구현한다면 COUNT(*)로 끝낼 수 있습니다. 그러나 동물 이름에 대해 중복을 제거하고 COUNT해줘야 하는 문제입니다. 중복을 제거하는 키워드인 DISTINCT를 NAME에 사용하여 중복을 제거하고 COUNT를 하면 해결됩니다. (= COUNT(DISTINCT NAME)) 어려운 문제는 아니지만 헷갈릴만한 부분이 두 가지 있습니다. 첫 번째로는 COUNT(DISTINCT NAME) / DISTINCT COUNT(NAME) 의 차이점입니다. 차근차근 ..
[Oracle SQL] 1. SELECT 보호되어 있는 글입니다.