Computer Science

인덱스 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념이다. 검색조건에 부합하는 데이터를 효과적으로(빠르게) 검색할 수 있도록 돕는다. 한 테이블은 0개~N개의 인덱스를 가질 수 있다. 한 테이블에 과도하게 많은 인덱스가 존재하면 INSERT, UPDATE, DELETE와 같은 DML 작업시 부하가 발생한다. B*Tree 인덱스 DBMS에서 널리 사용되는 가장 일반적인 인덱스이다. 루트 블록, 브랜치 블록, 리프 블록으로 구성된ㄷ. 가장 상위에 존재하는 블록이 루트 블록이고 브랜치 블록은 분기를 목적으로 하는 블록이다. 리프 블록은 트리의 가장 아래 단계에 존재하는 블록이다. 리프 블록은 인덱스를 구성하는 컬럼의 데이터와 해당 데이터를 가지고 있는 행의 위치를 가리키는 레..
옵티마이저 사용자가 질의한 SQL문에 대한 최적의 실행방법을 결정하는 역할을 수행한다. 이러한 최적의 실행방법을 실행계획이라고 하낟. 사용자가 요구사항을 만족하는 결과를 추출할 수 있는 다양한 실행 방법이 존재한다. 다양한 실행 방법들을 도출하고 그중에서 최적의 실행방법을 결정하는 것이 옵티마이저의 역할이다. 비용기반 옵티마이저 SQL문을 처리하는데 비용이 가장 적게 드는 실행계획을 선택하는 방식이다. 비용이란 SQL문을 처리하는데 예상되는 시간 또는 자원을 의미한다. 테이블, 인덱스 등의 통계정보와 시스템 통계정보를 이용하여 최적의 실행계획을 도출한다. 인덱스를 사용하는 비용이 테이블 풀 스캔 비용보다 크다고 판단되면 테이블 풀 스캔을 유도하게 된다. 예전엔 규칙기반 옵티마이저: 인덱스가 있으면 무조건..
절차형 SQL 일반적인 개발언어처럼 SQL문도 절차지향적인 프로그램 작성이 가능하도록 절차형 SQL을 제공한다. 절차 형 SQL을 사용하면 SQL문의 연속적인 실행이나 조건에 따른 분기 처리를 수행하는 모듈을 생성할 수 있다. 오라클) 이러한 절차 형 모듈의 종류는 프로시저, 사용자정의함수, 트리거가 있다. 오라클) 이러한 절차형 모듈을 PL/SQL이라고 부른다. PL/SQL의 개요 PL/SQL은 Block 구조로 되어 있고 Block 내에는 SQL문, IF, LOOP 등이 존재함 PL/SQL을 이용해서 다양한 모듈을 개발 가능 PL/SQL의 특징 Blcok 구조로 되어 있으며 각 기능별로 모듈화가 가능 변수/상수 선언 및 IF/LOOP문 들의 사용이 가능 DBMS에러나 사용자 에러 정의를 할 수 있음 ..
DCL 유저를 생성하고 권한을 제어할 수 있는 명령어 데이터의 보호와 보안을 위해서 유저와 권한을 관리해야함 오라클에서 제공하는 유저들 SCOTT: 테스트용 샘플 유저 SYS: DBA 권한을 부여 받은 유저(최상위 유저) SYSTEM: SYSTEM 데이터베이스의 모든 시스템 권한을 부여받은 유저(SYS바로 밑) 유저 생성(SYSTEM계절으로 접속) ROLE을 이용한 권한 부여 유저를 생성하면 다양한 많은 권한들을 부여 해야함 DBA는 ROLE을 생성하고 ROLE에 각종 권한을 부여한 후 해당 ROLE을 다른 유저에게 부여 ROLE에 포함된 권한들이 필요한 유저에게 빠르게 권한을 부여할 수 있음
윈도우 함수 행과 행간의 관계에서 다양한 연산 처리를 할 수 있는 함수가 윈도우 함수이다. 분석함수로도 알려져 있다. (ANSI 표준은 윈도우 함수이다.) 윈도우 함수는 일반 함수와 달리 중첩하여 호출 될 수는 없다. 윈도우 함수의 종류 순위관련함수 RANK DENSE_RANK ROW_NUMBER 집계관련함수 SUM MAX MIN AVG COUNT 행순서관련함수 FIRST_VALUE LAST_VALUE LAG (이전) LEAD (다음) 그룹내 비율관련함수 CUME_DIST PERCENT_RANK NTILE RATIO_TO_REPORT OVER()함수는 서브쿼리를 간단하게 대체하기 위해 사용됨, 오라클에서 OVER() 를 사용하면 GROUP BY나 서브쿼리를 사용하지 않고 분석 함수(SUM, MAX, CO..
그룹함수 그룹함수를 이용하여 특정 집합의 소계, 중계, 합계, 총 합계를 구할 수 있다. 즉 이러한 합계를 계산하기 위해서 기존에 들어갔던 다양한 노력들이 그룹 함수를 이용하여 간단하게 처리할 수 있게 되었다. 그룹 함수의 종류 ROLLUP 소 그룹간의 소계를 계산하는 기능 ROLLUP함수 내에 인자로 지정된 GROUPING 컬럼은 SUBTOTAL을 생성하는데 사용된다. GROUPING 컬럼의 수가 N이라고 했을 때 N+1의 SUBTOTAL이 생성된다. ROLLLUP함수 내의 인자의 순서가 바뀌면 결과도 바뀌게 된다. (ROLLUP은 계층 구조임) CUBE 다차원적인 소계를 계산하는 기능 결합 가능한 모든 값에 대하여 다차원 집계를 생성 CUBE함수 내에 컬럼이 N개라면 2의 N승만큼의 SUBTOTAL이..
서브쿼리 서브쿼리(Subquery)란 하나의 SQL문안에 포함되어 있는 또 다른 SQL문을 말한다. 조인은 조인에 참여하는 모든 테이블이 대등한 관계에 있기 때문에 조인에 참여하는 모든 테이블의 커럼을 어느 위치에서라도 자유롭게 사용할 수 있다. 그러나 서브쿼리는 메인쿼리의 컬럼을 모두 사용할 수 있지만 메인 쿼리는 서브쿼리의 컬럼을 사용할 수 없다. 서브 쿼리 사용시 주의점 서브쿼리를 괄호로 감싸서 사용한다. 서브 쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용한다. 단일 행 비교 연산자는 서브 쿼리의 결과가 반드시 1건 이하이어야 하고 복수 행 비교 연산자는 서브 쿼리의 결과 건수와 상관 없다. 서브쿼리에서는 ORDER BY를 사용하지 못한다. ORDER BY절은 SELECT절에서 오직 한개만..
계층형 질의 테이블에 계층 형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층 형 질의(Hierarchical Query)를 사용 계층 형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다.
윤재에요
'Computer Science' 카테고리의 글 목록 (3 Page)