1장 관계형 데이터베이스

김현수·2025년 5월 27일
0

데이터베이스 유형

데이터베이스

조직이나 조직에서 수행하는 업무 절차의 일부 유형을 모델링하기 위한 목적으로 사용되는 조직화된 데이터 집합

운영 데이터베이스

  • 일 기준으로 데이터를 수집, 수정, 보존할 필요가 있는 온라인 트랜잭션 처리(OLTP, Online Transaction Processing)에서 주로 사용된다.
  • 분 단위의 정보들을, 항상, 지속적으로 반영해야 하는 동적인 성격을 가짐

분석 데이터베이스

  • 장시간에 걸쳐 수집된 데이터를 저장하고 동향을 추적할 필요가 있는 온라인 분석 처리(OLAP, Online Analytical Processing)에서 주로 사용된다.

이전 데이터베이스 모델

관계형 데이터베이스 모델 이전에는 계층형 데이터베이스 모델네트워크 데이터베이스 모델이 사용되었다.

계층형 데이터베이스 모델

  • 데이터를 계층형으로 구성하며, 일반적으로 트리 구조로 도식화한다.
    • 테이블이 트리의 뿌리(root)이자 가지(branch)의 역할을 한다.
  • 관계는 부모/자식이라는 용어로 표시된다.
  • 포인터나 테이블 간 레코드들의 물리적인 배치를 통해 분명하게 연결되고, 뿌리 테이블부터 시작하여 대상 데이터가 있는 테이블을 찾는다.

장점

  • 사용자가 매우 빠르게 데이터를 검색할 수 있다.
    • 테이블 구조 사이에 관계를 명시적으로 표시해놓기 때문이다.
  • 참조 무결성이 강제된다.
    • 자식 테이블의 데이터는 부모 테이블의 레코드와 연결되어야 한다.
    • 부모 테이블에서 삭제된 데이터는 자식 테이블에서도 삭제되어야 한다.

문제점

  • 부모 테이블에 있는 어떤 데이터와도 관련이 없는 데이터를 자식 테이블에 입력할 필요가 있을 때 문제가 발생한다.
  • 복잡한 관계(특히 다대다 관계)에 대한 내용을 담지 못한다. 따라서 불필요한 데이터를 만든다.
    • 갖고 있을 필요가 없는 데이터를 가져야 하거나
    • 하나의 데이터를 여러 테이블에 다른 형태로 저장하는 등
  • 다대다 관계를 해결하기 위해서는 두 개의 계층형 데이터베이스를 사용해 논리적 자식 관계를 설정하는 등의 테크닉이 필요하다.
  • 데이터 중복과 관계의 복잡성 문제가 커질 수록 새로운 데이터베이스 모델이 필요하다.

네트워크 데이터베이스 모델

계층형 데이터베이스의 문제를 해결하기 위한 목적으로 개발되었다.

  • 노드와 집합 구조 측면에 초점을 맞추어 구현되었다.
    • 노드: 레코드의 모음
    • 집합 구조: 네트워크 데이터베이스 간 관계를 표현하고 설정함
  • 소유자 노드 --집합 관계 --> 참여자 노드의 형태
    • 소유자 노드는 하나 이상의 참여자 노드의 레코드와 연결될 수 있다. 즉, 일대다 관계를 지원한다.
    • 참여자 노드의 레코드는 소유자 노드에 있는 하나의 레코드에만 연결될 수 있고, 반드시 연결되어야 한다.
  • 하나의 노드는 여러개의 집합을 포함할 수 있다.
    • 계층형 데이터베이스처럼 루트에서부터 찾아갈 필요 없이, 어떤 노드에서 시작하더라도 연관된 집합들을 통해 순서에 상관없이 데이터를 살펴볼 수 있다.

장점

  • 데이터를 빠르게 찾을 수 있다.

문제점

  • 집합 구조를 통해 작업을 해야 하므로 사용자가 데이터베이스 구조를 매우 잘 다룰 줄 알아야 한다.
  • 데이터베이스와 연동된 응용프로그램을 수정하지 않은 채 구조를 변경하기 어렵다.
    • 집합 구조에 대한 관계를 명시적으로 정의해야 하고, 이 구조를 수정하면 응용프로그램에 영향이 간다.

관계형 데이터베이스 모델

  • 테이블로 구현된 관계에 데이터를 저장한다. 각 관계들은 튜플, 레코드, 속성, 필드로 구성된다.
  • 관계형 데이터베이스의 특징:
    • 테이블의 레코드나 필드의 실제 순서는 완전히 개념적이다.
    • 각 테이블의 레코드는 고유값을 갖는 필드에 의해 구분된다.
    • 위 두 가지 특성으로 사용자는 데이터를 보기 위해 레코드의 물리적인 위치를 알아야 할 필요가 없다.
  • 관계형 모델은 관계들을 일대일, 일대다, 다대다 관계로 구분한다.
  • 테이블 사이의 관계는 공유된 필드의 값을 맞춤으로써 묵시적으로 설정된다.
  • 테이블들 간 관계에 익숙하다면 수많은 방법을 통해 사용자는 원하는 데이터를 찾을 수 있다.

데이터 검색

  • SQL(Structured Query Language)을 사용해 관계형 데이터베이스의 데이터를 볼 수 있다.

관계형 데이터베이스의 장점

  • 내장된 다중 무결성
    • 필드에서의 무결성
    • 레코드 중복 방지와 기본키의 부재를 감지하는 테이블 수준의 무결성
    • 사업이 지속되는 동안 데이터의 정확성을 보장하기 위한 사업 수준의 무결성
  • 데이터베이스 응용프로그램으로부터 논리적, 물리적 데이터 독립성
    • 데이터베이스의 설계를 논리적으로 변경하거나, 데이터베이스 소프트웨어 업체에서 제공한 상품이 바뀌었더라도 해당 데이터베이스를 사용하는 응용프로그램에 영향이 가지 않는다.
  • 데이터의 일관성과 정확성을 보장
  • 쉬운 데이터 검색
    • 사용자 명령을 통해 데이터베이스에 있는 다수의 테이블이나 특정 하나의 테이블에서 데이터를 검색할 수 있다.

관계형 데이터베이스 관리 시스템

RDBMS, Relational Database Management System

  • 데이터베이스를 생성, 유지보수, 수정, 조작할 때 사용하는 소프트웨어 응용프로그램

관계형 데이터베이스 모델을 넘어

  • CAD(컴퓨터 지원 설계), GIS(지리 정보 시스템), 멀티미디어 저장 시스템 등의 분야에서는 관계형 데이터베이스가 부족한 부분이 있다.
  • 대안으로 객체지향 데이터베이스객체-관계형 데이터베이스가 등장했다.

0개의 댓글