반응형 백엔드/SQLD18 Row Chaining & Row Migration Row Chaining 컬럼이 너무 길어서 DB BLOCK 사이즈보다 길어진 경우 블록 두개에 이어서 한 Row가 저장된다. Row Migration 데이터가 수정되면서 데이터가 더 켜저서 기존 block에 못들어가는 경우 다른 블록에 데이터를 넣고, 기존 블록 위치에는 링크를 남긴다. 블록이란? DBMS에서 데이터를 저장하는 때 담는 통 데이터의 위치나, 정렬 이런거 관리안한다고 하지만 사실 해야된다. 사용자입장에서 안해도되는 것 그럴때 데이터를 이리저리 조정할때 쓰는 기본 단위 그래서 한 레코드가 한 블록에 다 안담기면 레코드 하나에 두 블록을 조회해야되서 성능이 저하되게 된다. 2020. 11. 29. 계층형 쿼리 START WITH 속성 IS NULL CONNECT BY [NOCYCLE] PRIOR 속성 = 속성 ORDER SIBLINGS BY 속성; 예시> 사원 ID, 관리자 ID를 가지는 사원 테이블인 경우 조회 결과는 TREE 구조를 가진다. PRIOR가 붙은쪽이 내 속성이라고 생각하면 된다. PRIOR가 안붙은쪽이 다음 속성(자식)이라고 생각하면 된다. PRIOR가 붙은 쪽이 부모(상사)인 경우 정방향이다. PRIOR가 붙은 쪽이 자식(부하)인 경우 역방향이다. ORDER SIBLINGS는 같은 레벨의 자식간에 정렬 방식을 나타낸다. LEVEL 속성을 쓸수있는데 맨 처음(루트노트) 레벨은 1이다. 자식으로 내려갈수록 레벨이 올라간다. 계층형 쿼리는 트리가 아니라 그래프가 될 수도 있는데 NOCYCLE을 쓰.. 2020. 11. 29. MERGE MERGE는 MERGE INTO 옆에 적힌 테이블에다가 USING 옆에 적힌 테이블 데이터를 부어주는데 매칭(ON 절)이 된 경우 UPDATE 하고 없는 경우 INSERT 한다. SQLD 30회 42번 문제 실행 결과는 3행이 병합되었다고 뜬다. 1행은 매칭된 A,B,C 중 조건이 맞아서 UPDATE된 'B' 나머지 2행은 매칭안되서 INSERT 된 'D', 'E' 어딘가에서 병합된 3행이 'X', 'D', 'E'라는 설명이 있어서 한참 고민했다. 아래 MERGE 쿼리에서 NOT MATCHED 부분을 빼면 2행이 병합되었다고 뜨는걸 보고 'X'가 아니라 'B'인걸 알았다. CREATE TABLE SQLD_30_42_01 ( COL1 VARCHAR(45) NOT NULL, COL2 VARCHAR(45) N.. 2020. 11. 27. 서브쿼리 SELECT 절의 서브쿼리 SELECT 절에서 서브쿼리가 사용된 경우 하나의 데이터만 나와야 한다. 그래서 보통 조건에 PK를 넣는다. 아니면 DISTINCT나 집계함수를 써야된다. 2020. 11. 27. 외워야되는 명령어, 함수 (+) 이쪽 값이 맞는게 없으면 맞다고 치고 값은 NULL을 넣어준다. : != 과 같은 의미 NTILE 데이터를 분할하는 함수, 그룹핑 함수 비슷한데 사용 예시를 읽어 본 결과 계산 컬럼(등수, 등급)을 뽑아낼 때 사용하는 것으로 보인다. SELECT 절에서 사용되며 FROM 절이 없이 SELECT 절로 조회된 데이터를 기준으로 수행된다. OVER 절 안에서 사용되는 속성도 SELECT 절에 적힌 속성만 될 것 같다.(테스트 필요) NTILE(4)라고 하고 데이터 100개가 조회된 경우 각각 25개씩 데이터가 나뉘어진다. 조건이 없으면 자르는 기준은 데이터가 조회된 순서대로 만약 NTILE(4) 했는데 데이터가 103개라면 26,26,26,25로 맨 앞에서부터 하나씩 가져가게 된다. 사용 방법 NTIL.. 2020. 11. 26. 정규화 1차 정규화 속성이 여러개의 값을 가지면 안된다. 예시) 규칙 셋 테이블 규칙 셋 ID 규칙 ID1 규칙 ID2 규칙 ID3 규칙 ID4 규칙 ID5 111 111_1 111_2 111_3 111_4 111_5 ▽ 위 구조는 규칙 셋 >- 규칙 형태이다. 규칙 셋 별로 최대 5개의 규칙만 등록할 수 있다. 규칙 셋 -- 규칙 구조로 변경되어야 한다. 다른 예시) 보통 1차 정규화 예시에는 한 속성에 "111_1, 111_2, 111_3, 111_4, 111_5" 같이 저장된 경우가 많이 나온다. 위의 예시는 역정규화라고 해야되나? 1차 정규형 예시에 적합한지는 잘 모르겠다. 2차 정규화 모든 속성은 기본키에 종속되어야 한다. 기본키가 복합키면 복합키 전체에 종속되어.. 2020. 11. 26. 이전 1 2 3 다음 반응형