728x90
물리 데이터베이스 설계
트랜잭션 분석 / CRUD 분석
트랜잭션 정의
데에터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행 되어야 할 일련의 연산들을 의미한다.
트랜잭션의 상태
- 활동 : 트랜잭션이 실행 중인 상태
- 실패 : 트랜잭션 실행에 오류가 발생하여 중단된 상태
- 철회 : 트랜잭션이 비정상적으로 종료되어 ROLLBACK 연산을 수행한 상태
- 부분 완료 : 프랜잭션을 모두 성공적으로 실행한 후 COMMIT 연산이 실행되기 직전인 상태
- 완료 : 트랜잭션을 모두 성공적으로 실행한 후 COMMIT 연산을 실행한 상태
트랜잭션의 특성
- 원자성 : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 함
- 일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
- 독립성 : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
- 영속성 : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
CRUD 분석
- CRUD는 생성(C), 읽기(R), 갱신(U), 삭제(D) 의 앞 글자만 모아서 만든 용어
- CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것
인덱스 설계
인덱스의 개요
- 데이터 레코드를 빠르게 접근하기 위해 <키, 포인터> 쌍으로 구성되는 데이터 구조
- 인덱스를 통해서 파일의 레코드에 대한 엑세스를 빠르게 수행할 수 있다.
- 데이터 정의어(DDL)를 이용하여 사용자가 CREATE, ALTER, DROP 할 수 있다
뷰 설계
뷰의 특징
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.
- 뷰는 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.
- 기본 테이블의 기본키를 포함한 속성 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능하다(뷰에서의 삽입, 삭제, 갱신은 원본테이블과의 관계 때문에 제한됨)
- 독립적인 인덱스를 가질 수 없다
- 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용
파티션의 설계
- 범위 분할 : 지정한 열의 값을 기준으로 범위를 지정하여 분할함
- 해시 분할
- 해시 함수를 적용한 결과 값에 따라 데이터를 분할
- 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로, 데이터를 고르게 분산할 때 유용
- 특정 데이터가 어디에 있는지 판단할 수 없다.
- 고객번호, 주민번호 드오가 같이 데이터가 고른 컬럼에 횩과적
- 조합 분할
- 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
- 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용
- 목록 분할 : 지정한 열 값에 대한 목록을 만들어 이를 기준을 분할
- 라운드 로빈 분할
- 레코드를 균일하게 분배하는 방식
- 각 레코드가 순차적으로 분배되며, 기본키가 필요 없다
분산 데이터베이스 설계
분산 데이터베이스의 구성 요소
- 분산 처리기
- 분산 데이터베이스
- 통신 네트워크
분산 데이터베이스의 목표
- 위치 투명성 : 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있음
- 중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행
- 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
- 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함
분산 데이터베이스의 장●단점
| 장점 | 단점 |
|---|---|
| 시스템 성능이 향상됨 | DBMS가 수행할 기능이 복잡하다 |
| 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음 | 데이터베이스 설계가 어렵다 |
| 점진적 시스템 용량 확장이 용이 | 스프트웨어 개발 비용이 증가 |
데이터베이스 보안 / 암호화
암호화
- 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
- 암호화 과정 : 암호화되지 않은 평문을 정보보호를 위해 암호문으로 바꾸는 과정
- 복호화 과정 : 암호문을 원래의 평문으로 바꾸는 과정
데이터베이스 보안 - 접근통제
접근통제 기술
- 임의 접근통제 : 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여
- 강제 접근통제 : 주체와 객체의 등급을 비교하여 접근 권한을 부여
- 역할기반 접근통제 : 사용자의 역할에 따라 접근 권한을 부여
벨 라파듈라 모델
- 군대의 보안 레벨처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용
- 보안 취급자의 등급을 기준으로 읽기 권한과 쓰기 권한이 제한
데이터베이스 백업
데이터베이스 백업
- 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업
- 치명적인 데이터 손식을 막기 위해서는 데이터베이스를 정기적으로 백업해야 한다
스토리지
DAS
- 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
- 초기 구축 비용 및 유지보수 비용이 저렴
- 확장성 및 유연성이 상대적으로 떨어진다
- 저장 데이터가 적고 공유가 필요 없는 환경에 적합
SAN
- DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식
- 서버와 저장 장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
- 광 채널 스위치를 이용하여 네트워크를 구성
- 광 채널 스위치는 서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠르다
728x90
'개발공부 > 자격증 공부' 카테고리의 다른 글
| 정보처리기사 - 데이터베이스 구축(4장) 정리 (0) | 2025.05.11 |
|---|---|
| 정보처리기사 - 데이터베이스 구축(3장) 정리 (0) | 2025.05.11 |
| 정보처리기사 - 데이터베이스 구축(1장) 정리 (0) | 2025.05.08 |
| 정보처리기사 - 소프트웨어 개발(5장) 정리 (0) | 2025.05.08 |
| 정보처리기사 - 소프트웨어 개발(4장) 정리 (0) | 2025.05.07 |