본문 바로가기
DataBase/SQL

[SQL] 데이터베이스 시스템(1)

by holy_jjjae 2023. 9. 23.

 

 

데이터베이스 시스템(DBS : DataBase System)

 DB에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다.

즉, DB와 DBMS를 이용해서 조직의 이해관계자들이 필요한 정보를 제공해주는 전체 시스템.

 

DB의 구조

1. 스키마 (Schema)

DB에 저장되는 데이터 구조와 제약조건을 정의한 것

 위의 예시 그림에서 고객과 관련된 데이터인 고객번호, 이름, 나이, 주소를 저장한다고 가정하자. 고객번호는 정수로, 이름은 최대 10자의 문자열로, 나이는 정수로, 주소는 최대 20자의 문자열만 허용하기로한 내용의 스키마이다.

 

 정의된 스키마에 따라 DB에 실제로 저장된 값이 인스턴스(Instance)이다. 보통 스키마는 한번 정의되면 자주 변경되지 않지만, 인스턴스는 계속 변하는 특성이 있다.

 

2. 3단계 DB 구조

 DB하나를 세 단계로 나누고, 각 단계별로 다른 추상화를 제공하면 DB를 효과적으로 관리할 수 있다. 일반적으로 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아진다. 3단계 DB 구조를 통해 모든 데이터의 저장, 유지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화한 외부 단계의 관점을 일반 사용자들에게 제공할 수 있다.

 

 DB를 아는 사람은 쉽게 이해할 수 있지만 모르는 사람도 있기 마련이다. 따라서 DB를 3단계 구조로 나누어 기업의 모든 이해관계자가 어려움 없이 사용할 수 있도록 한다.

 

외부 단계

내가 집에 들어가서 사는 사람이라면, 내부, 개념에 어떤 관계가 있는지는 중요하지 않다.
단지, 나의 집이 몇평이고 인테리어나 물이 잘 나오는 지 같은 것에 관심이 있다.

 마케팅, SCM, 영업, 회계 등 여러 부서들이 데이터를 볼 수 있게 간편한 대시보드 등을 만들어서 보여준다.

 

외부 스키마(= 서브 스키마)

 개별 사용자가 DB를 어떻게 보는가를 표현하므로 사용자마다 생각하는 DB의 구조가 다르다. 외부 스키마는 각 사용자가 생각하는 DB의 모습을 표현한 논리적인 구조로, 사용자마다 다르다.

 

하나의 DB에는 외부 스키마가 여러 개 존재할 수 있고, 외부 스키마 하나를 사용목적이 같은 사용자들이 공유할 수 있다. 

 

개념 단계 

관리사무소는 각 집에 대해서 난방이나 수도 등을 관리하므로 각 집들의 난방 잘되고 수도 잘 나오는 것들만 중요하다. 

DB를 이용하는 사용자들의 관점을 통합하여, DB를 조직 전체의 관점에서 이해하고 표현한다.

 

개념 스키마

 DBMS나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 DB의 논리적인 구조를 정의한다. 전체 데이터에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함한다.

 

하나의 DB에는 하나의 개념 스키마만 존재하고, 각 사용자는 개념 스키마의 일부를 본다.

 

내부 단계

건설업체는 땅을 고르게 하고 뼈대를 만들고 기둥을 세우는 등 기초 베이스를 만든다. 

 DB를 저장장치의 관점에서 이해하고 표현한다.

 

내부 스키마

 DB는 저장 장치에 파일 형태로 저장되는데 내부 스키마는 파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의한다.

 

DB의 개념 스키마에 대한 물리적인 저장 구조를 표현하므로 하나의 DB에 하나만 존재한다.

 

다음은 외부 단계, 개념 단계, 내부 단계의 설명에 대한 예시이다.

 외부 단계에서는 사용자별로 외부 스키마를 정의하여 불필요한 데이터 접근을 사전에 막아 보안 측면에서도 효과적이다.

