Pv_log

1. 데이터베이스 시스템 본문

Develop Study/Database (ORACLE)

1. 데이터베이스 시스템

Priv 2022. 3. 10. 23:44


 

 

1. 데이터, 정보, 지식

데이터가 모이면 정보가 되고, 정보가 모이면 지식이 된다.

  • 데이터(data)란, 관찰의 결과로 나타난 정량적/정성적인 실제 값을 말한다. (Ex. 에베레스트 산의 높이)
  • 정보(information)란, 의미가 있는 데이터(데이터에 의미를 부여한 것)를 말한다. (Ex. 에베레스트 산의 지리적 특성)
  • 지식(knowledge)이란, 사물과 현상에 대한 이해를 말한다. (Ex. 에베레스트 등반 방법)

즉, 데이터에 의미를 부여하면 정보가 되고, 정보를 기반으로 사물과 현상에 대한 이해를 달성하면 지식이 된다.

 


 

2. 데이터베이스 (Database)

데이터베이스는 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하기 위해 사용한다.

즉, 데이터베이스란, 조직(organization)에서 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합한 것을 의미한다.

 

2.1) 데이터베이스 개념

통합된 데이터 (integrated Data)

  • 개별적으로 운영되던 데이터를 통합하여 하나로 저장한 데이터를 의미한다.
  • 각각의 시스템에서 사용하고 있던 데이터들의 중복을 최소화해야 한다. (중복으로 인해 발생할 수 있는 데이터 불일치 현상 제거)

저장된 데이터 (Stored Data)

  • 문서로 보관하지 않고, 디스크나 테이프처럼 컴퓨터 저장 창지에 저장한 데이터를 의미한다.
  • 저장 장치의 종류는 중요하지 않으며, 컴퓨터에서 데이터를 읽어드릴 수 있는 방식으로 저장해야 한다.

운영 데이터 (Operational Data)

  • 조직의 목적을 위해서 사용되는 데이터를 의미한다.
  • 즉 업무를 위해 검색을 할 목적으로 저장된 데이터이다.
  • 운영 데이터는 조직의 목적과는 관계가 없다.
  • 저장된 데이터나 단순 입출력 데이터처럼 임시 저장된 데이터는 이에 속하지 않는다.

공용 데이터 (Shared Data)

  • 개인이 사용하는 데이터가 아닌, 여러 사람들과 함께 공유하며 사용하는 데이터를 의미한다.
  • 둘 이상의 프로그램, 여러 사람들이 동시에 사용할 수 있는 데이터이다.

 

2.2) 데이터베이스의 특징

실시간 접근성 (Real Time Accessibility)

  • 데이터베이스는 실시간으로 서비스된다.
  • 사용자가 데이터를 요청하면 데이터베이스는 수 초 내에 결과를 서비스해야 한다.

계속적인 변화 (Continuous Change)

  • 데이터베이스에 저장된 내용은 어느 한순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다.
  • 데이터베이스는 삽입, 삭제, 수정 등의 작업을 통해 수시로 바뀌는 데이터 값을 저장한다.

동시 공유 (Concurrent Sharing)

  • 데이터베이스는 서로 다른 업무나 다양한 사용자들에게 동시에 공유된다.
  • 이는 즉, 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러개 존재한다는 의미이다.

내용에 따른 참조 (Reference by Content)

  • 데이터베이스에 저장된 데이터는 물리적 위치가 아닌 데이터 값에 따라 참조된다.
  • 사용자가 원하는 데이터를 얻기 위해 데이터 값으로 조건을 제시하면, 데이터베이스가 해당 조건을 토대로 데이터를 검색한다.

 


 

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

데이터베이스 시스템(Database System)은 각 조직에서 사용하던 데이터를 모아서 통합하고, 서로 공유하여 생기는 장점을 활용하는 시스템을 의미한다.

 

3.1) 데이터베이스 (Database)

저장 장치에 기록된 데이터를 모아 둔 토대를 의미한다.

물리적 방식으로 컴퓨터의 저장 장치에 저장된다.

즉 데이터베이스는 저장 장치에 저장된 데이터의 형태이다.

 

3.2) DBMS (DataBase Management System)

데이터베이스를 사용할 수 있도록 지원하는 SW 시스템으로, 사용자와 데이터베이스를 연결해준다.

하나의 '시스템'이므로, 여러 가지 구성요소들로 이루어져 있다. (Ex. 파일 관리자, 버퍼 관리자 등)

데이터베이스를 다루기 위해서는 DBMS가 주기억장치에 업로드(DBMS 작동)하는 작업이 선행되어야 한다.

만약 저장 장치에 저장되어 있는 데이터 A를 사용하고자 한다면, DBMS의 파일 관리자와 버퍼 관리자가 미리 주기억장치에 업로드되어 있어야 해당 데이터에 접근이 가능하다.

