1.0.0

데이터베이스 시스템

1장. 데이터베이스 시스템

데이터 vs 정보

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

데이터베이스 시스템의 목적

: 정보와 데이터 사이의 갭을 줄이는 것

데이터베이스

: 조직체의 응용 시스템들이 공유해서 사용하는 운용데이터들을 구조적으로 통합된 것. 데이터베이스의 구조는 사용되는 데이터 모델에 의해서 결정된다.

데이터베이스 특징

  1. 데이터의 대규모 저장소로서, 여러 부서에 속하는 여러 사용자에 의해 동시에 사용된다.

  2. 모든 데이터가 중복을 최소화하면서 통합된다.

  3. 한 조직체의 운영 데이터뿐만 아니라 그 데이터에 관한 설명(데이테베이스 스키마 or 메타데이터)까지 포함

  4. 데이터의 구조가 프로그램과 분리되어 데이터베이스에 저장되므로 프로그램과 데이터 간의 독립성 제공

  5. 효율적 접근이 가능하다.

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

: 데이터베이스를 정의하고, query를 지원하고, 리포터를 생성하는 등의 작업을 수행하는 소프트웨어.

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

데이터페이스 스키마와 상태(schema and state)

  • 데이터베이스 스키마는 전체적인 데이터베이스 구조를 뜻하며 자주 변경되지않는다. 또한 데이터베이스의 모든 가능한 상태를 미리 정의. **intension(내포)**라고 부른다.

  • 데이터베이스 상태(state)는 특정 시점의 데이터베이스 내용을 의미하며, 시간이 지남에 따라 계속해서 바뀐다. **extension(외연)**이라 부른다.

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

  • 데이터 독립성

  • 융통성

  • 효율적인 데이터접근

  • 데이터에 대한 동시 접근

  • 백업과 회복

  • 중복을 줄이거나 제어해 일관성 유지

  • 데이터 무결성

  • 데이터 보안

  • 쉬운 질의어(query)

  • 다양한 사용자 인터페이스 제공

1.2 파일 시스템 vs DBMS

파일시스템

: 화일시스템은 DBMS가 등장하기 전부터 사용되어 왔다. 화일은 순차적인 레코드들로 구성되어있다. 화일을 접근하는 방식이 응용프로그램 내에 상세하게 표현되어 데이터에 대한 응용프로그램 의존도가 높다.

파일시스템 장점

  • 구입비용을 지출하지 않고도 사용할 수 있으며 속도가 빠르다.

파일시스템 단점

: 데이터의 정의가 프로그램에 내포되어있고, 프로그램에서 데이터를 접근 하고 조작하는 것외에 별도의 제어가 없음.

  • 데이터가 많은 화일에 중복해서 저장

  • 다수 사용자들을 위한 동시성 제어 제공되지 않음

  • query(질의어)가 제공되지 않음.

  • 보안조치 미흡

  • 회복기능이 없다.

  • 프로그램-데이터의 독립성이 없어 유지보수비용이 크다.

  • 데이터 모델링 개념 부족

  • 무결성을 유지하기 어려움

  • 프로그래머의 생산성이 낮다.

  • 융통성이 부족

DBMS

장점

  • 중복성과 불일치가 감소

  • 사용자에게 보다 나은 서비스 제공

  • 프로그램-데이터 독립성이 향상

  • 개발과 유지보수 비용이 감소

  • 표준화를 시행히기가 용이

  • 보안 향상

  • 무결성 향상

  • 데이터베이스 회복

  • 공유 및 동시 접근 가능

  • 다양한 도구들 활용할 수 있다.

단점

  • 추가적인 하드웨어 구입비용이 들고, 자체의 구입비용도 비쌈

  • 다수 사용자가 데이터베이스를 접근하기 때문에 비밀과 프라이버시 노출등의 단점 존재.

: 초기 투자비용 너무 클때, 오버헤드 클때, 응용이 단순하고 잘 정의 되어 변경되지않을 것으로 예상될 때, 엄격한 실시간 처리 요구사항이 있을때는 DBMS를 사용하지 않는 것이 바람직 할 수 도 있음.

1.3 DBMS 발전 과정

데이터 모델

