Learn & Record

[요약정리] SQLD 필기 요약 (기본키 ~ CASCADE, 요약 끝) 본문

Certificate/SQLD

[요약정리] SQLD 필기 요약 (기본키 ~ CASCADE, 요약 끝)

Walker_ 2024. 2. 27. 20:59

https://cafe.naver.com/sqlpd/7810

 

SQLD 요점정리 공유합니다

제가 공부할려고 한글 파일로 만들었는데저는 어려워서 붙을지도 의문입니다ㅜㅜ여러분에게라도 작은 도움이 되었으면 좋겠습니다.12월 1일 시험보시는 분들 화이팅입니다!가져가실 때 ...

cafe.naver.com

 

SQLD_요약정리.pdf
0.22MB

 


 

기본키 : 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼

외부키 : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

 

ERD 구성요소

엔티티, 관계, 속성

 

데이터 유형 

CHAR(s) : 고정 길이 문자열 정보

'AA' = 'AA '

VARCHAR(s) : 가변 길이 문자열 정보

NUMBER / NUMERIC : 정수, 실수 등 숫자 정보

DATE / DATETIME : 날짜와 시각 정보

 

Dependent : 관계형 데이터베이스에서 Child Table의 FK 데이터 생성시 Parent Table에 PK가 없는 경우,

Child Table 데이터 입력을 허용하지 않는 참조동작

 

DML : INSERT UPDATE DELETE SELECT (SIUD) 시옷

 

와일드 카드

* 모든, % 모든, - 한 글자

 

TCL

트랜잭션 : 밀접히 관련되어 분리될 수 없는 1개 이상의 DB 조작

 

트랜잭션의 특성

원자성, 일관성, 고립성, 지속성

 

연산자 우선순위

() > NOT > 비교연산자 > AND > OR

 

EQUI JOIN : 2개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용, 대부분 PK FK의 관계를 기반으로 한다

 

집합연산자

두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회할 때 사용

SELECT 절의 칼럼 수와 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 할 때 사용 가능

 

일반 집합 연산자

UNION : 합집합 (중복 행은 1개로 표시)

UNION ALL : 합집합 (중복 행도 표시)

INTERSECT : 교집합

EXCEPT, MINUS : 차집합

CROSS JOIN : 곱집합

 

순수 관계 연산자

SELECT > WHERE

PROJECT > SELECT

NATRUAL JOIN > JOIN

DIVIDE > 사용 X

 

FROM 절 JOIN 형태

INNER JOIN : JOIN 조건에서 동일한 값이 있는 행만 반환

NATURAL JOIN : 두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI JOIN 수행

USING 조건절 : 같은 이름 칼럼 중 원하는 칼럼만 선택적 EQUI JOIN 할 수 있다

ON 조건절 : 칼럼명이 다르더라도 조인 조건을 사용할 수 있는 장점이 있다. ALIAS나 테이블명 반드시 사용

CROSS JOIN : 조인 조건이 없는 경우 생길 수 있는 모든 데이터 조합 발생

OUTER JOIN : 조인 조건에서 동일한 값이 없는 행도 반환 가능하다. USING이나 ON 조건절 반드시 사용해야함

 

프로시저와 트리거의 차이점

프로시저는 BEGIN~END 절 내에 COMMIT, ROLLBACK과 같은 트랜잭션 종료 명령어 사용가능, EXCUTE 명령어로 실행

트리거는 BEGIN~END 절 내에 사용불가, 생성 후 자동 실행, COMMIT, ROLLBACK 실행 안됨

 

옵티마이저 : 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할 수행

 

규칙기반 옵티마이저

우선순위를 가지고 실행계획을 생성

우선 순위가 높은 규칙이 적은 일량으로 해당 작업을 수행한다고 판단, 인덱스 유무와 SQL문에서 참조하는 객체등을 참고

우선순위는 ROWID를 활용하여 테이블 액세스

나중순위는 전체 테이블 스캔

 

비용기반 옵티마이저

