본문 바로가기

데이터베이스

Ch 3. 데이터베이스 시스템

728x90
반응형
SMALL

안녕하세요. 게으른 뱃져입니다. 주말이라 도서관에 오자 마음먹었는데 결국 점심이 되서야 도착을 해버렸습니다. 진짜 진짜 진짜 저는 왜 이럴까요.ㅠㅜㅠㅜㅠㅜ 게으른 자신 이기기가 정말 힘듭니다. 결국 월요일 스터디 때문에 마지못해서 공부를 합니다. 후하후하.

 

01 데이터베이스 시스템의 정의

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

02 데이터베이스의 구조

스키마schema

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

 

3단계 데이터베이스 구조

사용자 관점 (외부 단계)

사용자 관점은 시스템을 사용하는 개인이나 그룹의 관점입니다. 사용자 관점에서는 시스템의 외부에서 보이는 동작과 기능에 초점을 맞춥니다. 사용자는 시스템과 상호작용하며 목표를 달성하기 위해 기능을 사용합니다. 사용자 관점은 사용자 인터페이스, 기능, 사용성 등을 고려합니다. 사용자는 시스템이 제공하는 기능을 활용하여 작업을 수행하고 결과를 얻습니다.

조직 전체의 관점 (개념 단계)

조직 전체의 관점은 시스템을 사용하는 조직이나 기업의 관점입니다. 조직 전체의 관점에서는 시스템이 조직의 비즈니스 목표와 전략을 지원하는지 여부를 고려합니다. 시스템은 조직의 프로세스 자동화, 의사 결정 지원, 정보 공유 등의 요구사항을 충족시켜야 합니다. 이 관점에서는 시스템의 비즈니스 가치, 조직의 요구사항, 전략적 목표 등을 고려합니다. 또한, 조직의 다른 시스템과의 통합이나 확장 가능성도 고려됩니다.

물리적인 저장 장치 관점 (내부 단계)

물리적인 저장 장치 관점은 시스템의 내부 구성 요소와 기술적인 측면을 다룹니다. 이 관점은 데이터가 실제로 저장되는 하드웨어, 디스크, 메모리 등을 다룹니다. 물리적인 저장 장치 관점에서는 데이터의 영구 저장과 접근 속도, 용량 등을 고려합니다. 이 관점은 데이터의 저장 방식, 압축, 복제, 안전성, 성능 등을 다룹니다. 또한, 데이터의 백업, 복구, 보안 등도 고려됩니다. 이 관점은 주로 시스템 아키텍처, 하드웨어 요구사항, 데이터 관리 등과 관련됩니다.

 

(외부, 개념) 사이는 논리적 데이터 독립성을, (개념, 내부) 사이는 물리적 데이터 독립성을 가집니다.

외부 단계 (사용자) ⟵논리적 데이터 독립성⟶ 개념 단계(조직 전체) ⟵물리적 데이터 독립성⟶ 내부 단계(저장 장치) ⟷ 물리적으로 저장된 데이터베이스

 

 

데이터 독립성

세가지 스키마는 바라보는 관점이 다를 뿐 같은 데이터베이스를 의미하기 때문에 유기적인 대응 관계가 성립해야하며, 이를 사상 또는 매핑이라 합니다.

 

논리적 데이터 독립성

개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것 입니다. 외부 / 개념 사상(매핑)은 외부, 개념 스키마의 대응 관계를 정의한 것으로 응용 인터페이스라고도 합니다. 

물리적 데이터 독립성

내부 스키마가 변경되더라도 개념  스키마가 영향을 받지 않는 것 입니다. 개념 / 내부 사상(매핑)은 개념, 내부 스키마의 대응 관계를 정의한 것으로 저장 인터페이스라고도 합니다.

 

데이터 사전

데이터를 저장하는 곳을 의미하며 데이터 카탈로그 라고도 합니다. 데이터를 정확하고 효율적으로 이용하기 위해 참고해야 되는 스키마, 사상 정보, 다양한 제약조건 등을 저장하고 있기에 이를  데이터에 대한 데이터, 메타 데이터라고 합니다. 

03 데이터베이스 사용자

데이터베이스 관리자

데이터 시스템을 운영•관리 하며, 데이터베이스를 직접 활용하기보다는 조직 내의 사용자를 위해 데이터베이스를 설계 및 구축하고, 제대로 서비스할 수 있도록 데이터베이스를 제어합니다. 그렇기에 데이터베이스 관리자는 데이터 정의어와 데이터 제어어를 이용해 데이터베이스 시스템에 접근합니다. 

데이터베이스 관리자의 주요 업무

1. 데이터베이스 구성요소 선정

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

3. 물리적 저장 구조와 접근 방법 결정

4. 무결성 유지를 위한 제약조건 정의

5. 보안 및 접근 권한 정책 결정

6. 백업 및 회복 기법 정의

7. 시스템 데이터베이스 관리

8. 시스템 성능 감시 및 성능 분석

9. 데이터베이스 재구성

 

최종 사용자

데이터를 조작하기 위해 데이터베이스에 접근하는 사람들을 일반 사용자 또는 최종 사용자(end user)라고 합니다. 데이터베이스에 관한 전문 지식을 꼭 갖출 필요 없으며, 주로 데이터 조작어를 사용하는 사용자를 말합니다. 대게 요구를 직접 표현하기보다 메뉴나 GUI형태의 응용 프로그램을 통해 데이터베이스를 사용합니다.

 

응용 프로그래머

