데이터베이스 시스템의 구성 


데이터베이스 시스템 = DB + DBMS + 데이터베이스 언어 사용자



데이터베이스 시스템의 구성


데이터베이스(DB, Database)


한 조직의 여러 응용 시스템이 공용(Shared)하기 위해 최소한의 중복으로 통합(Integrated) 되고저장(Stored) 된 운영(Operational) 데이터의 집합이다.



 

데이터베이스 언어(Database language)


데이터베이스를 구축조작검색하는데 사용되는 프로그래밍 언어


 

 

사용자


① 데이터베이스 관리자(DBA)

② 데이터베이스 응용 프로그래머

③ 데이터베이스 사용자


 

DBMS(Database Management System)


데이터베이스를 구축하고 이용하는 기능을 제공하는 시스템 소프트웨어

 



DBMS (Database Management System) 



DBMS의 정의


① 응용 프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 주는 소프트웨어 시스템이다.


② 데이터베이스를 액세스하기 위해 필요한 제어접근방법관리 등의 기능을 수행하는 소프트웨어이다.


③ 데이터베이스를 설계하는 사람이 장래의 업무처리 확대나 변경을 충분히 예측하여 그것을 바탕으로 만들어 놓은 프로그램이다.


④ DB의 구성접근방법관리유지에 대한 모든 책임을 지고 있다.


⑤ 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지


⑥ 보조기억장치에 저장되어 있는 데이터베이스에서 필요한 데이터를 검색하거나 데이터를 삽입수정삭제 등을 효율적으로 지원하기 위한 프로그램의 집합체


⑦ 종속성과 중복성의 문제를 해결하기 위해서 제안된 시스템



DBMS의 장점


① 표준화의 범기관적 시행

② 데이터의 보안 보장이  용이

③ 데이터 무결성 및 일관성 유지

④ 데이터 중복 최소화



DBMS의 필수기능


 내장 SQL (Embedded-SQL)

호스트 언어(C, C++, 비쥬얼베이직 등)에 삽입되는 SQL로써 주로 일괄처리나 동일 업무 반복시 사용되었다.


정의기능(Definition Facility)


① 데이터 정의어(DDL, Data Definition Language)을 이용하여 데이터베이스의 물리적 구조를 정의

② 데이터의 형구조데이터가 데이터베이스에 저장될 때의 제약조건 등을 명시하는 기능

③ 데이터의 논리적 구조와 물리적 구조 사이의 변환이 가능하도록 두 구조 사이의 사상(Mapping)을 명세하여 하나의 물리적 구조로 여러 응용 프로그램이 요구하는 데이터 구조를 지원하게 하는 것

④ 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스를 할 수 있는 방법을 제공



제어기능(Control Facility)


① 데이터 제어어(DCL, Data Control Language)를 이용하여 데이터의 사용 권한 제어

② 데이터 무결성(Integrity)과 일관성을 유지

③ 보안(Security)과 권한(Authority) 검사

④ 병행수행 제어(Concurrency control)



조작기능(Manipulation Facility)


① 데이터 조작어(DML, Data Manipulation Language)를 이용하여 응용 프로그램을 수행 (데이터 검색입력수정삭제 등)

② 사용자의 응용 프로그램과 데이터 간의 인터페이스 수단 제공

③ 데이터 요청변경 등을 위한 질의를 수행

④ 데이터베이스를 접근하여 데이터의 검색삽입삭제갱신 등의 연산 작업을 위한 사용자와 데이터베이스 사이의 인터페이스 수단을 제공




데이터베이스 스키마(Schema)


스키마의 개요


① 1975년 미국의 국립 표준화 기관 ANSI/SPARC (American National Standards Institute / System Planning And Requirements Committee) 에서 제안


② 데이터베이스를 관점(view)에 따라 3개의 계층으로 분리하여 데이터베이스 사용자에게 내부적으로 복잡한 데이터베이스 구조를 단순화시킨 관점을 제공하는 것을 말함



데이터의 표현 방법


① 외부단계(External Level)


⊙ 각각의 데이터베이스 사용자 관점 또는 사용자 뷰(User View)를 표현

 뷰 단계(View Level) 라고도 함



② 개념단계(Conceptual Level)


 데이터와 그들 간의 관계(Relationship)를 표현

 논리 단계(Logical Level) 라고도 함 데이터 모델 사용함



③ 내부단계(Internal Level)


 물리적인 저장장치에서 데이터가 실제적으로 저장되는 방법을 표현

 물리 단계(Physical Level)라고도 함 물리적 데이터 모델 사용함



스키마의 정의


① 데이터베이스의 구조와 제약 조건에 대한 명세(specification)를 기술한 것

② 데이터베이스를 구성하는 데이터 객체이들의 성질이들 간에 존재하는 관계그리고 데이터의 조작 또는 이들 데이터 값들이 갖는 제약 조건에 관한 정의를 총칭하는 용어이다.

③ 스킴(Scheme)이라고도 한다.



스키마의 특징


① 데이터 사전(Data Dictionary)에 저장된다.

② 다른 이름으로 메타데이터(Meta-data)라고도 한다.

③ 데이터베이스의 구조(개체속성관계)에 대한 정의


※ 데이터 사전(Data Dictionary) 이란


① 데이터사전이란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공한다.


② 데이터베이스는 명령이 실행될 때 마다 데이터 사전을 액세스한다.


