본문 바로가기

카테고리 없음

데이터베이스 - 2

데이터베이스 관리시스템(DBMS:DataBase Management System)

- 방대한 양의 데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을 제공해주는 시스템 소프트웨어

 

[ 파일시스템 ]

  • 데이터를 관리함에 있어 파일을 읽고 쓰는 애플리케이션에 종속적
  • 호환성이 없고 데이터 종속성이 있고 데이터 중복성이 있다는 문제점 존재
    • 데이터 종속성(== 독립적이지 않다)
      • 파일을 중심으로 한 자료 처리 시스템이 갖는 문제점 중의 하나로 애플리케이션 데이터 간의 상호 의존 관계가 밀접하여 데이터 구성 방법이나 구성 형식, 접근 방법이 변경되면 이에 관련된 애플리케이션을 같이 변경되어야 하는 성질을 의미
      • 독립적이지 못함으로 인해 유지보수 비용이 많이 들며, 융통성이 없음
    • 데이터 중복성
      • 한 시스템 내에 같은 내용의 데이터가 다수의 파일에 중복되어 저장되어 있으면 수정 시 중복된 데이터를 모두 수정해줘야 하기 때문에 중복된 노력이 필요함
      • 동일한 데이터를 저장해야 하기 때문에 데이터 크기가 큰 경우 문제가 발생하며, 수정 시 중복된 데이터의 일부분만 수정될 경우 데이터 불일치성이 발새오디어 데이터가 일관성이 없게됨(무결성 훼손)
  • 다수의 사용자들이 동시에 사용할 수 없음
  • 보안  조치가 취약하며, 회복에 대한 기능이 없음
  • 데이터를 쉽게 명시해주는 질의어가 제공되지 않음

파일 시스템
파일 시스템의 종속성

 

 

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

- DB 를 통하여 데이터를 저장하고 관리하기 위한 목적으로 사용되는 일체의 시스템

ex) 데이터(Data) + 하드웨어(h/w) + 소프트웨어(s/w) + 사용자(user)

 

 

[ 데이터베이스 관리 시스템(DBMS) ]

- DB는 파일 시스템의 단점을 극복하고 데이터를 효율적으로 관리하기 위해 만들어짐

- 사용자 어플리케이션과 DB 사이에서 중재자 즉, 인터페이스 역할을 해줌

- 사용자의 요구에 따라서 DB 를 조작하고 제어해주는 소프트웨어

 

DBMS

 

DBMS 필수 기능

- 정의 기능, 조작 기능, 제어 기능

 

[ 정의(definition)기능 ]

  • 구현된 하나의 물리적 구조의 DB로 여러 사용자들의 다양한 형태의 데이터 요구를 지원해 줄 수 있도록 가장 적절한 DB 구조를 정의할 수 있는 기능
    • 정의 기능의 요건
      • 모든 응용 프로그램이 요구하는 데이터 구조를 지원할 수 있게끔 DB의 논리적 구조와 그 특성을 목표 DBMS 이 지원하는 데이터 모델에 맞게 기술
      • DB를 물리적 저장 장치에 저장하는 데 필요한 명세를 포함
      • 데이터의 논리적 구조와 물리적 구조 사이의 사상(mapping) 명세를 포함

[ 조작(manipulation) 기능 ]

  • 사용자와 DB 사이의 인터페이스를 위한 수단을 제공
    • 조작 기능의 요건
      • 사용하기 쉽고 자연스러워야 함.
      • 데이터와 데이터 간의 관계를 명확하게 명세할 수 있어야 하고, 원하는 데이터 연산은 무엇이든 명세할 수 있도록 완전해야 함
      • 데이터 접근이나 처리가 효율적이어야 함

