면접준비

[면접준비] DB

개발자 문문 2025. 9. 17. 10:50

1. DBMS란?

- DBMS는 데이터를 구조화하여 저장, 조회, 수정, 삭제 등을 관리하고, 데이터 무결성과 동시성, 보안을 보장하는 소프트웨어입니다.

 

2. DBMS 구조

- DBMS는 저장소(Storage), 질의 처리기(Query Processor), 트랜재션 관리자(Transaction Manager), 로그/복구 관리자, 사용자 인터페이스 등으로 구성되며, 사용자의 요청을 처리하고 데이터를 안전하게 관리합니다.

 

3. 질의처리기 작동 순서

- 사용자가 SQL을 입력하면, 파서(Parser) → 옵티마이저(Optimizer) → 실행 계획 생성 → 실행(Execution Engine) → 결과 반환 순으로 처리됩니다.

 

4. 옵티마이저

- 옵티마이저는 SQL 실행 계획을 생성할 때 여러 가능한 접근 경로 중 가장 비용이 적은 효율적인 경로를 선택하는 DBMS의 핵심 모듈입니다.

 

5. DB 저장 공간

- DB 저장 공간은 테이블, 인덱스, 로그, 임시 공간 등으로 구성되며, 데이터 파일, 테이블스페이스, 페이지, 블록 단위로 물리적/논리적 구조가 관리됩니다.

 

6. DBMS Join 원리와 종류

- Join은 두 개 이상의 테이블을 키를 기준으로 결합하는 연산으로, Nested Loop Join, Hash Join, Merge Join 등의 방식이 있으며, SQL 최적화를 위해 선택됩니다.

 

7. JDBC와 ODBC의 차이

- JDBC는 자바 애플리케이션에서 DB에 접근하기 위한 Java API이고, ODBC는 언어에 독립적으로 DB 접근을 지원하는 표준 API 입니다.

 

8. DDL, DML, DCL

- DDL(Data Definition Language)은 테이블 생성/수정/삭제 명령어, DML(Data Manipulation Language)은 데이터 조회/삽입/수정/삭제 명령어, DCL(Data Control Language)은 권한 관리 명령어를 의미합니다.

 

9. Key

- Key는 테이블에서 레코드를 식별하거나 관계를 정의하는 컬럼으로, 대표적으로 Primary Key, Foreign Key, Unique Key가 있습니다.

 

10. 인덱스

- 인덱스는 검색 속도를 높이기 위해 컬럼 값을 기반으로 별도 구조를 만들어 DB 접근 성능을 향상시키는 자료구조 입니다.

 

11. 클러스터드와 넌클러스터드 인덱스

- 클러스터드 인덱스는 데이터가 인덱스 순서대로 물리적으로 저장되는 인덱스이고, 넌클러스터드 인덱스는 별도 구조로 저장되어 데이터 순서와 독립적으로 관리됩니다.

 

12. 클러스터란?

- 클러스터는 여러 서버를 묶어 하나의 시스템처럼 동작하도록 구성한 것으로, 고가용성 및 부하 분산에 사용됩니다.

 

13. 시퀀스

- 시퀀스는 DB에서 자동으로 증가하는 숫자를 생성하여 주로 Primary Key 값으로 사용합니다.

 

14. 뷰(View)

- 뷰는 하나 이상의 테이블을 기반으로 생성된 가상 테이블로, 데이터 조회나 보안, 복잡한 쿼리 재사용에 활용됩니다.

 

15. 트리거(Trigger)

- 트리거는 테이블의 INSERT, UPDATE, DELETE 동작 시 자동으로 실행되는 프로시저로, 무결성 유지나 자동 로그 기록에 사용됩니다.

 

16. 정규화

- 정규화는 중복 최소화, 데이터 무결성 유지를 위해 테이블을 분배하고 관계를 재구성하는 과정입니다.

 

17. 함수적 종속성

- 한 속성 값이 다른 속성 값을 결정할 수 있을 때, 결정되는 속성은 종속이라고 하며 이를 함수적 종속성이라고 합니다.

 

18. 반정규화

- 성능 최적화를 위해 일부 중복을 허용하고 테이블을 결합하는 과정을 반정규화하고 합니다.

 

19. 파티셔닝과 샤딩

- 파티셔닝은 하나의 테이블을 논리적 단위로 나누는 것이고, 샤딩은 DB 자체를 여러 서버에 분산 저장하여 확장성을 높이는 기술입니다.

 

20. 트랜잭션과 ACID 특징

- 트랜잭션은 DB 작업단위로, 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영속성(Durablilty) 특성을 갖춰 데이터 일관성과 신뢰성을 보장합니다.

- 원자성 : 트랜잭션에 포함된 모든 작업은 전부 수행되거나 전부 취소되어야 하며, 일부만 적용된 상태로 남으면 안 됩니다.

- 일관성 : 트랜잭션 수행 전후로 데이터베이스는 정의된 제약조건을 만족하며, 무결성이 유지되어야 합니다.

- 독립성 ; 동시에 수행되는 여러 트랜잭션은 서로의 작업에 간섭하지 않고 독립적으로 실행되어야 합니다.

- 영속성 : 트랜잭션이 성공적으로 완료되면 그 결과는 시스템 장애가 발생해도 영구적으로 유지됩니다.

 

21. SQL과 NoSQL의 차이

- SQL은 관계형 DB로 스키마 기반, 정규화, JOIN 사용, ACID 보장이 특징입니다.

- NoSQL은 비관계형 DB로 유연한 스키마, 확장성, 속도, 다양한 데이터 모델을 지원합니다.

 

22. NoSQL 종류

- Key-Value 모델은 Redis, Documrnt 모델은 MongoDB이 있습니다.

 

23. Redis란?

- Redis는 메모리 기반 Key-Value 데이터 저장소로, 빠른 읽기/쓰기, 캐싱, 세션 관리, Pub/Sub 메시징 등을 지원합니다.

 

24. MySQL과 MSSQL의 차이

- MySQL은 오픈소스 관계형 데이터베이스로, 주로 리눅스 환경에서 많이 사용되고 가볍고 빠른 읽기 성능에 강점이 있습니다.

- MSSQL은 마이크로소프트에서 개발한 상용 관계형 데이터베이스로, 윈도우 환경에 최적화 되어있고 GUI 관리 도구(SSMS)와 강력한 트랜잭션 관리, 통합 보안 기능을 제공합니다.

- MySQL은 커뮤니티 버전이 무료라서 비용이 효율적이고 확장성이 좋으며, MSSQL은 기업 환경에서 안정적이고 복잡한 BI, OLAP 기능을 제공하는 데 강점이 있습니다.

'면접준비' 카테고리의 다른 글

[면접준비] WEB  (2) 2025.09.17
[면접준비] 네트워크  (0) 2025.09.17
[면접준비] Spring  (0) 2025.09.17
[면접준비] JAVA  (0) 2025.09.16
[면접준비] 운영체제  (0) 2025.09.16