현재 대부분의 DB에서 사용, SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택하는 방식, 비용이란 SQL문을 처리하기 위해 예상되는 소요시간 또는 자원 사용량을 의미, 테이블, 인덱스, 칼럼 등 다양한 객체 통계정보와 시스템 통계정보 등을 이용

 

실행계획

SQL에서 요구한 사항을 처리하기 위한 절차와 방법을 의미, 실행계획을 구성하는 요소에는 조인 순서, 조인 기법, 액세스 기법, 최적화 정보, 연산 등이 있다.

 

SQL처리흐름도

SQL의 내부적인 처리 절차를 시각적으로 표현한 도표, 조인순서, 액세스기법, 조인기법 등 표현 가능

 

인덱스 : 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념, 검색 성능의 최적화를 목적으로 두고 있지만 느려질 수 있다는 단점이 존재, 데이터 입력 후 인덱스 생성

 

B-TREE 인덱스에서 원하는 값을 찾는 과정

가장 일반적인 인덱스, 관계형 데이터베이스에서 가장 많이 사용, 데이터 중 10% 미만 데이터를 검색할 때 유용

1. 브랜치 블록의 가장 왼쪽 값이 찾고자 하는 값보다 작거나 같으면 왼쪽 포인터로 이동

2. 찾고자 하는 값이 브랜치 블록의 값 사이에 존재하면 가운데 포인터로 이동

3. 오른쪽에 있는 값보다 크면 오른쪽 포인터로 이동

 

전체 테이블 스캔

테이블에 존재하는 모든 데이터를 읽어 가면서 조건에 맞으면 결과로서 추출하고 조건에 맞지 않으면 버리는 방식으로 검색

 

전체 테이블 스캔하는 경우

SQL문에 조건이 존재하지 않는 경우

SQL문의 주어진 조건에 사용 가능한 인덱스가 존재하지 않는 경우

옵티마이저의 취사 선택

병렬처리 방식으로 처리하는 경우 등

 

인덱스 스캔

인덱스를 구성하는 칼럼의 값을 기반으로 데이터를 추출하는 액세스 기법

 

인덱스 유일 스캔

유일 인덱스를 사용하여 단 하나의 데이터를 추출하는 방식(중복X, 구성 칼럼에 대해 모두 =로 값이 주어진 경우에만 가능)

 

인덱스 범위 스캔

인덱스를 이용하여 한 건 이상의 데이터를 추출하는 방식

 

인덱스 역순 범위 스캔

인덱스의 리프 블록의 양방향 링크를 이용하여 내림차순으로 데이터를 읽는다

 

NL Join

프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행, 랜덤 액세스 방식으로 데이터를 읽는다

 

Sort Merge Join 

조인 칼럼을 기준으로 데이터를 정렬하여 조인을 수행, 스캔 방식으로 데이터 읽음

 

Hash Join

CPU작업 위주로 처리, 해쉬 기법 이용, NL join의 랜덤 액세스 문제와 SMJ의 정렬 작업 부담을 해결하기 위한 대안으로 등장

 

MERGE : INSERT 와 UPDATE를 동시에 수행

 

  숫자 날짜   " NULL  
oracle number date is null; null 가장 큰값 DDL - AUTO COMMIT
SQL server numeric datetime ="; 공백 가장 작은값 DDL, DML - AUTO COMMIT

 

 

    수정 재명명 CONCAT '  '  CASCADE
oracle NVL MODIFY RENAME || 1로 인식  
SQL server ISNULL ALTER sp_rename + 0으로 인식 없음

 

CASCADE : CASCADE 는 부모 테이블의 row 에 DELETE 또는 UPDATE 명령어를 적용할 때, 자동적으로 자식 테이블의 매치되는 row 에도 똑같이 DELETE 또는 UPDATE 를 반영하는 것을 의미합니다.

 

oracle : ROWNUM.   /     SQL server : TOP

oracle : LENTH.        /.     SQL server : LEN