오라클 18

오라클 SGA / PGA 정리

SGA - 인스턴스(CDB) 전체의 공유 메모리인스턴스 수준에서 공유되는 메모리 영역 물리적 메모리 권장사항 - 50% (80%까지 가능) 하나의 Oracle 인스턴스(CDB)는 SGA를 1개만 가집니다여러 PDB가 이 SGA를 함께 사용합니다.단, PDB별로 SGA 자원 사용량을 제한(RM/Resource Manager로) 할 수는 있습니다.모든 서버 프로세스가 접근 가능데이터 캐싱, SQL 처리, 동시성 제어 등 전체적인 운영에 필수┌──────────────────────────┐│ Shared Pool │ ← SQL 파싱, PL/SQL 캐시 등├──────────────────────────┤│ Database Buffer Cache │ ← 데이터 블록 캐시├────..

Oracle 2025.07.11

오라클 CDB / PDB 정리

Oracle 12c부터 도입된 **멀티테넌트 아키텍처(Multitenant Architecture)**는 클라우드 환경과 MSA 아키텍처에 최적화된 DB 구조입니다. 핵심은 **CDB (Container Database)**와 **PDB (Pluggable Database)**라는 개념으로 데이터베이스를 분리·통합하는 방식입니다. Oracle 컨테이너 데이터베이스(CDB, PDB) 개념12c부터 Oracle은 멀티테넌트 아키텍처를 도입해컨테이너 데이터베이스(CDB) 안에 여러 개의*플러거블 데이터베이스(PDB)**를 담을 수 있게 되었습니다.이를 통해 여러 개 데이터베이스를 하나의 인스턴스에서 관리할 수 있고, 리소스 효율과 관리 편의성이 좋아졌습니다.CDB - Container DB여러 개의 데이터베이..

Oracle 2025.07.11

오라클 DB 버전별 키워드 i, g, c 정리

Oracle 8i / 9ii = Internet1999년~2001년 도입된 Oracle 8i, 9i 버전에서 사용인터넷 환경에 적합한 RDBMS라는 점을 강조특징JVM 내장: DB 내에서 Java 실행 가능 → Java Stored ProcedureHTTP Listener 내장: 웹 기반 응용 프로그램과 직접 연결 가능인터넷 기반 아키텍처 통합: 애플리케이션 서버 없이도 웹과 연동 가능Oracle Portal, Oracle Forms, Oracle Reports의 웹 연동 강화OPS → RAC 발전: 9i에서 Real Application Cluster(RAC) 등장기존 전통적인 DBMS에서 인터넷 시대에 맞는 웹/분산 환경 지원으로 확장 Oracle 10g / 11gg = Grid2003년~2007년 ..

Oracle 2025.07.11

ORACLE(오라클) LISTAGG 함수 정리

