old posting

    [SQL] 정규화

    정규화(Normalization) 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정 테이블 R에서 일부 속성들로만 추출하여 만든 테이블 R1, R2가 Natural Join을 통해 원래의 테이블 R로 정보 손실 없이 복귀할 수 있는 경우 R은 R1, R2로 무손실 분해 되었다고 한다. 정규화의 목적 가능한 중복(Redundancy)을 제거하여 삽입, 삭제, 갱신 이상(anomaly) 가능성 줄이기! 정규화의 종류(단계) 비정규 릴레이션 제1 정규형:1NF 테이블 R에 속한 모든 속성의 도메인(Domain)이 원자값(Atomic Value)로만 구성된 정규형이다. 테이블의 속성값이 원자 값만으로 되어 있는 정규형 제2 정규형:2NF 테이블 R이 제 1정규형이고, 기..

    [SQL] ROLLUP(), CUBE(), GROUPING() 그리고 PIVOT(), UNPIVOT()

    ROLLUP() 주어진 데이터들의 소계를 구해준다. SELECT no, sum(pay) FROM test GROUP BY ROLLUP(no); CUBE() 주어진 데이터들의 소계와 총계를 구해준다. SELECT no, sum(pay) FROM test GROUP BY CUBE(no); GROUPING() 컬럼이 해당 그룹핑 작업에 사용되었는지 아닌지를 구별해주는 함수, 컬럼이 그룹핑 작업에 사용되었으면 0을 반환하고 사용되지 않았으면 1을 반환한다. SELECT no, sum(pay), GROUPING(no) FROM test GROUP BY ROLLUP(no); LISTAGG() 여러개의 행을 하나의 컬럼으로 합친다. SELECT no, LISTAGG(name, '*') WITHIN GROUP(ORDE..

    [SQL] 정규화의 이상 그리고 함수적 종속

    정규화 이상(Anomaly) 테이블에서 일부 속성등의 종속으로 인하여 데이터의 중복(Redundancy)이 발생하고 이러한 중복으로 인해 테이블 조작(Manipulation) 시 문제가 발생하는 현상 이상(Anomaly)의 종류 삽입 이상(Insertion Anomaly) 테이블에 데이터를 삽입할 때 의도와는 다르게 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상 삭제 이상(Deletion Anomaly) 테이블에서 한 튜플을 삭제할 때 의도와는 다르게 상관없는 값들도 함께 삭제되는 즉, 연쇄삭제가 발생하는 현상 갱신 이상(Update Anomaly) 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(inconsistency)이 생기는 현상 함수적 종속(Func..

    [SQL] 계층형 쿼리(Hierarchy Query)

    계층형 쿼리(Hierarchy Query) 상위 계층과 하위 계층의 관계를 조회할 수 있는 쿼리 SELECT name, LEVEL FROM test CONNCET BY PRIOR no = no2 START WITH no = 1000; CONNECT BY 절에는 SubQuery 사용 불가 PRIOR은 뒤에 붙어도 상관없다. CONNECT BY no = PRIOR no2 계층형 쿼리가 수행되는 순서 START WITH 절의 시작조건을 찾는다. CONNECT BY 절의 연결 조건을 찾는다. WHERE 조건절 검색