해싱(Hashing)이란?
: 키 값으로부터 레코드가 저장되어 주소를 직접 계산하여 산출된 주소로 바로 접근하는 방법
키 주소 변환 방법이라고도 한다.
(ex. 키값을 7로 나눈 나머지 값을 주소로 한다고 하면,)
키값 4 7 11 9 81 64
주소 4 0 4 2 4 0 라는 주소값이 나온다
* 위의 값에서 키값이 9인 값을 검색시 바로 9값을 7로 나누어 주소인 2를 찾으면 되기 때문에 검색 속도가 빠르다.
하지만 키값 4, 11, 81과 같이 주소가 충돌(Collision)이 일어나는 경우가 많다.
4(4, 11, 81)와 같이 같은 주소를 가진 키의 집합을 동의어라 한다.
주소가 일정하지 않아 규칙이 없이 저장되므로 저장 효율이 좋지 않다. (빈공간이 많이 생김)
- 충돌(Collision) : 레코드를 삽입할 때 2개의 상이한 레코드가 똑같은 주소로 해싱되는 것을 의미
- 동의어(Synonym) : 해싱 함수의 값이 같은 키들의 집합
: 키 값으로부터 레코드가 저장되어 주소를 직접 계산하여 산출된 주소로 바로 접근하는 방법
키 주소 변환 방법이라고도 한다.
(ex. 키값을 7로 나눈 나머지 값을 주소로 한다고 하면,)
키값 4 7 11 9 81 64
주소 4 0 4 2 4 0 라는 주소값이 나온다
* 위의 값에서 키값이 9인 값을 검색시 바로 9값을 7로 나누어 주소인 2를 찾으면 되기 때문에 검색 속도가 빠르다.
하지만 키값 4, 11, 81과 같이 주소가 충돌(Collision)이 일어나는 경우가 많다.
4(4, 11, 81)와 같이 같은 주소를 가진 키의 집합을 동의어라 한다.
주소가 일정하지 않아 규칙이 없이 저장되므로 저장 효율이 좋지 않다. (빈공간이 많이 생김)
- 충돌(Collision) : 레코드를 삽입할 때 2개의 상이한 레코드가 똑같은 주소로 해싱되는 것을 의미
- 동의어(Synonym) : 해싱 함수의 값이 같은 키들의 집합