문제와 정답은 하단에 있습니다!
도움되셨다면 공감♥, 댓글 부탁드려요!
다들 열심히 해서 한번에 합격합시다! SQLD는 응시비용이 무려 50,000 원... 한번에 갑시다!!
1과목은 4문제 이상 맞춰야 과락을 피할 수 있습니다^^
(틀린 부분은 댓글로 남겨주세요)
2과목 해설은 여기
https://ori-gina-l.tistory.com/16
21회 해설은 여기있습니다!
https://ori-gina-l.tistory.com/21
34, 35회 해설은 여기있습니다!
https://ori-gina-l.tistory.com/category/%EC%9E%90%EA%B2%A9%EC%A6%9D/SQLD
1.
도메인 : 데이터타입, 크기, 제약사항 지정함
제약조건 : PK(기본키), Unique Key(고유키), Foreign Key(외래키), NOT NULL, Check(입력값 범위제한, NULL무시)
식별자 : 주식별자 특징 (유최불존)
유일성 : 유일하게 인스턴스 구분O
최소성 : 주식별자 속성 수 = 유일성 만족 최소 수
불변성 : 주식별자 값 바뀌지X
존재성 : NOT NULL
정규화 : 함수의 종속성을 이용해 무손실 분해함 (의미적 동등한 릴레이션으로 분해, 자연조인하면 복원O)
입력/수정/삭제 성능 향상 (반정규화는 조인성능)
==> 이상현상 방지
SELECT : 정규화 이후 조인 때문에 느려짐
INSERT, UPDATE : 테이블이 작아져서 빨라짐
정규화 방법
1차 : 원자성
2차 : 부분함수 종속제거(=완전종속) (AGE는 학생한테만 종속ㅡ> 2번 들어갈 필요X)
3차 : 이행함수 종속제거(A->B, B->C, A->C)
(기본키 외에 다른컬럼이 컬럼을 결정하지 않을 것) (zip이 street, city, state결정한다면~)
BCNF : 모든 결정자는 후보키
(교수가 1과목만 가르친다고 가정ㅡ> 교수는 결정자이지만, 아래 표에서 후보키X)
2.
반정규화 : 데이터 무결성 해침 [3번 선지]
(1) 반정규화 대상분석 : 대범한 통조림
대량범위, 범위처리(빈도수), 통계처리
=> [1] 디스크 I/O량이 많아 성능저하, 조인으로 성능저하(경로 멀어서)
=> [2] 컬럼 계산해 읽을 때 성능저하
(2) 다른방법 유도 (ㅡ> 무결성 해치니까!)
응용시스템 변경, 클러스터링/인덱스 조정, 뷰 처리
(3) 반정규화 : 테속관
테이블 반정규화
병합 : 1:1, 1:M, 슈퍼-서브타입
분할 : 수직분할(col단위), 수평분할(row단위)
추가 : 이부분 통중-----[4번 선지]
이력 : 마스터테이블 레코드를 이력테이블에 중복
부분 : 자주 이용하는거 모으기
통계 : sum, avg 미리 수행
중복 : 서버 다르거나 다른 업무ㅡ> 원격조인 제거
속성 : 파오이 P중
파생 : 미리 값 계산
오류 : 사용자 실수 대비 임시로 중복값 저장
이력테이블 : 대량처리 위해 기능성 컬럼 추가(최근값, 시작-종료일자)
PKㅡ> 컬럼추가 : PK에 데이터 있지만 일반속성으로 포함
중복 : 조인처리 할때 중복컬럼 위치시킴
관계 : 중복관계 추가
3.
엔터티 : 관리 대상
유무형) 유형 : 물리적 형태 (사원)
개념 : 개념적 정보, 물리X (조직)
사건 : 업무 수행 시 발생, 통계자료 (주문)
발생시점) 기본 : 원래 존재, 부모역할, 주식별자 (사원)
중심 : 기본에서 발생, 행위엔터티 생성 (계약)
행위 : 2개의 부모엔터티에서 발생, 자주 바뀜 (주문목록)
4.
3번 참조
(이런 문제는 애매하게 나오기보다 확실하게 아닌 것 하나를 끼워놓는 경우가 많은 듯)
3) 상품 : 기본엔터티
5.
데이터 모델링 순서 : 개논물
개념모델링ㅡ> 논리적 모델링ㅡ> 물리적 모델링(최종완성)
6.
1) 조인조건이 맞지 않기 때문에 카테시안 조인 발생
(CROSS JOIN 생각하면 됩니다)
https://ori-gina-l.tistory.com/13)(31번 참조)
조인조건이 맞지않는다 : A의 기본키는 a_col1 / C의 기본키는 3개를 모아 기본키로 사용
=> 조인조건이 맞지 않으면 카테시안 조인 발생
2) N개 테이블 최소조인 조건은 N-1개 : 2개!
3),4) 왼쪽이 IE, 오른쪽이 Barker
두 그림 모두
1번은 2번을 선택적으로(1개 이상 가질수도~) (o, 점선)
2번은 1번을 필수적으로(1개 반드시 가짐) ( |, 실선)
==> 3) C에게 B는 필수적인 관계기 때문에 C의 데이터는 B에 존재
식별관계(실선으로 연결)이기 때문에 OUTER JOIN 필요X
==> 4) B에게 A는 필수적인 관계니까 A는 B의 데이터를 모두 갖지만, B가 A의 데이터를 모두 갖질 필요는X
7.
2번 참조
1) 반정규화 대상분석 - 빈도수
2) 반정규화 대상분석 - 대량범위
3) 반정규화 대상분석 - 통계처리
4) SORTING, ORDER BY는 반정규화 대상X
8.
식별자 : 엔터티 내에서 인스턴스 구분함
대표성) 주식별자 : 대표성, 참조관계 연결O
보조 식별자 : 대표성X, 참조관계 연결X
스스로 생성) 내부 식별자 : 스스로 생성
외부 식별자: 타 엔터티에서 받아옴
속성 수) 단일 식별자 : 하나의 속성
복합 식별자 : N개 속성
대체 여부) 본질 식별자 : 업무에 의해 생성
인조 식별자 : 인위적으로 만듦
9.
분산DB : 논리적으로 같은 시스템, 물리적 분산, 데이터 무결성 해침
분할 투명성 : 분할되서 여러군데 저장
위치 투명성 : 저장장소 명시 불필요, 위치정보는 시스템 카탈로그에 유지
지역사상 투명성 : 지역DBMS와 물리적DB 사이 Mapping 보장
중복 투명성 : 여러 site 중복된지 몰라도 ㄱㅊ
장애 투명성 : 장애 발생해도 무관
병행 투명성 : 다수 트랜잭션 동시에 해도 결과 일관성
10.
Row Chaining : row가 너무 길어서 여러 블록에 걸쳐서 저장
Row Migration : 수정 후 다른 블록 빈공간에 저장 ---[3번 선지]
==> 디스크 I/O 많이 발생ㅡ> 성능저하
==> 1:1 관계로 분리해~
==> 해결책 : 파티셔닝
리스트 파티셔닝 : 기업 / 대량데이터
레인지 파티셔닝 : 관리 쉽다 / 가장 많이 쓰임 / 숫자값으로 분리O
해시 파티셔닝 : 관리 어렵 / 데이터 위치 모름
출처는 아래 카페입니다!
정답은
'자격증 > SQLD' 카테고리의 다른 글
[SQLD 30회 단답형] 문제공유 + 자세한 해설 (비전공자도 가능) (2) | 2020.09.01 |
---|---|
[SQLD 30회 2과목] 문제공유 + 자세한 해설 (비전공자도 가능) (14) | 2020.09.01 |
[SQLD 34회 단답형] 문제공유 + 자세한 해설 (비전공자도 가능) (3) | 2020.08.31 |
[SQLD 34회 2과목] 문제공유 + 자세한 해설 (비전공자도 가능) (21) | 2020.08.30 |
[SQLD 34회 1과목] 문제공유 + 자세한 해설 (비전공자도 가능) (8) | 2020.08.29 |
댓글