본문 바로가기

CSあるある

External Schema

데이터베이스에서 External Level은 사용자나 응용 프로그램이 데이터베이스를 어떻게 보는지를 정의하는 가장 상위의 뷰입니다. 쉽게 말해, 이는 데이터를 사용하는 개별 사용자 맞춤 뷰라고 생각하면 됩니다.

더 쉽게 설명하자면:

  1. 사용자 관점의 데이터 뷰
    • 데이터를 필요로 하는 사람이 원하는 형태로 제공됩니다.
    • 예를 들어, 직원 데이터베이스가 있다면:
      • HR 팀: 직원 이름, 직급, 급여 정보만 필요.
      • IT 팀: 직원 ID, 로그인 기록만 필요.
    • 각 팀이 보는 화면이나 데이터는 External Level에 의해 결정됩니다.
  2. 추상화
    • 데이터베이스의 복잡한 구조(테이블, 관계 등)를 숨기고, 필요한 데이터만 보여줍니다.
    • 실제 데이터가 어디에 있고 어떻게 저장되어 있는지는 몰라도 됩니다.
  3. 안전성
    • 사용자는 자신이 권한이 있는 데이터만 볼 수 있습니다.
    • 이를 통해 민감한 정보를 보호합니다.

구조적 설명:

External Level은 데이터베이스의 3계층 아키텍처 중 하나로, 다음과 같이 구성됩니다:

  1. External Level: 사용자 맞춤 뷰.
  2. Conceptual Level: 데이터베이스 전체 구조.
  3. Internal Level: 데이터가 실제로 저장되는 물리적 방식.

예시:

직원 데이터베이스 테이블:

직원ID이름직급급여로그인 기록

1 김철수 사원 3000만 2025-01-01
2 이영희 대리 3500만 2025-01-02
  • HR 뷰: 이름, 직급, 급여만 보임.
  • IT 뷰: 직원ID, 로그인 기록만 보임.
  • External Level이 각 사용자에게 이런 뷰를 제공합니다.

즉, External Level은 사용자별 데이터 커스터마이징을 담당합니다! 😊

 

external schema의 예시

 

 

External Schema는 External Level에서 특정 사용자나 응용 프로그램을 위한 데이터 뷰를 정의한 것입니다. 이를 SQL로 작성하면 다음과 같은 예시를 생각할 수 있습니다.


1. 기본 테이블 정의 (데이터베이스 내부 구조)

sql
코드 복사
CREATE TABLE Employee ( EmployeeID INT PRIMARY KEY, Name VARCHAR(50), Position VARCHAR(50), Salary INT, LoginRecord DATETIME );

위와 같은 테이블이 있을 때, External Schema는 이 데이터 중 특정 사용자나 그룹이 필요로 하는 정보만 보여줍니다.


2. External Schema 정의: HR 팀용 뷰

HR 팀은 직원의 이름, 직급, 급여 정보만 필요합니다.

sql
코드 복사
CREATE VIEW HR_View AS SELECT Name, Position, Salary FROM Employee;

HR 팀이 이 뷰를 사용하면 다음과 같은 결과만 볼 수 있습니다:

NamePositionSalary
김철수 사원 3000만
이영희 대리 3500만

3. External Schema 정의: IT 팀용 뷰

IT 팀은 직원의 ID와 로그인 기록만 필요합니다.

sql
코드 복사
CREATE VIEW IT_View AS SELECT EmployeeID, LoginRecord FROM Employee;

IT 팀이 이 뷰를 사용하면 다음과 같은 결과만 볼 수 있습니다:

EmployeeIDLoginRecord
1 2025-01-01 10:30
2 2025-01-02 11:15

4. 권한 부여로 보안 강화

사용자가 뷰를 사용하려면 권한이 필요합니다.

sql
코드 복사
GRANT SELECT ON HR_View TO HR_Team; GRANT SELECT ON IT_View TO IT_Team;

요약

  • External Schema는 **뷰(View)**로 정의됩니다.
  • 사용자별로 맞춤화된 데이터 접근 권한을 제공합니다.
  • 이를 통해 데이터베이스의 복잡성과 민감한 정보를 숨길 수 있습니다.

이렇게 External Schema를 설정하면, HR 팀은 급여 정보만, IT 팀은 로그인 기록만 안전하게 볼 수 있습니다! 😊