
● 조건 연산자 우선순위- 연산자 우선순위 비교 예시 ⦁ 왼쪽 예시는 괄호 유무에 따라 ‘AND’와 ‘OR’ 연산자의 우선순위 차이를 보여준다. ‘[SQL 1]’의 경우 OR 연산자가 AND보다 우선순위가 낮기 때문에 AND가 먼저 평가된다. 즉, job = ’개발자‘이면서 salary > 5000인 조건이 먼저 실행되고 다음에 first_name = ’김‘ 조건이 위 결과와 OR로 결합된다고 볼 수 있다. ⦁ ’[SQL 2]’의 경우 OR 조건이 괄호에 포함되어 있기 때문에, 먼저 평가된다. 즉 first_name = '김' OR job = '개발자' 조건이 먼저 적용되고, 그 결과에서 salary > 5000 조건을 만족하는 데이터만 남는다. ● 집합 연산자 - UNION vs UNION ALL ..

● RDBMS 데이터 타입 ⦁ 데이터베이스에서 사용되는 데이터 속성의 형식을 정의하는 방법이다. 일반적으로 테이블 데이터 타입은 데이터베이스 시스템에서 제공하는 타입을 기반으로 정의된다. 각 컬럼에 대해 테이블에 정의된 데이터 타입은 해당 컬럼에 저장되는 데이터의 유형과 구조를 결정한다. - 문자형 데이터 타입 - 특징 ⦁ 오라클에서 (UTF-8 기준) 한글 한 글자는 3byte로 저장되고, 한글을 제외한 영문/공백/숫자는 1byte로 저장된다. 오라클은 문자 타입 선언 시 입력되는 인자(n)는 byte 기준이라는 특징이 있다. 반면 PostgreSQL은 문자 타입 선언 시 입력되는 인자(n)가 문자수 기준이라는 특징이 있다. ⦁ 오라클은 CHAR(5) 타입 선언 시 양 쪽에 공백이 하나씩 포함된 ..

