Chap1: Introduction

리치·2023년 4월 5일
0

서강대학교 - 정성원 교수님의 강의 및 강의자료를 바탕으로 정리하였습니다.

Database Systems

데이터베이스 관리 시스템(DBMS)은 특정 기업에 대한 정보를 포함하고 있으며, 상호 관련된 데이터의 모음, 데이터에 접근하기 위한 프로그램 집합, 그리고 사용하기에 편리하고 효율적인 환경을 제공한다.

데이터베이스 시스템은 가치 있는 데이터, 상대적으로 큰 데이터, 그리고 동시에 여러 사용자와 응용 프로그램에 의해 접근되는 데이터와 같은 특징을 가진 데이터 모음을 관리하는 데 사용된다. 현대의 데이터베이스 시스템은 대규모 복잡한 데이터 모음을 관리하는 역할을 하는 복잡한 소프트웨어 시스템이며, 데이터베이스는 우리 일상생활에 깊숙히 관여하고 있다.

Database Applications Examples

기업 정보, 제조업, 은행 및 금융, 대학교와 같은 여러 분야에서 데이터베이스가 활용되고 있다.

  • 기업 정보의 : 판매, 회계, 인사 부문에서 고객, 제품, 구매, 지불, 수납, 자산, 직원, 급여, 급여세와 같은 정보를 관리하는 데 데이터베이스가 사용된다. 제조업에서는 생산, 재고, 주문, 공급망 관리에 데이터베이스가 활용되고 있다.

  • 은행 및 금융 분야 : 고객 정보, 계좌, 대출, 은행 거래, 신용카드 거래와 같은 정보를 관리하기 위해 데이터베이스가 사용된다. 또한 금융 상품의 매매와 실시간 시장 데이터를 저장하는 데도 데이터베이스가 활용된다.

  • 대학교 : 학생들의 등록 및 성적 정보를 관리하기 위해 데이터베이스가 사용된다.

  • 항공사 : 예약 및 일정 정보를 관리하기 위해 데이터베이스가 사용된다. 통신 분야에서는 전화, 문자, 데이터 사용 기록, 월별 청구서 작성, 선불 전화카드 잔액 관리 등에 데이터베이스가 활용된다.

  • 웹 기반 서비스 : 온라인 소매업체의 주문 추적, 맞춤형 추천 정보 및 온라인 광고 정보를 관리하기 위해 데이터베이스가 사용된다. 문서 데이터베이스는 다양한 문서를 저장하고 검색할 수 있는 데이터베이스이다.

  • 내비게이션 시스템 : 도로, 철도, 버스 등의 정확한 노선 정보와 함께 다양한 관심 장소의 위치를 유지하기 위해 데이터베이스가 사용된다.

Purpose of Database Systems

기에 데이터베이스 애플리케이션이 파일 시스템 위에 구축되면서 문제가 발생했다.

  • Data redundancy and inconsistency : 데이터가 여러 파일 형식에 저장되어 다른 파일에서 정보가 중복됨
  • Difficulty in accessing data : 새로운 작업을 수행하기 위해 새로운 프로그램을 작성해야 함
  • Data isolation : 여러 파일 및 형식
  • Integrity problems : 무결성 제약 조건(예: 계좌 잔액 > 0)이 프로그램 코드에 "묻혀" 있어 명시적으로 표현되지 않으며, 새로운 제약 조건을 추가하거나 기존 제약 조건을 변경하기 어려움
  • Atomicity of updates : 한 계좌에서 다른 계좌로 자금을 이체하는 경우 완전히 완료되거나 전혀 발생하지 않아야 함
  • Concurrent access by multiple users : 성능을 위해 동시 접근이 필요하다. 제어되지 않은 동시 접근은 데이터 불일치로 이어질 수 있음
  • Security problems : 일부 데이터에만 사용자 액세스 권한을 부여하는 것이 어려움

데이터베이스 시스템은 이러한 문제들을 해결하기 위해 도입되었다. 이를 통해 데이터 관리의 효율성과 안정성이 향상되었다.

Data Models

