데이터베이스 관련 CS 면접

계리·2023년 1월 2일
0
post-thumbnail
post-custom-banner

✅ 인덱스란 무엇이고 일반적인 원리는 어떠한지 설명해주실 수 있을까요?

인덱스는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 입니다. 데이터들에게 인덱스를 지정하면 지정한 인덱스 번호로 빠르게 데이터를 찾을 수 있도록 되어 있습니다.


✅ 모든 요소에 인덱스를 걸지 않는 이유는 무엇일까요??

인덱스 테이블이 생성되므로 메모리를 많이 소모하게 되고 Select를 제외한 Insert, Update, Delete에 대한 성능 저하가 있기 때문에 PK같은 컬럼들을 인덱싱 하도록 하는 것이 좋습니다.


✅ 정규화란 무엇인가요??

중복을 최소화 하기 위해 데이터를 구조화하는 프로세스 입니다. 데이터간 종속 관계가 잘못되어 데이터베이스 이상 현상이 생겼을 때 해결할 때도 사용되는 프로세스 입니다.


✅ 트랜잭션이란 무엇이고 원자성, 일관성, 고립성, 지속성이란 무엇인지 설명해주실 수 있을까요?

데이터베이스에서 사용하기 위한 하나의 논리적 단위를 말하며 이는 여러 개의 쿼리문을 하나의 단위로 묶는 것을 말합니다. 이에 대한 특징들로 원자성, 일관성, 독립성, 지속성의 특징이 있는데 이것을 줄여서 ACID특징이라고 합니다.

원자성(Atomicity) : 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징입니다.
일관성(Consistency) : 허용된 방식으로만 데이터를 변경해야 하는 것을 의미합니다.
독립성(Isolation) : 트랜잭션 수행 시 서로 끼어들지 못하는 것을 말합니다.
지속성(Durability) : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 하는 것을 의미합니다.

profile
gyery
post-custom-banner

0개의 댓글