블로그 이전했습니다. https://jeongzero.oopy.io/
데이터베이스 관련 정리
본문 바로가기
정보처리기사/실기

데이터베이스 관련 정리

728x90

1. 데이터베이스의 정의 :

어느 한 조직에서 업무 처리를 위해 다수의 응용 시스템 혹은 사용자가 공용으로 상용하기 위해 통합 저장된 데이터들의 집합.

 

- 통합된 데이터 : 하나의 주제에 따라 중복을 최소화한 데이터 집합

- 저장된 데이터 : 언제든지 이용할 수 있도록 저장된 데이터의 집합

- 공용 데이터 : 다수의 응용 시스템이 공유할 수 있도록 만든 데이터의 집합

- 운영 데이터 : 중복을 최소화하고 여러 사람이 공유함에 있어 문제가 발생하지 않도록 관리를 필요로 하는 데이터

 

 

2. 데이터베이스의 특징

- 계속적인 변화

- 동시 공유

- 실시간 접근성

- 내용에 의한 참조

- 데이터 중복의 최소화

 

 

3. 데이터베이스의 구성 요소

- 개체

- 속성

- 관계

## : 시스템 카탈로그 : 데이터베이스에 저장되어 있는 개체들에 대한 정보와 관계를 저장한 것으로 그 자체가 하나의 작은 데이터베이스이다. 이는 데이터 사전이라고도하고 시스템 카탈로그에 저장된 데이터를 메타 데이터라고 한다.

 

 

4. DBMS의 정의 : 

파일 시스템의 문제점인 데이터의 중복과 종속성의 문제를 해결하기 위해 등장하였으며 사용자와 데이터베이스 간의 중계 역할을 한다. 즉, 데이터베이스를 관리, 운영하는 소프트웨어 시스템이다.

 

DBMS 구조


5. DBMS의 필수 기능

1) 정의 기능(DDL) : 데이터베이스 저장에 관한 사항을 정의하고 생성하는 기능

2) 조작 기능(DML) : 사용자의 요구에 따라 데이터를 검색, 갱신, 삽입 할 수 있는 기능

3) 제어 기능(DCL) : 데이터의 정확성과 안정성을 위해 무결성 유지 등을 제공하는 기능

 

 

6. 데이터베이스 스키마

1) 내부 스키마 : 물리적 저장 장치 관점(기계 관점)에서 본 데이터베이스의 물리적 구조

2) 개념 스키마 : 논리적 관점에서 본 전체적인 데이터 구조

3) 외부 스키마 : 사용하는 한 부분에서 본 논리적 구조.

 

 

7. DBA 정의 :

데이터베이스 시스템의 전체적인 관리 운영에 책임을 지는 사람이나 집단.

역할 : 스키마 정의, 무결성 관리, 구성 요소 설정 등

 

 

8. 키와 무결성 제약 조건

1) 후보키 : 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합

2) 기본키 : 후보키 중에서 특별히 선택된 키

3) 대체키 : 후보키중에서 기본키를 제외한 속성

4) 외래키 : 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블을 참조하기 위해 사용되는 속성

5) 슈퍼키 : 한 릴레이션 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들의 모든 조합

 

 

9. 무결성 제약 조건

1) 개체 무결성 제약 조건 : 기본키는 NULL이 올수 없으며, 중복될 수 없다.

2) 참조 무결성 제약 조건 : 외래키는 NULL값이 올수 있으며 참조 릴레이션의 기본키과 같아야 한다.

3) 도메인 무결성 제약 조건 : 속성값은 정해진 범위 이내의 값으로 구성해야 한다.

 

 

10. 정규화 

1) 제 1 정규화 : 한 릴레이션을 구성하는 모든 도메인이 원자값만으로 구성되도록 하는 정규형

2) 제 2 정규화 : 제 1 정규형을 만족하면서 릴레이션의 모든 속성이 기본키에 완전 함수적 종속이 되도록 분해하는 것

3) 제 3 정규형 : 1,2 정규형을 만족하면서 속성들간에 이행적 함수 종속관계를 분해하는 것.

4) BCNF 정규형 : 릴레이션의 모든 결정자가 후보키가 되도록 하는 것.

5) 제 4 정규형 : 다치 종속 관계가 성립되는 경우 분해하는 것.

 

 

11. 역정규화 : 

정규화된 릴레이션을 물리적 데이터 모델링 과정에서 성능을 향상시키기 위해 중복을 허용하고라도 다시 통합하거나 분할하여 구조를 재조정 하는 것.

 

 

12. 트랜잭션 : 

데이터베이스 내에서 한꺼번에 모두 수행되어야 할 연산들의 집합으로 하나의 작업 처리를 위한 논리적 작업 단위

 

 

트랜잭션의 성질(ACID)

1) Atomicity : 모든 연산은 반드시 수행 또는 모두 수행x

2) Consistency : 트랜잭션이 정상적으로 완료된 후 언제나 일관성있는 데이터베이스 상태가 되어야 함. 결과에 모순이 생기면 안됨

3) Isolation : 트랜잭션이 수행 중에는 다른 트랜잭션이 접근하면 안됨

4) Durability : 지속성, 결과는 지속되어야 함.

 

 

13. 회복 기법

1) 즉시 갱신 기법 : 트랜잭션이 실행 상태에서 변경되는 내용을 바로 데이터베이스에 적용하는 기법

2) 지연 갱신 기법 : 부분 완료후 적용

3) 검사 시점 기법 : 중간 검사시점을 설정하여 그때 적용

4) 그림자 페이징 : 로그를 사용하지 않고 데이터베이스를 동일한 크기의 단위인 페이지로 나누어 페이지마다 복사하여 그림자 페이지를 보관하는 기법

 

 

14. 병행 제어

1) 로킹 :

트랜잭션의 병행 실행 시 하나의 트랜잭션이 사용하는 데이터베이스 내의 데이터를 다른 트랜잭션이 접근하지 못하게 

2) 2단계 로킹 : LOCK 설정 + LOCK 해제

3) 타임 스탬프 : 접근할 시간을 미리 지정하여 접근시키는 것

 

 

15. 병행제어를 하지 않았을 때의 문제점

1) 갱신 분실 : 연산 결과의 일부가 사라짐

2) 모순성 : 일관성이 사라짐

3) 연쇄 복귀 : 하나의 트랜잭션의 취소로 인해 연쇄적으로 다른 트랜잭션도 취소되는 현상

4) 비완료 의존성 : 회복되기 이전에 실패한 갱신 결과를 참조하려는 현상

 

 

16. 튜닝 :

데이터베이스의 성능 향상과 사용자의 요구에 따라 빠른 검색을 통한 신속한 서비스 제공 등 데이터베이스 시스템을 최적화하기 위해 재조정 하는 것.

 

 

17. CRUD 매트릭스

응용 시스템과 데이터베이스 간의 업무 분석을 하기위한 상관 분석표

 

 

18. 트리거 :

테이블의 내용이 바뀌었을 때 데이터의 일관성과 무결성 유지를 위해 이와 연관된 테이블도 연쇄적으로 변경이 이루어질 수 있도록 하는 것.

 

 

19. 객체지향 기법의 특징

1) 캡슐화 : 다른 객체와 정보은닉이 이루어지도록 하느 ㄴ것.

2) 추상화 : 객체에서 표현하고자 하는 것을 가시화하여 추출하는 과정

3) 메시지 : 어떤 처리를 하도록 지시하는 명령

4) 메소드 : 메시지에 따라 객체가 실행해야 할 구체적인 연산

5) 클래스 : 유사한 성격과 공통적인 특성을 갖는 객체들의 모임.

728x90