용's

[DB] 예상 문제 본문

Computer Science/예상면접

[DB] 예상 문제

TaeYOng's 2015. 9. 28. 20:30




1. 트랜잭션(Transaction)에 대해 설명하라

 ▶ 데이터베이스의 상태를 변화시키는 논리적 연산의 집합. 즉, 여러 개의 작업이 발생할 때 하나의 단위로 묶어 '일괄 실행(Commit)', '일괄 취소(Rollback)'를 할 수 있게 해주는 것. 




2. 트랜잭션(Transaction)의 ACID에 대해 설명하라

 ▶ ACID는 각각 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)을 의미한다.

원자성: 모두 반영되거나 아니면 전혀 반영되지 않아야 함 (부분 실행 안됨)

일관성: 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있게 DB상태로 변환.

    시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 수행 완료 후에 같아야 함.

독립성: 둘 이상의 트랜잭션이 동시에 병행 실행될 시, 또 다른 하나의 트랜잭션의 연산이 끼어들 수 없음. 

지속성: 트랜잭션의 결과는 영구적으로 반영


 



3. View 테이블을 사용하는 경우는 어떤 경우인가

 ▶ 가상의 테이블이라 하며, View에는 데이터가 들어있는 것이 아닌 SQL에만 저장되어 있음.

 ▶ View를 사용하는 이유는 보안과 사용자의 편의성 때문. 만약 어떤 테이블에 대해 다른 사용자가 봐서는 안되는 칼럼이 있다면 view를 사용하여 정의된 쿼리의 결과만 볼 수 있게 할 수 있다.




4. 정규화에 간단히 설명하라

 ▶ 정규화를 하는 이유는 데이터의 중복을 방지하여 보다 효율적으로 데이터를 저장하기 위함

- Relation을 분리함으로써 삽입, 삭제, 이상현상의 발생가능성을 줄이는 것

- 데이터베이스 구조 확장시 재 디자인 최소화

- 사용자에게 데이터모델을 더욱 의미(informative)있게 만듦

- 정규형들은 1~5차수를 가지며, 차수가 높아질수록 만족시켜야 할 제약조건이 증가


 ▶ 단점으로는 연산 시간이 증가하게 됨


    정규화 종류                           내용함수종속성
1차 정규화모든 속성은 원자값을 가짐 
복수의 속성 값을 갖는 속성을 분리
 
2차 정규화주식별자에 종속적이지 않은 속성의 분리         
부분 종속 속성을 분리
부분함수종속성
3차 정규화속성에 종속적인 속성의 분리 
이전 종속 속성의 분리
이행함수종속성
보이스-코드 정규화   다수의 주식별자 분리 
4차 정규화속성간의 다중종속성 제거다중종속성
5차 정규화Join 종속성 제거Join 종속성






5. Outer Join과 Inner Join의 차이는?

 ▶ Join은 각각의 테이블에 분리되어 있는 연관성 있는 데이터들을 연결하거나 조합하여 사용하기 위한 

 ▶ INNER JOIN: 단순 교집합이라기 보다, 두 테이블간의 조인 조건(where)을 만족하는 ROW만 리턴하는 것

 ▶ OUTER JOIN: LEFT/RIGHT/FULL이 있음

- LEFT: 조인문 왼쪽에 있는 테이블의 모든 결과를 가져온 후 오른쪽테이블의 데이터를 매칭하며, 매칭되지 않는 데이터는 NULL

- RIGHT: LEFT의 반대






6. Oracle에서 varchar과 varchar2의 차이는?

 ▶ 데이터의 유형은 동일한 의미의 '가변길이 문자열'

  ▶ 길이의 상한치는 4000바이트

  ▶ 하지만 varchar는 차후에 별도의 데이터 유형으로 제정될 예정으로 사용하지 않을 것을 권장함

'Computer Science > 예상면접' 카테고리의 다른 글

[JAVA] BigDecimal  (0) 2015.10.12
[Network #4] TCP 제어 알고리즘  (0) 2015.10.12
[Network #3] 기타 예상 질문  (0) 2015.06.04
[Network #2] Blocking VS non-Blocking  (0) 2015.06.04
[Network #1] TCP와 UDP  (0) 2015.06.04
Comments