-
3-2 물리 데이터베이스 설계자격증/정처기 2023. 5. 19. 03:52
물리 데이터베이스
- 논리적 DB를 (저장 가능한) 물리적 구조로 변환
- 개체 <-> 테이블, 속성 <-> 컬럼, 관계 <-> 외래키
- 테이블: 일반, 클러스터, 임시, 외부, 파티셔닝
트랜잭션
- 논리적 수행의 단위, 한꺼번에 수행되어야하는 일련의 연산
- COMMIT + ROLLBACK + SAVEPOINT
트랜잭션 상태
*실패 = Failed, 철회 = Aborted
트랜잭션 특성
- 원자성 + 일관성(consistency), 독립성(isolation), 영속성(durability)
CRUD 분석
- Create + Read + Update + Delete
- CRUD 매트릭스를 통해 분석
- 행 = 프로세스, 열 = 테이블
- C > D > U > R
인덱스
- 키 값 + 포인터 쌍을 통해 데이터 레코드에 빠르게 접근
- DDL을 통해 생성, 변경, 제거 가능
- 추가는 CREATE, 제거는 DROP
클러스터
- 동일한 성격의 데이터를 물리적으로 같은 블럭에 저장
- 조회 속도 증가, 입력/수정/삭제 성능 저하
-> 수정이 적고 / order by, group by, union이 빈번할수록 유리
- 인덱스는 분포가 좁은 테이블에, 클러스터는 분포가 넓은 테이블에 유리
- 클러스터링 키 column을 공유 -> 공간 절약
- 대용량 트랜잭션 처리엔 비적합
- 클러스터링 테이블 + 클러스터드 인덱스 가능
- 파티셔닝된 테이블엔 클러스터링 불가
파티션
1)범위 분할: column 값 기준
2)해시 분할: 고르게 분산
3)조합 분할: 범위 -> 해시 *composite
4)목록 분할: column 값에 대한 list를 만듦
5)라운드 로빈: 레코드에 순차적으로(=균일하게) 분배 *기본키 필요 x
뷰 (View)
- 기본 테이블로부터 유도된 가상 테이블
- 물리적으로 존재 x = 기본 테이블 삭제시 같이 삭제
- 기본 테이블과 구조나 조작이 동일함
- 기본 테이블의 키를 포함하게 구성해야 삽입/삭제/갱신 가능 (= 제약이 따른다)
- 뷰 위에 또다른 뷰 정의 가능 (Replace)
- 독립적인 인덱스는 가질 수 없음
- 접근 제어를 통한 자동 보안 제공
- 정의는 CREATE, 제거는 DROP // 변경(ALTER) 불가
분산 데이터베이스
- 논리적으론 하나, 물리적으로 분리
- 지역의 자치성
- 통신 네트워크 + 분산 데이터베이스 + 분산 처리(=지역 컴퓨터 시스템)
- 설계방법: 분할 + 할당 + 테이블 위치분산
분산 데이터베이스 목표
1)위치 투명성 - 실제 위치 대신 논리적인 명칭으로 access
2)중복(Replication) - 중복되어 존재해도 하나처럼
3)병행(Concurrency) - 트랜잭션 독립성
4)장애(Faulure)
+
데이터베이스 이중화
Eager <-> Lazy
서버 클러스터링
- 두 대 이상의 서버를 하나처럼 운영
- 고가용성 + 병렬 처리
데이터베이스 보안
- 권한이 없는 사용자의 접근을 막음
암호화
1) 대칭키 = 개인키 = 비밀키
-> DES, AES, SEED, ARIA
2) 공개키 -> RSA
접근통제
- 정책(규칙) + 메커니즘(기술) + 보안모델
- ACL = 객체 기준 // 능력(Capability) 리스트 = 주체 기준
보안 모델
단순 보안: 높으면 읽기 불가
스타 보안: 낮으면 쓰기 불가
단순 무결성: 낮으면 읽기 불가
스타 무결성: 높으면 쓰기 불가
강한 스타 보안: 높/낮으면 읽/쓰기 불가
접근 통제 정책
1)DAC(임의): 사용자 신원에 따라 // GRANT, REVOKE
2)MAC(강제): 등급 비교 // 스타 보안
3)RBAC: 역할 기반 // 다중 환경 최적화
데이터 소유자 / 시스템 / 중앙 관리자가 권한 부여
스토리지
- 대용량 데이터 저장을 위해 서버와 저장장치 연결
1)DAS = 케이블로 직접 연결 -> 싸고 간편하지만 확장성/유연성이 떨어짐
2)NAS = 네트워크로 연결
3)SAN = 광케이블(광채널)
'자격증 > 정처기' 카테고리의 다른 글
4-1 프로그래밍 언어 활용 (0) 2023.05.20 3-3 SQL (0) 2023.05.19 3-1 논리 데이터베이스 설계 (0) 2023.05.18 2-4 인터페이스 구현 (0) 2023.05.18 2-3 어플리케이션 테스트 관리 (0) 2023.05.17