독학사

    C/C++ 언어 기본 라이브러리

    헤더 파일 기능 관련 함수 stdio.h 표준 입출력 printf(), scanf(), getchar(), fopen(), fseek(), ... string.h 메모리와 문자열의 처리 strcat(), strcmp(), strcpy(), strlen(), ... ctype.h 문자 검사 및 변환 isalnum(), isalpha(), isgraph(), tolower(), ... math.h 삼각함수, 지수 절대값 함수 등 수학 함수 sin(), cos(), tan(), log(), exp(), fmod(), sqrt(), abs(), ... stdlib.h 메모리 동적 할당, 가상 난수 발생, 문자열 변환 malloc(),free(), rand(), strtod(), atof(), ... malloc..

    프로그래밍 언어의 역사와 특징

    평가영역 C 언어의 역사와 특징 C++ 언어의 역사와 특징 JAVA 언어의 역사와 특징 C 언어의 역사와 특징 역사 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 유닉스에 사용하기 위하여 제작 시스템 프로그래밍에 매우 적합하지만 응용 프로그래밍에도 사용 특징 뛰어난 이식성 모든 컴퓨터에서 동일하게 동작하는 표준 라이브러리를 제공하기 때문 저급언어 특징을 가진 고급언어 함수의 활용이 가능 다양한 연산자 및 간결수 a=b=c=0 과 같이 간결하게 표현 가능 포인터를 이용한 메모리 관리 메모리 주소를 직접 제어할 수 있으므로 효율적인 메모리 관리가능 C++ 언어의 역사와 특징 역사 시간이 흘러 프로그램의 규모가 커지자 C언어에 객체지향 개념을 추가(1983~1985) 특징 C와의 호환성을 제공하고 문법체계..

    객체지향 질의

    평가영역 상세 평가내용 없음 OQL(Object Query Language) OQL은 ODMG(Object Database Management Group)에서 제안한 ODMG-93의 표준 질의어 OQL은 SQL의 기능을 대부분 지원하면서 객체지향 질의 기능을 추가했다.(객체지향 DB의 SQL) OQL의 특징 ODMG 객체 모델을 지원하는 선언적 질의 언어이다. SQL-92의 SELECT문 기능을 모두지원 SQL-92에 비해 경로식, 메소드 호출, 객체생성, 다형성 및 연산자의 조합 등을 추가로 지원

    백업과 미디어 회복

    평가영역 상세 평가내용 없음 백업 주기적으로 DB내용 전체를 안전한 장치로 덤프(dump)시키는것을 말한다. 덤프 작업을 수행하는 중에는 트랜잭션을 실행할 수 없으며, 실행중인 트랜잭션이 없어야 한다. 별도의 안전한 장소로 DB전체를 옮기므로 대용량 데이터 전송이 필요 실행중인 트랜잭션을 처리해야하므로 CPU를 낭비해서 비용이 많이든다. 덤프 절차 메인 메모리에 있는 모든 레코드를 안전 저장소에 출력 변경된 버퍼 블록을 모두 디스크에 출력 DB내용을 안정장치에 복사 로그 레코드를 안전장치에 출력시켜 덤프를 표시 회복 절차 가장 최근의 덤프를 이용해서 디스크에 DB를 적재 로그를 이용하여 덤프이후의 트랜잭션을 재시작(Redo)

    그림자 페이징 기법

    평가영역 상세 평가내용 없음 그림자 페이징 기법 로그를 이용하지 않고 데이터베이스에 대한 페이지 테이블 전체를 교체하는 기법 데이터베이스를 일정 크기의 블록인 페이지 단위로 저장 현재 페이지(주기억장치), 그림자 페이지(하드디스크) 총 2가지를 생성 트랜잭션 중 데이터가 변경되면 현재 페이지만 수정 트랜잭션이 완료되면 그림자 페이지도 수정 그림자 페이징 기법은 Undo 연산이 필요없다.(그림자 페이지를 새로 가져오면 되니까) 장점 로그 레코드를 출력하는 오버헤드가 없고, 디스크 접근 횟수를 줄일 수 있다. 오버헤드, Undo나 Redo연산을 필요로 하지 않기 때문에 회복 속도가 빠르다. 단점 DB페이지 변경때마다 페이지의 물리적 위치가 변하면서 데이터 단편화 발생 현재 페이지 테이블이 새로운 그림자 페이..

    검사시점 회복

    평가영역 상세 평가내용 없음 검사시점 회복 문제가 발생한 DB의 복구를 위해서는 발생 후 안전한 시점을 찾아 이후의 트랜잭션을 복구해야한다. 주기적으로 로그파일과 데이터를 일치시켜놓은 지점을 검사시점(checkpoint)라고 한다. 동시적 검사시점 실행중인 트랜잭션이 하나도 없는 상태(휴식상태)에서 검사시점을 작성 비동시적 검사시점 트랜잭션이 실행중인 상태에서 검사시점을 작성 수행 알고리즘 두개의 빈 Undo-list와 Redo-list를 생성 검사시점 당시에 활동중인 모든 트랜잭션은 Undo-list에 삽입 로그파일을 검색하며 트랜잭션 시작부분을 발견하면 Undo-list에 삽입 로그파일을 검색하다 트랜잭션 Commit로그를 발견하면 트랜잭션을 Redo-list에 넣고 Undo-list에서는 삭제 탐색..

    로그를 이용한 회복

    평가영역 지연 갱신 회복 즉시 갱신 회복 지연 갱신 회복 트랜잭션이 부분 완료될때까지 모든 Output연산을 지연시키고 DB에 대한 변경을 모두 로그에 기록한다. 회복방법은 Redo 프로시저를 사용한다. 회복 시 Undo 연산을 수행할 필요가 없다. Redo: 트랜잭션이 변경한 모든 값을 로그파일에 있는 값으로 재지정한다. 즉시 갱신 회복 트랜잭션 실행중 발생하는 모든 변경점을 DB에 즉시 반영 시킨다. 회복방법은 Undo 프로시저를 사용한다. 장애 발생 시 트랜잭션이 시작하기 전 값으로 데이터를 복원한다. Undo: 트랜잭션이 변경한 모든 값을 로그파일에 있는 값의 역순으로 환원시킨다. Redo든 Undo든 한번 실행한 것이나 여러번 실행한것이나 결과과 같다.

    데이터베이스 로그

    평가영역 상세 평가영역 없음 로그 파일의 구성 트랜잭션 식별자 로그 레코드의 유형 변경된 데이터의 식별자 데이터 갱신 이전 값 데이터 갱신 이후 값 로그 데이터 관리를 위한 정보 로그의 저장 로그는 로그 버퍼에 저장된다. 동시적 로그 기록법: 로그 버퍼에 기록할 때 마다 로그파일도 생성하는 방법 가장 최근의 트랜잭션까지 복구 가능 로그 파일의 기록이 트랜잭션과 동시에 수행 되므로 트랜잭션의 지연이 발생할 수 있다. 비동시적 로그 기록법: 로그버퍼가 가득 차거나 트랜잭션이 종료될때 로그파일을 생성하는 방법 로그파일에 누락된 트랜잭션은 복구 불가능 트랜잭션이 실행이나 시스템 처리에 있어 오버헤드가 적게 발생한다.

    저장 연산

    평가영역 상세 평가영역 없음 저장 연산 데이터베이스의 저장 연산에는 디스크와 메인 메모리 사이의 블록 이동연산과 프로그램 변수와 데이터베이스 사이의 이동연산이 있다.

    장애와 회복

    평가영역 상세 평가영역 없음 장애유형별 회복방법 트랜잭션 장애: 트랜잭션이 끝까지 수행되지 못하고 중간에 중단되는 경우 트랜잭션이 수행되기 전 로그파일에 갱신 전 값을 기록해 놓는다. 미디어 장애: 하드웨어(하드디스크 등)이 손상을 입어서 발생하는 장애 특정한 시점마다 데이터베이스의 파일을 백업 데이터 베이스 내용을 그대로 다른 미디어에 저장하는 방법(mirroring) 시스템 장애: 정전, 하드웨어 고장 등으로인해 발생하는 장애 통신 장애: 네트워크망 또는 통신에 문제가 생겨 발생하는 장애 회복의 유형 재시작(redo): 아카이브 사본 + 로그 -> 회복된 데이터베이스 가장 최근의 복사본을 가져온 뒤 복사본 이후의 트랜잭션은 로그를 이용하여 재실행 하여 DB 복원 취소(undo): 로그 + 후방향 취소..