✏️

정보처리기사 필기 요점정리 | 3️⃣ 데이터베이스 구축 본문

ETC./정보처리기사 필기

정보처리기사 필기 요점정리 | 3️⃣ 데이터베이스 구축

콩세 2023. 3. 27. 23:30

3과목 데이터베이스 구축

DCL
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
- ROLLBACK : 명령어로 수행을 실패하였음을 알리고, 수행된 결과를 원상복구시킨다.
- GRANT : 데이터베이스 사용자에게 사용 권한 부여한다.
- REVOKE : 데이터베이스 사용자로부터 사용 권한 취소한다.
DDL
- CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
- ALTER : TABLE에 대한 정의를 변경하는 데 사용. 컬럼 추가, 삭제, 수정, 이름변경 등
- DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제
DML
- SELECT : 테이블에서 조건에 맞는 튜플을 검색
- INSERT : 테이블에 새로운 튜플을 삽입
- DELETE : 테이블에서 조건에 맞는 튜플을 삭제
- UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경

DISTINCT는 SELECT 뒤에.
UPDATE 기본 형식은 [ UPDATE _ SET _WHERE ]
GRANT UPDATE (컬럼1, 컬럼2, ...) ON 테이블명 TO 사용자명;

View
- 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.
- 하나 이상의 기본 테이블로부터 유도되어 만들어지는 가상 테이블
데이터의 논리적 독립성을 제공한다
- CREATE view를 사용해 만든다
- 논리적으로만 존재한다
- 삽입, 갱신, 삭제 연산 시 제약 사항이 있음
⁃ 자체적으로 인덱스를 가지지 않습니다. 따라서 삽입 삭제 수정이 제한적인 것
- 뷰 정의를 변경하려면 뷰를 삭제하고 재생성 해야된다.

데이터베이스 트랜잭션 특징
- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
Commit Rollback 나오면 원자성!
- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

기본키
- 유일성과 최소성을 만족하는 속성을 가지는 후보키 중에 지정된 하나의 키
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
- NULL값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재해야 한다.
- 기본키는 후보키의 성질을 갖는다. 튜플을 식별하기 위해 반드시 필요한 키
- 검색할때 반드시 필요한건 아님
- 테이블에 기본키 설정은 필수가 아니다.
- 기본키를 설정하지 않고도 다른 테이블과의 관계를 설정할 수 있다.
- 기본키는 혼합속성(다수 필드)에 설정할 수 있다.

Super key(슈퍼키)
- 데이터베이스에서 테이블의 행을 고유하게 식별할 수 있는 속성 or 속성의 집합
- 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
- 유일성은 만족시키지만 최소성은 만족시키지 못한다.

Foreign Key(외래키)
- 다른 릴레이션의 기본키를 참조하는 키
- 관계형 데이터베이스에서 한 테이블 속성 집합이 다른 테이블의 기본키가 됨.
- 데이터베이스 내에 존재하는 테이블들의 관계에서 참조의 무결성을 보장하기 위함임
- 중복되는 값, 비어있는 값(Null) 가질 수 있음(<->기본키)

Candidate key(후보키)
- 유일성과 최소성을 만족하는 속성 or 속성들의 집합
- 슈퍼키 중 최소성을 만족하는 것이 후보키가 됨.
- 후보키(candidate key)는 기본키(primary key)로 사용 할 수 있으며, 후보키가 여러개일 경우에는 하나를 지정해 사용

데이터베이스 인덱스
- 데이터베이스 성능에 많은 영향을 주는 DBMS의 구성 요소
- 테이블과 클러스터에 연관되어 독립적인 저장 공간을 보유
- 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위하여 별도로 구성한 순서 데이터를 말한다.
- 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제된다.
- 인덱스 생성 : CREATE
- 인덱스 삭제 : DROP

인덱스 정규화
- 인덱스는 키값으로 행 데이터의 위치를 식별하는데 사용하는 기능
반정규화
- 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

저장 레코드 양식 설계 시 고려 사항
- 데이터 타입, 데이터 값의 분포, 접근 빈도

트랜잭션 모델링
- 트랜잭션을 개념적 시스템 독립적으로 정의한다.
- 트랜잭션의 입출력 기능, 형태만 정의한다.
- 검색, 갱신, 혼합(검색, 갱신)

릴레이션의 특징
- 튜플의 유일성 : 모든 튜플은 서로 다른값을 갖는다
- 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없다
- 속성의 원자성 : 속성값은 원자값을 갖는다
- 속성의 무순서성 : 각 속성은 릴레이션내에서 유일한 이름을 가지며, 순서는 큰 의미가 없다
- 도메인(domain)은 하나의 속성이 가질 수 있는 같은 타입의 모든 값의 집합으로 각 속성의 도메인은 원자값을 갖는다.

