💠기타/자격증

[정처기 실기] 「2」 | 데이터베이스 구축 - (2.1) 데이터베이스 구축

2024. 3. 29. 20:19
728x90

[정처기 실기] 2」 | 데이터베이스 구축 - (2.1) 데이터베이스 구축

「1」 소프트웨어 구축

> 「2」 데이터베이스 구축

「3운영체제

「4네트워크

「5정보보안

「6」 신기술 용어

 

> 1. 데이터베이스 구축

2. SQL 활용

3. 병행제어와 데이터전환

 

1. 데이터베이스 구축

데이터베이스 구축

데이터베이스 개념

 데이터와 정보

  - 데이터(Data) : 관찰을 통해 수집한 값

  - 정보(Information) : 데이터를 처리한 결과물

○ 데이터베이스 정의

  - 공유 데이터(Shared) : 여러 사용자가 공동으로 사용하는 데이터

  - 저장 데이터(Stored) : 저장 매체에 저장된 데이터

  - 통합 데이터(Integrated) : 중복이 최소화된 데이터 모임

  - 운영 데이터(Operational) : 조직의 목적을 위한 필수 데이터

○ 데이터베이스의 특징

  - 실시간 접근성(Real Time Accessibility)

  - 계속적인 변화(Continuous Evolution)

  - 동시 공유(Concurrent Sharing)

  - 내용에 의한 참조(Content Reference)

  - 데이터의 독립성(Independence)

○ 데이터 언어

  - DDL(Data Definition Language) : 구조, 제약조건 정의

  - DML(Data Manipulation Language) : 데이터 처리 / 조작

  - DCL(Data Control Language) : 보안, 권한, 무결성 / 병행 제어

○ 스키마(Schema) : 데이터베이스의 구조, 제약조건, 속성, 개체, 관계를 포함한 전반적인 명세를 기술

  - 3계층 스키마

외부 스키마 1 외부 스키마 2 외부 스키마 3
----------------------------------------------------------(논리적 독립성)
개념 스키마
----------------------------------------------------------(물리적 독립성)
내부 스키마
데이터베이스

    : 외부 스키마 - 여러 개 가능, 사용자가 보는 화면(뷰), 다양한 형태의 논리적 구조로 존재

    : 개념 스키마 - 1개, 사용자 / 관리자 시점의 데이터베이스의 전체적인 구조, 제약조건

    : 내부 스키마 - 설계자 / 개발자 시점의 실제 저장장치에서 본 스키마

    : 논리적 독립성 - 개념 스키마가 바뀌어도 외부 스키마에 영향 X

    : 물리적 독립성 - 내부 스키마가 바뀌어도 개념 스키마에 영향 X

 

데이터베이스 관리 시스템(DBMS)

○ 데이터베이스를 효과적으로 관리, 조작하기 위한 전용 소프트웨어

○ DBMS의 기능

  - 데이터 정의

  - 데이터 조작

  - 데이터 제어

  - 데이터 공유

  - 데이터 보호

  - 데이터 구축

  - 유지보수

○ DBMS의 종류

  - 계층형 : 트리 구조

  - 네트워크형 : 다대다 관계 가능, CODASYL

  - 관계형 : 테이블 구조의 모델

  - 객체 지향형 : 객체지향 프로그래밍 개념에 기반

  - 객체 관계형 : 관계형 + 객체지향 개념

  - NoSQL(Not Only SQL) : 다양한 특성을 지원

  - NewSQL : RDBMS와 NoSQL의 장점을 결합

 

데이터베이스 설계

데이터베이스 설계 개요

○ 요구 조건에서부터 데이터베이스 구조를 도출하는 과정

데이터베이스 설계 시 고려사항

  - 제약조건

  - 데이터베이스 무결성

  - 일관성

  - 회복

  - 보안

  - 효율성

  - 데이터베이스 확장성

 

데이터베이스 설계 단계

> 요구 조건 분석

> 개념적 설계 : 계념적 스키마 구성(ERD), 트랜잭션 모델링

