본문 바로가기
728x90
반응형

2019/0446

SQL 데이터 조작문 DML 데이터 검색 - 기본 구조 SELECT 열_리스트 FROM 테이블_리스트 WHERE 조건; EX) SELECT Sname, Sno FROM STUDENT WHERE Dept = '컴퓨터'; 결과는 똑같은 쿼리문이 있다. SELECT STUDENT.Sname, STUDENT.Sno FROM STUDENT WHERE STUDENT.Dept = '컴퓨터'; 폐쇄 시스템(closed system) 테이블 처리 결과가 또 다시 테이블이 되는 시스템 중첩 질의문(nested query)을 구성할 수 있는 이론적 기초 SQL과 이론적 relational model의 차이점 - SQL의 테이블 한 테이블 내에 똑같은 레코드(행) 중복 가능(기본키가 없어도 되고 그래서 중복이 허용) 기본 키를 반드시 가져야 하는.. 2019. 4. 19.
해시, 해시테이블 해쉬란? 해쉬는 임의의 크기를 가진 데이터를 고정된 크기로 변환시키는 것 해시 함수란? 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 이 때 매핑 전 원래 데이터의 값을 키(key), 매핑 후 데이터의 값을 해시값(hash value), 매핑 하는 과정 자체를 해싱(hashing) 해쉬알고리즘? 해쉬를 하는 방법에 대해 절차적으로 명세 해시 테이블이란? 데이터가 해시 함수를 거쳐 분류된 이후 그 정보가 저장되는 테이블 해시 충돌(collision) 해시함수는 해쉬값의 개수보다 대개 많은 키값을 해쉬값으로 변화하기 때문에 해시함수가 서로 다른 두 개의 키에 대해 동일한 해시값을 내는 해시 충돌이 발생할 수 있다. 해시테이블의 장점 적은 리소스로 많은 데이터를 .. 2019. 4. 18.
정렬 알고리즘 정렬 알고리즘이란? n개의 숫자가 입력으로 주어졌을 때, 이를 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘 정렬이 일어나는 장소에 따라 내부정렬(internal sorting) 데이터의 크기가 주 기억장소 용량보다 적을 경우 기억장소를 활용하여 정렬하는 방법 - 버블정렬, 삽입정렬, 선택정렬, 퀵정렬, 쉘정렬 힙정렬 외부정렬(external sorting) 데이터의 크기가 주기억장소의 용량보다 클 경우 외부 기억장치를 사용하여 정렬하는 방법 - 머지정렬 선택정렬(Selection sort) 현재 위치에 들어갈 값을 찾아 정렬하는 배열 정렬 되지 않은 인덱스의 맨 앞에서 부터, 이를 포함한 그 이후의 배열값 중 가장 작은 값을 찾는다. 가장 작은 값을 찾으면, 그 값을 현재 인덱스의 값과 바꿔준.. 2019. 4. 18.
자료구조와 알고리즘 자료구조란? 프로그램이란 데이터를 표현 알고리즘이란? 표현된 데이터를 처리 알고리즘을 평가하는 두 가지 요소 - 시간 복잡도 - 공간 복잡도 시간 복잡도의 평가 방법 - 중심이 되는 특정 연산의 횟수를 세어서 평가를 한다. - 데이터의 수에 대한 연산횟수의 함수 T(n)을 구한다. O(1) - 상수 시간 알고리즘이 문제를 해결하는데 오직 한 단계만 거친다. O(log n) - 로그 시간 문제를 해결하는데 필요한 단계들이 연산마다 특정 요인에 의해 줄어든다. O(n) - 직선적 시간 문제를 해결하기 위한 단계의 수와 입력값 n이 1:1 관계를 가진다. O(n^2) - 2차 시간 문제를 해결하기 위한 단계의 수는 입력값 n의 제곱이다. O(C^n) - 지수 시간 문제를 해결하기 위한 단계의 수는 주어진 상수.. 2019. 4. 18.
데드락 교착상태(DeadLock) 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 p1과 p2가 리소스 A,B 둘다를 얻어야 한다고 가정할 때, t1에 p1이 리소스를 A를 얻고, p2가 리소스 B를 얻었다면, t2때 p1은 리소스 B를, p2는 리소스 A를 기다리게 된다. 하지만 서로 원하는 리소스가 상대방에게 할당되어 있기 때문에 두 프로세스는 무한정 기다리게 되고, 이 상태를 데드락 상태라고 한다. 데드락 발생 조건 4가지 모두 성립할 때 발생 상호 배제(Mutual exclusion) 자원은 한 번에 한 프로세스 만이 사용할 수 있어야 한다. 점유 대기(Hold and Wait) 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스.. 2019. 4. 17.
동기화(Synchronization) 프로세스 동기화란? 프로세스들이 공유 자원을 사용할 때 일련의 규칙을 지키도록 하는 것 상호 협력하는 다수의 프로세스들이 공유 자원 혹은 데이터를 사용하는 경우, 경쟁 상태(Race Condition)으로 인해 그 공유 자원을 신뢰할 수 없게 된다. 경쟁 조건이란? 여러 프로세스가 공유 데이터를 동시에 접근할 때 공유 데이터에 대한 접근 순서에 따라 실행 결과가 달라지는 상황 임계 구역(Critical section) 둘 이상의 프로세스 혹은 쓰레드가 공유하는 자원이지만 동시에 둘 이상의 프로세스가 접근 할 수는 없고 특정 시간에 오직 하나의 프로세스만 접근 가능한 코드 영역 EX) 은행 계좌 은행 계좌는 입금과 출금 동기화가 올바로 이루어져야 은행 시스템을 신뢰할 수 있다. 입금 프로세스가 처리되고 있.. 2019. 4. 17.
쓰레드(Threads) 프로그램이란? 어떤 작업을 위해 실행 할 수 있는 파일 프로세스란? 실행 중인 프로그램 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. 쓰레드란? 프로세스 내에서 실행되는 흐름의 단위 프로세스의 특정한 수행 경로 프로세스가 할당받은 자원을 이용하는 실행의 단위 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code,.. 2019. 4. 17.
728x90
반응형