DataBase System

2022. 10. 6. 13:15DataBase

 

데이터베이스는 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아  구조적으로 통합해 놓은 것

 

데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값

정보 : 데이터에 의미를 부여한 것

지식 : 사물이나 현상에 대한 이해 

 

 

데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행한다.

여기서 변경이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업을 말한다. 이러한 검색과 변경의 빈도에 따라 시스템 구축의 난이도가 결정된다.

검색과 변경 빈도에 따른 데이터베이스 유형을 알아보자

유형 검색빈도 변경 빈도 데이터베이스 예 특징
유형1 적다 적다 공룡 데이터베이스 - 검색이 많지 않아 데이터베이스를 구축할 필요가 없음
-보존가치가 있는 경우에 구축
유형2 많다 적다 도서 데이터베이스 - 사용자 수 보통
- 검색은 많지만 데이터에 대한 변경은 적음
유형3 적다 많다 비행기 예약 데이터 베이스 - 예약 변경/취소 등 데이터 변경은 많지만 검색은 적음
- 실시간 검색 및 변경이 중요함
유형4 많다 많다 증권 데이터베이스 - 사용자 수 많음
- 검색도 많으며 거래로 인한 변경도 많음
 
데이터베이스의 개념
  1. 통합된 데이터
    • 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터를 의미한다. 통합 시 중요한 점은 각자 사용하던 데이터의 중복을 최소화함으로써 중복 저장으로 인한 데이터 불일치 현상을 없애는 것이다.
  2. 저장된 데이터
    • 문서로 보관된 데이터가 아닌 디스크, 테이프와 같은 컴퓨터 저장장치에 저장된 데이터를 의미한다.
    • 사람의 눈으로 직접 볼 수는 없지만 컴퓨터 프로그램을 이용하여 디스플레이화 하거나 인쇄물로 출력할 수 있다.
  3. 운영 데이터
    • 조직의 목적을 위해 사용되는 데이터를 의미한다.
    • 업무를 위해 검색을 할 목적으로 저장된 데이터를 말하며 조직의 목적과 관게없이 저장된 데이터나 단순 입출력 데이터같이 임시로 저장된 데이터는 운영 데이터에 속하지 않는다.
  4. 공용 데이터
    • 한 사람 또는 한 업무를 위해 사용되는 데이터가 아닌 공동으로 사용되는 데이터를 의미한다.
    • 데이터는 어느 순간이라도 둘 이상의 프로그램 또는 여러 사람이 동시에 사용할 수 있다.

 

즉 데이터베이스는 운영 데이터를 통합하여 저장하며, 공용으로 사용된다

이러한 데이터베이스의 특징은 다음과 같이 네가지로 설명할 수 있다.

 

데이터베이스의 특징
  • 실시간 접근성 : 데이터베이스는 실시간 서비스 된다. 사용자가 데이터를 요청하면 며칠 뒤에 결과를 전송하는 것이 아닌 짧은 시간안에 결과를 서비스 한다. 여기서 실시간이란 사용자가 요청하는 순간에 데이터를 서비스하는 것을 말함
  • 계속적인 변화 : 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터의 값은 시간에 따라 항상 바뀐다. [삽입, 삭제, 수정] 등의 작업으로 바뀐 데이터 값을 저장한다.
  • 동시 공유 : 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 동시는 병행이라고도 하며, 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 여러개 있다는 의미이다.
  • 내용에 따른 참조 : 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다. 사용자가 원하는 데이터를 얻기 위해 데이터 값을 사용하여 조건을 제시하면 데이터베이스는 이에 해당하는 데이터를 검색해준다.
데이터베이스 시스템의 구성
  • DBMS : DataBase Management System 의 약자로 사용자와 데이터베이스를 연결시켜주는 소프트웨어로 주기억장치에 상주한다
  • DataBase : 데이터를 모아둔 토대를 말하며 물리적으로는 컴퓨터 내부 하드디스크에 저장된다
  • Data Model : 데이터가 저장되는 기법에 관한 내용으로 눈에 보이지 않는 논리적인 개념이다.
정보 시스템의 발전

파일 시스템

  • 데이터를 파일 단위로 파일 서버에 저장
  • 각 컴퓨터는 근거리 통신망(이하 LAN)을 통해 파일 서버에 연결, 파일 서버에 저장된 데이터를 사용하기 위해 각 컴퓨터의 응용 프로그램에서 열기/닫기를 요청
  • 각 응용 프로그램이 독립적으로 파일을 다루기에 데이터 중복 가능성이 있음
  • 또한 동시에 파일을 다루기에 일관성이 훼손될 수 있음

 

데이터베이스 시스템

  • DBMS를 도입해 데이터를 통합 관리하는 시스템
  • DBMS가 설치되어 데이터를 가진 쪽을 서버, 외부에서 데이터 요청하는 쪽을 클라이언트라고 한다
  • DBMS서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
  • 데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지함

웹 데이터베이스 시스템

  • 데이터베이스를 웹 브라우저에 사용할 수 있도록 서비스하는 시스템
  • 불특정 다수 고객을 상대로 하는 온라인 상거래나 공공 민원 서비스 등에 사용됨

