정보처리기사(필기)

3과목 : 데이터베이스 구축

으농농이 2022. 6. 24. 16:59

DDL(Data Definition Language)

- create : 생성

- alter : 테이블 수정

- drop : 데이터베이스, 테이블을 삭제

- truncate : 테이블 초기화 

 

PRIMARY KEY : 기본키 정의 / FOREIGN KEY : 외래키 정의
UNIQUE : 지정 속성은 중복값 가질 수 없음 / NO ACTION : 변화가 있어도 조취를 취하지 않음
CASCADE : 참조 테이블 튜플 삭제 시 관련 튜플 모두 삭제 및 속성 변경 시 속성값 모두 변경
RESTRICTED : 타 개체가 제거할 요소를 참조중이면 제거를 취소
SET NULL : 참조 테이블 변화 시 기본 테이블 관련 속성값 Null로 변경
SET DEFAULT : 참조 테이블 변화 시 기본테이블의 관련 튜플 속성값을 기본값으로 변경
CONSTRAINT : 제약 조건 이름 지정 / CHECK 속성값에 대한 제약 조건 정의

CHECK  : 개발자가 정의하는 제약조건 / 참(TRUE)이어야 하는 조건을 지정

DEFAULT : 해당 필드의 기본값을 설정

 

DML(Data Manipulation Language)
데이터 조작어란?

정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할을 하는 언어.

  • select : 데이터 조회
  • insert : 데이터 삽입
  • update : 데이터 수정
  • delete : 데이터 삭제

INSERT INTO ~ VALUES : 튜플 삽입 / DELETE FROM~ WHERE : 튜플 삭제
UPDATE ~ SET ~ WHERE : 튜플 내용 변경 / SELECT~FROM~WHERE : 튜플 검색
DISTINCT : 중복 튜플 발견 시 그 중 첫번째 하나만 검색 / DISTINCTROW : 중복 튜플 제거 및 하나만 검색 (튜플 전체를 대상으로 검색)
PREDICATE : 검색할 튜플 수 제한 / AS 속성명 정의
ORDER BY : 특정 속성 기준으로 정렬 후 검색할 때
ASC : 오름차순 / DESC : 내림차순 / 생략 시 오름차순
GROUP BY : 특정 속성 기준 그룹화하여 검색할 때 사용 having절과 같이 사용되어야함

CASCADE
- 데이터베이스 내의 임의의 다른 테이블과 PRIMARY KEY 또는 FOREIGN KEY로서의 관계가 여전히 존재하는 경우 PRIMARY KEY가 존재하는 테이블을 마음대로 제거 및 비활성화 할 수 없다.
- 즉, 부모 테이블과 자식테이블 간에 참조 설정이 되어 있을때 부모 테이블의 제약 조건을 비활성화 시키면서 이를 참조하고 있는 자식 테이블의 제약 조건까지 함께 비활성화시키기 위해 사용한다.
- 또한 부모 테이블만 삭제하고 싶을 경우, 원래는 자식테이블을 먼저 삭제하고 부모를 삭제 한 뒤 자식테이블을 다시 만들어야하는 번거로움이 따른다.
- 하지만 CASCADE를 쓰면 일시적으로 참조관계를 끊을수 있다.

 

DCL(Data Control Language)
데이터베이스에 접근하거나 객체에 권한을 주는등의 역할을 하는 언어

  • grant : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여
  • revoke : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수
  • commit : 트랜잭션의 작업을 저장
  • rollback : 트랜잭션의 작업을 취소, 원래대로 복구

튜플이란?

: 데이터베이스내의 주어진 목록과 관계있는 속성값의 모음이다

릴레이션을 구성하는 각각의 행 , 속성의 모임으로 구성 

파일 구조에서 레코드와 같은 의미이다. 

튜플의 수를 카디널리티 (cardinality) 또는 기수, 대응수라고 한다. 

 

뷰(VIEW)

뷰는 CREATE 문을 사용하여 정의한다. 

뷰 위에 또 다른 뷰를 정의할 수 있다. 

