DB - 반정규화
데이터베이스 스터디 4주차에서 학습하고 정리한 내용입니다. 1. 반정규화 정규화를 도입하면 왜 성능 상의 문제가 생길 수 있을까? 정규화는 데이터 중복을 피하기 위해 하나의 테이블이 여러 테이블로 분리가 될 가능성이 높다. 이 경우 모든 데이터를 조회하기 위해서는 조인 과정을 거쳐야 한다. 이러한 조인 과정은 추가적인 비용이 발생한다. 따...
데이터베이스 스터디 4주차에서 학습하고 정리한 내용입니다. 1. 반정규화 정규화를 도입하면 왜 성능 상의 문제가 생길 수 있을까? 정규화는 데이터 중복을 피하기 위해 하나의 테이블이 여러 테이블로 분리가 될 가능성이 높다. 이 경우 모든 데이터를 조회하기 위해서는 조인 과정을 거쳐야 한다. 이러한 조인 과정은 추가적인 비용이 발생한다. 따...
데이터베이스 스터디 4주차에서 학습하고 정리한 내용입니다. 1. 정규화(Normalization) 정규화는 데이터의 중복을 제거하거나 최소화하고 데이터 종속이 논리적으로 표현되도록 데이터를 재구성하는 과정이다. 이 과정을 수행함으로써 데이터 이상 현상이 제거된다. 2. 제 1 정규형(First Normal Form, 1NF) 제...
데이터베이스 스터디 4주차에서 학습하고 정리한 내용입니다. 1. 함수 종속성(Functional Dependency) 정의는 다음과 같다. X⊆R, Y⊆R 일 때 relation R의 tuple t1, t2 에 대하여 (if (t1[X] = t2[X]) 이면 -> (t1[Y] = t2[Y]))를 만족할 때 “Y는 X에 함수적으로...
데이터베이스 스터디 4주차에서 학습하고 정리한 내용입니다. 1. 이상 현상 이상 현상은 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용이다. 이상 현상이 발생하게 되면 데이터 무결성이 위배되어 데이터가 중복되거나 불일치가 발생할 수 있다. 이 이상 현상을 제거하기 위해 정규화가 ...
데이터베이스 스터디 3주차에서 학습하고 정리한 내용입니다. 1. 쿼리 실행 계획 현재 대부분의 옵티마이저는 비용 기반 옵티마이저로 여러 개의 옵션에 대한 비용을 예측한다. 이를 예측하여 쿼리 실행 예상 정보를 정리한 내용이 바로 쿼리 실행 계획이다. 항상 옵티마이저가 이상적인 판단을 할 수는 없기 때문에 DBMS 서버는 문제점을 파악할 수 ...
데이터베이스 스터디 3주차에서 학습하고 정리한 내용입니다. 1. B-Tree 인덱스의 스캔 방식 1) 인덱스 레인지 스캔(Index Range Scan) 인덱스 접근 방법 가운데 가장 대표적인 방식이다. 검색해야 할 인덱스 범위가 결정됐을 때 사용한다. SELECT * FROM employees WHERE first_name BETWEE...
데이터베이스 스터디 3주차에서 학습하고 정리한 내용입니다. 1. 랜덤 I/O와 순차 I/O 하드 디스크에서 랜덤 I/O와 순차 I/O 하드 디스크(HDD)는 데이터를 저장하고 읽기 위한 기계 장치인 ‘헤더’가 존재한다. 특정 위치의 데이터를 읽거나 쓰기 위해서는 디스크 원판을 돌리고 이 헤더를 물리적으로 직접 옮겨주어야 한다. 이 물리적인...
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. 서브 쿼리(SubQuery) 서브쿼리란 다른 쿼리 내부에 포함되어 있는 SELECT 문을 의미한다. 다른 쿼리의 내부에 포함되어 있어 메인 쿼리의 조건을 결정한다. 서브 쿼리 실행 과정 서브 쿼리 실행 -> 메인 쿼리 실행 이 때 서브 쿼리는 메인 쿼리의 속성을 사용할 수...
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. Join 관계 대수에서 조인은 Cross Product한 결과에 여러 조건을 추가한 것이다. Cross Product한 결과에 조건에 맞는 결과만 Selection하거나 Projection 한다. 예제 테이블 customers customer_i...
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. SELECT 절 처리 순서 customers 테이블 customer_id customer_name 1 Kim 2 Lee ...