1. 데이터베이스에서 인덱스를 사용하는 이유 및 장단점에 대해 설명해주세요.
인덱스를 활용하면 데이터를 조회하는 시간을 단축시킬 수 있습니다.
테이블 조회 속도가 빨라지면서 전반적인 시스템 부하를 줄일 수 있습니다.
Index를 사용하지 않게되면 조회할 때 전체탐색을 하여 해당 컬럼을 찾아내기 때문에 처리속도가 떨어지게 됩니다.
단점은 인덱스를 관리하기 위해서 추가 작업이 필요하고 DB의 10%정도의 저장공간이 필요합니다.
2. 트랜잭션에 대해서 설명해주세요.
트랜잭션은 데이터 상태를 변화시키기위한 논리적인 작업단위를 뜻합니다.
DB의 CRUD와 같은 행동을 뜻합니다.
하나의 트랜잭션은 Commit(저장) 되거나 Rollback(철회)이 됩니다.
3. ACID에 대해서 설명해주세요.
트랜잭션의 4가지 특징이 존재하는데 이것이 ACID 입니다.
- 원자성 : 모아니면 도같은 원리로 트랜잭션이 DB에 모두 반영되거나 하나만 실패하면 모두 실패가되거나를 뜻합니다.
- 일관성 : 트랜잭션 작업처리의 결과가 항상 일관되어야한다를 뜻합니다. 예를들면 데이터타입이 처리 전 후 동일해야하는 것입니다.
- 독립성 : 하나의 트랜잭션은 다른트랜잭션에 끼어들 수 없고 독립적인 성질을 독립성이라고 합니다.
- 지속성 : 트랜잭션이 성공적으로 완료되면 그 결과가 영구적으로 반영되어야함을 뜻합니다.
4. 트랜잭션 격리 수준(Transaction Isolation Levels)에 대해서 설명해주세요.
다른 트랜잭션이 동시에 처리 될 때 격리 수준을 변경함으로써
성능을 조절 할 수 있습니다.
READ UNCOMMITTED: 다른 트랜젝션에서 커밋되지 않은 내용도 참조 할 수 있다.
READ COMMITTERD : 다른 트랜젝션에서 커밋된 내용만 참조할 수 있다.
REPEATABLE READ : 트랜잭션에 진입하기 이전에 커밋된 내용만 참조할 수 있다.
(리피터블)
SERIALIZABLE: 트랜잭션에 진입하면 락을 걸어 다른 트랜잭션이 접근하지 못하게 한다.(성능 매우 떨어짐)
5. 정규화에 대해서 설명해주세요.
정규화는 관계형 DB의 설계에서 중복을 최소화하여 데이터를 구조화하는것을 뜻합니다.
정규화를 하게 되면 불필요한 데이터를 제거하고 논리적으로 데이터를 저장하기 때문에 이상현상의 발생 가능성을 줄일 수 있고 단점으로는 연산 시간이 증가하게 됩니다.
정규화를 하기위한 몇가지 표준 방법이 있는데
기본 정규형으로는 1~3정규형, BCNF 등이 있고
고급 정규형은 4~5정규형이 있습니다.
6. JOIN에 대해서 설명해주세요.
JOIN은 DB내에서 두개이상의 테이블을 합쳐서 조회하는 방법입니다.
JOIN을 하기 위해서는 테이블끼리 서로 참조가 되어있어야합니다.
JOIN의 종류는 INNER JOIN, OUTER JOIN, LEFT RIGHT JOIN이 있습니다.
7. RDBMS vs NOSQL에 대해서 설명해주세요.
RDBMS는 관계형 데이터베이스이고 NOSQL은 관계가없는 데이터베이스입니다.
관계형 DB는 작업의 완전성을 보장합니다.
'기술면접' 카테고리의 다른 글
기술면접 : 암호학/보안(1/1) (0) | 2023.04.07 |
---|---|
기술면접 : 데이터베이스(2/2) (0) | 2023.04.05 |
기술면접:스프링+JPA(3/3) (0) | 2023.03.31 |
기술면접 : 스프링 + JPA (2/3) (0) | 2023.03.29 |
기술면접 : 스프링 + JPA (1/3) (0) | 2023.03.27 |