C 언어, 자바 등과 같은 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작어를 삽입하는 사용자입니다. 주로 데이터 조작어를 삽입하며, 응용 프로그램을 만들기 위해 사용합니다.

04 데이터 언어

데이터베이스를 구축하고 활용 및 관리할 때 사용자가 관리 시스템에게 명령하기 위해 사용하는 언어입니다. 즉 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 데이터베이스 관리 시스템과 통신하는 수단입니다. 사용 목적에 따라 데이터 정의어, 조작어, 제어어로 나뉩니다.

 

데이터 정의어(DDL: Data Definition Language) CREATE, ALTER, DROP, TRUNCATE

새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어입니다. 데이터 정의어로 정의된 스키마는 데이터 사전에 저장되고, 삭제나 수정이 발생하면 이 내용 또한 데이터 사전에 반영됩니다.

 

데이터 조작어(DML: Data Maniqulation Language) SELECT, INSERT, UPDATE, DELETE

사용자가 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 데이터베이스 관리 시스템에 요구하기 위해 사용하는 데이터 언어입니다. 사용자가 실제 데이터 값을 활용하기 위해 사용하며, 설명 방식에 따라 절차적, 비절차적 데이터 조작어로 나뉩니다.


- 절차적 데이터 조작어

절차적 데이터 조작어(procedural DML)는 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야하는지 구체적으로 설명합니다.

- 비절차적 데이터 조작어

비절차적 데이터 조작어(nonprocediral DML)는 사용자가 어떤 데이터를 원하는지만 설명합니다. 해당 데이터를 얻기 위해 어떻게 처리하는지는 데이터베이스 관리 시스템에게 맞기기 때문에 선언적 언어(declarative language)라고도 합니다.

 

데이터 제어어(DCL: Data Control Language) GRANT와 REVOKE

데이터베이스에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용되는 데이터 언어입니다. 사용자는 데이터베이스를 올바르게 관리하기 위해 필요한 규칙과 기법을 데이터 제어어를 이용해 데이터베이스 관리 시스템을 설명하고, 이를 통해 데이터베이스 관리 시스템이 해당 규칙과 기법에 따라 데이터베이스를 제어하고 보호합니다.

이러한 규칙과 기법을 정의함으로 다음과 같은 특성을 보장하며 이 특성들은 데이터베이스 관리 시스템의 장점이기도 합니다.

 

- 무결성(intergrity): 데이터베이스에 정확하고 유효한 데이터만 유지

- 보안(security): 허가받지 않은 사용자가 데이터에 접근하는 것을 차단하거나, 허가된 사용자가 접근 권한이 있는 데이터에만 접근 할 수 있게함

- 회복(recovery): 장애가 발생해도 일관성을 유지

- 동시성(concurrency): 여러 사용자가 같은 데이터에 동시에 접근하여 처리할 수 있음 

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

질의 처리기

사용자의 질문이나 요청을 이해하고 적절한 응답을 생성하는 시스템 구성 요소입니다. 이는 주로 자연어 이해(Natural Language Understanding)와 자연어 생성(Natural Language Generation) 기술을 활용하여 작동합니다. 질의 처리기는 사용자의 입력을 분석하고, 필요한 정보를 추출하거나 데이터베이스 등의 자원에 접근하여 요청에 대한 답변을 생성합니다.

  • DDL 컴파일러: 데이터 정의어로 작성된 스키마를 해석하고, 데이터베이스를 구축하거나 스키마를 수정 또는 삭제하는 작업을 처리합니다.
  • DML 프리 컴파일러: 응용 프로그램에서 사용되는 데이터 조작어를 추출하여 해당 작업을 처리하는 DML 컴파일러에 전달합니다. 데이터 조작어와 관련 없는 코드는 다른 컴파일러에 전달됩니다.
  • DML 컴파일러: 응용 프로그램에 삽입된 데이터 조작어를 처리합니다. 데이터 조작어와 관련된 작업을 수행하고, 그 외의 코드는 다른 컴파일러로 전달됩니다.
  • 런타임 데이터베이스 처리기: 저장 데이터 관리자를 통해 데이터베이스에 접근하여 DML 컴파일러로부터 전달받은 데이터 처리 요구를 실행합니다.
  • 트랜잭션 관리자: 데이터베이스에 접근하는 과정에서 사용자의 접근 권한을 검사하고, 데이터베이스 무결성을 유지하며, 회복 및 병행 수행과 관련된 작업을 처리합니다.

 

 

저장 데이터 관리자

시스템에서 데이터의 저장, 관리 및 조작을 담당하는 역할을 수행하는 구성 요소입니다. 저장 데이터 관리자는 데이터베이스 관리 시스템(DBMS)을 사용하여 데이터의 생성, 읽기, 업데이트, 삭제 등의 작업을 처리합니다. 이를 통해 데이터의 일관성, 정확성, 보안성 등을 유지하며, 데이터의 효율적인 저장과 접근을 제공합니다. (+ 데이터베이스의 구조, 인덱싱, 트랜잭션 관리, 쿼리 처리 등을 다루며, 데이터의 백업, 복구, 복제 등과 같은 관리 작업도 수행)

 

 

728x90
반응형
LIST

'데이터베이스' 카테고리의 다른 글

Ch 6. 관계 데이터 연산  (0) 2023.07.10
Ch 5. 관계 데이터 모델  (0) 2023.07.08
Ch 4. 데이터 모델링  (0) 2023.07.08
Ch 2. 데이터베이스 관리 시스템  (0) 2023.06.28
데이터베이스 기본 개념  (0) 2023.06.15