[DBS] 데이터베이스시스템

sky·2022년 4월 7일
0

정리

목록 보기
4/13
post-thumbnail

(1) What are Databases?

  • DB는 데이터의 집합으로, 메인 메모리에 다 담을 수 없을 만큼 방대한 데이터와 그 데이터를 컴퓨터에 저장할 수 있는 상호 관련된 것이다.
  • 데이터는 *구조적 데이터와 비구조적 데이터를 포함하고 있다.
*구조적 데이터 : 데이터가 비교적 엄격한 스키마로 테이블 형태이다. ex) 학생 테이블, 수강 테이블
*비구조적 데이터 : 스키마가 존재하지 않거나 느슨한 형태의 스키마에 저장하는 형태이다. ex) 전자메일, sns

DB & DBMS & DBS

  • DBMS는 사용자에게 관리가 필요한 기능들을 제공한다.
  • 대표적인 기능으로는 데이터를 정의, 생성, 조작, 삭제하는 등의 연산기능과 데이터 추상화, 독립성, 보안 등 다양한 기능을 제공한다.
  • DBS는 DB와 DBMS의 함께 통칭하는 용어로 상호대체적으로 사용된다.
  • 데이터베이스 응용 예제 : 은행, 항공사 - 예약, 운항 정보, 대학 - 학생 정보

Advantages of DBMSs

  • 데이터 추상화와 데이터 접근의 용이성을 제공한다.
  • DB 접근을 위한 언어와 편리한 Interface를 제공한다. (파일시스템을 이용해서 데이터를 관리하는 경우, 사용자가 직접 프로그램을 작성해야 하기 때문에 용이하지 않다.)
  • 데이터 중복 및 불일치성에 대한 제어가 용이하다. (파일시스템은 데이터 중복이 발생하기 쉽고 그로 인해 데이터 불일치가 발생할 수 있다.)
  • 데이터 무결성 제약조건 : 데이터가 만족해야 하는 조건으로 파일시스템의 경우는 파일 접근 프로그램에 여기저기 산재되어 있어 제약조건에 만족하기 어렵다.
  • 갱신 원자성 : 원자적으로 갱신이 이루어져야 하는 조건으로, 전부 실행하거나 전부 취소가 되어야 한다(all or nothing property).
    • 갱신 연산이 부분적으로 일어나게 되면 데이터베이스 상태가 불일치되거나 제약조건에 만족하지 못하게 될 가능성이 있다.
  • 다수 사용자의 동시성 제어 : 다수의 사용자가 동시에 동일 데이터베이스에 접근하게 되는데 동시에 접근할 수 있는 기능을 사용자에게 제공된다.
  • 데이터 보안과 백업, 회복이 기능을 제공한다.

File System

  • OS의 기능 중 하나다.
    • 예를 들어 Unix에서 사용자에게 파일을 열고, 닫고, 읽고 쓰는 기능을 제공한다. 그러나 상세한 사용 방법은 파일시스템마다 다르다.
  • DBMS는 OS가 제공하는 파일시스템을 활용해서 구현되는 것이 일반적이지만, OS가 관리하는 사용자 프로세스 중 하나다.
  • 이론상으로는 사용자가 파일시스템을 이용하여 데이터를 관리할 수 있지만, 실제로는 여러가지 제약사항으로 인해 파일시스템만으로는 DB를 관리하기 힘들다.

(2) Data Abstraction and Data Model

Instances and Schemas

  • 스키마는 DB의 논리적 구조와 물리적 구조를 의미하고, 구체적으로 구조를 기술하는 DB모델에 따라 그리고, 보는 레벨에 따라 다르다.
    • 테이블의 형태로 생각하면 되는데 데이터가 저장되는 공간에 대한 구조를 기술하는 면에서는 동일하다.
  • 데이터의 실제 값을 Instance라고 한다.
  • 인스턴스는 시간에 흐름에 따라서 변경이 자주 발생하고, 스키마는 비교적 적다.

Abstraction

  • 어떤 사물에 대한 세세한 개체(인스턴스)로부터 중요한 개념을 분리하는 프로세스를 의미한다.
  • 추상화의 레벨에 따라서 상이한 결과가 나올 수 있다.

