[DB2(1)]데이터베이스 개요

이유정·2024년 5월 5일
0

데이터베이스

목록 보기
14/25

목차

  • 데이터베이스의 기본 개념
  • 데이터베이스 관리 시스템
  • 데이터베이스 시스템

데이터베이스의 기본 개념

1. 데이터베이스의 필요성

1) 데이터와 정보

데이터

  • 현실 세계에서 단순히 관찰하거나 측정해 수집한 사실이나 값
    정보
  • 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과
  • 필요한 사람에게, 필요한 때에, 필요한 형태로!
    ex) 원유 (데이터) => 우유, 치즈, 버터 (정보)

2) 정보 시스템과 데이터베이스

정보 시스템

  • 조직운영에 필요한 데이터를 수집하고 저장하고 가공해서 필요로 할 때 제공되는 정보를 만들어주는 시스템
    데이터베이스
  • 정보 시스템에서 사용하는 데이터를 저장해뒀다가 필요할 때 제공할 수 있는 형태로 관리하는 것.

2. 데이터베이스의 정의와 특성

1) 데이터베이스 정의

특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장운영 데이터의 집합

  • 공유 데이터 : 여러명의 사용자들이 공유할 수 잇는 데이터 집합
  • 통합 데이터 : 데이터를 통합해서 중복을 최소화하고 일관되게 함.
  • 저장 데이터 : 컴퓨터 시스템이 access 할 수 있는 매체에 저장되어 있음.
  • 운영 데이터 : 특정 기능을 수행하기 위해서 지속적으로 사용될 수 있는 운영 data.

2) 데이터베이스 특성

  • 실시간 접근: 여러명의 사용자가 요청을 했을 때 실시간으로 응답을 한다.
  • 동시 공유: 여러 프로그램들이 하나의 데이터 베이스를 공유한다.
  • 계속 변화: 계속 변화하는 데이터다.(삽입, 삭제, 갱신)
  • 내용 기반 참조: '홍길동' 내용 기반으로 하나의 단위처럼 결과 set을 얻을 수 있다.

데이터베이스 관리 시스템

데이터베이스 관리 시스템: 데이터베이스를 관리하는 시스템
데이터베이스는 (우리가 살펴본...) 특징을 가지고 있는 데이터의 집합이다. 그 특성을 유지하게끔 서비스를 제공하는 것이 데이터베이스 관리 시스템임.

데이터베이스 관리 시스템의 등장 배경

파일시스템

: 데이터를 파일로 관리하기 위해 파일을 생성, 수정, 검색, 삭제하는 기능 제공하는 소프트웨어

  • 응용프로그램마다 필요한 데이터를 별도의 파일로 운용함.
    ex) 고객 관리 응용 프로그램

ex) 주문 관리 응용 프로그램

  • 주문한 고객 관련 정보가 중복적으로 들어가있음

파일시스템 문제점

  • 같은 내용의 데이터가 여러 파일에 중복 저장
    • 데이터 중복성
    • 저장 공간의 낭비
    • 데이터의 일관성과 데이터의 무결성(결함이 없는것)도 유지하기 어려움
  • 응용 프로그램이 데이터 파일에 종속적임
    • 데이터 파일 구조만 바껴도 응용 프로그램에서 데이터를 가져오기 어려움. 코드를 바꿔야함.
  • 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족
    • 보안: 해당 파일 access 권한은 설정할 수 있지만 파일 내 필드당 접근 권한 설정은 못함.
  • 응용 프로그램 개발이 쉽지 않음.

데이터베이스 관리 시스템의 정의

  • DBMS(DataBase Management System)
    ex) Mysql, sqlLight
  • 파일 시스템에 대한 문제점을 해결하기 위해 제시된 소프트웨어
  • 조직에 필요한 데이터를 데이터베이스 에 통합하여 저장하고 공유한다.

데이터베이스 관리 시스템 주요 기능

  1. 정의 기능 : 데이터베이스에 관한 구조를 정의, 수정, 삭제하는 기능
  2. 조작 기능 : 데이터를 삽입, 삭제, 수정, 검색에 관한 연산 작업 수행
  3. 제어 기능 : 데이터를 동시 여러명의 사용자가 접속하다가 오류가 발생해도 회복할 수 있는 기법 제공

데이터베이스 관리 시스템의 장단점

