데이터베이스 일반 개념
Q1. DBMS란 무엇인가요?
DBMS는 데이터베이스 관리 시스템으로, 데이터를 효율적으로 저장, 관리, 검색하도록 돕는 소프트웨어입니다. 예: MySQL, Oracle.
Q2. RDBMS란 무엇인가요?
RDBMS는 관계형 데이터베이스 관리 시스템으로, 데이터를 테이블 형식으로 저장하고 테이블 간 관계를 설정해 효율적으로 관리합니다. SQL을 사용합니다.
Q3. 데이터베이스의 특징은 무엇인가요?
- 실시간 접근성: 실시간으로 데이터를 처리하고 응답할 수 있습니다.
- 지속적인 변화: 데이터 삽입, 삭제, 갱신으로 항상 최신 상태를 유지합니다.
- 동시 공용: 다수의 사용자가 동시에 데이터를 이용할 수 있습니다.
- 내용에 의한 참조: 데이터의 위치가 아닌 내용으로 데이터를 찾습니다.
SQL 언어와 쿼리
Q4. 데이터베이스 언어의 종류는 무엇인가요?
- DDL: 데이터베이스 구조를 정의/수정/삭제하는 언어 (예: CREATE, ALTER, DROP).
- DML: 데이터를 조작하는 언어 (예: SELECT, INSERT, UPDATE, DELETE).
- DCL: 데이터 접근을 제어하는 언어 (예: GRANT, REVOKE).
Q5. SELECT 쿼리 수행 순서를 설명해주세요.
- FROM - 테이블 지정.
- ON - JOIN 조건 확인.
- JOIN - 데이터 집합 형성.
- WHERE - 조건으로 행 필터링.
- GROUP BY - 그룹화.
- HAVING - 그룹화 후 조건 필터링.
- SELECT - 열 선택.
- DISTINCT - 중복 제거.
- ORDER BY - 정렬.
- LIMIT - 결과 제한.
Q6. SQL Injection이란 무엇인가요?
SQL Injection은 악의적인 SQL 구문을 삽입해 데이터베이스를 조작하는 공격 기법입니다.
예방 방법:
- Prepared Statement 사용.
- 입력값 검증.
- 저장 프로시저 활용.
키(Key)
Q7. 기본 키(Primary Key)와 후보 키(Candidate Key)의 차이는 무엇인가요?
- 기본 키: 각 행을 고유하게 식별하는 필드, NULL 및 중복 불가.
- 후보 키: 기본 키로 선택 가능한 키의 집합.
Q8. 외래 키(Foreign Key)란 무엇인가요?
외래 키는 한 테이블이 다른 테이블의 기본 키를 참조하는 속성입니다.
Q9. Unique 키와 기본 키의 차이는 무엇인가요?
- Unique 키: 중복이 불가능하며 NULL 값을 허용합니다.
- 기본 키: 중복 및 NULL 불가, 테이블당 하나만 존재합니다.
인덱스
Q10. 인덱스란 무엇인가요?
인덱스는 테이블 검색 속도를 높이기 위해 사용하는 자료구조입니다.
장점: 데이터 검색 속도 향상.
단점: 저장 성능 저하, 삽입/수정 시 부하 증가.
Q11. B+Tree와 B-Tree의 차이점은 무엇인가요?
- B-Tree: 모든 노드에 키와 데이터를 저장합니다.
- B+Tree: 리프 노드에만 데이터를 저장하고, 리프 노드끼리 연결되어 순차 검색에 유리합니다.
정규화와 비정규화
Q12. 정규화란 무엇인가요?
정규화는 데이터 중복을 최소화하고 데이터 무결성을 유지하기 위해 테이블을 분해하는 과정입니다.
- 1NF: 컬럼이 원자 값을 갖도록 함.
- 2NF: 기본 키에 완전 함수 종속.
- 3NF: 이행적 함수 종속 제거.
Q13. 정규화의 장단점은 무엇인가요?
- 장점: 데이터 중복 제거, 이상 현상 방지.
- 단점: JOIN 연산 증가로 성능 저하 가능.
Q14. 역정규화는 왜 필요할까요?
성능 향상을 위해 정규화를 되돌리는 작업입니다. 읽기 성능을 높이거나 복잡한 쿼리를 단순화하기 위해 사용합니다.
트랜잭션과 무결성
Q15. 트랜잭션이란 무엇인가요?
트랜잭션은 데이터베이스의 일관성을 유지하기 위해 작업을 하나의 논리적 단위로 처리하는 것입니다.
Q16. 트랜잭션의 ACID 특성은 무엇인가요?
- 원자성: 작업이 모두 실행되거나 전혀 실행되지 않아야 함.
- 일관성: 트랜잭션 완료 후 데이터 무결성을 유지.
- 독립성: 동시에 실행되는 트랜잭션은 서로 간섭하지 않음.
- 영속성: 완료된 작업은 영구적으로 반영.
Q17. 이상 현상이란 무엇인가요?
이상 현상은 테이블 설계 문제로 데이터 삽입, 삭제, 갱신 시 발생하는 논리적 오류입니다.
- 삽입 이상: 불필요한 데이터 삽입 필요.
- 삭제 이상: 삭제 시 의도치 않은 데이터 손실.
- 갱신 이상: 중복 데이터 갱신으로 불일치 발생.
JOIN
Q18. JOIN의 종류는 무엇인가요?
- INNER JOIN: 두 테이블에서 조건이 일치하는 행만 반환.
- LEFT JOIN: 왼쪽 테이블의 모든 행과 일치하는 오른쪽 행 반환.
- RIGHT JOIN: 오른쪽 테이블의 모든 행과 일치하는 왼쪽 행 반환.
- FULL OUTER JOIN: 두 테이블의 모든 행 반환.
Q19. ON과 WHERE의 차이점은 무엇인가요?
- ON: JOIN 조건으로 사용되며, JOIN 전 필터링.
- WHERE: JOIN 후 결과에서 필터링.
관리 및 최적화
Q20. 클러스터링과 레플리케이션의 차이는 무엇인가요?
- 클러스터링: 여러 DB 서버를 하나의 시스템처럼 작동.
- 레플리케이션: 마스터 DB 데이터를 슬레이브 DB에 복제.
Q21. 옵티마이저(Optimizer)란 무엇인가요?
옵티마이저는 SQL 쿼리를 효율적으로 실행하기 위해 최적의 실행 계획을 생성하는 DBMS의 엔진입니다.
Q22. DB 튜닝이란 무엇인가요?
DB 튜닝은 성능 최적화를 위해 구조, 쿼리, 설정을 조정하는 작업입니다.
- 1단계: 데이터 설계 튜닝 (모델링 최적화).
- 2단계: DBMS 튜닝 (메모리/캐시 조정).
- 3단계: SQL 튜닝 (쿼리 최적화).
'SW > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
5.2 선형 자료 구조 (Linear Data Structures) (0) | 2025.02.05 |
---|---|
5.1 복잡도 (0) | 2025.02.05 |
4.7 조인의 원리 (1) | 2025.01.22 |
4.6 조인의 종류 (0) | 2025.01.22 |
4.5 인덱스 (0) | 2025.01.22 |