자격증

    끝

    끝!

    SQLD(6)-SQL 최적화의 원리

    옵티마이저와 실행계획 옵티마이저 - SQL실행계획을 수립, DBMS를 관리하는 소프트웨어 어떻게 실행을 하느냐에 따라 SQL성능이 달라짐 데이터 딕셔너리에 있는 오브젝트 통계등의 정보를 통해 예상되는 비용 산정 ( 최적의 계획을 선택 ) 옵티마이저는 SQL실행계획을 PLAN_TABLE에 저장 옵티마이저 종류 실행방법 - SQL 실행하면 Parsing실행해서 구문분석, 문법검사 수행 규칙 혹은 비용(default)기반으로 실행계획 수립 통계정보를 활용해서 최적의 실행 계획을 수립 SQL실행후 데이터 인출 옵티마이저 엔진 옵티마이저 설명 Query Transformer SQL문을 효율적으로 실행하도록 변환 결과는 동일 Estimator 실행계획 수립을 위해 통계정보를 사용해서 실행비용 계산 Plan Gene..

    SQLD(5)-SQL활용2

    SQLD(5)-SQL활용2

    그룹함수 ROLLUP - GROUP BY 칼럼에 대해서 Subtotal 만듬 ex) GROUP BY ROLLUP(COLUMN) 열이 두개이상 가능 순서에 따라 결과가 달라짐 GROUPING - ROLLUP CUBE GROUPING SETS에서 생성되는 합계값을 구분하기 위해서 만들어진 함수 소계, 합계등이 계산되면 1을 반환 그렇지 않으면 0을 반환 GROUPING SETS - GROUP BY 에서 나오는 칼럼의 순서와 관계없이 개별적으로 처리 CUBE - 함수에 제시한 칼럼에 대해서 결합이 가능한 모든 집계계산 ( 조합할 수 있는 모든 가짓수 계산) select year, semester, count(course_id) as count from takes group by rollup(year, seme..

    SQLD(4)-SQL활용1

    JOIN - 여러 개의 릴레이션을 사용해서 새로운 릴레이션을 만드는 과정 조인 참조 https://sql-joins.leopard.in.ua/ 등가조인(교집합) - 두 개의 테이블 간에 일치하는 것을 조인 '=' 사용 WHERE절사용 - 일치시킬 칼럼을 ' = '을 가지고 연결 해시 함수를 사용해서 연결 INNER JOIN - FROM절에서 연결 ex) FROM TABLE1 INNER JOIN TABLE2 ON 1.COLUMN=2.COLUMN 조인문에 추가 조건 및 정렬 할 수 있음 INTERSECT - 두 개 테이블에서 공통된 값을 조회하는 방법 비등가조인 - 정확하게 일치하지 않는 것을 조인 '='을 제외한 나머지를 사용 OUTER JOIN - 교집합 + 한쪽 테이블에만 있는 데이터, INNER JO..

    SQLD(3)-SQL기본3

    ROWNUM, ROWID ROWNUM - 논리적인 일련번호 부여, 조회할 행이 많을경우 사용 페이지 단위 출력을 위해서는 인라인 뷰(FROM절에 사용되는 서브쿼리) 사용 *오라클에서는 rownum을 사용하지만 SQLSERVER는 TOP을 MySQL은 LIMIT을 사용 ROWID - 데이터베이스 내에서 데이터를 구분할 수 있는 유일한 값, 데이터 입력하면 자동 생성되는 값 어떤 데이터 파일에 어떤 블록에 저장되어 있는지 알수 있음 WITH구문 임시테이블이나 뷰처럼 사용할수 있는 구문 WITH NAME AS ( SELECT FROM WHERE ) DCL 권한 부여 - GRANT * GRANT 권한 ON TABLE_NAME TO USER WITH GRANT/ADMIN OPTION 권한의 종류로는 SELECT,..

    SQLD(2)-SQL기본2

    WHERE문 비교연산자 부정비교연산자 - !=, ^=, , NOT COLUMN_NAME 네개모두 같음 논리연산자 - AND, OR, NOT sql연산자 - LIKE 'VALUE', (NOT) BETWEEN A AND B, (NOT) IN(list), IS (NOT) NULL * LIKE문은 와일드카드(%, _)를 사용 - % : 어떤문자 모든것 포함 , _ : 하나의 단일 문자포함 * BETWEEN은 이상, 이하 -> NOT이 붙으면 당연히 포함 X NULL함수 NVL - NULL이면 다른값으로 변경, NVL(COLUMN_NAME, VALUE) NVL2 - NVL+DECODE, NVL2(COLUMN_NAME, 1, 0) NULL이 아니면 1, NULL이면 0 NULLIF - 두개 값이 같으면 NULL 다..

    SQLD(3)-SQL기본1

    관계형 데이터베이스 *데이터베이스의 종류 - 계층형(tree형태 1:N, 부모자식관계표현 쉬움), 네트워크형(Owner-Member형태로 저장 1:N, N:M), 관계형(relation에 저장관리) 관계형 데이터베이스 연산 - 집합연산, 관계연산 집합연산 - 합집합, 차집합, 교집합, 곱집합 관계연산 - 선택연산(행(tuple) 조회), 투영연산(조건에 맞는 열(attribute) 조회), 결합연산(join), 나누기연산(중복된 행제거) 테이블 구조 - PK, Row(Tuple), Column(Attribute), FK(타 테이블 PK참조 - join연산 사용) SQL종류 DDL - 데이터베이스 구조 정의( CREATE, ALTER, DROP, RENAME ) DML - 데이터 관리( INSERT, UP..

    SQLD(2)-데이터 모델과 성능

    SQLD(2)-데이터 모델과 성능

    정규화 - 함수적 종속성을 근거로 진행 *함수적 종속성 - x가 변화하면 y가 변화한다 => x는 y를 함수적으로 종속한다. ex) 회원아이디(pk) 변경시 회원 이름도 변경 목적 - 데이터의 일관성, 데이터 중복 최소화, 데이터 유연성 최대화를 위한 데이터 분해 비지니스에 변화가 있더라도 데이터 모델의 변경을 최소화 1~5정규화까지 있으나 대체적으로 3정규화를 넘기지 않음 정규화를 하지 않으면 불필요한 데이터의 입력 - (Anomaly)문제가 발생 분해를 하더라도 join을 통해서 다시 합쳐서 볼 수 있음 제1정규화 완전한 함수 종속성을 이룰 수 있는 pk를 지정 이때 pk는 2개 이상이여도 됨 *Account -> AccountName and Money ID -> name 제2정규화 pk가 2개 이상..

    SQLD(1)-데이터 모델링

    SQLD(1)-데이터 모델링

    모델링의이해 3층스키마 엔터티 속성 관계 관계차수 식별자 모델링의이해 데이터베이스 표현 의해서 추상화 특징 - 추상화(간략하게 표현) 단순화(쉽게 이해할 수 있도록 표현) 명확성(한 가지 의미를 지님) 모델링 단계 - 독립적으로(중복제거), 간결하게 표현 개념적 모델링 - 엔터티와 속성 도출 개념적, ERdiagram 작성 - 추상화 수준이 가장 높음 논리적 모델링 - 식별자 도출, 릴레이션 정의, 독립성 확보 - 정규화를 통해 재사용성 높임 물리적 모델링 - 테이블 인덱스 함수 생성 *ERdiagram 작성 절차 - 쉽고 간단하게 엔터티 도출, 배치(중요한 것을 왼쪽 상단)-> 관계 설정-> 관계 서술(어떠한 행동)-> 참여도와 필수 여부 표현( ex) 1:M M:1) 3층 스키마 - 외부 스키마, 개..