> 논리적 설계

  - 논리 스키마 설계

  - 현실 세계의 요구사항과 목표 데이터 모델 기반 설계

  - 정규화, 트랜잭션 인터페이스 설계

> 물리적 설계

  - 구조 / 성능에 대한 설계

  - 반정규화

  - 트랜잭션 작성

> 구현

 

데이터 모델링

데이터 모델 개념

○ 현실 세계의 복잡한 데이터 구조를 단순화, 추상화하여 체계적으로 표현한 개념적 모형

데이터 모델 구조

     속성     
       
    학번 이름 학년 학과  개체 타입 
 개체 Set  19001 김예소 2 CD  개체 인스턴스 
20002 고강민 1 CD
19012 이향기 2 ID
17032 김동준 4 ED

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

  - 구조(Structure) : 데이터 구조 / 개체 간 관계

  - 연산(Operation) : 데이터 처리 방법

  - 제약조건(Constraint) : 데이터의 논리적 제약조건

 

개체-관계 모델(Entity Relation Model)

○ 데이터베이스의 요구사항을 그래픽적으로 표현하는 모델

○ 개체(Entity) : 현실 세계의 독립적이고 구별 가능한 대상

  - 개체 타입 : 개체를 구성하는 속성의 집합

  - 개체 인스턴스 : 실제 값을 가지며 실체화된 개체

  - 개체 세트 : 개체 인스턴스들의 집합

○ 속성(Attribute) : 개체나 관계의 고유한 특성을 나타내는 정보의 단위

  - 단일 값 속성, 다중 값 속성, 단순 속성, 복합 속성, 유도 속성, 널 속성, 키 속성

○ 관계(Relationship) : 두 개체 간 의미 있는 연결

○ E-R 다이어그램 기호

  - 개체(Entity) : 사각형

  - 관계(Relationship) : 마름모

  - 속성(Attribute) : 타원

  - 기본키 속성 : 밑줄 타원

  - 복합 속성 : 이중 타원

  - 개체와 속성 연결 : 선 링크

 

데이터 모델의 품질 기준

정확성 : 요구사항을 정확하게 반영

완전성 : 요구사항이 완전하게 반영

준거성 : 준수 요건들을 정확하게 준수

최신성 : 현재의 시스템 상태와 최근의 이슈사항을 반영

일관성 : 데이터 요소의 일관성 유지

활용성 : 이해 관계자에게 의미 전달이 용이

 

논리 데이터베이스 설계

논리적 데이터 모델링

○ 개념적 설계 단계에서 도출된 개체, 속성, 관계를 구조적으로 표현하는 과정

 

데이터베이스 정규화(Normalization)
○ 관계형 데이터베이스의 설계에서 데이터 중복을 최소화하기 위한 과정

○ 정규화의 목적

  - 데이터 중복 최소화

  - 정보의 무손실 : 정보가 사라지지 않아야 함

  - 독립적 관계는 별개의 릴레이션으로 표현

  - 검색 용이성 증가

  - 이상 현상 최소화

○ 이상 현상(Anomaly)

  - 데이터 중복으로 인해 릴레이션 조작 시 발생하는 예기치 않은 문제점

  - 이상의 종류

    : 삽입 이상 - 불필요한 데이터가 함께 삽입되는 현상

    : 삭제 이상 - 연쇄 삭제 현상으로 인해 정보 손실

    : 갱신 이상 - 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

○ 함수적 종속(Funcional Dependency)

: 릴레이션 R의 부분집합 X, Y에서 X로 Y를 식별 가능, X에 따라 Y가 달라질 때, Y는 X에 함수적 종속(X → Y)

  - 함수적 종속 관계

    : 완전 함수적 종속(Full) - 종속자가 기본키에만 종속

    : 부분 함수적 종속(Partial) - 기본키를 구성하는 속성 중 일부만 종속

    : 이행적 함수 종속(Transitive) - X → Y, Y → Z 일 때, X → Z 가 성립

