DataBase
PL/SQL 이란?
2026.03.20
PL/SQL은 오라클 데이터베이스에서 쓰는 절차형 SQL 언어다.이름도 그대로 보면 된다.SQL: 데이터 조회/입력/수정/삭제PL/SQL: SQL에다가 변수, 조건문, 반복문, 예외처리, 함수, 프로시저를 붙인 것즉:👉 “오라클 DB 안에서 동작하는 프로그래밍 언어”1. 왜 PL/SQL을 쓰는가일반 SQL은 보통 한 번에 한 문장씩 처리한다.예를 들어:SELECT * FROM EMP;UPDATE EMP SET SAL = SAL * 1.1 WHERE DEPTNO = 10; 이건 단순 조회/수정은 잘하지만, 아래 같은 로직은 불편하다.조건에 따라 다르게 처리여러 SQL을 묶어서 한 번에 실행오류 발생 시 예외 처리반복 처리값을 변수에 담아 계산업무 로직 캡슐화그래서 PL/SQL을 쓴다. 예를 들면:급여가 ..
DataBase/RDBMS
옵티마이저
2025.10.21
옵티마이저(Optimizer)는 데이터베이스가 SQL을 가장 빠르고 효율적으로 실행하기 위해 실행 계획(EXPLAIN PLAN)을 자동으로 만들어주는 엔진이야. SQL을 그대로 실행하지 않고, 어떻게 하면 최소 비용으로 결과를 낼 수 있을지 판단해서 최적의 방법을 선택하는 두뇌 같은 역할 ✅ 옵티마이저가 하는 일옵티마이저는 SQL을 받으면 다음을 판단한다1) 어떤 인덱스를 사용할까?예:WHERE name = '홍길동' → name 인덱스 사용WHERE age > 30 → range scan혹은 인덱스 안 쓰고 full scan이 빠를 수도 있음2) 어떤 조인 방식을 사용할까?대표적인 조인 알고리즘:NL Join(Nested Loop Join)Hash JoinMerge Join데이터량, 정렬 여부, 인덱스..
DataBase
JPA 와 Mapper 파일 이 같이 쓰는 프로젝트
2025.10.01
보통 JPA를 쓰면 Entity 와 Repository 만으로도 DB CRUD 를 할 수 있는데, 현업에서는 JPA + Mapper(MyBatis 같은 매퍼) 를 같이 쓰는 경우 종종 있다!! 왜그런지 이유는??🔹 JPA만으로 부족한 부분복잡한 SQL 제어 어려움JPA는 객체 중심이라 동적 SQL, 복잡한 조인, 집계 쿼리 작성이 불편JPQL/Criteria API로 가능하긴 하지만, 가독성이 떨어지고 SQL 최적화 제어가 어려움DB 특화 기능 한계오라클의 힌트, Tibero/Postgres의 특정 함수, Window 함수 등은 JPA 표준으로 다루기 어렵습니다.NativeQuery로 가능하지만, 유지보수가 불편대용량 배치 처리JPA는 1차 캐시/영속성 컨텍스트를 사용하기 때문에 대량 데이터 처리 시..
DataBase
DB 파티션이란?
2025.09.12
DB에서 파티션(Partition) 이란??하나의 큰 테이블이나 인덱스를 여러 개의 작은 논리적 단위로 나누어 저장하는 방식 사용 이유???데이터가 너무 많아지면 검색이나 관리가 느려짐파티션을 적용하면 데이터를 나누어 저장하기 때문에 필요한 부분만 조회할 수 있어 성능이 향상또한 오래된 데이터와 최근 데이터를 분리해 관리하거나, 특정 파티션만 백업·삭제하는 등 유지보수가 용이파티션의 종류범위 파티션 (Range Partitioning): 날짜나 숫자 범위로 나눔리스트 파티션 (List Partitioning): 특정 값 집합으로 나눔 (예: 지역별)해시 파티션 (Hash Partitioning): 해시 함수를 이용해 고르게 분산복합 파티션 (Composite Partitioning): 위 방식을 조합
DataBase
정규화 / 반정규화 란??
2025.06.04
정규화(Normalization)와 반정규화(Denormalization)는 관계형 데이터베이스 설계에서 데이터 구조의 효율성과 성능을 조절하는 두 가지 접근 방식 ✅ 정규화 (Normalization)목적:데이터 중복 제거,데이터 무결성 유지,데이터 구조의 논리적 정합성 확보 장점:데이터 무결성 향상변경 시 일관성 유지저장 공간 최적화단점:조인이 많아져 성능 저하 가능실시간 처리에 불리할 수 있음 ✅ 반정규화 (Denormalization)목적:조회 성능 향상복잡한 조인 최소화방법:테이블 병합중복 데이터 허용집계 필드 추가컬럼을 별도로 분리하거나, 계산 결과 컬럼 저장장점:조회 성능 향상, 특히 대용량/실시간 시스템에서 유리조인 감소로 인한 단순한 쿼리 작성 가능단점:데이터 중복 증가 → 무결성 문제 ..