[Certification]/[SQLD] Structured Query Language Develop 37

[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-7. SQL 기본 - GroupBy절, 집계 함수, HAVING절, NULL처리

A. 집계 함수(Aggregate Function)1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수 2. GROUP BY 절은 행들을 소그룹화 3. SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있음 4. 그룹에 대한 정보를 제공하므로 주로 숫자 유형에 사용 5. MAX, MIN, COUNT 함수는 문자, 날짜 유형에도 적용이 가능 6. 집계 함수는 GROUP BY 절과 같이 사용 7. 테이블 전체가 하나의 그룹이 되는 경우에는 GROUP BY 절 없이 단독으로도 사용 가능 8. SELECT절, HAVING, ORDER BY 절에 사용할 수 있음  B. 집계 함수(Aggregate Function) 종류집계 함수사용 목적 COUNT(*) NULL 값을 포함한 행..

[SQLD] 3-6. SQL 기본 - SQL함수, 단일행함수, 문자형함수, 숫자형함수, 날짜형함수, 데이터유형변환, CASE표현, NULL 특성 및 연산, NULL 함수

A. SQL 함수 개요 1. 벤더에서 제공하는 함수인 내장 함수(Built-in Function)와 사용자가 정의할 수 있는 함수(User Defined Function)로 분류 2. 내장 함수는 SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는 데 사용 3. 함수는 입력되는 값이 많아도 출력은 하나만 리턴  B. 단일행 함수 개요1. 처리하는 데이터의 형식에 따라서 문자형, 숫자형,날짜형, 변환형,NULL 관련 함수로 나눌 수 있음 2. SELECT, WHERE, ORDER BY 절에 사용 가능 3. 각 행(Row)들에 대해 적용되어 데이터 값을 조작하고, 각각의 행에 대한 결과값을 리턴 4. 여러 인자(Argument)를 입력해도 단 하나의 결과만 리턴 5. 함수의 인자(Arguments)..

[SQLD] 3-5. SQL 기본 - WHERE조건절, 연산자 종류, 비교연산자, LIKE연산자, NULL연산자, 논리연산자, 연산자 우선순위

A. WHERE 조건절 개요 1. DML을 이용하여 자료를 검색, 수정, 삭제할 때 구체적인 조건을 기술함으로써 작업 범위를 정의 B. 연산자 종류1. 요구 조건을 효율적으로 만족하는 쿼리문을 구성하기 위해서 연산자들을 사용 2. 비교연산자, SQL연산자, 논리연산자, 부정비교연산자, 부정 SQL연산자로 분류   C. 비교 연산자1. = : 좌측, 우측 값이 동일 할 경우 참 2. > : 죄측 값이 우측 값보다 큰 경우 참 3. >= : 죄측 값이 우측 값보다 크거나 동일할 경우 참 4. 5.    D. SQL 연산자1. BETWEEN A AND B : 좌측 값이 A 값과 B 값 사이에 있으면 참 2. IN (값1, 값 2 …) : 좌측 값이 IN () 안에 기술된 값이 하나라도 일치하면 참 3. LIK..

[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] 3-1. SQL 기본 - 관계형 데이터베이스 개요

A. 데이터 베이스란?1 넓은 의미에서의 데이터베이스: 일상적인 정보들을 모아 놓은 것 자체2 일반적인 의미에서의 데이터베이스 : 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미   B. 데이터 베이스의 발전1960 년대 - 플로우차트 중심의 개발 방법을 사용하였으며 파일 구조를 통해 데이터를 저장하고 관리1970 년대 - 데이터베이스 관리 기법이 처음 태동되던 시기였으며 계층형(Hierarchical) 데이터 베이스, 망형(Network) 데이터베이스 같은 제품들이 사용화1980 년대 - 현재 대부분의 기업에서 사용되고 있는 관계형 데이터베이스가 상용화되었으며 Oracle, Sybase,DB2와 같은 제품이 사용1990 년대 - Oracle, Sybase, I..

[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. 다른 ..

반응형