CS/DataBase

데이터와 데이터베이스

우봉수 2023. 3. 3. 06:32

데이터베이스

  • 정보를 필요에 따라 모아놓은 것
  • 조작 가능한(컴퓨터로 처리가 가능한) 데이터의 모임
  • 데이터를 좀 더 쉽게 처리하기 위해서 정렬된 형태로 저장
  • 목적: 지식을 판단하는 근거가 되는 자료를 제공하기 위해 존재
  • 서로 관련있는 데이터를 모아둔 기지(베이스)
  • 정형화되고 조작 가능한 컴퓨터에 저장된 데이터의 모임
  • 특정한 목적을 위해 계선, 저장, 검색, 정렬 등의 데이터 처리 작업을 수행
  • 디스크에 저장되는 지속적인 데이터의 모임

데이터, 정보 그리고 지식

  • 데이터: 실세계에 있는 현상 사실들을 관측하거나 측정하여 얻은 값들
    • 정형화되고(어떤 특유의 폼 안에 맞게 기록되는) 기록할 만한 가치가 있다고 판단되는 어떤 현상이나 사건, 아이디어에 대한 묘사
    • 객관적인 수치화된 값으로 저장이 되어 있어야함
  • 정보: 데이터를 처리하여 유추한 사실들 (객관적임)
  • 지식: 데이터와 정보를 처리하는 방법이나 분석과 판단에 관한 법칙 등을 포함하는 데이터와 정보에 비해 좀 더 상위 수준의 개념 (굉장히 주관적)

일시적인 데이터와 영구적 데이터

  • 일시적 데이터
    • 프로그램 종료시 사라지는 데이터
    • 휘발성 데이터
    • ex 프로그램의 변수
  • 영구적 데이터
    • 비휘발성 데이터
    • 프로세스의 생명주기에 종속적이지 않고 스스로 존재
    • 비휘발성 매체에 저장 ex SSD

데이터베이스 관리 시스템

  • DBMS: DataBase Management System
    • 컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템
    • 사람들이 데이터베이스를 쉽게 사용할 수 있게 해주는 시스템
    • 사용자와 데이터를 연결시켜주는 인터페이스
  • DBMS 종류들
    • Oracle, MS SQL-Server, DB2, MySQL
  • 실세계 비유
    • 물건 - 데이터
    • 창고 - 데이터베이스
    • 창고관리인 - DBMS
    • 직원 - 응용 프로그램 또는 사용자
  • 제공하는 기능
    • 정보를 표현할 수 있는 틀
      • DBMS가 정보를 관리할 수 있는 양식: Table의 양식
      • 다양한 정보의 표현이 가능해야 함
      • DDL 언어를 통해 정의
    • 데이터의 공유기능
      • 서로 동일한 데이터는 하나의 데이터로 관리함
      • 데이터를 공유함으로써 데이터의 중복을 제거
      • 동시성 제어: 동일한 데이터를 여러개의 응용프로그램에서 동시에 접근(트랜잭션) 하게 될때 해당 데이터가 비 일관적인 상태에 빠질 수 있는(동시성 문제)것을 방지 (어느 한쪽의 실행을 멈춤)
    • 데이터 무결성 유지 기능
      • 데이터를 정의할때 제약조건을 정의하기 때문에 들어온 데이터가 정확한 값임을 알 수 있음
    • 데이터 독립성
      • 응용 프로그램과 데이터 간의 독립성을 보장
      • 데이터 베이스의 테이블을 바꾸어도 프로그램이 바뀌지 않는다
    • 효율적인 자원관리
      • 많은 양의 데이터를 다루는데 효과적인 방법을 사용함
      • 디스크 상에 데이터를 배치시키거나 디스크의 데이터를 메인메모리로 버퍼링을 하는 기능을 제공해줌
    • 데이터 보안성과 안정성 유지 기능
      • 읽기 쓰기 권한을 따로 구분해서 제공함으로써 보안성과 안정성을 유지

파일 시스템의 데이터 관리 기능

  • 파일 시스템
    • 운영체제의 중요한 부분으로 데이터나 프로글매을 디스크에 읽고 쓸 수 있도록 해주는 프로그램
  • 프로그램에서 다루는 데이터를 직접 하나의 파일에 저장하여 관리 하는 경우의 문제점
    • 프로그램 이외의 방법으로도 데이터 조작 가능
    • 프로그램과 데이터 형식이 묶여 있음
      • 독립성이 보장되지 않음
    • 동시 접근의 문제
    • 보안 문제
    • 장애 복구 문제
  • 파일 시스템을 이용하는 DBMS
    • 파일 시스템: 기본적인 저장 기능만을 제공
    • DBMS: 데이터베이스 관리에 필요한 다양한 기능을 제공

데이터베이스 시스템과 사용자

  • 일반 사용자 (end user)
    • 응용프로그램의 인터페이스를 통해서 데이터베이스에 접근
  • 응용프로그램 개발자
    • 응용프로그램에서 데이터베이스를 연결하여 사용
  • DBMS 개발자
    • DBMS 구성하는 모듈들을 설계하고 구현하는 사람
  • 데이터베이스 관리자
    • 데이터베이스에 관련된 모든 것에 관리하고 책임을 지는 사람
    •