DB/이론

12. [ DB ] MySQL 확장 : 스키마(Schema) 정의

천재단미 2024. 12. 5. 16:55
728x90
반응형

1. 스키마 정의 

 

데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합입니다. 


위의 Diagram처럼 스키마는 개체(Entity), 속성(Attribute), 그리고 관계(Relation)에 대한 정의와 제약 조건을 포함합니다.

 

 

 

 

 

 

1. 스키마 특징

 

 

1) 데이터 사전(Data Dictionary)에 저장됩니다.
2) 특정 데이터 모델을 이용해 만들어집니다.
3) 시간에 따라 불변인 특성을 가집니다.
4) 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정됩니다.

 

 

 

 

2. 스키마의 3 계층 및 영향

 

 

1) 개념 스키마 (Conceptual Schema)

  • 데이터베이스의 전체적인 논리적 구조를 정의합니다.
  • 각 데이터베이스에는 하나의 개념 스키마만 존재합니다.
  • 개체 간의 관계 및 무결성 제약 조건에 대한 명세를 정의합니다.

 

1-1) 영향 

  • 전체적인 데이터베이스 구조를 정의하므로, 데이터의 중복을 줄이고 일관성을 유지하는 데 중요한 역할
  • 간접적으로 성능에 영향
  • 데이터 중복 감소
  • 데이터의 정확성과 무결성 보장
  • 신속한 데이터 조회, 검색 및 분석 지원

 

 

 

 

 


2) 내부 스키마 (Internal Schema)

  • 물리적 저장장치 입장에서 본 데이터베이스 구조입니다.
  • 개념 스키마를 물리적으로 구현하기 위한 방법을 기술합니다.
  • 저장될 데이터 항목의 내부 레코드 형식, 물리적 순서 등을 나타냅니다.

 

1-1) 영향 

  • 데이터의 물리적 저장 구조를 정의하므로, 실행 속도에 결정적인 영향
  • 내부 레코드의 물리적 순서, 인덱스의 유무, 저장 방식 등이 데이터베이스의 실행 속도와 효율성을 좌우

 

 

 


3) 외부 스키마 (External Schema)

  • 개별 사용자들의 입장에서 데이터베이스의 논리적 구조를 정의합니다.
  • 하나의 데이터베이스에는 여러 개의 외부 스키마가 존재할 수 있습니다.
  • 동일한 데이터에 대해 서로 다른 관점을 정의할 수 있습니다.

 

1-1) 영향 

  • 사용자 관점의 스키마로, 직접적인 성능 영향은 적지만 데이터 접근 방식에 영향
  • 필요한 데이터만 효율적으로 접근
  • 복잡한 조인 연산을 줄여 성능 향상에 기여
  • 데이터베이스의 목적과 요구사항에 맞는 적절한 스키마 설계가 성능 최적화에 중요

(스키마 설계가 비효율적일 경우, 데이터 중복, 불일치, 복잡한 조인 연산 등으로 인해 성능 저하가 발생할 수 있습니다. )

 

 

 

 

3. 스키마의 보안 수준을 높이기 위한 방법

 

 

1) 접근 제어 강화

 

  • 사용자 인증(Authentication)을 철저히 하여 정당한 사용자만 데이터베이스에 접근할 수 있도록 합니다.
  • 접근 통제(Access Control)를 통해 허가받지 않은 사용자의 데이터베이스 접근을 방지합니다.
  • 역할 기반 접근 제어(RBAC)를 구현하여 사용자별로 최소한의 필요한 권한만 부여합니다.

 


2) 데이터 보호

 

  • 암호화(Encryption)를 사용하여 중요한 데이터를 보호합니다.
  • 저장 데이터와 전송 중인 데이터 모두 암호화해야 합니다.
  • 가상 테이블(Views)을 활용하여 사용자가 허가받은 데이터만 볼 수 있도록 제한합니다.

 

 


3) 모니터링 및 감사

 

  • 데이터베이스 활동을 실시간으로 모니터링하고 로그를 기록합니다(DAM - Database Activity Monitoring).
  • 정기적으로 취약점을 평가하고 발견된 취약점에 대해 우선순위를 정해 교정합니다.

 


4) 정책 및 절차 수립

 

  • 명확한 데이터베이스 보안 정책을 수립하고 모든 직원이 이를 인식하고 준수하도록 합니다.
  • 데이터 백업 및 복구 절차를 문서화하고 정기적으로 테스트합니다.


5) 지속적인 관리

 

  • 계정 관리: 데이터베이스 접근 계정을 주기적으로 검토하고 암호를 갱신합니다.
  • 권한 관리: 계정별 특정 권한을 주기적으로 검토하고 필요에 따라 조정합니다.
  • 보안 등급 관리: 계정별, 데이터별로 적절한 보안 등급을 지정하고 관리합니다.
  • 이러한 방법들을 종합적으로 적용하여 데이터베이스 스키마의 보안 수준을 높일 수 있습니다. 
  • 또한 변화하는 위협 환경에 대응하기 위해 보안 정책과 절차를 정기적으로 검토하고 갱신하는 것이 중요합니다.

 

728x90
반응형
home top bottom
}