DBMS

강한친구·2021년 9월 10일
0

데이터베이스

목록 보기
2/14
post-custom-banner

이번시간에는 DBMS와 내부구조에 대해 알아보는 시간을 가졌다

DBMS

  • Database Management System
    파일 중심 데이터 처리 시스템

OS가 지원
1. 각 응용 프로그램이 논리적 파일 구조를 정의하고 직접 물리적 파일 구조로 구현 [File (이름, 주소 학번 등)]
2. 각 응용 프로그램은 물리적 데이터 구조에 대한 접근 방법을 구현해야 함
3. 각 사용자가 데이터와 이를 처리하는 프로그램을 모두 관리 유지
4. 응용 간의 데이터 공용이 불가능함
데이터의 종속성과 데이터의 중복성 문제가 야기됨

  • 데이터를 공유하거나 관리하기 위해서 Library를 만들어서 각각의 응용 프로그램이 공통된 라이브러리를 이용해서 데이터에 접근함. 형식을 통일해서 파일관리에 접근한다.

Data dependency 데이터 종속성

응용프로그램과 데이터 간 상호 의존관계
데이터의 구성밥법이나 접근 방법의 변경 시 관련 응용 프로그램도 동시 변경이 이루어 져야 하는데 이럴 경우 응용 프로그램 관리가 곤란해진다.

Data Redunancy 데이터 중복성

한 시스템 내에 같은 내용의 데이터가 여러 파일에 중복저장되어 관리

문제점

  • 일관성 -> 데이터가 많아져서 중복되고 일관성이 꺠지면서 정보가 소실됨
  • 보안성 -> 데이터가 늘어나면서 위험에 노출됨
  • 경제성 -> 한번 저장할걸 여러 번해서 경제성 문제
  • 무결성 -> 정확한 데이터(데이터의 무결성) 이 깨어지게 됨

이러한 문제들을 해결 하기 위해서 나온것이 바로 DBMS이다

DBMS: 응용프로그램들의 중제자로서 데이터를 공유할 수 있게 관리해주는 소프트웨어 시스템

DB의 필수기능

정의 기능

  • 하나의 저장 구조로 여러 사용자의 요구를 지원 할 수 있도록 데이터를 조직하는 기술.
    물리적 구조는 중요하지 않음, 논리적 구조를 보고 DBMS가 이해하고 데이터를 찾음
    이 구조를 사상구조 (mapping)이라 하는데 이것이 DBMS안에 있음

Locical Structure, Physical Structure, Locial/Physical mapping을 명세

조작 기능

Query language를 이용해서 데이터베이스에 질의함

  • 사용자와 데이터베이스간의 interface를 위한 수단
  • 검색, 갱신, 삽입, 삭제
  • 데이터 언어로 표현
  • 효율적인 처리
    Query language는 데이터 언어
    사용하기 쉽고 자연스러운 언어
    연산의 명세
    빠르고 효율적인 처리

제어 기능

  • 데이터의 정확성과 보안성을 유지하는 기능

제어기능의 조건

  • 무결성 유지, 보안, 권한 검사, 병행수행 제어, 복구

DBMS의 장단점

  • 데이터 중복 최소화
  • 데이터의 공용
  • 일관성 유지
  • 무결성 유지
  • 보안 보장
  • 표준화 용이
  • 기관 전체 데이터 요구의 조정

단점

  • 운영비 증대 -> 정보시스템이 없는것보단 돈이 들지만 없을 수는 없다
  • 특정 응용 프로그램의 복잡화
  • 복잡한 백업과 회복
  • 시스템의 취약성 -> 대부분 관리실수를 통해서 자주 뚫림

데이터 구조간의 사상과 데이터 독립성

궁극적 목적

데이터 독립성

논리적 데이터 독립성

논리적구조의 변경에 응용프로그램이 영향을 받지 않음, 논리적 구조를 사상하는곳에서 변경을 기록해두면 다시 mapping을 통해 논리적 구조의 변경이 이루어지더라도 응용프로그램은 변경할 필요가 없다. 따라서, 응용프로그램의 효율적 개발 가능

물리적 데이터 독립성

물리적 구조가 변경이 되더라도 응용프로그램은 영향을 받지 않음, 물리적 변경으로부터도 독립적으로 존재 할 수 있다
이는 물리적 구조를 사상하는 물리적 구조 사상이 DBMS안에 있기때문. 저장장치가 계속 바뀌어 나가도 문제없어서 저장장치의 효율적 개발이 가능 하지만 파일구조에서는 물리적 구조의 변경은 모든 응용 프로그램을 바꿔야함을 의미함

DBMS의 역사

1세대 DMBS

General Electric과 IBM에서 제시
IDS라는 최조의 범용 DBMS를 개발함
네트워크 데이터 모델의 기초 노드와 노드간을 엣지로 연결한 것

Infornation Management System
1960 후반 IBM이 개발
1970에는 대형 컴퓨터 회사들이 DBMS를 자체 제작 판매

2세대 DBMS

관계 데이터 모델 (Relational Database)
SQL을 사용

  • 비 절차적 언어 : 어떤것을 하라는 것은 있는데 어떻게 찾아라 라는 내용은 없음

  • 절차적 언어 : 어떻게 찾아라 하는 절차를 다 기술해서 명령을 내리는 언어

  • IBM이 관계 DMBS의 일부로 개발

  • 세계 표준 DB Language

주요 상용 DBMS
오픈소스
PC기반 DBMS

제 3세대 DBMS

사용자의 DB응용에 대한 복잡성 증대
사용자의 요구에 대처하기 위한 새로운 Data Model을 기반으로 시스템 개발

  • OODBMS (Object Oriented DBMS)
  • OOLanguage 에 기반
    현재는 2세대 + 3세대 DBMS
  • ORDBMS (Object-Relational DBMS)
    Ex) Oracle

