반응형
데이터베이스 시스템의 개요
- 사전적으로 데이터베이스는 '데이터의 집합'을 뜻한다.
- 데이터베이스로 인해 데이터 관리 및 사용으로 업무를 자동화하는 프로그램은 기업의 비용을 최소화하고 의사결정에 필요한 시간을 단축할 수 있다.
- 데이터베이스 관리 시스템(DBMS : Database Managemnet System)은 한 조직의 연관된 데이터의 집합을 다수의 사용자가 공용으로 사용하기 위해 통합 저장하는 소프트웨어 패키지이다.
- DBMS와 함께 사용자에게 서비스 형태로 제공되는 애플리케이션이 포함된 일체의 시스템을 데이터베이스 시스템이라 한다.
반응형
데이터베이스 관리 시스템의 목적
- 1960년대부터 데이터를 처리 및 분석하여 사용하였다. 당시 컴퓨터에서 데이터를 기록 및 관리하기 위해 사용할 수 있었던 유일한 수단은 운영체제에서 지원하는 파일(File)이었다.
- 파일을 사용하여 특정 업무에 해당하는 데이터를 관리하는 방식을 파일 처리 시스템(file processing system)이라 한다.
- 파일 처리 시스템은 운영체제에 의해 지원되며, 운영체제는 여러 파일에 레코드를 기록하고 레코드를 조작하기 위한 별도의 프로그램을 필요로 한다.
- 파일 처리 시스템은 데이터의 종속, 데이터의 중복, 데이터의 무결성 훼손 및 동시 접근 이상과 같은 관점에서 데이터 관리에 문제점들이 있다.
데이터의 종속
- 어떠한 프로그램이 개발되면 해당 프로그램에 종속하는 파일이 생성된다.
- 데이터가 특정 프로그램에 종속될 경우 데이터의 논리적인 구조나 위치는 해당 프로그램만 알고 있어 타 프로그램과 공유가 불가능하다.
- 데이터 구조의 변경이 프로그램의 변경으로 이어지기 때문에 프로그램 유지보수에 많은 비용이 소모된다.
- 데이터의 독립성(data independency)은 논리적 데이터 독립성과 물리적 데이터 독립성으로 구분된다.
- 논리적 데이터 독립성 : 프로그래머가 생각하는 데이터의 논리적 구조가 변하더라도 그에 따른 프로그램의 구조가 변경되지 않는 것
- 물리적 데이터 독립성 : 보조기억장치와 같이 파일과 관련된 물리적인 시스템 구조가 변경되더라도 프로그램은 그대로 유지되는 것
데이터의 중복
- 하나의 사항에 대한 데이터가 여러 파일에 중복되어 저장되는 문제를 데이터 중복성(data redundancy)라고 한다.
- 데이터 중복에 대한 세 가지 관점에서의 문제의 원인
- 일관성(consistency) 문제 : 데이터 일관성은 하나의 사실을 나타내는 여러 개의 데이터가 모두 논리적으로 같은 값을 유지하는 것이다. 파일 처리 시스템의 경우 데이터가 물리적으로 서로 다른 장소에 위치하는 경우 일관성 유지가 매우 어렵다. 이로 인해 데이터 내용 간의 불일치가 발생하면, 이를 비일관성(inconsistency)라고 한다.
- 보안성(security) 문제 : 논리적으로 동등한 내용의 데이터에 대해서는 똑같은 수준의 보안이 유지되어야 한다. 데이터가 중복되어 저장되는 경우, 동일한 수준의 보안을 유지하기가 어렵다.
- 경제성(enconomy) 문제 : 데이터를 중복 저장하기 위해서는 추가적인 저장 공간이 요구된다. 또한 데이터 갱신 시 일관성 유지를 위해 모든 중복 건에 대한 작업이 동반되어야 하므로 시스템의 갱신 비용이 높아진다.
데이터의 무결성 훼손
- 데이터 무결성(data integrity)은 데이터베이스에서 관리되는 데이터의 정확성을 보장하는 것이다.
- 하나의 사실을 표시하는 두 개 이상의 중복된 데이터가 서로 일치하지 않는 경우에도 무결성이 훼손되었다고 말한다.
- 무결성을 약간 간단히 말하자면 동물이라는 데이터를 여러 군데에 저장하는데 갑자기 동물이 아닌 토마토나 컴퓨터가 저장되면 이는 무결성이 훼손되었다고 말한다.
- 프로그램적으로 유효성 검사를 진행할 수 있으나 새로운 조건이 추가되거나 조건이 변경될 때마다 관련된 프로그램을 일일이 변경하는 데 많은 비용과 시간이 소요된다.
동시 접근 이상
- 여러 사용자가 동시에 사용하는 시스템에서 한 데이터에 대한 수정 요구가 동시에 발생한 경우 비정상적인 데이터 수정이 일어날 수 있다.
- 사용자가 한 데이터에 대해 동시 접근을 할 수 있게 되면, 원래 기대했던 결과와 다른 결과가 나타나는 문제를 막기 위해 어떤 형태로든 데이터 동시 접근에 대한 통제를 해야 한다.
- 그러나 파일 처리 시스템에서 데이터 접근을 제어하는 것은 불가능하다.
반응형
데이터베이스 관리 시스템의 특징
프로그램과 데이터의 독립성 및 추상화
- DBMS에서는 데이터 파일 구조가 프로그램으로부터 분리되어 DBMS 내부의 시스템 카탈로그에서 별도로 관리된다.
- 프로그램은 DBMS에 필요한 데이터를 데이터의 의미만으로 요청할 수 있도록 데이터의 사용과 데이터의 관리가 분리된다. 이러한 특성을 프로그램-데이터 독립성이라 한다.
- DBMS는 프로그램과 데이터를 중재하는 에이전트 역할을 한다.
- DBMS는 상세한 정보보다는 사용자가 데이터의 의미만으로 접근할 수 있도록 데이터에 대한 개념적인 표현(conceptual)을 제공함으로써 사용자가 더 쉽게 데이터베이스를 사용할 수 있도록 한다.
- 이러한 개념은 데이터 구조화를 위한 데이터 추상화(data abstraction)라는 작업으로 이루어진다.
자기 기술성
- 데이터 자체뿐만 아니라 데이터에 대한 정의나 의미까지 관리하는 것을 자기 기술성(self-describing)이라 한다.
- 파일 처리 시스템에서는 데이터 정의가 프로그램의 일부로 표현된다.
- 메타데이터(meta-data) : 데이터베이스에 속하는 각 파일의 구조, 각 데이터 항목 타입과 저장 형식, 데이터의 다양한 제약조건 등
- 메타데이터는 시스템 카탈로그(system catalog) 또는 데이터 사전(data dictionary)에 저장된다.
- 시스템 카탈로그
- 특정 데이터베이스에 저장된 파일 구조를 파악하기 위한 데이터의 타입이나 포맷과 같은 물리적 정보와 데이터의 의미, 설명 등의 논리적 정보를 저장한다.
다중 뷰
- DBMS는 사용자의 역할과 권한에 맞는 데이터에 접근할 수 있도록 데이터베이스에 대해 필요한 부분만 추출해서 제공할 수 있는 뷰(view) 기능을 제공한다.
다수 사용자 요청 처리
- 여러 사용자의 요청 작업을 최대한 동시에 처리함 → 전체적인 처리성능 향상, 빠른 응답 시간
- DBMS에서는 데이터의 일관성 문제를 컨트롤하기 위해 단일 논리 작업을 수행하는 일련의 데이터베이스 명령의 집합인 트랜잭션(tracnsaction)과 동시성 제어(concurrency) 기법이 내장되어 있다.
반응형
데이터베이스 관리 시스템의 구조
데이터 추상화
- DBMS는 데이터 추상화(data abstraciton)와 데이터 독립성(data independency)을 확보하기 위한 3단계 구조(3-level architecture), 외부 단계, 개념 단계, 내부 단계로 구성된다.
- 내부 단계(internal level) : 가장 낮은 추상화 단계. 내부 스키마에 의해 기술된다. 원시 수준(raw level)의 데이터 구조, 저장된 레코드 유형 정의, 인덱스(index)의 유무, 저장된 컬럼의 표현 방식, 저장된 레코드의 물리적 순서 등을 구체적인 사항에 대해 정의
- 개념 단계(conceptual) : 데이터베이스의 전체 구조를 추상화하는 단계로 개념 스키마(conceptual schema)를 통해 기술된다. 데이터베이스에 무엇이 저장되어 있는지와 데이터 간의 관계만 기술한다.
- 개념 스키마에서의 정의는 보안성 검사, 무결성 검사와 같은 부가적인 특징을 포함하기도 함
- 외부 단계(external level) : 추상화의 최상위 단계로, 외부 스키마, 즉 뷰(view)에 의해 기술된다. 뷰는 사용자가 필요로 하는 데이터베이스의 일부분만 기술하고, 다른 부분들은 은폐한다.
- 내부 단계에서 데이터는 연속적으로 저장된 블럭(block)으로 표현된다.
- 개념 단계에서는 각 레코드의 타입과 레코드 간의 관계 정의로 표현된다.
- 외부 단계에서 사용자는 데이터 타입의 구체성 없이 프로그램을 통해 데이터를 보게 한다.
- 데이터베이스에 대한 여러 뷰가 정의되며, 사용자는 뷰를 통해서만 데이터를 확인할 수 있다.
- 뷰를 통한 보안 메커니즘 제공 가능
단계 간 사상
- 데이터베이스 3단계 구조에서의 세 스키마는 사상(mapping)을 통해 스키마 간에 연결된다.
- 외부-개념 사상(external-conceptual mapping) : 외부 스키마(뷰)와 개념 스키마 간의 대응 관계를 정의. 개념 스키마에 변화가 생기더라도 그 변화를 외부-개념 사상에만 반영시켜 주면 외부 스키마에 아무런 영향도 미치지 않는다. 즉, 이 외부-개념 사상을 통해 논리적 데이터 독립성이 확보된다.
- 개념-내부 사상(conceptual-internal mapping) : 개념 단계의 데이터 스키마가 디스크 내의 내부 필드와 어떻게 대응하는가를 정의한다. 다른 디스크로의 데이터 이동이나 파일 구조 변경 등의 물리적인 변화가 발생해도 그 변화를 개념-내부 사상에만 반영시켜 주면 개념 스키마에는 아무런 영향도 미치지 않는다. 즉, 물리적 데이터 독립성이 확보된다.
반응형
데이터베이스 언어
반응형
반응형
- DBMS에 요청하기 위한 언어 형태의 인터페이스를 제공
- 데이터베이스 언어는 스키마를 정의하기 위한 데이터 정의 언어(DDL)와 데이터 갱신과 질의를 표현하기 위한 데이터 조작 언어(DML)로 구분된다.
데이터 정의 언어
- 데이터베이스 스키마와 데이터에 대한 부가적인 특징은 데이터 정의 언어에 의해 표현
- 데이터 정의 기능은 물리적 저장 구조와 데이터의 원시 수준의 특징을 설명한다.
- DBMS는 데이터 정의에 대해 다음과 같은 세 가지 요건을 만족해야 함
- 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 데이터 모델에 의거하여 규정.
- 데이터가 기억장치(storage)에 저장되도록 데이터의 물리적 구성을 규정.
- DBMS가 물리적 구성을 논리적 구성으로 변환할 수 있도록 데이터의 물리적 구성과 논리적 구성 간의 사상을 규정.
- DDL 기능에는 데이터를 적재(load)하는 방식, 무결성 유지 방식, 검증 및 권한 등의 기술된 제약사항, 성능 측정 방식, 성능 측정 방식, 데이터베이스 재구성 방식 등에 대한 규정이 있음.
- DDL 명령의 결과는 메타데이터를 저장하는 시스템 카탈로그에서 관리된다.
데이터 조작 언어
- DDL에 의해 구조화된 데이터에 사용자가 데이터를 삽입, 수정, 삭제하고 저장된 데이터를 검색할 수 있도록 지원
- 이러한 인터페이스를 위하여 데이터 조작 기능은 단순하고 사용이 쉽고, 모호성 없이 명확하며, DBMS 내부에서 효율적으로 처리될 수 있도록 설계
- 절차적(procedural) DML : 사용자가 필요한 데이터를 어떻게 구할 것인지를 구체적으로 명시하는 유형. 반복문이나 변수 선언 등의 일반적 프로그래밍 언어 기능을 포함
- 선언적(declarative) 또는 비절차적(nonprcedural) DML : 사용자가 요구하는 데이터가 무엇인지만 기술하는 유형. 절차적 DML보다 사용이 용이하다. 처리 절차를 명시하지 않기 때문에 비효율적으로 처리될 수 있다는 단점이 있으므로 DBMS에서는 질의 처리 시 다양한 질의 최적화 기술을 적용
반응형
데이터베이스 시스템 아키텍처
중앙집중식 데이터베이스 관리 시스템 구조
- 초기의 시스템 구조인 메인프레임 컴퓨터는 DBMS의 모든 기능뿐만 아니라 사용자의 프로그램, 사용자 인터페이스 등을 모두 처리하는 구조
- 사용자는 대부분 자체적 데이터 처리 능력이 없는 터미널(terminal)을 사용, 터미널은 네트워크 통신을 통해 사용 중인 중앙 컴퓨터의 화면을 단순히 사용자에게 보여주는 역할
- 중앙 서버에 너무 많은 부하가 집중되어 병목현상으로 인한 전체적인 성능 저하 및 하드웨어 또는 소프트웨어적 오류 발생 시 전체 시스템이 중단될 수 있는 문제가 있음
클라이언트-서버 구조
- 중앙집중식 구조의 단점을 보완하고자 클라이언트-서버(CS: Client-Server) 환경으로 전환
- 프로그램의 부하를 분산시키고 시스템의 성능을 향상시키며, 프로그램의 유지보수 비용을 절감하고 이식성이 증가하는 등의 효과
- 2계층 클라이언트-서버 구조
- 소프트웨어 구성요소들이 클라이언트와 서버에 분산되어 있음
- 단순함, 기존 시스템과의 하위 호환성이 좋다.
- 클라이언트에서 DBMS에 대한 접근이 필요하면 서버 쪽에 있는 DBMS의 연결을 설정하고 클라이언트 프로그램이 DBMS와 통신하는 방식으로 동작
- 질의 처리와 트랜잭션 기능은 서버 측에서 관리한다.
- DBMS 서버를 흔히 질의 서버 또는 트랜잭션 서버, SQL 서버라 한다.
- 3계층 클라이언트-서버 구조
- 클라이언트와 서버 사이에 애플리케이션 서버(Application Server)를 추가한 구조
- 웹인 경우에는 웹 애플리케이션 서버(WAS: Web Application Server)라 부름
- 서버에 저장된 데이터에 접근하는 데 사용되는 비즈니스 규칙(프로시저 또는 제약조건)들을 저장하는 중간 역할 수행
- 애플리케이션 서버는 클라이언트로부터 요청을 받아 처리하고, 데이터베이스 명령을 데이터베이스 서버로 보낸 후 데이터베이스에서 처리된 데이터를 가시화 등의 작업 후 클라이언트로 보내는 통로 역할을 한다.
반응형
데이터베이스 사용자 및 관리자
데이터베이스 사용자
- 사용자의 유형에 따라 별도의 사용자 인터페이스가 제공된다.
데이터베이스 관리자(DBA)
- 데이터베이스와 DBMS, 이와 관련된 소프트웨어를 관리하고 감독하는 사람 또는 여러 전문가 집단
- DBA의 역할
- 여러 사용자(프로그램 사용자)가 필요로 하는 정보에 대한 요건 결정
- 그들이 필요로 하는 뷰 제공
- 사용자와 프로그래머 또는 전문 사용자 사이의 중재자 역할
- 데이터 처리의 경제적 효율성 극대화
- DBA의 임무
- 설계 : 데이터의 내부 스키마, 개념-내부 사상 및 외부-개념 사상을 명시. 스키마와 데이터 사전 구성. 보안 절차를 수립하며, 보안 기능을 사용하려는 사용자의 요구사항 수용. 시스템 고장 시 백업(backup)과 회복(recovery) 절차 마련. 데이터베이스의 무결성을 항상 유지
- 관리 : 사용자와의 커뮤니케이션. 데이터 표현 방법과 시스템 문서화에 대한 기준 수립, 컴퓨터 설치 장비의 선택에 관여
- 운용 및 통제 : 사용자의 요구나 데이터를 이용하는 패턴에 따라 데이터베이스에 대한 최적의 물리적 저장구조뿐만 아니라 저장매체를 선택, 유지. 무결성을 유지하기 위해 데이터베이스에 대한 접근과 이 접근을 통제하는 방법 설정
- 성능 측정 : 효율성과 경제적 효용성을 높이기 위해 시스템 내의 자원 사용 분석, 병목 현상 조사, 데이터 이용 형태 조사, 각 장치별 성능 측정 등 수행. 이를 바탕으로 물리적 저장구조 재구성, 데이터 접근 방법 갱신. 컴퓨터 설비에 대한 스케줄링 알고리즘 결정.
반응형