여니의 프로그래밍 study/MySQL

[데이터베이스 개론 2장] 데이터베이스 관리 시스템에 대해 알아보자!

여니's 2020. 3. 24. 01:40

안녕하세요 공대생 블로거 여니입니다.

오늘은 데이터베이스 개론 2장에 관해 다뤄보려고 해요!
(출처는 데이터베이스 개론책입니다:))

데이터베이스 관리 시스템의 등장 배경에 대해 먼저 다뤄볼게요

과거에는 파일 시스템이라는 정보 처리 시스템을 사용해서 데이터를 관리했어요!
하지만 파일 시스템에는 몇가지 단점이 있어서 지금의 데이터베이스 관리 시스템이 나오게 됬어요

파일 시스템은 단점 뿐만 아니라 장점도 있어요. 장점은 별도의 프로그램 설치비용이 들지 않는다는 점이죠!
근데 크나큰 단점이 있으니 지금의 데이터베이스 관리 시스템이 등장한것이겠죠??!

파일 시스템의 단점은 총 몇가지가 있을까요?!

1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
--> 파일 시스템에서는 응용 프로그램 별로 파일을 유지해서 같은 데이터가 여러 파일에 저장될 수 있어요. 즉 데이터 중복성 문제가 발생하는 것이지요!
데이터가 중복되는게 왜 문제일까요?!
똑같은 내용이 중복되면 저장 공간도 낭비하게 되고 데이터 일관성과 데이터 무결성을 유지하기가 어려워져요!

2. 응용 프로그램이 데이터 파일에 종속적이다.
--> 응용프로그램이 데이터 파일에 종속적이라는 뜻이 정확히 무슨뜻일까요?
사용하는 파일의 구조가 변경되면 당연히 응용프로그램도 함께 변경이 되야 하겠죠?
이러한 특징을 데이터 종속성이라고 해요.

3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
--> 일반 파일 시스템에서는 응용 프로그램 하나가 사용 중인 파일을 다른 응용 프로그램이 접근하여 사용할 수 있는 동시 공유 기능을 제공하지 않아요.

4. 응용 프로그램을 개발하기가 쉽지 않다.
--> 파일 시스템에서는 파일에 접근하여 데이터를 관리하는 모든 작업을 응용 프로그램이 담당해야 하기 때문에 사용자 요구에 맞는 응용 프로그램을 개발하는데 어려움이 많아요.


이제는 데이터베이스 관리 시스템의 정의에 대해 알아볼게요!

데이터베이스 관리 시스템은 파일 시스템의 문제점이었던 데이터 중복성과 데이터 종속 문제를 해결하기 위한 소프트웨어에요.
이 시스템은 조직에 필요한 데이터를 데이터베이스에 통합을 해서 저장하고 이에 대한 관리를 집중적으로 담당하죠!
데이터 베이스 관리 시스템은 데이터베이스 구조나 접근방법 등이 변경되도 사용자가 미리 알거나 응용프로그램을 변경할 일이 전혀 없어서 데이터 독립성이 확보돼요!

데이터베이스 관리 시스템이 제공하는 주요 기능 3가지를 살펴보도록 할게요.

1. 정의 기능
--> 데이터베이스 구조를 정의하거나 이미 정의된 구조를 수정할 수 있다.
2. 조작 기능
--> 데이터를 삽입,삭제,수정,검색하는 연산을 할 수 있다.
3. 제어 기능
--> 데이터베이스 관리 시스템은 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능을 제공한다.




자 이제 데이터베이스 관리 시스템에 대해 간단히 알아봤는데요!
이제 본격적으로 더 자세히 파헤쳐보도록 하죠.

데이터베이스 관리 시스템의 장단점에 대해 알아보도록 해요.

파일 시스템을 외면할 만큼의 가치가 있는 시스템인지 알아봐야죠!


먼저 장점에 대해 한번 다뤄볼게요.

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

1. 데이터 중복을 통제 할 수 있다.
--> 파일 시스템은 아까도 말씀드렸지만 응용 프로그램마다 별도의 파일을 유지하기 때문에 같은 내용의 데이터가 여러 파일에 중복 저장될 수 있어요.
중복 저장되면 저장공간이 낭비되고 수정하는 비용도 증가해요. 그리고 무엇보다도 가장 큰 문제는 내용이 변경되었을 때 중복된 데이터를 모두 수정하지 않으면 데이터 일관성도 무너지게 되죠!
따라서 데이터 베에스 관리 시스템은 이러한 파일 시스템들의 단점을 보완해요! (데이터 중복성과 일관성 문제를 해결할 수 있죠)