데이터베이스 설계
<개 논 물>
개념적 설계 : 트랜잭션 모델링 / 독립적인 개념 스키마 모델링 / 개념스키마 설계 / E-R 다이어그램
논리적 설계 : 트랜잭션 인터페이스 설계 / DBMS에 맞는 논리스키마 설계 / 테이블 설계 / 논리적 매핑 / 스키마 평가 및 정제
물리적 설계 : 레코드 집중의 분석,설계 / 저장레코드 양식 설계 / 저장 구조 및 액세스 경로 설정

스키마 종류
-개념 스키마
사용자와 데이터베이스 관리자 관점의 스키마/데이터베이스에 실제로 어떤 데이터가 저장되었으며, 
데이터 간의 관계는 어떻게 되는지를 정의하는 스키마로 전체 관점으로 한개만 존재하며 접근권한, 보안 및 무결성등에 관한 정의를 포함
-내부 스키마
저장장치와 데이터베이스 설계자 및 개발자 관점의 스키마/개념 스키마를 물리적 저장장치에 구현하는 방법을 정의하는 데 사용하고 
물리적 구조 및 내부 레코드의 물리적 순서 등을 표현
-외부 스키마
사용자 관점의 스키마/사용자 또는 프로그램의 입장에서의 논리적 구조로 여러개가 존재

데이터 모델의 구성 요소
<구 연 제>
- 구조(Structure) : 논리적인 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현
- 연산(Operation) : 실제 데이터를 처리하는 작업에 대한 명세로, 조작하는 기본 도구
- 제약 조건(Constraint) : DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

논리 데이터 구성요소
< 개 속 관 >
개체 / 속성 / 관계

속성(attribute)의 수 : 차수(degree) <열> 열차
튜플(tupple)의 수 : 카디널리티(기수) <행> (비)행기 <튜카행>

A→B 이고 B→C 일 때 A→C인 관계 = 이행적 종속 관계

함수적 종속
어떤 릴레이션 R이 있을때 X와 Y를 각각 속성의 부분집합이고
X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때
Y는 X에 함수적 종속 [ X → Y ]

Cartesian Product 카디션 프로덕트 : 두 테이블의 곱집합
컬럼(열)의 합, 튜플(행)의 곱

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

관계 대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
- 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
- 일반 집합 연산과 순수 관계 연산으로 구분된다.
- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

분산 데이터베이스 시스템
주요 구성 요소
<전 분 할 지> : 전역 / 분할 / 할당 / 지역 스키마

로킹 (병행제어 기법의 종류 중 하나)
-직렬화 기법
-데이터베이스, 파일, 레코드 등은 로킹단위가 될 수 있음.
-로킹 단위가 작아지면, 데이터 베이스 공유도 증가.
-로킹 단위가 작아지면, 로킹 오버헤드 증가.
-로킹 단위가 작아지면, 로크의 수 증가.
-로킹 단위가 작아지면, 병행성 수준이 높아짐.
-한꺼번에 로킹할 수 있는 객체의 크기를 로킹단위 라고 함.

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

데이터베이스 무결성 규정
개체무결성 = 모든 테이블이 기본키로선택된 컬럼을 가져야함
기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다
참조무결성 = 참조관계의 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지하는것
도메인무결성 = 테이블에 존재하는 필드의 무결성을 보장하기 위한 것
무결성규칙 = db에서 무결성규칙은 데이터무결성을 지키기 위한 모든 제약사항

순수관계연산자
- select σ ⇒수평단절, 행을 다가져옴
- project π ⇒수직단절, 열을 다가져옴
- join ▷◁ : 공통 속성을 이용해 두개의 릴레이션 튜플을연결→만들어진 튜플로 반환
- division ÷ : 릴S의 모든 튜플과 관련있는 릴R의 튜플반환

병행제어 기법
<로타 최다>
- 로킹 기법
- 타임 스탬프 기법
- 최적 병행 수행 기법(검증,확인,낙관적 기법)
- 다중 버전 기법

이상 현상
<삽 삭 갱 (삽살개)>
삽입 / 삭제 / 갱신

CRUD 분석
생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 영어 앞글자를 모아 만든 용어
데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것

데이터웨어하우스 Data warehouse
급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고,
여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스

OLAP 연산 ★책이나 PDF 찾아보기
Roll-up, slicing & dicing, drill-up & down, pivot, drill-through 등

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

분산데이터베이스 투명성 조건
분산데이터베이스는 6가지 투명성

1. Location Transparency (위치 투명성)
: 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적 명칭만으로 액세스할 수 있음
2. Replication Transparency (중복 투명성; 복제 투명성)
: 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행
3. Failure Transparency (장애 투명성)
: 장애가 발생해도 트랜잭션을 정확하게 처리하고 데이터 무결성을 보장함
4. Concurrency Transparency (병행 투명성)
: 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
5. Division Transparency (분할 투명성)
: 하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장되어 있음을 인식할 필요가 없음