Database - (1) 관계형 데이터베이스 (RDB)

파워 오브 데이터베이스 ( 가장 쉬운 데이터베이스 설계를 위한 지침서, 마이클 J. 헤르난데즈 저/송현호, 황규용 역 )의 1장을 공부하고 요약 한 내용입니다.

1. 관계형 데이터베이스

데이터베이스

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

운영 데이터베이스

  • 데이터를 수집 / 수정 / 보존 할 필요가 있는 온라인 트랜잭션 처리에 주로 사용 → 동적인 성격 다수
  • 가장 범용적인 데이터베이스 유형
  • 소매점, 제조회사, 출판사 등

분석 데이터베이스

  • 장시간에 걸쳐 수집된 데이터를 저장 / 동향 추적 할 필요가 있는 온라인 분석에서 주로 사용 → 거의 변화가 없는 정적인 데이터 저장
  • 화학 연구소, 지질학 관련 회사 등

계층형 데이터 베이스 모델

  • 뒤집힌 트리 구조로 도식화
  • 하나의 테이블이 “뿌리” 역할
  • 부모 / 자식의 관계 → 부모 : 자식 = 1 : n

Pros

  • 사용자가 매우 빠르게 데이터 검색 가능 → 테이블 사이에 관계를 명시적으로 표기 하기 때문
  • 참조 무결성이 자동으로 강제되어 구축 → 자식테이블에 있는 데이터가 부모 테이블에 존재하는 레코드에 연결되어야하고, 부모테이블에서 삭제된 데이터가 자식 테이블에서도 동시에 삭제되어야 하는 특징 보장 ( CASCADE ) → 외래키

Cons

  • 부모테이블에 있는 어떤 데이터와도 연관성이 없는 데이터를 삽입하기 힘듬 ( 강제되기 때문 )
  • 복잡한 관계에 대한 내용을 담을 수 없음 ( 자식 데이터 끼리 n : m 관계 성립하는 경우 모델링 힘듦 )

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

  • 노드와 집합 구조 측면에 초점을 맞추어 구현
    • 노드 : 레코드의 모음
    • 집합구조 : 네트워크 데이터베이스 간 관계 표현 / 설정
  • 소유자 노드 ( 상위 노드 )는 참여자 노드 ( 하위 노드 )를 n개 가질 수 있지만, 그의 역은 불가능
  • 참여자 노드의 레코드는 소유자 노드 없이 존재 불가능 하지만, 소유자 노드는 참여자 노드가 없어도 존재가 가능

소유자 노드 ( Agents ) → 집합 구조 ( Represent ) → 멤버 노드 ( Clients )

Pros

  • 데이터를 빠르게 찾는다.
  • 계층형 데이터베이스 모델보다 복잡한 처리를 할 수 있는 쿼리 생성 가능

Cons

  • 집합 구조를 통해 작업해야 하기 때문에 사용자가 이 데이터베이스 구조를 잘 알아야함
  • 집합 구조 모르면 쿼리 불가
  • 집합 구조를 변경하고싶다면, 해당 구조와 연동되는 모든 응용프로그램 수정해야함

관계형 데이터베이스 모델 ( RDB )

  • 관계 → 관계형 데이터베이스 내의 테이블들이 서로 관계를 맺고 있는데서 기인 한 용어가 아니라, 집합론에서 사용하는 관계 라는 용어에서 파생되었음
  • 테이블로 구현된 관계에 데이터를 저장 ( 사용자는 이를 테이블로 인지 )
  • 각 관계들은 튜플, 레코드, 속성이나 필드로 구성됨
  • 테이블에 있는 레코드나 필드의 실제 순서는 물리적인 순서가 아닌 개념적인 순서
  • 각 테이블에 있는 레코드는 고유값을 갖는 필드에 의해 구성
    • 윗 두가지 특성에 의해 컴퓨터에 물리적으로 저장하는 방식에 구애받지 않도록 해줌.
    • 사용자는 데이터를 보기 위 해 레코드의 물리적인 위치를 알아야 할 필요가 없다.

    → 구조를 알고 있어야 원하는 데이터를 볼 수 있는 계층형 / 네트워크 데이터베이스 모델과의 가장 큰 차이점

  • 관계들을 1:1, 1:n, n:m 관계로 구분
  • 테이블 사이에 존재하는 관계는 공유된 필드의 값을 맞춤으로써 묵시적으로 설정 ( FK 이용 )

관계형 데이터베이스에서의 데이터 검색 ( SQL )

  • SQL → Structured Query Language
  • 관계형 데이터베이스에서 생성, 수정, 관리 및 질의 작업을 할 때 사용하는 표준 언어

Pros

  • 다중 무결성 내장
    • 데이터의 정합성을 보장하기위한 레코드 중복 방지 → 필드 수준에서의 무결성
    • 기본 키의 부재를 감지 → 테이블 수준에서의 무결성
    • 테이블 사이의 설정되어야 하는 관계를 보장 → 관계 수준의 무결성
    • 데이터의 정확성을 보장 → 사업 수준의 무결성
  • 데이터의 일관성과 정확성을 보장
  • 쉬운 데이터 검색
  • DB 응용프로그램으로 부터 논리적 / 물리적 데이터 독립성

Cons

  • RDB를 활용한 프로그램이 느리다는 평가 많았으나, 하드웨어 시장의 문제점이었음

관계형 데이터베이스 관리 시스템 ( RDBMS )

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