[릴레이션]
: 테이블과 비슷, 릴레이션 스키마와 릴레이션 인스턴스로 구성
릴레이션에서 연관 관계 & 제약 조건 생기면 ==> 테이블
(릴레이션 스키마 != 스키마)
Schema (스키마란 )
1. 시간불변
2. 현실세계 특정 부분을 모델
3. 데이터 구조의 특성, 인스턴스에 의해 규정
■ <사용자, 설계자, 개발자>
데이터베이스 보는 관점에 따라 데이터베이스를 기술하고 관계를 정의
=> 데이터 독립성 확보하기 위한 방법
■ 3계층 ?
미국의 표준화 기관 ANSI/SPARC , 3단계 데이터베이스 구조(3-level database architecture) 제안
각 단계별로 다른 추상화 레벨 제공하면 효과적으로 관리
DBMS 외부적 스키마 따라 명시된 사용자의 요구
ㄴ > 개념적 스키마에 적합한 형태로 변경
ㄴ > 내부적 스키마에 적합한 형태로 변경
□ 장점 :
데이터 복잡도 감소
데이터 중복 제거
사용자 요구사항 변경에 따른 대응력 향상
관리 및 유지보수 비용 절감
→ 왜 계층적으로 표현? (like OSI 7계층, TCP/IP 4계층, 메모리 계층 구조…)
계층적 표현하면 => 적재적소에 분명한 것 빠르게 찾고 그에 맞게 적용 가능하다 !스키마 3계층도 마찬가지입니다!
□ <사용자, 설계자, 개발자> 각 관점 봐야하는 부분 분명하게 나누고, 수정 필요하다면 해당 부분 수정해 장점 살리기 위해서
==> 모든 데이터의 저장, 유지와 관련된 복잡한 내용 숨기고 필요한 데이터만 단순화한 관점 을 일반 사용자에게 제공 가능
■ 관계형 데이터베이스에서 기본 구조 정의
데이터베이스의 구조와 제약조건에 관한 전반적 명세(specification)를 기술(Description)
데이터베이스 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) , 제약조건(Constraint) 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 대해 전반적으로 정의
□ 사용자 관점 : 외부 스키마 (External) -> 개념 스키마 (Conceptual) -> 내부 스키마 (Internal)
(내부로 갈수록 깊어짐, 추상화 레벨 높아짐)[추상화가 뭐임] :간단한 개념으로 일반화하는 과정
스키마는 데이터 사전에 저장 (=메타 데이터)
데이터 사전: 시스템 전체에서 나타나는 데이터 항목들에 대한 정보를 지정한 중앙 저장소
메타데이터: 일반적으로 데이터에 관한 구조화된 데이터
인스턴스 : 스키마에 대한 실제 데이터 의미, 인스턴스가 모여 데이터베이스 상태됨
외부 스키마 : 논리적 구조 (개별 사용자 관점)
사용자에게 필요한 데이터베이스 정의한 것
데이터 추상화 최상위 단계, 전체 데이터베이스의 일부분만 기술 (서브 스키마 라고도 함)
각 개인(사용자)의 입장에서 필요로하는 데이터베이스의 논리적 구조를 정의
데이터베이스에 대해 서로 다른 관점 정의할 수 있도록 허용 (=사용자 뷰)[사용자 뷰란?] : 데이터베이스에 대한 사용자의 인터페이스
하나의 외부 스키마를 여러 개의 응용프로그램이나 사용자가 공유할 수 있음
일반 사용자는 질의어로 사용 (sql)
응용 프로그래머 언어 사용해 접근 (C, java)
∴ 사용자가 데이터베이스에 조회 쿼리 날려서 보게 되는 데이터
=> 조회해서 나온 테이블 그 자체
개념 스키마 : only one (조직 전체의 관점)
데이터베이스의 전체적인 논리 구조 (일부분 X)
모든 사용자에게 필요한 데이터 통합하여 전체 데이터베이스의 논리적 구조 정의
모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한
조직 전체의 데이터베이스. 오직 하나만 존재
일반적으로 스키마 => 개념 스키마
∴ 데이터베이스의 전체 논리구조, 여러 엔티티, 엔티티들 간의 관계, 제약 조건
테이블 그 자체를 바라보는 것이 아닌 데이터베이스를 전체적으로 크게 바라본 형태
내부 스키마 : 물리적 구조 (물리적 저장 장치의 관점)
데이터베이스의 물리적 구조 정의 (전체 데이터베이스가 디스크와 테이프 같은 저장 장치에 실제로 저장되는 방법 기술)
(데이터의 물리적인 설계도)
물리적 저장장치와 밀접 (저장위치, 데이터 구조, 파일 구성 및 보안대책 등)
시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
∴ 개발자가 사용하는 데이터베이스의 테이블 그 자체의 물리적인 구조 얘기하는 것.
실질적으로 테이블에 대해 조작할 때 필요한 것
사용자와 가장 가까운 내부스키마
DBA와 가장 가까운 개념 스키마
system programmer와 가장 가까운 외부 스키마
+
논리적 데이터 독립성 : 외부 스키마나 응용프로그램을 변경하지 않으면서 개념 스키마 변경할 수 있는 능력(성질)
물리적 데이터 독립성 : 개념 스키마 변경하지 않으면서 내부 스키마를 변경할 수 있는 능력(성질)
'CS' 카테고리의 다른 글
S)DB_06_트리거 (1) | 2024.03.27 |
---|---|
S)DB_06_저장 프로시저 (1) | 2024.03.27 |
S)DB_04_RDBMS vs Nosql (3) | 2024.03.16 |
S)DB_03_트랜잭션3 (0) | 2024.03.14 |
S)DB_03_트랜잭션2 (1) | 2024.03.14 |