정보처리기사

데이터베이스 구축-1

sejin2 2024. 6. 13. 11:49

데이터베이스의 정의

정의 설명
통합 데이터 (Integrated Data) 검색의 효율성을 위해 중복이 최소화된 데이터의 모임
저장 데이터 (Stored Data) 컴퓨터가 접근 가능한 저장 매체에 저장된데이터
운영 데이터 (Operational Data) 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터
공유 데이터(Shared Data) 여러 응용프로그램들이 공동으로 사용하는 데이터

 

데이터 언어

1) DDL : 데이터 정의어

  • DB의 구조, 데이터 형식, 접근 방식 등 DB의 구축과 변경 목적으로 사용하는 언어
  • 데이터베이스의 논리적, 물리적 구조를 정의 및 변경

2) DML : 데이터 조작어

  • 데이터 처리를 위한 응용 프로그램과 데이터베이스 관리 시스템 간의 인터페이스를 위한 언어
  • 데이터의 삽입, 삭제, 검색, 갱신 등을 포함한 집합

3) DCL : 데이터 제어어

  • 보안 및 권한 제어, 무결성, 병행 제어를 위한 언어

스키마

데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것

개체, 속성, 관계에 대한 정의와 이들이 유지해야할 제약조건들을 기술한 것 

 

3계층 스키마 

1) 외부 스키마 

  • 데이터베이스의 논리적 구조 정의, 사용자 뷰
  • 하나의 데이터베이스는 여러 개의 외부스키마가 존재 가능

2) 개념 스키마

  • 데이터베이스의 논리적 구조
  • 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재
  • 모든 엔티티, 손성 관계 등을 포함

3) 내부 스키마

  • 물리적 저장장치의 입장에서 본 데이터베이스의 구조

데이터 독립성

1) 논리적 독립성

  • 응용 프로그램에 영향을 주지 않고 데이터베이스 논리적 구조를 변경할 수 있는 능력
  • 개념스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원

2) 물리적 독립성

  • 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 미치지 않고 데이터의 물리적 구조를 변경할 수 있는 능력
  • 내부 스키마가 변경되어도 외부/개념 스키마가 영향을 받지 않도록 지원

 

DBMS의 정의

데이터베이스를 조작하는 별도의 소프트웨어로 DBMS를 통해 데이터베이스를 관리하여 응용 프로그램들이 데이터베이스를 공유하고, 사용할 수 있는 환경을 제공

데이터베이스 구축하는 틀을 제공하고, 효율적으로 데이터를 검색하고 저장하는 기능을 제공

 

DBMS의 기능

기능 설명
데이터 정의 데이터에 대한 형식, 구조, 제약조건들을 명세하는 기능
데이터 조작 특정한 데이터를 검색하기 위한 질의, 데이터베이스의 갱신, 보고서 생성 기능
데이터 제어 데이터 무결성
보안 / 권한 검사
동시성 제어

 

데이터베이스 설계 단계

1) 개념적 설계

  • 현실 세계를 데이터 관점으로 추상화 단계
  • 데이터베이스의 개념적 스키마 구성 ( E-R 다이어그램 )

2) 논리적 설계

  • 자료를 컴퓨터가 이해할 수 있도록 목표 DBMS의 논리적 자료 구조로 변환하는 과정
  • 특정 데이터모델을 적용한 설계
  • 관계형 데이터베이스인 경우 정규화 과정 수행

3) 물리적 설계

  • 특정 DBMS의 물리적 구조와 내부적인 저장구조, 데이터타입의 특징 등을 구체화하는 단계
  • 데이터베이스의 물리적 스키마 생성

 

데이터모델 표시해야할 요소

  • 구조 : 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들 간의 관계, 데이터 구조 및 정적 성질
  • 연산 : 데이터베이스에 저장될 실제 데이터를 처리하는 방법
  • 제약조건 : 저장될 수 있는 데이터의 논리적인 제약 조건

 

데이터 모델의 품질 기준

기준항목 설명
정확성 데이터 모델이 표기법에 따라 정확하게 표현
업무 영역 또는 요구사항이 정확하게 반영
완전성 데이터 모델의 구성 요소 정의에 누락을 최소화
요구사항 및 업무영역 반영에 누락이 없음을 의미
준거성 제반 준수 요건들이 누락 없이 정확하게 준수되었음을 의미
최신성 데이터 모델이 현행 시스템의 최신 상태를 반영
일관성 여러 영역에서 공통 사용되는 데이터 요소가 한 번만 정의되고, 일관성을 유지
활용성 작성된 모델과 설명이 이해관계자에게 의미 전달, 업무 변화 시 변경이 최소화되도록 유연하게 설계

 