뷰는 사용자가 필요한 정보를 요구에 맞게 가공하여 뷰로 만들 수 있다

뷰에 대한 조작에서 삽입 , 갱신 , 삭제 연산은 제약이 있다 

뷰의 정의를 변경 하려면 뷰를 삭제하고 재생성 해야한다 

뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거된다. 
뷰는 데이터의 논리적 독립성을 제공한다. 
뷰를 제거할 때에는 DROP 문을 사용한다 

뷰는 물리적이 아닌 논리적으로 구성되어 있고 , 논리적 독립성을 제공

뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터

유도된, 이름을 가지는 가상 테이블이다.

저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주된다.

 

데이터 모델 개념 : 현실 세계의 정보를 컴퓨터가 이해할 수 있도록 추상화 하여 표현한 모델 

데이터 모델 구성요소 : 논리적데이터 구조,  연산 , 제약조건

데이터 모델 절차  개념적 데이터 모델 > 논리적 데이터 모델 > 물리적 데이터 모델 

 

< 데이터 베이스의 논리적 설계  - 데이터 모델링 >

데이터베이스의 논리적 설계 (logical design) 단계에서 수행

-현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에

저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
-개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
-개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계(종속적인 논리 스키마)
-트랜잭션의 인터페논이스 설계
-관계형 데이터베이스라면 테이블 설계
-특정목표 DBMS에 따른 스키마설계
-스키마의 평가 및 정제

 

*요구조건 분석 / 명세 : 데이터베이스의 사용자, 사용목적, 사용범위, 제약조건 등에 대한 내용을 정리하고 명세서를 작성
*개념적 설계 : 정보를 구조화 하기 위해 추상적 개념으로 표현하는 과정으로 개념 스키마 모델리오가 트랜잭션 모델링을 병행하고, 요구조건 분석을 통해 DBMS 독립적인 E-R 다이어그램을 작성
*논리적 설계 : 자료를 컴퓨터가 이해할 수 있도록 특정 DBMS의 논리적 자료 구조로 변환하는 과정
*물리적 설계 : 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정

개념적 설계
: 사용자의 요구사항 분석 후 , DB에 대한 추상적인 형태를 설계 

개념스키마 모델링 / 트렌젝션 모델링 / 독립적인 개념스키마설계 / E-R 다이어그램

논리적설계
:트렌젝션 인터페이스 설계 / 스키마 평가 및 정제 / 목표 DBMS에 맞는 논리스키마 설계 / 논리적구조의 데이터로 모델화

ERP를 이용하여 데이터베이스 스키마 설계 , 테이블 구조도, 개념적 설계 단계에서 생성된 ERD를 바탕으로 

생성되는 테이블들의 집합


물리적설계
:특정 DBMS가 제공하는 물리적 구조에 따라 테이블 저장 구조 설계 , 필드의 데이터타입 , 인덱스 , 테이블 저장 방법 등 정의

저장구조 및 액세스 경로 설정 / 레코드 집중의 분석,설계 / 저장 레코드 양식 설계

 

<관계형 데이터 모델>

위 테이블의 속성

relation : 1

attribute : 3

tuple : 5

 

relation : 테이블의 수
attribute : 열의 수
tuple : 행의 수

 

레코드 집중의 분석 및 설계는 물리적 설계이다 

<물리적 설계>

-논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환
-데이터 베이스 파일의 저장 구조 및 엑세스 경로 결정
-데이터가 컴퓨터에 저장되는 방법을 묘사
-저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계
-기본적 데이터 단위는 저장레코드
-성능에 중대한 영향을 미침

- 레코드 집중 분석 및 설계 

- 접근 경로 설계 

 

하나의 애트리뷰트가 가질 수 있는 원자값들의 집합은? 

> 도메인 

 

한 릴레이션에서 차수(degree)는 속성의 수를 말한다 

속성은 데이터 베이스를 구성하는 가장 작은 논리적 단위이다.

스키마 : 속성(attribute)의 집합 = 열 

인스턴스 : 튜플의 집합 = 행, 레코드

속성의 개수 = 차수 

튜플의 개수 = 카디널리티 

릴레이션 = 테이블

