본문 바로가기
헬릭스 왈츠/공통

[데이터베이스 구축] 9. 물리DB설계

by reve5 2022. 3. 26.

55. 분산 데이터베이스 목표 중 “데이터베이스의 분산된 물리적 환경에서 특정 지역의 컴퓨터 시스템이나 네트워크에 장애가 발생해도 데이터 무결성이 보장된다.”는 것과 관계있는 것은?
① 장애 투명성 ② 병행 투명성
③ 위치 투명성 ④ 중복 투명성


>> 정답 1번

 

위치 투명성
데이터 베이스의 실제 위치를 알 필요 없이 데이터베이스의 논리적인 명칭으로 엑세스 할 수 있음

중복 투명성
데이터가 여러 곳에 중복되어 있더라도 사용자가 하나의 데이터만 존재하는 것처럼 사용 가능, 시스템은 자동으로 여러 자료에 대해 작업 수행

병행 투명성
다수의 트랜잭션이 동시에 실현되더라도 그 결과는 영향을 받지 않음

장애 투명성
트랜잭션 DBMS 네크워크 컴퓨터 장애에도 트랜잭션을 정확히 처리함

 



60. 트랜잭션의 특성 중 다음 설명에 해당하는 것은?

트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.

① Durability ② Share
③ Consistency ④ Atomicity

 

원자성 automicity
트랜잭션에서 정의한 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. all or nothing

일관성 consistency
트랜잭션이 실행되기 전에 데이터베이스 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스 내용에 잘못이 있으면 안된다.

고립성 isolation
트랙잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.

지속성 durability
트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.


>> 정답 4번

55. 데이터베이스에서 인덱스(Index)와 관련한 설명으로 틀린 것은?
① 인덱스의 기본 목적은 검색 성능을 최적화하는 것으로 볼 수 있다.
② B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다.
③ BETWEEN 등 범위(Range) 검색에 활용될 수 있다.
④ 시스템이 자동으로 생성하여 사용자가 변경할 수 없다.

>> 정답 4번


54. 트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?
① Log ② Consistency
③ Isolation ④ Durability

>> 정답 3번

2번 일관성 > 결과 전 후가 같아야 함

3번 독립성 > 다른 영향을 받지 않음

4번 지속성 > 영구적 저장




51. 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?
① 트랜잭션 ② 뷰
③ 튜플 ④ 카디널리티


>> 정답 1번



45. 다음과 같은 트랙잭션의 특성은?

시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

① 원자성(atomicity) ② 일관성(consistency)
③ 격리성(isolation) ④ 영속성(durability)

>> 정답 2번

 

1번 원자성 all or nothing

2번 일관성 결과 전 후 같아야함

3번 격리성 영향 X

4번 영속성 갱신 결과 영구적 저장


56. 데이터베이스 성능에 많은 영향을 주는 DBMS의 구성 요소로 테이블과 클러스터에 연관되어 독립적인 저장 공간을 보유하며, 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위하여 사용되는 것은?
① 인덱스(Index)
② 트랙잭션(Transaction)
③ 역정규화(Denormalization)
④ 트리거(Trigger)

>> 정답 1번


59. 트랙잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전에 정상적인 상태로 복구시키는 작업은?
① Recovery ② Commit
③ Abort ④ Restart

>> 정답 1번



43. Commit과 Rollback 명령어에 의해 보장 받는 트랜잭션의 특성은?
① 병행성 ② 보안성
③ 원자성 ④ 로그

>> 정답 3번

commit = all or rollback = nothing

원자성

 


https://www.youtube.com/watch?v=3nKhdyMw26M&list=PLKpxllD6C8Cl_Ih4ZVC4t9MbrIHZ63Hk6&index=9 


트랜잭션
> 데이터베이스에서 이뤄지는 여러 작업들을 구분한 논리적 단위
>데이터베이스 용량, 물리적 위치 분산, 예상 융량 산정 근거
>> 용량, 성능 수준이 변할 수 있다. 집중되는 DB를 분산할 수 있음

인덱스
빠른 조회를 위해 키와 포인터로 구성되어 있는 요소
인덱스가 없다면 테이블 전체를 탐색해야 한다. 

인덱스 키를 입력하고 포인터에 그 키의 주소를 입력하면 찾을 때마다 빠르게 찾을 수 있다.
DB 수정이 많다면 인덱스 수정도 많아지므로 상황에 따라 선택해야 한다.

인덱스 유형
1. B 트리
정렬되어 있는 키 값을 기준으로 키들을 분리하여 트리를 생성
자식 노드 3개 이상 가질 수 있다.
검색은 빠르나 전체 노드 순회하면 비효율적임

2. B+트리
B트리의 단점을 보완
모든 키를 리프 노드로 내리고 위에는 인덱싱을 위한 키를 생성
리프노드의 모든 키들을 양방향으로 탐색 가능 검색도 빠르고 전체 탐색도 빠르게 진행


