※ 선형 리스트 = 연속 리스트 (배열) + 연결 리스트 (포인터) 정렬 삽입 정렬 : 앞 부분이 이미 정렬되어있다고 가정하고, 하나씩 알맞은 위치에 끼워넣기 선택 정렬 : 남아있는 레코드들 중 최솟값을 찾아 차례대로 첫 번째, 두 번째 … 레코드와 위치바꾸기 버블 정렬 : 인접한 두 레코드를 비교해가며 서로 교환하기 쉘 정렬 : 어떤 매개변수로 서브파일을 구성하고, 각 서브파일을 삽입정렬하는 과정을 반복 퀵 정렬 : 키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽 서브 파일에 분해시키는 과정을 반복 힙 정렬 : 전이진 트리를 힙 트리로 변환하여 정렬 2-Way 합병 정렬 : 이미 정렬된 두 파일을 한 개의 파일로 합병하기 기수 정렬 : 큐를 이용하여 자릿수별로 정렬하기
데이터 입 · 출력 구현
논리 데이터 모델 → 물리 데이터 모델 변환 1) 엔티티를 테이블로 변환 논리적 설계 물리적 설계 엔티티 테이블 속성 컬럼 주 식별자 기본키 외부 식별자 외래키 관계 관계 2) 슈퍼타입/서브타입을 테이블로 변환 - 슈퍼타입 기준 테이블 변환 : 서브타입을 슈퍼타입에 통합한 후 변환 - 서브타입 기준 테이블 변환 : 슈퍼타입을 각각의 서브타입에 추가한 후 변환 - 개별타입 기준 테이블 변환 : 슈퍼타입과 서브타입 각각을 변환 3) 속성을 컬럼으로 변환 - 일반 속성 변환 - Primary UID → 기본키로 변환 - Secondary UID → 유니크키로 변환 4) 관계를 외래키로 변환 물리 데이터 모델 품질 검토 물리 데이터 모델 품질 기준 : 정확성 / 완전성 / 준거성 / 최신성 / 일관성 / 활용성..
스토리지란 대용량 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술입니다. 종류는 다음과 같습니다. DAS NAS SAN Direct Attached Storage Network Attached Storage Storage Area Network 전용 케이블로 직접 연결 네트워크를 통해 연결 전용 네트워크를 별도로 구성 - 속도 빠름 - 설치, 운영 쉬움 - 비용 저렴 - 파일 공유 불가능 - 확장성, 유연성 떨어짐 - 이더넷 스위치 이용 - 파일 공유 가능 - 장소에 구애받지 않음 - 확장성, 유연성 우수 - DAS의 빠른 속도 + NAS의 파일 공유 - 파이버 채널(FC) 스위치 이용 - 광케이블로 연결 - 파일 공유 가능 - 확장성, 유연성, 가용성 우수
로그 파일이란 데이터베이스의 상태 변화를 시간의 흐름에 따라 모두 기록한 파일입니다. 데이터베이스 복구를 위해 필요한 가장 기본적인 자료로, 로그 파일이 기록되는 시점은 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점 등입니다. 데이터베이스 복구 알고리즘 NO-UNDO / REDO UNDO / NO-REDO UNDO / REDO NO-UNDO / NO-REDO 버퍼를 비동기적 갱신 버퍼를 동기적 갱신 버퍼를 동기적/비동기적 갱신 버퍼를 동기적 갱신 버퍼, DB가 다른 영역에 있을 때 백업 종류 물리 백업 논리 백업 데이터베이스 파일을 백업 데이터베이스 내 논리적 객체를 백업 백업 속도 빠름 문제의 원인 파악 및 해결이 수월
암호화 암호화란 데이터를 보낼 때 송신자가 지정한 수신자 외에는 내용을 알 수 없도록 하는 것입니다. 다음 2과정으로 이뤄져 있습니다. 1) 암호화 과정 2) 복호화 과정 암호화 기법에는 다음 두 종류가 있습니다. - 개인키 암호 방식 - 공개키 암호 방식 접근통제 접근통제는 데이터가 저장된 객체와 사용하려는 주체 사이의 정보 흐름을 제한하는 것입니다. 접근통제 기술 ★ DAC 임의 접근통제 MAC 강제 접근통제 RBAC 역할기반 접근통제 신원에 따라 권한 부여 주체와 객체의 등급을 비교해 권한 부여 역할에 따라 권한 부여 데이터 소유자가 지정 시스템이 지정 중앙관리자가 지정 접근통제 3요소 접근통제 3요소 종류 접근통제 정책 어떤 주체 Who가 언제 When 어디서 Where 어떤 객체에게 What 어..
서버 클러스터링은 2대 이상의 서버를 1대의 서버처럼 운영하는 기술입니다. 클러스터링은 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용셩을 제공합니다. 클러스터링의 종류 고가용성 클러스터링 병렬 처리 클러스터링 한 서버에 장애 발생 시 다른 서버가 받아 처리 하나의 작업을 여러 개의 서버에서 분산하여 처리 ※ 고가용성(HA) : 시스템을 오랜 시간동안 계속해서 정상적으로 운영할 수 있는 성질 ※ RTO와 RPO ★ RTO 목표 복구 시간 Recovery Time Objective RPO 목표 복구 시점 Recovery Point Objective '업무 중단 시점 ~ 복구'까지의 소요 시간 데이터를 복구할 수 있는 기준점 예) 장애 발생 후 6시간 내 복구 가능 예) 지난 주 금요일 백업시켜 둔 ..
데이터베이스 이중화는 시스템 오류 상황에 대처하기 위해 동일한 데이터베이스를 복제하여 관리하는 것을 의미합니다. 애플리케이션을 여러 개의 데이터베이스에서 분산 처리하므로 부하를 줄일 수 있습니다. 또한 백업 서버를 손쉽게 운영할 수 있게 됩니다. 데이터베이스 이중화의 분류는 다음과 같습니다. Eager 기법 Lazy 기법 트랜잭션 수행 중 데이터 변경 발생 시 이중화된 모든 DB에 즉시 전달 트랜잭션 종료 후 변경 사실을 새로운 트랜잭션에 작성하여 각 DB에 전달 DB마다 새로운 트랜잭션이 수행되는 것으로 간주 데이터베이스 이중화 구성 방법은 다음과 같습니다. 활동-대기 방법 활동-활동 방법 활성 DB - 대기 DB (활성 DB 장애 시 대기 DB가 활성화) 활성 DB - 활성 DB (활성 DB 장애 시..
데이터베이스 용량 설계 데이터베이스 용량 설계는 데이터가 저장되는 공간을 정의하는 것입니다. 데이터 양, 인덱스, 클러스터 등의 차지 공간을 예측하여 반영해야 합니다. 분산 데이터베이스 분산 데이터베이스는 물리적으로는 여러 개의 사이트에 분산되어 있지만 논리적으로는 하나의 시스템이 속하는 데이터베이스를 의미합니다. 분산 데이터베이스는 다음과 같은 특징을 갖습니다. - 데이터 이용이 많은 지역에 DB를 위치시킴으로써 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 해줍니다. - 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것이 목적입니다. 분산 데이터베이스의 목표 - 위치 투명성 : 실제 위치를 몰라도 상관없이 접근 가능 - 중복 투명성 : 데이터가 중복되어 있어도 상관없이 접근..
인덱스 인덱스는 데이터에 빠르게 접근하기 위해 쌍으로 구성되는 데이터 구조입니다. 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적입니다. 인덱스의 종류는 다음과 같습니다. 트리 기반 인덱스 비트맵 인덱스 함수 기반 인덱스 비트맵 조인 인덱스 도메인 인덱스 인덱스를 저장하는 블록들이 트리 구조 인덱스 컬럼의 데이터가 Bit 값(0 또는 1) 컬럼에 함수나 수식을 적용 다수의 조인된 객체로 구성된 인덱스 개발자가 직접 만든 인덱스 클러스터드 인덱스 넌클러스터드 인덱스 - 인덱스 키의 순서에 따라 데이터가 정렬되는 방식 - 인덱스를 검색하지 않아도 원하는 데이터 찾을 수 있음 - 인덱스의 키 값만 정렬되어 있는 방식 - 데이터 삽입, 삭제 시 데이터를 재정렬해야 함 뷰..
트랜잭션 트랜잭션이란 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 병행 제어 및 회복 작업시 처리되는 작업의 단위이기도 합니다. 트랜잭션의 특성★은 다음과 같습니다. 특성 의미 Atomicity 원자성 트랜잭션은 모두 반영(Commit)되지 못할 것 같으면 아예 반영시키지 않음(Rollback) Consistency 일관성 트랜잭션이 완료되면 언제나 일관성 있는 DB 상태로 변환됨 Isolation 독립성, 격리성, 순차성 하나의 트랜잭션이 실행 중에는 다른 트랜잭션이 끼어들 수 없음 Durability 영속성, 지속성 트랜잭션이 완료되면 시스템이 고장나는 한이 있어도 영구적으로 반영됨 CRUD 분석 CRUD 분석은 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것입니다. CRUD 분석을 ..