방통대 데이터베이스 수업 내용을 정리했습니다.


1. 물리적 저장장치 : 데이터의 저장장치들은 데이터의 접근 속도를 기준으로 다양한 장치로 분류

 - 기억 지속성 관점에서 분류(휘발성, 비휘발성)


 - 캐시 : 고비용 저장장치로 빠른 데이터 접근속도를 보장, 레지스터를 제외하면 프로세서가 가장 빠르게접근

 

 - 메인메모리 : 프로그램과 데이터가 적재되는 공간


 - 플래쉬 메모리 : 메인메모리와 비슷하나 비휘발성 저장장치로 전원이 꺼져도 데이터를 유지

 

 - 자기디스크 : 주로 데이터베이스 전체가 저장되는 공간으로 데이터를 안정적으로 저장


 - 광학 디스크 드라이브 : CD, DVD 등


 - 테이프 저장장치 : 기록 데이터를 저장하는데 사용, 자기 디스크보다 용량이 크고 저렴, 데이터접근이 매우 느림



2. RAID : 데이터 양의 폭발적인 증가에 따른 복수 개의 독립적인 디스크를 사용

 - RAID 0 수준 : 스트라이핑(빠른 데이터 입출력을 위해 데이터를 여러 디스크에 나누어 저장)


 - RAID 1 수준 : 미러링(데이터를 중복저장하기 때문에, 디스크 장애 발생 시 데이터 복구가 가능


 - 레이드의 종류는 이 외에도 더 있다.


 - 레이드 사용 목적

   1. 신뢰성 향상 : 데이터를 중복시켜서 여러 디스크에 저장하면 장애에 의해 손실되어도 복구가 가능

                    미러링된 디스크들은 각 디스크의 평균 고장 시간과 평균 수리 시간에 영향


3. 파일구성

 - 파일 : 데이터를 영구적으로 제장하기 위해 사용되는 가장 기초적인 구조

 - 블록 : 파일을 고정적인 길이로 분할하여 생기는 균등한 크기의 데이터 묶음, 블록 단위로 분할되어 디스크에 기록

 - 레코그 : 블록을 구성하는 요소로, 더 이상 분리되어 저장되지 않는 최소 단위

 - 고정길이레코드 : 각 레코드에 고정적인 바이트 수를 할당하는 기법, 블록의 길이가 레코드 길이로 정확히 나뉘지 않으면 비효율 발생

                    레코드 삭제 시 해당 레코드가 저장된 공간이 비기 때문에, 낭비가 발생

 - 레코드 삭제 대처

   1. 마지막 레코드로 공백 대체 2.삭제 레코드 이후의 레코드를 이동 3.가용리스트관리


 - 가변길이레코드 : 길이가 서로 다르게 레코드에 가변적인 길이를 할당하는 방법

 - 가변길이 레코드가사용되는 상황

   한 블록 내에 저장되는 레코드 유형이 둘 이상, 길이가 고정되지 않은 컬럼의 개수가 하나 이상

   레코드가 멀티셋을 허용한 컬럼을 가질 때(멀티셋: 컬럼값이 여러개인 컬럼)


 - 파일구조화 방법

  1. 힙 파일 구조 : 모든 레코드는 파일 내 임의의 위치, 저장 순서 고려X

  2. 순차파일구조 : 레코드들이 특정 컬럼에 대한 값을 기준으로 순차적 정렬

  3. 해시파일구조 : 레코드를 입력 받아 레코드가 저장되는 주소를 반환하는 해시 함수를 사용


  * 다중테이블 클러스터링 파일 구조 :  빈번히 조인되는 테이블을 하나의 파일에 저장하기 위한 구조

                                       필요한 테이블이 미리 조인되어 저장 


4. 저장장치 접근

 - 파일은 논리적 관점에서의 저장이며, 실제 저장될 떄에는 여러 개의 물리적 단위인 블록으로 저장


 - 버퍼관리자 : DBMS상의 프로그램들은 필요한 블록이 있을 때 버퍼관리자에게 해당 블록을 요청

1. 요청된 블록이 버퍼에 있다면 버퍼관리자는 블록이 위치한 메모리 주소를 프로그램에 전달

2. 없으면, 버퍼고나리자는 버퍼 내 새로운 공간을 할당하고 해당 블록을 적재

3. 더 이상 적재할 공간이 없으면, 버퍼에 있는 기존 블록을 선택하여 핼당을 해지하고 해당 블록적재


- 버퍼관리자 기능

1. 버퍼 교체 전략 : 가용공간 확보 위해 기존에 적재된 블록의 할당을 특정 기준에 의하여 해지

2. 미래에 가장 적게 사용될 블록을 선택하여 디스크로 내보내는 것이 이상적인 버퍼 교체 전략

LRU : 가장 적게 사용된 블록 교체

MRU : 가장 최근에 사용된 블록 교체(썼으니 또 안 쓸 것)

3. 고정블록 :  장애로 인해 메모리의 데이터가 손실되어 작업이 중단될 경우,

      중단된 작업의 결과물이 디스크에 기록되는 것을 방지

4. 블록강제출력 : 시스템 로그와 같이 중요한 데이터는 디스크에 영구적으로 기록되어야 함

 버퍼 공간이 필요 없어도 강제로 디스크에 기록



연습문제 

1. 다음 중 물리적 저장장치들을 데이터 접근 속도가 빠른 기준으로 나열한 것은? 

-> 레지스터 캐시 메인메모리 자기디스크


2. 다음 물리적 저장장치들 중 휘발성과 비휘발성 장치를 올바르게 짝지은 것은? 

-> 휘발성: 캐시,메인 메모리 / 비휘발성: 디스크,  자기 테이프


3. 데이터를 미러링 하여 데이터를 중복 저장하여 디스크 장애가 발생할 경우 데이터 복구가 가능하며, 

용량이 큰 데이터에 대한 병렬적으로 빠른 읽기가 가능함 -> RAID 1 수준


4. 다음과 같은 테이블의 스키마에 대해 각 고정 길이 레코드에 할당되는 바이트 수는? INT는 4로 계산 62바이트


5. 모든 레코드를 파일 내 임의의 위치에 저장하며, 저장하는 순서를 고려하지 않는 파일 구조 -> 힙 파일구조


6. 미래에 가장 적게 사용될 블록을 선택하여 버퍼에 적재하기 위해 최근에 가장 많이 사용된 

블록을 선택하여 블록을 교체하는 전략 -> MRU


정리하기

1.물리적 저장장치들은 데이터 접근 속도 관점에서 계층적으로 분류된다. 상위계층은 접근 속도가 빠르지만

 고가의 장비이며, 하위계층은 접근 속도가 느리지만 저가의 장비이다. 


2.일반적으로 상위의 저장장치들은 전원 공급이 차단되면 데이터가 소멸되는 휘발성이며, 하위의 

저장장치들은 전원 공급이 차단되어도 데이터가 소멸되지 않는 비휘발성이다. 


3.다수의 디스크를 병렬적으로 구동시킴으로써 많은 양의 데이터를 빠르게 처리할 수 있으며, 시스템의 

신뢰성을 향상시킬 수 있다. 디스크 병렬 기준 표준으로는 표준 RAID 수준이 있다. 


4.데이터베이스는 여러 파일로 구현된다. 파일이란 데이터를 영구적으로 저장하기 위해 사용하는 구조이다.

 파일은 물리적으로 여러 블럭으로 나뉘어 저장되기도 한다. 하나의 파일은 다수의 레코드를 저장하고 있다.

 레코드는 관계형 모델에서 투플에 대응하는 개념이다. 


5.레코드의 형식은 고정 길이 레코드와 가변 길이 레코드가 있다. 레코드의 형식에 따라 파일 및 블럭에서

 레코드를 관리하는 방식이 달라진다. 특히 슬롯 페이지 구조는 가변 길이 레코드를 관리할 때 이용되는

 블럭 구조이다. 


6.특정 필드에 대한 빠른 접근이 요구되는 경우, 파일에 저장되는 레코드를 구조화하는 것이 좋다. 

파일 구조화 방법으로는 힙 파일 구조화, 순차 파일 구조화, 해시 파일 구조화가 있다. 파일 구조 

중 다중 테이블 군집 파일 구조는 여러 개의 테이블을 하나의 파일에서 관리하는 특수한 파일 구조이다.

 

7.메모리와 디스크는 블럭 단위로 데이터를 주고받는다. 이때 데이터베이스 시스템에서는 블럭의 

입출력을 최소화하기 위해 메모리 내에 버퍼라는 공간을 만들며, 버퍼를 효율적으로 관리하기 위해 

버퍼 관리자를 사용한다. 

+ Recent posts