● 실행계획(Excution Plan) 확인 ⦁ 실행 계획이란, 옵티마이저가 SQL문을 처리(실행)하기 위해 선택한 접근 경로와 조인 순서, 조인 방식, 인덱스 사용 여부 등을 순서대로 나열해 놓은 것이다. 실행 계획의 비용(cost)을 통해 성능을 예측하고 최적화가 필요한 부분을 식별할 수 있다. ⦁ 쿼리를 실행하기 전에 DB 엔진이 ‘어떤 방법으로 테이블을 읽고, 어떤 순서로 조인하고, 어떤 인덱스를 사용할지’ 등을 미리 계산하는 과정이 쿼리 최적화이며, 그 최종 결과물(실행 방안)이 실행 계획이다.● 실행 계획 트리 해석- 오퍼레이션은 위에서 아래로 내려가면서 가장 먼저 읽을 항목을 찾아 가장 하위 레벨부터 해석을 해야한다.(Id=4): EMP 테이블 풀 스캔한다(대략 10행을 읽을 것으로 추정..

백그라운드 프로세스(Background Processes) 구성 요소- 백그라운드 프로세스 개요 ⦁ 오라클 데이터베이스의 백그라운드 프로세스(Background Processes)는 데이터베이스 운영을 지원하는 시스템 프로세스이다. 데이터 무결성 유지, 트랜잭션 관리, 성능 최적화, 데이터 복구 등을 수행하며, 사용자가 직접 실행하는 SQL과는 별도로, 오라클 내부에서 자동으로 실행된다. 백그라운드 프로세스가 없다면 데이터베이스 운영이 원활하지 않으며, 데이터 정합성 및 복구 기능을 수행할 수 없다. ● PMON(Process Monitor): PMON은 비정상 종료된 사용자 프로세스를 감지하고 정리하는 역할을 수행하는 백그라운드 프로세스이다. 문제가 발생한 세션과 관련된 리소스를 자동으로 해제하여 시..

● PGA(Program Global Area) 구성요소- PGA 개요 ⦁ PGA(Program Global Area)는 오라클 데이터베이스에서 각 서버 프로세스가 독립적으로 사용하는 비공유 메모리 영역이다. SGA(System Global Area)는 여러 세션이 공유하는 메모리 영역인 반면, PGA는 개별 서버 프로세스 또는 백그라운드 프로세스만이 사용하는 전용 메모리이다. 사용자 세션과 관련된 데이터를 저장하며, 주로 정렬(Sorting), 해시 조인(Hash Join), 커서(Cursor) 관리, 세션 정보 저장 등의 작업을 수행하며, SQL 실행 성능을 최적화하는 중요한 역할을 한다. - PGA의 주요 구성요소 SQL Work Areas ⦁ 정렬, 해시, 집계 연산 등과 같은 SQL 연산을 처..

● 인스턴스(Instance) 구성 요소- SGA(System Global Area) ⦁ 오라클이 구동되면 가장 먼저 SGA라는 메모리 영역이 할당된다. SGA는 데이터베이스와 이를 액세스하는 프로세스 간의 메모리 캐시 역할을 하며, 주요 구성 요소로는 DB Buffer Cache, Redo Log Buffer 그리고 Shared Pool 등이 있다. 이 영역은 오라클의 공유 메모리로, 여러 프로세스가 동시에 데이터를 액세스할 수 있도록 설계되었다. 다만, 이러한 동시 액세스로 인해 사용자 데이터를 보호하기 위한 Lock과 메모리 액세스를 직렬화하기 위한 Latch가 필요하다. 그러나 SGA의 메모리 캐시 I/O는 디스크 I/O에 비해 훨씬 빠르다는 점에서 성능 최적화에 중요한 역할을 한다.데이터베이스 ..

1-3.데이터 모델링(ERD 표기법)○ 관계 유형- 존재 관계 ⦁ 엔터티 간의 상태를 의미하며, 한 엔터티가 존재하기 위해 다른 엔터티가 반드시 필요하다. 예를 들어 사원은 부서에 반드시 속해있어야 하는데, 이는 존재 형태에 의해 관계가 형성된다. ERD 표기법에서는 존재 관계에 따른 표기 구분이 없으나 UML에서는 실선으로 구분하여 표현한다.- 행위 관계 ⦁ 한 엔터티가 다른 엔터티에 영향을 미치는 관계이다. 예를 들어 고객이 주문을 수행하면 주문이 발생된다. 즉, 주체의 행위에 의해 관계가 형성된다. ERD 표기법에서는 행위 관계에 따른 표기 구분이 없으나 UML에서는 점선으로 구분하여 표현한다. ○ 관계 차수(Cardinality)- 1:1 관계(One to One) 표시⦁ 1:1 관계는 하나의 ..

1-3.데이터 모델링 기본데이터 모델링은 현실에 존재하는 데이터를 체계적으로 구조화하여 데이터베이스에서 효율적으로 저장하고 관리할 수 있도록 설계하는 과정이다. 이는 약속된 표기법에 의해 표현함으로써 실제 데이터베이스를 생성하여 시스템 개발 및 데이터 관리에 사용하기 위해 수행한다. ○ 엔터티(Entity): 엔터티는 데이터베이스에서 관리하고자 하는 개념적 객체 또는 테이블의 구조를 의미한다. 또한 엔터티는 인스턴스의 집합이라고 할 수 있는데, 여기서 인스턴스는 엔터티에 속하는 개별적인 데이터 값(레코드)을 의미한다.- 특징 · 각 엔터티는 하나의 고유한 값(기본키)으로 식별 가능해야 한다. · 데이터베이스에서 테이블 형태로 구현되며, 물리적으로 데이터를 저장할 수 있어야 한다. · 엔터티는 구체적인 정..

1-2. 데이터 저장 구조데이터베이스의 데이터 저장구조는 논리적 구조와 물리적 구조로 나뉜다. 논리적 데이터 저장구조는 데이터 블록, 익스텐트, 세그먼트, 테이블 스페이스로 구성된다. 사용자는 논리적 구조를 기반으로 테이블, 인덱스, 뷰 등을 관리하며, 물리적 저장 위치를 신경 쓰지 않고 데이터를 조작할 수 있다. 반면, 물리적 데이터 저장 구조는 실제 데이터를 저장하는 파일과 그 동작 방식을 정의하는 구조이다. 오라클은 모든 데이터를 데이터 파일(Datafile) 형태로 디스크에 저장하며, 이 파일들은 데이터베이스 운영에 필요한 리두 로그 파일, 컨트롤 파일 등과 함께 데이터의 영구 저장 및 복구를 담당한다. 즉, 물리적 구조는 데이터의 저장 공간을 관리하고 성능을 최적화하며, 장애 발생 시 데이터 복..