DBMS는 다음과 같이 4가지 기능을 수행해야 한다.

  • 데이터 정의 (Data Definition): 데이터 구조를 정의하고, 데이터 구조에 대한 삭제/변경 기능
  • 데이터 조작 (Data Manipulation): 데이터를 조작하는 SW가 요청한 데이터 삽입/수정/삭제 기능
  • 데이터 추출 (Data Retrieval): 사용자가 조회하는 데이터, SW의 데이터를 추출하는 기능
  • 데이터 제어 (Data Control): 데이터베이스 사용자를 생성 및 모니터링, 데이터 접근 제어, 동시성 제어 등을 담당하는 기능

 

3.3) 사용자

데이터베이스 시스템의 사용자는 일반 사용자, 응용 프로그래머, SQL 사용자, DBA 등 데이터베이스 사용 목적에 따라 종류가 달라진다.

일반 사용자

  • 개발자가 개발한 응용 프로그램을 통해 간접적으로 DBMS에 접근하는 접근자이다. 
  • 일반 사용자는 프로그래머가 개발한 SW를 사용하여 데이터베이스에 접근하므로, DBMS에 직접 접근하지 않는 사용자이다.
  • 따라서 보통 특별한 지식 없이 데이터베이스에 접근하여 검색, 삽입, 삭제, 수정 작업을 수행한다.

응용 프로그래머

  • 일반 사용자가 사용할 SW를 개발하는 사용자이다.
  • 개발하는 응용 프로그램의 종류와 필요에 따라 DBMS에 접근할 수도 있다.
  • Java, C, JSP 등의 프로그래밍 언어에 대한 이해, SQL 언어에 대한 이해가 요구되며, 일반 사용자를 위한 UI, 데이터 관리용 응용 로직 등을 개발한다.

SQL 사용자

  • SQL을 사용해 업무를 처리하는 IT 부서의 담당자이다.
  • DBMS를 직접 다루는 사용자에 해당하며, 꼭 응용 프로그램을 개발하지 않아도 SQL만 전문적으로 다루는 분야도 존재하므로, 응용 프로그래머하고 분리해서 볼 수 있다.
  • 주로 데이터 검색, 구조 변경, 통계 처리 등 데이터를 모니터링하는 업무 등을 수행한다.

데이터베이스 관리자 (DBA; DataBase Administrator)

  • DBMS을 관리, 유지보수, 설정하는 관리자이다.
  • 보통 데이터베이스 당 1명이나 여러 명이 존재한다.
  • 데이터 설계, 구현, 유지보수의 전 과정을 모두 담당한다.
  • 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등 제반 업무를 수행한다.
  • 즉, 데이터베이스 관리자는 데이터베이스 스키마를 사용해 데이터베이스 구조를 설정하는 권한, 이를 관리하는 역할을 소유하고 있다.
  • 데이터베이스는 데이터베이스 관리자가 설정된 구조에 따라 구축된다.

 


 

4. 데이터베이스 언어

데이터베이스 언어는 데이터베이스를 다루는 데 사용되는 언어를 의미한다.

SQL이 사실상 표준처럼 여겨지고 있으며 그 외에도 다양한 종류가 있으나, 여기서는 SQL을 기준으로 서술한다.

'가격(Price)이 10,000원 이상인 도서의 이름(Bookname)과 출판사(Publisher)를 검색하라'를 SQL로 처리하면 다음과 같다.

SELECT bookname, publisher
FROM   book
Where  price >= 10000;

● book 테이블

● 결과

'결과' 항목과 'book 테이블' 항목에서 표현된 2차원 테이블 형식이 데이터베이스의 가장 기본적인 구조이다.

이처럼 구조와 값으로 구분되어 2차원 테이블 형식을 띄는 구조를 관계 데이터 모델이라고 부른다.

관계 데이터 모델에 대해서는 후에 자세히 서술한다.

 


 

5. 데이터 모델의 역사

데이터를 표현하기 위해 사용된 다양한 모델들은 시대에 따라 변화되어 왔다.

위에서 언급했던 관계 데이터 모델이 현재까지 가장 많이 쓰이고 있는 모델이며, 데이터베이스를 칭하면 대부분 이 모델을 기반으로 한다.

여기서는 관계 데이터 모델 외의 다른 모델들의 보다 자세한 설명은 생략한다.

 


 

6. 3단계 데이터베이스 구조

데이터베이스 구조는 외부/개념/내부 단계로 나눠진다.

각 단계를 나타낼 때 쓰이는 '스키마(Schema)' 조직 또는 구조를 의미한다.