데이터 모델은 데이터, 데이터 관계, 데이터 의미론, 데이터 제약 조건을 설명하기 위한 도구들로 구성되어 있다.

  • Relational model
  • Entity-Relationship data model (mainly for database design)
  • Object-based data models (Object-oriented and Object-relational)
  • Semi-structured data model (XML)
  • Other older models:
    • Network model
    • Hierarchical mode

Relational Model

다음은 관계형 모델의 예시이다.

아키텍처는 다음과 같다.

Instances and Schemas

  • Logical Schema : 데이터베이스의 전체적인 논리구조, 프로그램에서 변수의 타입 정보와 유사하다. ex) 데이터베이스는 은행의 고객 및 계좌 정보와 그들 간의 관계에 대한 정보로 구성됨
  • Physical schema : 데이터베이스의 전체적인 물리 구조
  • Instance : 특정 시점에서의 데이터베이스의 실제 내용, 변수의 값과 유사하다.

Physical Data Independence

물리 데이터 독립성은 물리 스키마를 변경해도 논리 스키마에 영향을 주지 않는 능력이다. 애플리케이션은 논리 스키마에 의존하며, 일반적으로 다양한 수준과 구성 요소 간의 인터페이스는 어떤 부분의 변경이 다른 부분에 크게 영향을 주지 않도록 잘 정의되어야 한다.

이는 시스템의 유연성을 높여주며, 논리적 구조 변경 없이 물리적 구조를 최적화할 수 있게 한다. 이를 통해 시스템의 성능을 향상시키고 유지 보수를 용이하다.

Data Definition Language (DDL)

DDL은 데이터베이스 스키마를 정의하기 위한 명세 표기법이다. DDL 컴파일러는 data dictionary에 저장되는 테이블 템플릿을 생성한다. 데이터 사전은 데이터베이스 스키마, 무결성 제약 조건, 기본 키(Primary Key), 권한 등의 메타데이터를 포함한다. 이를 통해 데이터베이스 구조를 정의하고 관리할 수 있다.

create table instructor (
	ID char(5),
	name varchar(20),
	dept_name varchar(20),
	salary numeric(8,2))

Data Manipulation Language (DML)

SQL Query Language

SQL은 비절차적 언어로, 여러 테이블을 입력으로 받아 하나의 테이블을 반환한다.
ex) 컴퓨터 과학 부서의 모든 교수 찾기

select name
from instructor
where dept_name = 'Comp. Sci.'

SQL은 튜링 기계와 동등한 언어가 아니므로, 복잡한 함수를 계산하기 위해 보통 더 높은 수준의 언어에 내장된다. 애플리케이션 프로그램은 내장 SQL을 허용하는 언어 확장이나 애플리케이션 프로그램 인터페이스를 통해 데이터베이스에 액세스한다. 다음과 같은 특징이 있다.

  • 비절차적 쿼리 언어인 SQL은 범용 튜링 기계만큼 강력하지 않다.
  • SQL은 사용자로부터의 입력, 디스플레이로의 출력 또는 네트워크를 통한 통신과 같은 동작을 지원하지 않는다.
  • 이러한 계산과 동작은 호스트 언어(예: C/C++, Java, Python)로 작성되어야 하며, 데이터베이스 내의 데이터에 액세스하는 내장 SQL 쿼리가 포함된다.
  • 애플리케이션 프로그램은 이러한 방식으로 데이터베이스와 상호 작용하는 프로그램이다.

Database Design & Engine

데이터베이스 설계는 논리적 설계와 물리적 설계로 구성되며, 이를 통해 데이터베이스의 일반적인 구조를 결정한다.

  • 논리적 설계: 데이터베이스 스키마를 결정한다. 데이터베이스 설계는 "좋은" 관계 스키마의 집합을 찾는 것을 요구한다.
    -> 비즈니스 결정: 데이터베이스에 어떤 속성을 기록해야 하는가?
    -> 컴퓨터 과학 결정: 어떤 관계 스키마를 가져야 하며, 속성은 다양한 관계 스키마 간에 어떻게 분배되어야 하는가?
  • 물리적 설계: 데이터베이스의 물리적 레이아웃을 결정한다.

데이터베이스 엔진은 전체 시스템의 책임과 관련된 모듈로 구성되며, 저장소 관리자, 쿼리 프로세서 컴포넌트, 트랜잭션 관리 컴포넌트 등의 기능 구성 요소로 나눌 수 있다.

