[SQLD]SQL개발자 시험(핵심요약, 난이도) 공부하기 - 작성중
본문 바로가기
IT

[SQLD]SQL개발자 시험(핵심요약, 난이도) 공부하기 - 작성중

by DHan- 2022. 8. 16.
728x90

 

원서접수


https://www.dataq.or.kr/www/main.do

 

데이터자격시험

카드결제/계좌이체 환불 환불 요청시 즉시환불

www.dataq.or.kr

 

시험과목


1. 데이터 모델링의 이해 , 데이터 모델의 성능

2. SQL 기본, SQL 활용, SQL 최적화 기본원리 

1과목 10개 / 2과목 40개(+서술형)

 

응시자격


응시자격조건 없음, 유효기간 2년, 보수교육(합격일 기준 1년6월~2년)이수시 유효기간 영구로 전환.

 

 

핵심 요약 - 데이터 모델링의 이해


  • 모델링의 3대 특징 - 추상화, 단순화, 명확화

 

  • 데이터 모델은 추상화 수준에 따라 개념, 논리, 물리 데이터 모델로 구분함.
개념 데이터 모델 추상화가 가장 높고 핵심 엔터티 및 관계를 표현하는 것 ( 포괄적, 업무 중심 )
논리 데이터 모델 주요 엔터티, 속성, 관계 도출 및 중복 제거를 제거하여 정규화한 ( 관계표현 )
물리 데이터 모델 데이터베이스에 이식을 위한(성능, 저장을 위한 물리적 )

https://dhan-description.tistory.com/121

 

[방송통신대학교 컴퓨터과학과] 데이터베이스- 개체관계(E-R) 다이어그램

방송통신대학교 컴퓨터과학과의 3학년 전공과목 - 데이터베이스시스템의 학습정리 입니다. 개인 학습목적으로 교재를 참고하여 E-R 다이어그램에 대하여 서술했습니다. 데이터모델 개념적 데이

dhan-description.tistory.com

  • ANSI/SPARK의 3단계 스키마 구성은 내부, 개념, 외부 스키마를 뜻한다.

 

  • 엔터티, 속성, 식별자, 인스턴스에 대한 설명
엔터티 인스턴스의 집합이며, DB내에 변별 가능한 객체임.
속성 인스턴스의 성격을 설명하는 것을 속성이라함. 개념적으로 칼럼(column)과 가깝다.
식별자 속성 중 유일하게 식별 가능한 속성(Key)을 의미. PK, FK를 의미함.
인스턴스 개별데이터를 의미하며, 쉽게 말해 데이터 1줄을 의미함. 개념적으로 행(row)과 가깝다.
관계 부모 엔터티의 식별자를 자식 엔터티의 식별자로 상속하면 식별관계, 일반속성으로 상속하면 비실별관계.

 

  • 주식별자의 특징
유일성 엔터티의 모든 인스턴스를 고유하게 식별할 수 있어야함.
최소성 고유성을 만족하는 최소의 속성으로 구성되어야함.
불변성 주식별자의 속성이 변경되지 않아야함.
존재성 주식별자의 속성에 NULL을 입력할 수 없음.
# 주식별자(KEY)
* NOT NULL
0 NULL

 

핵심요약 - 데이터 모델의 성능


  • 테이블에 대한 설명
1. 테이블(Table)은 칼럼(속성)과 행(인스턴스)의 2차원 구조를 가짐. 
2. 데이터를 저장하는 객체이며 데이터 모델상의 엔터티를 관계형 데이터베이스에서 물리적으로 구현함. 
3. 엔터티의 관계는 외부키(FK) 식벌자의 기본키(PK)로 구현한다.

https://dhan-description.tistory.com/7?category=893707 

 

[DBMS] 명령프롬프트(CMD)를 이용하여 Table 생성하기

데이터베이스를 생성했으면, 데이터베이스의 구성인 테이블을 생성해야 합니다. 테이블에 포함되는 필드는 데이터 타입과 필드명으로 이루어져 있습니다. 이전 파트의 내용을 참고하여 테이블

dhan-description.tistory.com

 

  • 정규화와 관련된 설명