튜플 = 테이블의 행 

속성(attribute) = 테이블의 열

 

도메인은 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합으로서 각 속성의 도메인은 원자값을 갖음

도메인 (Domain)

- 관계 데이터 모델에서 데이터의 가장 작은 논리적 단위는 애트리뷰트 값이며, 이 값은 원자 값만을 허용한다.

- 같은 타입의 모든 원자값들의 집합을 그 애트리뷰트의 도메인이라고 한다. 

 도매인은 같은 도메인의 값들끼리 비교가 허용된다 

- 하나의 도메인에 대하여 둘 이상의 애트리뷰트가 정의될 수 있다. 

- 한 릴레이션에서 모든 애트리뷰트들의 이름이 반드시 달라야한다. 

 

데이터 베이스 시스템에서 삽입 , 갱신 ,삭제 이벤트 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 sql 

> 트리거 

 

무결성(integrity)

무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의 요소가 포함될 수 있다

무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다.

릴레이션 무결성 규정(Relation Integrity Rules)은 릴레이 션을 조작하는 과정에서의 의미적 관계(Semantic Relationship)을 명세한 것이다.

:데이터의 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 데이터의 무결성을 유지하는 것은 데이터베이스 관리시스템 (DBMS)의 중요한 기능이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다.

- 개체 무결성: 기본키 NULL값 안됨

개체 무결성 (Entity Integrity, 실체 무결성) : 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정
- 참조 무결성: 외래키

참조 무결성 (Referential Integrity) : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 규정

- 속성 무결성: 도메인

사용자 정의 무결성 (User-Defined Integrity) : 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정

 

 

잠금(lock)

: 삽입, 삭제, 갱신 등의 트랜잭션이 일어나는 동안 DBMS의 테이블, 행이나 열 등의 요소들은 잠기게 된다.
복귀(rollback) : 작업 중 문제가 발생되어 트랜잭션의 처리과정에서 발생한 변경사항을 취소하는 명령어

 

트랜잭션(Database Transaction)

: 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위

 

C언어 라이브러리 중 stdlib.h 에 대한 설명

C언어의 표준 라이브러리 , 문자열 변환 , 난수 생성 , 동적 메모리 관리등의 함수들을 포함하고 있다. 

 

strlen() 함수 → string.h 에 포함

표준 입출력 라이브러리 → stdio.h

삼각 함수, 제곱근, 지수 등 수학적인 함수 → math.h에 내장되어 있습니다

 

우선순위 높음  --------------------------------------------------------> 우선순위 낮음
증감 연산자( ++ -- )

산술 연산자( * / % )

산술 연산자( +   - )

시프트 연산자( << >> )

관계 연산자(=< => < > )

관계 연산자( == != )

비트 연산자( & ^ | ) 

논리 연산자( && ||)

조건연산자(?:)

대입연산자(= += *= /= %= <<= >>=)

순서 연산자( , )

 

TCP 프로토콜과 관련한 설명은? 

흐름제어 기능을 수행한다. 

전이 중 방식의 양방향 가상회선을 제공한다 

전송데이터와 응답 데이터를 함께 전송할 수 있다. 

 

 

응집도 순서 

우 논 시 절 교 순 기 

우연적 (coincidental) > 논리적 (logical) < 시간적(temporal) < 절차적(procedural) < 교환적(communication) < 순차적( sequential )  < 기능적 (function) 

 

프레임워크 (Famework) 에 대한 설명 

소프트웨어 프레임워크의 특징 

모듈화 

재사용성 

확장성 

제어의 흐름 

<트랜잭션의 특성>
 
Durability 영속성 : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
Consistency 일관성 : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
Atomicity 원자성 : 트랜잭션 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
Isolation 격리성 : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가하다.
독립성 : 둘 이상 트랜잭션이 동시 병행 실행될 경우 트랜잭션 실행 중 타 트랜잭션의 연산이 끼어들 수 없다.
Durablilit 지속성 : 성공적 완료된 트랜잭션 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

 
데이터 제어언어 (DCL) 의 기능 
- 데이터 보안 
- 무결성 유지 
- 병행 제어
DCL 데이터 제어 언어는 데이터 베이스 관릴자가 데이터 보안 ,무결성 유지 ,병행 제어 , 회복을 하기 위해 DBA가 사용하는 제어용 언어 

