[SQLD] 기출 (1)

ewillwin·2023년 8월 22일
0

SQLD Study

목록 보기
7/8

결과


오답 정리

  • ORDER BY Syntax -> "ORDER BY 선수명 ASC, 포지션, 3 DESC"(컬럼명, 정렬순서)

  • 인덱스를 경유한 테이블의 Random 엑세스 부하가 심할 때, 클러스터 테이블이나 IOT를 활용하는 방안을 고려할 수 있다.
  • 인덱스를 경유한 테이블 액세스 횟수가 같더라도 인덱스 구성에 따라 스캔 효율이 달라진다. 따라서 인덱스 스캔 효율을 높이기 위해 인덱스 칼럼 순서를 바꿔야 할 때가 종종 있다.
  • 조건절이 Where deptno = 10 and ename = 'SCOTT'일 때 인덱스를 [deptno + ename] 순으로 구성하나 [ename + deptno] 순으로 구성하나 인덱스 스캔 효율에 차이가 없다.
  • 인덱스 칼럼 순서를 아무리 바꾸어도 테이블 Random 액세스 횟수는 줄지 않는다.

  • IS NULL은 NULL인 row도 포함하기 위함
  • START WITH parent CONNECT BY PRIOR child = parent;
    -> parent는 상위계층, child는 하위계층/ 상위 -> 하위

  • 2번과 같이 쿼리를 짜면 COUNT(도서번호)가 출판사 별 발행한 책의 개수가 출력되지 않는다
  • "발행 연도"에 대한 조건은 WHERE절에, "COUNT(도서번호)"에 대한 조건은 HAVING절에 넣어야한다

  • UNION ALL을 쓸 때는, 합치려는 SELECT문의 칼럼명, 칼럼위치, 칼럼수가 동일해야 함
    -> 그렇지 않으면 error

  • 관게연결을 가능하게 하는 동사가 있는지 체크해야 함


-> 문제를 너무 대충 봤다..
1. 선행 테이블에서 조건을 만족하는 첫번째 행을 찾는다
2. 후행 테이블의 인덱스에 선행 테이블의 조인 키가 존재하는 지 확인한다
3. 선행 테이블의 조인 키를 가지고 후행 테이블에 조인 키가 존재하는 지 찾으러 가서 조인을 시도한다
4. 인덱스에서 추출한 레코드 식별자를 이용하여 후행 테이블을 액세스한다


  • 이건 문제 오류인듯

  • CASE문에서 ELSE 조건을 생략하면 NULL이 되돌려짐

  • 그룹 함수를 사용하는 경우 NULL값은 연산에서 제외

  • 맞네 CUBE(DEPTNO, JOB)이었으면 JOB에 대한 total도 출력되었어야함

  • 발생시점에 따른 엔터티 분류
    -> 기본엔터티: 업무에 원래 존재하는 정보
    -> 중심엔터티: 기본엔터티로부터 발생
    -> 행위엔터티: 두 개 이상이 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가됨

  • Sort Merge 방식의 조인은 두 개의 테이블을 Sort한 후에 Merge
  • Merge가 완료되면 한 번의 Full Scan으로 데이터를 검색
    -> 외래키에 인덱스가 없을 때 효율적임

  • 비식별자 관계: 부모 엔터티로부터 속성을 받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 것

  • 실제 데이터베이스 구축 시 참고되는 모델은 물리적 데이터 모델링이다
  • 논리 모델링의 외래키는 물리 모델에서 반드시 구현되지 않는 선택 사항이다

  • 식별자를 대체할 수 있는 성격에 따라 구분한 개념은 "본질 식별자 - 인조 식별자"이다

오답 외의 사항

  • COUNT(칼럼명)을 실행하면 NULL값은 제외된다

  • CUME_DIST 함수는 주어진 그룹에 대한 상대적인 누적분포도 값을 반환하는 것으로, 분포도 값(비율)은 0 초과 1 이하 사이의 값이다

  • 3차정규화: 속성 간 종속성을 가지면 안된다. 식별자를 제외한 일반 속성 간 종속을 제거한다

  • 분산 데이터베이스의 투명성의 종류에는 분할 투명성, 위치 투명성, 지역 투명성, 중복(복제) 투명성, 병행 투명성, 장애 투명성이 있다

  • 결정자 중 일부 속성에만 함수 종속성을 가지고 있는 'Partial Dependency Attribute'를 갖는 것은 2차정규형을 위반한 사례에 해당한다

  • 해시 조인은 해시 함수를 사용하므로 CPU를 많이 사용하지만, 랜덤 액세스는 발생하지 않는다. 랜덤 액세스는 Nested Loop 조인이 발생한다

  • 엔터티는 속성을 (속성'값' 말고) 2개 이상 가지고 있어야 한다

  • NEXT_DAY(ADD_MONTHS (sysdate, 6), '월요일')에서,
    ADD_MONTHS 함수는 6개월을 더하고 NEXT_DAY 함수는 지정된 요일의 첫번째 날짜를 출력한다

  • 엔터티-인스턴스-속성-속성값

    • 한 개의 엔터티는 두 개 이상의 인스턴스 집합
    • 하나의 속성은 하나의 속성값을 가지며 하나 이상의 속성값을 가지는 경우 정규화가 필요
    • 한 개의 엔터티는 두 개 이상의 속성을 가짐
    • 엔터티 하나의 인스턴스는 다른 엔터티의 인스턴스 간 관계인 Pairing을 가짐
  • 논리적 데이터 모델링의 결과로 얻어지는 논리 데이터 모델은 데이터 모델링이 최종적으로 완료된 상태라고 정의할 수 있다. 즉, 물리적 스키마 설계를 하기 전 단계의 '데이터 모델' 상태를 일컫는 말이다

profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글