본문 바로가기
데이터베이스

Databases and Database Users

by kwon5346 2024. 4. 7.
반응형

Introduction

데이터베이스는 서로 연관이 있는 데이터들의 모임이다. 데이터는 알려진 사실로서 의미를 가지고 기록될 수 있다는 특성을 갖는다.
우리는 데이터베이스라는 용어를 다음과 같은 특성을 가지는 것으로 한정하여 사용한다.

  • 데이터베이스는 Mniworld 또는 Universe of Discourse(UoD)라고 불리며 real wolrd의 일부분을 표현한다. 작은 세계의 변화도 데이터베이스에 반영된다.
  • 데이터베이스는 어떤 특정한 의미를 가지는 데이터의 모임이다. 즉, 특정한 의미를 갖지 않은 채 임의로 모은 데이터는 데이터는 데이터베이스라고 부르지 않는다.
  • 데이터베이스는 특정한 목적을 위해서 설계,구축,운용된다. 즉, 데이터베이스를 사용하는 사용자 그룹들과 이들이 원하는 application들이 미리 정해져 있다.
  • Database management system(DBMS): 사용자가 데이터베이스를 생성하고 관리할 수 있도록 하는 컴퓨터화된 시스템이다.
  • Meta-data : 데이터베이스의 정의 또는 데이터베이스를 설명하는 정보는 DBMS에 의해서 카탈로그나 사전의 형태로 저장되고 이를 meta-data라 부른다.
  • Manipulating a database : 특정한 데이터를 검색하기 위한 Query, update, report를 생성하는 기능 등을 포함한다.
  • Sharing a datebase : 다수의 사용자와 프로그램이 데이터베이스에 동시에 접근이 가능하게 해준다.
  • Application program : DBMS에 query를 보내서 데이터베이스에 접근한다.
  • Transaction : 데이터베이스로 몇몇 데이터를 읽고 몇몇 데이터를 쓴다.
  • Protection includes : system protection(hardware or software malfunction), security protection(unauthorized or malicious access)
  • Maintain the database system : DBMS는 시간이 지남에 따라 변화하는 요구사항을 반영할 수 있도록 데이터베이스 시스템을 유지보수할 수 있어야 한다.

A simplified database system environment


Characteristics of the Database Approach

  • Self-describing nature of a database system
  • Insulation between programs and data, and data abstraction
  • Support of multiple views of the data
  • Sharing of data and multiuser transaction processing

Self-Describing Nature of a Database System

  • 데이터베이스 방식의 주요 특징은 데이터베이스 시스템이 데이터베이스 자체뿐만 아니라 데이터베이스의 구조와 제약 조건에 대한 완전한 정의까지 가지고 있다는 점이다.
  • 이 정의는 DBMS 카탈로그(catalog)에 저장된다. 카탈로그에 저장된 정보를 metadata라고 부르며, 기본 데이터베이스의 구조를 기술한다.
  • Database catalog는 DBMS software가 사용하며, 데이터베이스 구조에 관한 정보를 원하는 사용자가 카탈로그를 이용한다.

Insulation Between Programs and Data

  • Program-data independence : 데이터 파일의 구조가 application program과 분리되어 DBMS 카탈로그에 저장된다. 따라서 데이터 파일의 구조가 변경되어도 application program은 거의 변하지 않게 된다.
  • Program-operation independence
    • 연산은 인터페이스와 구현, 두 부분으로 구성된다.(operation은 OODB,ORDB에서 data와 같이 정의되는 method)
      • Interface는 연산의 이름, 매개변수들의 data type을 포함한다.
      • Implementation은 인터페이스에 영향을 미치지 않고 변경될 수 있다.

Data Abstraction

  • program-data 독립성과 program-operation 독립성을 제공하는 성질
  • Conceptual representation of data : 어떻게 데이터가 저장되었고 연산들이 어떻게 구현되었는가에 대한 상세한 정보를 포함하지 않는다.
  • Data model : 대부분의 데이터베이스 사용자가 관심을 갖지 않는 상세 정보를 숨기는 역할을 한다.

