1과목 데이터베이스 강사 이 민 욱.

Slides:



Advertisements
Similar presentations
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Advertisements

Hashing 함수의 종류 및 특징 컴퓨터 과학과 심형광. I N D E X 1. Hashing 함수 2. Hashing 함수의 종류 3. 참조 자료.
알고리즘 기본 개념 정렬 알고리즘 탐색 알고리즘 알고리즘 복잡도.
이진 나무 구조 강윤섭 2008년 5월 23일.
2.6 탐색(Search) 1. 순차검색 (Sequential Search, Linear Search)
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
재료수치해석 HW # 박재혁.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
T-tree 엄종진 강원대학교 컴퓨터과학과.
Excel 일차 강사 : 박영민.
4. 순차 화일.
연결리스트(linked list).
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
제 3 장 선형 리스트 3.1 선형 리스트 3.2 연결 리스트 3.3 다항식.
8장 직접 화일.
9.1 해싱의 정의 및 필요성 9.2 정적 해싱(Static Hashing) 9.3 동적 해싱
디지털영상처리 및 실습 대구보건대학 방사선과.
10. 데이터베이스의 저장과 접근.
P150 문제를 프로그래밍 할 것 Source file (헤더파일포함), 실행화면 (학번_이름_1.txt)
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
11.텍스트를 위한 화일.
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
7장 인덱스된 순차 화일.
6장. printf와 scanf 함수에 대한 고찰
Tail-recursive Function, High-order Function
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
11장. 1차원 배열.
11.텍스트를 위한 화일.
인터넷응용프로그래밍 JavaScript(Intro).
CHAP 9: 정렬 순천향대학교 컴퓨터학부 하 상 호.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
Tree & Heap SANGJI University Kwangman Ko
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
해싱 이 현 직
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
1. 2진 시스템.
객체기반 SW설계 팀활동지 4.
Canary value 스택 가드(Stack Guard).
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
알고리즘 알고리즘이란 무엇인가?.
데이터 동적 할당 Collection class.
자료구조론 12장 검색(search).
에어 PHP 입문.
9장 파일시스템(File System) 박동근.
Chapter 1 단위, 물리량, 벡터.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
05. General Linear List – Homework
Chapter 1 단위, 물리량, 벡터.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
6. 데이터베이스의 내부적 운영.
발표자 : 이지연 Programming Systems Lab.
Summary of Pointers and Arrays
7장 연습 문제 풀이 학번 : 이름 :조 재한.
Numerical Analysis Programming using NRs
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
트리 (Logical) Data Structures Linear list Tree Graph Linear structures
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
제 4 장 Record.
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
C++ Espresso 제15장 STL 알고리즘.
7 생성자 함수.
6 객체.
Presentation transcript:

1과목 데이터베이스 강사 이 민 욱

4. 정렬 알고리즘 예 삽입 정렬 20, 19, 14, 16, 18 오름차순으로 삽입 정렬 하시오. pass1 : 19, 20, 14, 16, 18 pass2 : 14, 19, 20, 16, 18 pass3 : 14, 16, 19, 20, 18 pass4 : 14, 16, 18, 19, 20 2) 버블 정렬 10, 7, 8, 3, 5 버블정렬로 정렬 하시오. pass1 : 7, 10, 8, 3, 5 > 7, 8, 10, 3, 5 > 7, 8, 3, 10, 5 > 7, 8, 3, 5,10 pass2 : 7, 8, 3, 5, 10 > 7, 3, 8, 5, 10 > 7, 3, 5, 8, 10 pass3 : 3, 7, 5, 8, 10 > 3, 5, 7, 8, 10 pass4 : 3, 5, 7, 8, 10

3) 선택 정렬 10, 7, 8, 3, 5 선택 정렬 하시오. pass1 : 7, 10, 8, 3, 5 > 7, 10, 8, , 3, 5 > 3, 10, 8, 7, 5 > 3, 10, 8, 7, 5 pass2 : 3, 8, 10, 7, 5 > 3, 7, 10, 8, 5 > 3, 5, 10, 8, 7 pass3 : 3, 5, 8, 10, 7 > 3, 5, 7, 10, 8 pass4 : 3, 5, 7, 8, 10 4) 2-way 합병 정렬 11, 2, 8, 10, 20, 15, 6, 9, 7, 18을 2-way 합병 정렬로 정렬하시오. pass1 : (11,2) (8,10) (20,15) (6,9) (7,18) > (2,11) (8,10) (15,20) (6,9) (7,18) pass2 : ((2,11) (8,10)) ((15,20) (6,9)) (7,18) > (2,8,10,11)(6,9,15,20)(7,18) pass3 : ((2,8,10,11)(6,9,15,20))(7,18) > (2,6,8,9,10,11,15,20) (7, 18) pass4 : ((2,6,8,9,10,11,15,20) (7, 18)) > (2, 6, 7, 8, 9, 10, 11, 15, 18, 20)