2. 데이터 독립성이 확보된다.
--> 이것도 아까 다룬 내용이네요! 파일 시스템에서는 파일 구조가 바뀌면 응용 프로그램 구조도 변경되야 한다고 말씀
드렸었죠?
그런데 데이터베이스 관리 시스템은 응용 프로그램을 대신해서 데이터베이스에 접근하고 이를 관리하는 모든 책임을 지기 때문에 데이터베이스 구조가 변경되도 응용프로그램에 영향을 미치지 않아서 데이터 독립성이 확보된다고 할 수 있어요.
간단히 요약하자면 파일 시스템은 파일 구조와 응용프로그램 사이에 독립성이 확보되지 않지만 데이터베이스 관리 시스템은 독립성이 확보된다.

3. 데이터를 동시에 공유할 수 있다.
--> 데이터베이스 관리 시스템은 1장에서도 잠깐 다루었지만 여러 사람들이 동시에 같은 데이터를 공유 할 수 있고 접근할 수 있다고 말씀 드렸어요.
동일한 데이터를 각 응용 프로그램의 요구에 따라서 다양한 구조로 제공을 해줄 수 있고, 동시 접근을 제어하는 어려운 기술을 보유하고 있어서 가능한 일이에요. 그리고 동시 공유를 지원하기 때문에 불필요한 데이터 중복을 제한할 수 있어요.

4. 데이터 보안이 향상된다.
--> 조직의 중요한 데이터를 여러 응용 프로그램이 사용하기 때문에 보안은 필수겠죠?!
데이터베이스 관리 시스템은 데이터베이스를 이용해 데이터를 중앙 집중식으로 관리하니까 데이터에 대한 효율적인 접근 제어가 가능해요.
또한 접근 수준을 차별화둘 수 있어서 보안이 향상됩니다.

5. 데이터 무결성을 유지할 수 있다.
--> 데이터 무결성은 저장된 데이터 값의 정확성을 의미해요.
데이터에 대한 연산이 수행될 때마다 유효성 검사를 해서 데이터 무결성을 유지할 수 있게 해줘요.

6. 표준화할 수 있다.
-->데이터에 대한 모든 접근이 데이터베이스 관리 시스템을 통해 이루어지기 때문에 데이터에 접근하는 방법, 데이터의 형식과 구조 등을 표준화하기가 쉬워집니다. 중앙집중식으로 관리를 하다보니까 더더욱 !

7. 장애 발생시 회복이 가능하다.
--> 장애가 발생하면 데이터 일관성과 무결성을 유지하면서 장애가 일어나기 전의 상태로 복구하는 기능이 있어요.

8. 응용 프로그램 개발 비용이 줄어든다.
--> 응용 프로그램 개발을 할 필요가 없고 변경할 일도 없기에 비용이 현저기 적게 들어요.

데이터베이스 관리 시스템의 장점이 엄청나네요..!
장점이 있으면 단점도 있는법
이제 단점에 대해 알아보도록 할게요:)


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

1. 비용이 많이 든다
--> 응용 프로그램 개발비와 보수비에는 돈이 안들지만.. 동시 사용이 허용되는 사용자 수에 따라 제품 가격도 증가하고, 데이터베이스 관리 시스템은 따로 구매해서 설치를 해야하기에 비용이 많이 듭니다. 또한 데이터베이스 관리 시스템은 복잡하고 다양한 기능을 제공하기에 컴퓨터 자원을 많이 사용하게 되고요.

2. 백업과 회복방법이 복잡하다.
--> 데이터베이스는 데이터양이 많아서 복잡하고 여러 사용자의 동시 공유를 지원하니까 장애가 일어나면 원인과 상태를 파악하기가 어려워요, 그래서 회복하는 방법이 매우 까다롭습니다.

3. 중앙 집중 관리로 인한 취약점이 존재한다.
--> 중앙 집중 관리 덕분에 표준화를 할 수 있다고 했는데 단점이 존재하기도 하네요.
모든 데이터가 데이터베이스 관리 시스템에 집중되어 있기에 관리 시스템에 혹시라도 오류가 발생한다면 전체 시스템의 업무 처리가 중단되요.

