bread, coffee and coding
정보처리기사: 2021년 05월 15일 기출 문제 풀이 3과목 본문

병렬 데이터 베이스?? 수평 분할??

시스템 카탈로그란 뭘까
시스템 카탈로그는 데이터베이스 관리자의 도구로, 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보가 수록되어 있는 시스템 테이블이다
한마디로 데이터베이스 관리자 도구
시스템 카탈로그는 DBMS가 스스로 생성하고 유지하기 때문에 인서트, 딜리트, 업데이트 문으로 갱신하는 것을 허용하지 않는다..

where 절에는 원하는 조건이 들어가고
select 뒤에 distinct 들어가서 중복되는 레코드를 없앤다

정리 한번들어가자
DDL
creat => 테이블 생성
drop => view , table, database를 삭제 할 때 사용
alter => 데이터 컬럼 구조를 변경 할때 쓴느것
컬럼?
튜플 = 로우 ----> 튜플의수, 로우의 수 == 카디널리티
애트리뷰트 = 컬럼 ---> 애트리뷰트의 수 , 컬럼의 수 == 차수 (속성의 수)
릴레이션명은 테이블 명이라고 해도 될거 같다

DML
insert / update / delete
DDL 과 DML이 헷갈린다
--> DDL은 전체적인 모양틀과 네모박스들을 생각하고 DML은 안에 들어가는 데이터를 생각하면 쉽게 이해 가능
뷰??
오라클이라 마리아 디비에서 select 문을 사용하여 보고 싶은 로우와 컬럼를 골라내어 보는것

DDL => creat / drop / alter / rename
중하나 그러면 1 번 3 번 중 하나가 정답
alter은 테이블에 대한 정의 수정 및 변경
creat는 스키마 도메인 인덱스 정의

select 학번 from R1
intersect
select 학번 from R2
intersect 는 중복
즉 r1의 학번과 r2의 학번이 중복되는것을 찾으면 됌
교집합

데이터베이스의 설계 단계(요개논물구)
요구조건 분석/명세 -> 개념적 설계( E-R모델) -> 논리적 설계(데이터 모델링) -> 물리적 설계 (데이터 구조화) -> 구현
요 개 논 물 구
요개년 물구나무 선다
요개논물구
개념적 설계: 요구사항 분석후, 데이터베이스에 대한 추상적인 형태 설계 , 개념적 스키마 생성
논리적 설계 : 논리적 모델을 이용하여 논리적 스키마 생성, ERD를 이용하여 데이터베이스 스키마 설계
물리적 설계 : 특정 DBMS가 제공하는 물리적 구조에 따라 테이블 저장 구조 설계,인덱스 테이블 저장 방법 등을 정의

무결성이란?
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미
무결성 제약 조건은 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터 베이스 내에 저장되는 것을 방지 하기 위한 제약 조건을 말함
무결성의 종류에는 개체 무결성, 도메인, 참조 무결성 사용자 정의 무결성 등이 있다.
개체 무결성 = 엔티티 인테그랄 = 엔티티 무결성 = 기본키 무결성 : 릴레이션에서 기본키를 구성하는 속성은 널 값이나 중복값을 가질 수 없다.
참조 무결성 : 외래키 값은 null 값이거나 참조 릴레이션이 기본키 값과 동일해야함
도메인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야한다.