검색(search) 1. 선형 검색(Linener search) = 순차 검색(Sequential search) 대상 자료를 순서대로 하나씩 비교해서 원하는 자료를 찾는 검색 방식으로 자료가 정렬되어 있지 않고 대상범위를 알 수 없을 때 사용 2. 제어 검색(Controlled search) 대상 자료 정렬되어 있고 대상 자료에 대한 범위를 알고 있을 때 정렬할 수 있다. ① 이분검색(Binary search) = 이진 검색     대상 범위를 절반씩 축소시키면서 찾고자 하는 값을 대상 자료의 중간 값과 비교하여 원하는 데이터를 검색하는 방식이다. 중간 값 M = ( F + L ) / 2 (F : 처음 값, L : 마지막 값) 사용 예 1~50까지의 숫자 중 15를 찾는데 걸리는 횟수는? M = (1+50)/2 = 25.5 >> 정수 값만 취한다. 25 25는 찾는 값보다 크므로 1~24사이에 찾는 값 존재한다. M = (1+24)/2 = 12.5 >> 정수 값만 취한다. 12 12는 찾는 값보다 작으므로 13~23사이에 찾는 값 존재한다. M = (13+23)/2 = 18 >> 정수 값만 취한다. 18 18은 찾는 값보다 크므로 13~17사이에 찾는 값 존재한다. M = (13+17)/2 = 15 >> 찾는 값을 4번째 비교하여 찾는 값과 일치

② 피보나치 검색(Fibonacci search)     피보나치 수열을 이용하여 검색하는 방식으로 앞에 있는 자료일수록 오버헤드가 심하고 더하기 빼기만 가지고도 검색 가능한 방식이다. ③ 보간 검색(Interpolation search)     데이터가 있음직한 부분을 보간해서 검색하는 방식으로 사전식 검색이라고도 한다.                    3. 블록 검색(Block search) 데이터를 블록을 묶어 구성하고 블록을 결정할 때는 인덱스를 사용하고 해당 블록 내 부에서는 선형 검색을 사용하여 검색하는 방식 4. 이진 트리 검색(Binary tree search) 데이터를 입력되는 순서에 따라 첫 번째 데이터는 근노드, 다음 데이터부터는 근노드와 비교하여 근노드보다 작으면 좌측에 연결하고, 크면 우측에 연결하여 2진트리로 구성한 다음 같은 방식으로 검색하는 방식

해싱(hashing)은 어떤 키 변환에 의하여 원하는 레코드에 직접 접근할 수 있도록 구성하는 것 1)특징 ▪ DAM(직접접근) 파일을 구성할 때 해싱이 사용된다. ▪ 접근 속도는 빠르나 기억공간이 많이 요구됨 ▪ 검색 속도가 가장 빠름 ▪ 삽입, 삭제 작업의 빈도가 많을 때 유리한 방식 2)해싱(hashing) 이용시 고려 사항 ⓛ 오버플로우 처리                   ② 키 변환 속도                     ③ 버킷 크기 3) 해싱에서 사용하는 용어 ① 해싱 함수(hashing function) : 레코드의 키값을 이용해서 레코드를 저장할 주소를 산출해내는 어떠한 수학식 ② 버킷(bucket) : 하나의 주소를 가지면서 한 개 이상의 레코드를 저장할 수 있는 공간 ③ 충돌(collision) : 해싱 함수에 의해서 계산된 홈 주소가 같은 경우에 벌어지는 충돌 현상 ④ 시노님(synonyms) : 같은 홈 주소를 갖는 레코드의 집합(동거자) ⑤ 슬롯(slot) : 슬롯이란 한 개의 레코드를 저장할 수 있는 공간으로 N개의 슬롯이 모여 버킷(bucket)을 형성한다. ⑥ 오버플로우(overflow) 해당 버킷에 더 이상의 레코드 키 값을 기억시킬 수 없어서 넘쳐나는 현상

4)해싱 함수(hashing function)의 종류 ① 제산법(Division method) : 소수로 나누어 그 나머지 값 이용 ② 기수 변환법(Radix conversion method) 다른 기수값으로 변환하여 그 값 이용 ③ 폴딩(접지)법(Folding method) 키값을 임의의 부분으로 나누어 접어서 더한 값을 이용      ④ 무작위법(Random method) : 무작위로 수를 발생시켜 이용 ⑤ 숫자(계수) 분석법(Digit analysis method) :  키 값의 분포 따라 이용 ⑥ 제곱법(Mid-square method):  키값을 제곱하여 결과 값 이용 5)해싱에서 오버플로우 처리 해당 버킷에 더 이상의 레코드를 기억시킬 수 없어서 넘쳐나는 현상으로 다음의 방법으로 해결한다. ① 선형 방식(Linear method) 오버플로우가 발생했을 때 발생한 버킷의 바로 다음 주소 저장 ② 재해싱 방법 여러 개의 해싱 함수를 준비하였다가 충돌 발생시 새로운 해싱 함수를 적용 ③ 체인 방식(Chaining method) 오버플로우가 발생했을 때 빈 버킷에 레코드를 저장하고 링크 리스트로 연결