만약 고객 분석팀에 팀원이 여러 명이라면 팀원들은 성별, 나이, 직업으로 구성된 외부 스키마를 함게 사용할 것이다. 상품 배송팀은 고객에게 상품을 배송하는 업무를 담당하므로 DB가 고객번호, 고객이름, 주소, 연락처로만 구성되어 있다고 생각한다.

 

 개념 단계에서는 고객 DB전체에 대한 논리적 구조를 정의하는 개념 스키마가 하나 존재한다. 개념 스키마는 고객 DB를 이용하는 모든 사용자에게 필요한 데이터를 종합하여 번호, 이름, 서별, 나이, 직업, 주소, 연락처로 DB를 구성하고, 각 데이터의 타입도 함께 정의한다.

 

 내부 단계에는 고객 DB를 저장 장치에 저장하는 파일의 레코드 구조를 정의한 내부 스키마가 하나 존재한다. 내부 스키마 에 정의된 고객 레코드는 필드 7개로 구성되어 있고, 레코드 총 길이는 70바이트이다. 이 내부 스키마는 번호와 연락처 필드에 인덱스를 정의하고 있어, 번호나 연락처 필드의 값을  이용해 해당 고객 레코드에 빠르게 접근할 수 있다.

 

데이터 독립성

 실제 데이터는 물리적 저장 장치에 저장된 DB에만 존재하므로 사용자가 자신의 외부 스키마를 통해 원하는 데이터를 얻으려면 내부 스키마에 따라 저장된 DB에 접근해야 한다. 그러므로 세가지 스키마 사이에는 유기적인 대응 관계가 성립해야 한다.

 

이 때 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않아야 하는데, 이를 데이터 독립성이라고 한다.

 

 예를 들어, 고객 관련 개념 스키마에서 고객 회원가입 데이터를 가지고 새로운 파생변수를 만들고 고객 회원가입과 현재 날짜와의 차를 구해서 어떤 새로운 변수를 만들었어도 전체 데이터가 바뀌는 일이 일어나서는 안된다.

 

3단계 DB구조에는 논리적 데이터 독립성과 물리적 데이터 독립성이 존재한다.

 

논리적 데이터 독립성

개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것이다.

 

 개념 스키마가 변경되어도 외부 스키마가 영향을 받지 않는다는 것은 결국 외부 스키마의 사용자가 전체 DB의 논리적 구조가 변경되었다는 사실을 알 필요가 없음을 의미한다.

 

외부/개념 사상 (= 응용 인터페이스)

외부 스키마와 개념 스키마의 대응 관계를 정의한 것

 위의 그림의 개념 스키마에서 연락처 데이터 이름이 전화번호로 바뀌는 경우, 상품 배송팀의 외부 스키마에 있는 연락처가 이후부터는 개념 스키마의 전화번호와 대응 관계에 있다고 외부/개념 사상만 정확히 수정해주면 된다.

 

물리적 데이터 독립성

 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것이다. 결과적으로 외부 스키마도 영향을 받지 않는다.

 

개념/내부 사상(= 저장 인터페이스)

 개념 스키마와 내부 스키마의 대응 관계를 정의한 것

 

 물리적 데이터 독립성이 실현되면 DB의 저장 구조가 변경되어도 관련된 개념/내부 사상 정보만 적절히 수정해주면 직접적으로 관련이 없는 DB의 논리적 구조는 영향을 받지 않는다. 

 

데이터 사전(= 시스템 카탈로그)

DB에 저장되는 데이터에 관한 정보를 저장하는 곳

  • DB에 저장되어 있는 데이터를 정확하고 효율적으로 이용하기 위해 참고해야하는 스키마, 사상 정보, 다양한 제약조건 등을 저장하고 있다.
  • DB에 저장되는 데이터에 관한 정보(데이터 사전 정보)이므로 데이터에 대한 데이터를 의미해 메타 데이터라고도 한다.
  •  DBMS 스스로 생성하고 유지하는 것으로, DBMS가 주로 접근하지만 일반 사용자도 접근할 수 있다. 단, DBMS는 데이터 사전에 내용을 새로 추가하거나 수정할 수 있는 반면 사용자는 저장 내용을 검색만 할 수 있다.

데이터 디렉터리 

데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보를 관리하는 곳

 

데이터 사전과 데이터 디렉터리 모두 시스템 데이터베이스이지만, 데이터 사전은 사용자가 접근할 수 있고 데이터 디렉터리는 시스템만 접근할 수 있다.