DDL : 기능 중 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의함

 

<정규화>

정규화는 논리적 설계 단계에서 수행되는 작업이다 

데이터 구조의 안정성을 최대화한다. 

중복을 배제하여 삽입 ,삭제, 갱신 이상의 발생을 방지한다 

데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다

 

정규화 과정 중 1NF 에서 2NF 가 되기 위한 조건은? 

1NF : 원자값으로 구성 

2NF : 부분 함수 종속 제거 ( 완전 함수적 종속 관계)

3NF : 이행 함수 종속 제거 

BCNF : 결정자 함수 종속

4NF : 다중값(다치) 종속성 제거 

5NF : 조인 종속성 제거 

 

 

'Y는 X에 함수종속이다' 라는 표기를 하기 위해선 X → Y 

보이스/코드 정규형 : 모든 결정자가 후보키 ,  BCNF 정규형에 속하는 릴레이션은 모두 제3 정규형에 속하지만 역으로는 성립되지 않는다

 

A→B 이고 B→C 일 때 A→C를 만족하는 관계를 다른 말로 말하면, 이행적 종속(Transive Dependency) 관계입니다.
이행적 함수 종속을 제거한다는 뜻은, 2NF(2정규형)에서 3NF(3정규형)가 되는 과정이다

제 1 정규화 작업을 했을 때 다음과 같이 된다. 

 

정규화의 목적 

- 어떤한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다. 

- 데이터 삽입시 릴레이션을 재구성할 필요성을 줄인다 

- 효과적인 검색 알고리즘을 생성할 수 있다. 

- 중복을 배제하여 삽입, 삭제 ,갱신 이상들을 제거하기 위해 정규화를 한다. 

 

도메인 무결성 제약 조건 : 주어진 속성 값이 정의된 도메인에 속한 값이어야한다 

참조 무결성 제약 조건 : 외래키의 값은 NULL 이거나 참조 릴레이션의 기본값과 동일해야한다 

릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다. 외래키 값은 참조 릴레이션의 기본키 값과 동일해야한다.

 

관계 대수 연산 

셀렉트(Select)  σ ::릴레이션에서 조건을 만족하는 튜플 반환
프로젝트(Project)  π ::릴레이션에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인(Join)  ⋈ ::공통 속성을 이용해 두개의 릴레이션 튜플들을 연결해 만들어진 튜플 반환
디비전(Division)  ÷  :: [R%S] ㅁS의 모든 튜플과 관련있는 릴레이션R의 튜플 반환

프로젝트(Project)  π :: 수직적으로 절단하는 것, 열을 선택적으로 가져옴

 

릴레이션 특징 (table)

똑같은 튜플을 포함하면 안됨

튜플사이에 순서없음

속성간 순서가 중요하지 않음

속성의 명칭은 유일 구성값은 동일값 가능

속성값은 원자값

 

< 분산데이터베이스 목표>

 

분산 데이터베이스 시스템에 대한 설명 

: 분산 데이터베이스 주요 구성 요소는 전역 , 분할 ,할당, 지역스키마가 있다. 

구성요소는 분산처리기, 순산데이터베이스 , 통신 네트워크가 있다. 

 

분산 데이터베이스는 논리적으로는 하나의 시스템에 속하지만 물리적으로는 여러 개의 컴퓨터 사이트에 분산되어 있다. 
위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성을 목표로 한다. 
데이터베이스의 설계가 비교적 어렵고, 개발 비용과 처리 비용이 증가한다는 단점이 있다. 

 

분할 투명성 (Division Transparency)

: 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장

 

지역사상 투명성

: 지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능 

 

위치투명성(Location Trasparency)

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

 

중복투명성(Replication Transparency)

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

 

병행투명성(Concurrency Transparency)

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

 

장애투명성(Failure Transparency)

: 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 트랜잭션을 정확히 처리함.

 

 

