📢 오늘의 질문
1. 복합인덱스란 무엇인지 원리를 설명해주실 수 있을까요?
👉 https://bkyungkeem.tistory.com/60
요약
복합 인덱스란 두 개 이상의 컬럼을 합쳐서 인덱스를 만드는 것을 말합니다.
주로 단일 컬럼보다 여러 개의 컬럼으로 합쳤을 때 좋은 분포도를 가질 경우 사용됩니다.
Where절에서 AND 조건에 많이 사용되는 컬럼들을 복합 인덱스로 구성합니다.
인덱스는 검색키와 주소의 쌍으로 구분되며 이를 인덱스 엔트리(Index Entry)라 부르는데, 복합인덱스는 검색키 N개와 주소의 쌍이 인덱스 엔트리가 됩니다.
첫 번째 검색키에 대하여 두 번째 검색키를 정렬하는 방식으로 구성되어 필드 순서에 따라 인덱스 효과가 달라집니다. 따라서 카디널리티가 높은 컬럼을 높은 순서대로 결합 인덱스를 생성해야 합니다.
2. 정규화란 무엇이고 대표적인 장점과 단점은 무엇이 있을까요?
👉 https://bkyungkeem.tistory.com/61
요약
정규화란 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정입니다. 관계형 데이터베이스의 설계에서 테이블 간에 중복되는 데이터가 발생하지 않도록 릴레이션을 분해하여 구조화하는 프로세스를 말합니다.
정규화의 장점은 불필요한 데이터를 제거하고 데이터 중복을 최소화 할 수 있고, 데이터베이스 변경 시 이상현상을 방지할 수 입니다. 만약 하나의 테이블에 모든 정보를 다 넣게 되면 중복되는 데이터와 불필요한 데이터가 존재하고 디스크 공간을 더 많이 차지할 수 있게 됩니다. 또한 동일한 정보를 한 릴레이션에서는 변경하고 나머지 릴레이션에서는 변경하지 않은 경우 어느것이 정확한지 알 수 없게 됩니다. 이를 해결하기 위해 정규화를 합니다.
단점으로는 릴레이션 분해로 많은 join연산이 발생할 수 있고, 이로 인한 질의에 대한 응답시간이 저하됩니다.
'개발일지 > 🌱 주니어 개발자 스터디' 카테고리의 다른 글
[ 23.01.03 ] 주니어 개발자 스터디 (0) | 2023.01.06 |
---|
댓글