○ 정규화 과정

  > 비정규 릴레이션

    : 도메인이 원자값

  > INF

    : 부분적 함수 종속 제거

  > 2NF

    : 이행적 함수 종속 제거

  > 3NF

    : 결정자이면서 후보키 아닌 것 제거

  > BCNF

    : 다치 종속 제거

  > 4NF

    : 조인 종속성 이용

  > 5NF

 

물리 데이터베이스 설계

물리 데이터베이스 설계 과정

  > 사용자 DBMS 결정

  > 데이터 타입과 크기 결정

  > 데이터 용량 예측 / 업무 프로세스 분석

  > 역정규화

  > 인덱스 설계

  > 데이터베이스 생성

 

반정규화

성능 향상이나 개발 / 운영의 편의성을 위해 의도적으로 중복 허용하거나 데이터 재구성하는 기법

○ 반정규화 적용 순서

  > 반정규화 대상 조사

  > 다른 방법으로 유도

  > 반정규화 수행

○ 반정규화의 유형

  - 테이블 분할(수평, 수직)

  - 테이블 중복(통계 테이블, 진행 테이블)

  - 칼럼 기반 분할

  - 칼럼 중복

 

데이터베이스 이중화

○ 장애에 대비하여 동일한 데이터베이스를 중복하여 관리하는 방식

○ 데이터베이스 이중화의 목적

  - 장애, 재해 발생 시 빠른 서비스 재개

  - 서비스의 원활한 성능 보장

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

  - Eager 기법 : 트랜잭션 발생 시 즉시 반영

  - Lazy 기법 : 트랜잭션 완료 후 반영

 

데이터베이스 백업 / 복원

○ 복구를 진행할 수 있도록 데이터를 주기적으로 복사하여 보관

  - 백업 : 데이터를 복사하여 보관

  - 복원 : 손상된 데이터베이스를 원래 상태로 되돌리는 과정

○ 백업(Backup) 방식

  - 전체 백업(Full) : 모든 데이터를 백업

  - 증분 백업(Incremental) : 변경 / 추가된 데이터만 백업

  - 차등 백업(Differential) : 모든 변경 / 추가된 데이터를 백업

  - 합성 백업 : 전체 백업본과 여러 개의 증분 백업 합하여 백업

○ 재난 복구 전략 시 지표

  - 복구 시간 목표(RTO, Recovery Time Objective) : 복구되어 가동될 때까지 시간 목표

  - 복구 시점 목표(RPO, Recovery Point Objective) : 데이터 손실을 감당할 수 있는 데이터의 양

  - RP(Recovery Period) : 실제 업무 기능 복구까지 걸린 시간

  - MTD(Maximum Tolerable Downtime) : 장애 시 업무가 정지 상태를 허용하는 최대 시간

 

데이터베이스 암호화

○ 데이터베이스 내용을 암호화하는 과정

○ 데이터베이스 암호화 방식

  - API 방식 : 애플리케이션에서 수행

  - Plug-in 방식 : DB 서버에 제품 설치 후 수행

  - TDE 방식 : DBMS 내부의 기본 모듈로 수행

 

데이터베이스 물리속성 설계

파티셔닝

○ 데이터베이스의 특정 부분(데이터)을 여러 섹션으로 분할하는 방법

○ 샤딩(Sharding) : 분산 환경에서 거대한 데이터베이스나 시스템을 작은 조각으로 나눠 분산 저장 / 관리

○ 파티셔닝(Partitioning)의 종류

  - 수평 분할(Horizontal)

  - 수직 분할(Vertical)

○ 분할 기준

  - 범위 분할(Range)

  - 목록 분할(List)

  - 해시 분할(Hash)

  - 라운드 로빈 분할(Round Robin)

  - 합성 분할(Composite)

 

클러스터 설계

○ 자주 사용되는 테이블의 데이터를 디스크 상 동일 위치에 저장하여 액세스 효율을 향상하는 물리적 저장 방법

 