1 정규형(1NF) 속성의 atomicity와 관련있음. 다중값과 같은 반복 그룹에 해당함. ( 중복데이터 적재 )
2 정규형(2NF) partial dependency와 관련있음. 일반 속성이 주 식별자 전체에 종속되지 않음. (서로다른 속성의 데이터) 
3 정규형(3NF) transitive dependency과 관련있음. 일반 속성간에 종속성이 존재함. (일반 속성에 key가 있음)

 

  • NULL 속성 관련
NVL NULL 값을 특정 값으로 변환한다. ( 속성, 0 ) 

SUM, AVG, MIN, MAX, COUNT 함수를 통한 값 집계는 NULL 값을 알아서 제외한다.

 

  • 트랜잭션의 특징 ( ACID )
원자성 트랜잭션의 작업은 모두 수행되거나, 모두 수행되지 않아야함.
일관성 트랜잭션이 완료되면 데이터의 무결성이 일관되게 보장되어야함.
고립성 트랜잭션이 다른 트랜잭션으로부터 고립된 상태로 수행되어야함.
지속성 트랜잭션이 완료되면 장애가 발생하더라도 변경사항이 지속되어야함.

 

핵심요약 - SQL 기본


  • SQL의 처리 순서
FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY

 

  • SQL 문의 종류
TCL 트랜잭션 제어어(Transaction Control Language) - DB변경사항 관리
DCL 데이터 제어어(Data Control Language) - 데이터 권한 관리
DDL 데이터 정의어(Data Definition Language) - 테이블 관리
DML 데이터 조작어(Data Manipulation Language) - CRUD

DDL - https://dhan-description.tistory.com/6?category=893707

 

[DBMS] MySQL의 Data Type 알아보기

데이터를 생성하기 위해서는 필드를 선언하여 필드에 데이터를 담아야 합니다. 필드를 선언하는 방법은 필드명과 데이터 타입을 지정하여 선언합니다. 데이터 타입(자료형)은 프로그래밍 언어

dhan-description.tistory.com

 

  • 각 SQL 구문 요약
TCL COMMIT, ROLLBACK, SAVEPOINT
DCL GRANT, REVOKE
DDL CREATE, ALTER, DROP, RENAME, TRUNCATE
DML SELECT, INSERT, UPDATE, DELETE, MEPGE

DML - https://dhan-description.tistory.com/8?category=893707

 

[DBMS] 명령프롬프트(CMD)를 이용하여 Data 관리하기

CRUD는 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능을 의미합니다. 기본적으로 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이며 사용자 인터페이스가 갖추어야

dhan-description.tistory.com

 

  • 일반 집합 연산자
UNOIN (합집합) UNOIN 은 두 집합의 합집합에서 중복을 제거, 고유 집합만 반환.
UNION ALL 은 합집합 반환.
INTERSECTION(교집합) INTERSECT는 중복값을 제거한 교집합을 반환.
DIFFERENCE(차집합) EXCEPT
MINUS는 중복값을 제거한 차집합을 반환.
PRODUCT(곱집합) CROSS JOIN

MINUS연산자는 NOT EXISTIS 서브쿼리로 변경 가능하며 MINUS는 중복값을 제거하는 교집합 함수이므로

DISTINCT를 함께 사용해야함.

INTERSECT연산자는 교집합연산자이며 EXISTIS 서브쿼리로 변경 가능하며 INTERSECT는 중복값을 제거하는 교집합

함수이므로 DISTINCT를 함께 사용해야함.

 

  • 함수에 대한 설명
LENGTH 문자열의 길이를 반환.
SUBSTR EX) SUBSTR(A1, 2, 3 )  = A1 속성(칼럼)의 두번째 자리부터 3개의 문자를 잘라내어 반환.
LTRIM EX) LTRIM(A1, '0' ) = A1속성(칼럼)의 '0' 문자를 제거하며, '0'이 아닌 문자를 만나면 나머지 열을 반환. 
FLOOR 입력된 인자 값보다 작거나 같은 정수 값은 반환.
CTIL 입력된 인자 값보다 크거나 같은 정수 값을 반환.
TRUNC 첫 번째 인자 값을 소수점 N번째 자리로 버림 반환.
ROUND 첫 번째 인자 값을 소수점 N번째 자리로 반올림하여 반환.
ADD_MONTHS 첫 번쨰 인자인 날짜 값에 두 번째 인자 값만큼 개월수를 더하여 반환.
COUNT COUNT * = 전체반환. / COUNT(expr) NULL이 아닌 expr 반환 / COUNT(DISTINCT expr) expr 중복제거
DECODE 칼럼, 조건, 결과 순으로 작성하여 사용. IF문과 유사함.

 

