[DB] 데이터베이스 구조

·2025년 1월 2일

데이터베이스

목록 보기
2/22
post-thumbnail

스키마란

스키마(schema)는 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

고객과 관련된 데이터인 고객번호, 이름, 나이, 주소가 있음

고객번호는 정수로, 이름은 최대 10자의 문자열, 나이는 정수로, 주소는 최대20자의 문자열만 허용하기로 함

정해진 이 모든 내용이 스키마, 그리고 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값이 인스턴스


3단계 데이터베이스 구조

  • 데이터베이스는 3단계 구조 외부스키마, 개념스키마, 내부스키마로 나뉠 수 있음
  • 3단계 데이터베이스는 외부단계, 개념단계, 내부 단계 세단계로 나뉨
    • 개별 사용자 관점에서 바라보는 외부 단계(external level)
    • 조직 전체의 관점에서 바라보는 개념 단계(conceptual level)
    • 물리적인 저장 장치의 관점에서 바라보는 내부 단계(internal level)
  • 데이터베이스 하나를 세 단계로 나누고, 각 단계별로 다른 추상화를 제공하면 데이터베이스를 효과적으로 관리 할 수 있음
  • 일반적으로 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아짐
  • 해당 구조를 통해 모든 데이터가 어떻게 저장되고 유지되는지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화한 외부 단계의 관점을 일반 사용자들에게 제공할 수 있음
  • 아파트를 예를 들면, 집주인의 관점에서 보는게 외부 단계, 건물 전체의 관리인 관점에서 보는게 개념 단계, 건설 업체에서 보는게 내부 단계

외부 단계

  • 개별 사용자 관점에서 데이터베이스를 이해하고 표현하는 단계
  • 하나의 데이터베이스를 조직 내의 사용자들이 함께 사용하지만 각 사용자가 데이터베이스 전체에 관심이 있는 것이 아님
  • 사용자마다 업무 내용과 사용 목적이 달라 필요한 데이터 내용이 다를 수 있음.
  • 예를 들면 쇼핑몰 담당 직원이 필요한 데이터, 고객 관리 담당 직원이 필요한 데이터, 상품 관리 담당 직원이 필요한 데이터는 각각 다름

외부 스키마

  • 사용자단에서 데이터베이스를 바라보는 뷰를 정의
  • 사용자마다 생각하는 데이터베이스의 논리적인 구조
  • 사용자가 관심을 가지는 데이터베이스의 일부를 표현
  • 서브 스키마(Sub schema)라고도 함
  • 데이터베이스 하나의 여러 외부 스키마가 존재할 수 있음
  • 사용 목적이 같은 사용자들이 외부 스키마 공유 가능
  • 사용자마다 데이터베이스를 보는 구조가 다름

개념 단계

  • 데이터베이스를 조직 전체의 관점에서 통합하고 이해하고 표현하는 단계

개념 스키마

  • 전체 데이터베이스의 구조를 정의
  • 조직 관점에서 모든 사용자에게 필요한 데이터를 통합한 전체 데이터베이스의 논리적 구조
  • 저장 데이터, 데이터 간 관계, 제약 조건, 보안 정책, 접근 권한을 포함
  • 물리적 저장 방식과는 독립적
  • 하나의 데이터베이스에는 하나의 개념 스키마가 존재
  • 일반적으로 스키마라고 하면 개념 스키마를 의미

내부 단계

  • 데이터베이스를 저장 장치 관점에서 이해하고 표현하는 단계
  • 전체 데이터베이스가 저장 자치에 실제로 저장되는 방법을 정의하며, 이를 내부 스키마라고 함

내부 스키마

  • 데이터의 물리적 저장구조를 정의
  • 파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의
  • 데이터베이스의 개념 스키마에 대한 물리적인 저장 구조를 표현
  • 하나의 데이터베이스에 하나만 존재

데이터 독립성

데이터 독립성이란?

  • 데이터 독립성은 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성을 의미
  • 3단계 데이터베이스 구조에는 논리적 데이터 독립성물리적 데이터 독립성이 존재
  • 데이터베이스를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응 관계를 정의하는 궁극적인 목적은 데이터 독립성(data independency)을 실현하기 위해서임

데이터 독립성을 위한 스키마 간 매핑

  1. 외부/개념 사상
  • 외부 스키마개념 스키마를 연결
  • 사용자가 요청한 데이터를 개념 스키마와 매핑하여 제공
  • 논리적 데이터 독립성 실현
  1. 개념/내부 사상
  • 개념 스키마내부 스키마를 연결
  • 개념 스키마에 정의된 데이터를 물리적 저장 구조로 매핑
  • 물리적 데이터 독립성 실현

논리적 데이터 독립성

  • 논리적 데이터 독립성은 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것을 의미
  • 즉, 데이터베이스의 논리적 구조가 변경되어도 외부 스키마와 응용 프로그램은 변경할 필요가 없음
  • 전체 데이터베이스의 논리적인 구조가 변경되어도 관련된 외부/개념 사상 정보만 적절히 수정해주면 직접 관련이 없는 사용자를 위한 외부 스키마는 변경할 필요가 없음

물리적 데이터 독립성

  • 물리적 데이터 독립성은 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것을 의미
  • 결과적으로 외부 스키마도 영향을 받지 않음
  • 데이터베이스의 저장 구조가 변경되어도 관련된 개념/내부 사상 정보만 적절히 수정해주면 직접적으로 관련이 없는 데이터베이스의 논리적 구조는 영향을 받지 않음

Reference

https://terms.naver.com/list.naver?cid=58430&categoryId=58430&so=st4.asc

0개의 댓글