지금 보면 아시겠지만 단점보다 장점이 훨씬 많죠!?
그래서 이러한 단점들을 뒤로 하고 데이터베이스 관리 시스템을 사용하는 거랍니다.

자 이제, 데이터베이스 관리 시스템이 어떻게 발전을 해왔는지에 대해 살펴보도록 할까요!?

데이터베이스 관리 시스템은 1960년대에 개발되었고 현재까지도 진화하고 있어요.

1. 1세대 데이터 베이스 관리 시스템 : 네트워크,계층 DBMS
네트워크 DBMS와 계층 DBMS가 1세대에 속해요.
(1) 네트워크 DBMS는 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 사용하는데 그렇기때문에 데이터베이스의 구조가 복잡하고 변경하기가 매우 어려워요,
네트워크 DBMS로는 IDS(Integrated Data Store)이 있어요.

(2) 계층 DBMS는 데이터베이스를 트리 형태로 구성하는 계층 데이터 모델을 사용해요.
계층 DBMS는 네트워크 DBMS보다 구조가 단순하지만 복잡한 현실세계의 모습을 단순한 트리형태로 표현하기가 매우 어렵고 구조 변경이 어렵다는 문제가 발생해요.
계층 DBMS로는 IMS(Information Management System이 있어요.

2. 2세대 데이터베이스 관리 시스템 : 관계 DBMS
관계 DBMS는 데이터 베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.
관계 DBMS는 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 있습니다.
관계 DBMS로 오라클, MS SQL서버, 엑세스, 인포믹스, MYSQL등이 있습니다.

3. 3세대 데이터베이스 관리 시스템 : 객체 관계 DBMS
객체관계 DBMS는 객체 지향 프로그램에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 모델을 사용해요.
이 시스템은 새로운 유형의 데이터를 저장하고, 데이터에 대한 복잡한 분석 및 처리를 지원합니다.
대표적인 예로서는 오투, 온투스, 젬스톤 등이 있어요.

4. 4세대 이후 데이터베이스 관리 시스템 : NoSQL,NewSQL DBMS
관계 DBMS는 빠른 속도로 증가하는 대량의 비정형 데이터를 처리하는 데는 비효율적이므로 관계 DBMS는 그대로 유지하면서 CPU나 메모리와 같은 하드웨어 장치의 성능을 향상하는 것만으로는 문제를 해결 할 수 없다.
NoSQL DBMS는 관계 DBMS가 강점으로 제시하던 안전성과 일관성 유지를 위한 복잡한 기능을 포기하고, 데이터 구조를 미리정해두지 않기 때문에 비정형 데이터를 저장하고 처리하는데 적합하다.

* 원래 SQL은 관계 DBMS를 위한 표준 질의어입니다.

NewSQL DBMS는 안전성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청 할 수 있어요, 즉 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원하지만, 시장에 진입한지 얼마 되지 않아서 더 지켜봐야 합니다!

후.. 내용이 참 복잡하고도 헷갈리네요 ㅠ.ㅠ
이제 헷갈리는 부분을 머릿속에 정리시키기 위해 문제를 한번 풀어보도록 합시다!!
(저는 문제 풀면서 앞에 공부했던 내용을 다시 상기시키면 공부가 더 잘되더라구요)

<52~53P 연습문제>

01. 다음이 설명하는 파일 시스템의 문제점은 무엇인가?
답 : 4번) 데이터 종속성
풀이 : 파일 시스템의 문제점은 총 2가지가 있다. 데이터 종속성과 데이터 중복성이다.

02. 데이터 베이스 관리 시스템의 주요 기능이 아닌 것은?
답 : 4번) 절차 기능
풀이 : 데이터 베이스 관리 시스템의 주요 기능은 총 3가지 이다. 정의기능, 제어기능, 조작기능이다.
정의 기능은 데이터베이스 구조를 정의하거나 이미 정의된 구조를 수정할 수 있다.
조작 기능은 데이터를 삽입,삭제, 수정,검색하는 연산을 수행할 수 있다.
제어기능은 데이터를 여러 사용자가 동시에 공유하더라도 정확하고 안전하게 유지하는 기능을 제공한다.

