본문 바로가기

SQLD

(51)
38회 SQLD 합격 ㄹㅇ 블로그에 글만쓰고 공부 1초도 안했는데 인간적으로 너무 잘봤네? ㄴㅇㅅㄴㅇㅅ 블로그에 글쓰는게 공부가 잘되나보네~
[SQLD 암기] SQL 활용 * 순수 관계 연산자 - SELECT 연산은 WHERE절로 구현 - PROJECT 연산은 SELECT 절로 구현 - (NATURAL) JOIN 연산은 다양한 JOIN 기능으로 구현 - DIVIDE 연산은 현재 사용되지 않음 * INNER JOIN 조인 조건에서 동일한 값이 있는 행만 반환 FROM 절에서 정의하고 ON이나 USING 사용 필수 USING 조건 절에서 ALIAS나 테이블 이름의 접두사를 붙일 수 없음 * CROSS JOIN : 테이블 간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합 * FULL OUTER JOIN 조인 수행 시 좌측, 우측 테이블의 모든 데이터를 읽어서 JOIN = LEFT OUTER JOIN + UNION + RIGHT OUTER JOIN = UNION A..
[SQLD 암기] SQL 기본 * SQL 종류 - DML : SELECT, INSERT, UPDATE, DELETE 절차적 DML : PL/SQL, T-SQL 무슨 데이터를 원하고, 어떻게 접근해야 하는 지 데이터 부속어 : 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어 - DDL : CREATE, ALTER, DROP, RENAME - DCL : GRANT, REVOKE - TCL : COMMIT, ROLLBACK * PK 제약조건 CONSTRAINT TABLE_NAME PRIMARY KEY (COLUMN) (CREATE문 내부) CREATE TABLE TABLE_NAME (COLUMN DATA_TYPE PRIMARY KEY) ALTER TABLE TABLE_NAME ADD CONSTRAINT TABLE_PK PRIMARY ..
[SQLD 암기] 최적화 기본원리 * CBO 테이블 및 인덱스 등의 통계 정보를 활용하여 SQL 문을 실행하는데 소요될 처리시간 및 CPU, IO 자원량 등을 계산하여 가장 효율적일 것으로 예상되는 실행 계획을 선택하는 옵티마이저 테이블, 인덱스, 컬럼 등 객체 통계정보로 실행 계획을 수립하고 통계정보가 변경되면 SQL의 실행계획이 달라질 수 있음 * 실행계획 정보 구성요소 - 조인 기법, 조인 순서 - 액세스 기법 - 연산 - 최적화 정보 - 질의 처리 예상 비용 + 실제 처리 건수는 트레이스 정보로 알 수 있고, 예상 처리 건수만 알 수 있음 * 실행 계획 - SQL 처리를 위한 실행 절차와 방법을 표현한 것 - 조인 방법, 조인 순서, 액세스 기법 등이 표현됨 - CBO의 실행 계획에는 단계별 예상 비용 및 건수 등이 표시 * SQ..
[SQLD 암기] 데이터 모델과 성능 * 성능 데이터 모델링 - 데이터베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능 관련된 사항이 데이터 모델링에 반영되도록 하는 것 - 프로젝트 초기에 운영환경에 대비한 테스트 환경을 구현하고 그곳에 트랜잭션을 발생시켜 실제 성능을 테스트해야 함 - 데이터 모델의 구조도 변경하면서 어떤 구조가 해당 사이트에 성능상 가장 적절한 구조인지 검토 - 데이터 증가가 빠를수록 성능저하에 따른 성능 개선 비용은 증가 - 데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있음 - 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우, 성능저하에 따른 rework 비용을 최소화할 수 있는 기회를 가짐 * 성능 데이터 모델링 수행 절차 1. 데이터모델링을 할 때 정규화를 정확하게 수행 2..
[SQLD 암기] 데이터 모델링의 이해 * 모델링의 특징 - 현실세계를 일정한 형식에 맞추어 표현하는 추상화 의미를 가짐 (추상화) - 시스템 구현을 포함한 업무 분석 및 업무형상화를 하는 목적 - 복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽게 하는 단순화 의미를 가짐 (단순화) - 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술 (명확화) * 모델링 세가지 관점 - 데이터 관점 : 업무가 어떤 데이터와 관련 있는지, 데이터 간 관계는 무엇인지에 대해 모델링 - 프로세스 관점 : 업무가 실제 하는 일이 무엇이고 무엇을 해야 하는지 모델링하는 방법 - 데이터와 프로세스의 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향 받는지 모델링하는 방법 * 데이터 모델링이란 - 정보시스템을 구축하기 위한 데이..
[SQLD : Ⅴ. SQL 최적화 기본 원리] 3. 조인 수행 원리 * NL JOIN - 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행 - 반복문의 외부에 있는 테이블을 선행 또는 외부 테이블, 반복문의 내부에 있는 테이블을 후행 또는 내부 테이블 FOR 선행 테이블 읽음 → 외부 테이블(Outer Table) FOR 후행 테이블 읽음 → 내부 테이블(Inner Table) (선행 테이블과 후행 테이블 조인) ① 선행 테이블에서 주어진 조건을 만족하는 행을 찾음 ② 선행 테이블의 조인 키 값을 가지고 후행 테이블에서 조인 수행 ③ 선행 테이블의 조건을 만족하는 모든 행에 대해 1번 작업 반복 수행 ① 선행 테이블에서 조건을 만족하는 첫 번째 행을 찾음 → 이때 선행 테이블에 주어진 조건을 만족하지 않는 경우 해당 데이터는 필터링 됨 ② 선행 테이블의..
[SQLD : Ⅴ. SQL 최적화 기본 원리] 2. 인덱스 기본 * 인덱스 특징과 종류 - 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념 - 테이블을 기반으로 선택적으로 생성할 수 있는 구조 - 검색 조건을 만족하는 데이터를 인덱스를 통해 효과적으로 찾을 수 있도록 도움 - 트리 기반 인덱스 : DBMS에서 가장 일반적인 인덱스는 B-트리 인덱스 B-트리 인덱스는 브랜치 블록(Branch Block)과 리프 블록(Leaf Block)으로 구성 브랜치 블록 중에서 가장 상위에서 있는 블록을 루트 블록(Root Block)이라고 함 브랜치 블록은 분기를 목적으로 하는 블록, 브랜치 블록은 다음 단계의 블록을 가리키는 포인터를 가짐 리프 블록은 트리의 가장 아래 단계에 존재, 리프 블록은 양방향 링크(Double Link)를 가짐 양방향 링크로 오름차순,..