[데이터베이스 배움터] 1장 데이터베이스 시스템

Mr.SQL·2020년 12월 9일
0

1. 데이터베이스 시스템

데이터: 컴퓨터 디스크와 같은 매체에 저장된 사실
정보: 사람이 이해하기에 적합한 형태로 의미있게 만든 것

데이터베이스: 수집한 데이터, 표준 형식으로 저장된 데이터를 뜻한다.
데이터의 양이 방대하고, 구조적이며, 많은 사용자들이 동시에 데이터를 접근하여 검색과 갱신을 수행하는 환경에 데이터베이스가 사용된다.

  • 여러 부서에 속하는 여러 사용자에 의해 동시에 사용된다. 즉, 데이터 베이스는 조직 구성원 모두가 구성하는 자원이다.
  • 중복을 최소화하면서 통합된다.
  • 운영 데이터뿐만 아니라 그 데이터에 관한 설명까지 포함한다. 이를 '메타데이터'라고 한다.
  • 응용 프로그램과 데이터 간의 독립성이 제공된다.

1.1 데이터베이스 시스템 개요

1.1.1 데이터베이스 스키마와 상태

스키마: 전체적인 데이터베이스 구조. 자주 변경되지는 않는다. 데이터베이스의 모든 가능한 상태를 미리 정의한다.

데이터베이스 스키마
EMPLOYEE(EMPNO, EMPNAME, SALARY, DEPARTMENT)

데이터베이스 상태

내포(intension): 데이터베이스 스키마
외연(extension): 데이터베이스의 상태

데이터베이스 상태는 특정 시점의 데이터베이스의 내용을 의미하며, 시간이 지남에 따라 계속해서 바뀐다. DBMS는 모든 데이터베이스 상태가 유효한 상태를 유지하도록 보장한다.

1.1.2 데이터베이스 시스템의 구성요소


(출처: https://m.blog.naver.com/gkenq/10187693070)

데이터베이스: 시스템 카탈로그(데이터 사전), 저장된 데이터베이스로 구분할 수 있다.
DBMS: 사용자가 데이터를 효율적으로 질의하게하고, 데이터를 권한이없는 사용자로부터 안전히 보호한다.
하드웨어: 데이터베이스는 보조 기억 장치에 저장되며, DBMS에서 원하는 정보를 찾기 위해서는 디스크의 블록들을 주기억 장치로 읽어들여야 한다. 계산, 비교 연산들을 수행하기 위해 중앙 처리 장치가 사용된다.

시스템 카탈로그: 저장된 데이터베이스의 스키마 정보를 유지한다.
예) 사용자가 새로운 table을 생성하거나 attribute를 추가시 이를 반영하는 스키마 정보가 시스템 카탈로그에 삽입된다.

1.1.3 데이터베이스 시스템의 요구사항

  • 데이터 독립성: 응용 프로그램과 데이터가 독립적이다.
  • 융통성: 기존의 table에 새 attribute를 추가하고 새로운 table을 추가하는 작업 등을 수행할 수 있다.
  • 효율적인 데이터 접근: 인덱스 구조가 이런 목적으로 사용된다.
  • 데이터에 대한 동시 접근: 각 사용자가 혼자서 데이터베이스를 접근하는 것처럼 인식하도록 동시 접근을 동기화하는 동시성 제어를 제공해야 한다.
  • 백업과 회복
  • 중복 제어 및 일관성 유지: 성능 향상을 위해 중복을 일부 허용할 수 있다.
  • 데이터 무결성: 데이터가 정확하고 완전함을 의미. DBMS는 데이터 IUD시 제약조건을 자동으로 검사한다.
  • 데이터 보안
  • 쉬운 질의어
  • 다양한 사용자 인터페이스 제공

1.2 파일 시스템 vs DBMS

1.2.1 파일 시스템과 DBMS

1.2.2 DBMS의 단점

  1. 구입비용
  2. 백업과 회복의 복잡도가 높다
  3. 정보 누출 가능성이 파일 시스템보다 높을 수 있다

초기 투자 비용이 너무 크거나, 오버헤드가 너무 크거나, 응용이 단순하고 변경되지 않을 것으로 예상 될 때, 엄격한 실시간 처리 요구사항이 있을 때, 다수 사용자의 접근이 필요 없다면 DBMS를 사용하지 않는 것이 좋을 수 있다.

1.2.3 DBMS의 장점

높은 수준의 데이터 독립성을 제공하기 위해서 DBMS는 정교한 메타데이터 관리 시스템을 포함해야 한다.

  1. 중복성과 불일치가 감소된다(개발자가 중복성의 유형과 정도를 제어할 수 있다)
  2. 프로그램-데이터 독립성이 향상된다
  3. 표준화 시행이 용이하다
  4. 보안이 향상된다. 데이터베이스 구축시 데이터가 중앙 집중화되므로 보안 시행이 용이해진다
  5. 무결성이 향상된다
  6. 조직체의 요구사항을 식별할 수 있다

