1. 데이터 모델링의 이해
틀린 문제
데이터베이스 모델링 관점 중에서 CRUD 메트릭스와 관련있는 것
- 데이터와 프로세스의 상관 관점
옵티마이저 조인 기법 중 Hash Join 기법에 대한 설명
- 해시 조인은 선행 테이블로 작은 테이블이 선정되어야 한다.
- A Table: 100건, B Table: 1000건 => 이 같은 경우에는 A Table을 선행 테이블로 해야 한다.
카디널리티 계산 식
- 카디널리티 = 선택도 * 전체 레코드 수
맞은 문제
분산 데이터베이스에 대한 설명
해당 속성은 속성의 종류 중 어떤 속성에 속하는가
테이터베이스 3층 스키마
반정규화를 적용하는 이유
Super type과 Sub type 변환 방법 종류
ERD 관계(1:1, 1:N, M:N, 선택, 필수)
2. SQL 기본 및 활용
틀린 문제
Mytest 테이블 칼럼을 데이터 타입 조건으로 not null을 기본으로 수정하기
alter table Mytest modify (칼럼명 default not null)
계층형 쿼리
- CONNECT BY
- PRIOR
- START WITH
- ORDER SIBLINGS BY : 조회된 데이터에 대해서 정렬 진행
계층형 쿼리문의 내장 함수
- LEVEL
- CONNECT_BY_ROOT
- CONNECT_BY_ISLEAF
- SYS_CONNECT_BY_PATH
- NOCYCLE
- CONNECT_BY_ISCYCLE
WITH GRANT OPTION
- 권한 부여 옵션
- 연쇄적으로 권한 부여가 연결되어 있는 경우, 가장 권한을 부여받은 사용자의 권한이 취소되면 연쇄적으로 모두 취소된다.
CASCADE CONSTRAINT
- Oracle에서만 옵션으로 존재(SQL server에는 존재하지 않음)
- PK 및 FK로 다른 테이블과 참조 관계가 얽혀있어도 제거 및 변경이 되도록 일시적으로 참조 관계를 끊는 옵션
DDL, DCL, DML, TCL
- DML : Data Manipulation Language
- SELECT, INSERT, UPDATE, DELETE
- 데이터 조작어, 테이블의 Records를 조작함(CRUD)
- DDL : Data Definition Language
- CREATE, ALTER, DROP, RENAME
- 데이터 정의어, DB 객체의 구조를 정의
- DCL : Data Control Language(접근 권한 변경)
- GRANT, REVOKE
- 데이터 제어어, DB나 Table의 접근권한이나 CRUD 권한을 정의
- TCL : Transaction Control Language
- COMMIT, ROLLBACK
집계 함수와 NVL의 사용
- COMMIT, ROLLBACK
- 집계 함수는 NULL을 취급하지 않지만, NVL과 같이 사용하면 하나의 데이터 개수에 포함시킨다.
Union, Union ALL => GROUPING SETS과 같이 알아두기
- UNION : 중복을 제거하고 결과를 결합함. 중복된 행은 한 번만 표시
- UNION ALL : 중복을 제거하지 않고 결과를 결합함. 중복된 행도 모두 표시
조건문의 조건을 NULL 로 잡은 경우
- 조건이 NULL인 경우는 알 수 없음으로 인식
데이터 타입에 따른 입력(INSERT)
- varchar : ''를 붙이거나 안붙여도 상관없음
- date : 'yyyymmdd'를 사용하거나 특정 일자 키워드 사용(''없이는 오류 발생)
정렬
- null 은 정렬 시 가장 작은 값으로 취급
- 여러 컬럼을 동시에 정렬할 때에는 정렬시키는 컬럼 순으로, 같은 경우에는 다음 컬럼의 기준으로 정렬하는 식
JOIN 종류
- INNER JOIN : 교집합
- LEFT OUTER JOIN : 교집합 + LEFT 만의 요소
- RIGHT OUTER JOIN : 교집합 + RIGHT 만의 요소
- FULL OUTER JOIN : 교집합 + RIGHT 만의 요소 + LEFT 만의 요소
- CROSS JOIN : LEFT * RIGHT
- Oracle에서 JOIN 할 때에는 (+)를 붙인 테이블의 반대로 LEFT/RIGHT OUTER JOIN 이라고 생각할 것
- Oracle <=> ANSI 표준 SQL로 변경하는 JOIN 문제
맞은 문제
DDL 문이 아닌 것
Mytest 테이블에 JOB 칼럼을 추가하기
alter table Mytest add column JOB