본문 바로가기

Computer Science/SQL-D

(33)
[SQLD] 제22회 SQL 개발자 자격시험 합격후기 (SQLD, 공부법) 간단히 말하면 SQLD는 SQL 개발자 자격 시험이고, 접수비는 5만원, 1년에 시험 4번(3, 6, 9, 12월 시행), 필기 1번으로 끝, 합격자 발표 시험 보고 한달 후 발표, 책도 5만원, 자격증 발급 따로 없음(2016년도부터 온라인 자격증으로 대체), 정보처리기사보다 어려운 시험, 전공자라면 짧게는 2주, 넉잡아 4주 공부하길, 시험은 서울지역의 경우 동국대에서 봄, 수원사는데도 동국대가 제일 가까웠던 듯, 객관식 1과목 10문제 2과목 40문제, 그 중 주관식 8문제, 총 50문제 객관식+주관식 형식으로 출제된다. SQLD 시험 후기SQLD 시험을 본지도 어언 한달이 지났다. 개강하고서 9월 10일에 동국대(서울 지역)로 시험을 보러 갔는데 지하철에 사람이 어쩜 그렇게 많은지 지옥같다고 생각..
[SQLD] 31. 조인 수행 원리 제 3절 조인 수행 원리 조인이란 두 개 이상의 테이블을 하나의 집합으로 만드는 연산이다. SQL 문에서 FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행된다. 조인 연산은 두 테이블 사이에서 수행된다. 만일 FROM 절에 A, B, C 테이블을 조인할 경우, A,B를 먼저 조인하고 그 결과와 C를 조인하게 되는 과정을 거친다. 또한 각 조인을 수행할 때 기법을 달리하여 수행할 수 있다. 대표적인 조인 기법은 세가지가 있다. - NL Join- Sort Merge Join- Hash Join 1. NL Join - NL Join은 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행- 반복문의 외부에 있는 테이블을 선행 테이블 또는 외부 테이블(Outer Table)이라 함- ..
[SQLD] 30. 인덱스 기본 제 2절 인덱스 기본 1. 인덱스 특징과 종류 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념이다. 인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조이다. 인덱스의 기본적인 목적은 검색 성능의 최적화이다. 그러나 Insert, Update, Delete 등과 같은 DML 작업은 테이블과 인덱스를 함께 변경해야 하기 떄문에 오히려 느려질 수 있다. 가. 트리 기반 인덱스- DBMS에서 가장 일반적인 인덱스는 B-트리 인덱스- 브랜치 블록(Branch Block), 리프 블록(Leaf Block), 루트 블록(Root Block)으로 구성 브랜치 블록 1. 분기를 목적으로 하는 블록 2. 다음 단계의 블록을 가리키는 포인터를 가짐 리프 블록 1. 가장 아래 단계에 존..
[SQLD] 29. 옵티마이저와 실행계획 제 1절 옵티마이저와 실행계획 1. 옵티마이저 옵티마이저(Optimizer)는 사용자가 질의한 SQL문에 대해 최적의 실행방법을 결정하는 역할을 수행한다. 이러한 최적의 실행방법을 실행계획(Execution Plan)이라고 한다. 다양한 실행 방법 들 중에서 최적의 실행 방법을 결정하는 것이 바로 옵티마이저의 역할이다. 관계형 데이터베이스는 옵티마이저가 결정한 실행 방법대로 실행 엔진이 데이터를 처리하여 결과 데이터를 사용자에게 전달할 뿐이다. - 규칙기반 옵티마이저 (RBO, Rule Based Optimizer)- 비용기반 옵티마이저 (CBO, Cost Based Optimizer) 현재 대부분의 관계형 데이터베이스는 비용기반 옵티마이저만을 제공한다. 규칙기반 옵티마이저의 규칙들을 알아두면 보편 타당..
[SQLD] 28. 절차형 SQL 제 8절 절차형 SQL 1. 절차형 SQL 개요 SQL 언어에서도 일반적인 개발 언어처럼 절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL(Procedural Language) / SQL(Oracle), SQL/PL(DB2), T-SQL(SQL Server) 등의 절차형 SQL을 제공하고 있다. 이는 조건에 따른 분기처리를 이용해 특정 기능을 수행하는 저장 모듈을 생성할 수 있고, 절차형 SQL을 통해 생성할 수 있는 모듈인 Procedure, User Defined Function, Trigger에 대해서 간단하게 살펴보도록 한다. 2. PL / SQL 개요가. PL / SQL 특징 Oracle의 PL / SQL은 Block 구조로 되어있고, 블럭 내에는 DML 문장과 QUERY 문장, 그리고..
[SQLD] 27.DCL(DATA CONTROL LANGUAGE) 제 7절 DCL(DATA CONTROL LANGUAGE) 1. DCL 개요 - DDL : 테이블 생성과 조작에 관련된 명령어- DML : 데이터를 조작하기 위한 명령어- TCL : 트랜잭션을 제어하기 위한 명령어 (COMMIT, ROLLBACK, SAVEPOINT 등)- DCL: 유저를 생성하고 권한을 제어할 수 있는 명령어 2. 유저와 권한 데이터베이스 시스템을 운영할 때 새로운 유저를 생성하고, 생성한 유저에게 공유할 테이블이나 기타 오브젝트에 대한 접근 권한만을 부여한다면 문제는 쉽게 해결할 수 있다. 대부분의 데이터베이스는 데이터 보호와 보안을 위해서 유저와 권한을 관리하고 있는데, 오라클에서는 기본적으로 제공되는 유저들인 SYS, SYSTEM, SCOTT 유저에 대해서 간단하게 알아보고자 한다...
[SQLD] 26. 윈도우 함수(WINDOW FUNCTION) 제 6절 윈도우 함수(WINDOW FUNCTION) 1. WINDOW FUNCTION 개요 기존 관계형 데이터베이스는 칼럼과 칼럼간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면, 행과 행간의 관계를 정의하거나, 행과 행간을 비교, 연산하는 것을 하나의 SQL문으로 처리하는 것은 매우 어려운 일이었다. 하지만, 윈도우 함수를 이용한다면 행과 행간의 관계를 쉽게 정의할 수 있게 된다. 분석 함수(ANALYTIC FUNCTION)나 순위 함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터 웨어하우스에서 발전한 기능이다. 다른 함수들처럼 중첩해서 사용하지는 못하지만, 서브쿼리에서는 사용할 수 있다. - 그룹 내 순위 관련 함수 : RANK, DENSE_RANK, ROW_NUMBER-..
[SQLD] 25. 그룹함수(GROUP FUNCTION) 제 5절 그룹 함수(GROUP FUNCTION) 1. 데이터 분석 개요데이터 분석을 위한 세가지 함수는 다음과 같다.- AGGREGATE FUNCTION- GROUP FUNCTION- WINDOW FUNCTION 1) AGGREGATE FUNCTION GROUP AGGREGATE FUNCTION 이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류할 수 있다. 앞서 포스팅했던 COUNT, SUN, AVG, MAX 와 같은 함수들이 집계함수에 속한다. 2) GROUP FUNCTION 결산개념을 가지는 업무의 경우, 소계, 중계, 합계, 총 합계 등 여러 레벨의 결산 보고서를 만드는 것이 중요 업무 중의 하나이다. 그런데 이러한 레벨별 집계를 위해서는 여러 단계의 SQL을 UNION, UNION ..
[SQLD] 24. 서브쿼리 제 4절 서브쿼리 서브쿼리(Subquery)란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL 문을 말한다. 서브쿼리는 다음과 같이 메인쿼리가 서브쿼리를 포함하는 종속적인 관계에 놓여있다. - 서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있음- 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음- 서브쿼리 칼럼을 표시해야 한다면 스칼라 서브쿼리, 함수 등을 사용- 서브쿼리는 서브쿼리 레벨과는 상관없이 항상 메인쿼리 레벨로 결과 집합이 생성- 서브쿼리는 괄호로 감싸서 사용- 서브쿼리는 단일행 또는 복수행 비교연산자와 함께 사용 가능- 서브쿼리에서는 ORDER BY 절을 사용하지 못하고, 메인쿼리 마지막 문장에 사용 가능 - 서브쿼리가 SQL 문에서 사용 가능한 곳SELECT절, FROM절, WHERE절, HA..
[SQLD] 23. 계층형 질의와 셀프 조인 제 3절 계층형 질의와 셀프 조인 1. 계층형 질의 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의(Hierarchical Query)를 사용한다. 계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다. 이는 엔티티를 순환관계 데이터 모델로 설계한 경우 계층형 데이터가 발생하게 된다. 순환관계 데이터 모델의 예로는 조직, 사원, 메뉴 등이 있다. 가. 오라클(Oracle) 계층형 질의 오라클은 계층형 질의를 지원하기 위해 아래와 같이 계층형 질의 구문을 제공한다. - START WITH : 계층 구조 전개의 시작 위치를 지정하는 구문이다. 즉, 루트데이터를 지정한다.- CONNECT BY : 다음에 전개될 자식 데이터를 지정하는 구문이다. 자식..