Storage Manager

저장소 관리자는 데이터베이스의 저수준 데이터와 애플리케이션 프로그램 및 쿼리 간의 인터페이스를 제공하는 프로그램 모듈로, 여러 작업을 수행한다. 저장소 관리자는 다음 작업에 책임이 있다.

  • 운영 체제(OS) 파일 관리자와의 상호 작용
  • 데이터의 효율적인 저장, 검색 및 업데이트

저장소 관리자 컴포넌트는 다음과 같다.

  • 권한 및 무결성 관리자
  • 트랜잭션 관리자
  • 파일 관리자
  • 버퍼 관리자

저장소 관리자는 물리적 시스템 구현의 일부로 여러 데이터 구조를 구현한다.

  • 데이터 파일: 데이터베이스 자체를 저장한다.
  • 데이터 딕셔너리: 데이터베이스의 구조에 대한 메타데이터를 저장하며, 특히 데이터베이스 스키마에 관한 정보를 저장한다.
  • 인덱스: 데이터 항목에 빠른 접근을 제공할 수 있다. 데이터베이스 인덱스는 특정 값을 갖는 데이터 항목에 대한 포인터를 제공한다.

Query Processor

쿼리 프로세서 컴포넌트에는 DDL 인터프리터와 DML 컴파일러가 포함된다.

  • DDL 인터프리터: DDL 문장을 해석하고 데이터 사전에 정의를 기록한다.
  • DML 컴파일러: 쿼리 언어의 DML 문장을 쿼리 평가 엔진이 이해하는 저수준 명령으로 구성된 평가 계획으로 변환한다. 이때, DML은 쿼리 최적화를 수행하며 여러 대안 중에서 가장 낮은 비용의 평가 계획을 선택한다.
  • 쿼리 평가 엔진: DML 컴파일러가 생성한 저수준 명령을 실행한다.

Query Processing
1.쿼리 처리는 구문 분석 및 번역 2.최적화 3.평가의 과정을 거친다.

Transaction Management

  • 트랜잭션은 데이터베이스 애플리케이션에서 단일 논리 기능을 수행하는 일련의 작업들로 구성된다.
  • 트랜잭션 관리 컴포넌트는 시스템과 트랜잭션 실패에도 데이터베이스가 일관된 상태를 유지하도록 보장한다.
  • 동시성 제어 관리자는 동시 트랜잭션 간의 상호 작용을 제어하여 데이터베이스의 일관성을 유지한다.

Database Architecture

Centralized databases :소수의 코어와 공유 메모리를 사용
Client-server : 하나의 서버 머신이 여러 클라이언트 머신을 대신하여 작업을 실행한다.
Parallel databases : 많은 코어가 공유 메모리를 사용하며 공유 디스크 또는 공유 없는 구조를 가짐
Distributed databases : 지리적으로 분산되어 있으며 스키마와 데이터의 이질성이 존재

Database Applications

데이터베이스 애플리케이션은 일반적으로 두 개 또는 세 개의 부분으로 나뉜다.

  • Two-tier architecture : 애플리케이션은 클라이언트 머신에 위치하고 서버 머신에서 데이터베이스 시스템 기능을 호출한다.
  • Three-tier architecture : 클라이언트 머신은 프론트 엔드로 작동하며 직접적인 데이터베이스 호출을 포함하지 않는다.
    -> 클라이언트 측은 주로 폼 인터페이스를 통해 애플리케이션 서버와 통신한다.
    -> 데이터에 접근하기 위해서 애플리케이션 서버는 차례로 데이터베이스와 통신한다.

Database Administrator

시스템에 대한 중앙 통제 권한을 가진 사람을 데이터베이스 관리자(DBA)라고 한다. DBA의 역할은 다음과 같다.

  • Schema definition
  • Storage structure and access-method definition
  • Schema and physical-organization modification
  • Granting of authorization for data access
  • Routine maintenance
  • Periodically backing up the database
  • Ensuring that enough free disk space is available for normal
    operations, and upgrading disk space as required
  • Monitoring jobs running on the database
profile
이것저것

0개의 댓글

관련 채용 정보