3과목 데이터베이스 정리
3과목 데이터베이스 구축
1. SQL 구조
트리거 : 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
무결성 : 데이터베이스에 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성
잠금 : 같은 자원을 엑세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
복귀 : 데이터베이스에서 업데이트 오류가 발생할 때, 이전 상태로 되돌리는 명령어
2. SQL 언어
분류
|
설명
|
데이터 정의어(DDL)
|
데이터를 정의하는 언어
테이블이나 관계의 구조를 생성하는데 사용
크알드투 (CREATE, ALTER, DROP, TRUNCATE)
|
데이터 조작어(DML)
|
데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
세인없대 (SELECT, INSERT, UPDATE, DELETE)
SELECT 문은 특별히 질의어(Query) 라고 부름
|
데이터 제어어
(DCL)
|
데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행성 제어, 회복을 위해 사용하는 제어용 언어
GRANT, REVOKE
|
트랜잭션 제어어
(TCL)
|
COMMIT, ROLLBACK, CHECKPOINT
|
3. SQL 논리 연산자
OR, NOT, AND
4. DISTINCT(중복제거)
- DISTINCT 의 경우 동일한 튜플을 제거하고 검색함
검색결과에 중복되는 레코드를 없애기 위해서는 SELECT 절에 DISTINCT 키워드를 사용함.
5. DML 문법
연산
|
설명
|
갱신
|
UPDATE~SET
|
삭제
|
DELETE~FROM
|
삽입
|
INSERT INTO~VALUES
|
6. 오름차순, 내림차순
내림차순 : DESC / 오름차순 : ASC
ORDER BY 절에서 자주 사용함
7. 트랜잭션 연산 기법
연산
|
설명
|
COMMIT;
|
데이터베이스 트랜잭션 내용 업데이트를 영구적으로 확정
|
ROLLBACK;
|
데이터베이스 업데이트 오류 발생 시 이전 상태로 되돌림
|
SAVEPOINT 이름;
|
특정 지점을 지정
|
ROLLBACK TO
SAVE POINT 이름;
|
SAVEPOINT로 지정한 부분 이후에 발생한 트랜잭션 취소
|
8. GRANT REVOKE
문법
|
설명
|
GRANT 권한 ON 테이블 TO 사용자
[WITH 권한옵션]
|
관리자가 사용자에게 테이블에 권한을 부여하는 명령어
WITH GRANT OPTION은 사용자가 권한을 받고 난 후, 다른 사람들과 권한을 나눠가질 수 있는 옵션
|
REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE]
|
관리자가 사용자에게 부여했던 테이블에 대한 권한을 회수하는 명령어
CASCADE는 연쇄적인 권한을 해제할 때 입력(WITH GRANT OPTION으로 부여된 사용자들의 권한까지 취소)
|
9. OLAP(On-Line Analytical Processing) 연산
ROLL-UP : 분석할 항목에 대해 구체적인 데이터로부터 요약된 형태의 데이터로 접근하는 연산
DRILL-DOWN : 분석할 항목에 대해 형태의 데이터로부터 구체적인 데이터로 접근하는 연산
SLICING:온라인 분석처리를 위한 자료 구조인 데이터 큐브의 한 조각을 볼 수 있게 해주는 연산
DICIDING : 고정된 다차원 값에 대한 연산
PIOVITING : 다차원 분석 테이블인 크로스 테이블에서 차원 변경을 위해 사용되는 연산
10. DDL 대상
대상
|
설명
|
도메인
|
하나의 속성이 가질 수 있는 원잣값들의 집합
속성의 데이터 타입과 크기, 제약조건 등의 정보
|
스키마
|
데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
|
테이블
|
데이터를 저장하는 항목인 필드들로 구성된 데이터의 집합체
|
뷰
|
하나 이상의 물리 테이블에서 유도되는 가상의 테이블
|
인덱스
|
검색을 빠르게 하기 위한 데이터 구조
|
11. 스키마
스키마
|
설명
|
외부 스키마
(External Schema)
|
사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조
사용자 뷰를 나타냄
서브 스키마로 불림
|
개념 스키마
(Conceptual Schema)
|
데이터베이스의 전체적인 논리적 구조
전체적인 뷰를 나타냄
개채 간의 관계, 제약조건, 접근 권한, 무결성, 보안에 대해 정의
|
내부 스키마
(Internal Schema)
|
물리적 저장장치의 관점에서 보는 데이터 베이스 구조
실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 표현
|
12. DBMS 구성요소
보기
|
설명
|
트랜잭션
(Transaction)
|
데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
|
역정규화
(Denormalization)
|
정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 성능 향상과, 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
|
트리거
(Trigger)
|
데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
|
13. SQL 명령어
INSERT : 테이블에 새로운 튜플을 삽입할 때 사용하는 명령어
ALTER : 테이블에 필드를 추가, 수정, 삭제하기 위해 사용하는 명령어
DROP : 데이터베이스 오브젝트 삭제하는 명령어
MODIFY : 테이블에 필드를 수정할 때 사용하는 키워드
14. CASCADE, RESTRICT
CASCADE : 참조하는 테이블까지 연쇄적으로 제거하는 옵션
RESTRICT : 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션
15. 트랜잭션 특성
A C I D
원자성(Atomicity) : 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질
일관성(Consistency) : 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 하는 성질
고립성(Isolation) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질
영속성(Durability) : 성공이 완료된 트랜잭션 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질
16. 로킹(Locking) 특징
데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있음
로킹 단위가 작아지면 데이터베이스 공유도 증가
로킹 단위가 작아지면 로킹 오버헤드가 증가
로킹 단위가 크면 형행성 수준이 낮아짐
한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 함
17. 병행 제어 기법의 종류
로 낙 타다
로킹, 낙관적 검증, 타임 스탬프 순서, 다중버전 동시성
18. 병행 제어의 목적
데이터베이스의 공유를 최대화
시스템 활용도를 최대화
데이터베이스의 일관성 유지
사용자에 대한 응답시간 최소화
19. 뷰
논리적으로 구현되는 테이블
장점
논리적 독립성 제공
데이터 접근제어로 보안 기능 제공
사용자의 데이터 관리를 간단하게 함
하나의 테이블로 여러 개의 뷰를 만들 수 있음
단점
- 독자적인 인덱스를 가질 수 없고, 정의 변경 불가능
삽입, 삭제, 갱신 연산에 많은 제약이 따름
20. 차수(Degree) 와 카디널리티(Cardinality)
속성(애트리뷰트) = 차수
튜플 = 카디널리티
카티션 프로덕트에서 차수는 각 릴레이션 차수의 합이 되고, 카디널리티는 각 릴레이션 카디널리티의 곱이 됨
차수 = 합, 튜플 = 곱
21. 관계 데이터베이스의 관계 대수 연산
* 일반 집합 연산자 (합 교 차 카)
합집합/교집합/차집합/카티션 프로덕트
* 순수 관계 연산자 (셀 프 조 디)
셀렉트/프로젝트/조인/디비전
22. 관계 대수와 관계 해석
관계 대수 = 절차적 언어
관계 해석 = 비절차적 언어
23. 데이터 모델에 표시해야 할 요소
구연제
구조(Structure), 연산(Operation), 제약조건(Constraint)
24. 데이터베이스 설계
단계
|
설명
|
요구 조건 분석
|
도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호작용 분석을 통해 데이터에 대한 요구 분석
|
개념적 설계
|
트랜잭션 모델링, view 통합방법 및 attribute 합성 고려
개념적 데이터 모델은 DB 종류와 관계가 없음
|
논리적 설계
|
트랜잭션 인터페이스를 설계함
관계형 데이터베이스에서는 테이블을 설계하는 단계
DBMS에 맞는 논리적 스키마를 설계
논리적 데이터베이스 구조로 매핑
스키마의 평가 및 정제
|
물리적 설계
|
저장 레코드의 양식 설계
레코드 집중의 분석 및 설계
접근 경로 설계
|
25. 이상현상의 종류
삽입 이상 : 릴레이션에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들도 함께 삽입되는 현상
삭제 이상 : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제되는 현상
갱신 이상 : 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
삽 삭 갱
26. 분산 데이터 베이스 투명성 종류
위치 투명성 : 사용자나 응용 프로그램이 접근할 데이터의 물리적 위치를 알아야 할 필요가 없는 성질
복제 투명성 : 사용자나 응용 프로그램이 접근할 데이터가 물리적으로 여러 곳에 복제되어 있는지의 여부를 알 필요가 없는 성질
병행 투명성 : 여러 사용자나 응용 프로그램이 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 발생하지 않는 성질, 로킹, 타임스탬프 순서 기법 이용
분할 투명성 : 사용자가 하나의 논리적인 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 장소에 저장되어 있음을 알 필요가 없는 성질
장애 투명성 : 데이터베이스가 분산되어 있는 각 지역의 시스템이나 통신망에 이상이 생기더라도, 데이터의 무결성을 보존할 수 없는 성질, 2PC(Phase Commit) 활용
27. 파티션 유형
레해리컴라
범위 분할(Range Partitioning), 해시 분할(Hash Partiotiong), 조합분할(Composite Partioning), 라운드-로빈 분할(Round-Robin Partitioning)
28. 무결성 종류
종류
|
설명
|
참조 무결성
|
외래키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL 이어야 하는 제약조건
|
개체 무결성
|
한 엔터티에서 동일한 기본 키를 가질 수 없거나, 기본키 속성이 NULL을 허용할 수 없는 제약 조건
|
속성 무결성
|
속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수하여야 하는 제약 조건
|
사용자 무결성
|
사용자의 의미적 요구사항을 준수해야 하는 제약조건
|
키 무결성
|
한 릴레이션에 같은 킷값을 가진 튜플들을 허용할 수 없는 제약조건
|
29. 키 종류
종류
|
설명
|
기본키
(Primary key)
|
테이블의 각 튜플을 고유하게 식별하는 컬럼
|
대체키
(Altetnate Key)
|
후보 키 중에서 기본 키로 선택되지 않은 키
|
후보 키
(Candidate Key)
|
테이블에서 각 튜플을 구별하는 데 기준이 되는 키
유일성 최소성 둘 다 만족
|
슈퍼 키
(Super Key)
|
릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키 / 유일성 만족 최소성 만족 x
|
외래 키
(Foreign Key)
|
테이블 간의 참조 데이터 무결성을 위한 제약조건, 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키
|
30. CRUD 분석
데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석함