스키마 (Schema)

  • DB의 구조(개체, 관계) 명세 (학생 (이름 학번 학과))
  • 제약조건(constraints) 명세
    3단계 DB구조에 기반
    외부 스키마 – 학적, 학생을 포함, 사용자의 관점
    개념 스키마 – 범 기관적 관점에서 데이터를 정의함
    내부 스키마

외부스키마 n을 가지고 접근하면 이것은 개념스키마로 사상되어야 함.

Why? 외부스키마는 내부에 존재하는 것이 아니라 외부에 가상적으로 존재하는것이기 때문.

개념스키마는 실제적으로 디스크에 기록된 내부 스키마로 변환도어 개념 / 내부 사상을 거쳐야 함 (저장인터페이스)

외부스키마 <외부단계
----- 외부 개념 사상 (응용인터페이스)
개념스키마 < 개념단계
---- 개념/내부 사상(저장 인터페이스)
내부스키마 < 내부 단계
저장DB

카탈로그

  • 안에 들어있는 Data는 Meta Data, 즉 Data 의 Data
  • 시스템 내의 모든 객체들에 대한 정의(definition)나 명세(specification)에 대한 정보를수록
  • 시스템DB, Meta Database
  • DBAdmin이 사용하는 도구
  • 사용자와 시스템 모두가 사용함
    Data Dictionary라고 함

데이터 디렉로리

  • DB에 저장된 데이터를 참조하는데 필요한 정보를 수록
  • 시스템만 사용

DBMS의 연산

DBMS는 DataBase를 관리하고 사용자가 요구하는 모든 연산
수행

  1. 사용자의 Access Request를 접수/ 분석
  2. 시스템이 이해할 수 있는 형태로 사용자 요구를 Transfrom
  3. 외부/개념/내부.저장구조간의 사상(mapping)을 수행하여 저장 데이터를 접근
  4. 저장 DB에 접근하기 위하여 필요한 연산을 수행

작동구조

SQL – DB에 질의하는 언어
질의처리기가 이 질문을 DB내부구조로 바꾸고 런타임 DB처리기로 보냄
그리고 저장DB, catalog 접근하면서 질의 해결

C, java 같은 언어로 응용 프로그램 만들면 DML 예비 컴파일러와 DML 컴파일러가 컴파일하고 런타임 DB처리기에서 처리함

Data Definition Language DDL

  • 데이터베이스 구조 (Scehma) 구조를 정의하고 변경 하는데 적용
  • 데이터 정의의 내용
  • 논리적 데이터 구조 정의
    • 스키마, 외부 스키마 명세
  • 물리적 데이터 구조의 정의
    • 내부 스키마 명세
  • DSDL(데이터 저장 정의어)
    • 논리적 데이터 구조와 물리적 데이터 구조간의 사상을 정의

절차적 / 비절차적 언어

절차적(procedural) DML

  • 일의 순서를 모두 알려주고 그 순서대로 작업하게 하는 언어
    • 저급 데이터 언어(low-level data language)
    • WHAT과 HOW를 명세
    • 한번에 하나의 레코드만 처리(one record ata time)
    • 응용 프로그램 속에 삽입(embedded)되어 사용
    • DML 예비 컴파일러(precompiler)에 의해 처리

비절차적 (non-procedural) DML

  • 목표만 지정하고 과정은 알아서 처리하도록 하는 언어
    • 고급 데이터 언어(high-level data language)
    • “WHAT” 만 명세(declarative)하고 “HOW”는 시스템에 위임
    • 한번에 여러 개의 레코드를 처리(set of records at a time)
    • 질의어 (Query Language)
    •독자적이고 대화식 : command 타입
    •프로그램의 추상적 표현

데이터 부속어 (DSL: Data Sublanguage)

Host Program속에 삽입되어 사용되는 DML
비절차적 혹은 절차적

  • 데이터 언어의 완전성
    사용자가 원하면 어떤객체도 추출 할 수 있고, 관계도 표현 할 수 있는 능력

Data control Language 데이터 제어어

공용 DB관리를 위한 데이터 제어를 정의하고 기술
보안, 무결성, 회복, 병렬, 수행
DB관리 목적으로 DB Admin이 사용

사용자

데이타베이스를 이용하기 위해 접근하는 사람

일반 사용자(end user)

• 비절차적 DML을 통해서 데이타베이스를 접근
• menu, form, graphics
• 데이터의 insertion, deletion, update, retrieval

응용 프로그래머 (application programmer)

• 응용 프로그램(host 언어 + DML(DSL))을 통해서 DB를 접근
• host 언어: PL/I, COBOL, PASCAL, C, Java

DB 관리자 (DBA : database administrator)

• DDL과 DCL을 통해 DB를 정의하고 제어하는 사람
• DB 시스템의 관리, 운영에 대한 모든 책임을 지는 사람
• DB 설계와 운영
• DB의 구성요소(components)를 결정
• 스키마 정의
• 저장 구조와 접근 방법 설정
• 보안 정책 수립, 권한부여, 유효성 검사
• 백업(backup), 회복(recovery) 절차의 수립
• DB의 무결성 유지
• 성능 향상과 새로운 요구에 대응한 DB의 재구성
• Catalog의 유지 관리

• 행정 및 불평 해결
• 데이터의 표현과 시스템의 문서화에 표준 설정
• 사용자의 요구 및 불평 해결

• 시스템 감시(monitoring) 및 성능 분석
• 시스템 성능의 청취
• 자원의 이용도, 병목현상(bottleneck), 장비 성능 등
• 사용자 요구의 변화, 데이터 사용 추세, 각종 통계의 종합 분석

post-custom-banner

0개의 댓글