장점)

  • 데이터 중복을 통제
    : 허용된 중복만 가능하다.
  • 데이터의 독립성 확보
    : 데이터가 바뀌어도(필드가 바뀌어도) 프로그램을 바꿀 필요가 없음
  • 데이터 동시 공유 가능
  • 데이터 보안 향상
    : 접근 권한에 따라 access 하는 data가 달라짐
  • 데이터 무결성
    : 데이터의 일관성이 유지되다보니, 서로 오류가 없는 데이터 유지, 데이터가 중복이 없이 유지되다 보니 password 정책이 바뀌었을 때 모든 해당되는 password 정책이 바뀐다.
  • 표준화할 수 있다.
  • 장애 발생 시 회복이 가능
  • 응용 프로그램 개발 비용이 줄어든다.

단점)

  • 비용이 많이 든다.
  • 백업과 회복 방법이 복잡하다.
  • 중앙 집중 관리로 인한 취약점이 존재한다.

데이터베이스 관리 시스템의 발전 과정

1세대: 네트워크 DBMS, 계층 DBMS (1960년대 등장 )

1) 네트워크 DBMS: 데이터베이스를 그래프 형태로 구성

  • 노드와 간선으로 표현
    • 데이터 구조 변경이 어려움
      2) 계층 DBMS: 데이터베이스를 트리 형태로 구성
  • 부모 자식 간 관계로 데이터를 표현
    • 데이터 구조 변경 어려움

2세대: 관계형 데이터베이스

데이터 구조를 테이블 형태로 관리

  • 우리가 사용하고 있는 대다수의 데이터베이스 관리 시스템이다.

3세대: 객체지향 DBMS, 객체관계 DBMS

객체 자체 형태로다가 데이터베이스에 저장할 수 없을까? => 등장 !

1) 객체지향 DBMS : 객체를 이용해 데이터베이스 구성
2) 객체관계 DBMS : 객체 DBMS + 관계 DBMS (2세대 + 3세대)

  • 현재 대부분의 DB 관리 시스템들이 사용
  • 객체 자체를 DB 저장, 테이블 형태로도 DB 저장

데이터베이스 시스템

데이터베이스 시스템의 정의

: 데이터베이스에 데이터를 저장하고 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템

  • 데이터베이스 관리 시스템보다 더 포괄적

따라서, 데이터베이스 시스템을 구축한다는 것은,
: 데이터베이스를 기반으로 특정 정보를 생성하기 위한 모든 체계

데이터베이스의 구조

스키마와 인스턴스

스키마: 데이터베이스에 저장되는 데이터 구조, 제약 조건들이 명시된 것.

"고객" 이라는 "스키마"는 자료구조로 고객번호, 이름, 나이, 주소에 해당하는 것을 가지고 있어. 고객번호는 int 형으로 정수에 해당하는 것만 들어올 수 있어. 얘는 중복되면 안돼. 와 같은 구조와 제약사항 명시된 것 => 스키마

인스턴스: 스키마에 따라 데이터베이스에 저장된 값.

데이터베이스 구조를 짠다?
: 스키마 설계를 한다는 뜻과 일치함.

3단계 데이터베이스 구조

  • 외부 단계 : 개별 사용자 관점에서 데이터를 이해하고 표현하는 단계. 외부 스키마(=sub schema라고도 함)라고 한다.
    • 하나의 db여도 외부 스키마는 다양할 수 있음
      • 응용프로그램마다 스키마 구조는 다 다를 수 있다. 필요로 하는 data가 다 다르니까.
  • 개념 단계 : 조직 전체의 관점에서 데이터를 바라보는 단계.
    • 개념 스키마
      • 데이터베이스 전체의 논리적 구조를 정의 (ex) 스키마 설계 해야돼 ~ 할 때 대부분 개념 스키마를 나타냄)
      • 전체 db에 어떤 data가 저장되는지, 데이터들이 어떻게 존재하고 어떤 제약조건이 존재하는지에 대한 정의 뿐만 아니라 보안 정책이나 접근 권한에 대한 정의도 포함.
  • 내부 단계 : 물리적인 저장 장치의 관점
    • 내부 스키마
    • 어떤 파일 조직으로 저장할 거고, 어떤 색인을 이용해서 data에 접근하도록 지원할 것인지등 관한것을 명시.

이 세가지의 스키마는 대응관계이다.

스키마 사이의 대응 관계

  • 외부/개념 사상: 외부 스키마와 개념 스키마의 대응 관계
    • 외부 단계의 뷰를 사용해서 입력된 사용자의 질의를 개념 단계의 스키마를 사용자 질의로 변환. 응용 인터페이스(application interface)라고도 함
  • 개념/내부 사상: 개념 스키마와 내부 스키마의 대응 관계
    • 내부 단계의 스키마로 변환하여 디스크의 데이터베이스를 접근하게 함
    • 저장 인터페이스(storage interface)라고도 함.

