오라클피부과
article thumbnail
5-1.기본 내장 함수(ORACLE, PostgreSQL)

● 조건 연산자 우선순위- 연산자 우선순위 비교 예시 ⦁ 왼쪽 예시는 괄호 유무에 따라 ‘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  ..

article thumbnail
4-1.데이터 타입(ORACLE, PostgreSQL)

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

article thumbnail
3-3.데이터 모델링 - ERD 표기법(IE, Barker)

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

article thumbnail
3-2.데이터 모델링 - 개념적·논리적·물리적 모델링

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

article thumbnail
1-2. 데이터 저장 구조

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

article thumbnail
article thumbnail
article thumbnail
1-1. SQL 파싱(Parsing) - 인스턴스 환경편

Shared Pool은 동일한 문장이 반복적으로 들어왔을 때 Parse작업을 하지 않고 바로 사용할 수 있도록 공유의 목적으로 사용된다.유저 프로세스에서 SELECT문을 요청하여 Listenser를 통해 Connection까지 완료되었다면, 서버 프로세스가 해당 SELECT문을 처리한다. 결과를 반환하기까지 Parse – Execute – Fetch 단계를 거친다. Shared Pool은 Parse 단계에서 사용된다. 1. 사용자가 SQL문장(select)을 실행- 사용자가 SELECT 쿼리를 요청하면 리스너가 요청을 받아 서버 프로세스로 SQL 문장을 전달한다. 다만, 최초 연결 시점이 아니라 연결이 이미 성립된 후라면 쿼리 실행은 유저 프로세스와 서버 프로세스 간 직접 통신으로 진행된다. 2. SQL..

article thumbnail
1-1. SQL 파싱(Parsing) - 처리과정편

- SQL은 구조적, 선언적 언어라 결과집합을 얻기위해 어떤 절차로 명령을 수행할지가 아닌 필요한 명령어(SELECT, FROM, WHERE 등)만 선언하여 명령을 수행- 때문에 어떻게 데이터를 찾아와야할지(인덱스를 탐색할지 or 테이블을 풀스캔할지) 처리방법(절차)를 기술하지 않음 [힌트작성 우선 예외] - 왼쪽 SQL구문은 수험번호 조건을 통해 수험생 정보를 가져오라고만 기술할 뿐, 처리방법(절차)에 관한 명령은 없음- 그렇다면 인덱스 or 풀스캔 에 관한 처리방법은 누가 정하고 결과집합은 어느 절차에 따라 처리될까?  옵티마이저(Optimizer) [=Parser]- 일반적으로 사용자가 작성한 SQL 쿼리는 옵티마이저가 만든 절차에 따라 수행됨- 옵티마이저(=Parser)가 유저 프로세스로부터 요청..

article thumbnail
1-0. 트랜잭션, 세션, 프로세스 3개는 알아야지

SQL 처리과정을 알기 전 먼저 알아야 할 것...트랜잭션(Transaction)- 더 이상 분할할 수 없는 최소 수행 단위- 한 개 이상의 DML로 이루어지며, 어떤 기능 한 가지를 수행하는 SQL문 덩어리이다.- 트랜잭션은 TCL, DDL 명령어를 사용하는 시점에서 끝나며, 새로운 트랜잭션이 시작된다. 세션(Session)- 데이터베이스 접속을 시작으로, 여러 작업을 수행한 후 접속 종료까지의 전체 기간을 의미한다.- 서버 프로세스와 유저 프로세스 간 연결이 맺어져 있는 기간으로도 정의되며, 사용자가 초기에 데이터베이스에 연결하면 세션이 맺어지고 사용자가 데이터베이스와 연결을 끊으면 세션은 종료가 된다. - 하나의 세션 안에는 여러 트랜잭션이 들어갈 수 있다.- 세션이 여러 개라는 것은 현재 DB에 ..