일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 너비 우선 탐색
- 파이썬
- Python
- DFS
- javascript
- 스택
- SWEA
- 그래프 탐색
- DP
- 프로그래머스
- 구현
- 너비우선탐색
- 브루트포스 알고리즘
- 그래프 이론
- 자바스크립트
- 오라클
- 그리디 알고리즘
- 백준알고리즘
- 브루트포스
- 데이터베이스
- SW Expert Academy
- 다익스트라
- 깊이우선탐색
- 백트래킹
- 문자열
- 완전탐색
- 다이나믹 프로그래밍
- 백준 알고리즘
- BFS
- oracle
- Today
- Total
민규의 흔적
[오라클 DB] DBMS와 파일 시스템 본문
파일 시스템
데이터를 파일로 관리하기 위해 파일 생성/삭제/수정/검색 기능을 제공하는 소프트웨어이다.
파일 시스템은 DBMS가 등장하지 않았을 때인 1960년대부터 사용되어 왔다.
응용프로그램별로 필요한 데이터를 별도의 파일로 관리하였다.
파일 시스템의 문제점
파일 시스템의 문제점은 다음과 같다.
1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
다음과 같이 고객 데이터 파일과 주문 데이터 파일을 관리하는 각각의 응용 프로그램이 있다고 가정해보겠다.
고객 데이터와 주문 데이터를 저장하다보니 위와 같이 중복되는 부분이 존재할 수 있다. 이는 저장 공간의 낭비와 데이터 일관성을 유지하기 어렵다는 점을 지닌다.
데이터 일관성을 지키기 어려운 데이터 불일치 사례를 다음의 예로 이해해보자.
각각의 데이터 파일의 일부가 다음과 같다고 가정해보겠다.
고객명 '김철수' 데이터
고객아이디 | 고객명 | 연락처 | 주소 | 등급 | 비밀번호 |
kimironsu123 | 김철수 | 010******** | 서울시 **동 | GOLD | passwd123 |
'김철수' 고객이 주문한 데이터
주문번호 | 고객아이디 | 고객명 | 연락처 | 주소 | 제품명 | 수량 |
O100012 | kimironsu123 | 김철수 | 010******** | 서울시 **동 | 공기청정기 | 1 |
그리고 다음과 같은 상황이 일어났다고 가정해보자.
'김철수' 고객의 연락처를 고객 데이터 파일에서만 수정하고, 실수로 주문 데이터 파일에서 수정하지 않았다.
010********인 김철수 고객의 연락처를 010########으로 변경해야하는데, 고객 데이터 파일에서만 수정하고 주문 데이터 파일에서는 수정하지 않은 것이다.
만약 이런 상황에서 주문번호 O100012인 고객의 전화번호를 알아보자니 두 데이터 파일에서 나타내는 전화번호가 달라 혼란을 줄 수 있을 것이다.
2. 응용 프로그램이 데이터 파일에 종속적이다.
데이터 종속성이라고도 말하며 이는 파일 구조가 바뀌면 소프트웨어를 다시 만들어야 한다는 뜻이다.
간단히 예로 들어, 위에서 예로 든 고객 데이터에 생년월일 정보를 추가로 기입하려 한다면 응용 프로그램의 기저부터 다시 짜야한다는 의미이다.
3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
일반적으로 파일 시스템에서는 하나의 파일에 여러 개의 응용 프로그램이 접근하여 사용할 수 있는 동시 공유 기능을 제공하지 않는다. (동시 공유 기능 부족)
또한 파일 시스템에서는 사용자에게 파일 단위로 권한을 부여하는 방식으로 데이터 접근을 통제한다.
파일의 공유를 위해 접근이 쉬운 위치에 파일을 저장하는 점, 파일 안의 레코드나 필드 같은 더 작은 데이터 단위에 대한 접근 통제와 더 구체적인 권한 부여의 어려움 그리고 데이터가 중복되어 저장된 모든 파일에 보안수준을 같게 유지하기 어렵다는 점이 존재한다. (보안 기능 부족)
응용 프로그램에서 파일 내의 데이터를 수정하는 도중에 강제로 파일이 닫히는 등의 사고가 발생하였을 때 데이터를 복구하는 기능 또한 없다. (회복 기능 부족)
4. 응용 프로그램을 개발하기 쉽지 않다.
파일 시스템에서는 파일에 접근해 데이터를 관리하는 일련의 작업들을 모두 응용 프로그램이 담당하므로, 사용자 요구에 맞는 응용 프로그램 개발에 어려움이 많다.
새로운 응용 프로그램을 개발하려면 파일에서 데이터 읽기, 삽입, 삭제 등 기본적인 CRUD 기능을 모두 포함해야 하므로 응용 프로그램 개발이 어렵다.
5. 데이터 무결성의 침해
데이터 무결성이란 저장된 데이터의 내용이 본래 의도했던 데이터의 형식, 범위를 준수해야 하는 성질이다.
DBMS는 이런 무결성에 대해 솔루션을 가지고 있지만, 파일 시스템에서는 프로그래머가 무결성을 검사하는 기능을 직접 구현해야 했다.
데이터베이스 관리 시스템 (DBMS)
이러한 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어가 바로 DBMS이다.
조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리하는 기능을 지원한다.
데이터베이스 관리 시스템의 장점
1. 데이터 중복을 통제할 수 있다.
2. 데이터 일관성을 유지할 수 있다. (중복 제거로 가능)
3. 데이터 무결성을 유지할 수 있다.
4. 데이터 독립성이 확보된다.
5. 관리 기능이 존재한다. (회복, 동시성 제어, 보안)
6. 표준화가 가능하다.
7. 응용 프로그램 개발 비용이 줄어든다.
데이터베이스 관리 시스템의 단점
1. 비용(투자, 교육)이 많이 든다.
2. 백업과 회복 방법이 복잡하다.
3. 중앙 집중 관리로 인한 취약점(가용성)이 존재한다. (전체 시스템 업무 중단)
데이터베이스 관리 시스템을 사용하지 않는 것이 바람직한 경우
1. 초기의 투자 비용이 너무 클 때
2. 응용이 단순하고 잘 정의되었으며 변경되지 않을 것으로 예상될 때
3. 데이터에 대한 다수 사용자의 접근이 필요하지 않을 때
'데이터베이스' 카테고리의 다른 글
[오라클 DB] 데이터베이스 구조 - ANSI/SPARC 아키텍쳐 (2) | 2023.10.17 |
---|---|
[오라클 DB] 데이터베이스 관리 시스템(DBMS)의 발전 과정 (3) | 2023.10.14 |
[오라클 DB] 데이터베이스 시스템 용어 정리 (2) | 2023.10.10 |
[오라클 DB] 정보와 데이터의 차이 (2) | 2023.10.10 |
[오라클 DB] 데이터베이스 정의 및 특징 (2) | 2023.10.10 |