파일 시스템
데이터를 파일로 관리할 수 있도록 파일을 생성, 삭제, 수정, 검색하는 기능을 제공하며, 운영체제와 함께 설치된다.
파일 시스템 환경에서는 응용 프로그래머가 파일의 논리적인 구조뿐 아니라 물리적 구조까지 정확히 파악해야 필요한 데이터에 직접 접근하여 처리하는 응용프로그램을 개발할 수 있었다.
위의 그림과 같이 데이터가 중복되면 저장공간이 낭비될 뿐 아니라 데이터 일관성과 데이터 무결성을 유지하기가 어렵다.
해결방안 1. 파일 통합
데이터의 중복 문제는 해결되더라도 파일 시스템에는 여전히 다음과 같은 문제점이 남아있다.
문제점
- 데이터 파일이 종속적이므로 파일의 구조가 변경되는 경우 관련된 모든 응용 프로그램에서 파일에 접근하는 방법을 변경해야 한다.
- 데이터 파일에 대한 동시공유, 보안, 회복 기능이 부족하다.
- 데이터가 중복된 모든 파일의 보안을 같은 수준으로 유지하기 어렵다.
데이터를 관리하고 모든 응용 프로그램이 공통으로 요구하는 데이터에 대한 기본 처리를 담당하면서 동시 공유, 보안, 회복 등의 복잡한 기능을 제공해주는 새로운 무엇이 필요
데이터 베이스 관리 시스템(DBMS:DataBase Management System)
응용 프로그램을 대신하여 데이터베이스에 들어 있는 데이터를 삽입, 삭제, 수정, 검색하고, 모든 응용 프로그램이 데이터베이스를 공유할 수 있게 한다.
DB를 생성하고 접근하며 관리하는 DBMS가 모두 담당한다.
사용자는 직접 또는 응용 프로그램을 통해 원하는 데이터가 무엇이며, 어떤 처리를 원하는지만 DBMS에 요청하면 된다. DB와 관련한 작업은 DBMS가 수행한 후 그 결과만 응용 프로그램을 통해 사용자에게 전달해주는 것이다.
DBMS의 주요 기능
- 정의 기능 : DB 구조 정의, 수정 -> 테이블을 만들고 DB 설계하기 등
새로운 테이블을 추가하고 싶은 경우는 SQL 문법을 통해 테이블을 만들고 DBMS에 업데이트 한다.
- 조작 기능 : DB 내용 수정, 추가, 삭제, 검색, 삽입 등 연산 가능함
SQL 문법을 이용하여 DB를 조작할 경우,
DB 내의 환경이나 컬럼과 컬럼과의 관계, 테이블간의 관계 등을 정확히 알고 있어야 한다.
- 제어 기능 : 데이터의 무결성을 유지하게 되고, 장애 발생해도 회복 가능, 보안 유지, 동시 접근
DBMS는 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능을 제공한다.
** 빅쿼리, Snowflake, 하둡 등 대부분 SQL내에서 머신러닝 기능을 사용할 수 있다.
DBMS 장점
- 데이터 중복 통제
데이터가 중복되면 기업 입장에서 매출, 손익에 문제가 생겨 조직 전체가 잘못된 정보에 기반한 의사결정을 하게 된다.
- 데이터 독립성 확보
여러 사람들이 데이터를 추가, 삭제, 변경하다보면 문제가 발생하기에 DBMS가 만들어졌다.
- 데이터 동시 공유
데이터 베이스를 이용하여 만든 대시보드를 통해 모든 직원들이 의사결정을 하는데
동시 공유가 되어 있지 않으면 문제가 크다.
- 데이터 보안 향상
DBMS에서 데이터를 관리하므로 데이터 베이스를 직접적으로 수정하기 어렵다.
SQL을 이용하여 이러한 작업을 수행해야하고, 직급에 따른 권한도 줄 수 있으므로 보안이 향상될 수 있다.
- 데이터 무결성 유지
무결성이란 데이터 값이 정확한지 확인하는 것을 의미한다. 예를 들어 당일 매출 금액 값이 정확한지.
- 표준화
데이터가 타입도 다르고, 스키마 구조도 다르기 때문에 정해진 규칙으로 만들어한다.
- 장애 발생시 회복
DBMS는 시스템이 문제가 발생해도 DB 장애 발생하기 전의 상태로 바로 복구가 가능하다.
- 응용 프로그램 개발 비용 감소
단점
- 고비용
DBMS는 따로 설치해야 하므로 구매 비용이 크고, 동시 사용이 허용되는 사용자 수에 따라 제품 가격도 달라진다.
**쿼리 질의하는 시간, 쿼리 응답하는 시간을 비용으로 측정한다.
- 백업과 회복 방법 복잡
데이터양이 많아 구조가 복잡하고,
여러 사용자의 동시 공유를 지원하므로 장애 원인과 상태를 정확히 파악하기 어렵다.
- 중앙 집중화 관리로 인한 취약점
DBMS 발전과정
1세대 : 네트워크DBMS, 계층 DBMS
2세대 : 관계 DBMS
기업에서 가장 많이 사용하는 것은 다음과 같은 관계형 데이터 베이스
3세대 : 객체지향, 객체관계 DBMS
4세대 이후 : NoSQL DBMS, NewSQL DBMS
4세대 이후 DBMS는 정형데이터가 아닌 비정형 데이터를 DB에 적재할 수 있다.
'DataBase > SQL' 카테고리의 다른 글
[SQL] 관계 데이터 모델 (0) | 2023.11.12 |
---|---|
[SQL] MySQL 설치방법 (0) | 2023.10.16 |
[SQL] 데이터베이스 시스템(2), 데이터 모델링(1) (1) | 2023.10.06 |
[SQL] 데이터베이스 시스템(1) (0) | 2023.09.23 |
[SQL] 데이터베이스(DB)의 기본 개념 (0) | 2023.09.22 |