RUBY
[SJCU]2주차. 파일 시스템과 DBMS 본문
데이터베이스 구축
2주차. 파일 시스템과 DBMS
학습내용
- 마당서점 데이터를 저장하는 방법
- 마당서점 데이터의 저장 방법 비교
- 파일 시스템과 DBMS의 비교
학습목표
- 마당서점을 통해 데이터의 저장 방법을 설명할 수 있다.
- 데이터의 저장 방법을(프로그램내부, 파일시스템, DBMS) 설명할 수 있다.
- 파일시스템과 DBMS를 비교하여 DBMS의 장점을 설명할 수 있다.
1. 마당서점 데이터를 저장하는 방법
1) 마당서점 데이터를 저장하는 방법(3가지)
- 데이터를 프로그램 내부에 저장하는 방법
- 파일 시스템을 사용하는 방법
- DBMS를 사용하는 방법
[프로그램 1 : 데이터를 프로그램 내부에 저장하는 방법]
1. C언어의 구조체 BOOK을 먼저 선언하고
2. main() 프로그램에서 구조체 배열 변수 BOOKS[ ]에 데이터를 저장
3. 도서 데이터는 프로그램 내 구조체 변수에 저장
[프로그램 1의 문제점]
새로운 데이터가 생길 때마다 프로그램을 수정한 후 다시 컴파일해야 함
[프로그램 2 : 데이터를 파일에 저장]
1. C언어의 구조체 BOOK을 먼저 선언하고
2. main( ) 프로그램에서 파일로부터 데이터를 불러와 구조체 배열 변수 BOOKS[ ]에 저장
3. 새로운 데이터가 추가되어도 프로그램을 수정할 필요 없음
(도서입력 함수 insert()를 만들어서 도서 추가함)
[프로그램 2의 문제점]
문제 1. 데이터 구조가 바뀔 때 문제가 발생함.
- 예) BOOK 데이터 구조에서 (도서번호, 도서제목, 출판사, 가격)을 선언했는데, 운영상 '저자' 정보도 필요해진 경우,
- BOOK 데이터 구조에 '저자'를 추가하여 다시 정의하고, 다시 컴파일해야 하며, 이 때 서비스를 일시 중단 해야함
[프로그램 2 : 데이터를 파일에 저장]
1. C언어의 구조체 BOOK을 먼저 선언하고
2. main( ) 프로그램에서 파일로부터 데이터를 불러와 구조체 배열 변수 BOOKS[ ]에 저장
3. 새로운 데이터가 추가되어도 프로그램을 수정할 필요 없음
(도서입력 함수 insert()를 만들어서 도서 추가함)
[프로그램 2의 문제점]
문제 1. 데이터 구조가 바뀔 때 문제가 발생함.
- 예) BOOK 데이터 구조에서 (도서번호, 도서제목, 출판사, 가격)을 선언했는데, 운영상 '저자' 정보도 필요해진 경우,
BOOK 데이터 구조에 '저자'를 추가하여 다시 정의하고, 다시 컴파일해야 하며, 이 때 서비스를 일시 중단 해야함
문제 2. 같은 파일을 두 개의 프로그램이 공유하는 문제다.
- 예) 고객1이 프로그램1을 이용해서 데이터가 저장되어있는 BOOK.dat 파일을 사용 중일때,
직원 1은 프로그램2를 이용해서 BOOK.dat 파일을 접근할 수 없으므로,
고객의 사용이 끝날 때까지 사용을 멈추던지, 프로그램1을 잠시 중단 시켜야하는 불편함이 있음
[프로그램 3 : 데이터를 DBMS에 저장]
1. 고객이 사용하는 프로그램은 두 번째 방법과 같지만, 프로그램에서 BOOK 데이터 구조는 빠져 있다.
2. 프로그램에서 데이터를 불러올 떄는 EXEC SQL 이라는 별도의 명령어로 DBMS에 호출함
[프로그램 3의 문제점]
* 데이터 정의와 데이터 값을 DBMS가 관리
* DBMS는 데이터 정의, 데이터 변경 등의 작업을 할 수 있는 별도의 프로그램을 갖고 있음
* 프로그램 내부에 데이터 정의나 데이터 값을 포함하지 않기 때문에 데이터 구조가 바뀌어도 다시 컴파일할 필요가 없음
2. 마당서점 데이터의 저장 방법 비교
[프로그램 1 : 데이터를 프로그램 내부에 저장할 때]
- 프로그램에 데이터 정의와 데이터 값을 모두 포함하는 방식
- 프로그램에 BOOK 데이터 구조를 정의하고 데이터 값도 직접 변수에 저장함
- 데이터 구조 혹은 데이터 값이 바뀌면 프로그램을 다시 컴파일해야 함
[프로그램 2 : 파일 시스템 사용할 때]
- 프로그램에 데이터 정의를 파일에 데이터 값을 포함하는 방식
- 프로그램에 BOOK 데이터 구조만 정의하고, 데이터 값은 book.dat라는 파일에 저장됨
- 데이터 값이 바뀌면 프로그램에 변경이 없지만, 데이터 구조가 바뀌면 프로그램을 다시 컴파일해야 함
[프로그램 3 : DBMS를 이용할 때]
- DBMS가 데이터 정의와 데이터 값을 관리하는 방식
- 데이터 정의에 의해 만들어진 BOOK 데이터 구조는 DBMS가 관리하고, 데이터 값은 데이터베이스에 저장됨
- 데이터 값이 바뀌거나 데이터 구조가 바뀌어도 프로그램을 다시 컴파일 할 필요 없음
3. 파일 시스템과 DBMS의 비교
[프로그램 1 : 데이터를 프로그램 내부에 저장할 때]
구분 | 파일 시스템 | DBMS |
데이터 정의 및 저장 | * 데이터 정의 : 프로그램 * 데이터 저장 : 파일 시스템 |
* 데이터 정의 : DBMS * 데이터 저장 : 데이터베이스 |
데이터 접근 방법 | 응용 프로그램이 파일에 직접 접근 | 응용 프로그램이 DBMS에 파일 접근을 요청 |
사용 언어 | 자바, C++ | 자바, C++, C등과 SQL |
CPU/주기억장치 사용 | 적음 | 많음 |
- 프로그램 안에서 파일 정의와 파일 관리를 모두 해야 하므로 파일을 다루어야 하는 부담이 있다.
- 파일이 독립적으로 따로 관리 되어, 중복 저장의 위험이 있다.
ex) 구매 담당자 관련 데이터가 변경되어도 판매 담당자는 알 수 없다. - 데이터 정의 및 관리를 DBMS에 맡기기 때문에 응용프로그램이 훨씬 간단하다. 즉 프로그램 개발 생산성이 높음
- DBMS가 정의한 데이터베이스를 여러 응용 프로그램과 공요하기 때문에 데이터의 일관성을 유지할 수 있다.
- 응용 프로그램 입장에서는 데이터 정의와 관리를 맡지 않아 데이터 구조 변경으로부터 독립성을 유지함
→ 즉, 데이터 구조 변경에서 자유로움 - DBMS는 스스로 데이터를 복구하며 보안을 유지하는 기능도 같이 함
[DBMS의 장점]
구분 | 파일 시스템 | DBMS |
데이터 중복 |
데이터를 파일 단위로 저장하므로 중복 가능 | DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음 |
데이터 일관성 |
데이터의 중복 저장으로 일관성이 결여됨 | 중복 제거로 데이터의 일관성이 유지됨 |
데이터 독립성 |
데이터 정의와 프로그램의 독립성 유지 불가능 → 쉽게 말해 데이터와 프로그램의 분리가 어려움 |
데이터 정의와 프로그램의 독립성 유지 가능 → 쉽게 말해 데이터와 프로그램 분리가 가능, 개발 시 유리 |
관리 기능 | 보통 | 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행 |
프로그램 개발 생산성 |
나쁨 | 짧은 시간에 큰 프로그램을 개발할 수 있음 |
기타 장점 | 보통 | 데이터 무결성 유지, 데이터 표준 준수 용이 |
Q. DBMS의 장점
1. 데이터의 일관성
2. 데이터의 무결성
3. 데이터와 프로그램의 독립성
'SJCU > 데이터베이스구축' 카테고리의 다른 글
[SJCU]2주차. 데이터베이스 시스템의 구성 (0) | 2023.03.09 |
---|---|
[SJCU]1주차. 데이터베이스 시스템의 발전 (0) | 2023.03.05 |
[SJCU]1주차. 데이터베이스와 데이터베이스 시스템 (0) | 2023.03.03 |