03. 다음은 데이터 베이스 관리 시스템의 주요 기능 중 무엇에 대한 설명인가?
답 : 2번) 조작 기능
풀이 : 조작 기능은 사용자의 요구에 따라 데이터베이스에 저장된 데이터에 접근하여 삽입, 삭제, 수정,검색 연산을 정확하고 효율적으로 수행한다.

04. 데이터베이스 관리 시스템의 주요 기능인 제어 기능에 대한 설명으로 옳지 않은 것은?
답 : 3번) 데이터베이스의 구조를 정의하거나 수정한다.
풀이 : 이 설명은 제어기능이 아니라 정의기능에 속한다.

05. 데이터베이스 관리 시스템의 장점으로 보기 어려운 것은?
답 : 3번) 백업과 회복방법이 간단하다.
풀이 : 데이터베이스는 데이터 양이 많아서 복잡하고 여러 사용자의 동시 공유를 지원하니까 백업이나 회복하는 방법이 매우 까다롭습니다.

06. 데이터베이스 관리 시스템의 단점으로 가장 적합한 것은?
답 : 4번) 백업과 회복 기법이 복잡하다.

07. 다음과 같은 특징이 있는 데이터베이스 관리 시스템의 유형은?
답 : 1번) 네트워크 데이터베이스 관리 시스템
풀이 : 네트워크 DBMS는 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 데이터 모델을 사용한다.

08. 다음은 어떤 유형의 데이터베이스 관리 시스템으로 분류할 수 있는가?
답 : 3번) 관계 DBMS
풀이 : 관계 DBMS는 현재 기업에서 많이 사용하고 있다. 안전성과 보안성때문에!
예시로는 오라클,MS SQL, 서버, 액세스, 인포믹스, MYSQL

09. 데이터를 파일로 관리하기 위해 파일을 생성,삭제,수정,검색하는 기능을 제공하는 소프트웨어를 무엇이라고 하는가?
답 : 파일 시스템

10. 파일 시스템의 문제점을 설명하시오
답 : 파일 시스템은 데이터 종속성과 데이터 중복성이다. 파일 시스템의 구조가 변경되면 응용프로그램의 구조 또한 변경해야 하기 때문에 비용이 많이 들고 이것을 바로 데이터 종속성이라고 한다. 또한 한 파일을 여러 사용자가 사용하고자 할땐 파일을 각각 저장하고 있어야 하는데 이렇게 여러 사람들이 작업을 하다 보면 같은 내용이 중복될 수 있다는 문제점을 가지고 있다.

11. 데이터베이스 관리 시스템이 무엇인지 설명하시오.
데이터베이스 관리 시스템이란 파일 시스템의 문제점이었던 데이터 종속성과 데이터 중복성을 해결한 소프트웨어입니다.

12. 데이터베이스 관리 시스템의 세 가지 주요 기능을 설명하시오.
답 : 정의기능은 데이터베이스 구조를 정의하거나 이미 정의된 구조를 수정하는 기능을 말한다.
조작 기능은 데이터를 수정,삽입,삭제,검색하는 연산을 수행하는 기능이다.
제어기능은 여러 사람들이 데이터를 공유하더라도 안전하고 정확하게 유지하는 기능이다.

13. 데이터베이스 관리 시스템을 사용함으로써 얻게 되는 장점을 설명하시오.
답 : 데이터 중복을 통제할 수 있고 데이터 독립성을 확보할 수 있다. 또한 데이터를 동시에 공유할 수 있으며., 데이터 보안이 향상되고 데이터 무결성을 유지할 수 있다. 표준화를 할수도 있으며 장애 발생시에 회복이 가능하고, 응용 프로그램 개발 비용이 들지 않는다.

<54~55P 기출문제는 양이 너무 방대해서 답만 올려놓을게요>

1. 3번
2. 3번
3. 2번
4. 2번
5. 1번
6. 2번
7. 2번
8. 4번
9. 3번
정의 기능 : Definition facility
제어 기능 : Control ...
조작 기능 : Manipulation ..
10. 2
11. 2
12. 2
13. 4
14. 3
15. 2
16. 4


틀린 문제 있으면 댓글로 꼭 알려주세요!!
저도 배우면서 하는 입장이라 정답이 아닐 수 있어요 ㅠㅠ