로킹(Locking) 단위란 말 그대로 "잠그는 단위"

로킹단위가 크면 > 로크 수가 적어짐 > 병행성 수준이 낮아짐 > 병행제어 기법이 간단해짐

로킹 단위가 작으면 > 로크의 수가 많아짐 

 

병행제어 로킹(Locking) 

- 데이터베이스 병행 제어를 위해 트랜잭션(transaction)이 접근하고자 하는 데이터를 잠가(lock) 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법이다.
- 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행
- 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없음
- 트랜잭션은 로킹이 된 데이터에 대해서만 연산을 수행
- 로킹 단위: 필드, 레코드, 테이블, 파일, 데이터베이스 모두 로킹 단위가 될 수 있다.
- 한 번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 한다.

- 데이터베이스 , 파일 , 레코드 등은 로킹의 단위가 될 수 있다. 

- 로킹이 작아지면 데이터 베이스 공유도가 증가한다. 

- 로킹의 단위가 커지면 로킹 오버헤드가 감소한다. 

- 로킹 단위가 작으면 , 로크의 수가 많아지고 제어기법이 까다로워져 병행성이 높아진다. 

 

E-R 모델의 표현방법

개체타입 : 사각형 

관계타입 : 마름모 

연결 : 선 

속성 : 타원 

 

* ER 모델:

요구사항으로부터 얻어낸 정보들을 개체(Entity), 애트리뷰트(Attribute), 관계성(Relation)으로 기술하는 데이터 모델

 

후보키(Candidate key)는 유일성 0 최소성 0

슈퍼키는 유일성 0 최소성 X

 

<key 의종류> 후보키(Candidate Key)

: 릴레이션을 구성하는 속성 중 튜플을 유일하게 식별하기 위한 기본키로 사용할 수 있는 속성들을 뜻한다.

기본키(Primary Key)

: 후보키 중에서 선택된 주키(Main Key)이다.

기본키는 후보키 중에서 특별히 선정된 주키(Main Key)이며 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다. 기본키는 중복된 값을 가질 수 없으며 NULL값을 가질 수 없다.

 

슈퍼키(Super Key)

: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키이다. 슈퍼키는 릴레이션에 있는 튜플에 대해 유일성을 만족시키지만, 최소성은 만족 시키지 못한다.

외래키(Foregin Key)

: 외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미한다. 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인상에서 정의되었을 때의 속성 A를 외래키라고 한다. 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1릴레이션의 속성 말한다.

 

대체키(Alternate Key)

:대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다. 대체키를 보조키라고도 한다.

 

릴레이션 조작시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상 

> anomaly (이상 현상)

 

삽입 이상 : 삽입할 때 의도와 달리 원하지 않은 값들도 함께 삽입되는 현상
삭제 이상 : 삭제할 때 의도와 달리 원하지 않은 값들도 함께 삭제되는 현상
갱신 이상 : 릴레이션에서 튜플에 있는 속성값 갱신할 때 일부 튜플의 정보만 갱신, 정보 모순이 생기는 현상

normalization (정규화)
roll back (롤 백)- 트랜젝션 취소 / 데이터베이스 업데이트 오류 발생시 이전 상태로 되돌리는 것
cardinality (카디널리티) - 튜플의 갯수

 

데이터베이스 로그(log)를 필요로하는 회복기법 

 

회복(Recovery)이란
트랜잭션 도중에 손상된 데이터베이스를 이전 상태로 복귀하는 작업
트랙잭션의 연산을 수행할 때 데이터베이스를 변경하기 전에 로그 데이터를 생성합니다.
취소(Undo) 연산으로 이미 데이터베이스에 쓰여진 것도 수정할 수 있습니다.

장애의 유형
트랜잭션 장애, 시스템 장애, 미디어 장애

즉각 갱신 기법(Immediate Update)
트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 데이터 베이스에 반영하는 기법
갱신한 모든 내용을 로그(Log)에 보관합니다.
회복 작업을 위해 취소(Undo)와 재시도(Redo) 모두 사용할 수 있습니다.