③ DB 작업동안 데이터 사전을 읽어 객체의 존재 여부와 사용자에게 적합한 Access 권한이 있는지를 확인한다.


④ 데이터 사전에 저장되는 내용


 사용자 정보

 권한과 규칙 정보

 데이터베이스 스키마 객체(TABLE, VIEW, INDEX, …) 정보

 무결성 제약 조건에 관한 정보

 데이터베이스의 구조 정보



스키마의 3계층


① 외부 스키마(external schema)


 사용자의 요구사항을 도출하는 과정이다.

 사용자의 관점에서 보고자 하는 정보의 집합

 (View) 또는 서브-스키마(Sub-Schema) 라고도 한다.

 전체 데이터베이스의 한 논리적인 부분으로 볼수 있으므로 서브 스키마(sub schema)라고도 한다.

 공용의 의미보다는 어느 개인이나 특정 응용에 한정된 논리적 데이터 구조

 데이터베이스의 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의



② 개념 스키마(conceptual schema)


 데이터베이스의 전체적인 논리적 설계를 의미하는 것으로 데이터 객체성질관계제약조건에 관한 것 (개체간의 관계와 유지해야 할 제약 조건을 나타냄)

 데이터베이스 파일(file)에 저장되어 있는 레코드(Record)와 데이터 항목(item)의 이름을 부여하고 그들 사이에 관계의 구조를 나타내는 스키마(schema)

 논리 스키마 (Logical Schema) 라고도 한다.

 데이터베이스 접근권한보안정책무결성 규칙을 명세화 함.



③ 내부 스키마(internal schema)


 데이터 저장 구조의 세부사항과 접근 경로를 기술

 논리 스키마를 컴퓨터 내부에 저장할 수 있는 물리적인 구조로 변환한 것

 실제로 저장될 데이터베이스 내부 형식을 물리적으로 정의

 물리 스키마(Physical Schema) 라고도 함

 



사용자



DBA(Database Administrator, 데이터베이스 관리자)


① 데이터베이스 구조 등과 관련된 업무를 처리하며데이터베이스 전반에 책임을 갖는 사람 또는 조직


② 기업 또는 조직의 데이터베이스에 발생하는 데이터와 데이터를 접근하는 응용 프로그램을 통제하는 사람 또는 조직


 

응용 프로그래머(Application Programmer)


① 일반 사용자(최종 사용자)가 이용할 응용 프로그램을 개발하는 사용자 또는 사용 집단


② 데이터베이스와 관련된 구조 정보 및 사용자 요구사항을 파악하여 실제로 데이터베이스를 활용하기 위한 응용 프로그램을 개발하는 프로그래머



일반 사용자(최종 사용자, End User)


① 데이터베이스 관련 작업을 수행하기 위하여 응용 프로그램 또는 쿼리 프로그램 등으로 디스크를 저장장치에 있는 데이터에 접근하고 처리하는 작업을 수행하는 사람 또는 조직




DBA(Database Administrator)의 기능



DBA의 정의


① 데이터베이스 시스템의 원활한 기능을 수행하기 위하여 데이터베이스 구성 및 관리 운영 전반에 대한 책임을 가지고 직무를 수행하는 사람 또는 조직


② 기업 또는 조직의 데이터베이스에 발생하는 데이터와 데이터를 접근하는 응용 프로그램을 통제하는 사람 또는 조직


③ 데이터와 그 데이터에 접근하는 프로그램 모두를 중앙 통제하는 사람 또는 조직


④ 응용 프로그래머가 새로운 타입의 레코드를 만들기를 원하거나 기존 레코드에 새로운 데이터 항목을 포함 또는 크기를 확장함으로써 수정하기 원하면 DBA의 허락을 받아야 함



 

DBA의 주요 역할



① 데이터베이스 설계와 운영


 데이터베이스의 스키마 정의

 저장구조와 액세스 방법 정의

 보안 및 권한부여

 백업회복 절차를 정하고 수행

 데이터 사전의 유지 및 관리

 데이터베이스 구축



② 시스템 감독 및 분석 기능


 시스템 감시 및 성능 분석

 데이터베이스의 이상 현상 감시

 미들웨어 소프트웨어 등 종합적 자원관리



③ 행정 및 불편 해결


 사용자의 요구와 불평을 청취하고 해결

 데이터의 표현이나 문서화 표준 설정시행

 




데이터 독립성


개념

① 하위 단계의 구현 내용을 추상화하여 상위 단계에서는 인지하지 못하도록 해야 한다.



독립성의 종류


① 물리적 데이터 독립성(Physical Data Independency)


 3단계 데이터베이스 구조 중 최하위 단계인 내부 단계의 스키마가 변경되어도 외부 단계와 개념 단계의 스키마에는 영향을 미치지 않도록 지원하는 것


 데이터베이스 저장장치의 구조가 변경되어도 응용 프로그램이나 개념 스키마에는 영향을 미치지 않는 것



② 논리적 데이터 독립성(Logical Data Indepencency)


 3단계 데이터베이스 구조 중 중간 단계인 개념 단계의 스키마가 변경되어도 최상위 단계인 외부 단계의 스키마에 영향을 미치지 않도록 하는 것

 

 데이터베이스 논리적 구조가 변경되어도 응용 프로그램에는 영향을 미치지 않는 것



+ Recent posts