Support of Multiple Views of the Data

  • View : 데이터베이스의 일부이거나 데이터베이스로부터 유도되는 virtual data.(but 실제로 저장되지 않는다.)
  • Multiuser DBMS : 여러 사용자들이 자신의 view를 정의할 수 있도록 하는 기능을 제공한다.

Sharing of Data and Multiuser Transaction Processing

  • 다수의 사용자가 동시에 데이터베이스에 접근할 수 있게 해준다.
  • Concurrency contrl software : 다수 사용자용 DBMS에는 동시성 제어 소프트웨어가 내장되어 다수 사용자가 동일한 데이터를 동시에 변경하는 경우에도 데이터의 일관성을 보장한다.
  • Online transaction processing(OLTP) application : 비행기에서 좌석 예매하는 시스템(여러 agent가 동일한 좌석을 예약하는 경우에도 DBMS는 하나의 좌석이 한 agent에게만 지정되도록 보장한다.
  • Transaction : 한번 이상의 데이터베이스 접근을 포함하는 프로그램 혹은 프로세스를 수행하는 것.
    • Isolation property : 각 transaction이 다른 transaction으로부터 고립되어 수행되는 것처럼 보이도록 보장한다.
    • Atomicity property : transaction내의 모든 연산들이 수행 완료되거나, 아니면 아무 연산도 수행되지 않음을 보장한다.

Actors on the Scene

  • DBA(Database administrator)
    • 데이터베이스에 대한 접근을 감독한다.
    • 소프트웨어나 하드웨어 resource를 구입한다.
    • resource의 사용을 모니터링하고 조정한다.
  • Database designers
    • 데이터베이스에 저장될 데이터를 선정하고, 데이터를 나타내고 저장하는 구조를 정의
  • End users
    • 데이터베이스에 대하여 query하고, 변경하고, 보고서를 작성하는 사람이다.
    • Types
      • Casual end users
      • Naive or parametric end users
      • Sophisticated end users
      • Stand-alone end users
  • System analysts : end user들의 요구사항을 분석하고 이를 만족시키는 방법을 결정
  • Application programmers : transaction들의 명세를 프로그램으로 구현

Workers behind the Scene

  • DBMS system designers and implements : DBMS 모듈들과 인터페이스들을 소프트웨어 패키지로 설계하고 구현하는 사람
  • Tool developers : tool을 설계하고 구현
  • Operators and maintenance personel : 데이터베이스 시스템을 위한 하드웨어 및 소프트웨어 환경의 운영 및 유지 담당.

Advantages of Using the DBMS Approach

Controlling redundancy(중복성 제어)

  • Data normalization(데이터 정규화)
    • 각 논리적 데이터는 데이터베이스 내에 오직 한 번만 저장(일관성 유지, 저장공간 절약)
  • Denormalization(반정규화)
    • 종종 query의 성능을 향상시키려면 contolled redundancy를 사용하는 것이 필수적일 때가 있다.

Providing persistent storage for program objects

  • C++이나 Java의 구조체나 클래스 정의가 복잡한 자료 구조를 위한 persistent storage를 제공한다.
  • Impedance mismatch problem
    • 프로그램 언어에서 제공하는 자료구조와 데이터베이스 시스템에서 제공하는 자료구조가 일치하지 않는점(대부분의 객체지향 데이터베이스 시스템에서는 하나 이상의 호환성이 있는 자료구조를 제공함으로 이러한 불일치 문제를 해결한다.)

Providing storage structure and search techniques for efficient query processing

  • Indexes
  • Buffering and caching
  • Query processing and optimization

Providing backup and recovery

  • DBMS는 하드웨어와 소프트웨어의 고장으로부터 복구할 수 있는 기능을 가져야 한다.

Providing multiple user interfaces

  • Graphical user interfaces(GUIs)

Representing complex relationships among data

  • 데이터 간의 복잡하고 다양한 관련성을 표시할 수 있어야 한다.

Enforcing integrity constraints

  • Referential integrity(참조 무결성) constraints
    • 예를 들어 '각 section 레코드는 반드시 하나의 course 레코드와 연관이 있어야 한다.' 라는 제약 조건을 생성할 수 있다. 이를 referential integrity 제약 조건 이라고 부른다.
  • Key or uniqueness constraint
    • 모든 course record는 하나의 Course_number에 대한 유일한 값을 가져야 한다.
  • Business rules
  • Inherent rule
    • 특정 데이터 모델과 관련된 규칙들(예 : relationship은 최소한 두 개체를 포함해야 한다.)

Permitting inferencing and actions using rules

  • Deductive database systems
    • 데이터베이스에 저장되어 있는 사실로부터 새로운 정보를 추론하는 연역적 rule을 정의
  • Trigger
    • table의 업데이트에 의해 활성화되는 규칙의 한 형태.
  • Stored procedures
    • 규칙이 지켜지도록 하는 좀 더 복잡한 절차.

Additional implications of using the database approach

  • Reduced application development time(개발 시간 단축)
  • Flexibility
  • Available of up-to-date information(최신 정보의 가용성)
  • Economies of scale(규모의 경제성)

A Brief History of Database Applications

Early database applications using hierarchical and network systems

  • Large numbers of records of similar structure

Providing data abstraction and application flexibility with relational databases

  • 관계 데이터의 물리적 저장 공간과 그 개념적인 표현을 분리하고 데이터 표현과 질의에 대한 수학적 근거를 제공하기 위해 제안됨.

Object-oriented applications and the need for more complex databases

  • 공학 디자인, 멀티미디어 출판, 제조 시스템 같은 전문 application에 사용된다

Interchanging data on the Web for e-commerce using XML

  • Extended markup language(XML)는 다양한 유형의 데이터베이스와 웹 페이지 사이에 데이터를 interchange하는 주된 표준이다.

Extending database capabilities for new applications

  • Enterprise resource planning(EPR)
  • Customer relationship management(CRM)

Databases versus information retrieval

  • Information retrieval(IR)
    • 책, 원고, 다양한 형태의 library-base 기사들을 다룬다.

New functionality is being added to DBMSs in the following areas

관계 데이터베이스 시스템의 성공은 새로운 application의 개발을 촉진시켰다.
다음은 이러한 application의 예이다.

  • Scientific Application - Physics, Chemistry, Biology.. 같은 분야의 실험으로부터 얻어지는 대량의 데이터를 저장
  • Image Storage and Management
  • Audio and Video Data Management
  • Data Mining - 대량의 데이터 분석
  • Spatial Data Management and Location Based Services
  • Time Series and Historical Data Management

Emergence of Big Data Technologies and NOSQL databases

  • 데이터베이스를 관리하기 위해 다른 유형의 데이터를 빠르게 탐색하고, 안전하게 저장할 수 있는 새로운 유형의 데이터베이스 시스템이 필요하게 되었다.
  • SQL 관계 DBMS들은 이런 기능을 제공하는데 부족하다.(SQL은 관계 데이터베이스를 위한 표준 데이터 모델이고,언어이다.)
  • NOSQL은 SQL만이 아니라는 의미이다. application의 요구에 따라 일부 데이터는 SQL 시스템을 사용해 저장, 일부 데이터는 NOSQL 시스템을 사용하여 저장한다.

Summary

  • Database : Collection of related data(records facts)
  • DBMS : Generalized software package for implementing and maintaining a computerized database
  • Several categories of database users
  • Database applications have evolved
    • current trends : IR, Web

반응형

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

More SQL  (0) 2024.04.22
Basic SQL  (0) 2024.04.16
The Relational Data Model  (0) 2024.04.15
Entity-Relationship Model  (0) 2024.04.09
Database System Concepts and Architecture  (0) 2024.04.08