관리 메뉴

RUBY

[SJCU]2주차. 파일 시스템과 DBMS 본문

SJCU/데이터베이스구축

[SJCU]2주차. 파일 시스템과 DBMS

ruby-jieun 2023. 3. 9. 00:37

 

 

 

데이터베이스 구축
2주차. 파일 시스템과 DBMS


 

 

 

 

학습내용

 

  1. 마당서점 데이터를 저장하는 방법
  2. 마당서점 데이터의 저장 방법 비교
  3. 파일 시스템과 DBMS의 비교

 

 

학습목표

 

  1. 마당서점을 통해 데이터의 저장 방법을 설명할 수 있다.
  2. 데이터의 저장 방법을(프로그램내부, 파일시스템, DBMS) 설명할 수 있다.
  3. 파일시스템과 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. 데이터와 프로그램의 독립성

 

 

Comments