반응형

프로그래밍 기술 604

[데이터베이스]검색 알고리즘

검색 알고리즘 순차 검색(Sequential Serach) 순차적으로 비교하면서 검색하는 알고리즘으로 선형 검색 방법입니다. 구현은 쉽지만 성능이 나쁩니다. 수행 속도는 O(N) 이진 검색(Binary Search) 제어 검색 방법으로 정렬 상태에서만 검색할 수 있습니다. 키와 가운데 요소와 비교하여 키가 크면 뒤쪽 배열에서 재귀적으로, 작으면 앞쪽 배열에서 재귀적으로 검색합니다. 탐색 속도가 좋습니다. 수행 속도는 O(logN) 해시(Hash) 알고리즘 해시 테이블(Hash Table)에 해시 함수(Hash Function)을 이용하여 자료를 저장하거나 검색하는 자료구조 및 알고리즘 해시 함수에 의해 자료를 저장할 위치나 저정한 위치를 계산하는 것을 해싱(Hashing)이라 부른다. 해싱(Hashing..

[데이터베이스] 내부정렬

내부정렬 버블 정렬(Bubble Sort) 정렬 범위를 좁혀나가면서 정렬합니다. 인접한 원소끼리 크기를 비교하여 크기에 따라 교환합니다. BubbleSort(Arr:배열, n:원소 개수) Loop(i:= n->1) //i를 n로 초기화하여 점차 1씩 감소시키면서 1까지 반복 Loop(j:=1->i) //j를 1로 초기화하여 점차 1씩 증가하면서 i까지 반복 IF Arr[j-1] > Arr[j] Then //Arr[j-1] 값이 Arr[j]보다 크면 Swap(Arr[j-1], Arr[j]) //Arr[j-1]과 Arr[j]를 교환 선택 정렬(Selection Sort) 정렬 범위를 좁혀나가면서 정렬합니다. 범위 내에서 제일 큰 값(혹은 제일 작은 값)을 찾아 맨 뒤(혹은 맨 앞)의 요소와 교환합니다. Se..

[데이터베이스] 알고리즘

알고리즘 알고리즘 문제를 해결하기 위한 논리 데이터베이스에서 다루는 주요 알고리즘 정렬 알고리즘: 레코드를 특정 키 항목을 배치하는 알고리즘 검색 알고리즘: 기억 공간에 보관한 데이터 중에 원하는 레코드를 찾는 알고리즘 정렬 방식 내부 정렬: 주기억장치에서 정렬하는 방식 버블 정렬, 선택 정렬, 삽입 정렬, 쉘 정렬, 퀵 정렬, 힙 정렬, 2-Way 병합 정렬, 기수 정렬 외부 정렬: 보조기억장치에서 정렬하는 방식 균형 정렬, 폭포 정렬, 다상 정렬, 오실레이팅 정렬 정렬 알고리즘 선택 시 고려 사항 데이터의 양, 초기 데이터의 배열 상태, 키 값들의 분포 상태, 소요 시간, 작업시간 검색 방식 선형 검색: 순차적으로 검색하는 방식 제어 검색: 비교할 대상을 선택하여 비교한 후 다음 비교할 대상을 선택하..

[데이터베이스] 그래프

그래프 그래프 정점(Vertex)와 간선(Edge)의 입합 트리는 사이클이 없는 그래프 차수: 하나의 정점과 연결한 간선의 수 진입차수(Indegree): 한 정점에 도착하는 간선의 수 진출차수(Outdegree): 한 정점에서 출발하는 간선의 수 경로(Path): 한 정점에서 다른 정점으로 가는 간선 집합 단순 경로(Simple Path): 같은 간선을 지나가지 않는 경로 사이클(Cycle): 시작과 끝이 같은 경로 최소신장트리(Minimal Spanning Tree) 그래프에서 정점과 정점사이의 경로를 최소 비용으로 구성한 트리 간선 작업(AOE, Activity On Edge) 네트워크 프로젝트를 수행하기 위한 작업 순서를 나타낸 방향있는 그래프 *자료구조와 알고리즘은 게시판으로 별도로 다루고 있습..

[데이터베이스] 트리

트리 트리(Tree): 방향성 있고 사이클이 없고 고립 영역이 없는 그래프 정점(Vertext or Node)과 간선(Edge or Branch)으로 표현할 수 있음 정점의 개수가 N이면 간선의 수는 N-1 트리의 용어 루트(Root): 트리 계층의 맨 위에 있는 노드, 부모가 없는 노드 레벨(Level): Root를 1로 출발해서 자신에 도달하는 데 걸리는 거리 높이(Height): 트리의 가장 높은 Level, 깊이(Depth)라고도 부름 가지(Branch): 부모와 자식간의 경로(간선) 조상(Ancestors): 자신에게 오기 위한 경로에 있는 모든 노드들 부모(Parent): Level N인 노드와 연결된 Level N-1인 노드 자식(Son): Level N인 노드와 연결된 Level N_+1인..

[데이터베이스] 스택과 큐, 데크

스택과 큐, 데크 스택(Stack) 가장 최근에 보관한 자료를 먼저 꺼내는 LIFO(Last In First Out)방식의 자료 구조이다. 리스트의 한쪽으로 삽입과 삭제 연산을 수행한다. 스택의 특징 가장 최근에 자료를 보관한 위치를 기억하며 Top이라 부른다. 자료를 보관하는 연산을 Push라고 부른다. 자료를 꺼내는 연산을 Pop이라 부른다. Push 연산 IF Top>= MAX Then //꽉 차면 Overflow //버퍼 오버플로우 Else //꽉 차지 않을 때 Top = Top +1 //Top 위치를 1 증가 Buffer[Top] = data //버퍼의 Top 위치에 data 보관 Pop 연산 IF Top=0 Then //비었으면 Underflow //버퍼 언더플로우 Else data = Buf..

[데이터 베이스] 배열과 연결리스트

[데이터 베이스] 배열과 연결리스트 배열 배열을 다른 이름으로 선형리스트라고 부른다. 연속적인 메모리에 저장하는 리스트, 순차 자료구조이다. 배열을 이용하여 스택, 큐, 데크를 구현할 수 있다. 배열의 특징 가장 간단하다. 접근 속도가 빠르다. 자료를 보관할 때 (n+1)/2개의 자료를 이동해야 한다. 자료를 삭제할 때 (n-1)/2개의 자료를 이동해야 한다. 자료를 보관하기 위한 메모리 외에 다른 메모리를 할당하지 않아 메모리 효율이 1이다. 연결리스트 노드들의 선형 집합, 순차 자료구조가 아니다. 노드는 자료와 링크로 구성 링크는 다른 노드의 위치 정보 연결리스트의 특징 배열에 비해 삽입, 삭제 연산이 간단하다. 자료를 보관하는 메모리 외에 링크 부분이 필요하므로 메모리 효율이 배열보다 떨어진다. 링..

[데이터베이스] 자료구조

자료구조 자료구조 자료를 보관하는 구조로 자료의 표현뿐만 아니라 관련 연산을 포함한 개념 자료구조의 종류 선형 자료구조: 하나의 선의 형태로 자료를 보관한 구조를 표현할 수 있음 비선형 자료구조: 하나의 선의 형태로 자료를 보관한 구조를 표현할 수 없음 선형 자료구조의 종류 배열 : 연속적인 프로그램 메모리에 데이터를 관리, 순차적 선형 자료구조 스택: 가장 최근에 보관한 것을 먼저 꺼내는 LIFO(Last In First Out) 방식의 버퍼 큐 :가장 먼저 보관한 것을 먼저 꺼내는 FIFO(First In First Out)방식의 버퍼 데크: 맨 앞이나 뒤로 자료를 저장하거나 꺼낼 수 있는 버퍼 리스트: 노드들의 선형 집합, 노드는 데이터와 링크의 조합, 링크는 다른 노드의 위치 정보 *연결 리스트는..

[데이터베이스] 데이터베이스 사용자

데이터베이스 사용자 데이터베이스 사용자 데이터베이스를 사용하고 관리 및 운영하는 다양한 형태의 사람이나 그룹 DBA, 응용 프로그래머, 일반 사용자로 구분 DBA(DataBase Administrator) 데이터베이스 구축 DBMS(데이터베이스 관리 시스템) 관리 스키마를 정의 저장 구조와 액세스 방법을 선정 보안 및 권한 부여 규칙, 데이터 유효성 검사 방법을 수립 사용자 요구 정보 결정 및 효율적 관리 *DBA는 DBMS를 관리하는 것이지 사용자 통제 및 감시는 DBA의 역할이 아닙니다. 응용 프로그래머 데이터 조작어(DML)를 사용하여 데이터베이스에 데이터를 삽입, 삭제, 검색, 변경 일반 사용자 응용 프로그램을 사용하여 데이터베이스에 접근너와 나의 연결고리 "공감"

[데이터베이스] 스키마(Schema)

스키마(Schema) 스키마 데이터베이스 구조와 제약 조건을 기술한 메타데이터(Meta Data)의 집합 데이터 사전에 저장 시간에 따라 불변 스키마의 구성 개체(Entity) : 레코드 속성(Attribute) : 개체의 성질을 나타내는 항목(field) 관계(Relation) : 개체와 개체 간의 관계와 개체와 속성 간의 관계 스키마의 종류 외부 스키마(External Schema) 개념 스키마(Conceptual Schema) 내부 스키마(Internal Schema) 외부 스키마(External Schema) 서브 스키마 혹은 사용자 뷰라고도 부름 사용자나 응용 프로그래머가 데이터베이스를 바라보는 관점 개념 스키마(Conceptual Schema) 단순 스키마 혹은 전체적인 뷰라고 부름 조직이나 ..

반응형