데이터베이스 개념

1. 데이터베이스 정의

데이터 베이스

  • 통합 데이터
  • 데이터를 저장
  • 운영 데이터
  • 공공 데이터

데이터베이스 속성

  • 실시간 가용성
  • 지속적인 변화
  • 동시 공유
  • 내용별 참조

데이터베이스의 개념적 구성


데이터베이스 개념 1

  • 개별적으로 : 하나 이상의 속성(학생, 강사)
  • 관계 : 속성관계(성명-입학번, 교번-학과 등), 대상관계(학생-교수)

2.DBMS

기존 파일 시스템 문제

  • 데이터 종속성 : 응용 프로그램에서 사용하는 파일은 해당 위치에서만 사용할 수 있습니다.
  • 데이터 중복 : 데이터가 중복 저장됨

데이터 중복성이 나쁜 이유

  • 일관성 : 데이터 간 불일치 발생
  • 보안 : 중복 저장으로 인해 동일한 수준의 보안 유지가 어려움
  • 사업 : 중복 메모리 및 추가 디스크 공간 필요
  • 진실성 : 데이터의 정확도 감소

DBMS란?

  • 종속성 및 중복성을 해결하기 위한 제안 시스템
  • 응용 프로그램에 필요한 데이터베이스를 정의, 생성, 편집 및 공유할 수 있는 편리한 기능을 제공하는 소프트웨어 시스템

DBMS의 필수기능

  • 정의 기능 : 데이터베이스 구조 정의
  • 작동 기능 : 데이터베이스 접근 및 조작 능력
  • 제어 기능 : 데이터베이스의 정확성과 보안성을 유지하는 능력

DBMS의 이점

  • 데이터 중복 최소화
  • 데이터 교환 가능
  • 일관적일 수 있다
  • 데이터 무결성 유지
  • 데이터 보안 보장
  • 표준화 달성
  • 데이터 독립성 제공(논리적 또는 물리적 구조를 변경해도 애플리케이션에 영향을 주지 않음)

DBMS의 단점

  • 운영 비용의 증가
  • 데이터 처리 절차가 복잡함
  • 어려운 백업 및 복구 기술
  • 시스템이 취약할 수 있습니다.

DBMS 개발

네트워크 데이터 모델 → 계층적 데이터 모델 관계형 데이터 모델 객체 지향 데이터 모델


3. 데이터베이스 시스템

데이터베이스 시스템

데이터베이스를 유지 관리하고 필요에 따라 데이터를 입력, 편집 및 변경하여 특정 목적을 달성하기 위해 사용하는 시스템

시스템의 구성 요소

데이터베이스, DBMS, 데이터베이스 언어, 사용자, 데이터베이스 관리자, 하드웨어

데이터 베이스

  • 외부 체계 : 제한된 목적으로 사용자 및 프로그래머가 액세스하는 논리적 하위 스키마
  • 개념 체계 : 전체 조직의 관점에서 본 데이터베이스의 전체적인 논리적 구조
  • 내부 계획 : 개념적 스키마에 대한 내부 물리적 저장소 구조에 대한 설명입니다.

데이터베이스 언어

  • DDL : 데이터베이스 구조 생성, 수정 및 삭제
  • DML : 절차적 데이터 조작어, 비절차적 데이터 조작어
  • DCL : 보안, 무결성, 복구, 병렬 성능

사용자

  • 일반 사용자 : DML 사용
  • 애플리케이션 프로그래머 : DML 사용
  • 데이터베이스 관리자 : DDL, DCL 사용

데이터베이스 관리자(DBA)

  • 데이터베이스 설계 및 전반적인 운영 담당
  • 데이터베이스에 대한 관리 작업
  • 시스템 성능 모니터링, 통계 정보 분석

4. 데이터베이스 모델링

데이터 모델링 개념

실세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기기 위한 변환 과정


데이터베이스 개념 2

  • 현실 세계 : 탐지 가능한 개체
  • 개념의 세계 : 논리적 사고를 통해 현실을 개념으로 표현
  • 컴퓨터 세계 : 아이디어의 세계를 컴퓨터가 처리할 수 있는 데이터로 변환

데이터 모델

  • 개념적 데이터 모델 : 엔티티 간의 속성과 관계로 기술되는 엔티티 타입을 이용하여 실세계를 표현하는 방식
  • 논리적 데이터 모델 : 데이터 필드로 기술된 레코드 유형과 이들 레코드 유형 간의 관계를 이용하여 개념적 세계를 표현하는 방법

관계

엔터티 간에 존재하는 연결 또는 연결


데이터베이스 개념 3

ER 모델

엔티티 관계 모델

  • 강한 물체 유형 : 독립적으로 존재하며 엔터티 타입 내 속성을 이용하여 엔터티를 고유하게 식별할 수 있는 타입.
  • 약한 엔티티 유형 : 키를 형성하기에 충분한 속성이 없는 엔터티 유형

논리적 데이터 모델

가장 일반적으로 사용되는 논리적 데이터 모델 중 하나는 관계형 데이터 모델입니다.

  • 관계형 데이터 모델 : 엔터티와 관계 모두 테이블로 표시되는 특성을 가집니다.


