면접을 준비하자 - DB편
정규화란 무엇인가?
관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화 하는 작업 입니다.
정규화를 함으로써 이상 현상을 방지 할 수 있습니다.
<br>
1정규화란?
모든 컬럼의 값이 원자값을 가져야만 합니다.
<br>
2정규화란?
완전 함수 종속성을 만드는 것을 말합니다.
기본키의 부분키가, 다른 컬럼의 값을 결정 할 수 없도록 하여야 합니다.
<br>
3정규화란?
이행 함수 종속성을 제거하는 것을 말합니다.
기본키 이외의 다른 컬럼이 그 외의 다른 컬럼을 결정 할 수 없도록 하여야 합니다.
<br>
DDL, DML, DCL 이란?
DDL은 데이터베이스 정의어로, 테이블과 같은 데이터 구조를 정의할때 사용합니다.
CREATE, DROP, ALTER와 같은 명령어가 있습니다.
DDL은 데이터베이스 조작어로, 데이터베이스의 데이터를 조회/삽입/수정/삭제 하는 명령어 입니다.
SELECT, INSERT, UPDATE, DELETE와 같은 명령어가 있습니다.
DCL은 데이터베이스 제어어로, 데이터베이스의 병행 수행 제어, 권한 제어등의 명령어 입니다.
COMMIT, ROLLBACK, GRANT, REMOVE와 같은 명령어가 있습니다.
<br>
JOIN 이란?
관계형 데이터베이스에서, 데이터베이스와의 논리적 관계를 매핑하여 데이터를 조회하는 것을 말합니다.
<br>
JOIN의 종류를 설명해보세요.
INNER JOIN은 두 테이블에서 지정된 컬럼의 값이 일치되는 행을 연결하여 결과를 생성하는 조인 방법 입니다.
LEFT OUTER JOIN은 왼쪽테이블의 모든 레코드에, 지정된 컬럼의 값과 일치하는 오른쪽 테이블의 레코드를 연결하는 조인 방법입니다. 오른쪽 테이블의 지정된 컬럼의 값이 없을 경우 NULL 값이 입력됩니다.
RIGHT OUTER JOIN은 반대로, 오른쪽 테이블의 모든 레코드에, 지정된 컬럼값과 일치하는 왼쪽 테이블의 레코르를 연결하여 조인하는 방법입니다. 매핑되는 값이 없을 경우 왼쪽테이블의 컬럼에 NULL 값이 입력됩니다.
FULL OUTER JOIN은 지정된 컬럼의 값에 매핑된 레코드에 더해, 매핑되지 않은 레코드에 대해서는 NULL값을 입력합니다.
<br>
VIEW를 설명해보세요.
뷰는 하나의 이상의 테이블에서, 필요한 데이터 집합을 가상의 테이블로 정의 한 것을 말합니다.
뷰는 가상의 테이블이기 때문에 실제 데이터를 가지지 않으며, 뷰에 정의된 테이블의 데이터 변동에 뷰의 데이터도 자동으로 변경됩니다. 뷰를 사용함으로써 데이터베이스의 보안을 강화 할 수 있으며, 데이터 질의어 또한 간편하게 사용 할 수 있습니다.
<br>
INDEX란?
INDEX란 RDBMS에서 검색의 속도를 늘리기 위한 기술입니다.
INDEX는 색인입니다. 해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 합니다. 하지만 검색의 속도를 빠르게하는 대신, INSERT, UPDATE, DELETE 시에 색인화 작업이 이루어져 지연되므로, 이를 고려하여 사용하여야 합니다.
<br>
<br>