https://gent.tistory.com/227

 

[Oracle] 오라클 DECODE 함수 사용방법 (if else, 디코드)

DECODE 함수는 오라클 쿼리에서 가장 많이 사용하는 함수 중 하나이다. 표준 SQL 함수가 아니라서 사용을 꺼려하기도 하지만 잘 사용하면 아주 편하기 때문에 유용하다. 최근에는 CASE WHEN 구문 사용

gent.tistory.com

 

  • SELECT
DISTINCT 집약 ( 같은 값을 하나로 )
COUNT 갯수 ( 조건에 따라 갯수를 반환 ) 
AS  컬럼명에 대한 설명 EX - SELECT AS '컬럼' / AS는 생략 가능함.
TOP TOP 10 - 반환할 행의 개수(10)나 백분율을 지정
TOP 10 PERCENT - 백분율만큼 행을 반환
TOP 10 WITH TIES - 마지막 행에 대한 동순위를 포함하여 반환 
GROUPING 표현식이 행 그룹에 포함되면 0, 포함되지 않으면 1을 반환. EX - GROUPING 속성1 AS '칼럼명'
FIRST_VALUE 첫번째행 반환(오라클만 가능)
LAST_VALUE 마지막행 반환(오라클만 가능)
FLOOR 입력된 인자 값보다 작거나 같은 정수 값 반환
CEIL 입력된 인자 값보다 크거나 같은 정수 값 반환
TRUNC 첫 번째 인자 값을 소수점 N번째 자리(두번째)로 버림 반환.
ROUND 첫 번쨰 인자 값을 소수점 N번째 자리(두번쨰)로 반올림 반환.

 

  • 논리연산자
1 NOT
2 AND
3 OR
  • SQL 연산자
BETWEEN 속성1 과 속성2의 사이값
LIKE '_L%'의 경우 두번째가 L인 값을 가진 경우
'%LIKE%'의 경우 LIKE가 포함된 값을  
  • 조건절 관련
WHERE IN 다중 열 사용 WHERE 속성1 IN ( '123', '123', '123', '123 )
NOT 조건을 부정한다.
NOT IN 일치하는 데이터가 없는지 확인함. ( NULL이 있으면 확인불가 ) 
ROWNUM 오라클에서 TOP 대신으로 사용됨 (WHERE ROWNUM < 101)
GROUP BY CUBE 지정한 표현식의 모든 조합을 집계
ROLLUP () = 총계 / (A,B,C) = 소계
GROUPING SETS 지정한 행 그룹으로 행을 집계

ORDER BY에 입력한 함수는 순서에 영향을 줄뿐, 데이터에 영향을 주지는 않는다.

ASC는 생략가능. 

https://myjamong.tistory.com/191

 

[Oracle] ROLLUP 고급 사용법 GROUPING 함수 :: 마이자몽

GROUP BY 1 2 3 4 5 6 SELECT     DEPTNO     ,JOB     ,SUM(SAL) FROM EMP GROUP BY DEPTNO, JOB; ORACLE SCOTT 계정의 EMP 테이블을 사용해서  실습을 진행했습니다. 일반적으로 사용하는 GRO..

myjamong.tistory.com

 

  • JOIN 설명 ( LEFT OUTER, FULL OUTER, RIGHT OUTER, CROSS, INNER )

https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/

 

SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN)

조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부

hongong.hanbit.co.kr

 

CHAR는 고정형 > 공백을 채워서 저장

VARCHAR는 가변형 > 입력한 값 그대로

 

핵심요약 - SQL 활용


