'DBMS 구조'에 해당되는 글 2건
-
2008.09.17
DB 구조
|
DATABASE 2008. 9. 17. 12:37
데이터베이스 시스템 구조
- 데이터베이스 시스템?
- 데이터베이스 관리 시스템이라는 소프트웨어의 지원을 받아 데이터를 효율적으로 관리하기 위한 데이터 관리 시스템
- 외부 단계
- 추상화의 최상위 단계
- 뷰 단계(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)"
데이터베이스 관리 시스템
- 사용자는 특정한 데이터 언어를 이용하여 액세스를 요구함
- DBMS는 이 요구를 받아 분석함
- 외부 스키마, 대응하는 외부와 개념 스키마의 접속개념 스키마, 개념과 내부의 접속 그리고 기억장소 구조 정의 순으로 차례대로 검토함
- DBMS는 저장된 데이터베이스에 필수적인 연산을 수행함
데이터베이스 관리 시스템의 구성요소
- 데이터베이스 관리 시스템과 운영체제와의 접속에 대한 고려도 포함
데이터베이스 관리 시스템의 프로그램 처리절차
- 응용프로그램이 DBMS에 호출
- DBMS는 서브 스키마 요구, 데이터 검사
- DBMS는 해당 데이터 모델(스키마) 찾아 어떤 논리적 데이터 형태 필요 결정
- DBMS는 물리적 데이터베이스 기술을 검토 이떤 실제적 레코드 읽을지 결정
- DBMS는 원하는 레코드를 찾기 위한 명령을 운영체계에 제기
- 운영체제가 읽고자한 데이터 저장된 기억장소로 찾아감
- 찾은 레코드를 기억장치에서 임시 기억장치(system buffer)로 옮김
- 스키마, 서브 스키마를 비교해 DBMS가 응용프로그램에서 필요한 논리적 레코드를 추출. 스키마, 서브 스키마에서 기술된 데이터에 대한 변환 및 이동은 DBMS에 의해 수행
- DBMS는 수행결과를 응용프로그램에게 전달. 오류 조건, 호출수행 결과 성공적 실시여부 포함
사용자 접속
- 스키마와 서브 스키마
- 스키마
- 데이터베이스 내의 모든 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술한 것
- 데이터 항목들을 레코드 형태의 한 부분으로 정의하고 레코드 형태나 릴레이션 간의 관계성도 표시함
- 즉, 스키마란 논리적 단위인 데이터를 물리적 기억장치에 사상시키는 것으로 설명됨
- 서브 스키마
- 스키마의 논리적 부분 집합
- 사용자가 개별적으로 사용하는 뷰를 나타냄
- 즉, 서브 스키마는 스키마 중에서 응용 프로그램의 뷰를 만들기 위해 관심 있는 부분만을 취한것
- 사용자 접속
- 사용자의 영역은 서브 스키마로서 결정
- 뷰를 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에서 자동적으로 수행
- 검색명령
- 데이터를 선정, 선정된 데이터에 대한 연산을 수행하는 명령
- 수정명령