데이터 베이스

  • 서로 연관이 있는 데이터들의 모임
  • 특정한 목적을 위해서 설계, 구축, 운용
  • 데이터가 생성되는 원천(source)를 가지며, 실세계의 사건들과 어느정도 상호작용을 가지고, 데이터베이스의 내용에 능동적으로 관심을 갖는 사용자를 가짐
  • 가장 일반적인 유형의 데이터베이스에서 데이터는 일반적으로 처리 및 데이터 쿼리를 효율적으로 수행하기 위해 일련의 테이블에서 행과 열로 모델링

데이터 베이스의 개념

  1. 공용 데이터 - 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미
  2. 통합된 데이터 - 데이터를 통합하는 개념. 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 제거
  3. 저장된 데이터 - 문서로 보관된 데이터가 아니라 컴퓨터 저장장치에 저장된 데이터를 의미
  4. 운영 데이터 - 조직의 목적을 위해 사용되는 데이터. 즉, 업무를 위한 검색을 목적으로 저장됨

데이터 베이스의 특징

파일처리 방식에 비하여 데이터베이스 방식이 갖는 특징

  1. 실시간 접근성 - 데이터베이스는 실시간으로 서비스됩니다. 사용자가 데이터를 요청하면 수 초 내에 결과를 서비스한다.
  2. 프로그램과 데이터의 격리 - 데이터 파일의 구조가 응용 프로그램과 분리되어 DBMS 카탈로그에 저장, 따라서 데이터 파일의 구조가 변경되어도 응용 프로그램에 끼치는 영향은 미비
  3. 데이터에 대한 다중 뷰의 제공 - 사용자는 자신이 사용하는 데이터가 데이터베이스에 저장된 실제 데이터인지 또는 유도된 데이터인지 구분할 필요가 x
  4. 데이터의 공유와 다수 사용자 트랜잭션 처리 - 다수 사용자용 DBMS에는 동시성 제어 소프트웨어가 내장되어 다수 사용자가 동일한 데이터를 동시에 변경하는 경우에도 데이터의 일관성을 보장

데이터 베이스의 구조

  • 스키마 - 데이터베이스의 논리적 정의, 즉 데이터 구조와 제약조건에 대한 명세를 기술한 것
    1. 외부 단계 - 데이터베이스 구조를 사용자(응용 프로그램) 입장에서 추상화
    2. 개념 단계 - 데이터베이스 구조를 조직 전체의 입장에서 추상화
    3. 내부 단계 - 데이터베이스 구조를 저장 장치의 입장에서 추상화

데이터 베이스 시스템

  • 데이터베이스 + DBMS

DBMS

  • 사용자가 데이터베이스를 생성하고, 관리할 수 있도록하는 컴퓨터화된 시스템이다.
  • DBMS는 다양한 사용자와 응용들이 필요로하는 데이터베이스를 정의, 생성, 조작, 공유할 수 있도록 편리한 기능을 제공하는 범용 소프트웨어 시스템이다.
    1. 데이터베이스 정의 - 데이터베이스에 저장되는 데이터에 대한 데이터 타입, 구조, 제약조건(constraint)들을 명세하는 과정
    • 메타데이터(meta-data) : DBMS에 의해서 카탈로그나 사전의 형태로 저장되는 데이터베이스를 설명하는 정보
      1. 데이터베이스 구축 - DBMS가 관리하는 기억 장치(대부분 디스크)에 데이터를 저장하는 과정
      2. 데이터베이스 조작 - 특정한 데이터를 검색하기 위한 질의, 데이터베이스의 갱신, 데이터로부터 리포트를 생성하는 기능 등을 포함
      3. 데이터베이스 공유 - 여러 사용자와 프로그램이 데이터베이스에 동시에 접근하도록 하는 기능

DBMS의 종류