1.3 DBMS 발전 과정

1.3.1 데이터 모델

데이터 모델이란, 데이터베이스의 구조를 기술하는 데 사용되는 개념들의 집합인 구조, 이 구조 위에서 동작하는 연산자들, 무결성 제약조건들로 이루어진다
각 데이터 모델은, 사용자에게 내부 저장 방식에 대한 사항은 숨기면서 데이터에 대한 직관적인 뷰를 제공하며 이들 간의 사상을 제공하는 것이 목적이다.

  1. 개념적 데이터 모델
    => 사람이 인식하는 것과 유사하게 논리적인 구조를 명시한다. ER데이터 모델, 객체 지향 데이터 모델이 있다
  2. 표현 데이터 모델
    => 계층 데이터 모델, 네트워크 데이터 모델, 관계데이터 모델
  3. 물리적 데이터 모델
    => 시스템이 인식하는 것과 가까우며, Unifying, ISAM, VSAM 등이 있다.

1.3.2 DBMS의 발전 과정

  1. 계층 DBMS

장점

  • 데이터가 트리 형태로 모델링된다면 훌륭한 선택이다.

단점

  • 어떻게 데이터를 접근하는가를 미리 응용 프로그램에 정의해야함
  • 데이터베이스가 생성시 각각의 관계가 명시적으로 정의되야 한다.
  • 구조 변경이 어려움
  • 응용 프로그램을 수정하는 것도 어려움
  1. 네트워크 DBMS

    레코드들이 노드, 레코드간의 관계가 간선으로 표현되는 그래프를 기반으로 하는 모델이다.
  2. 관계 DBMS
    테이블을 기반으로 하는 데이터 모델이다

장점

  • 모델이 간단하여 이해하기 쉽다
  • 사용자는 자신이 원하는 것만 명시한다
  • 데이터가 어디에 있는지, 접근 방법에 대한 것은 DBMS가 결정한다
  1. 객체지향 DBMS
    데이터와 프로그램을 그룹화하고 복잡한 객체들을 이해하기 쉬우며, 유지와 변경이 용이하다
  2. 객체관계 DBMS
    관계 DBMS에 새로운 데이터 타입과 데이터베이스에 대한 연산들을 추가할 수 있는 기능을 제공한다.

장점

  • DBMS와 객체 지향 DBMS의 단점을 해결

단점

  • DBMS의 복잡도가 증가

1.4 DBMS 언어

  1. 데이터 정의어(DDL: Data Definition Language)
    데이터 베이스 스키마를 정의한다. DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그에 저장한다.
    데이터 구조를 생성, 데이터 구조의 변경, 데이터 구조의 삭제, 특정 애트리뷰트 위의 인덱스를 정의한다

    CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX

  2. 데이터 조작어(DML: Date Manipulation Language)
    비절차적 언어인 SQL, 그리고 내장 함수들이 해당한다. DML에는 조건문, 반복문, 입력문 등이 없다. 때문에 C 같은 고급 프로그래밍 언어로 작성된 프로그램에 내포되어 사용된다. 이때의 고급 프로그래밍 언어를 호스트 언어라고 한다.

    비절차적 언어: 원하는 데이터를 명시만 하고 검색 방법은 명시하지 않음
    절차적 언어: 어떤 데이터가 필요하고 어떻게 찾을지를 명시하는 언어

    SELECT, UPDATE, DELETE, INSERT

  3. 데이터 제어어(DCL: Data Control Language)
    트랜잭션을 명시하고 권한을 부여하거나 취소한다.

1.5 DBMS 사용자

  1. 데이터베이스 관리자(DBA): 데이터베이스 스키마를 생성하고 유지하는 사람(조직)
  • 데이터베이스 스키마의 생성/변경
  • bulk loading
  • 무결성 제약조건을 명시
  • 사용자의 권한을 허용하거나 취소하고, 사용자의 역할을 관리
  • 저장 구조와 접근 방법(물리적 스키마)정의
  • 백업과 회복
  • 표준화 시행
  1. 응용 프로그래머: 이들이 작성한 프로그램은 최종 사용자들이 반복해서 수행하므로, canned transaction(기작성 트랜잭션)이라 부른다.
  2. 최종 사용자: 매번 다른 정보를 찾는 캐주얼 사용자, 기작성 트랜잭션을 주로 반복해서 수행하는 초보 사용자로 구분한다.
  3. 데이터베이스 설계자: 일관성 유지를 위해 정규화를 수행한다. 인덱스 등을 정의하며, 문서화 작업을 수행한다
  4. 오퍼레이터: DBMS가 운영되는 전산실 관리자
profile
Mr.SQL velog에 오신것을 환영합니다.

0개의 댓글