2020.10.28 SQLD 시험준비 2019 년도 기출 29번

 정규형 : 데이터 중복을 최소화하게 구조화 하는 프로세스 

정규형 


https://nirsa.tistory.com/107



1차정규형  : 

- 모든 속성은 반드시 하나의 값을 가져야 한다. (ex 학번처럼 공통된 애가 없어야 한다. )  즉 , 반복형태가 있어서는 안된다. 

-각 속성의 모든 값은 동일한 형식이어야 한다. 

-각 속성들은 유일한 이름을 가져야 한다. 

-레코드들은 서로 간에 식별 가능해야 한다.





2정규형 : 

식별자가 아닌 모든 속성들은 식별자 전체 속성에 완전 종속되어야 한다. 

이것을 물리 데이터 모델의 테이블로 말하면 기본키가 아닌 모든 컬럼들이 기본키에 종속적이어야 2차 정규형 만족 


3차 정규형 


-2차 정규형을 만족하고 식별자를 제외한 나머지 속성들 간의 종속이 존재하면 안된다. 

이것이 3차 정규형을 만족하는 것이다. 



출처 : 네이버 Cafe : 데이터베이스 전문가포럼 Study Room 

작성자 : 월야루 



group by , group by rollup , group by cube , grouping 


https://swstyle.tistory.com/122


group by rollup 과 group by cube 의 차이는 

1) group by rollup(b.dname, a.job) 은 

group by (b.dname , a.job) 으로 그룹 , 


union


group by b.dame


union

group by 전체


2) group by cube 는 

1번에 더해서 

group by a.job 도 해준다. 


3) grouping sets 사용방법

https://gent.tistory.com/279


group by grouping sets(job , deptno ) 는 group by job UNION ALL group by deptno 와 동일

group by grouping sets((job, deptno)) 는 group by job, deptno 와 동일 


문제에서 보기 




출처 : 네이버 Cafe : 데이터베이스 전문가포럼 Study Room 

작성자 : 월야루 



IDENTITY 타입 

SQL SERVER : IDENTITY [(seed , increment) ]

-seed : 첫 번째 행이 입력될 때의 시작값

- increment : 증가되는 값  ex) IDENTITY (1,1)  -> 1, 2, 3, 4, 5, 이렇게 간다. 

-해당 컬럼에 값을 넣을경우 (seed ) 에 답을 넣을 경우 Error 발생 

 ex) INSERT INTO TAB_A(A,B) VALUES(1,'A') ; 이렇게 하면 에러가 난다. 



Hash Join 

Hash Join 은 Non equal join 은 불가능함. Equal Join 만 가능함 

사전 Sorting 작업이 필요한 Join 알고리즘은 Sort Merge Join 이다. 


Hash Join : 두 테이블 중 하나를 기준으로 비트맵 해시 테이블을 ㅔ모리에 올린 후 나머지 테이블을 스캔 -> 해싱 테이블을 적용하여 메모리에 로딩된 테이블과 비교하여 매칭되는 데이터를 추출하는 방식의 조인이다. 

주로 작은 Table 과 큰 Table 의 Join 시 사용 

1. 작은 테이블을 읽어 Hash Area 에 해시 테이블 생성한다. 

(해시 함수에서 리턴 받은 버킷 주소로 찾아가 해시 체인에 엔트리를 연결 ) 

2. 큰 테이블 집합(probe input ) 을 읽어 해시 테이블을 탐색하면서 조인 

(해시 함수에서 리턴 받은 버킷 주소로 찾아가 해시 체인을 스캔하면서 데이터를 찾는다 ) 


HAVING 절이 있을 때의 읽는 순서 

1) where 박췌 대상 데이터가 아닌 것은 제거

2) group by 행들을 그룹화 

3) group function 그룹함수를 적용한다

4) having 마지막으로 그룹함수값의 조건에 맞는 것만 발췌하여 출력



*FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 


-VARCHAR 유형 타입 문자 유형 비교 

: 서로다른 문자가 나올 때까지 비교, 길이가 다르다면 짧은 것이 끝날 때까지만 비교, 길이기 긴 것이 크다고 판단 , 길이가 같고 다른 것이 없다면 같다고 판단 

-CHAR : SPACE 를 추가하여 길이를 맞춰 비교하는 방법은 CHAR 타입인 경우 


TOP 

WITH TIES : ORDER BY 조건 기준으로 TOP N 의 마지막 행으로 표시되는 추가 행의 데이터가 같을 경우 N+ 동일 정렬 순서 데이터를 추가 반환하도록 지정하는 옵션 ( 마지막 기준 공통일 경우 모두 출력 ) WITH TIES 를 사용할 경우 동일 데이터가 있을 때 추가 건수가 출력되는 현상이 가능함 


ROWNUM <4 을 

SELECT TOP(3) 으로 표현하고 

만약 SELECT TOP(3) WITH TIES ENAME, SAL 이렇게 하면 동일 데이터가 있을때 추가 건수가 출력되는 현상이 가능하다. 


맞는 join 형식 


natural join 은 select 절에 구분하는 emp.empno 처럼 emp 를 앞에 붙일 수 없다. 



23번 


connect_by_isleaf : 전개 과정에서 해당 데이터가 리프 데이터면 1 , 아니면 0 

connect_by_iscycle : 전개 과정에서 자식을 갖는데, 해당 데이터가 조상으로 존재하면 1 , 그렇지 않으면 0 여기서 조상이란 자신으로부터 루트까지의 경록에 존재하는 데이터를 말함 

sys_connect_by_path : 하위 레벨의 컬럼까지 모두 표시해줌 ( 구분자 지정 가능 ) 

connect_by_root : root 노드의 정보를 표시 




댓글