RANK 값의 그룹에서 값의 순위 계산
DENSE_RANK RANK()와 달리 동일 순위 다음의 순위는 동일 순위의 수와 상관없이 1 증가된 값 리턴.
LPAD  지정한 길이 만큼 왼쪽부터 특정문자로 채워준다. EX- LPAD("값", "총 문자길이", "채움문자")
RPAD  지정한 길이 만큼 오른쪽부터 특정문자로 채워준다. RPAD("값", "총 문자길이", "채움문자")

https://velog.io/@mindddi/SQL-%EB%B6%84%EC%84%9D%ED%95%A8%EC%88%98

 

SQL 분석함수, 집계함수

▪ BUSINESS 분야에서 자주 행하여지는 여러 가지 형태의 분석에 유용하게 활용될 수 있는 함수▪ 각 window별 집합 연산을 수행한 결과를 return하는 함수▪ JOIN 이나 프로그램의 부하(Over Head)를 줄임

velog.io

https://gent.tistory.com/190

 

[오라클] LPAD, RPAD 함수 사용방법 (공백, 0, 채우기)

오라클(Oracle) LPAD, RPAD 함수 사용법 숫자형 문자인 경우 문자길이를 똑같이 맞춰야하는 경우가 있다. LPAD는 왼쪽, RPAD는 오른쪽부터 총길이 만큼 지정한 문자를 채운다. ex) 1, 10, 123 -> 00001, 00010, 00.

gent.tistory.com

 

  • 서브쿼리
EXISTS 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다.

MINUS연산자는 NOT EXISTIS 서브쿼리로 변경 가능하며 MINUS는 중복값을 제거하는 교집합 함수이므로

DISTINCT를 함께 사용해야함.

INTERSECT연산자는 교집합연산자이며 EXISTIS 서브쿼리로 변경 가능하며 INTERSECT는 중복값을 제거하는 교집합

함수이므로 DISTINCT를 함께 사용해야함.

 

핵심요약 - 관리구문


DML SELECT, INSERT, UPDATE, DELETE, MEPGE

INSERT문에 VALUES 절을 사용하면 테이블에 단일 행을 추가함.

UPDATE문은 테이블의 기존 행을 갱신함. SET는 SELECT문의 서브쿼리와 유사한 동작.

DELETE문은 테이블의 기존행을 삭제함. 

 

TCL COMMIT, ROLLBACK, SAVEPOINT

TCL 의 구문에 의해 트랜잭션이 발생하면 장애가 발생하더라도 (지속성)이 유지되며, 트랜잭션은 (고립성)이 유지되어야함. 또한 트랜잭션은 모두 수행되거나, 모두 수행되지 않는 (원자성)을 가지며, (일관성)이 있어야함.

  • 블로킹 : 두 트랜잭션이 동일한 행을 갱신하고자 할 때 후행 트랙잭션은 선행 트랜잭션이 설정한 Lock이 해제되길 기다리며 블로킹된다. 선행 트랜잭션의 COMMIT이후 후행 트랜잭션은 Lock를 획득, 갱신한다.

 

DDL 데이터 정의어(Data Definition Language) - 테이블 관리
  • DDL문은 암시적으로 COMMIT이 진행된다.
  • 테이블 명은 문자로 시작되어야하며 공백을 허용하지 않는다. 특수문자는 # , $ , _ 만 사용가능하다.
  • "를통해 Object 명을 감싸면 제약을 피할 수 있으나 권장되지 않는다.
  • Data Type중 NUMBER 타입은 이미 값이 입력된 경우 데이터 타입의 크기를 축소할 수 없다. 
  • FK 가 참조된 테이블이 있는경우 원 테이블을 삭제할 수 없다. 다만 CASCADE CONSTRAINTS 절을 사용하면 가능.

 

DCL 데이터 제어어(Data Control Language) - 데이터 권한 관리
  • 사용자로 로그인 하기 위한 권한은 CREATE SESSION ( ORA-01045 )
  • 다른 스키마에 테이블 생성하려는 경우는 CREATE ANY TABLE ( ORA-01031)
  • 테이블에 행을 삽입하기 위한 권한은 UNLIMITED TABLESPACE ( ORA-01950 )
  • EXECUTE 권한은 PL/SQL에 관한 권한임.

 


https://www.youtube.com/watch?v=uTMY_TvYeHc 

 

728x90

댓글