반응형

sqld 19

[SQLD] 4-5. SQL 활용 - 그룹 함수, ANSI/ISO SQL 표준, ROLLUP, GROUPING, CUBE

A. 데이터 분석을 위한 함수 ( ANSI/ISO SQL 표준 )    B. GROUP FUNCTION - ROLLUPGROUP BY의 확장된 형태병렬 수행 가능시간 및 지역처럼 계층적 분류를 포함하고 있는 데이터의 집계에 적합지정된 칼럼목록은 소계를 생성하기 위해 사용Grouping Columns의 수+1 Level의 Subtotal이 생성ROLLUP의 인수는 계층 구조이므로 인수 순서가 바뀌면 수행 결과도 변경계증간 집계에 대해서는 LEVEL별로 정렬계층 내 GROUP BY 수행 결과는 정렬을 지원하지 않아 별도의 ORDER BY 절을 사용하여 정렬  C. GROUP FUNCTION - GROUPING 1. 소계가 계산되는 행은 1, 소계가 아닌 행은 2를 반환하는 함수  D. GROUP FUNCTI..

[SQLD] 4-2. SQL 활용 - 집합연산자(SET OPERATION) 개요, 종류, 사용법

A. 집합 연산자(SET OPERATION) 개요 1) 집합 연산자 개념1. JOIN과 더불어 두 개 이상의 테이블에서 데이터를 조회하는 방법 2. 여러 개의 질의의 결과를 연결하여 하나로 결합 3. 2개 이상의 질의 결과를 하나의 결과로 리턴 2) 집합 연산자 사용1. 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 2. 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때 3. 튜닝관점에서 실행계획을 분리 3) 집합 연산자 유의점1. SELECT 절의 칼럼 수가 동일해야 함 2. SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 함 3. ORDER BY는 집합 연산을 적용한 최종 결과에 대한 정렬 처리로 마지막 줄에 한..

[SQLD] 4-1. SQL 활용 - 표준 조인, Standard SQL, Inner Join, Natural Join, Using Join, Cross Join, Outer Join

A. STANDARD SQL 개요1. 관계형 데이터베이스를 유일하게 접속할 수 있는 언어가 SQL 2. 벤더별로 일부 기능의 개발이 진행 중인 경우도 있고 벤더별로 특이한 기술 용어는 여전히 호환이 안 되고 있음 3. ANSI/ISO SQL 표준을 통해 STANDARD JOIN을 포함한 많은 기능이 상호 벤치마킹하면서 DBMS 간 평준화됨  B. ANSI/ISO 표준 SQL의 기능 1. STANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 둥 새로운 FROM 절 JOIN 기능) 2. SCALAR SUBQUERY, TOP-N QUERY 둥의 새로운 SUBQUERY 기능 3. ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능 4. WINDOW FUNCTION 같은 새..

[SQLD] 3-10. SQL 기본 - 예상문제풀이 (Question&Answer)

문제 1. 다음 설명 중 맞는 것은 무엇인가?① 데이터베이스에는 단 한 개의 테이블만 존재할 수 있다. ② 데이터베이스 내에 테이블이란 존재하지 않는다. ③ 아주 복잡한 자료도 테이블은 하나만 만드는 것이 바람직하다. ④ 모든 자료는 실질적으로 테이블에 저장이 되며, 테이블에 있는 자료들을 꺼내 볼 수 있다.   문제 2. 데이터 유형에 대한 설명 중 틀린 것은 무엇인가? ① CHAR 유형은 고정 길이 문자형이다. ② VARCHAR 유형은 가변 길이 숫자형이다. ③ NUMERIC 유형은 숫자형 데이터를 표현한다. ④ DATE 유형은 날짜 데이터를 다룰 때 사용한다.   문제 3. 다음 중 테이블 명으로 가능한 것은 무엇인가? ① EMP100 ②100EMP ③ EMP-100 ④ 100_EMP  문제 4...

[SQLD] 3-9. SQL 기본 - 조인(JOIN), EQUI JOIN, JOIN 구문 주의 사항

A. 조인(JOIN)이란? 1. 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것 2. 관계형 데이터 베이스의 가장 큰 장점이며 대표적인 핵심 기능 3. 일반적인 경우 행들은 PK나 FK 값의 연관에 의해 조인이 성립 4. 쿼리 성능에 지대한 영향을 미치므로 튜닝 포인트가 될 수 있음 5. 조인에는 EQUI JOIN(등가 조인), NON EQUI JOIN(비 등가 조인) 존재  B. EQUI JOIN 1. 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법 2. 일반적으로 PK와 FK의 관계를 기반 3. 일부 EQUI JOIN은 PK와 FK의 관계가 성립되지 않을 수 도 있음 4. JOIN의 조건은 WHERE 절에 기술하여 “=” 연산자를 사용  C. EQUI..

