728x90
1. 파일 시스템과 데이터베이스란?
파일 시스템은 컴퓨터에서 파일이나 자료를 쉽게 발견하고 접근할 수 있도록 저장하는 것 을 가리킨다. 대부분의 운영체제가 파일 시스템을 가지고 있고, 윈도우는 NTFS(New Technology File System) 리눅스는 ext4 가 그 예이다. 파일 시스템의 주요 관심 대상 은 특정 어플리케이션으로, 모든 응용 프로그램에서 개별적으로 파일을 가지고 있어야 한다. 이러한 특징 때문에 파일 시스템은 여러 문제와 한계를 지니게 되었고, 이에 데이터베 이스 시스템이 등장하게 되었다.
데이터베이스는 여러 사람들이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이 터의 집합을 의미한다. DBMS(database management system)을 통해 사용자 또는 프 로그램의 요구를 처리하며, SQL 을 사용하여 데이터에 접근하여 데이터 삽입, 삭제, 수정 등등의 작업을 수행할 수 있다. 데이터베이스의 등장으로 파일 시스템이 가지고 있던 문제 점들을 거의 모두 해소 할 수 있게 되었다. 파일 시스템은 응용 프로그램이 데이터를 별개 로 가지고 있었던 것과 달리 통합된 환경을 제공함으로써 데이터 중복을 최소화하고 데이 터의 논리적인 독립성을 추구할 수 있게 해주었다.
2. 파일 시스템과 데이터베이스의 차이점
특 성 파일시스템 DBMS 데 이 터 의
특성 | 파일시스템 | DBMS |
데이터의 구조 | 특정 구조로 저장되어 관리되지 않음(raw data) | Table 형태로 구조화 되어 저장됨 |
데이터 접근방식 및 작업 | 데이터를 찾기 위해서 순차적 (sequential)으로 데이터를 훑어 나가야하며, 순차적으로 저장된 파일들을 액세스. 응용프로그램마 다 각각 다른 데이터 자장방식, 데 이터타입을 가지고 있으므로 조합 해서 작업하기 어려움 | -비순차적 접근(random access)이 가능하다. SQL 쿼리 를 사용해서 값을 빠르게 찾을 수 있으면 random read/write가 모두 가능. -테이블 형태로 데이터가 저장되 고 전체 스키마를 한꺼번에 다룰 수 있기 때문에 다른 응용 프로그램에서 사용하는 데이터들로 쉽게 작업 가능(data sharing) |
데이터 중복 및 불일치 | -파일 시스템에서는 각각 응용프 로그램이 데이터를 가지고 있어야 하고, 각 응용프로그램이 요구하 는 데이터타입에 맞춰 따로 저장 하기 떄문에 동일한 의미의 데이 터가 중복되어 저징된다. -이에 저 장 공간도 불필요하게 낭비. 업데 이트가 부분적으로 일어날 경우 데이터의 불일치가 일어날 수 있음 | 한 시스템이 공유하고 있는 데이터 스키마 전체를 가지고 있으므로 응용 프로그램은 필요한 정보를 가져다가 사용. 필요한 경우에만 데이터 타입을 변환해서 사용할 수 있으 므로, 다양한 요구 사항에 대응 할 수 있음. 데이터가 여러 곳에 중복되어 저장되지 않으므로, 데이터 수정도 용이해 지고, 부분 업데이트가 발생되지 않아 데이터 불이리도 거 의 없음. 하지만 DB는 성능상의 이점때문에 데이터 중복을 가지고 있으므로 불일치가 아예없다고 할 수 는 없음 |
데이터 무결성 제약조건 | 부분 업데이트와 각각의 응용프로 그램에서 이를 각각 관리해줘야 하기 떄문에 데이터 무결성을 보 장하기 어려움 | 데이터를 시스템이 함께 공유하므로 제약조건을 걸어 무결 성을 확보하는 것이 비교적 용이. 각각의 응용 프로그램에 서 별도로 처리할 필요 없음 |
데이터 독립성 | -파일 시스템에서는 데이터가 시 스템에 의존적인데, 이는 데이터 가 물리적으로 어떻게 저장되어 있는지, 어떻게 데이터를 사용할 것인지의 정보를 가지고 있다는 것을 의미. -즉 파일 시스템에서는 storage가 변화하면 전체 프로그 램을 수정해야 하므로 막심한 비용 초래 | 3개의 level로 이루어져 있고 mapping으로 서로 연결된 구조를 가짐. 변환가 있을 경우 mapping부분만 수정하면 되기 떄문에 각각의 데이터는 독립성을 유지할 수 있으며 storage나 access strategy를 수정하지 않아도 됨. 따라 서 변화에도 유연하게 대응할 수 있음. |
트랜잭션: 원자성 | N/A | 트랜잭션이란 데이터베이스의 상태를 변화시키기위해 데 이터를 삽입하거나 삭제, 수정하는 등의 작업의 단위를 의 미한다. 데이터베이스의 트랙잭션에는 원자성(atomicity), 일관성(consistency), 독립성(isolation), 지속성 (durability)라는 특징을 가지고 있다. 원자성은 트랙잭션 이 데이터베이스에 모두 반영이 되든지, 아니면 전혀 반영 되지 않아야 한다는 것을 의미한다. 이러한 특징 덕에 데이 터베이스에서 데이터를 처리하다가 예기치못한 오류가 발 생하더라도 문제를 쉽게 파악할 수 있게 된다. |
다중 사용자 동시 접속 | 파일 시스템에서는 사용자가 동시 에 접속 했을때 문제가 발생할 여 지가 있음. 사용자가 각각 같은 트 랜잭션을 요청했을 떄, 이 두 사용 자를 구분할 수 없음 | 동시에 접속했을 떄 사용자를 구분하고, 우선순위를 부여 해서 작업을 수행하도록 할 수 있음 |
보안 및 권한 | 각 프로그램마다 데이터를 각각 가지고 있기 때문에 여러 경로로 데이터의 접근이 가능해지므로 보 안이 까다로움. 한 파일에서는 사 용자의 다른 권한에 따른 작업을 제한할 수 없어서, 권한에 따른 각 각 다른 파일을 따로 생성해야 함 | 데이터베이스는 모든 접근을 공통된 한 데이터베이스에서 하기 때문에 불순한 의도의 접근을 효과적으로 차단할 수 있어서 보안을 높일 수 있음. 또한 파일 시스템과 달리 사용 자들마다 다른 권한을 부여해서 작업할 수 있음 |
728x90
'study > TIL🐥' 카테고리의 다른 글
컴퓨터 Memory (0) | 2020.12.29 |
---|---|
MySQL의 마스코트는 왜 돌고래인가? (0) | 2020.12.28 |
ORM/NoSQL (0) | 2020.12.27 |
DAO란? (0) | 2020.12.27 |
데이터웨어하우스(DW)란? (0) | 2020.12.27 |