[ 제어(control) 기능 ]

  • 공용 목적으로 관리되는 DB 의 내용에 대해 항상 무결성이 파괴되지 않도록 하며 정확성과 안전성을 유지하는 기능
    • DB 는 의사결정을 지원해주는 시스템이기 때문에 데이터에 대한 무결성이 파괴되어 오류가 발생하면 의사결정에 오류가 반영되기 때문에 무결설이 항상 유지되어야 함
    • 정확성은 데이터 공용의 기본적인 가정이고, 관리의 제약 조건이 됨
    • 제어 기능의 요건
      • DB 의 갱신, 삽입, 삭제가 정확하게 수행되어 데이터 무결성이 파괴되지 않도록 해야함
      • 정당한 사용자가 허가된 DB 에 접근할 수 있게 보안 유지를 위해 권한 검사를 해야함
      • 여러 사용자가 동시에 접근하고 처리할 때, 처리 결과가 항상 정확성을 유지할 수 있도록 병행 제어 해야함 

DBMS 의 장점

- 파일 시스템에 비해 데이터 중복을 최소화

(데이터의 중복을 완전히 배제하는 것은 아님, 통합 DB 환경에서 성능 향상을 위해 중복을 필요로 할 수 있음)

- 데이터 통합 관리 및 데이터 공통으로 사용하기 위해 데이터를 공통된 장소에 저장함으로써 여러 사용자와 응용 프로그램들이 데이터를 공유하는 것이 가능

- 데이터의 일관성을 유지

- 무결성이 유지

- 모든 데이터에 대해 보안을 보장

- DB 의 일관성 있는 접근(DB 접근에 대한 표준화를 함으로써 어떤 DBMS 를 사용하더라도 일관성 있게 접근이 가능)

- 데이터 관리 유연(모든 데이터를 공유함으로써 사용자가 새로운 데이터 접근에 대해서 유연하게 제공됨)

 

DBMS 의 단점

- 운영비 증가

- 백업과 복구에 대한 전문적인 기술과 지식이 필요


[ 스키마(schema) ]

  • 데이터 구조와 제약조건에 대한 명세(speciricaiton)를 기술하는 것
  • 개체(entity), 속성(attribute), 관계(relationship)에 대한 정의와 이들이 유지해야 될 제약조건(constraints)을 포함
  • 데이터 기술과 이들과의 관계
    • 외부 단계(external level) : 데이터를 이용하는 각 개인의 견해(view)
    • 개념 단계(conceptual level) : 개인의 모든 견해가 종합된 기관 전체의 견해
    • 내부 단계(internal level) : 물리적 저장 장치의 입장에서 보는 저장 장치의 견해
  • 3단계 DB 구조
    • 외부 스키마(external schema)
      • 개개 사용자가 보는 개인적인 DB 에 관한 것
      • 가장 바깥 쪽 스키마 DB 의 개개 사용자나 응용 프로그래머가 접근하는 DB 를 정의하는 것 (해당 응용 프로그램이나 사용자와 관련된 개체과 관계만을 포함)
      • 전체 DB 내의 전체 데이터 중에서 사용자가 사용하려는 한 논리적 부분을 말하기 때문에 서브 스키마(shcema)라고도 함
    • 개념 스키마(conceptual schema)
      • 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB 기술
      • 개념 스키마로부터 모든 외부 스키마가 생성되고 지원
      • 하나의 DB에는 하나의 개념 스키마가 존재
      • 기관이 필요로 하는 모든 정보를 생성하기 위한 모든 데이터 객체들(개체, 속성, 관계, 제약조건 등)을 포함하고, 이들을 효율적으로 관리하기 위한 정보(DB 접근 권한, 보안 정책, 무결성에 대한 명세 등)를 포함
    • 내부 스키마(internal schema)
      • 저장 장치 입장에서 전체 DB 가 저장되는 방법을 명세
      • 물리적 단계보다 한 단계 위로 물리적 저장 장치 관점에서 본 구조
      • 내부 레코드 형시, 인덱스 유무, 저장 데이터의 항목 표현 방법, 내부 레코드의 물리적 순서등의 명세 포함
      • 물리적 스키마, 저장 스키마

3단계 DB 구조

 

