3 계층 스키마를 이해하기 전에 먼저 알아둬야 할 것이 있다.
릴레이션
테이블과 비슷하며 릴레이션 스키마와 릴레이션 인스턴스로 구성되어 있다.
릴레이션에서 연관 관계 및 제약 조건이 생긴다면 그 때 테이블이 된다.
스키마
관계형 데이터베이스에서 기본 구조를 정의하는 것이다.
- 데이터 개체(Entity), 속성(Attribute), 관계(Relationship), 제약조건(Constraint) 등에 대해 정의하는 것.
- 이는 관점에 따라서 외부 스키마, 개념 스키마, 내부 스키마로 나뉠 수 있다.
주의
릴레이션 스키마와 스키마는 엄연히 다르다는 것을 인지하여야 한다.
3-Level Schema
3-Level Schema 란
사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 관계를 정의한 것이다. 이는, 데이터의 독립성을 확보하기 위한 방법이다.
3-Level Schema의 장점
- 데이터 복잡도가 감소한다.
- 데이터의 중복이 제거된다.
- 사용자 요구사항 변경에 따른 대응력이 향상된다.
- 관리 및 유지보수 비용이 절감된다.
여기서 중요한 것은 왜 계층적으로 표현했냐 이다.
우리는 이와 비슷한 계층을 본 기억이 있다. 네트워크의 OSI 7계층, TCP/IP 4계층, 컴퓨터 구조의 메모리 계층 구조 등..
이 때, 각 계층이 무엇을 했는지 기억을 하는가? 바로 적재적소에 분명한 것을 빠르게 찾고 그에 맞게 적용하기 위함이다.
3-Level Schema도 동일하다. 사용자 관점에서 봐야하는 부분, 설계자 관점에서 봐야하는 부분, 개발자 관점에서 봐야하는 부분을 분명하게 나누고, 수정이 필요하다면 해당 부분을 수정해서 위의 장점을 살리기 위해서이다.
이러한 배경지식을 가지고, 3계층을 살펴보자. 참고로 외부 -> 개념 -> 내부로 갈수록 깊어진다.
3-Level-Scheme 계층 구조
외부 스키마
- 사용자 관점, 업무 상 관련이 있는 데이터에 접근하는 것을 말한다.
- 응용 프로그램이 접근하는 데이터베이스라고 하고, 관련 데이터베이스의 뷰를 표시한다.
말만 들어서는 무슨 얘긴지 모르겠다.
간단하게 얘기하자면 사용자가 데이터베이스에 조회 쿼리를 날려서 보게 되는 데이터들, 조회해서 나온 테이블 그 자체를 말한다.
개념 스키마
- 설계자 관점, 사용자 전체 집단의 데이터베이스 구조
- 전체 데이터베이스 내의 규칙과 구조를 표현한다.
이것도 말로는 이해하기 어려울 수 있다.
이것도 간단하게 풀자면, 데이터베이스 전체의 논리구조를 말한다. 여러 엔티티들, 그리고 엔티티들간의 관계, 제약 조건들. 테이블 그 자체를 바라보는 것이 아닌 데이터베이스를 전체적으로 크게 바라본 형태이다.
내부 스키마
- 개발자 관점, 데이터베이스의 물리적 저장구조
- 데이터 저장구조, 레코드 구조, 필드 정의, 인덱스 등
이 부분은 예시가 괜찮아서 조금 이해하기 쉬울 수 있다.
개발자가 사용하는 데이터베이스의 테이블 그 자체의 물리적인 구조를 얘기하는 것이다. 즉, 실질적으로 테이블에 대해 조작을 할 때 필요한 것들을 생각하면 되겠다.
도대체 스키마를 왜 이렇게 나눈 것이고, 각 스키마들은 무엇을 하는건지 정말 감이 안잡혔다..
구글링을 해봐도 똑같은 글을 복사 붙여넣기 한 것들도 너무 많았다. 해당 포스팅을 보고 해당 파트를 이해하는데 도움이 되었으면 좋겠다.
참고 자료
https://computer-science-student.tistory.com/501
'Computer Science > DataBase' 카테고리의 다른 글
데이터베이스의 Key와 유일성과 최소성 (0) | 2023.05.16 |
---|