인덱스(Index)

○ 데이터베이스 테이블 검색 속도 향상을 위한 저장 공간 활용 자료구조

○ 인덱스의 종류

  - 클러스터  인덱스 : 테이블 당 1개, 해당 칼럼을 기준으로 테이블이 물리적으로 정렬

  - 넌클러스터 인덱스 : 테이블 당 240개, 레코드의 원본은 정렬 X, 인덱스 페이지 정렬 O

  - 밀집 인덱스 : 데이터 레코드 각각에 대해 하나의 인덱스 만듦

  - 희소 인덱스 : 레코드 그룹 / 데이터 블록에 대해 하나의 인덱스 만듦

○ 인덱스의 구조

  - 트리 기반 인덱스 : B+ 트리 인덱스 사용

  - 비트맵 인덱스 : 각 값에 대한 비트 배열을 사용하여 인덱싱

  - 함수 기반 인덱스 : 특정 함수의 결과에 대해 인덱스를 생성

  - 비트맵 조인 인덱스 : 비트맵 인덱스의 확장

  - 도메인 인덱스 : 사용자 정의 인덱스

 

뷰(View)

○ 기본 테이블에서 유도된 이름이 있는 가상 테이블, 물리적 존재 X, 독립적 인덱스 보유 X

 

시스템 카탈로그

○ 데이터베이스의 모든 데이터 개체들에 대한 정보를 저장한 시스템 테이블, 데이터 사전(Data Dictionary)

 

관계 데이터베이스 모델

관계 데이터 모델

○ 데이터의 논리적 구조를 테이블 형태로 표현, 튜플(행)과 속성(열)로 구성

○ 관계 데이터 릴레이션의 구조

     속성(차수)     
       
    학번 이름 학년 학과    
 카디널리티  19001 김예소 2 CD  튜플 
20002 고강민 1 CD
19012 이향기 2 ID
             
         학년의 도메인       

 

  - 속성(Attribute) : 릴레이션의 열, 개체의 특성

  - 튜플(Tuple) : 릴레이션의 행, 속성들의 모임

  - 도메인(Domain) : 속성이 가질 수 있는 값의 범위

  - 차수(Degree) : 속성의 총 개수

  - 카디널리티(Cardinality) : 튜플의 총 개수

○ 릴레이션 : 데이터들을 2차원 테이블의 구조로 저장한 것

  - 릴레이션 스키마 : 릴레이션의 논리적 구조

  - 릴레이션 인스턴스 : 스키마에 실제로 저장된 데이터의 집합

 

관계데이터 언어(관계대수, 관계해석)

○ 관계대수 : 원하는 데이터를 찾기 위한 절차적 언어

○ 순수 관계 연산자

  - SELECT : σ(시그마)

  - PROJECT : π(파이)

  - JOIN : ⋈(보타이)

  - DIVISION : ÷(나누기)

○ 일반 집합 연산자

  - 합집합 : ∪

  - 교집합 : ∩

  - 차집합 : -

  - 교차곱 : X

○ 관계해석 : 원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어

  - 튜플 관계해석, 도메인 관계해석

  - 연산자

구분 기호 설명
연산자 V OR 연산
Λ AND 연산
NOT 연산
정량 모든 가능한 튜플 - For All
어떤 튜플 하나라도 존재 - There Exists

 

키와 무결성 제약조건

속성

○ 정보의 최소 단위, 칼럼

○ 속성의 분류

  - 기본 속성 : 업무로부터 추출한 모든 속성

  - 설계 속성 : 코드성 데이터

  - 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성

 

키 종류

○ 키 : 튜플을 식별하고 구별하는 데 사용되는 칼럼

○ 키의 종류 : 슈퍼키(유일성)후보키(유일성, 최소성) ⊃ 기본키, 대체키(유일성, 최소성)

 

데이터베이스 무결성

○ 데이터의 정확성, 일관성 / 유효성을 보장하는 DBMS의 중요한 기능

