본문 바로가기

728x90
반응형

SQL/SQLD.

(11)
[SQLD] SQL활용 - 파티션 Partition 파티션은 대용량의 테이블을 여러 개의 데이터 파일에 분리해 저장한다. 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제 조회 성능이 향상된다. 파티션은 각각의 파티션 별로 독립적으로 관리될 수 있다. 즉, 파티션 별로 백업하고 복구가 가능하면 파티션 전용 인덱스 생성도 가능하다. 파티션은 ORACLE 데이터베이스의 논리적 관리 단위인 테이블 스페이스 간에 이동이 가능하고 데이터를 조회할 때 데이터의 범위를 줄여 성능을 향상 시킨다. Range Partiton 가장 일반적인 파티션 형태로 테이블의 컬럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장하는 기능이다. List Partition 순서와 상관없이, 사용자가 미리 정한 그룹핑 특..
[SQLD] SQL활용- 윈도우 함수 윈도우 함수 윈도우 함수는 행과 행 간의 관계를 정의하기 위해 제공되는 함수이다. 윈도우 함수를 사용해 순위, 합계 , 평균, 행 위치등을 조작 할 수 있다 윈도우 함수 구조 SELECT WINDOW_FUNC(ARGUMENTS) OVER (PARTITION BY 컬럼 ORDER BY WINDOWING절) FROM 테이블명 ARGUMENTS(인수) - 윈도우 함수에 따라 0-N개의 인수를 설정한다 PARTITION BY - 전체 집합을 기준에 의해 소그룹 으로 나눈다. ORDER BY - 어떤 항목에 대해 정렬한다. WIDOWING - 행 기준의 범위를 정한다. ROWS는 물리적 결과의 행 수이고 RANGE는 논리적인 값에 의한 범위이다. WINDOWING WINDOWING 절은 함수의 대상이 되는 행 기..
[SQLD] SQL활용 - GROUP 함수 그룹 함수 그룹 함수란 하나 이상의 행을 그룹으로 묶어 연산하여 총합(SUM), 최댓값(MAX), 평균(AVG) 등의 하나의 결과로 나타내는 것이다. GROUP BY절 WHERE 절을 통해 조건에 맞는 데이터를 조회했지만 테이블에 1차적으로 존재하는 데이터 이외의 정보, 2차 가공 정보도 필요하다. GROUP BY 절은 SQL 문에서 FROM 절과 WHERE 절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별로 통계 정보를 얻을 때 추가로 사용되는 SQL문이다. 특징 - GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다. - 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행한다. - GROUP BY 절에서는 SELECT 절과는 ..
[SQLD] SQL 활용 - 서브쿼리(Subquery) 서브쿼리 서브 쿼리란 하나의 SQL문 안에 또 다른 SQL문을 말한다. 즉 SELECT문 내에 다시 SELECT문 사용하는 형태의 SQL문이다. 서브쿼리 밖에 있는 SELECT문은 메인 쿼리라고 한다. 서브쿼리 형태 일반적인 서브 쿼리 - WHERE절 스칼라 서브 쿼리 - SELECT 절 인라인 뷰 - FROM 절 서브 쿼리 특징 괄호로 감싸서 사용한다. 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자 : =, ≥, ≤, >, 서브 쿼리 안의 출력 컬럼은 반드시 단일 컬럼이어야 한다 다중 컬럼 서브 쿼리 SELECT * FROM EMPLOYEES e WHERE (MANAGER_ID, JOB_TITLE) IN ( ('9', 'Accountant'), ('4', 'Progra..
[SQLD] SQL 활용 - 계층형 쿼리 계층형 조회(CONNECT BY) 계층형 조회는 ORACLE 데이터베이스에서 지원하는 것으로 계층형으로 데이터를 조회할 수 있다. CONNECT BY는 트리 형태의 구조로 질의를 수행하는데 START WITH구는 시작 조건을 의미하고 CONNECT BY PRIOR는 조인 조건이다. Root 노드로 부터 하위 노드의 질의를 실행한다. 키워드 설명 START WITH 조건 계층 전개의 시작 위치 지정 PRIOR 자식 = 부모 부모에서 자식 방향으로 검색을 수행하는 순방향 전개 PRIOR 부모 = 자식 자식에서 부모 방향으로 검색을 수행하는 역방향 전개 NOCYCLE 데이터 전개시 이미 조회된 데이터를 다시조회할때 생기는 CYCLE 방지 ORDER SIBLINGS BY 컬럼 동일한 LEVEL인 형제노드 사이에..
[SQLD] SQL 활용 - JOIN JOIN SQL에서 두 개 이상의 릴레이션을 연결 또는 결합하여 데이터를 출력하는 연산이다. EQUI(등가) JOIN JOIN의 가장 기본은 교집합을 만드는 것으로 두 개의 테이블 간 일치하는 것을 JOIN한다. "=" 제외한 조인의 형태는 NON-EUQI 비등가 조인이라고 한다. INNER JOIN ANSI 표준 등가 조인 SELECT * FROM EMP e INNER JOIN DEPT d ON E.DEPTNO = d.DEPTNO 결과로 뽑을 컬럼명은 항상 붙여주는 것이 좋음 ALIAS NAME 꼭 사용할 것 USING절을 사용한 JOIN SELECT * --E.DEPTNO는 에러남 FROM EMP E INNER JOIN DEPT D USING(DEPTNO) USING절 사용 시 컬럼은 as생략 ORA..
[SQLD] SQL기본 관계형 데이터베이스 데이터 베이스란 여러 사람이 공유해 사용할 목적으로 체계화하여 통합, 관리하는 데이터의 집합이며 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다. 그중 관계형 데이터 베이스는 릴레이션 형태의 자료구조를 갖고있는 데이터베이스로 릴레이션을 사용해 집합 연산과 관계 연산이 가능하다. 릴레이션 = 테이블 = 엔티티 튜플 = ROW 집합 연산 집합 연산 설명 합집합(Union) - 두 개의 릴레이션을 하나로 합 - 중복된 행(튜플)은 한 번만 조회 차집합(Difference) - 본래 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것 조회 교집합(Intersection) - 두 개의 릴레이션 간에 공통된 것 조회 곱집합(Cartesian produ..
[SQLD] 데이터 모델링의 이해 -4 데이터 모델링 성능 데이터 모델링 데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영 될 수 있도록 하는 것을 의미하며 모델링을 중심으로 튜닝한다. 성능 데이터 모델링 절차 데이터 모델링을 할 때 정규화를 정확하게 수행한다. 데이터베이스 용량산정을 수행한다. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다. 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다. 성능관점에서 데이터 모델을 검증한다. 정규화 정규화란 데이터를 분해하는 과정이다. 데이터의 일관성을 유지하고 데이터 중복을 최소화하며 데이터의 유연성을 최대화 하기위해 수행한다. 정규화 절차 정규화 절차 설명 제 1정규..

728x90