DBMS 제작사 작동운영체제 기타
MySQL Oracle Unix, Linux, Windows, Mac 오픈 소스(무료), 상용
MariaDB MariaDB Unix, Linux, Windows MySQL 초기 개발자들이 독립해서 만듦
Oracle Oracle Unix, Linux, Windows 상용 시장 점유율 1위
SQLite SQLite Android, iOS 모바일 전용, 오픈 소스(무료)

DBMS의 분류

  1. 계층형 DBMS
    • 처음으로 등장한 DBMS 개념으로 1960년대에 시작
    • 데이터가 트리(Tree) 형태의 구조로 조직
    • 상하 종속적인 관계로 구성되어 있어 초기 셋팅 후 변화하는 프로세스를 수용하기가 쉽지 않다는 단점
    • 복잡한 관계를 지원할 수 없고, 따라서 중복 데이터로 인해 종종 문제가 발생
  2. 망형 DBMS
    • 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 등장
    • 계층형데이터베이스관리 시스템의 문제점인 상하 종속적인 관계 해결
    • 구성과 설계가 복잡하고 궁극적으로 데이터의 종속성을 해결 x
  3. 관계형 DBMS
    • 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열(column)과 행(row)으로 구성
    • 수학적 논리관계를 테이블의 형태로 구성한 구조로서 테이블 내의 컬럼 중 일부를 다른 테이블과 중복해 각 테이블간의 상관관계를 정의
    • 다른 DBMS 보다 더 많은 자원이 필요로해 시스템의 부하가 높다는 단점

DBMS의 장점

  1. 중복성의 제어 - 데이터 베이스를 사용하는 경우에는 데이터에 개한 각 사용자 그룹의 뷰들이 데이터베이스 설계 과정에서 하나로 통합 -> 각 논리적 데이터는 데이터 베이스 내에 오직 한번만 저장
    • 데이터 정규화 - 데이너 베이스 내에 오직 한번만 저장
    • 반정규화 - 제어된 중복성이 질의 성능을 개선하는 데 유용한 경우(중복의 허용)
  2. 권한이 없는 접근의 통제 - DBMS는 보완과 권한 서브시스템을 가짐
  3. 프로그램 객체를 위한 지속성 기억 공간 제공 - 프로그램의 수행이 끝난 후에도 데이터베이스에 영구적으로 객체가 남아 있으며 필요하면 언제든지 다른 프로그램들에서 접근이 가능
  4. 효율적인 질의 처리를 위한 저장 구조와 탐색 기법의 제공 - DBMS는 원하는 레코드를 디스크에서 검색하는 시간을 줄이기 위해 특수한 자료구조와 탐색 기법을 제공해야함
  5. 백업과 회복 제공 - DBMS는 하드웨어와 소프트웨어의 고장으로부터 복구할 수 있는 기능을 가져야함
  6. 다수의 사용자 인터페이스 제공 - 사용자들이 다양한 그룹으로 나누어지므로 이에 따라 각각에 적합한 인터페이스를 제공해야 함
  7. 데이터 간의 복잡한 관계의 표현 - DBMS는 새로운 관계가 나타날 때 그 관계를 정의하고 연관된 데이터를 쉽고 효율적으로 검색하거나 변경할 수 있는 기능을 제공하기 위해 필요
  8. 무결성 제약 조건의 시행
    • 참조 무결성 제약 조건: 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 같아야 하며, 이는 자식 릴레이션의 값이 변경될 때 부모 릴레이션 도메인에 제약을 받는다는 조건
    • 키 제약 조건: 키 애트리뷰트에 중복된 값이 존재해서는 안된다는 조건

SQL

  • 관계형 데이터베이스에서 사용되는 언어
  • 데이터베이스를 조작하는 ‘언어’이긴 하지만 일반적인 프로그래밍 언어(C, 자바, 파이썬 등)와는 조금 다른 특성을 지님
  • 표준 SQL - 국제표준화기구에서 SQL에 대한 표준을 정해서 발표

태그: ,

카테고리:

업데이트:

댓글남기기