분산 데이터베이스 시스템

  • 여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
  • 대규모의 응용시스템에 사용됨

 

파일 시스템과 DBMS 비교

DBMS는 파일 시스템에 비해 CPU와 주기억 장치 등 컴퓨터의 자원을 많이 사용하지만 SQL언어를 사용하여 응용프로그램이 데이터에 쉽게 접근할 수 있다.

 

파일 시스템으로 구축된 응용 프로그램은 데이터가 저장될 파일을 정의하고 직접 관리한다.

따라서 프로그램 개발 시 파일을 다루어야 하는 부담이 있다.

또 파일에 저장된 데이터를 서로 공유하지 않기 때문에 데이터가 중복 저장될 위험이 있다.

데이터가 중복 저장이 되면 데이터를 이중으로 관리하여 데이터의 일관성 유지가 어려워질 수 있다

 

반면 DBMS로 구축된 응용 프로그램은 프로그램 개발 생산성이 높다. 데이터베이스 정의시 DBMS의 경우 다룰 정보를 한번만 정의하여 공유하기 때문에 데이터의 일관성을 유지할 수 있으며 응용 프로그램 입장에서는 데이터의 정의와 관리를 맡기지 않아 데이터 구조 변경으로부터 독립성을 유지할 수 있다. 또한 DBMS는 스스로 데이터를 복구하며 보안을 유지하는 기능도 갖고 있다.

 

DBMS의 장점
구분 파일 시스템 DBMS
데이터 중복 데이터를 파일 단위로 저장하므로 중복 가능성이 높음 DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성이 낮음
데이터 일관성 데이터의 중복 저장으로 일관성이 결여됨 중복 제거로 데이터의 일관성이 유지됨
데이터 독립성 데이터 정의와 프로그램의 독립성 유지 불가능 데이터 정의와 프로그램의 독립성 유지 가능
관리 기능 보통 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능
등을 수행함
프로그램 개발 생산성 나쁨 짧은 시간에 큰 프로그램을 개발할 수 있음
기타 장점 별도의 소프트웨어 설치가 필요 없음 데이터 무결성 유지, 데이터 표준 준수 용이

 

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

 

데이터베이스 언어

데이터베이스 시스템은 데이터베이스 전용 언어인 SQL을 사용한다.

 

SQL의 구성

  • 데이터 정의어 : CREATE, ALTER, DROP문과 같은 DBMS에 저장된 테이블 구조를 정의
  • 데이터 조작어 : SELECT, INSERT, DELETE, UPDATE문과 같이 데이터를 검색, 삽입, 삭제, 수정 하는데 사용
  • 데이터 제어어 : GRANT, REVOKE문과 같이 데이터의 사용 권한을 관리

 

SQL의 핵심은 데이터 조작어 중 데이터를 검색하는 질의문이다.

질의문은 SELECT - FROM - WHERE 구조로 되어 있다.

 

데이터베이스 사용자

데이터베이스 시스템을 사용하는 사람은 일반 사용자, 응용 프로그래머, SQL 사용자, 데이터베이스 관리자로 구분한다.

 

  • 응용 프로그래머 : 데이터베이스를 이용하여 문제를 해결하는 프로그램을 작성하는 사람
    • 자바, c, JSP 등의 언어와 SQL을 사용하여 일반 사용자를 위한 인터페이스와 데이터를 관리하는 응용로직을 개발하기도 하며 데이터베이스 프로그래머라고 하기도 한다.
  • 일반 사용자 : 응용 프로그래머가 작성한 프로그램을 이용하는 사람
    • 은행의 창구 혹은 관공서의 민원 접수 등 데이터를 다루는 업무를 하는 사람이며 특별한 지식 없이 데이터베이스에 접근하여 데이터의 검색, 삽입, 삭제, 수정 작업을 한다
  • SQL 사용자 : SQL 질의를 작성하거나 SQL을 이용하여 프로그램을 작성하는 사람
    • SQL을 사용하여 업무를 처리하는 IT 부서의 담당자이며 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리한다. 주로 데이터 검색, 데이터 구조 변경, 데이터에 관한 통계처리 등 데이터를 모니터링 하는 업무를 하거나 보고서 형태로 만들어 상부에 보고하는 업무를 한다
  • 데이터베이스 관리자 : DBA라고 하기도 하며 조직의 데이터베이스 운영을 총괄하는 사람이다
    • DBA는 데이터 설계, 구현, 유지보수의 전 과정을 담당한다. 또한 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등 제반 업무를 맡는다

 

DBMS

사용자와 데이터베이스를 연결시켜주는 소프트웨어 DBMS

주기억장치에 저장된 DBMS는 SQL을 번역하는 DML/DDL 컴파일러와 응용 프로그램에 삽입된 SQL을 번역하는 Embedded DML 컴파일러로 구성되어 있으며, 번역된 SQL을 처리하는 알고리즘인 질의처리기가 있다.

하드디스크에 저장된 데이터베이스는 데이터 파일을 포함하여 데이터에 빠르게 접근하기 위한 인덱스, 데이터에 대한 정보를 저장하는 데이터 사전 등을 저장하고 있다.