연기 갱신 기법(Deffered Updatae)
트랜잭션을 완료할 때까지 데이터베이스에 갱신을 연기하는 기법
트랜잭션 수행으로 갱신할 내용은 로그(Log)에 보관합니다.
트랜잭션이 부분 완료 시점에 Log의 기록을 실제 데이터 베이스에 반영합니다.
트랜잭션 수행 중에 장애가 발생하여 Rollback하여도 취소(Undo)할 필요가 없습니다.
재시도(Redo) 작업을 통해 최근의 정상적인 데이터베이스로 회복한 후에 트랜잭션을 재실행할 수 있습니다.

검사점 기법(Check Point)
트랜잭션 중간에 검사점을 로그에 보관하여 트랜잭션 전체를 취소하지 않고 검사점까지 취소할 수 있는 기법

그림자 페이지 대체 기법(Shadow Paging)-로그가 필요없음flf
트랜잭션의 연산으로 갱신할 필요가 있을 때 복사본인 그림자 페이지를 보관하는 기법
트랜잭션을 취소할 때 그림자 페이지를 이용하여 회복.
로그(Log), 취소(Undo), 재시도(Redo)할 필요가 없습니다

 

순수 관계 연산자 

: select / project / join / division

 

테이블에 필드가 누락되어 이를 추가 하려고 할때 적절한 명령어 

> Alter

 

modify는 테이블에 존재하는 컬럼의 데이터 유형 , 기본값 , not null 제약조건에 대해 변경할 때 사용한다.

 

SQL문 

UPDATE의 기본 형식은 

UPDATE 테이블명 SET 열 = 변경할 값  

 

사용자 PARK에게 테이블 [STUDENT]의 데이터를 갱신할 수 있는 시스템 권한을 부여하고자 하는

SQL문을 작성하고자 한다

> GRANT UPDATE ON STUDENT TO PARK

 

< 관계대수 >

- 관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어이다. 

- 관계 대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다. 

- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다. 

- 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다. 

-릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다

 

<관계대수연산>

일반집합 연산자 

-합집합

-교집합 

-차집합

-카티션 프로덕트 

 

<관계 해석> 

- 관계 데이터 모델의 제안자인 코드가 수학에 가까운 기반을 두고 관계 데이터 베이스를 위해 제안하여 탄생

- 관계해뷰석은 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할  때는 계산 수식을 사용함

- 관계 해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다 

- 튜플 관계해석과 도메인 관계해석이 있다. 

- 기본적으로 관계해석과 관계대수는 관계 데이터 베이스를 처리하는 기능화 능력면에서 동등하며 

관계 대수로 표현한 식은 관계 해석으로 표현 할 수 있다. 

 

* ∃: 존재한다(There exist)
* ∈: t가 r에 속함( t ∈ r )
* ∀: 모든 것에 대하여(for all)
* ∪: 합집합

 

데이터 웨어 하우스의 기본적인 OLAP (on-line analytical processing ) 연산은 

roll-up , slicing&dicing, drill-up&down , pivot  , drill-through 등이 있다. 

 

- 인덱스 정규화 : 인덱스는 키 값으로 행 데이터의 위치를 식별하는데 사용하는 기능

(인덱스 정규화는 인덱스를 효과적으로 사용하려면 정규화가 되어 있어야 하는 것을 말하는 듯)

 

인덱스(index) 

: 인덱스의 기본 목적은 검색 성능을 최적화 하는 것 

B-트리 인덱스는 분기를 목적으로 하는 Branch Block을 가지고 있다 

BETWEEN 등 범위(Range)검색에 활용할 수 있다. 

인덱스는 자동으로 생성되지 않으며, 기본키에 대한 인덱스만이 자동생성되어진다. 


- 반정규화 : 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해

중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

- 집단화 : 속성(유형, Type)들의 세트로 구성되는 새로운 속성(유형, Type)을 정의하는데 사용되는 개념

- 머징 : 둘 이상의 데이터 세트를 단일 데이터 세트로 결합 또는 공통된 컬럼명 또는 행 이름에 따라

데이터 프레임을 병합

 