[ 데이터 독립성 ]

  • DB 구조의 변화로 인한 영향을 응용 프로그램(또는 논리적 구조)에 미치지 않도록 하는 것을 의미
  • 논리적 데이터 독립성
    • 응용 프로그램에 영향을 주지 않고 논리적 데이터 구조를 변경할 수 있게 하는 것
    • 외부와 개념 스키마 간의 사상에 의해서 제공됨
    • DB 에 새로운 항목이나 레코드를 추가해도 현재 정의된 사용자의 관점이나, 사용되고 있는 응용 프로그램 중에 직접 관련되지 않는 사용자 관점이나 응용 프로그램은 영향을 받지 않도록 유지해줌
  • 물리적 데이터 독립성
    • 응용 프로그램과 DB 의 논리적 구조에 영향을 주지 않고 물리적 구조를 변경할 수 있게 하는 것
    • 개념과 내부 스키마 간의 사상에 의해서 제공됨

 

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

 

 

[ DB ]

- 특정 조직에서 데이터를 공동 업무에 사용하기 위하여 데이터의 구조화, 비 중복화하여 관리하는 것

 

[ DBMS ]

- DB 를 관리하는 시스템

 

[ 데이터 언어 ]

- 사용자와 DB 사이를 연결시켜 주는 것

- 사용자가 원하는 정보를 요청하고 제공

- 물리적 파일을 직접 다루는 게 아닌 질의어를 통해서 DB 에 저장돼 있는 릴레이션(테이블)을 조작, 제어 등을 할 수 있게 해줌

 

 - DB 언어 -

 

데이터 정의어(DDL:Data Definition Language)

  • DB 스키마를 정의하거나 수정할 목적으로 사용하는 언어
  • 대표적인 데이터 정의어
    • CREATE : 데이터베이스 생성
    • ALTER : 데이터베이스 변경
    • DROP : 데이터베이스 삭제
    • RENAME : 데이터베이스 객체 이름 변경
    • TRUNCATE : 데이터베이스 데이터 삭제

데이터 조작어(DML:Data Manipulation Language)

  • DB 내의 데이터 연산을 위한 언어(검색, 추가, 삭제, 갱신 등의 작업)
  • 사용자와 DBMS 간의 인터페이스를 제공
  • 절차적인 조작어
    • 사용자가 무슨 데이터를 원하며 어떻게 접근해야 하는지를 명세해야하는 초급 데이터 언어
    • 한 번에 하나의 레코드를 검색하여 처리
    • 독자적으로 사용되지 못하고 호스트 프로그래밍 언어로 작성된 응용 프로그램 속에 임베디드 되어서 사용되며, DML 컴파일러에 의해서 추출되고 컴파일 후 호스트 프로그래밍 언어의 컴파일러로 컴파일 된 나머지 프로그램과 연결돼서 실행
  • 비절차적인 조작어
    • 사용자가 무슨 데이터를 원하는지 만을 명세하고, 어떻게 접근할 것인지는 명세하지 않는 고급 데이터 언어
    • 사용자가 원하는 데이터를 한 번에 여러 개의 레코드를 검색해서 처리하며, 어떻게 처리하는 지는 DBMS 에 위임하여 독자적으로 사용이 가능
    • 보통 터미널을 통해서 일반 사용자가 대화식으로 사용하며 독자적이고 상호작용 형태로 커맨드 형태의 독립된 데이터 조작어인 질의어
  • 대표적인 데이터 조작어
    • INSERT : 데이터 입력
    • UPDATE : 데이터 수정
    • DELETE : 데이터 삭제

데이터 제어어(DCL:Data Control Language)

  • DB 내의 데이터를 올바르고 정확하게 유지하기 위한 언어
  • 역할
    • 보안(security) : 불법적인 사용자로부터 데이터를 보호
    • 무결성(integrity) : 데이터 정확성
    • 데이터 회복(recovery) : 시스템 장애에 대비
    • 병행수행(concurrency) : DB 의 동시 접근 가능

[ 데이터베이스 사용자 ]

  • 일반 사용자
    • 비절차적 DML(질의어)를 통한 DB 접근이 가능
  • 응용 프로그래머
    • 프로그래밍 언어에 DML 을 삽입하여 DB 접근
  • 데이터베이스 관리자(DBA:DataBase Administrator)
    • DDL 과 DCL 을 통해 DB 를 정의하고 제어하는 사람