DBMS는 이들 데이터에 접근하여 사용자의 질의를 처리한다.

 

현재 관계 데이터 모델이 가장 많이 사용되며 이는 데이터들의 관계를 테이블 형태로 표현하여 사용자가 데이터에 접근하기 쉽게 한다.

 

아래는 DBMS가 데이터베이스 사용자와의 상호작용을 통해 수행하는 기능을 정리한 표이다.

기능 설명
데이터 정의(Definition) 데이터 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
데이터 조작(Manipulation) 데이터를 조작하는 소프트웨어가 요청하는 데이터의 검색, 삽입, 삭제, 수정 작업을 지원
데이터 추출(Retrieval) 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출
데이터 제어(Control)  데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어
백업과 회복, 동시성 제어 등의 기능을 지원

 

데이터 모델

데이터 모델은 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것이다

데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정하는데 가장 많이 사용되는 것은 관계 데이터 모델이다.

  • 포인터 사용 : 계층 데이터 모델, 네트워크 데이터 모델

  • 속성 값 사용 : 관계 데이터 모델

  • 객체식별자 사용 : 객체 데이터 모델

 

데이터 모델과 각 모델에서 관계의 표현 방법

 

데이터 모델의 역사

데이터 모델 1960
년대
1970
년대
1980
년대
1990
년대
2000
년대
2010
년대
제품 종류
계층 데이터 모델
IMS(IBM)



네트워크 데이터 모델
IDS(GE)



관계 데이터 모델
Oracle(Oracle), System R(IBM)


객체 데이터 모델
GemStone, ObejectStore




객체-관계 데이터 모델
UniSQL




 

데이터베이스의 개념적 구조

  • 외부 단계
    • 일반 사용자나 응용프로그래머가 접근하는 계층
    • 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미
    • 외부 스키마가 여러개 존재할 수 있으며 이는 서브 스키마 라고 하기도 하며 뷰의 개념이다
    • 예시로 학생의 학생 정보, 교무처의 수강 정보 등은 전체 데이터베이스의 일부분으로 각 부서의 사용자들에게만 필요한 각각의 스키마라고 할 수 있다.
  • 개념 단계 
    • 데이터베이스 전체의 정의를 의미한다. 통합 조직별로 하나만 존재하며 DBA가 관리한다.
    • 하나의 데이터베이스에는 하나의 개념 스키마가 있다.
    • 개념 스키마는 저장장치에 독립적으로 기술되며, 데이터와 관계, 제약사항, 무결성에 대한 내용이 포함됨
    • 예시로 학생 정보, 수강 정보등이 모두 모인 대학 전체 데이터베이스를 의미한다
  • 내부 단계
    • 물리적인 저장장치에 데이터베이스가 실제로 저장되는 방법을 표현
    • 내부 스키마는 하나이며 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함 된다
    • 예시로 전체 데이터베이스가 실제 하드디스크에 저장되는 물리적인 구조를 의미한다.
      • DBMS는 매핑을 통해 각 단계간 대응 관계를 정의한다.
      • 매핑은 개념스키마의 어느 부분이 외부 스키마가 되는지 혹은 어떤 물리적인 표현을 통해 내부 스키마가 되는지에 따라 두가지로 분류된다
        • 외부/개념 매핑 : 사용자의 외부 스키마와 개념 스키마 간의 매핑으로 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킨다.
        • 개념/내부 매핑 : 개념 스키마의 데이터가 내부 스키마의 물리적 장치에 어떤 방법으로 저장되는 대응 시킨다.

 

데이터 독립성

3단계 데이터베이스 구조의 특징은 데이터 독립성이다. 이는 하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것이다.

일반 사용자는 사용자별로 외부 스키마가 있고 , DBA는 일반 사용자의 외부 스키마에 영향을 주지 않고 개념 스키마나 내부 스키마의 물리적인 저장 방법을 바꿀 수 있다.

 

데이터 독립성 두가지

  • 논리적 데이터 독립성 : 외부 단계와 개념 단계 사이의 독립성으로 개념 스키마가 변경 되어도 외부 스키마에는 영향을 미치지 않도록 지원한다. 논리 구조가 변경 되어도 실제 응용 프로그램에는 영향이 없도록 하는 것이다.
    예를 들어 개념 스키마의 테이블을 생성하거나 변경해도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없다
  • 물리적 데이터 독립성 : 개념 단계와 내부 단계 사이의 독립성으로 저장장치 구조 변경과 같이 내부 스키마가 변경 되어도 개념 스키마에는 영향을 미치지 않도록 지원한다.
    예를 들어 성능 개선을 위해 물리적 저장장치를 재구성할 경우 개념 스키마나 응용프로그램 같은 외부 스키마에 영향이 없다. 물리적 독립성은 논리적 독립성보다 구현하기 쉽다.

 

'DataBase' 카테고리의 다른 글

SQL 4주차  (0) 2023.04.08
SQL 3주차  (0) 2023.04.05
SQL 2주차  (0) 2023.03.21
DataBase - Relation Data Model  (0) 2022.10.12
Mysql 설치 / Data Base  (2) 2022.09.16