외부 스키마 단계에 가까울수록 사용자 친화적이며, 데이터베이스 단계에 가까울수록 기계 친화적이다.

이러한 관계는 프로그래밍 언어의 레벨을 나눌 때 사용되는 '로우 레벨 언어(Low Level Programming Language)'와 '하이 레벨 언어(High Level Programming Language)'의 관계와 유사하다.

이때 데이터베이스는 저장 장치에 물리적인 데이터 구조로 저장되는데, 이는 컴퓨터 성질(기계어)에 가깝다고 표현할 수 있다.

각 계층은 응용 프로그램 종류에 따라 볼 수 있는 데이터베이스 수준을 나눈다.

스키마는 데이터 독립성을 보장하기 때문에 계층마다 매핑 작업이 필요하다.

독립성은 특정 스키마가 손상되거나 내용이 변경되어도 나머지 스키마가 영향을 받지 않도록 만들어주는 것을 의미한다.

 

6.1) 외부 스키마 (External Schema)

외부 스키마는 일반 사용자, 응용 프로그래머가 접근하는 계층으로, 전체 데이터베이스 중 1개의 논리적 부분을 의미한다.

외부 스키마는 필요에 따라 여러 개가 존재할 수 있다.

Ex) 학생처의 학생 정보, 교무처의 수강 정보 등은 각 부서의 사용자들에게만 필요한 각각의 외부 스키마

 

6.2) 개념 스키마 (Conceptual Schema)

모든 응용 프로그램, 사용자가 공통적으로 필요로 하는 데이터들을 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 스키마이다.

통합 조직별로 1개만 존재하며, DBA가 관리한다.

저장 장치에 독립적으로 기술되며, 데이터와 관계, 제약사항, 무결성에 대한 내용 등이 포함된다.

Ex) 학생 정보, 수강 정보 등을 모두 모아둔 대학 전체 데이터베이스

 

6.3) 내부 스키마 (Intenal Schema)

물리적 저장 장치의 입장에서 본 데이터베이스의 구조로서, 데이터베이스에 저장될 레코드로 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타내는 스키마이다.

내부 스키마는 1개만 존재할 수 있다.

인덱스, 데이터 레코드 배치 방법, 데이터 압축 등에 대한 사항이 포함된다.

Ex) 대학 전체 데이터베이스가 실제 저장 장치에 저장되는 물리적인 구조

 

6.4) 외부/개념 매핑

사용자의 외부 스키마와 개념 스키마 사이에 이루어지는 매핑 작업이다.

외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는 지를 파악하고 이를 대응시킨다.

 

6.5) 개념/내부 매핑

개념 스키마와 내부 스키마 사이에 이루어지는 매핑 작업이다.

개념 스키마의 데이터가 내부 스키마의 물리적 장치 어느 위치, 어떤 방법으로 저장되는 지를 대응시킨다.

 


 

7. 데이터 독립성

데이터 독립성은 3단계 데이터베이스 구조가 지니는 특성이다.

데이터 독립성은 하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변화가 다른 단계에 영향을 주지 않도록 만드는 것이다.

즉, 일반 사용자가 외부 스키마 중 1개에 접근해 내용을 수정하더라도, 개념 스키마나 내부 스키마에 영향을 줄 수 없다.

또한 DBA는 일반 사용자가 접근하는 외부 스키마를 건드리지 않아도 개념 스키마나 내부 스키마의 물리적인 저장 방법을 바꿀 수 있다.

Ex) 수강 신청 시스템에 저장된 과목의 정보를 수정한다고 해서 일반 사용자가 접근하는 수강 신청 시스템의 클라이언트를 수정할 필요는 없다.

 

7.1) 논리적 데이터 독립성 (Logical Data Independence)

외부 단계(외부 스키마)와 개념 단계(개념 스키마) 사이의 독립성을 보장한다.

개념 스키마가 변경되어도 외부 스키마는 영향을 미치지 않아야 한다.

논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 만드는 개념이다.

 

7.2) 물리적 데이터 독립성 (Physical Data Independence)

개념 단계(개념 스키마)와 내부 단계(내부 스키마) 사이의 독립성을 보장한다.

저장 장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않아야 한다.

만약 C 드라이브에서 D 드라이브로 데이터를 옮기면 내부 스키마가 바뀐 것이다.

이 경우, 데이터의 매핑 정보만 바꾸면 되므로 다른 단계의 스키마들은 영향을 받지 않는다.

성능 개선을 위해 물리적 저장 장치의 재구성이 이루어져도 개념 스키마, 응용 프로그램(외부 스키마)은 영향이 없어야 한다.

물리적 데이터 독립성을 구현하는 것이 논리적 데이터 독립성을 구현하는 것보다 난이도가 낮다.

 


 


수고하셨습니다!


 

0 Comments