: 데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조, 연산자들, 무결성 제약조건들로 이루어진다. 각 데이터 모델은 공통된 목적을 가지고 있다. 데이터에대한 직관적인 뷰를 제공하는 동시에 이들간 사상을 제공 하는것이다.

  • 고수준 or 개념적 데이터 모델 : 데이터베이스의 전체적인 논리구조 명시 ex) ER:Entity-Relationship(엔티티-관계) 데이터 모델, 객체지향 데이터 모델

  • 표현(구현) 데이터 모델 ex) 계층 데이터 모델, 네트워크 데이터 모델, 관계데이터 모델

  • 저수준 or 물리적 데이터 모델 : 시스템이 인식하는 것과 가까움. 데이테베이스에 데이터가 어떻게 저장되는지 기술 ex) Unifying, ISAM,VSAM

일반적으로 데이터베이스 시스템은 적어도 두 개(물리적, 논리적)의 데이터 모델을 갖는다.

DBMS 발전 과정

  • 장점 : 빠른 속도와 높은 효율성

  • 단점 : 각각의 관계를 명시적으로 정의되어야 하며, 어떻게 데이터에 접근하는지 응용프로그램에 미리 정의 해야한다. 또한 레코드 구조와 응용프로그램 수정이 어려워 데이터 독립성이 매우 제한된다.

2.네트워크 DBMS

  • 단점 : 레코드 구조와 응용프로그램 수정이 어려워 데이터 독립성이 매우 제한된다. 또한 한번에 한개의 레코드를 검색할 수 있다.

3.관계 DBMS

  • 장점 : 모델이 간단하여 이해하기 쉽다.

4.객체지향 DBMS

  • 장점 : 데이터와 프로그램을 그룹화하고, 복잡한 객체들을 이해하기 쉬우며, 유지보수 용이.

5.객체관계 DBMS

1.4 DBMS 언어

  • 데이터 정의어(DDL : Data Definition Language) : DDL을 이용해 데이터베이스 스키마를 정의한다. DDL로 명시된 문장이 입력되면 DBMS는 스키마에 대한 명세를 시스템카탈로그 또는 데이터 사전에 저장한다. 시스템 카탈로그는 메타데이터(데이터에 관한 데이터)를 저장한다.

  • 데이터 조작어(DML : Data Manipulation Language) : DML을 사용해 데이터베이스 내의 원하는 데이터를 검색, 수정, 삽입, 삭제한다.

  • 데이터 제어어(DCL : Data Control Language) : DCL을 사용해 권한을 부여하거나 취소한다.

1.5 DBMS 사용자

1.6 ANSI / SPARC 아키텍처

  • 외부단계(External level) : 각 사용자의 뷰

    외부단계들은 동일한 데이터에 대한 서로 다른 표현들을 제공할 수 있다.

  • 개념단계(Conceptual level) : 사용자 공동체의 뷰

    데이터베이스에 어떤 데이터가 저장되어 있으며, 데이터간의 관계, 무결성 제약조건들이 명시되어 있는지를 기술. 즉, 전체 데이터베이스의 논리적인 구조를 기술

  • 내부단계(Internal level) : 물리적 또는 저장 뷰

    데이터베이스에 어떤 데이터가 어떻게 저장되어있는지 기술. 효율성을 가장 중요하게 고려한다.

  • 스키마 간의 사상

    • 외부 / 개념 사상 : 외부단계의 뷰를 사용해 입력된 사용자 질의를 개념 단계의 스키마를 사용한 질의로 변환

    • 개념 / 내부 사상 : 이를 다시 내부 단계 스키마로 변환해 디스크의 데이터베이스에 접근.

  • 데이터 독립성 : 상위 단계의 스키마 정의에 영향을 주지 않으면서 스키마 정의를 변경할 수 있음을 의미.

    • 논리적 데이터 독립성 : 개념스키마의 변화로부터 외부스키마가 영향으르 받지 않음을 의미

    • 물리적 데이터 독립성 : 내부스키마의 변화가 개념적 스키마에 영향을 미치지 않으며, 외부스키마에도 영향을 미치지 않음을 의미.

1.7 데이터베이스 시스템 아키텍처

  • 트랙잭션 관리자 : 동시성 제어, 회복

유형

Last updated