[프로그래밍] DataBase

[DataBase] Schema

JHVan 2024. 5. 9. 22:05

Database Schema

데이터베이스의 구조(개체, 속성, 관계)와 제약 조건에 대한 정의이다.

데이터베이스의 구조를 정의하는 데 사용되는 프레임/청사진이다.

데이터베이스에 저장된 데이터의 조직, 타입, 관계 및 무결성 규칙을 포함하는 메타데이터 집합이다.

데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하고, 
데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경 할 때 DBMS는 자신이 생성한 데이터 베이스 스키마를 참조하여 명령을 수행한다.

일반적으로 데이터 모델링 도구를 사용하여 시각적으로 표현되며, 데이터베이스 생성 시 이 스키마에 따라 데이터베이스가 구성된다.

 

스키마 3계층

스키마의 3계층

외부 스키마

  • 데이터베이스의 데이터를 어떻게 사용자나 애플리케이션에 보여줄지 정의하는 데이터베이스 스키마
  • 사용자 각 개인의 기준에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
  • 사용자 인터페이스나 애플리케이션에서 데이터가 어떻게 표시되고 접근되어야 하는지에 대한 구체적인 뷰(view)와 사용자 인터페이스를 제공함.
  • 각 사용자나 애플리케이션의 요구에 맞춰 여러 개가 존재할 수 있으며, 이는 데이터베이스 관리 시스템(DBMS) 내에서 관리함
  • SQL을 이용하여 DB를 쉽게 사용할 수 있고, JAVA 등의 언어를 사용하여 접근할 수 있음

 

외부 스키마의 목적

사용자 친화적인 데이터 접근

  • 사용자가 데이터베이스의 복잡한 내부 구조를 몰라도 필요한 데이터를 쉽게 조회하고 활용할 수 있게 함

보안과 데이터 접근 제어

  • 사용자나 애플리케이션별로 필요한 데이터만 접근할 수 있도록 제한함으로써 데이터의 보안을 강화하고 민감한 정보의 노출을 방지

데이터 추상화와 독립성 제공

  • 외부 스키마를 통해 데이터베이스의 논리적 또는 물리적 구조에 변경이 생겨도 사용자 인터페이스나 애플리케이션 코드를 변경할 필요 없이 동일한 데이터 접근 방식을 유지

개념 스키마

  • 데이터베이스의 전체 논리적 구조를 정의하는 데이터베이스 스키마
  • 데이터베이스 내의 모든 데이터 객체(테이블, 뷰, 인덱스, 관계 등)와 그들 간의 관계, 그리고 데이터의 무결성 규칙을 포괄
  • 데이터베이스를 사용하는 사람들이 데이터베이스의 물리적 저장 위치나 저장 방법을 신경 쓰지 않고도 데이터베이스를 이해하고 사용할 수 있도록 추상화된 뷰를 제공
  • 데이터베이스 관리자(DBA)에 의해 구성
  • 데이터베이스 관리 시스템(DBMS)은 이 개념 스키마를 기반으로 데이터베이스를 생성하고 관리함

 

개념 스키마의 목적

데이터베이스의 전체적인 구조 제공

  • 개념 스키마는 데이터베이스의 구조와 이를 구성하는 각종 데이터 객체들의 관계를 정의
  • 데이터베이스 설계자와 관리자는 데이터베이스의 전체 구조를 이해하고 효율적으로 관리할 수 있음

데이터 무결성 유지

  • 개념 스키마는 데이터 무결성 규칙을 정의하여 데이터의 정확성과 일관성을 보장
  • 예로 기본 키와 외래 키 제약조건을 통해 데이터 간의 관계를 정확히 유지

데이터 독립성 보장

  • 개념 스키마는 물리적 스키마(데이터가 실제로 저장되는 방식을 정의)와 분리되어 있어, 물리적 저장 구조의 변경이 사용자 인터페이스나 애플리케이션에 영향을 주지 않도록 함
  • 데이터베이스 시스템의 유연성과 확장성이 향상됩니다.

내부 스키마

  • 데이터베이스의 물리적 저장 구조를 정의하는 데이터베이스 스키마
  • 데이터가 저장되고, 저장 장치 상에서 조직되며, 데이터 액세스 경로를 설정하는 세부 사항을 포함
  • 데이터베이스의 물리적 설계에 초점을 맞추고 있으며, 데이터베이스의 성능과 효율성을 최적화하는 게 목적
  • 대부분의 경우 데이터베이스 관리 시스템(DBMS)이 내부 스키마의 관리를 자동으로 처리함

내부 스키마의 목적

 

데이터 저장 방식 정의

  • 데이터가 저장 장치(예: 하드 디스크, SSD 등) 상에 어떻게 저장될지를 정의
  • 데이터 파일, 레코드의 형식, 인덱스의 구조 등

효율적인 데이터 액세스

  • 데이터의 물리적 저장 방식을 최적화하여 데이터 액세스와 검색 속도를 높임
  • 쿼리 처리 시간을 단축시키고 시스템의 전반적인 성능을 향상

데이터 무결성 및 보안 유지

  • 내부 스키마는 데이터 무결성을 유지하는 메커니즘을 포함하여 데이터가 정확하고 일관되게 유지
  • 데이터 액세스 제어를 통해 민감한 정보의 보안을 강화

'[프로그래밍] DataBase' 카테고리의 다른 글

[DataBase] 무결성  (0) 2024.05.12
[DataBase] Key  (0) 2024.05.11
[DataBase] DataBase Table  (0) 2024.05.10
[DataBase] DBMS  (0) 2024.05.09
[DataBase] DataBase?  (0) 2024.05.08