데이터베이스의 이해

김주형·2023년 5월 22일
0
post-thumbnail

Reference

🙇🏻‍♂️ 스스로 다시 보려고 기록하는 내용입니다

-한국방송통신대학교


데이터 단위

  • bit
  • byte
  • KB
  • MB
  • GB
  • TB
  • PB(petabyte)
  • EB(exabyte)
  • ZB(zettabyte)

데이터 관리 장치의 필요

  • 필요한 데이터를 신속히 검색하기 위해
  • 대량의 데이터를 저장 및 관리하는
  • 보조 장치

데이터 관리의 역사

  • 각각 파일 만들어 사용 (전통적 데이터 관리 방식)
  • 데이터베이스 개발 전 데이터 관리에 사용
  • 업무 별 애플리케이션이 개별 데이터를 데이터 파일에 저장 / 관리하는 시스템

발생 가능한 문제

  1. 데이터 종속 : 저장된 데이터가 특정한 하드웨어 / 소프트웨어 / 사용자에게만 사용될 수 있도록 제한 -> 물리적 데이터 종속

  2. 데이터 중복 : 동일한 사항은 중복 데이터가 형성됨 -> 일관성 & 보안성 & 경제적 문제 발생

    • 일관성 : 한 사실에 대해 한개의 데이터 값 유지하면 데이터의 정확성이 떨어짐 (불필요한 데이터)
    • 보안성 : 같은 데이터에 같은 수준 보안 유지
    • 경제성 : 데이터에 대해 최소한의 저장 공간만을 점유
  3. 무결성 훼손 : 실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건) 포함, 파일 시스템은 데이터 무결성을 보장하기 위한 기능을 제공하지 않음

    • 현상에 대한 값 ( 예 : '홍길동'의 수강과목 )
    • 가능범위의 예 : 1학기 최대 수강과목 18학점
    • 데이터의 정확성 보장
    • 데이터의 값과 값에 대한 제약조건을 동시에 만족
  4. 동시 접근의 문제 : 동일 데잍에 다수 사용자의 접근 허용시 일관성 훼손


데이터베이스 사용의 의미

  • 사용자가 직접 디스크에 접근하지 않고 데이터베이스만 디스크에 접근할 수 있음
    - 영역 분리 ( 사용 / 관리 )

데이터베이스의 특징

  1. 데이터베이스 시스템의 자기 기술성
  • 데이터와 데이터의 정의 및 설명(메타데이터)을 스스로 보유한다.
  1. 프로그램과 데이터의 격리 및 추상화
  • 데이터에 대한 개념적인 표현 제공
  • 덕분에 사용자의 접근성 향상하는 것 같다.
  1. 다중 뷰 제공
  • 데이터베이스의 일부만을 표현할 수 있는 기능 제공
  • 각 사용자가 관심을 갖는 부분에 집중이 가능한 것 같다.
  1. 데이터 공유와 다수 사용자 트랜잭션 처리
  • 다수의 데이터 조작 요청시
  • 동시성 제어 기능 활용하여
  • 데이터의 일관성을 보장한다.
  • 동시에 작업까지 수행한다.

데이터베이스 시스템의 구성

  1. value
  2. data (값 + 두 개 이상의 설명)
  3. meta_data (데이터에 포함)

예) value : 22일 / data : 22일, 월요일, 피곤한 날 / meta_data : 월요일, 피곤한 날


DBMS의 3단계 구조

외부 (뷰)

  • 외부 - 개념 레이어
    개념
  • 개념 - 내부 레이어
    내부


다수 사용자 트랜잭션 처리

트랜잭션 : 하나의 논리적 작업 처리를 위한 일련의 데이터베이스 명령 집합

  • 하나의 트랜잭션 전부 처리 전까지 다음 트랜잭션 처리 대기
  • 동시에 접근 불가

데이터베이스 관련 용어

  1. 데이터 : 어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 값에 대한 설명
  2. 데이터베이스 : 특정 기관의 애플리케이션 시스템에서 사용되는 데이터의 집합
  3. DBMS : 데이터베이스에 저장된 데이터의 구성, 저장, 관리 사용을 위한 소프트웨어 패키지
    (데이터베이스 != DBMS)
  4. 데이터베이스 시스템 : 정보를 데이터베이스에 저장 / 관리하여 사용자에게 요구된 형태의 정보를 제공하는 컴퓨터 기반 시스템

데이터베이스의 구성요소

데이터베이스 언어

DBMS는 사용자가 데이터베이스를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공한다. (역할에 따라 두 종류의 언어로 구분)

  1. 데이터 정의 언어 (DDL) : 데이터베이스 객체 생성 / 수정 / 삭제 목적 언어
  2. 데이터 조작 언어 (DML) : 구조화된 데이터에 사용자가 접근 및 조작(검색, 삽입, 삭제, 수정)을 지원하는 언어
  3. 현대 데이터 베이스 언어(SQL)는 자연어와 유사한 형태라고 한다.

데이터베이스 시스템 아키텍처

1. 중앙 집중식

  • 단일 서버가 다수의 클라이언트 장치를 대신하여 작동
  • 중앙 컴퓨터 과부하 + 전체적인 성능 저하

2. 분산 시스템

  • 클라이언트 장치의 성능 향상 -> 자체적인 처리 능력 보유
  • 클라이언트 - 서버 데이터베이스 시스템
    - 애플리케이션 프로그램의 부하 분산
    - 소프트웨어 유지보수 비용 절감 및 이식성 증가

3계층 구조는 처음엔 시간과 비용이 많이 들지만 유지보수가 용이하다고 한다.

시스템에 정해진 답은 없으니 특징에 맞춰 어떤 것이 좋을지 결정해야 한다.

나의 생각 : 훌륭한 설계를 위해선 적절한 트레이드 오프가 필연적이니
각각의 특징을 파악하는 것을 기본으로 생각하는 인간이 되자 👊

profile
우리스러움

0개의 댓글