Brain
Science
root
/
학습 노트
/
Study Note
/
5: 데이터베이스 (Database)
/
3. Relational Model
3. Relational Model
131. SQL (Structured Query Language) 국제 표준 (ANSI/ISO SQL)
132. 조인 연산의 종류 (SQL 기준)
2026-04-02
133. 내부 조인 (Inner Join) - 교집합, 양쪽에 모두 존재하는 행만 추출
2026-04-02
134. 동등 조인 (Equi Join) / 자연 조인 (Natural Join) - 중복 컬럼 제거
2026-04-02
135. 비동등 조인 (Non-Equi Join) - BETWEEN, >, < 등 등호 이외 연산자 사용 조인
2026-04-02
136. 외부 조인 (Outer Join) - 합집합 개념, 기준 테이블의 모든 행 추출 + 조인 실패 시 NULL 반환
2026-04-02
137. Left Outer Join / Right Outer Join / Full Outer Join
2026-04-02
138. 교차 조인 (Cross Join / Cartesian Product) - M x N 건 생성
2026-04-02
139. 셀프 조인 (Self Join) - 동일 테이블 간의 조인, 계층형 쿼리 등에 활용
2026-04-02
140. 서브쿼리 (Subquery) - 쿼리 내부에 포함된 또 다른 쿼리
2026-04-03
141. 인라인 뷰 (Inline View) - FROM 절에 사용된 서브쿼리, 동적으로 생성되는 뷰
2026-04-03
142. 스칼라 서브쿼리 (Scalar Subquery) - SELECT 절에 사용, 단일 행/단일 열 반환
2026-04-03
143. 중첩 서브쿼리 (Nested Subquery) - WHERE 절에 사용 (IN, EXISTS, ANY, ALL)
2026-04-03
144. 연관 서브쿼리 (Correlated Subquery) - 메인 쿼리의 컬럼을 포함하는 서브쿼리
2026-04-03
145. 윈도우 함수 (Window Function / 분석 함수) - 행 간의 관계를 분석 (RANK, DENSE_RANK, ROW_NUMBER, LEAD, LAG)
2026-04-03
146. 파티션 바이 (PARTITION BY) / 오더 바이 (ORDER BY) - 윈도우 함수의 범위와 정렬
2026-04-03
147. 집계 함수 (Aggregate Function) - SUM, AVG, MAX, MIN, COUNT
2026-04-03
148. 그룹 바이 (GROUP BY) / 해빙 (HAVING) - HAVING은 그룹화 결과에 대한 조건
2026-04-03
149. ROLLUP, CUBE, GROUPING SETS - 다차원 소계 및 총계 생성 (OLAP)
2026-04-03
150. 집합 연산자 - UNION (중복 제거 합집합), UNION ALL (중복 포함 합집합), INTERSECT, MINUS/EXCEPT
2026-04-03
151. 뷰 (View) - 가상 테이블, 논리적 데이터 독립성 및 보안 제공
2026-04-03
152. 단순 뷰 (Simple View) vs 복합 뷰 (Complex View)
2026-04-03
153. 구체화된 뷰 (MVIEW, Materialized View) - 물리적 공간에 실제 데이터 저장, 성능 향상, 동기화(Refresh) 필요
2026-04-03
154. 인덱스 (Index) - 검색 속도 향상을 위한 자료구조, 별도의 저장 공간 차지
2026-04-03
155. 인덱스의 단점 - DML(Insert, Update, Delete) 시 인덱스 수정 오버헤드 발생
2026-04-03
156. B-Tree 인덱스 / B+Tree 인덱스
2026-04-03
157. 해시 인덱스 (Hash Index) - 동등(=) 검색에 빠름, 범위(Range) 검색 불가
2026-04-03
158. 비트맵 인덱스 (Bitmap Index) - 분포도(Cardinality)가 나쁜(성별 등) 컬럼에 적합, DML 성능 저하 큼
2026-04-03
159. 클러스터드 인덱스 (Clustered Index) - 물리적 데이터 정렬 기준, 테이블당 1개 (보통 PK)
2026-04-03
160. 넌클러스터드 인덱스 (Non-Clustered Index / 보조 인덱스) - 리프 노드가 실제 데이터 포인터 보유, 여러 개 가능
2026-04-03
161. 결합 인덱스 (Composite Index) - 2개 이상 컬럼으로 구성 (선행 컬럼 순서 중요)
2026-04-03
162. 함수 기반 인덱스 (FBI, Function Based Index) - 산술식이나 함수가 적용된 결과 기준 인덱싱
2026-04-03
163. 옵티마이저 (Optimizer) - SQL 실행 최적 경로(Execution Plan) 생성기
2026-04-03
164. 규칙 기반 옵티마이저 (RBO, Rule Based Optimizer) - 정해진 우선순위 규칙에 따라 계획 수립 (구형)
2026-04-03
165. 비용 기반 옵티마이저 (CBO, Cost Based Optimizer) - 시스템 통계 정보 기반, 디스크 I/O 등 최소 비용 계산 (현대 RDBMS)
2026-04-03
166. 실행 계획 (Execution Plan) - 옵티마이저가 생성한 네비게이션 트리
2026-04-03
167. 힌트 (Hint) - 개발자가 옵티마이저에게 접근 경로를 명시적으로 지시 (/*+ INDEX(EMP IDX_01) */ 등)
2026-04-03
168. 데이터 딕셔너리 통계 정보 (Statistics) - 테이블 건수, 블록 수, 인덱스 높이, 클러스터링 팩터 등
2026-04-03
169. 클러스터링 팩터 (Clustering Factor) - 인덱스 정렬 순서와 실제 물리적 데이터 정렬 순서의 일치 정도
170. 선택도 (Selectivity) / 기수성 (Cardinality) / 분포도 (Distribution)
2026-04-03
171. 옵티마이저 조인 기법 3가지
2026-04-03
172. 중첩 루프 조인 (NL Join, Nested Loop Join) - 선행(Driving) 테이블 행마다 후행(Driven) 테이블 인덱스 탐색, 소량 데이터/온라인(OLTP) 적합
173. 소트 머지 조인 (Sort Merge Join) - 양쪽 테이블 정렬 후 병합, 인덱스 없을 때나 대량 데이터 조인 시 (동등/비동등 모두 가능)
174. 해시 조인 (Hash Join) - 작은 테이블로 해시 맵 생성 후 큰 테이블 탐색, 대량 데이터/동등(=) 조인 전용, 성능 우수
175. 드라이빙 테이블 (Driving Table / Outer Table) vs 드리븐 테이블 (Driven Table / Inner Table)
176. 조인 순서 (Join Order) 최적화 - 동적 계획법(Dynamic Programming), 탐욕 알고리즘
177. 뷰 머징 (View Merging) - 옵티마이저의 쿼리 변환 (인라인 뷰를 메인 쿼리에 병합)
178. 조건 푸시 다운 (Condition Pushdown) - WHERE 조건을 뷰 내부로 밀어 넣어 데이터 필터링 조기화
179. 파티셔닝 (Partitioning) - 대용량 테이블 물리적 분할 관리 기법
180. 레인지 파티셔닝 (Range Partitioning) - 범위(날짜 등) 기준
181. 해시 파티셔닝 (Hash Partitioning) - 해시 함수 결과, 균등 분산용
182. 리스트 파티셔닝 (List Partitioning) - 명시적 특정 값(지역명 등) 기준
183. 컴포지트 파티셔닝 (Composite Partitioning) - 복합 (Range + Hash 등)
184. 파티션 프루닝 (Partition Pruning) - SQL 조건에 맞는 파티션만 스캔 (옵티마이저 최적화)
185. 전역 인덱스 (Global Index) vs 지역 인덱스 (Local Index, 파티션별 독립 인덱스)
186. 스토어드 프로시저 (Stored Procedure) / 트리거 (Trigger) - DB 서버 내에 컴파일되어 저장된 모듈
187. 사용자 정의 함수 (UDF, User Defined Function)
188. PL/SQL (Oracle), T-SQL (SQL Server) - 절차적 SQL 언어
189. 동적 SQL (Dynamic SQL) - 실행 시점에 문자열 형태로 조립되어 실행
190. 바인드 변수 (Bind Variable) - 파싱 결과 재사용, SQL 인젝션 방지, 하드 파싱 (Hard Parsing) 방지 성능 이점