목록컴퓨터공학/데이터베이스 (8)
juuuding
회복 1. 회복의 필요성 - 어떤 트랜잭션 T를 수행하는 도중에 시스템이 다운되었을 때, T의 수행 효과가 디스크의 데이터베이스 일부 반영되었을 수 있음 * 어떻게 T의 수행을 취소하여 원자성을 보장할 것인가? - 또한 트랜잭션 T가 완료된 직후에 시스템이 다운되면 T의 모든 갱신 효과가 주기억 장치로부터 디스크에 기록되지 않았을 수 있음 * 어떻게 T의 수행 결과가 데이터베이스에 완전하게 반영되도록 하여 지속성을 보장할 것인가? - 디스크의 헤드 등이 고장 나서 디스크의 데이터베이스를 접근할 수 없다면 어떻게 할 것인가? 2. 회복의 개요 - 여러 응용이 주기억 장치 버퍼 내의 동일한 데이터베이스 항목을 갱신한 후에 디스크에 기록함으로써 성능을 향상시키는 것이 중요함 - 버퍼의 내용을 디스크에 기록하는..
■ 트랜잭션 (transaction) - 데이터베이스를 수천명 이상의 사용자들이 동시에 접근 - 많은 사용자들이 서로 다른 부분, 같은 부분을 접근하면서 데이터베이스를 사용 - 동시성 제어 (concurrency control) √ 동시에 수행되는 트랜잭션들이 데이터베이스에 미치는 영향은 이들을 순차적으로 수행하였을 때 데이터베이스에 미치는 영향과 같도록 보장 √ 다수 사용자가 데이터베이스를 동시에 접근하도록 허용하면서 데이터베이스의 일관성을 유지함 - 회복 (recovery) √ 데이터베이스를 갱신하는 도중에 시스템이 고장 나도 데이터베이스의 일관성을 유지 트랜잭션 개요 * 두개의 UPDATE문을 수행하여할 때, 첫 UPDATE문을 수행한 후 두 번째 UPDATE문을 수행하기 전에 컴퓨터 시스템이 다운..
제1정규형, 제2정규형, 제3정규형, BCNF 1. 제 1 정규형 - 한 릴레이션 R이 제 1정규형을 만족할 필요충분조건: R의 모든 애트리뷰트가 원자값만을 가짐 - 릴레이션의 모든 애트리뷰트에 반복 그룹이 나타나지 않으면 제1정규형 만족 - 제1정규형을 만족하지 않을 때 제1정규형으로 변환해주기 + 애트리뷰트의 집합에 속한 각 값마다 하나의 투플로 표현 + 모든 반복 그룹 애트리뷰트를 분리해서 새로운 릴레이션에 넣기. 그리고 원래 릴레이션의 기본키를 새로운 릴레이션에 애트리뷰트로 추가함 1-2. 제1정규형에 존재하는 갱신 이상 - 위 그림의 학생 릴레이션은 모든 애트리뷰트가 원자값을 가지므로 제1정규형 만족 - 이 릴레이션의 기본 키는 (학번, 과목번호) 1-3. 삭제 이상 - 어떤 학과에 소속된 마지..
■ 릴레이션 정규화 - 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상을 유발함 - 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에 어떤 애트리뷰트들을 둘 것인가? - 정규화는 주어진 릴레이션 스키마를 함수적 종속성과 기본키를 기반으로 분석하여, 원래의 릴레이션을 분해함으로써 중복과 세가지 갱신 이상을 최소화함 정규화 개요 1. 좋은 관계 데이터베이스 스키마를 설계하는 목적 - 정보의 중복과 갱신 이상이 생기지 않도록 하고, 정보의 손실을 막으며, 실세계를 잘 나타내고, 애트리뷰트 간의 관계가 잘 표현되게 보장하고, 어떤 무결성 제약조건의 시행을 간단하게 하며, 효율성 측면도 고려 - 우선 갱신 이상이 발..
단일 단계 인덱스 1. 단일 단계 인덱스(인덱스된 순차 화일) - 인덱스된 순차 화일은 인덱스를 통해서 임의의 레코드를 접근할 수 있는 화일 - 단일 단계 인덱스의 각 엔트리는 - 엔트리들은 탐색 키 값의 오름차순으로 정렬됨 - 인덱스는 데이터 화일과는 별도의 화일에 저장됨 - 인덱스의 크기는 데이터 화일의 크기에 비해 훨씬 작음 - 하나의 화일에 여러 개의 인덱스들을 정의할 수 있음 - 인덱스가 정의된 필드를 탐색 키라고 부름 - 탐색 키의 값들은 후보 키처럼 각 투플마다 반드시 고유하지는 않음 - 키를 구성하는 애트리뷰트뿐만 아니라 어떤 애트리뷰트도 탐색 키로 사용될 수 있음 - 인덱스의 엔트리들은 탐색 키 값의 오름차순으로 저장되어 있으므로 이진 탐색을 이용할 수도 있음 2. 기본 인덱스 (prim..
■ 물리적 데이터 베이스 설계 - 논리적인 설계의 데이터 구조를 보조 기억 장치 상의 화일(물리적 데이터 모델)로 사상함 - 예상 빈도를 포함하여 데이터베이스 질의와 트랜잭션들을 분석함 - 데이터에 대한 효율적인 접근을 제공하기 위하여 저장 구조와 접근 방법들을 다룸 - 특정 DBMS의 특성을 고려하여 진행됨 - 질의를 효율적으로 지원하기 위해서 인덱스 구조를 적절히 사용함 보조 기억 장치 1. 보조 기억 장치 - 원하는 데이터를 검색하기 위해 DBMS는 디스크 상의 데이터베이스로부터 원하는 데이터를 포함하는 블록을 읽어서 주기억 장치로 가져옴 - 데이터가 변경된 경우 블록들을 다시 디스크에 기록함 - 블록의 크기는 512B ~ , 전형적인 블록의 크기는 4096B = 4KB - 각 화일은 고정된 크기의..
3. DBMS 발전 과정 데이터 모델 1. 데이터 모델 - 데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조 (데이터 타입과 관계), 이 구조 위에서 동작하는 연산자들, 무결성 제약 조건들 - 사용자에게 내부 저장 방식의 세세한 사항은 숨기면서 데이터에 대한 직관적인 뷰를 제공하는 동시에 이들 간의 사상을 제공 (실제 구조와는 다르지만, 어떻게 작동되는지에 대한 과정은 잘 설명 돼 있음) - 쉽게 말해서 데이터를 구성하고 저장하는 방식을 말한다. 2. 데이터 모델의 분류 (1) 고수준 또는 개념적 데이터 모델 - 사람이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조를 명시 ex) 엔티티-관계 데이터 모델과 객체 지향 데이터 모델 (2) 표현(구현) 데이터 모델 - 최종 사용자가 ..
1. 데이터베이스 시스템 개요 1. 데이터베이스의 정의 - 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임. 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정된다. ex) 항공기 예약 시스템에서는 여행사를 통해 항공기 좌석을 예약하면 모든 예약 정보가 DB에 기록 2. 데이터베이스의 특징 - 데이터베이스는 데이터의 대규모 저장소로서, 여러 부서에 속하는 여러 사용자에 의해 동시에 사용됨 - 모든 데이터가 중복을 최소화하면서 통합됨 - 데이터베이스는 한 조직체의 운영 데이터뿐만 아니라 그 데이터에 관한 설명(DB 스키마, metadata)까지 포함 - 프로그램과 데이터 간의 독립성이 제공됨 -> 파일의 변화에 따라 프로그램을 변경할 필요 X - 효율적으로 접근 가능하..