ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1.2 Database systems
    데이터베이스 시스템 2024. 10. 5. 09:52

    File systems and database systems
    파일 시스템과 데이터베이스 시스템

    데이터베이스가 크기, 복잡성, 사용량이 증가함에 따라 텍스트 파일과 스프레드시트는 적합하지 않다. 많은 사용자가 공유하는 크고 복잡한 데이터베이스는 다음과 같은 특별한 요구 사항을 가진다.

    • Performance
      많은 사용자와 애플리케이션이 동시에 대형 데이터베이스에 접근하면, 쿼리 응답 시간이 급격히 저하된다. 데이터베이스 시스템은 데이터를 저장 매체에 적절하게 구조화하고 쿼리를 효율적으로 처리하여 빠른 응답 시간을 유지한다.
    • Authorization
      많은 데이터베이스 사용자는 특정 테이블, 열 또는 행에 대해 제한된 접근 권한을 가져야 한다. 데이터베이스 시스템은 개별 사용자가 특정 데이터에 접근할 수 있도록 권한을 부여한다.
    • Security
      데이터베이스 시스템은 승인된 사용자만 허용된 데이터에 접근할 수 있도록 보장한다. 또한 데이터베이스 시스템은 데이터를 암호화하고 접근을 제한하여 해커로부터 데이터를 보호한다.
    • Rules
      데이터베이스 시스템은 데이터가 구조적 및 비즈니스 규칙과 일치하도록 보장한다. 예를 들어, 여러 장소에 저장된 데이터의 복사본은 데이터가 업데이트될 때 동기화되어야 한다.
    • Recovery
      데이터베이스 시스템은 실패에서 복구하고, 데이터 손실 없이 데이터베이스를 일관된 상태로 복원해야 한다.

    기존의 파일 시스템은 한계가 명확하여 이러한 까다로운 요구사항들을 만족시키지 못했다. 1960년대 이후로 데이터베이스 시스템이 파일 시스템을 대체하게 되었다.

    Transactions

    트랜잭션 관리는 특히 까다로운 요구사항이다.

    트랜잭션은 반드시 전체가 완료되거나 거부되어야 하는 일련의 쿼리 집합이다. 일부 쿼리만 실행되고 나머지가 실행되지 않으면 데이터가 일관성 없거나 잘못된 상태가 된다.

    트랜잭션을 처리할 때, 데이터베이스 시스템은 다음을 수행해야 한다:

    • 트랜잭션이 완전히 처리되거나 전혀 처리되지 않도록 보장해야 한다. 트랜잭션을 처리하는 도중 컴퓨터나 애플리케이션이 실패할 수 있다. 트랜잭션 처리가 실패하면 데이터베이스 시스템은 부분적인 결과를 되돌리고 트랜잭션 이전의 값으로 데이터베이스를 복원해야 한다.
    • 동시 실행되는 트랜잭션 간의 충돌을 방지해야 한다. 여러 트랜잭션이 동시에 동일한 데이터에 접근할 때 충돌이 발생할 수 있다.
    • 트랜잭션 결과가 절대 손실되지 않도록 보장해야 한다. 트랜잭션이 완료되면 애플리케이션이나 컴퓨터 장애와 상관없이 트랜잭션 결과는 항상 저장 매체에 안전하게 저장되어야 한다.

    위의 요구 사항들은 대부분의 데이터베이스 시스템에서 고급 트랜잭션 관리 하위 시스템을 통해 지원된다.

    Architecture
    구조

    데이터베이스 시스템의 아키텍처는 내부 구성 요소들과 이들 간의 관계를 설명한다. 높은 수준에서 대부분의 데이터베이스 시스템 구성 요소는 유사하다:

    • Query Processor
      쿼리 프로세서는 쿼리를 해석하고, 데이터베이스를 수정하거나 데이터를 조회하는 계획을 수립하며, 쿼리 결과를 애플리케이션에 반환. 쿼리 프로세서는 가장 효율적인 명령을 실행하도록 쿼리 최적화를 수행.
    • Storage Manager
      저장 관리자는 쿼리 프로세서의 명령을 저수준 파일 시스템 명령으로 변환하여 데이터를 수정하거나 조회. 데이터베이스 크기가 메가바이트에서 수 테라바이트에 이를 수 있으므로, 저장 관리자는 인덱스를 사용해 데이터를 신속하게 찾는다.
    • Transaction Manager
      트랜잭션 관리자는 트랜잭션이 올바르게 실행되도록 보장. 트랜잭션 관리자는 동시 실행되는 트랜잭션 간의 충돌을 방지하며, 트랜잭션이나 시스템 오류가 발생했을 때 데이터베이스를 일관된 상태로 복원.
    • Log
      로그는 데이터베이스에서 처리된 모든 삽입, 업데이트, 삭제 작업을 기록한 파일. 트랜잭션 관리자는 변경 사항을 데이터베이스에 적용하기 전에 로그에 기록. 오류가 발생하면 트랜잭션 관리자는 로그 기록을 사용하여 데이터베이스를 복구.
    • Catalog
      카탈로그는 데이터 사전으로도 알려져 있으며, 테이블, 열, 인덱스 및 기타 데이터베이스 객체들의 디렉터리. 다른 구성 요소들은 쿼리를 처리하고 실행하기 위해 카탈로그 정보를 사용.

    데이터베이스 시스템은 다양한 기능을 제공하며, 구성 요소의 세부 사항도 크게 다를 수 있다. 예를 들어, 일부 데이터베이스 시스템은 트랜잭션을 지원하지 않아 트랜잭션 관리자가 없을 수 있다. 또 다른 예로, 저장 관리자의 구현은 저장 매체의 물리적 구조에 따라 달라진다.

    Products

    대부분의 주요 데이터베이스 시스템은 관계형.
    관계형 데이터베이스는 데이터를 표, 열, 행 형식으로 저장하며, 이는 스프레드시트와 유사하고, 열의 모든 데이터는 동일한 형식을 가지며, 행의 모든 데이터는 사람, 장소, 제품, 활동과 같은 단일 객체를 나타낸다

     

    모든 관계형 데이터베이스 시스템은 SQL 쿼리 언어를 지원한다. SQL은 Structured Query Language(구조적 질의 언어)의 약자로, 데이터를 읽고 쓰며, 테이블을 생성하고 삭제하고, 데이터베이스 시스템을 관리하는 명령어들을 포함한다

     

    관계형 시스템은 은행 업무, 항공 예약 시스템, 학생 기록과 같이 모든 트랜잭션을 정확하게 기록해야 하는 데이터베이스에 이상적이다. 1990년대 인터넷의 성장으로 인해 비정형 데이터 또는 정보가 누락된 방대한 양의 온라인 데이터, 즉 빅데이터가 생겨났다. 관계형 시스템은 원래 빅데이터를 처리하도록 설계되지 않았기 때문에, 2000년 이후에는 많은 비관계형 시스템이 등장했다. 이러한 새로운 비관계형 시스템은 'Not Only SQL(단순히 SQL만이 아님)'을 의미하는 NoSQL로 불리며, 빅데이터에 최적화되어 있다.

     

    2000년 이전에는 대부분의 데이터베이스 시스템이 상업 제품으로, 영리 기업에 의해 개발되고 사용료가 부과되는 라이선스로 제공되었다. 2000년 이후로는 오픈 소스라고 불리는 대체 라이선스 모델이 인기를 끌고 있다. 오픈 소스 소프트웨어는 누구나 검사하고, 복사하며, 수정할 수 있으며, 라이선스 비용이 없다.

     

    NoSQL과 오픈 소스 시스템은 급격히 증가하여 현재 수백 개의 데이터베이스 시스템이 존재. 웹사이트 db-engines.com은 소셜 미디어, 인터넷 검색, 구직 웹사이트 및 기술 웹사이트에서 제품 언급을 추적하여 시스템 순위를 매긴다. 인터넷 언급은 제품 사용의 불완전한 척도이지만, 관심과 활동의 대략적인 지표를 제공한다.

     

    [출처: zyBooks]

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

    6.2 Simple Functions  (0) 2024.10.22
    6.1 Special operators and clauses  (0) 2024.10.22
    1.4 Database design and programming  (0) 2024.10.07
    1.3 Query languages  (0) 2024.10.05
    1.1 Database basics  (0) 2024.10.05
Designed by Tistory.