3. 비트맵 인덱스
키 값을 비트(2진수)로 변환하여 사용하는 형태
비트는 논리연산이 가능하기 때문에 빠르고 압출 효율이 좋다
ex) 색상 정보
해당 키를 포함하는 행의 개수를 파악하는데 유용하다

4. 함수 기반 인덱스
함수 결과에 따라 B+ / 비트맵 인덱스 생성

5. 비트맵 조인 인덱스
조인이 가능한 두 테이블의 공통 열에 대한 비트맵 인덱스 생성
실제로 조인을 하지 않고 작업 가능

6. 도메인 인덱스
개발자가 필요한 인덱스를 직접 만들어 사용


분산 설계
지역적(물리적)으로 나눠둔 데이터베이스를 논리적으로 통합하여 하나의 데이터베이스를 사용하는 것처럼 조작하는 것

분산DBMS로 관리가 필요하다
> 실제로 하나가 된 것이 아니기 때문

장점 : 대용량 처리, 원격 데이터 의존도 감소, 확장 용이, 신뢰도/가용성 향상
단점 : 개발 비용 증가, 통제/오류 취약, 응답속도 불규칙, 무결성 보장 어려움

데이터 투명성 : 확인하거나 알 필요 없이 알아서 처리해줌(분산 DBMS의 역할)
>분할 투명성 : 분할의 상태를 인지할 필요 없음(알아서 처리)
>위치 투명성 : 분산된 객체의 물리적 위치를 인지할 필요 없음
>중복 투명성 : 중복 여주를 인지할 필요 없음
>장애 투명성 : 트랜잭션의 원자성, 데이터 무결성 보장
>병행 투명성 : 동시 사용하는 트랜잭션의 결과의 일관성 유지


분산 설계 전략 방법

중앙집중 : 중앙 컴퓨터가 모든 트랜잭션 처리, 나머지는 입출력만
복제 : 복제된 객체를 주기적(또는 실시간)으로 갱신
유지 : 하나의 논리적, 각각의 독립적 DB로 유지

분할의 룰
완전성 : 전체 데이터를 손실 없이 분할
재구성 : 전체 데이터로 재구성이 가능해야 함
상호중첩
> 수평분할 : 중복되는 튜플이 없어야 함
> 수직분할 : (식별자를 제외한) 속성의 중복이 없어야 함


분할과 사상(요소 요소 연결)
데이터 손실 없이 완전히 분할되고 완전히 재구성이 가능해야 한다.

보안설계
보안 > 기밀성, 무결성, 가용성
권한을 가진 사용자만 접근, 변경, 사용

고려사항
사용자 인증, 규칙에 대한 정의, 규칙 검사 시스템 구현

1. 접근 통제
> 임의 접근 통제 DAC
특정 객체에 대한 사용자의 행위를 허용 및 불허
GRANT 권한 부여
REVOKE 회수
위험요소 : 신분도용의 경우 결함 발생

> 강제 접근 통제 MAC
보안등급이 높은 객체에 대한 권한 제한

> 접근 통제 행렬
DAC를 관리하는 테이블
행방향으로 사용자 기록
열방향으로 객체를 기록
해당 셀에 각각의 접근 통제 방법을 기록
기밀성 중심, 군사용
등급기준으로 분류
단순 보안 규칙 : 높은 등급의 객체 읽기 금지
★-무결성 규칙 : 낮은 등급의 객체 쓰기 금지
강한 ★보안 규칙 : 다른 등급의 객체 접근 금지

2. 접근 통제 정책
세부적인 통제 원칙을 정의
주체가 언제, 어디서, 어떤 객체를 어떻게 하게끔 허용하는지 원칙 정의

> 신분 기반 정책
IBP : 단일 사용자가 하나의 객체에 대해 허가
GBP : 복수 사용자가 하나의 객체에 대한 허가

> 규칙 기반 정책
MLP : 사용자 및 객체가 각각 부여된 기밀 분류에 따른 정책
CBP : 조직 내 특정 집단별로 구분된 기밀 허가에 따른 정책

> 역할 기반 정책 : GBP의 변형, 직무/직책에 따라 허가


3. 접근 통제 조건과 감사 추척
기존의 접근 통제 정책과 함께 사용하여 적용. 취약점 보완

> 값 종속 통제 : 저장된 값을 근거로 접근 통제

.> 다중 사용자 통제 : 일정 사용자 이상의 접근 통제

> 컨텍스트 기반 통제 : 특정 국가, 시간대, IP 주소 등의 외부 요소에 따라 통제

> 감사추적 : 활동 기록(로그), 사후 문제 분석 실행 프로그램, 사용 클라이언트, 사용자, 날짜 및 시간, 접근 데이터의 전후 값

댓글