본문 바로가기
데이터베이스

DBA 면접 질문 ( 1 ) 1~20

by 흰색남자 2023. 1. 19.

1. RDBMS가 뭔가요?

관계형 데이터베이스를 관리하기 위한 시스템으로, 관계형 데이터베이스란 테이블, 행, 열 정보를 구조화하는 방식입니다. 조인을 통하여 여러 데이터간 관계를 쉽게 이해하고 정보를 얻을 수 있습니다.


2. 정규화가 뭔가요?

데이터베이스의 데이터 중복을 최소화하여 삽입,삭제,갱신에 대한 이상 현상을 제거하는 과정입니다.

- 갱신 이상 : 데이터 갱신 시, 너무 많은 행을 업데이트하거나 데이터 불일치가 생기는 현산

- 삭제 이상 : 데이터 삭제 시, 원치 않는 정보도 같이 삭제되는 현상

- 삽입 이상 : 특정 데이터가 존재하지 않아 중요한 데이터를 삽입하지 못하는 현상

 

3. 각 정규형의 차이점은 무엇인가요? (1차, 2차, 3차 등)

1차 : 테이블의 컬럼이 원자값을 갖도록 테이블을 분해하는 과정

2차 : 1차 정규화한 테이블에서 모든 컬럼이 기본키의 부분 집합에 속하게 만드는 과정

3차 : 모든 결정자( pk가 될 수 있는 값 )가 후보키가 되도록 분해하는 과정


4. 저장 프로시저는 무엇인가요?

일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합, 데이터베이스에 대한 일련의 작업을 정리한 절차를 DBMS에 저장한 것.

 

5. 트리거는 무엇인가요?

테이블에 대한 이벤트에 반응해 자동으로 실행하는 작업

6. 뷰는 무엇인가요?

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상 테이블.

데이터 보정, 처리과정 시험 등 임시 작업을 위한 용도로 활용 할 수 있음

 

7. 인덱스는 무엇인가요?

추가적인 작업을 통하여 검색 속도를 향상시키기 위한 자료구조. 컬럼의 값과 해당 레코드가 저장된 주로를 키 벨류 구조로 만들어 인덱스를 만들어 두는 것.

 

8. 클러스터드 인덱스와 넌클러스터드 인덱스의 차이는 무엇인가요?

클러스터드 인덱스는 테이블당 1개만 만들 수 있고 테이블에 PK 설정시 자동으로 만들어지고 정렬된 상태를 유지합니다.

넌클러스터드 인덱스는 정렬되지 않는 상태를 유지하며, 테이블당 여러개 만들 수 있습니다.

9. 테이블에 설정될 수 있는 인덱스 형태들은 어떤 형태들이 있나요?

단일 인덱스, 복합 인덱스, 커버드 인덱스가 있습니다.

1. 단일 인덱스 : 단일 컬럼으로 인덱스를 구성한 경우

2. 복합 인덱스 : 두 개 이상의 컬럼으로 인덱스를 구성한 경우

3. 커버드 인덱스 : 필요한 데이터가 인덱스 KEY에 모두 존재하여 DISK로 가지 않아도 되는 경우.


10. 커서는 무엇인가요?

반환되는 결과값들을 저장하는 메모리 공간. Fetch를 통해 결과값을 추출한다.

명시적 커서 : 사용자가 선언해서 생성 후 사용하는 SQL 커러. 여러개의 행을 처리하고자 할 경우 사용.

묵시적 커서 : 자동으로 선언해주는 SQL 커서, 사용자는 생성 유무를 알 수 없음.


11. DBCC 명령어는 어떤것들을 사용해 보았나요?

Database console command의 약자 데이터베이스

알림, 유효성 검사, 유지 관리 등 


12. 연결된 서버는 무엇인가요?

서로 다른 데이터베이스를 연결할 필요가 잇을 경우 사용함. 링크드 서버를 지정하여 데이터베이스와 데이터베이스가 서로 연결된 상태로 유지할 수 있는 기능.


13. 데이터 정렬(Collation)은 무엇인가요?

해당 문자열을 어떻게 정렬할지를 결정하는 알고리즘. order by, like, unique

- 대소문자, 악센트, (2 or ii ), (blackbird, black-bird ) 등

 


14. 데이터 정렬 종류는 어떤 것들이 있나요?

armscii8_bin               
ascii_general_ci           
ascii_bin                  
armscii8_general_ci

 

15. 프라이머리 키와 유니크 키의 차이는 무엇인가요?

pk값은 null을 허용하지 않지만, unique는 null을 허용함

 

16. 일대일, 일대다, 다대다 관계의 테이블 설계는 어떻게 하나요?

다대다 테이블의 경우 1:m, 1:n 관계로 풀어서 설계하는 것이 좋습니다.

1. pk가 두개가 되어버리면서 이상 현상이 발생할 수 있습니다. 데이터중복, 갱신이상 등

 

17. NOLOCK이 무엇인가요?

insert, update 등 락이 걸렸을 경우 select문이 block 되게 됩니다. 이렇게되면 성능이 떨어지므로, 단순 조회 쿼리에 nolock를 추가하여 사용합니다.

 

18. DELETE 명령어와 TRUNCATE 명령어의 차이는 무엇인가요?

얼마나 삭제할 것인가를 결정함.

  • DELETE 명령어는 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다. 원하는 데이터만 지울 수 있다. 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.
  • TRUNCATE 명령어는 용량이 줄어 들고, 인덱스 등도 모두 삭제 된다. 테이블은 삭제하지는 않고, 데이터만 삭제한다. 한꺼번에 다 지워야 한다. 삭제 후 절대 되돌릴 수 없다.
  • DROP 명령어는 데이블 전체를 삭제, 공간, 객체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.

 

19. Sql Server에서 지원하는 조인방식은 어떤 것들이 있나요?

 

left, inner, right, full outer 조인이 존재합니다.

20. HAVING 절과 WHERE 절과의 차이는 무엇인가요?

HAVING 절은 WHERE 절과 비슷하지만 그룹 전체 즉, 그룹을 나타내는 결과 집합의 행에만 적용된다는 점에서 차이가 있습니다. 반면, WHERE 절은 개별 행에 적용

'데이터베이스' 카테고리의 다른 글

LSM Tree ( Log Structured Merge Tree )  (0) 2023.01.29
DBA 면접 질문 (2) 21 ~ 40  (0) 2023.01.19
MySQL 힌트  (0) 2023.01.18
my.cnf ( my.ini ) MySQL 최적화와 관련된 변수.  (0) 2023.01.14
Buffer Pool과 redo의 관계  (0) 2023.01.13