○ 데이터베이스 무결성(Integrity) 종류

  - 개체 무결성(Entity) : NULL X, 중복 X

  - 참조 무결성(Referential) : 외래키는 NULL or 참조 릴레이션의 기본키와 일치, Restrict(제한) / Cascade(연쇄삭제)

  - 도메인 무결성(Domain) : 속성값은 정의된 도메인에 속해야 함

  - 고유 무결성(Unique) : 릴레이션의 속성값은 서로 달라야 함

  - 키 무결성(Key) : 각 릴레이션은 최소 하나의 키를 가져야 함

  - 릴레이션 무결성(Relation) : 삽입, 삭제, 갱신 등 연산은 릴레이션의 무결성을 파괴하면 안 됨

 

물리데이터 모델 품질 검토

CRUD 분석

○ Create(생성), Read(읽기), Update(갱식), Delete(삭제), 해당 업무에 어떤 데이터 존재하는지, 무엇이 영향받는지 분석

 

옵티마이저(Optimizer)

○ SQL 처리 흐름

  옵티마이저  
SQL 구문분석
(Parsing)
실행
(Execution)
인출
(Fetch)
결과
 
참조

참조

참조
 
  Database 통계자료
Database Data
 

○ 옵티마이저 : SQL문에 대한 최적의 실행 방법을 결정

  - 옵티마이저의 구분

    : 규칙기반 옵티마이저(Rule Based) - 규칙(우선순위)을 가지고 실행 계획을 생성

    : 비용기반 옵티마이저(Cost Based) - 소요시간이나 자원사용량을 가지고 실행계획 생성

 

SQL 성능 튜닝

○ 튜닝 : SQL문을 최적화하여 시스템의 처리량, 응답 속도를 개선하는 작업

○ 튜닝 영역

  - 데이터베이스 설계 튜닝

  - 데이터베이스 환경

  - SQL 문장 튜닝

 

분산 데이터베이스

분산 데이터베이스

○ 여러 곳에 분산된 데이터베이스를 하나의 논리적인 시스템처럼 사용할 수 있는 데이터베이스

○ 분산 데이터베이스 구성요소 : 분산 처리기, 분산 데이터베이스, 통신 네트워크

투명성 조건

  - 위치 투명성(Location) : 실제 위치를 모르고 액세스 가능

  - 분할 투명성(Division) : 여러 단편으로 분할

  - 지역사상 투명성(Local Mapping) : 각 지역시스템 이름과 무관하게 사용

  - 중복 투명성(Replication) : 데이터의 중복을 사용자에게 숨김

  - 병행 투명성(Concurrency) : 다수의 트랜잭션들이 동시에 실행되어도 영향 주지 않음

  - 장애 투명성(Failure) : 다양한 장애에도 트랜잭션 처리

○ CAP 이론 : 어떤 분산 환경에서도 일관성(C), 가용성(A), 분단 허용성(P) 중, 2가지만 가질 수 있음

 

트랜잭션

○ 하나의 논리적 기능을 수행하는 작업 단위

○ 트랜잭션의 성질

  - 원자성(Atomicity) : 모두 반영 or 전혀 반영 X

  - 일관성(Consistency) : 트랜잭션 완료 전과 후 데이터베이스가 일관된 상태를 유지해야 함

  - 독립성, 격리성(Isolation) : 동시에 실행되는 여러 트랜잭션들은 서로 간섭 X

  - 영속성(Durablility) : 시스템에 고장이 발생해도 결과는 영구적으로 반영되어야 함

○ 트랜잭션의 상태

  - 활동(Active) : 트랜잭션이 실행 중인 상태

  - 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태

  - 철회(Aborted) : 비정상적으로 종료되어 Rollback 연산을 수행한 상태

  - 부분 완료(Partially Committed) : Commit 연산이 실행되기 직전의 상태

  - 완료(Committed) : 트랜잭션이 성공적으로 종료된 상태

 

 

 

 

 

 

출처 | 흥달쌤

728x90