Abstraction level

  • Physical, Logical, View 레벨 구성으로 되어있고, three level architecture라고도 부른다.
  • Locgical level에서의 추상화는 DB에 저장되어 있는 데이터와 데이터간의 관계를 논리적 관점에서 추상화 하는 것이다.
  • View level 추상화는 사용자에게 오직 관심있는 데이터만 추상화한다.
  • Physical level에서는 실제 데이터를 어떻게 저장되는지를 알려준다.(Ex-필드 간 길이, 레코드 길이)


Data Independence

  • DB에서 가장 중요한 개념으로 스키마가 변해도 다른 스키마에 영향을 주지 않는 것을 말한다.
  • 물리적 데이터 독립성 : 논리적 스키마 변화없이 물리적 스키마를 변화할 수 있다.
  • 논리적 데이터 독립성 : 뷰 스키마 변화없이 논리적 스키마를 변화할 수 있다.
  • 뷰 스키마 : 최종 사용자가 보는 DB 스키마이며, 사용자는 이를 기반으로 DB프로그램과 응용을 개발하게 된다.
  • 반면에 파일시스템은 데이터 독립성을 제공하기 어렵다.

Data Model

  • 데이터, 데이터 관계성, 데이터 의미, 데이터 제약조건 등을 기술하는 명세서, 즉 개념적인 도구이다.
  • 데이터 추상화를 지원하는 도구로 데이터 모델을 통해서 데이터를 기술하거나 조작할 수 있다.
  • 주로 Object Relational Data Model을 다룬다.
    • 관계형 데이터 모델을 기반으로 객체 지향 요소를 부분적으로 도입한 것이다. 관계형 데이터 모델의 확장으로도 볼 수 있다.
  • 이외에도 객체 지향, 객체 관계, 네트워크와 계층, 개체, XML 데이터 모델 등이 있다. 계층과 네트워크 모델은 현대 사회에서 더이상 사용하지 않음. 그러나 과거에 만들어놓은 시스템을 기존에 있는 유지보수하기 위해 쓰인다.
    • XML : 웹과 관련된 기술로, 과거에는 문서 마크업 언어로 개발되었는데 현재는 문서 교환을 위한 국제 표준 기술로 사용되고 있다.

Database Design

  • DB 구조를 설계하는 작업으로, 사용자의 요구사항을 분석해 그에 충족하는 스키마를 생성하는 것이다.
  • 논리적 설계 & 물리적 설계로 구분하고, DB 설계 결과인 테이블, 즉 스키마를 생성한 후에는 변경이 용이하지 않아 초반 설계가 중요하다.
  • 아래와 같은 E-R Diagram을 통해서 설계한다.

(3) Database Systems

Languages

  • 사용자가 원하는 DB를 표현하기 위해 DB 언어를 제공하고 주로 SQL을 주로 이용

Components

  • DBMS는 아주 복잡하고 방대한 소프트웨어이다.
  • 질의어 처리기, 저장 관리자로 나눌 수 있다.
    • 질의어 처리기 : 질의어 처리, 권한 부여 및 철회, 인증 등을 담당한다.
    • 저장 관리자 : DB 서버의 하단 부분을 의미하고 파일 구조, 인덱싱 등을 관리한다.


Data Dictionary

  • 메타데이터(데이터의 데이터)를 저장하는 장소이다.
  • DB 스키마의 데이터, 제약조건의 대한 데이터, 접근권한에 대한 데이터를 포함한다.

Transaction Management

  • 동시성 제어, 복구 기능으로 나뉨

Database Users

  • 시스템을 사용하는 방식에 따라서 몇가지 부류로 나뉜다.
  • 일반 사용자는 데이터베이스 응용을 이용해서 데이터를 접근 관리, 주어진 화면 양식에 의거해서 절차대로 데이터베이스를 사용한다.
  • 우리는 응용 프로그래머이다. 데이터베이스 시스템의 접근하는 프로그램을 개발함
  • 데이터 분석가도 있음

Database Administrator(DBA)

  • 데이터베이스 시스템의 모든 권을 가지고 있는 슈퍼 유저이다.
  • 스키마 정의, 저장 구조 및 접근 방법 정의, 스키마와 물리적 구조 변경, 데이터베이스 접근 권한 관리, 제약조건 관리, 시스템 성능 관리 등을 담당한다.

Database System Architecture

  • 데이터의 위치에 따라서 중앙집중식 데이터베이스, 분산 데이터베이스, 클라이언트 서버 데이터베이스로 나눌 수 있다.
profile
개발자가 되고 싶은 1人

0개의 댓글