데이터베이스 TOPCIT 교재 : https://www.topcit.or.kr/ebook/tech/ess02/JBook.htm
02 데이터베이스 구축 / 운영
- 데이터베이스 설계의 3단계 - 개념적, 논리적, 물리적 단계
- 개념적 데이터모델링 : 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행(EA 수립 시 많이 이용)
- 논리적 데이터모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
- 물리적 데이터모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능향상 및 저장의 효율화를 위해 물리적인 성격을 고려하여 설계
- 무결성과 키
- 데이터 무결성이란 데이터의 무효갱신으로부터 데이터를 보호하여 정확성, 유효성, 일관성, 안정성을 유지하려는 성질을 의미
1. 영역 무결성 : 속성 값은 원자성(Atomicity)를 가지며, 해당 도메인에서 정의된 값이어야 함
2. 키 무결성 : 테이블의 모든 레코드는 서로 식별 가능해야 함
3. 엔티티 무결성 : 기본키는 유일값이며 NULL이 될 수 없음
4. 참조 무결성 : 외래키는 NULL이거나, 외래키가 참조하는 테이블의 기본키에 존재해야만 함
5. 사용자 정의 무결성 : 다른 무결성 범주에 속하지않는 특정 업무 규칙 정의
- 키
1. 슈퍼키 : 테이블 내의 레코드를 유일하게 식별해 낼 수 있는 속성
2. 후보키 : 최소성을 갖는 수퍼키, 즉 수퍼키 중 한 속성이라도 제거하면 수퍼키의 성질을 잃는 경우에 이 수퍼키를 후보키라고 함
3. 기본키 : 후보키 중 하나이며, 설계자에 의해 선택됨, 튜플을 유일하게 식별하는 속성의 집합 (not null)
4. 외래키 : 다른 테이블을 참조할 때 원래 테이블의 외래키는 참조하려는 기본키를 참조하는 원래 테이블의 속성을 의미
- ERD 만질 줄 알아야 함
- 이상 현상
- 삽입 이상 : 어떤 정보 삽입 시에 원하지 않는 정보까지 함께 삽입해야만 하는 현상
- 삭제 이상 : 어떤 정보를 삭제시 필요한 정보까지 함께 삭제되어야 하는 현상
- 수정 이상 : 어떤 정보를 수정시 동일한 내용을 여러 건의 데이터에서 반복 수정해야 하는 현상
- 함수 종속성 ( X -> Y : 종속자 Y는 결정자 X에 함수적으로 종속됨 )
- 정규화 어떤건지 (두부이겨다줘), 2차, 3차 정규화 직접 해보기
- CREATE VIEW [테이블 이름] AS(
SELECT 주문. 주문번호,
주문.주문자명
주문목록.주문단가
주문목록.주문수량
FROM 주문, 주문목록
WHERE 주문.주문번호 = 주문목록.주문번호)
- GRANT SELECT ON [테이블 이름] TO v_user
- 도메인 정의 : 각 엔티티의 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념은 도메인이다.
- 관계 연산
- 관계 대수 : 원하는 정보를 얻기 위해 수행해야 할 연산의 순서를 명시하는 절차적 언어
합집합,교집합,차집합,카티션프로덕트 (일반집합) // 셀렉트,프로젝트,조인,디비전 (순수관계연산)
- 관계 해석 : 원하는 정보가 무엇인지를 정의하는 비절차적인 언어
- 관계데이터베이스 언어의 종류
DDL : CREATE, ALTER, DROP, RENAME
DML : SELECT, FROM, WHERE, INSERT, DELETE, UPDATE
DCL : GRANT, REVOKE, COMMIT, ROLLBACK
- 저장 프로시저 (Stored Procedure) : 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. DB에 대한 일련의 작업을 정리하여 DBMS에 저장한 것.
- 동적 SQL vs 정적 SQL
정적 : SQL문을 변수에 담지 않고 코드상에서 섞어서 기술함, 커서를 선언하여 SQL 구문을 정적 처리 (Looping 구조로 데이터 처리)
동적 : SQL 구문을 String형 변수에 담아 동적 처리함 (변경이 가능 하므로 NVL()처리가 필요없음)
- 옵티마이저 : 사용자의 다양한 요구에 따라 그 때마다 SQL문의 문법적 오류를 확인하고, 가장 빠른 데이터에 접근 경로를 작성하여 최적의 경로 및 처리 절차를 찾아주는 역할을 수행하는 DBMS 핵심 엔진
RBO(Rule Base Optimizer), CBO(Cost Base Optimizer)
- 트랜잭션 : 하나의 논리적인 작업 단위를 이루는 여러 연산들의 집합, 한 번에 수행되어야 할 읽기와 쓰기 연산을 수행하는 단위
A (Atomicity) : 연산 전체가 성공적이거나 한 가지라도 실패할 경우 전체가 취소되어 무결성 유지
C (Consistency) : 트랜잭션 성공적으로 완료 시 언제나 모순 없이 일관된 데이터베이스 상태 보존
I (Isolation) : 트랜잭션이 실행 중에 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가
D (Durability) : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장됨
- Commit과 Rollback 연산 알아두기
- 동시성(병행) 제어 : DB 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능
병행제어를 하지 않았을 경우 문제점 : 갱신 손실, 오손 데이터 읽기, 모순성, 연쇄복귀, 반복할 수 없는 읽기
- 동시성(병행) 제어 기법
- 2PL(2-Phase Locking) : 확장(Lock)과 수축(Unlock)을 통해 트랜잭션 처리
- 교착상태(Deadlock) : 다중처리 환경에서 트랜잭션이 특정자원의 할당을 무한정 기다리고 있는 상태
원인 : 상호배제, 점유와 대기, 비선점, 환형 대기
- 데이터베이스 장애의 유형
- 트랜잭션 장애 : 내부적인 오류로 트랜잭션 완료 불가
- 시스템 장애 : 전원, 하드웨어, 소프트웨어 등의 고장
- 디스크 장애 : 디스크 스토리지의 일부 또는 전체가 붕괴 (REDO 활용)
- REDO(재수행) 과 UNDO(취소)
- 데이터베이스 복구 기법
- 로그 기반 기법 : 로그파일을 이용해 복구 (REDO, UNDO)
- 검사점 복구 기법 : checkpoint (UNDO), 복구속도 빠름
- 그림자 페이징 기법 : UNDO만 씀 REDO 불필요, 다른기법과 함께 사용, 오버헤드발생가능
- 백업 종류 전체 백업 VS 차등 백업
- 전체 백업은 말 그대로 DB 전체를 백업, 차등 백업은 변경된 데이터에 대해서만 백업함
- 관계 DBMS가 지원하지 못하는 기능들을 객체관계 DBMS가 지원하는 것 3가지 ?
데이터 추상화, 상속, 캡슐화
- 데이터웨어하우스 : 내부와 외부 데이터를 주제별로 통합하여 별도의 프로그래밍 없이 즉시 분석할 수 있도록 하는 통합 시스템
- 데이터웨어하우스 모델링 : 정보분석을 쉽게 할 수 있도록 데이터를 팩트 테이블과 차원 테이블 형태로 구성
- ETL (Extraction, Transformation, Loading) : 데이터를 소스 시스템에서 추출하여 정제 후 데이터웨어하우스에 적재하는 작업까지의 전 과정
- OLAP : 최종 사용자가 매개체 없이 정보에 직접 접근하여 대화식으로 정보를 분석하고 활용.
- 데이터마이닝 : 데이터 안에서 체계적인 통계적 규칙이나 패턴을 탐색하고 이를 의미 있는 정보로 변환하여 기업의 의사결정에 적용하는 일련의 과정
- XML (Extensible Markup Language) : 웹 환경에서 데이터를 구조화하고 교환하기 위하여 표준으로 개발한 확장 가능한 마크업 언어
- XLL (Extensible Linking Language) : XML문서 간의 연결 및 XML 문서 내의 특정 위치 설정 등 링크 기능 수행 표준 언어를 의미한다
- NoSQL : 기존의 관계형 DB가 아닌 비정형, 초고용량 데이터 처리를 위해 쓰기속도에 중점을 둔 다수 서버에 데이터 복제 및 분산 저장 등 수평적 확장이 가능한 DB
'흑역사 > TOPCIT' 카테고리의 다른 글
[TOPCIT] 03. 네트워크와 보안 (0) | 2018.07.27 |
---|---|
[TOPCIT] 01. 소프트웨어 개발 정리 (0) | 2018.07.24 |