데이터의 독립성

데이터베이스 구조를 3단계로 나눠서 스키마를 제공하는 이유는 데이터의 독립성을 실현하기 위한 방식임.

하위 스키마를 변경하더라도 상위 스키마는 영향을 받지 않음.

  • 논리적 데이터 독립성
    : 개념 스키마가 변경되어도 외부 스키마에 영향이 미치지 않음
  • 물리적 데이터 독립성
    : 안에 내부 스키마를 변경해도 개념 스키마에 해당하는 구조는 영향을 미치지 않는다.

3단계 데이터베이스 구조를 통해서 논리적으로다가 독립될 수 있고, 물리적으로다가도 독립될 수 있다.

데이터 사전

스키마의 3단계 형태 정보는 시스템 카탈로그에 저장되어 있음.

  • 우리가 저장한 스키마 정보가 있음.
  • 데이터 사전이라고도 함.
  • 정의어로 db를 조작할 때 이 정보는 시스템 카탈로그에 저장됨
  • 데이터베이스 시스템에서 운영하기 위해서 필요로 하는 파일임.
  • 마음대로 수정 x , 조회는 가능

데이터베이스에 저장되는 데이터에 관한 정보, 즉 메타 유지하는 시스템 데이터베이스

  • 메타 데이터 : 데이터에 대한 데이터

스키마, 사상정보, 다양한 제약조건 등을 저장

데이터베이스 관리 시스템이 스스로 생성하고 유지

데이터 디렉토리

: 실제로 데이터 파일 위치정보를 저장하고 있음

  • 접근할 수 없음.

우리가 일반적으로 사용하는 데이터베이스를 데이터베이스라고 부르지만,
시스템에서 사용하는 데이터베이스는 (System Database) 시스템 데이터베이스다.

  • 시스템 운영을 위해 필요한 데이터임.

우리가 실제로 구축해서 사용자가 사용하는 데이터
: 사용자 데이터베이스 (User Database)

데이터베이스 사용자

: 데이터베이스를 이용하기 위해 접근하는 모든 사람

  • 이용 목적에 따라 데이터베이스 관리자, 최종 사용자, 응용 프로그래머로 구분

    1) 데이터베이스 관리자: 데이터베이스 시스템을 운영하는 역할 담당.
    2) 최종 사용자(일반 사용자): 데이터베이스를 조작하는 언어 사용.
    3) 응용 프로그래머: 데이터베이스 응용 프로그램을 작성하는 사람들.

데이터 언어

  • 사용자와 데이터베이스 관리 시스템 간의 통신 수단
  • 사용 목적에 따라 구분
    • 1) 데이터 정의어 : 스키마를 정의하고, 변경, 삭제할 때 사용하는 언어
    • 2) 데이터 조작어 : 삽입, 삭제, 검색, 수정 수행하는 언어
    • 3) 데이터 제어어 : 데이터를 제어하기 위해 권한을 주거나, 동시 공유 할 때 명령들

데이터 정의어(DDL) => 시스템 카탈로그에 변경 사항 반영
데이터 조작어(DML) => 데이터베이스에 영향

  • 1) 절차적인 데이터 조작어
    • 목적지까지 가기위한 경로를 다 명시
      • 데이터베이스에 접속, 접근하기 위해서 사용되는 연산들을 쭉 나열해서 접근하는 언어.
  • 2) 비절차적인 데이터 조작어
    • 선언만 하면됨.
      • '홍길동'찾아

데이터 제어어
: 내부적으로 필요한 규칙이나 기법을 정의하기 위한 언어.

  • 사용목적
    • 무결성 : 정확하고 유효한 데이터만 유지
    • 보안 : 허가받지 않은 사용자의 데이터 접근 차단, 허가된
    • 회복 : 장애가 발생해도 데이터 일관성 유지
    • 동시성 제어 : 동시 공유 지원
      사용자가 많아지면서 점점 데이터 제어어가 중요해지고 있음.

데이터베이스 관리 시스템의 구성

데이터베이스 관리 시스템: 데이터베이스를 운영하고 관리하는 sw

  • 데이터 베이스 시스템의 요소 중 하나다.

데이터베이스 관리 시스템의 구성

  • 저장 관리
  • 질의 처리
profile
강의 기록 블로그

0개의 댓글