논리적 데이터 모델링

  • 개념적 설계에서 추출된 실체와 속성들의 관계를 구조적으로 설계하는 단계
  • 개념 모델로부터 업무 데이터 및 규칙을 구체적으로 표현한 모델 
  • 모든 데이터를 정규화하여 모델링 

 

데이터베이스 정규화

정규화란?

관계형 데이터베이스 설계에서 중복을 최소화하게 데이터를 구조화

중복된 데이터를 허용하지 않음으로써 무결성을 유지할 수 있으며, DB의 저장 용량도 줄일 수 있다. 

 

정규화의 목적

  • 데이터 중복을 최소화
  • 이상 현상 최소화
  • 정보의 검색을 보다 용이하게 함
  • 정보의 무손실

이상 현상 ( Anomaly )

데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 곤란한 현상이 발생

 

종류

1) 삽입 이상 : 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상

2) 삭제 이상 : 한 튜플을 삭제할 때 연쇄 삭제 현상으로 인해 정보 손실

3) 갱신 이상 : 튜플의 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

 

정규화 과정

 

1) 제 1 정규형(1NF)

1NF 만족 조건

: 어떤 릴레이션이 속한 모든 도메인이 원자 값으로만 되어 있다.

조건 만족 처리

: 고객 번호와 이름을 하나의 릴레이션으로 분리하고, 여행지를 다른 릴레이션을 만들어, 속성이 원자 값만으로 구성되게
  한다. 

 

[비정규 릴레이션]

고객번호 이름 여행지
M001 이감자 서울, 경기, 강원
M002 이호박 부산
M003 이오이 제주, 여수

 

[1NF 만족 릴레이션]

고객번호 이름
M001 이감자
M002 이호박
M003 이오이
고객번호 여행지
M001 서울
M001 경기
M001 강원
M002 부산
M003 제주
M003 여수

 

2) 제 2정규형 (2NF)

2NF 만족 조건

: 부분 함수적 종속을 모두 제거하여 완전 함수적 종속으로 만든다.

부분 함수적 종속 : 기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 속성 중 일부만 종속되는 경우

 

조건 만족 처리

: 주문번호와 회원번호가 기본키일 때, 기본키를 가지고 주문금액을 알 수 있지만 이름은 회원번호만 알아도 알 수 있다.
  주문번호와 회원번호를 모두 알아야 확인할 수 있는 주문금액을 하나의 릴레이션으로 구성하고, 회원번호와 이름으로 또
  다른 하나의 릴레이션을 구성한다. 

 

[비정규 릴레이션]

주문번호 회원번호 주문금액 이름
O001 M001 10,000 백감자
O002 M001 20,000 백감자
O003 M002 7,000 김개미

 

[2NF 만족 릴레이션]

주문번호 회원번호 주문금액
O001 M001 10,000
O002 M001 20,000
O003 M002 7,000
회원번호 이름
M001 백감자
M002 김개미

 

3) 제 3정규형(3NF)

3NF 만족 조건

: 이행적 함수 조건을 없앤다.

이행적 함수 종속 : X -> Y, Y -> Z 이러한 종속 관계가 있을 경우, X -> Z가 성립되는 경우

 

조건 만족 처리

: 학번을 알면 주민번호를 알 수 있고, 주민번호를 알면 이름을 알 수 있다. 이때, 학번을 알면 이름을 알 수 있다.

  학번과 주민번호를 하나의 릴레이션으로 하고, 주민번호와 이름을 하나의 릴레이션으로 구성한다. 

 

 

[비정규 릴레이션]

학번 주민번호 이름
O001 1111 백감자
O002 2222 이개미
O003 3333 양송이

 

[3NF 만족 릴레이션]

학번 주민번호
O001 1111
O002 2222
O003 3333
주민번호 이름
1111 백감자
2222 이개미
3333 양송이

 

 

4) 보이스/코드(BCNF) 정규형

: 결정자 중 후보키가 아닌 것 제거

 

5) 제 4정규형 (4NF)

: 다치 종속을 제거

 

6) 제 5정규형(5NF)

: 조인 종속을 제거 

 

반정규화

시스템의 성능향상개발 편의성 등을 위해 정규화에 위배되는 중복을 허용하는 기법

정규화된 엔티티, 속성, 관계를 시스템 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는
데이터 모델링 기법

 

