'DBMS 구조'에 해당되는 글 2건

  1. 2008.09.17 DB 구조

DB 구조

|

데이터베이스 시스템 구조

  • 데이터베이스 시스템?
    • 데이터베이스 관리 시스템이라는 소프트웨어의 지원을 받아 데이터를 효율적으로 관리하기 위한 데이터 관리 시스템
  • 외부 단계
    • 추상화의 최상위 단계
    • 뷰 단계(view level)이라고도 함
    • 각 개인의 사용자 수준으로, 데이터가 각각의 사용자에게 어떻게 보여지는지에 대하여 정의된 단계
    • 외부 스키마나 사용자 뷰들을 포함하며, 특정 사용자 그룹이 관심을 갖는 부분을 나타내고 나머지는 은폐함
    • 각각의 사용자에 해당하는 단계이며, 각 사용자들은 질의어나 프로그램 언어를 가짐
    • 응용프로그램 제작시 사용되는 언어를 "주 언어(Host Language)", SQL은 "데이터 종속 언어(Data Sub Language:DSL)"
    • 각 개인의 사용자 뷰에 대한 ANSI/SPARC 용어인 "외부 뷰(external view)"란, 어떤 특정사용자에 의해 보여지는 데이터베이스 내용을 의미하는 것으로, 각각의 외부 뷰는 외부 스키마에 의하여 정의됨
  • 개념 단계
    • 내부 단계와 외부 단계를 연결하는 단계
    • "논리적 단계(logical level)"라고도 하며, "개념 스키마(conceptual schema)"에 의해 데이터베이스의 전체적인 구조를 기술함
    • 하드 디스크에 저장된 데이터에 대한 추상화라고 할 수 있으며, 사용자의 여러 요구 사이에 공통되는 논리적 구성을 제공함
    • 이 단계의 주 사용자는 데이터베이스 관리자(DBA)
    • 개념적 뷰는 "실제적 측면"에서 데이터를 본다.
    • 개념적 뷰는 "개념 레코드"들로 구성되며, "개념 스키마"에 의해서 정의된다. 개념 스키마는 "데이터 정의 언어(DDL)"를 사용해 작성하며, 이 DDL 정의들이 저장장치 구조나 액세스 전략의 어떤한 사항도 포함하지 않다면 데이터 독립성을 이룰 수 있다.
    • 이처럼 개념 스키마에서 데이터 독립성이 확보된다면, 개념 스키마 용어로 정의되는 외부 단계에서도 데이터 독립성이 확보 될 수 있다.
    • "개념적 뷰"는 전체 데이터베이스 내용의 뷰이고, 그 때 "개념 스키마"는 그런한 뷰의 정의로서 보안성 검사, 무결성 검사등과 같은 부가적인 특징을 포함하고 있다.
  • 내부 단계
    • 추상화의 하위단계
    • 물리적 단계(physical level)라고도 함
    • 데이터가 실제로 어떻게 저장되었는가를 기술하는 내부 스키마를 가지며, 데이터베이스의 물리적 저장구조를 기술함
    • 즉, 데이터 저장구조의 세부사항과 데이터베이스에 대한 접근 경로를 기술함
    • 내부적 뷰는 내부 스키마의 수단에 의해 설명되며, 내부 스키마는 저장된 레코드의 다양한 형을 정의, 색인, 레코드를 어떻게 표현, 물리적 순서등의 사항들도 표현한다
  • 각 단계간의 접속
    • 스키마들 사이에서 상호변환을 위해서 "사상(mapping)"이라는 과정을 두 번 거침
    • 첫번째는 "외부 단계와 개념 단계 사이"의 사상
      • 특정 외부 스키마와 개념 스키마 간의 대응관계를 의미함
      • 개념 스키마에 변화가 있더라도 사상만 변경시키면 외부 스키마에는 아무런 영향을 미치지 않음
      • 응용프로그램이나 사용자 뷰를 변경시키지 않고도 개념 스키마를 변경 시킬 수 있음. 이를 "논리적 데이터 독립성(logical data independence)"
    • 두번째는 "개념 단계와 내부 단계 사이"의 사상
      • 개념 스키마와 내부 스키마간의 대응 관계를 정의하는 것
      • 내부 스키마 변경에 대한 개념 스키마와 외부 스키마가 독립적인 성질을 갖게 되며, 이를 "물리적 데이터 독립성(physical data independence)"

데이터베이스 관리 시스템

  1. 사용자는 특정한 데이터 언어를 이용하여 액세스를 요구함
  2. DBMS는 이 요구를 받아 분석함
  3. 외부 스키마, 대응하는 외부와 개념 스키마의 접속개념 스키마, 개념과 내부의 접속 그리고 기억장소 구조 정의 순으로 차례대로 검토함
  4. DBMS는 저장된 데이터베이스에 필수적인 연산을 수행함

데이터베이스 관리 시스템의 구성요소

  • 데이터베이스 관리 시스템과 운영체제와의 접속에 대한 고려도 포함

image