[SQLD] 3-8. SQL 기본 - OrderBy정렬, SELECT 문장, ROWNUM, Top N 쿼리

A. ORDER BY 정렬 1. SQL 문장으로 조회된 데이터들을 특정 컬럼을 기준으로 정렬하여 출력 2. 정렬 방식을 지정하지 않으면 오름차순이 적용 3. 정렬 방식은 오름차순(ASC), 내림차순(DESC) 두 가지가 있음 4. SQL 문장의 제일 마지막에 ORDER BY 절이 위치 5. 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력 6. 날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 빠른 값이 먼저 출력 7. Oracle 에서 NULL값은 가장 큰 값 8. SQL Server 에서는 NULL 값은 가장 작은 값 9. ORDER BY 에 칼럼 대신 SELECT에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능   B. SELECT 문장 실행..

[SQLD] 3-4. SQL 기본 - TCL 개념, 트랜잭션, COMMIT, ROLLBACK, SAVEPOINT

TCL(Transaction Control Language)  1) 개념 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어  2) 종류 COMMIT, ROLLBACK, SAVEPOINT    A. 트랜잭션 개요1. 트랜잭션이란 데이터베이스의 논리적 연산 단위이며 분리될 수 없는 한 개 이상의 데이터베이스 조작 단위 2. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함 3. 트랜잭션은 분할할 수 없는 최소의 단위 4. 전부 작용하거나 전부 취소 (All OR Nothing)  B. 트랜잭션 특징원자성(Atomicity) - 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 함 (All or Nothi..

[SQLD] 3-3. SQL 기본 - DML 개념, 종류, 구문

DML(Data Manipulation Language) 1) 개념 - 만들어진 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하는 조작 관련 명령어 2) 종류- INSERT, UPDATE, DELETE, SELECT   A. DML : INSERT 1. 테이블에 데이터를 입력하는 명령어 2. INSERT문의 구문형식은 COLUMN LIST를 작성 여부에 따라 두 가지 구문이 존재 【1번째 구문 형식 : 컬럼 목록 작성】 1. INSERT INTO “테이블명” (COLUMN1, COLUMN2 … ) VALUES (VALUE1, VALUE2, …); 2. INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, PLAYER_NO) VALUES (‘ABC123’, ’박지성..

[SQLD] 3-2. SQL 기본 - DDL 개념, 종류, 테이블 생성 규칙, 제약 조건

DDL(Data Definition Language) 1) 개 념 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들로 그러한 구조를 생성/변경/삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령2) 종 류CREATE, ALTER, DROP, RENAME, TRUNCATE A. DDL(Data Definition Language)자주 사용되는 데이터 유형데이터 유형설 명CHARACTER(s)고정 길이 문자열 정보 (Oracle, SQL Server 모두 CHAR로 표현)s는 기본 길이 1바이트, 최대 길이 Oracle 2,000바이트, SQL Server 8,000바이트입력 값의 길이가 s보다 작을 경우 그 차이 만큼 공백문자로 입력됨VARCHAR(s)가변 길이 문자열 정보 (Oracle은 VAR..

[SQLD] 2-5. 데이터 모델과 성능 - 예상문제풀이 (Question&Answer)

문제 1. 데이터 모델을 다음과 같이 만들었는데 학번, 과목번호 } 결정자이면서 PK이고 성적, 지도교수명, 학과명 } 종속자이다. 속성 중 과목번호가 결정자이고 지도교수명, 학과명 이 과목번호에만 함수종속성을 가진다면 이는 몇 차 정규형에 속하고 몇 차 정규화의 대상인가? ① 1 차 정규형 - 2 차 정규화대상 ② 2 차 정규형 - 3 차 정규화대상 ③ 3 차 정규형 - 보이스코드 정규화대상 ④ 보이스코드 정규형 - 4 차 정규화대상  문제 2. 다음 모델에서 배송 엔터티에서 고객의 정보를 찾을 때 성능향상과 SQL 문장을 단순화하게 할 수 있도록 가장 적절한 반정규화 방법은 무엇인가? (전제사항 : 주문목록 엔터티에서는 고객의 주식별자를 상속받기를 원하지 않음, 배송 엔터티에서는 고객 엔터티의 모든 ..

[SQLD] 2-4. 데이터 모델과 성능 - 분산DB 데이터에 따른 성능, 테이블 분할 분산, 테이블 복제 분산, 테이블 요약 분산, 통합 요약

A. 분산 데이터베이스의 개요 1. 여러 곳에 분산되어있는 데이터베이스를 하나의 가상 시스템으로 구축 2. 논리적으로 동일한 시스템 3. 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임 4. 물리적 Site 분산,논리적으로 사용자 통합/공유 5. 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화시킨 데이터베이스  B. 분산 데이터베이스의 투명성 분할투명성(단편화) - 하나의 논리적 Relation이 여러 단편으로 분할되어 사본이 여러 site에 저장위치투명성 - 위치정보가 System Catalog에 유지되어야 함지역사상 투명성 - 지역 DBMS와 물리적 DB사이의 Mapping이 보장되고 지역시스템 이름과 무관한 이름 사용 가능중복투명성 - DB ..

[SQLD] 2-4. 데이터 모델과 성능 - DB 구조와 성능, 슈퍼/서브타입, PK/FK칼럼

A. DB 구조에 따른 성능 개선 방안1. 슈퍼타입/서브타입 모델 구현에 따른 성능 2. 인덱스 특성을 고려한 PK/FK 데이터베이스 성능 향상 3. 테이블과 FK제약 여부에 따른 성능  B. 슈퍼타입/서브타입 모델의 성능 【슈퍼 서브타입 데이터 모델의 개요 】 1. 업무 데이터의 특징을 공통과 차이점을 표현 2. 공통 속성을 슈퍼 타입으로 모델링 3. 차이점이 속성을 별도의 서브 엔터티로 표현 4. 물리 데이터 모델 테이블로 변환을 할 때 선택의 폭을 넓힐 수 있음 5. 물리 데이터 모델 테이블을 설계하는 단계에서 슈퍼 서브타입 데이터 모델을 일정한 기준에 의해 변환  【슈퍼 서브타입 데이터 모델의 변환 】 1. 슈퍼 서브타입을 물리 데이터 모델 테이블로 변환을 잘못하면 성능이 저하 2. 트랜잭션 특성..

[SQLD] 2-3. 데이터 모델과 성능 - 대용량 데이터에 따른 성능, 수평분할, 수직분할, 테이블 분리, 로우체이닝

A. 대량 데이터 발생에 따른 테이블 분할 개요1. 업무에 자주 사용되는 특정 데이터가 한 군데에 몰리는 현상에 의해 발생 2. 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생 3. 트랜잭션이 분산 처리될 수 있도록 테이블단위에서 분할의 방법 적용 필요   B. 컬럼 수가 많은 테이블 성능1. 데이터가 디스크에 넓게 분포할 가능성이 커져 디스크 I/O 가 대량 발생 가능성 있음 2. 트랜잭션 유형을 파악하여 자주 접근하는 칼럼과 접근 빈도가 낮은 칼럼을 1:1로 수직 분할 3. 필수 입력 속성인 컬럼들은 테이블 앞에 위치시켜 로우 길이를 줄일 수 있음 4. Null 값으로 존재하는 속성들을 재분석하여 데이터모델 재설계를 고려 5. 로우체이닝 발생 가능성이 증가  C. 대용량 데이터에 따른..

[SQLD] 2-2. 데이터 모델과 성능 - 반정규화 정의, 절차, 분류

A. 반정규화 정의 1. 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능 향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미 2. 데이터를 중복하여 성능을 향상시키기 위한 기법 3. 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정 4. 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화 5. 데이터를 조회할 때 디스크 I/O 량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상될 때 수행  B. 반정규화 절차 1. 반정규화 대상조사 : 범위처리 빈도수 조사, 대량 범위 처리 조사, 통계성 프로세스 조사, 테이블 조인 개수 2. 다른 ..

[SQLD] 1-6. 데이터 모델의 이해 - 예상문제풀이 (Question&Answer)

문제 1. 다음 중 정보시스템을 모델링할 때 세 가지 관점에 해당하지 않는 것은? ① 업무가 어떤 데이터와 관련이 있는지 분석 ② 업무가 실제 하는 일은 무엇인지 또는 무엇을 해야 하는지 분석 ③ 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향을 받는지 분석 ④ 업무를 처리할 수 있는 프로그램 구성을 어떻게 해야 하는지 분석  문제 2. 데이터 모델링의 세 가지 중요개념에 속하지 않는 것은? ① 업무가 관여하는 어떤 것(Things) ② 업무가 관여하는 어떤 것의 행위(Events) ③ 업무가 관여하는 어떤 것의 성격(Attributes) ④ 업무가 관여하는 어떤 것의 관계(Relationships)  문제 3. 발생시점에 따라 구분할 수 있는 엔터티의 유형이 아닌 것은? ① 행위 엔터티(Acti..

반응형