[ 기출문제집 01회 ] 2022년 7월 기출
- 80 / 70 / 55 / 80 / 60
- 평균 69점
2022년 7월 기출
43. 트랜잭션의 특성
-
Atomicity (원자성)
: 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.
- 연산은 데이터베이스에 모두 반영되도록 완료 (Commit)되거나
아니면 전혀 반영되지 않도록 복구 (Rollback)되어야 한다.
-
Consistency (일관성)
: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
- 트랜잭션이 실행을 성공적으로 완료하면, 언제나 일관성 있는 데이터베이스 상태로 변환한다.
-
Isolation (독립성, 격리성, 순차성)
: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
- 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
-
Durability (영속성, 지속성)
: 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함.
44. 분산 데이터베이스
: 논리적으로는 같은 데이터베이스에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스.
-
목표
- 위치 투명성 (Location Transparency)
: 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있음.
- 중복 투명성 (Replication Transparency)
: 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용 가능.
시스템은 자동으로 여러 데이터에 대한 작업을 수행함.
- 병행 투명성 (Concurrency Transparency)
: 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않음.
- 장애 투명성 (Failure Transparency)
: 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행됨.
-
구성 요소
- 분산 처리기
: 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템을 말함.
- 분산 데이터베이스
: 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성됨.
- 통신 네트워크
: 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크를 말함.
-
장점
- 지역 자치성이 높음
- 자료의 공유성이 향상됨
- 분산 제어가 가능함
- 시스템 성능이 향상됨
- 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음
- 효용성과 융통성이 높음
- 신뢰성 및 가용성이 높음
- 점진적 시스템 용량 확장이 용이함
-
단점
45. 파티션의 종류
-
범위 분할 (Range Partitioning)
: 지정한 열의 값을 기준으로 범위를 지정하여 분할.
- 단점 : 특정 파티션에 데이터가 집중됨.
- 예) 일별, 월별, 분기별 등
-
해시 분할 (Hash Partitioning)
: 해시 함수를 적용한 결과 값에 따라 데이터를 분할.
- 범위 분할의 단점 보완 -> 데이터를 고르게 분산할 때 유용.
- 특정 데이터가 어디에 있는지 판단할 수 없음.
-
조합 분할 (Composite Partitioning)
: 범위 분할 후 해시 함수 적용하여 다시 분할.
- 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용.
-
목록 분할 (List Partitioning)
: 지정한 열 값에 대한 목록을 만들어 분할.
- 예) '국가'열에 '한국', '미국', '일본'이 있을 때, '미국' 제외를 위해 '아시아'라는 목록을 만들어 분할.
-
라운드 로빈 분할 (Round Robin Partitioning)
: 균일하게 분배.
- 각 레코드가 순차적으로 분배.
- 기본키 필요없음.
48. 논리적 설계 vs 물리적 설계
49. 정규화 과정
: 도부이결다조
-
비정규 릴레이션
-
제1정규형 (1NF)
: 비정규 릴레이션에서 모든 도메인이 원자값
-
제2정규형 (2NF)
: 제1정규형에서 부분적 함수 종속 제거
-> 기본키 제외한 모든 속성이 기본키에 대해 완전 함수적 종속을 만족.
-
제3정규형 (3NF)
: 제2정규형에서 이행적 함수 종속 제거
-
BCNF형 (BCNF)
: 제3정규형에서 결정자이면서 후보키가 아닌 것 제거
-> 결정자가 모두 후보키.
-
제4정규형 (4NF)
: BCNF형에서 다치 종속 제거
-
제5정규형 (5NF)
: 제5정규형에서 조인 종속성 제거
53. 데이터베이스의 키 (Key)
- 슈퍼키 (Super Key)
: 한 릴레이션 내에 있는 속성들의 집합으로 구성.
- 유일성 (Unique) 만족, 최소성 (Minimality) 불만족.
- 후보키 (Candidate Key)
: 튜플을 고유하게 식별하기 위해 사용되는 속성들의 부분집합.
- 기본키 (Primary Key)
: 후보키 중에서 선정.
- 대체키 (Alternate Key)
: 후보키 중에서 기본키를 제외한 나머지 후보키.
- 외래키 (Foreign Key)
: 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합.
57. 트리거 (Trigger)
: 데이터베이스 시스템에서 이벤트(Event)가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
- 이벤트 (Event) : 데이터의 삽입(Insert), 갱신(Update), 삭제(Delete) 등
58. 관계대수 vs 관계해석
60. CRUD 분석
: 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석.
- 트랜잭션의 주기별 발생 횟수 파악 + 연관된 테이블들 분석
-> 데이블에 저장되는 데이터의 양 유추가능.
- 많은 트랜잭션이 몰리는 테이블 파악 가능
-> 디스크 구성 시 유용한 자료로 활용가능.
- 외부 프로세스 트랜잭션의 부하가 집중되는 데이터베이스 채널 파악 가능
-> 분산시킴 -> 연결 지연이나 타임아웃 오류를 방지가능.
[ 기출문제집 02회 ] 2022년 4월 기출
- 80 / 90 / 80 / 85 / 85
- 평균 84점
2022년 4월 기출
46. 개념적 설계 vs 논리적 설계 vs 물리적 설계
-
개념적 설계 (정보 모델링, 개념화)
: 현실세계 무한성과 계속성을 이해, 현실세계 인식을 추상적 개념으로 표현.
- 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해.
- 통신하기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현.
- 개념 스키마 모델링, 트랜잭션 모델링 병행 수행.
- 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성.
- DBMS에 독립적인 개념 스키마를 설계.
-
논리적 설계 (데이터 모델링)
: 현실세계 자료 -> 특정 DBMS가 지원하는 논리적 자료 구조로 변환.
- 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장하기 위해 변환.
- 데이터타입과 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화.
- DBMS에 따라 서로 다른 논리적 스키마를 설계.
- 트랜잭션의 인터페이스를 설계.
- 관계형 데이터베이스의 테이블 설계.
-
물리적 설계 (데이터 구조화)
: 논리적 구조로 표현된 데이터 -> 물리적 구조의 데이터로 변환.
- 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정.
- 레코드 양식, 순서, 접근 경로 등의 정보로 데이터가 컴퓨터에 저장되는 방법을 묘사.
- 고려사항 : 트랜잭션 처리량, 응답 시간, 디스크 용량, 저장 공간의 효율화 등
48. 데이터 사전
= 시스템 카탈로그 = 시스템 데이터베이스
: 메타데이터 (Metadata) (데이터베이스에 대한 데이터)를 저장.
- 직접 내용 추가불가. 직접 수정 불가.
- 내용 검색만 가능.
- 데이터 디렉토리 (Data Directory)
: 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보 관리.
52. SQL 명령
- DDL (데이터 정의어)
: CREATE, ALTER, DROP
- DML (데이터 조작어)
: SELECT, UPDATE, INSERT, DELETE
- DCL (데이터 제어어)
: COMMIT, ROLLBACK, GRANT, REVOKE
55. 기본키 (Primary Key)
- NOT NULL (널 값을 가지지 않음)
- 튜플을 구분 가능.
- 외래키로 참조 가능.