<스키마 (Schema)의 종류 >

개념스키마 

사용자와 데이터베이스 관리자 관점의 스키마/ 데이터베이스에 실제로 어떤 데이터가 저장되었으며, 데이터 간의 관계는 어떻게 되는지를 정의하는 스키마로 전체 관점으로 한개만 존재하며 데이터개체, 관계,제약조건,접근권한, 보안 및 무결성등에 관한 정의를 포함

-내부 스키마
저장장치와 데이터베이스 설계자 및 개발자 관점의 스키마/ 개념 스키마를 물리적 저장장치에 구현하는 방법을 정의하는 데 사용하고 물리적 구조 및 내부 레코드의 물리적 순서 등을 표현

-외부 스키마
사용자 관점의 스키마/사용자 또는 프로그램의 입장에서의 논리적 구조로 여러개가 존재

 

SQL에서 스키마(schema), 도메인(domain), 테이블(table), 뷰(view), 인덱스(index)를 정의하거나 변경 또는 삭제할 때 사용 > DDL

 

시스템 카탈로그 

: 사용자가 갱신하는게 아니라, 시스템에서 자동갱신이 된다 

- 시스템 그 자체에 관련 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에관한 정보를 유지 괸리하는 시스템 테이블이다.

-DBMS 가 스스로 생성하고, 유지하는 데이터베이스 내의 특별한 테이블 집합체이다 

- 카탈로그에 저장된 정보를 메타 데이터 라고도 한다. 

 

 

회복(Recovery)
트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때
손상되기 이전의 정상 상태로 복구하는 작업

 

병렬 데이터베이스 환경 중 수평 분할에서 활용되는 분할 기법

 

병렬 데이터베이스 환경 - 수평 분할 (하나의 테이블의 각 행을 다른 테이블에 분산시키는 것 )

-범위분할

-해시분할

-라운드로빈 분할 

: 라운드 로빈 분할은 파티션에 행의 고른 분포를 원할 때 사용한다. 

그러나 , 해시분할과 달리 분할 칼럼을 명시할 필요가 없다. 라운드 로빈 분할로 회전하면서 새로운 행이 파티션에 할당된다. 테이블은 기본키가 반드시 필요하진 않다. 

 

<병행제어 기법의 종류>

병행제어는 동시에 여러개의 트랜잭션을 병행 수행할 때 , DB의 일관성을 파괴하지 않도록 제어하는 것 

- 로킹기법

- 타임 스탬프 기법

- 다중 버전 기법

 

시분할 기법은 사용자가 여러개의 작업이 동시에 수행하는 것처럼 느끼도록 분할하는 운영체제 운영기법임

 

릴레이션 R의 차수가 4이고 카디널리티가 5이며, 릴레이션 S의 차수가 6이고 카디널리티가 7일 때, 두 개의 릴레이션을 카티션 프로덕트한 결과의 새로운 릴레이 션의 차수와 카디널리티는 얼마인가

 

카티션 프로덕트 

두테이블의 곱집합 : 두개의 테이블은 카티션 프로덕트 후 튜플의 수는 각 테이블의 곱 , 컬럼은 각테이블의 컬럼을 

더한 것 과 같다. 

 

> 차수는 + 해주고, 카디널리티는 * 해주면 된다 

차수 4 + 6 =10 

카디널리티 5 *7 = 35

 

DELETE : 조건을 달아서 특정 행을 삭제할 때 

DROP : VIEW , TABLE , DATABASE 를 완전 삭제할 때 사용

INTERSECT :  교집합

UNION : 합집합

DIFFERENCE : 차집합 

CARTESIAN PRODUCT : 교차곱

 

동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 처리 순서를 미리 정하는 방법 

트랜젝션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임스탬프를 부여하여 부여된 시간에 따라 트랜젝션 작업을 수행하여 트랜잭션 간의 처리순서를 미리 정하는 기법

> 타임스탬프

 

데이터 모델의 구성요소 중 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업은? 

> Operation

 

저장 레코드 양식 설계 시 고려사항 

> 데이터 타입 , 데이터 값의 분포 , 접근빈도