티스토리 뷰
✏️스키마 정의
데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의하는 것을 스키마(Schema)라고 한다. => "틀"
이와 대비되는 개념으로 스키마에 따라 데이터베이스에 실제로 저장된 값을 인스턴스(Instance)라고 한다. => "내용"
✏️ ANSI-SPARC Architecture for Databases
미국 표준화 기관인 ANSI/SPARC에서 제안한것으로 3단계로 데이터베이스를 구조화한다.
간결하게 중요한 부분만 추려낸 추상화를 각 단계별로 제공하고, 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아진다. 즉 내부에서 외부단계로 갈 수록 중요한 부분만 뽑아낸다.
외부 단계 (External Level) : 개별 사용자 관점
- External Schema(Sub Schema) : 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것으로 각 사용자가 생각하는 데이터베이스의 모습, 즉 논리적 구조로 사용자 마다 다르다. 그러므로 하나의 데이터베이스에 여러 External Schema가 존재할 수 있다.
개념 단계 (Conceptual Level) : 조직 전체의 관점
- Conceptual Schema : 개념 단계에서 데이터베이스 전체의 논리적 구조를 정의한 것으로 조직 전체의 관점에서 생각하는 데이터베이스의 모습이다. 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간 어떤 관계가 존재하고, 어떤 제약 조건이 존재하는지에 대한 정의를 한다. 뿐만 아니라 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함한다. 개념 스키마는 데이터베이스에 하나만 존재한다.
내부 단계 (Internal Level) : 물리적인 저장 장치의 관점
- Internal Schema : 전체 데이터베이스가 저장 장치에 실재로 저장되는 방법을 정의하여 구조, 크기, 접근 경로 등 물리적 저장공간을 정의한다. 내부 스키마는 데이터베이스에 하나만 존재한다.
✏️Data Dependency and Mapping
3단계 구조에서 각 단계는 서로 연결되어 있으며, 만약 어떤 하나의 구조가 변경되면 그것을 참조하고 있던 상/하위 단계의 구조가 영향을 받아 데이터 종속성(Data Dependency)문제가 발생한다. 이를 해결해결 하기 위해 단계와 단계 사이에 중간 interface를 만드는 사상(Mapping) 기법을 사용한다.
Mapping 기법에는 두가지가 있다.
- External-Conceputal Mapping (Application Interface)
- Conceptual-Internal Mapping(Storage Interface)
Mapping 기법을 사용하면 하위 Schema를 변경하면 이와 관련된 Mapping만 정확하게 변경하면 된다.
'Database' 카테고리의 다른 글
[QueryDsl] fetchCount() 가 deprecated 되었다. (2) | 2024.08.28 |
---|---|
[Database] 트랜잭션(Transaction)에 대해서 (1) | 2023.10.13 |
[Database] MySQL : PART1 (0) | 2022.12.05 |
[Database] 인스타그램 Relational Schema 실습 (0) | 2022.12.02 |
- Total
- Today
- Yesterday
- Spring
- CI/CD
- acm
- githubactions
- appliationeventlistener
- java
- CI와 CD의 차이
- 자바
- Spring Boot
- 지연 대기열
- persistencecontext
- springboot
- 프로그래머스
- 정렬
- 트랜잭션
- Hibernate
- IAM
- LeetCode
- entitylisteners
- aws
- 영속 상태
- 영속성 컨텍스트
- network
- fetchcount()
- 네트워크
- DevOps
- CodeDeploy
- JPA
- Route53
- EC2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |