ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ch 01. 데이터베이스와 데이터베이스 사용자
    학교 수업/2-2 데이터베이스 기초 2021. 9. 12. 17:46
    반응형

    1. 개요

    데이터: 알려진 사실을 기록하고, 의미를 내포하고 있는 것

    데이터베이스: 서로 연관이 있는 데이터들의 모임

    미니 월드(mini-world) 혹은 논의 세계(UoD: Universe of Discourse): 데이터가 데이터베이스에 저장된 실세계의 일부분을 표현한 것

    데이터베이스 관리 시스템(DBMS): 사용자가 전산화된 베이터베이스를 생성하고 관리할 수 있도록 해주는 시스템

    데이터베이스 시스템: DBMS와 데이터베이스(데이터들)을 의미함

     

     

    2. 데이터베이스의 특성

    1. 데이터베이스는 실세계의 일부분을 표현함(= 미니 월드, UoD)
    2. 데이터베이스는 특정한 의미를 가지는 데이터의 모임임
    3. 데이터베이스는 특정한 목적을 위해 설계, 구축, 운용함. DB를 사용하는 그룹들과 사용자들이 원하는 응용이 미리 정의가 되어 있음
    4. 데이터베이스는 다양한 복잡도와 크기를 가짐

     

    3. DBMS의 특성

    1. 사용자가 데이터베이스를 생성하고 관리할 수 있도록하는 컴퓨터화된 시스템
    2. 데이터베이스를 정의, 생성, 조작, 공유할 수 있도록 편리한 기능을 제공하는 범용 소프트웨어 시스템
    3. 데이터베이스를 보호하고 오랜 기간에 걸쳐 유지보수를 할 수 있음
      • 시스템 보호: 하드웨어 또는 소프트웨어 오동작을 막아줌
      • 보안 위협 보호: 권한이 없는데 접근하거나, 악의적인 접근을 하는 것을 막아줌
    4. 반드시 범용 DBMS를 사용할 필요는 없고, 특수 목적의 DBMS도 존재함

     

     

    4. 데이터베이스 시스템 환경

    Software to Process Queries/Programs: 질의/프로그램(사용자의 요구사항)을 수행하는 소프트웨어

    Software to Access Stored Data: 저장된 데이터를 접근하는 소프트웨어

    Meta Data: 저장된 데이터베이스의 정의 또는 데이터베이스를 설명하는 정보

     

     

     

    5. 데이터베이스의 예시

    STUDENT 데이터베이스
    GRADE_REPORT 데이터베이스

     

    1. 데이터베이스를 정의하기 위해서는 각 파일의 레코드 구조를 명시해야함(데이터 항목의 타입을 지정)
      • STUDENT 데이터베이스의 레코드는 Name, Student_number, Class, Major이고, 데이터 타입은 Name은 문자열, Student_number는 정수, Class는 정수, Major는 문자열을 가져야함
    2. 대부분의 중형, 대형 데이터베이스는 다양한 유형의 레코드와 레코드 사이의 관계(relationship)를 가지고 있음
      • UNIVERSITY 데이터베이스를 생성하기 위해 각 학생의 이름, 학번, 학년, 전공, 강좌, 성적을 나타내는 데이터가 해당되는 테이블에 한 레코드로 저장함. Student_number를 통해 STUDENT의 Smith 레코드의 Student_number와 GRADE_REPORT의 Student_number가 서로 연관이 있는 것을 알 수 있음
    3. 데이터베이스를 조작 가능함
      • 질의(query): Smith의 성적을 검색해라. 112번 수업에서 Smith의 성적을 검색하라
      • 갱신(update): Brown의 학년을 3으로 바꿔라. 119번 수업에서 Smith의 성적을 A로 변경하라

     

     

     

    6. 데이터베이스의 특징

    1. 옛날 방식으로는 데이터의 중복이 일어나서 기억 장소의 낭비뿐만 아니라, 변경시 중복된 모든 파일에서 관련된 레코드를 찾아 동일하게 변경해야 하는 오버헤드가 발생함
      • 오버헤드: 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간과 메모리 
      • ex) 학교에 성적 관리부서의 직원은 학생 이름, 학번, 성적에 관한 데이터를 저장하고, 회계 부서의 직원은 학생 이름, 학번, 수업료에 관한 데이터를 저장함 => 한 학생에 대하여 두 개의 파일이 생겨남. 수정하려면 두 파일에서 해당 학생의 레코드를 찾아 수정하는 방식이 필요함
    2.  데이터베이스 방식은 단일 저장소에 데이터가 저장되고, 여러 사용자가 저장소를 사용할 수 있게 유지해줌

     

     

     

     

    7. 데이터베이스를 사용하면 좋은 점

    1. 데이터베이스 시스템의 자기 기술성(self-describing nature)을 가지고 있음
      • 데이터베이스의 구조와 제약 조건에 대한 것까지 가지고 있음
      • DBMS 카탈로그에 저장되어 있고, 카탈로그에 저장된 정보를 메타데이터(meta-data)라고 부름
      • 카탈로그는 DBMS와 사용자가 사용할 수 있음
    2. 프로그램과 데이터의 격리 및 데이터 추상화 제공
      • 프로그램-데이터 독립성: 데이터 파일의 구조가 변경되어도 응용 프로그램은 거의 변하지 않음
      • 프로그램-연산 독립성: 연산의 구현이 변경되어도 인터페이스가 유지되는 한 응용 프로그램을 변경할 필요가 없음
      • 데이터 추상화: 데이터 모델이 데이터 추상화를 제공함. 데이터 모델은 사용자가 관심 없는 상세 정보는 숨기고, 사용자의 요구에 맞는 개념적인 표현을 제공해줌
    3. 데이터에 대한 다중 뷰를 제공
      • 데이터베이스의 일부를 보여주거나, 데이터베이스로부터 유도되는 존재하지 않는 가상 데이터를 제공해줌(ex. 중간/기말 점수 DB만 존재하는데 평균점수를 보여주는 것)
    4. 데이터의 공유와 다수 사용자 트랜잭션 처리
      • 트랜잭션: 데이터베이스로부터 읽기, 삽입, 삭제 또는 갱신과 같은 데이터베이스 연산들을 수행하는 프로그램
      • 동시성 제어(Concurrency Control): 다수의 사용자가 동일한 데이터를 동시에 변경하는 경우에도 데이터의 일관성을 보장함(= 트랜잭션의 실행 순서를 제어하는 기법)
      • 온라인 트랜잭션 처리(OLTP: On-Line Transaction Processing): 짧은 시간 안에 다수의 유저들이 데이터베이스에 접근하게하는 환경의 시스템
      • DBMS가 옛날 방식에 비해 큰 차이를 보이는 기능임

     

     

    8. 트랜잭션(Transaction)

    1. 고립성(isolation): 각 트랜잭션이 다른 트랜잭션들로부터 고립되어 수행되는 것처럼 보이도록 보장하는 것
    2. 원자성(atomicity): 트랜잭션 내의 모든 데이터베이스 연산들이 수행 완료되거나, 아무연산도 수행하지 않거나 두 가지 상태로만 존재함(수정중인 중간 상태가 없음)

     

     

     

    9. 데이터베이스 사용자의 분류

    1. Actor on the scene
      • 데이터베이스 관리자(DBA, Database Administrator)
        • 데이터베이스에 대한 접근을 줌
        • 데이터베이싀 자원의 사용을 모니터링하고 조절함
        • 필요한 경우에 소프트웨어나 하드웨어 자원을 구입함
        • 데이터베이스의 보안이나 시스템의 성능 문제를 책임짐
      • 데이터베이스 설계자(Database Designer)
        • 데이터베이스에 저장될 데이터를 선정하고, 데이터를 나타내고 저장하는 구조를 정의하는 역할을 담당함
      • 일반 사용자
        • 캐쥬얼 사용자(casual end user): 고급 데이터베이스 쿼리를 사용하는 사람
        • 초보 사용자(naive/parametric end user): 이미 다 만들어둔 인터페이스를 사용하는 사람
        • 전문 사용자(sophisticated end user): DBMS의 고급 기능을 이용하여 응용 프로그램을 구현하는 사람
        • 독자적인 사용자(stand-alone end user): 개인 데이터베이스를 운영하고 유지관리하는 사람
    2. Workers begind the scene - DBMS와 시스템 환경을 설계하고 개발하는 사람
      • DBMS의 설계자 및 구현자: DBMS를 개발하는 사람
      • 도구 개발자: 툴을 개발하는 사람
      • 운영자와 유지보수 직원: 운영하거나 유지관리하는 사람

     

     

    10. DBMS의 장점

    1. 중복성 제어
      • 데이터 정규화(normalization): 데이터를 데이터베이스에 오직 한 번만 저장하는 것
        • 일관성을 유지, 저장공간을 절약
      • 중복성을 제어하면 쿼리 성능을 개선하는데 유용한 경우가 있음(반정규화)
    2. 권한이 없는 접근의 통제
      • 사람마다 제한된 데이터만 볼 수 있도록 하기 위해 DBMS는 보안과 권한 서브시스템을 가짐 
      • 데이터베이스 관리자가 특권 소프트웨어(privileged software)를 통해 DBMS가 사람마다 권한을 다르게 통제하게 해줌
    3. 프로그램 객체를 위한 영구적인 저장공간 제공
      • 객체지향 DBMS에 객체를 저장해두면 영구적으로 남아있으며, 필요하면 다른 프로그램에서도 접근이 가능함
      • 프로그래밍 언어에서 제공하는 자료구조와 데이터베이스 시스템에서 제공하는 자료구조가 일치하지 않는 것이 존재하는데, 대부분의 객체지향 데이터베이스 시스템은 호환성 있는 자료구조를 제공하므로 이런 불일치 문제를 해결해줌
    4. 효율적인 질의 처리를 위한 저장 구조와 탐색 기법의 제공
      • 쿼리(질의)와 업데이트(갱신)을 효율적으로 실행하기 위한 기능을 제공
        • 인덱스(index) - 데이터를 빠르게 접근
        • 버퍼링(buffering) 또는 캐싱(caching): 데이터를 빠르게 읽는 것
      • 질의 처리 및 최적화
        • DBMS 성능의 핵심
        • 가장 효율적인 쿼리 실행 계획을 선택
        • 물리적 데이터베이스 설계 및 튜닝과 관련이 있음
    5. 백업과 복구 기능 제공
      • 트랜잭션 수행 도중에 컴퓨터 시스템이 고장나면 DBMS는 갱신 트랜잭션이 수행되기 전의 상태로 데이터베이스를 되돌리거나 고장난 시저뭅터 나머지를 실행하여 갱신 트랜잭션의 수행 결과가 완전히 데이터베이스에 반영되도록 함
    6. 다수의 사용자 인터페이스 제공
      • 기술적인 지식의 보유 정도에 따라서 사용자의 그룹을 분류할 수 있으므로 DBMS는 각 그룹에 적합한 인터페이스를 제공해줌
    7. 데이터 간의 복잡한 관계 표현
      • DBMS는 새로운 관계가 나타날 때, 그 관계를 정의하고 연관된 데이터를 쉽고 효율적으로 검색하고 변경할 수 있는 기능을 제공하기 위해 데이터 간의 복잡하고 다양한 관련성을 표시해줌
    8. 무결성 제약 조건 준수
      • DBMS는 무결성 제약 조건들을 정의하고 검사하는 기능을 가짐
      • 제약 조건은 데이터 타입, 데이터의 의미, 레코드상의 관계(=참조 무결성 제약 조건), 데이터 아이템의 고유값(= 키 제약 조건) 같은 것들이 있음
    9. 규칙을 사용한 추론 및 수행 허용
      • 연역 데이터베이스 시스템(Deductive database system): 데이터베이스에 저장되어 있는 사실로부터 새로운 정보를 추론하는 연역적 규칙을 정의하는 기능을 가진 시스템
      • 능동 데이터베이스 시스템(Active database system): 어떤 이벤트나 조건이 일어났을 때, 자동으로 수행되는 능동 규칙을 제공하는 시스템
    10. 그 외
      • 표준을 적용할 수 있는 가능성 - 데이터베이스 환경에서 더 쉽게 표준을 적용할 수 있음
      • 개발 시간이 줄어들음
      • 융통성이 좋음 - 고치기 수월함
      • 최신 정보의 가용성 - 항상 최신 상태의 데이터베이스를 제공함
      • 경제적임

     

     

    11. DBMS의 단점

    1. 하드웨어, 소프트웨어, 교육 등의 측면에서 초기 투자비용이 높음
    2. DBMS는 데이터를 너무 일반적으로 정의하고 처리함
    3. 보안, 동시성 제어, 회복, 무결성 조건등을 보장하는 오버헤드가 큼

     

    12. DBMS가 불필요한 상황

    1. 데이터베이스와 응용이 단순하고 잘 정의되어 있으며 전혀 변경이 일ㅇ어나지 않는 경우
    2. 실시간 요구사항이 엄격한 프로그램에서 오버헤드로 인하여 제한시간 안에 처리를 하지 못하는 경우
    3. 제한된 저장용량을 가지는 임베디드 시스템
    4. 혼자 사용할 때
    반응형

    댓글

Designed by Tistory.