Oracle에서 문자열을 집계(aggregation)할 때 유용하게 사용하는 함수 중 하나가 바로 LISTAGG입니다. 주로 GROUP BY 결과를 문자열로 연결하고 싶을 때 사용하며, 실무에서 보고서, 로그 분석, 그룹별 항목 나열 등에 자주 활용됩니다.1. LISTAGG 함수란?LISTAGG는 집계 함수로, 그룹 내 다수의 행 값을 구분자를 사용하여 하나의 문자열로 결합해 줍니다.Oracle 11g R2 (11.2)부터 지원되며, 버전별로 동작 방식에 차이가 있습니다.2. 기본 문법LISTAGG(컬럼명, '구분자') WITHIN GROUP (ORDER BY 정렬기준컬럼)컬럼명: 연결할 문자열 컬럼'구분자': 각 값 사이에 넣을 구분자 (예: 쉼표 ,, 슬래시 / 등)WITHIN GROUP (ORDER..

Oracle 2025.06.19

트랜잭션 격리 수준(Transaction Isolation Level)

데이터베이스 트랜잭션은 여러 작업을 하나의 논리적 단위로 묶어 처리합니다. 이러한 트랜잭션은 일관성 있는 데이터 상태를 유지하고, 동시에 여러 사용자가 데이터를 처리하는 환경에서 문제를 방지하기 위해 격리(isolation)를 필요로 합니다. 트랜잭션 격리 수준은 여러 트랜잭션 간의 격리 정도를 설정하는 기준이며, 이로 인해 발생할 수 있는 문제를 완화하거나 방지할 수 있습니다. 1. 트랜잭션 격리 수준의 종류SQL 표준에서는 트랜잭션 격리 수준을 다음 네 가지로 정의합니다:READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE각 수준은 트랜잭션 간에 발생할 수 있는 Dirty Read, Non-Repeatable Read, Phantom Read 문제를 ..

DataBase 2025.01.20

데이터베이스(DB) 정규화와 비정규화

데이터베이스 정규화(Normalization)와 비정규화(Denormalization)의 정의와 함께 각 기법이 어떻게 적용되는지 예시를 통해 설명하겠습니다.  1. 데이터베이스 정규화(Normalization)정규화는 데이터베이스에서 중복을 최소화하고 데이터를 효율적으로 관리할 수 있도록 테이블을 구조화하는 과정입니다. 이 과정은 여러 단계로 나뉘며, 각 단계는 '정규형(Normal Form)'이라고 불립니다.정규화의 목적중복 제거: 같은 데이터를 여러 번 저장하지 않도록 한다.데이터 무결성 유지: 잘못된 데이터가 삽입되지 않도록 한다.검색 효율성 향상: 데이터를 쉽게 찾을 수 있도록 한다.정규화 과정제1정규형(1NF): 각 열에 원자 값(Atomic Value)만 포함되도록 하는 규칙입니다. 즉, 각..

DataBase 2025.01.16

ORACLE(오라클) ROWNUM 함수

Oracle 데이터베이스에서 ROWNUM은 결과 집합 내의 각 행에 대해 고유한 번호를 부여하는 가상 컬럼입니다. 이는 데이터를 제한하거나 특정 조건에 맞는 행을 빠르게 필터링하는 데 사용됩니다. ROWNUM의 특징결과 집합 생성 순서: ROWNUM은 쿼리가 처리되는 순서에 따라 행 번호를 부여합니다.임시 컬럼: ROWNUM은 실제 데이터베이스 테이블의 컬럼이 아니며, SELECT 쿼리에서만 존재합니다.제약 사항: ROWNUM은 WHERE 절에서 조건으로 사용될 때 동작 방식에 주의가 필요합니다.기본 구문SELECT ROWNUM, column1, column2FROM table_name;예제 1: 간단한 데이터 제한테이블에서 상위 5개의 행만 가져오고 싶을 때 사용합니다.테이블 구조CREATE TABLE..

Oracle 2025.01.09

ORACLE(오라클) ROW_NUMBER() 함수

Oracle 데이터베이스에서 ROW_NUMBER() 함수는 순차적인 숫자를 생성하여 결과 집합 내의 각 행에 고유한 번호를 부여하는 데 사용됩니다. 이는 주로 데이터 순서를 지정하거나 특정 조건에 따라 데이터를 필터링할 때 유용합니다. 함수 구조ROW_NUMBER() OVER (PARTITION BY ORDER BY )PARTITION BY: 데이터를 그룹화하는 기준을 지정합니다. 각 그룹별로 ROW_NUMBER()가 독립적으로 계산됩니다.ORDER BY: 각 그룹 내에서 행 번호를 매기는 기준이 되는 정렬 순서를 지정합니다.사용 사례중복 데이터 제거페이징 처리그룹 내 특정 순위의 데이터 추출예제 1: 중복 데이터 제거중복된 데이터를 가진 테이블에서 최신 데이터만 남기고 나머지를 삭제한다고 가정합니다...

Oracle 2025.01.09

데이터베이스(DB) 트랜잭션(ACID)

🧐 트랜잭션이란?트랜잭션은 데이터베이스에서 하나의 논리적 작업 단위를 뜻합니다. 여러 데이터베이스 연산(INSERT, UPDATE, DELETE 등)을 하나로 묶어서 실행하며, 모든 연산이 성공적으로 완료되거나, 전부 취소(ROLLBACK)되는 것이 보장됩니다.트랜잭션은 데이터 무결성과 일관성을 유지하기 위한 필수적인 메커니즘입니다. 📋 트랜잭션의 특징 (ACID)Atomicity (원자성): 트랜잭션 내의 모든 작업이 성공적으로 완료되거나, 전부 취소됩니다.Consistency (일관성): 트랜잭션이 완료되면 데이터베이스는 항상 일관된 상태를 유지합니다.Isolation (격리성): 하나의 트랜잭션이 실행되는 동안 다른 트랜잭션이 간섭하지 못합니다.Durability (지속성): 트랜잭션이 성공적으..

DataBase 2024.12.31

오라클 순위 함수 (Ranking Functions)

오라클 데이터베이스에서는 데이터를 특정 기준에 따라 순위를 매길 때 순위 함수(Ranking Functions)를 사용합니다. 이러한 함수들은 분석 함수(Analytic Functions)의 일부로, 데이터를 그룹화하거나 정렬된 결과에 기반한 다양한 순위를 제공합니다. 🏆1. 순위 함수란?순위 함수는 쿼리 결과에 대해 특정 기준으로 데이터를 정렬하고 순위를 매기는 데 사용됩니다. 오라클에서 제공하는 대표적인 순위 함수는 다음과 같습니다:RANK(): 동일한 값에 동일 순위를 부여하며, 순위 간 간격이 발생합니다.DENSE_RANK(): 동일한 값에 동일 순위를 부여하지만, 순위 간 간격이 발생하지 않습니다.ROW_NUMBER(): 동일한 값이라도 고유한 순위를 부여합니다.2. 순위 함수의 기본 구문SE..

Oracle 2024.12.17