본문 바로가기

분류 전체보기26

데이터의 검색(query) - 1 기초편 SQL Query의 결과는 relation형태로 나온다. 기본적인 형식은 다음과 같다 select A1,A2,....,An//이 속성들을 추출 from r1,r2,...,rn//이 table에서 추출 where ~~//이 조건에 맞는 튜플을 추출 from부에 명시된 table들에서 where조건에 맞는 tuple들의 select의 속성들을 결과로 도출한다. select부 select부를 통해 추출하고자 하는 속성을 결정할 수 있다. all, distinct SQL은 기본적으로 중복을 제거하지 않는다. 중복을 명시하고자 하는 경우 all을 제거하고자 하는 경우 distinct를 추가한다. select all A1,...,An select distinct A1,...,An * 모든 속성을 보고싶을 경우 '*.. 2022. 8. 1.
테이블 생성 및 업데이트 테이블 생성 create table r (//r: 테이블명 A1 D1,//A: 속성명 A2 D2,//D: 도메인 A3 D3, Ak Dk, Integrity-constraint1,//제약조건들 Integrity-constraint2, Integrity-constraintk ) 제약조건으로는 다음과 같은 사항들을 넣을 수 있다. primary key (A1, A2, ..., An) foreign key (A1, A2, ..., An) reference r A1 not null 테이블 업데이트 1. 튜플 삽입 insert into r values ('value1','value2',...,'value3'); 테이블 r 에 ('value1','value2',...,'value3')을 갖는 튜플을 추가 2. 튜플 .. 2022. 8. 1.
도시의 본질적 비인간성 자연을 누비는 거룩하고 아름다운 존재 엔키두는 생전 처음보는 여인 샤마트의 나체에 넋이 나가 일곱 날 밤을 샤마트와 보낸다. 샤마트와의 황홀한 날들 이후에 자유로운 황야로 돌아가고자 하는 엔키두는 자연을 호령했던 자신의 손아귀가 헐궈워짐을 느꼈다. 짐승들은 그를 피하고, 처음으로 느끼는 쓰라린 외로움이 그를 덮쳤다. 엔키두는 샤마트에게 돌아갔고, 샤마트는 엔키두에게 자신의 고향 우르크에 돌아가자고 설득한다. 엔키두는 덥수룩한 몸의 털을 깎고, 살갗에 기름을 바르고, 값비싼 옷으로 발가벗은 몸을 가린 후, 우르크를 향해 떠난다. 그는 성과 사치의 유혹에 이끌린 나머지 자연의 기질과 자유를 저버리고 우르크로 들어간다. 자연에 엔키두라는 패자가 있었듯이, 우르크에는 길가메쉬라는 패자가 있었다. 둘 간에 서열다.. 2022. 7. 14.
Binary Search Tree binary search tree는 해당 노드보다 큰 값을 갖는 노드는 자신의 오른쪽 노드에, 보다 작은 값을 갖는 노드는 자신의 왼쪽 노드에 배치되는 binary tree이다. 왼쪽 자식 key) inorder_traversal(root->right) 다음은 보다 복잡하지만 재귀를 사용하지 않는 Morris Traversal이라는 inorder traversal 기법이다. 다음 기법은 threaded tree의 기법을 응용한다. morris_traversal(root) if root==NULL return current_node=root while current_node != NULL if current_node->left==NULL print(current_node->key) current_node=.. 2022. 7. 8.
Selection Problem, 중앙값과 순서통계량 i 번째 순서통계량이란 n개의 원소집합 중 i번째로 작은 원소를 말한다. 논의를 간단하게 하기 위해 배열의 원소 개수가 짝수일 경우 (n+1)/2의 floor를 중앙값으로 간주하겠다. 또한, 모든 배열의 원소들이 서로 다른 집합을 가정한다. 그러나 같은 값을 포함하는 집합으로의 확장 역시 가능할 것이다. 선택문제는 정렬을 사용하면 O(n log n)의 시간에 풀 수 있다. 그러나 정렬하지 않고 선택만을 할 경우 O(n)시간에 풀 수도 있다. 1. 최소값과 최대값 모두가 짐작할 수 있는 가장 간단한 방법은 처음부터 끝까지 탐색을 하며 최대/최소값을 찾는 것이다. 이는 n-1번의 비교가 필요하며, 이 이하로 적게 비교는 불가능하다. minimum(A) min=A[1] for i=2 to A.length if.. 2022. 7. 5.
Counting sort 지금까지 살펴본 알고리즘들은 원소들 간의 비교를 통해 정렬작업을 수행한다. 어떤 비교 정렬 알고리즘이라도 원소 n개를 정렬할 때, 최악의 경우 O(n log n)이상의 수행속도를 갖을 수 없다. 그러나, counting sort는 비교 알고리즘이 아니기 때문에 O(n)에 수행이 가능하다. counting sort는 두 가지를 전제한다. 1) n개의 입력원소 모두가 0~k 사이의 정수이다. 2) k=O(n)이다. 즉 k가 n에 비해 압도적으로 크지 않다. counting sort는 각 입력원소 x에 대해 x보다 작은 원소의 갯수를 셈으로써, 출력배열에서 원소 x의 위치를 정해가며 정렬한다. counting_sort(ary,sorted_ary,k) //count를 위한 ary 초기화 count_ary[0~k.. 2022. 7. 5.