고려사항

  • 데이터의 중복이 발생하여 데이터 수정 시 무결성이 깨질 수 있다.
  • 읽기 속도는 향상되지만, 삽입/삭제/수정 속도는 느려짐
  • 저장 공간의 효율이 떨어짐 ( 중복 저장 )
  • 테이블이 크고 복잡해져 유지보수가 어려움
  • 과도한 반정규화는 오히려 성능을 저하시킴

데이터베이스 이중화

장애 발생 시 데이터베이스를 보호하기 위한 방법으로 동일한 데이터베이스를 중복시켜 동시에 갱신하여 관리하는 방법

시스템의 지속적인 정상 운영이 가능한 고가용성(HA, High Avaliability) 서버로 구성하는 것

 

목적

  • 장애 또는 재해 시 빠른 서비스 재개를 위함
  • 원활한 서비스
  • 보장하기 위함

데이터베이스 이중화의 분류

분류 설명
Eager 기법 트랜잭션 수행 중에 발생한 변경즉시 모든 이중화 서버로 전달하여 변경 내용 반영
Lazy 기법 트랜잭션의 수행이 완전히 완료된 후에 변경 사실에 대한 새로운 트랜잭션을 작성하여 각 노드에게 전달하는 기법

 

데이터베이스 이중화의 종류

1) Active - Active

다중화된 장비가 모두 가동되는 방식

두 대를 모두 사용하기 때문에 처리율이 높지만, 구성이 복잡

 

2) Active - Standby ( 많이 사용 )

두 대 중 하나는 가동이 되고, 하나는 장애 상황의 경우를 대비해서 준비 상태로 대기

Active 장비에 장애가 발생하면 Standby장비가 Active 상태가 되어 서비스에 문제가 없도록 처리

 

타입

Hot Standby Standby 장비가 가동되었을 때 즉시 사용가능
Warm standby Standby 장비가 가동되었을 때 설정에 대한 준비가 필요 
Cold standby Standby 장비를 평소에는 정지시켜두며 필요에 따라 직접 켜서 구성

 

데이터베이스 백업

백업 방식

1) 전체 백업 ( Full Backup )

  • 선택된 폴더의 Data를 모두 백업하는 방식

2) 증분 백업 ( Incremental Backup )

  • Full 백업 이후 변경 / 추가된 Data만 백업하는 방식

3) 차등 백업 ( Differentail Backup)

  • Full 백업 이후 변경 / 추가된 Data를 모두 포함하여 백업

4) 실시간 백업 ( RealTime Backup)

  • 즉각적으로 모든 변경사항을 분리된 스토리지 디바이스에 복사

5) 트랜잭션 로그 백업

  • 데이터베이스에서 실행되는 모든 SQL문을 기록한 로그
  • REDO(다시 실행), UNDO(원상태로 복구)로 복원
  • CHECK POINT : 설정한 지점 이전까지는 트랜잭션이 성공적으로 수행되어 Disk에 확실히 저장된 상태

6) 합성 백업

기존의 전체 백업본과 여러 개의 증분 백업을 합하여 새로운 전체 백업을 만드는 작업

 

복구 시간 목표 ( RTO )

  • 서비스 중단 시점과 서비스 복원 시점 간에 허용되는 최대 지연 시간
  • 서비스를 사용할 수 없는 상태로 허용되는 기간

복구 시점 목표 ( RPO )

  • 마지막 데이터 복구 시점 이후 허용되는 최대 시간
  • 마지막 복구 시점과 서비스 중단 시점 사이에 허용되는 데이터 손실량

 

데이터베이스 암호화

데이터베이스의 내용을 암호화하는 것으로 주민번호, 신용카드번호 등 민감한 개인정보를 데이터베이스에 저장한 경우, 해킹 등으로 유출될 것에 대비하여 DB내용을 암호화 하는 것

 

암호화 방식

방식 설명
API 방식 애플리케이션(프로그램 단)에서 데이터의 암/복호화를 수행
Plug-in 방식 데이터베이스 서버에 제품을 설치하여 암/복호화를 수행
TDE ( Transparent Data Encryption ) DBMS에 내장 또는 옵션으로 제공되는 암호화 기능을 이용하는 방식으로
DB 내부에서 암/복호화를 처리하는 방식
파일암호화 방식 데이터뿐 만 아니라 비정형 데이터 암호화 가능
하드웨어 방식 별도의 하드웨어 장비를 외부에 설치

 

'정보처리기사' 카테고리의 다른 글

모의고사 -1  (0) 2024.06.18
운영체제 -1  (0) 2024.06.17
데이터베이스 구축-4  (2) 2024.06.14
데이터베이스 구축-3  (1) 2024.06.13
데이터베이스 구축-2  (0) 2024.06.13