병행제어란 뭘까?
병행제어의 목적
데이터베이스 일관성 유지하면서 공유를 최대화, 시스템 활용도 최대화, 사용자 응답시간 최소화
병행제어 실패 현상
dirty write ( 갱실 분실 = lost update)
- 같은 데이터에 동시에 두 개 이상의 트랜잭션이 값을 바꾸고자 함
dirty read
- 비완료 의존성(uncommitted Dependency) 라고도 한다
아직 commit 되지 않은 트랜잭션의 내용을 읽으려고 함
commit -> 하나의 논리적 단위에 대한 작업이 성공적으로 끝나고 데이터베이스가 다시 일관된 상태에 있을 때 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산
즉 작업이 성공적으로 끝나고 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산
rollback -> 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터 베이스의 일관성이 깨졌을 때, 이 트랜잭션의 일부가 정삭적으로 처리되었더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜젹션이 행한 모든 연산을 취소시키는 것으로 해당 트랜잭션을 재시작하거나 폐기함
즉 하나라도 트랜잭션의 처리가 비정상적으로 종료되면 다른 트랜잰션의 연산을 취소 시키거나 비정상적으로 연산한 트랜잭션을 폐기하는것 , 수행한 결과를 원래의 상태로 원상 복귀 시키는 것
병행 제어 기법
1. 로킹(Locking)
트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹 수행
로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음
로킹 단위가 크면 -> 관리하기 용이(로킹오버헤드감소) 하지만 병행성 수준(동시성 수준) 낮아짐
로킹 단위가 작으면 -> 병행성(동시성 수준)이 높아지지만 관리가 까다로움 (로킹 오버헤드 증가)
교착 상태가 발생할 수 있다
2. 타임스탬프(Time stamp)
데이터에 접근하는 시간을 미리 정하여서 정해진 시간의 순서대로 데이터에 접근하여 수행
직렬가능성을 보장
교착 상태가 발생하지 않는다
3. 낙관적 병행제어(Optimistic Concurrency Control)
트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사
트랜잭션 종료 시에 동시성을 위한 트랜잭션 직렬화가 검증되면 일시에 DB로 반영
4. 다중 버전 병행 제어(Multi-version, Concurrency Control)
여러 버전의 타임스탬프를 비교하여 스케줄상 직렬가능성이 보장되는 타임스탬프를 선택
충돌이 발생할 경우 복귀 수행, 연쇄 복귀 발생 가능성

과목 번호와 과목 이름이 나와있다
c100 -> 학번 1000 / 3000
c200 ->학번 2000/ 3000/ 4000/ 5000
학번이 같은것은 3000 즉 강남길
답 1

순수관계연산자
select = > 행을 다 가져온다 행 -> 튜플 =로우
project = > 열을 다 가져 온다 -> 에트리뷰트 = 컬럼 (속성)
join = > 공통 속성을(컬럼) 이용해 두개의 릴레이션 튜플을 연결
division = > 모든 튜플과 관련있는 릴레이션r의 튜플 반환

카티션 프로덕트 -> 교차곱
차수는 더해주고 카디널리티는 곱

속성의 수는 차수 drgee 라고 한다
cardinality는 로우 / 튜플 /

update -> set 이라고 외우자

차수 = 속성의 수 = 컬럼의 수 = 애트리뷰트의 수
기수 = 튜플의 수 = 로우의 수

E-R 그래프에서 삼각형이나오면 무조건 오답

트랜잭션이 실행하였는데 실패하면 ROLLBACK 연산으로 원래 상태로 복귀시키거나 다른 트랜잭션의 연산을 취소하거나 해당 트랜잭션 폐기시킴

데이터베이스에서 데이터 처리 연산 수행시 !!
검색은 데이터 처리 연산 수행시 보단 잘못된 코드작성으로 인한 이상 현상이 발생함

도 부 이 결 다 조?
도메인 -부분 함수 종속 제거 - 이행 함수 종속 제거 - 결정자가 후보키가 아닌 함수 종속 제거 - 다중치 종속 제거 - 조인 종속 제거
문제에서 제 3정규형에서 BCNF가 되기 위한 조건은 결정자 후보키가 아닌 함수 종속 제거(보이스 코드 정규형(BCNF)
'Certificate' 카테고리의 다른 글
| 정보처리기사: 2021년 05월 15일 기출 문제 풀이 4과목 (0) | 2021.08.10 |
|---|---|
| 정보처리기사: 2021년 05월 15일 기출 문제 풀이 2과목 (0) | 2021.08.09 |
| 정보처리기사: 2021년 05월 15일 기출 문제 풀이 1과목 (0) | 2021.07.26 |
| 제 1과목 소프트웨어 설계(요구사항 확인) (0) | 2021.07.10 |