## 저장장치 계층 (캐시, 메인메모리, 플래쉬메모리, 디스크 )
# 캐시 (레지스터와는 다름)
- 가장 빠르고, 가장 비싸다.
- 하드웨어가 관리
- Buffering 으로 속도증가
# 메인메모리 = 주기억장치
- 연산에 이용하는 데이터 저장
- 개인컴퓨터: 수 Giga
- 대용량 서버: 수백 Giga
-그래도 전체 DB를 저장하기에는 태부족, 고가
- 정전, 시스템 오류 -> 내용 손실
# 플래시 메모리(Flash Memory)
- 비휘발성, 주기억장치보다 저렴
- 자기 디스크 드라이브 대체
- SSD(Solid State Drive)
- 적절한 용량일 경우
- 최대용량: 2013년 기준 2테라 제품 출시
- HDD보다 빠름 -> 데이터 캐시 역할
# 자기 디스크 저장장치(Magnetic Disk Storage) ***중요***
- 온라인으로 장기간 데이터 저장을 위한 중심 매체
- 비휘발성
- 전체 DB를 저장
- 용량: 매년 50% 정도로 꾸준히 성장
- 저장장치 자체 고장에 따른 데이터 손상 발생 가능 -> 시스템 고장보다 훨씬
적음
# 광 저장장치(Optical Storage)
- CD(Compact Disk)
- DVD(Digital Video Disk)
- CD-ROM, DVD-ROM: 기록 불가
- CD-R, DVD-R: WORK(Write Once Read Many)
- CD-RW, DVD-RW: Write Many Read Many
- 광학 디스크 주크박스
# 테이프 저장장치(Tape Storage) *지금도 중요한 장치*
- 선행지표
- 데이터 백업, 보관용
- 저렴
- 순차접근장치
- 고용량
- 테이프 Library, 테이프 Jukebox
->매우 큰 규모 데이터 저장
- 인공위성 수집 데이터
<암기x>
1차 (Primary) 저장장치 (온라인)
! 캐시, 메인 메모리 - 휘발성
2차(Secondary) 저장장치 혹은 온라인 저장장치
! 디스크 +SSD - 비휘발성
3차(Tertiary) 저장장치 혹은 오프라인 저장장치
! 자기테이프, 광디스크 주크박스
! 휘발성(Volatile)
! 비휘발성(Nonvolatile)
- 데이터 보관을 위해서는 비휘발성 저장장치에 기록되어야 함
< 디스크 구성 > **중요**
- 암은 가만히 있고, 플래터(판)이 돌아가면서 원하는 데이터에 헤드가 위치하게 한다.
데이터를 읽고 주기억장치에 데이터를 전달한다.
# 디스크
- 크기는 작은편
- 구성 : 디스크 표면 -> 트랙 -> 섹터
- 섹터 : 디스크로부터 읽고 쓸 수 있는 가장 작은 단위 (read & write)
보통 512바이트
- 블록 : 여러개의 섹터로 이루어짐
- 섹터 물리적 - 디스크, 파일:블록 - 논리적(추상적)
1 : 데이터베이스에서 데이터를 불러온다 = 파일
2 : 파일은 여러개의 블록으로 구성되어있다. 데이터베이스만들때 사람이 크기를 지정한다.
3 : 데이터베이스를 다뤄주는 DBMS가 OS를 통해서 파일을 바라보고 있다.
4 : 블록은 디스크의 섹터로 구성되어있다. 섹터의 크기는 기계적으로 정해져있다.
# 판독-기록 헤드
- 섹터위에 데이터를 기록
- 각 면당 헤드를 가짐
- 외부에는 헤더를 달지 않음
- 디스크에 충격이 생기면 헤더들이 한번에 뒤로 빠짐.
# 디스크 컨트롤러
- 컴퓨터 시스템과 디스크 드라이버의 하드웨어를 연결
- 디스크 컨트롤러가 하드웨어에서의 일을 모두 담당한다.
- 디스크에 달린 암의 동작을 제어하는 역할을 한다.
- 섹터를 읽고, 쓰기 위한 고수준 명령어를 받기 -> 디스크 암을 정확하게 해당 트랙에 이동 -> 실제 데이터를 읽고 쓰도록 함.
- 소프트웨어이다.
- 각 섹터의 checksm 점검 (오류 여부를 판단)
- 컴퓨터시스템과 연결을 위한 공용 인터페이스 (PATA사용x, SATA, SCSI 케이블이 있다)
## 디스크 성능 측정 (* 탐색시간, 회전지연시간, 데이터전송속도 *)
디스크의 우수성에 대한 주요 측정은 용량, 액세스 시간, 데이터 전송속도, 신뢰성
# 액세스 시간 : 읽기/쓰기 요구부터 데이터 전송시작까지 시간
- 탐색시간 + 지연시간
- 탐색시간(seek time) -> 가장 영향력이 큰 시간
- 탐색시간의 평균탐색시간은 최악시간의 1/3정도
- 회전지연시간 : 헤더가 원하는 트랙에 도달한 후 원하는 섹터가 헤드 아래에 오는데 걸리는 시간
# 데이터 전송속도
- 섹터가 접근된 후 데이터가 디스크로부터 R/W되는 속도
# MTTF
- 평균적으로 디스크가 아무 실패 없이 계속 동작할 수 있는 시간
# 블록
- 연속적인 섹터들의 묶음
- 디스크 입출력 단위
# 블록에 대한 요청
- 순차적 접근 : 연속적인 블록들을 접근, 첫 요청에만 탐색시간이 발생함
- 임의적 접근 : 요청들에 따라 접근, 요청마다 탐색시간이 요구됨
## 디스크 블록 액세스의 최적화
# 버퍼링
# 미리읽기
- 회전지연 낭비시간 최소화
# 스케줄링 / 디스크 - 암 스케줄링
- 읽기요구의 순서 재구성
- 승강기 알고리즘. 가는 경로에 요구가 있는 트랙이 있으면 멈춘다.
# 파일 구성
- 같은 파일은 가능한 같은 트랙에 위치하게 -> 순차탐색이 가능하게끔
- 시간이 지나면 단편화(Fragmentation)발생 : 파일들이 흩어져있음 헤드가 많이 움직여야 함
# 조각모음(Defragmentation)
- 하나의 트랙에 있게끔 디스크에 블록을 배치 -> 블록 액세스 시간 줄임
- 백업을 위한 공간이 하나 더 필요하다.
## 플래시 저장장치 SSD
# NAND플래시 -> NOR보다 더 저렴하고 많은 용량 제공
- 자기디스크보다 더 빠른 임의접근 제공
- 데이터 페이지
- 쓰기작업은 다소 복잡 -> 덮어쓰기가 안되어 지우고 다시쓰기를 해야하므로
- READ <<< WRITE시간
- 동일한 페이지당 지우기 횟수에 제한이 있음 (10만~100만회로)
'전공 과목 이수2👨💻 > 데이터베이스관리' 카테고리의 다른 글
Transaction 트랜잭션 (0) | 2021.12.06 |
---|---|
인덱스 정리 (0) | 2021.11.05 |
인덱스 (0) | 2021.10.13 |
파일 내 레코드 구조, 데이터 사전 저장장치 (0) | 2021.10.05 |
파일 구조 (0) | 2021.10.04 |
RAID (0) | 2021.10.04 |