인덱스(Index) 데이터 레코드를 빠르게 접군하고 검색하기 위해서 구성한 것 1. 인덱스(Index)의 특징 ① 물리적 구조와 관련       ② 물리적 구조의 접근 경로           ③ 빠른 접근 보장 2. M원 검색 트리 1) B- 트리 B- 트리는 균형된 M-원 탐색 트리로 모든 인덱스 값이 실제 데이터를 가리키도록 구성되어 있기 때문에 인덱스 탐색시 중위 순회(inorder)를 해야 하는 트리이다. ① 루트(root)와 리프(leaf)를 제외한 모든 노드는 반 수의 서브 트리를 갖음 ② 모든 리프는 같은 레벨이다. ③ 루트는 리프가 아닌 이상 적어도 두 개의 서브 트리를 갖는다. ④ 리프가 아닌 노드의 키 값의 수는 그 노드의 서브 트리의 수보다 하나 적다. ⑤ 한 노드 안에 있는 키 값은 오름차순 정렬되어 있다. 2) B+-트리 B+-트리는 B-트리의 추가 삭제시 발생하는 노드의 분열과 합병 연산과정을 줄일 수 있는 트리 구조이다. 3) 트라이(Trie) 탐색을 위한 키값을 직접 표현하지 않고 키를 구성하는 문자나 숫자 자체의 순서 에 의해서 키값을 표현하는 구조이다. - 삽입 삭제시 노드 분열과 병합이 없다.

파일구조 1. 파일 구조 결정시 고려 사항 2. 파일 종류의 구분 1) 순차 파일 ① 파일 저장에 사용될 매체의 특성              ② 매체의 액세스 형태 ③ 자료의 처리 주기                           ④ 자료의 갱신 형태          ⑤ 파일 매체에 대한 접근 특성                  ⑥ 자료의 처리 방식 2. 파일 종류의 구분 1) 순차 파일 입력되는 데이터의 논리적인 순서에 따라 물리적으로 연속된 위치에 기록한 파일 ① 기록 밀도가 좋다                            ② 매체 변환이 용이 ③ 액세스 속도가 빠름                         ④ 삽입과 삭제가 불편 2) 색인 순차 파일(ISAM : indexed sequential access method) 인덱스을 통한 랜덤 처리와 데이터의 순차 처리를 병행할 수 있는 파일 ① 인덱스 구역(index area) : 기본 데이터 영역에 대한 색인을 구성하는 부분 트랙 색인(track index) : 가장 작은 단위의 색인 실린더 색인(cylinder index) : 트랙 색인에 대한 색인 마스터 색인(master index) : 실린더 색인에 대한 색인 ② 기본 데이터 구역(prime data area) : 실제 데이터가 기록되는 부분 ③ 오버플로우 구역(overflow area) : 기본 데이터 구역에 기록되지 못하고 넘친 데이터를 기록하는 부분 실린더 오버플로우(cylinder overflow) : 하나의 실린더 색인 범위마다 두는 오버플로우 구역 독립 오버플로우(independent overflow) : 독립된 오버플로우 구역

3) VSAM(Virtual Storage Access method file) 파일 ISAM 파일에서 오버플로우 구역이 없는 파일, 즉 ISAM 파일은 정적인덱스 편성을 하는데 반해 VSAM 파일은 동적 인덱스 편성을 하여 오버플로우 구역을 두지 않고 미리 예비구역(Virtual Storage)을 두어 삽입이 일어나게 되면 예비구역(Virtual Storage)을 사용하는 방식이다.  4) 역파일(invert file)과 멀티 리스트(multi-list file) 파일 ① 역파일은 키 필드의 길이가 일정하지 않아 관리가 용이하지 않다. ② 멀티 리스트 파일은 필드의 길이가 고정 크기이므로 관리가 용이하다. ③ 역파일은 질의 처리에 대한 우수성을 가지며 검색 속도가 빠르다. (5) 직접 편성 파일(DAM) 레코드 내의 키 필드를 해싱 함수에 의해 물리적 저장 장치의 주소로 변환하여 레코드를 기록하는 방식으로 파일 내에서 일정한 순서 없이 임의 처리를 하고자 할 때 사용한다.