충돌 해결의 종류 및 특징 20024345 최현경.

Slides:



Advertisements
Similar presentations
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
Advertisements

1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Hashing 함수의 종류 및 특징 컴퓨터 과학과 심형광. I N D E X 1. Hashing 함수 2. Hashing 함수의 종류 3. 참조 자료.
컴퓨터와 인터넷.
2.6 탐색(Search) 1. 순차검색 (Sequential Search, Linear Search)
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
제14장 동적 메모리.
연결리스트(linked list).
컴퓨터 프로그래밍 기초 [Final] 기말고사
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
쉽게 배우는 알고리즘 6장. 해시 테이블Hash Table.
Windows Server 장. 사고를 대비한 데이터 백업.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
ARP의 실험 발표자 : 이직수
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
8장 직접 화일.
9.1 해싱의 정의 및 필요성 9.2 정적 해싱(Static Hashing) 9.3 동적 해싱
07. 디바이스 드라이버의 초기화와 종료 김진홍
Dynamic Memory and Linked List
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
타이머카운터 사용법 휴먼네트웍스 기술연구소
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
PySpark Review 박영택.
2.3 제한 조건을 가진 자료구조 1. 스택(STACK) 1) 스택의 개념 - 삽입과 제거 작업이 리스트의 한쪽 끝에서만 수행
쉽게 배우는 알고리즘 6장. 해시 테이블Hash Table
어서와 C언어는 처음이지 제14장.
Chap 6.Assembler 유건우.
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
메모리 관리 & 동적 할당.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
뇌를 자극하는 Windows Server 2012 R2
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
CHAP 11 : 해싱.
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
제 6 장 해시테이블.
7장. 해시 테이블Hash Table.
해싱 이 현 직
ARM Development Suite v1.2
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
객체기반 SW설계 팀활동지 4.
Canary value 스택 가드(Stack Guard).
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
데이터 동적 할당 Collection class.
1과목 데이터베이스 강사 이 민 욱.
자료구조론 12장 검색(search).
9장 파일시스템(File System) 박동근.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
AT MEGA 128 기초와 응용 I 기본적인 구조.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
Summary of Pointers and Arrays
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
 6장. SQL 쿼리.
CODE INJECTION 시스템B 김한슬.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
CHAP 11:해싱 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
6 객체.
ARP.
Presentation transcript:

충돌 해결의 종류 및 특징 20024345 최현경

충돌해결전략(collision resolution strategy) 완전해시(perfect hashing) : 한 개의 데이터 영역에 한 개의 키만이 대입 ->(일반적) 구현불가능 버킷 크기 크게 -> 메모리 용량 낭비 Open addressing(개방주소법) : 오버플로우가 일어났을 때 다른 데이터주소로 다시 해시 시키는 방법(반복 수행) Closed addressing(폐쇄주소법,체인법) : 같은 데이터 주소 내에서 끝까지 해결을 보는 방법

개방주소법(Open Addressing)의 장점 단순 포인터 미사용으로 속도 면에서 큰 이득(체인법에서는 사용) 별도의 데이터 스트럭쳐 불필요(ex, linked list)

Linear probing(선형 검색법)(1/2) 충돌 해결하는 가장 간단한 방법 충돌시 새 레코드키의 저장 기억공간을 찾기 위해 충돌이 일어난 곳에서부터 차례대로 검색 -> 첫번째 빈 영역에 키 저장(1차원 배열 형태) 빈공간 존재하지 않으면 처음 번지로 돌아감(원형탐색) 환치 발생(단점) 해시 테이블 구조가 간단(장점)

Linear probing(선형 검색법)(2/2) 89,18,49,58,69를 일의자리의 숫자만을 취하는 해시함수 사용

Quadratic Probing(2차 검색법)(1/2) 제1밀집(primary clustering:테이블이 상대적으로 비어있어도 한곳에 몰려있는 현상)를 제거하는 방법 원래 주소로부터 다음 주소를 결정하는 거리가 1,4,9,16,... 의 떨어진 거리만큼 차례대로 검색. 테이블의 크기가 소수여야 함(테이블의 반 정도의 영역만이 탐색가능), 아닐 경우 탐색영역 현저히 감소 Ex, if table size = 16, 단지 처음 충돌 일어난 장소에서부터 1,4,9번째만이 탐색에 사용됨. Secondary clustering 발생(단점) 같은 위치로 해시된 키들은 그 이후에 탐색하는 위치가 같음을 의미

Quadratic Probing(2/2) Using Quadratic Probing

무작위 검색법(Random probing) 충돌을 유발한 키의 저장공간을 찾을 때까지 난수 계산 프로그램을 실행-> 해시테이블의 홈 주소를 다음 후속 주소로 택함.

이중해싱(Double Hashing) 첫번째 해싱함수의 결과에 두번째의 해싱함수를 적용시킴. A0=h1(키) A1=A0+h2(키) mod 파일의 크기 재해싱된 주소는 메인 파일의 주소(또는 오버플로우 구역)가 될 수 있다 주의:적재인자(load factor)가 크다(거의 80%) 이중해싱이 선형조사보다 낫다

폐쇄 주소법(closed probing) 체인법이라고도 함(Chaning) 같은 해시값을 갖는 모든 레코드를 리스트로 만들어 관리 장점 충돌을 비교적 쉽게 다룰수 있음 자신만의 linked list를 가지고 있어 secondary clustering이라 불리는 데이터의 치우침 현상방지 데이터 영역의 동적 할당

해시 체이닝(Hash Chanining) 해시 함수에 의해 같은 기억공간에 할당되어 충돌이 발생한 레코드를 연결 리스트로 연결하는 방법 테이블 : 포인터 배열로 만듦 각버켓에 할당되는 레코드들 : 체인으로 연결. 해시테이블에서의 삽입,삭제 연산 용이 충돌횟수 감소 시키지 못하나 다른 방법에 의해 해시테이블을 검색 할때 발생소요시간 감소 가능. 구조가 복잡, 기억장소 소모량이 많다(단점)

Chanining with Coalescing Lists(동거자) 대개 버킷과 함께 사용 한 버킷에서 오버플로우가 일어나면 다음의 빈 버킷을 찾아 그곳에 오버플로우된 레코드를 넣음 그쪽과 원래 해시된 버킷을 포인터로 연결. Load factor가 증가할수록 검색시간도 증가

Chanining with Separate Overflow Area (독립 오버플로 구역) 오버플로우된 레코드들을 별도의 오버플로우 지역에 저장하는 방법 데이터 추가삭제가 빈번한 경우 데이터 처리 간단, 성능 좋음. But 오버플로 지역이 prime data area와 다른 실린더에 존재하는 경우에는 검색시간이 급속히 증가 재배치시 부하 줄일수 있음 체계적이면서 쉽게 파일 확장 가능

Using buckets 버킷의 크기결정 : 시스템의 특성에 의존(버퍼크기, 디스크의 섹터와 트랙의 용량, 하드웨어의 액세스 시간 등) (일반적으로)디스크로부터 한번에 읽어들일 수 있는 클러스터 단위만큼. 장점 : 평균 검색횟수 줄임 단점 : 해시함수가 적절하지 못할 경우 데이터가 저장이 되지 않은 경우 발생(메모리 낭비) 버킷에 따라 데잍가 가득차는 경우와 비는 경우의 불균형을 초래할 수 있음