데이터베이스 관리 시스템의 프로그램 처리절차

  • 모든 단계는 DBMS의 관리 하에 이루어짐

  1. 응용프로그램이 DBMS에 호출
  2. DBMS는 서브 스키마 요구, 데이터 검사
  3. DBMS는 해당 데이터 모델(스키마) 찾아 어떤 논리적 데이터 형태 필요 결정
  4. DBMS는 물리적 데이터베이스 기술을 검토 이떤 실제적 레코드 읽을지 결정
  5. DBMS는 원하는 레코드를 찾기 위한 명령을 운영체계에 제기
  6. 운영체제가 읽고자한 데이터 저장된 기억장소로 찾아감
  7. 찾은 레코드를 기억장치에서 임시 기억장치(system buffer)로 옮김
  8. 스키마, 서브 스키마를 비교해 DBMS가 응용프로그램에서 필요한 논리적 레코드를 추출. 스키마, 서브 스키마에서 기술된 데이터에 대한 변환 및 이동은 DBMS에 의해 수행
  9. DBMS는 수행결과를 응용프로그램에게 전달. 오류 조건, 호출수행 결과 성공적 실시여부 포함

image

사용자 접속

  • 스키마와 서브 스키마
    • 스키마
      • 데이터베이스 내의 모든 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술한 것
      • 데이터 항목들을 레코드 형태의 한 부분으로 정의하고 레코드 형태나 릴레이션 간의 관계성도 표시함
      • 즉, 스키마란 논리적 단위인 데이터를 물리적 기억장치에 사상시키는 것으로 설명됨
    • 서브 스키마
      • 스키마의 논리적 부분 집합
      • 사용자가 개별적으로 사용하는 뷰를 나타냄
      • 즉, 서브 스키마는 스키마 중에서 응용 프로그램의 뷰를 만들기 위해 관심 있는 부분만을 취한것
  • 사용자 접속
    • 사용자의 영역은 서브 스키마로서 결정
    • 뷰를 DBA에게 제시하면 DBA는 그 뷰를 기술하고 구현하는 서브 스키마를 정의
    • 그 후, 사용자는 데이터 언어를 통하여 뷰 내에서 데이터와 데이터 간의 관계들을 액세스하게 됨
    • DBMS 변화
      • 자연어로 의사 교환
      • 인터페이스를 통한 의사 교환
  • 데이터베이스 관리자 기능
    • 설계 임무
    • 관리 임무
    • 운용 임무
    • 성능 측정

데이터 언어

  • DBMS
    • 데이터베이스 조작을 위한 언어 : 데이터 조작 언어(Data Manipulation Language)
    • 내부스키마를 기술하기 위한 언어 : 기억장소 정의 언어(Storage Definition Language)
    • 개념스키마를 정의하기 위한 언어 : 데이터 정의 언어(Data Definition Language)
    • 뷰단계의 정의하기 위한 언어 : 뷰 정의어(View definition Language)
  • 데이터 정의 언어
    • 응용프로그램이 이용해 DBMS에게 데이터 요건을 제시
    • 요건
      • 데이터 모델에 따라 응용 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 규정
      • 데이터의 저장 구조에 관한 물리적 구성을 규정
      • 논리적 구성과 물리적 구성간의 사상 규정
    • 독립 언어
      • 데이터 모델 지정
      • 논리적 데이터 단위에 명치 부여
      • 논리적 데이터 단위 사이에 존재하는 관계성 설명
      • 데이터 값의 범위 규정
      • 논리적 데이터의 계량 단위 규정
      • 레코드 형태에서 키 지정
      • 무결성 조건 지정
      • 갱신에 대한 보안 규치 규정
  • 데이터 조작 언어
    • 사용자로 하여금 적절한 데이터 모델에 근거하여 조작된 데이터를 액세스하거나 조작하도록 허용하는 언어
    • 기본적 절차식과 비절차식의 두 가지 형태. 비절차식이 쉽지만 절차식보다 비효율적
      • 절차식
        • 사용자가 어떤 데이터가 필요하고, 필요한 데이터를 어떻게 구하는지를 명시
        • 데이터베이스로부터 각 레코드 단위로 검색하여 처리하도록 기술. record-at-a-time 데이터 조작어
        • 대부분 프로그래밍 언어 내에 삽입되어 형태로 사용되며, 저수준 DML이라고도 함
      • 비절차식
        • 사용자 어떤 데이터가 필요한지만을 명시하고, 어떻게 구하는지는 명시하지 않는 조작 언어
        • 하나의 데이터 조작어로 여러 개의 레코드를 검색. set-of-records-at-a-time 데이터 조작어.
        • SQL이 이 부류. 고수준 DML
  • 데이터 조작 기능 조건
    • 사용하기 쉽고 자연어에 가까워야 함
    • 정확하고 완전해야 함
    • 데이터 언어의 효율적 구현을 지원해야 함
  • 기본적인 명령어의 형태
    • 제어명령
      • 사용자나 응용 프로그램을 식별, 액세스 지원을 원하는 데이터베이스 결정, 시스템 자원을 할당, 응용 프로그램이 이용할 수 있는 명령을 파악하는 일과 관련
      • 독립된 데이터 언어에서는 대부분 기능을 DBMS에서 자동적으로 수행
    • 검색명령
      • 데이터를 선정, 선정된 데이터에 대한 연산을 수행하는 명령
    • 수정명령
      • 삽입, 갱신, 삭제등

'DATABASE' 카테고리의 다른 글

Oracle - DBMS 구조  (0) 2008.09.17
데이터베이스 트랜잭션  (0) 2008.09.17
SUB QUERY  (0) 2008.09.17
And
prev | 1 | 2 | next