본문 바로가기

CS 지식22

정규화(Normalization) 정규화(Normalization) : 정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이며 분해하는 과정에서 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 장점 데이터베아스 변경 시 이상 현상(Anomaly)을 제거할 수 있다. 정규화된 데이터베이스 구조에서 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경할 수 있다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용 프로그램의 생명을 연장시킨다. 단점 릴레이션의 분해로 인해 릴레이션 간의 JOIN 연산이 많아진다. 질의에 대한 응답 시간이 느려질 수 있다. JOIN이 많이 발생하여 성능 저하가 나타나면 반정규화(.. 2023. 1. 2.
B-Tree B-Tree 탐색 성능을 높이기 위해 균형 있게 높이를 유지하는 Balanced Tree 의 일종으로, 모든 leaf node(자식X) 가 같은 level로 유지되도록 자동으로 밸런스를 맞춰줌 자식 node 의 개수가 2개 이상이며 node 내의 key 가 1개 이상일 수 있음 node 의 자식 수 중 최댓값을 K 라고 하면, 해당 B-Tree 를 K차 B-Tree 라고도 함 B-Tree 의 조건 1. 노드(node) 에는 2개 이상의 데이터(key) 가 들어갈 수 있으며 항상 정렬된 상태로 저장된다. 2. 내부 노드는 M/2 ~ M 개의 자식을 가질 수 있고 최대 M 개의 자식을 가질 수 있는 B-Tree 를 M차 B-Tree라고 한다. 3. 특정 노드의 데이터(key) 가 K 개라면, 자식 노드의 개.. 2022. 12. 25.
Hash / Hash Table Hash 데이터를 효율적으로 관리하기 위해 임의의 크기를 가진 데이터(key)를 고정된 크기의 데이터(value)로 변화시켜 저장하는 것 키에 대한 Hash 값을 사용하여 값을 저장하고 키-값 쌍의 개수에 따라 동적으로 크기가 증가하는 연괸배열 키에 대한 Hash 값을 구하는 과정을 Hashing 이라고 하며 이때 사용하는 알고리즘을 해시함수 라고 함 Hash 값 자체를 index 로 사용하기 때문에 평균 시간복잡도가 O(1)로 매우 빠름 해시함수 키에 대한 Hash 값을 만드는 함수 계산이 단순하고 키값에 대해 중복이 없이 해시값을 고르게 만들어 내는 함수가 좋음 충돌이 일어나지 않을수록 좋음 나눗셈법(Division Method)과 곱셈법(Multiplication Method)이 대표적 Hash T.. 2022. 12. 25.
결합 인덱스(Composite Index) 결합 인덱스(Composite Index) 인덱스 생성 시 두 개 이상의 칼럼을 합쳐서 만들어진 인덱스를 말한다. 복수의 컬럼으로 묶었을 때 데이터 분포도가 좋아지는 경우나 Where 절에서 AND 조건에 많이 사용되는 칼럼들로 결합 인덱스를 구성한다. 결합 인덱스에서 컬럼을 선택하는 기준 Where 절에서 and 조건으로 자주 결합되어 사용되며 각각의 분포도보다 두 개 이상의 컬럼이 결합될 때 분포도가 좋아지는 칼럼들 다른 테이블과 조인의 연결고리로 자주 사용되는 칼럼들 order by 에서 자주 사용되는 칼럼들 하나 이상의 키 칼럼 조건으로 같은 테이블의 칼럼들이 자주 조회될 때 결합 인덱스의 컬럼 순서 결정 칼럼의 순서를 잘못 배정하면 결합 인덱스의 발동 확률이 낮아짐 쿼리문 작성 시 결합 인덱스를.. 2022. 12. 4.