dongdorodongdong
정의- 데이터베이스 일부분, 전체에 대해서 권한이 없는 사용자가 액세스를 수행하는 것을 금지하기 위해 사용되는 기술 무결성과 보안무결성 - 권한이 있는 사용자로부터 DB를 보호하는 것 - 사용자들이 DB를 정확하게 사용할 수 있도록 보장 보안 - 권한이 없는 사용자로부터 DB를 보호하는 것 - 사용자들이 DB를 언제든지 사용할 수 있도록 보장
정의- 트랜잭션들의 처리를 수행하는 도중 장애가 발생하여 DB가 손상되었을 때 손상되기 이전의 정상 상태로 복구시키는 작업 유형트랜잭션 장애 - 입력 데이터 오류, 불명확한 데이터, 시스템 자원 요구의 과다 등 트랜잭션 내부의 비정상적인 상황으로 인해 프로그램 실행이 중지 시스템 장애 - DB에 손상을 입히지는 않으나 H/W 오동작, S/W 손상, 교착상태 등에 의해 모든 트랜잭션의 연속적인 수행에 장애를 주는 현상 미디어 장애 - 저장장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 DB의 일부 또는 전부가 물리적으로 손상 기법로그기반-지연 갱신기법 - DB 변경 내역을 Log에 보관 - 트랜잭션 완료 시 DB-Write 수행 - 트랜잭션 종료된 이후 장애 발생 "Log이용 REDO 실행" ..
쿠키세션스토리지URLTCP/UDP슈퍼컴퓨터멀티태스킹스니핑백도어해킹디도스마샬링포팅스트리밍1의 보수, 2의보수
정의 - 기본적인 데이터 처리 기능은 Create, Read, Update, Delete를 묶어서 일컫는 말 기능 이름 기능 SQL CREATE 생성 INSERT READ 읽기 SELECT UPDATE 갱신 UPDATE DELETE 삭제 DELETE
JOIN정의 - 두 개 이상의 테이블을 하나의 집합으로 만드는 연산 - FROM 절에 나열된 모든 테이블이 join 될 때 까지 반복 수행 종류 - NL JOIN - Sort Merge JOIN - Hash JOIN NL JOIN (Nested Loop Join)특징 - 랜덤 방식으로 데이터를 엑세스 하기 때문에 처리 범위가 좁은 것이 유리 - 선행 테이블의 조건을 만족하는 모든 행의 수 만큼 반복작업을 실시 (결과 수가 적은 테이블을 선행테이블로 선정하는 것이 좋음) - Sort-Merge, Hash Join과는 다르게 OLTP 목록 처리 업무에 많이 사용 - Join 컬럼에 적당한 인덱스가 있어서 Natural Join이 효율적일 때 유용 - Unique Index를 활용하여 수행시간이 적게 걸리는 ..
인덱스 특징 - 원하는 데이터를 쉽게 찾을 수 있도록 돕는 것 (책의 찾아보기와 유사) - 검색(조회) 성능의 최적화가 목표 - 동일 컬럼으로 구성된 인덱스를 중복으로 생성X (컬럼의 순서가 다른 것은 서로 다른 인덱스로 취급) - 기본 인덱스에 중복된 키값, NULL 값 X - 자주 변경되지 않는 컬럼이 좋은 인덱스 후보 - 테이블의 전체 데이터를 읽는 경우는 인덱스가 거의 불필요 - 대량의 데이터를 삽입할 때는 모든 인덱스를 제거하고 데이터를 입력 - 인덱스를 구성하는 컬럼의 순서는 성능에 영향을 줌 - DML 처리 성능을 저하 시킬 수 있음 - 인덱스를 구성하지 않는 컬럼의 데이터가 UPDATE될 때는 인덱스로 인한 부하가 발생하지 않음 종류 - 트리 기반 인덱스 - 클러스터형 인덱스 (SQL Se..
옵티마이저 (Optimizer)정의 - 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할 수행 (실행방법 : Execution plan) - 옵티마이저가 선택한 실행 방법의 적절성 여부는 쿼리 수행 속도에 가장 큰 영향을 미침 - 현재는 비용기반 위주로 신규 기능에 지원 방법 - 규칙기반 옵티마이저 (RBO, Rule Based Optimizer) - 비용기반 옵티마이저 (CBO, Cost Based Optimizer) 규칙기반 옵티마이저 (RBO)특징 - 규칙(우선순위)를 가지고 실행계획을 생성 - 되도록이면 인덱스를 사용하는 실행계획을 생성 - 참조하는 정보에는 인덱스 유무, 인덱스 종류, 연산자의 종류, 참조하는 객체의 종류 등 - 인덱스를 이용한 엑세스 방식이 전체 테이블 엑세스 ..
개요특징 - SQL에도 절차 지향적인 프로그램이 가능하도록 제공 - SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 모듈 생성 가능(Procedure, User Defined Function, Trigger) 종류 - Oracle : PL/SQL - DB2 : SQL/PL - SQL Server : T-SQL PL/SQL특징 - 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어 - Block 구조로 되어있고 Block 내에는 DML 문장과 Query문장, 그리고 절차형 언어(IF, LOOP) 등을 사용 - 다양한 저장모듈(Stored Module) 개발 가능 - 변수, 상수 등을 선언하여 SQL문장 간 값을 교환 - Oracle에 내장되어 있으므로 Oracle 및 PL/S..
정의Data Control Language유저를 생성하고 권한을 제어할 수 있는 명령어 유저, 권한Oracle - 유저를 통해 DB에 접속하는 형태 - ID, PW를 통해 인스턴스에 접속을 하고, 그에 해당하는 스키마에 오브젝트 생성 등의 권한을 부여 SQL Server - 인스턴스 내 다수의 데이터베이스에 연결하여 작업하기 위해 유저를 생성한 후 로그인과 유저를 매핑 - 특정 유저는 특정 데이터베이스 내 특정 스키마에 대한 권한을 부여 받을 수 있음 시스템 권한 - 유저 생성 후 데이터베이스 접속한다고 해서 Object (테이블, 뷰, 인덱스 등)에 접할 수 없다. - 사용자가 실행하는 DDL 문장은 그에 해당하는 권한이 있어야만 실행할 수 있다. Object 권한 - 특정 Object에 대한 DML ..
정의행과 행간의 관계를 쉽게 정의하기 위해 만든 함수 결과에 대한 함수처리이기 때문에 결과 건수는 줄지 않음적용 범위는 PARTITION을 넘을 수 없음 종류순위 관련 함수 - RANK - DENSE_RANK - ROW_NUMBER 집계 관련 함수 - SUM - MAX, MIN - AVG, COUNT 행 순서 관련 함수 - FIRST_VALUE, LAST_VALUE (Oracle) - LAG (Oracle) - LEAD (Oracle) 비율 관련 함수 - CUME_DIST (ANSI, Oracle) - PERCENT_RANK (ANSI, Oracle) - NTILE (Oracle, SQL Server) - RATIO_TO_REPORT (Oracle) 구문 - SELECT 윈도우함수(ARGUMENTS) O..
AGGREGATE FUNCTIONGROUP AGGREGATE FUNCTION이라고 부름 COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수 GROUP FUNCTIONROLLUP, CUBE, GROUPING SETS 일반 그룹 함수로 동일한 결과 추출 가능집계 대상 컬럼 이외의 GROUP 대상 컬럼의 값은 NULL을 반환 ROLLUP특징 - GROUP BY의 확장된 형태로 사용하기가 쉬움 - 인자로 주어진 컬럼의 순서에 따라 다른 결과를 추출 - SELECT절에 ROLLUP을 사용함으로써 보통의 SELECT된 데이터와 그 데이터의 총계를 구할 수 있음 코드 - SELECT deptno, SUM(sal) FROM emp GROUP BY deptno; # deptno를 그룹지어서 SUM(집계) ..
서브쿼리정의 - 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 특징 - 괄호로 감싸서 사용 - 서브쿼리에서 ORDER BY절 사용X (ORDER BY절은 메인쿼리의 마지막 문장에 위치) - SELECT 절, FROM 절, HAVING 절, ORDER BY 절 등에서 사용 가능 종류 - 연관 서브쿼리 > 서브쿼리가 메인쿼리 컬럼을 가지고 있는 형태의 서브쿼리 > WHERE sal > (SELECT MAX(sal) FROM emp e2 WHERE e2.name = e1.name) - 비연관 서브쿼리 > 서브쿼리가 메인쿼리 컬럼을 가지고 있지 않은 형태의 서브쿼리 > 주로 메인쿼리에 값을 제공하기 위한 목적으로 사용 - 단일 행 서브쿼리 > 서브쿼리의 실행 결과가 항상 1건 이하인 서브쿼리를 의미 > ..
계층형 데이터정의 - 동일 테이블에 계층적으로 상위, 하위 데이터가 포함된 데이터 - 순환관계 데이터 모델로 설계할 경우 계층형 데이터 발생 (조직, 사원, 메뉴 등) 계층형 질의정의 - 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 계층형 질의를 사용 OracleLEVEL 컬럼 - Root 데이터면1, 그 하위 데이터면 2, Leaf 데이터까지 1씩 증가 CONNECT_BY_ISLEAF 컬럼 - Leaf 데이터면1, 아니면 0 CONNECT_BY_ISCYCLE 컬럼 - 자식 데이터와 부모 데이터에서 Cycle이 존재하면1, 아니면 0 START WITH 절 - 계층 구조에서 전개 시작 위치를 지정하는 구문 - Root 데이터를 지정 - 결과목록에 항상 포함되어 짐 WHERE 절 - 모든..
집합 연산자정의 - 연관된 데이터를 조회하는 방법 중 하나 - 여러개의 결과를 연결하여 하나로 결합하는 방식 사용 특징 - 서로 다른 테이블에서 비슷한 형태의 결과를 반환하는 것을 하나의 결과로 합칠 때 사용 - 같은 테이블에서 서로 다른 질의를 수행하여 결과를 합칠 때 - 튜닝관점에서 실행계획을 분리하고자 하는 목적으로도 사용 제약조건 - SELECT 절의 컬럼 수가 동일 - ORDER BY는 마지막 줄에 한번만 기술 UNION - 여러개의 SQL문의 결과에 대한 합집합 - 중복된 행은 하나의 행으로 만듬 UNION ALL - 여러개의 SQL문의 결과에 대한 합집합 - 중복된 행도 고려X - 개별 SQL문의 결과가 서로 중복되지 않을때 UNION의 결과와 동일 INTERSECT - 여러개의 SQL문의 ..
STANDARD SQL표준 SQL 기능 - STANDARD JOIN(CROSS, OUTER JOIN) 추가 - SCALAR Subquery, TOP-N query 등의 새로운 Subquery 기능 - ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능 - Window Function 같은 새로운 분석 기능 연산자 기능 - UNION : UNION - INTERSCETION : INTERSECT - DIFFERENCE : MINUS / EXCEPT - PRODUCT : CROSS JOIN - SELECT : WHERE 절로 구현 - PROJECT : SELECT 절로 구현 - JOIN : 다양한 JOIN - DIVIDE : 사용X FROM 절 JOIN 형태INNER JOIN - 기존..
개요특징 - 두 개 이상의 테이블들을 연결, 결합하여 데이터를 출력 - 관계형 데이터베이스의 가장 큰 장점, 핵심기능 필요성 - Data Warehouse 모델 처럼 하나의 테이블에 모든 데이터를 집중시키고 조회할 수도 있지만, 데이터의 정합성에 큰 비용이 들고 필요한 데이터를 조회, 삭제, 수정하는 작업 또한 힘들다. 성능 부분에서도 규모가 큰 테이블에서 필요한 데이터를 찾아야 하니 오래 걸린다. 따라서, JOIN을 통해 테이블을 정규화하여 분할하게 되면 위와 같은 문제는 해결된다. - JOIN을 잘못 기술하게 되면 시스템 자원부족, 과다한 응답시간 지연의 중요 원인이 된다. EQUI JOIN특징 - JOIN 조건에 서로 값이 일치하는(=) 조건을 가진 데이터를 JOIN 코드 SELECT * FROM ..
집계함수 특징 - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 반환하는 함수 COUNT(*) - NULL값을 포함한 행의 수를 반환 COUNT(표현식) - 표현식의 값이 NULL 값인 것을 제외한 행의 수를 반환 SUM(표현식) - 합계를 반환 AVG(표현식) - 평균을 반환 MAX(표현식), MIN(표현식), STDDEV(표현식), VARIAN(표현식) - 최대, 최소, 표준 편차, 분산을 반환 GROUP BY 특징 - FROM, WHERE 절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 통계정보를 얻을 때 사용 - GROUP BY로 소그룹 기준을 정한 후, SELECT절에 집계 함수 사용 - 집계 함수의 정보는 NULL값을 제외 후 수행 - GROUP BY 절에서는 Alias 명을 사용X -..
내장함수특징 - 데이터 값을 간편하게 조작 - 함수의 입력 값에 따라 단일행 함수, 다중행 함수로 나뉜다. - 입력 값에 상관없이 출력은 하나만 된다. (M:1) 종류 - 문자형 - 숫자형 - 날짜형 - 변환형 - NULL 관련 DUAL 테이블정의 - Data Dictionary와 함께 Oracle에 의해 자동으로 생성되는 테이블 - 사용자 SYS의 스키마에 있음 (그래도 모든 사용자가 엑세스 가능) - SELECT ~ FROM ~ 의 형식을 갖추기 위한 일종의 DUMMY 테이블 (계산, 사용자 함수 등을 실행하고자 할 경우 유용) - 'X'라는 값을 1건 포함 ※ Oracle함수 / SQL Server함수 문자형 함수LOWER(문자열) - 알파벳 문자를 소문자로 바꾸어 준다. UPPER(문자열) - 알..
WHERE특징 - WHERE절에 조건이 없는 FTS(Full Table Scan) 문장은 SQL 튜닝의 1차적인 검토 대상이 된다. (이는 무조건 나쁜 것이 아니라 유용하게 사용하는 경우도 있음) 연산자종류 - 비교 연산자(=, >, >=,
트랜잭션정의 - 데이터베이스의 논리적 연산단위 - 분할할 수 없는 최소의 단위 - 따라서 All or Nothing (Atomicity 특성) 특징 - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함 특성 - Atomicity : 모두반영 or 반영x - Consistency : 시스템의 고정요소는 트랜잭션 수행 전과 후의 상태가 같아야 함 - Isolation : 트랜잭션은 완료될 때까지 다른 트랜잭션이 참조X - Durability : 트랜잭션의 결과는 영구 반영 TCL (Transaction Control Language)COMMITROLLBACKSAVEPOINTCOMMIT COMMIT 이전의 데이터상태 - 메모리 버퍼에만 영향 - 변경 이전 상태로 복구 가능 - SELECT문으로 변경 결과를 ..
DML (Data Manipulation Language)SELECTINSERTUPDATEDELETESELECT DISTINCT : 검색 결과에서 중복 배제 GROUP BY : 그룹별 검색 - COUNT( ) : 그룹별 튜플 수 - AVG( ) : 그룹별 평균 - SUM( ) : 그룹별 합계 - MAX( ) : 그룹별 최대 - MIN( ) : 그룹별 최소ORDER BY : 정렬 검색 - ASC : 오름차순 - DESC : 내림차순 AS : Alias 부여 산술연산자 : 숫자, 날짜 형식에 적용 - ( ) : 괄호 - * : 곱셈 - / : 나눗셈 - + : 덧셈 - - : 뺄셈합성연산자 - Oracle : 문자와 문자 연결은 ' || ' - SQL Server : 문자와 문자 연결은 ' + ' - CON..