데이터베이스 개념 4


5. 물리적 데이터 구조

직접 저장

  • 여러 개의 디스크로 구성되어 있으며 각각의 면에 읽기/쓰기 헤드가 있습니다.
  • 정보는 디스크의 트랙을 따라 저장되며 여러 디스크 면 사이의 동일한 직경의 트랙을 실린더라고 합니다.
  • 일반적으로 트랙의 용량은 매우 크기 때문에 여러 개의 섹터로 나뉘며 하나의 블록은 하나 이상의 섹터로 구성된다.
  • 데이터 액세스 시간 = 탐색 시간(헤드가 원하는 트랙(실린더)으로 이동하는 데 걸리는 시간) + 회전 지연 시간(헤드 아래 트랙에서 원하는 섹터(또는 블록)이 회전하기를 기다리는 시간) + 데이터 전송 시간

플래시 메모리

  • 랜덤 검색이 우수하고 비휘발성 메모리입니다.
  • 플래시 메모리 기반 SSD가 널리 사용됨
  • HDD보다 검색 속도, 전력 소비 및 내구성 향상
  • HDD는 덮어쓰기 작업을 할 수 있지만 SSD는 덮어쓰기 작업을 할 수 없으므로 지우기 및 쓰기 작업을 수행합니다.
  • 쓰기가 매우 느리고 쓰기 횟수가 제한됨
  • 읽기 및 쓰기는 페이지 단위로 수행됩니다.

운영체제의 역할

DBMS는 운영 체제의 파일 관리자와 디스크 관리자를 사용합니다.

파일 정리 방법

  • 순차 방식
    • 입력 순차 파일: 레코드는 시스템에 입력된 순서대로 구성됩니다.
    • 키 순차 파일: 레코드는 키 값 순서로 구성됩니다.
  • 인덱스 방법
    • 기본 인덱스: 기본 키에 의해 생성되는 인덱스입니다.
    • 보조 인덱스: 기본 키가 아닌 필드에 인덱스를 생성합니다.
    • 클러스터링 인덱스: 검색 키 값으로 정렬된 데이터 파일
    • 비클러스터링 인덱스: 데이터 파일 및 레코드는 검색 키 값과 독립적으로 저장됩니다.
    • 다중 수준 색인: 색인 자체가 클 때 색인 항목에 대한 검색 시간을 줄이기 위해 색인이 다중 수준입니다.
  • 해시 방법
    • 직접 파일

B트리

차수 m의 B-트리 특성

  • 루트 노드와 리프 노드를 제외한 모든 노드의 하위 트리 수는 최소 ⌈m/2⌉에서 최대 m입니다.
  • 루트는 그 자체가 잎이 아닌 한 적어도 2개의 하위 트리를 가집니다.
  • 모든 리프 노드는 동일한 수준에 있어야 합니다.
  • 리프가 아닌 노드의 키 값의 수는 해당 노드의 하위 트리 수 – 1입니다.
  • 리프 노드의 키 값의 수는 최소 ⌈m/2⌉-1 최대 m-1
  • 노드 내의 키 값은 오름차순이어야 합니다.

B-트리 레벨 3


데이터베이스 개념 5

B+ 트리

B+트리는 B트리의 순차접근 취약점을 보완한 트리이다. 실제 DBMS에서 가장 많이 사용되는 트리로 인덱스셋과 순차셋으로 구성된다.

  • 인덱스 세트 : 리프 노드의 키를 빠른 액세스 경로로 사용
  • 순차 집합 : 리프 노드로 구성되어 있으며 인덱스 부분의 키 값이 여기에 다시 표시되며 순차 집합의 리프 노드는 연결 리스트 구조로 연결되어 있어 직접 및 순차 액세스가 모두 가능합니다.

차수 m의 B+ 트리 특성

  • 루트는 0이거나 2에서 m 사이의 하위 트리를 가집니다.
  • 루트와 리프를 제외한 모든 노드의 하위 트리 수는 최소 ⌈m/2⌉에서 최대 m입니다.
  • 모든 리프 노드는 동일한 수준에 있어야 합니다.
  • 리프가 아닌 노드의 키 값 수는 해당 노드의 하위 트리 수보다 하나 적습니다.
  • 노드 내의 키 값은 오름차순이어야 합니다.

B+ 트리 구조 차수 3


데이터베이스 개념 6

B-트리와의 차이점

  • B+ 트리의 인덱스 집합의 키 값은 리프 노드의 키 값에 대한 경로로만 사용되기 때문에 인덱스 집합의 모든 키 값이 순차 집합에 다시 나타납니다.
  • 순차 집합의 모든 노드는 연결 목록 구조이므로 순차 액세스가 효율적으로 지원됩니다.

해시 방법

다른 레코드를 참조하지 않고 원하는 대상 레코드에 직접 액세스하는 다이렉트 파일 방식

  • 해시 함수 : 특정 키값이 주어지면 그 키값으로 해당 키값을 가진 레코드가 저장된 주소를 계산할 수 있는 기법이다.
  • 해시 키 : 레코드 주소 계산에 사용되는 레코드 키 값
  • 해시 주소 : 계산 결과 주소


데이터베이스 개념 7