DB - 데이터베이스
데이터베이스는 클라이언트가 요청한 데이터 정보의 조직화된 모음으로 웹 서버에 데이터를 보관하는 저장소입니다
웹 구조 때 설명한 것처럼 네이버에 로그인할 때 사용자의 로그인 정보가 네이버 웹 서버 데이터베이스에 저장된다고 보면 됩니다
🧫 데이터베이스의 정의
1. 공유 데이터(Shared data) : 어느 하나의 프로그램에 속한 것이 아니라 대다수의 사용자나 프로그램의 공동으로 공유 가능한 데이터입니다
2. 통합된 데이터(Integrated data) : 데이터가 중복되지 않는 것을 의미합니다
3. 운영 데이터(Operational data) : 데이터베이스는 업무를 수행하기 위해 지속적으로 데이터를 유지해야 하는데 이를 유지하기 위해 필요한 데이터다
4. 저장된 데이터(Stored data) : 컴퓨터가 접근할 수 있게 기억장치에 저장된 데이터다
🧫 데이터베이스의 특징
데이터베이스의 정의를 지키기 위해 아래와 같은 내용을 가집니다
1. 실시간 처리 : Query(질의)에 대하여 실시간으로 처리해야 합니다
2. 변화 : 저장된 데이터가 최신의 정보로 정확하게 저장되어 있는지 처리해야 합니다
3. 동시 공유 : 원하는 데이터를 동시에 공유할 수 있어야 합니다
4. 내용에 대한 참조 : 데이터의 위치나 주소가 아닌 데이터의 내용에 따라 참조해야 합니다
DB(데이터베이스)는 실시간으로 대다수의 사용자들이 공유하는 데이터를 내용에 따라 참조하여 변화시킬 수 있어야 합니다
Query : 데이터베이스에 정보를 요청하는 일
⚙ 데이터베이스를 관리하는 DBMS
데이터베이스는 DBMS(Data Base Management System)에 의해 제어됩니다 데이터베이스 내의 데이터를 접근할 수 있도록 도와주거나 사용자에 의해 클라이언트가 요청한 정보를 응답하여 데이터를 사용할 수 있게 합니다
웹 구조 때 설명한 WAS 달리 DBMS는 DB 안에서 데이터를 저장하고 관리하여 WAS에게 필요한 데이터를 전송해 줍니다 즉 WAS는 전송받은 데이터를 웹 클라이언트에게 제공하는 역할을 합니다 ( WAS와 DBMS는 서로 다른 역할을 한다 )
대표적으로 Oracle, MySQL, MSSQL 등 DBMS에 의해 제어됩니다
SQL(Structured Query Language) : 데이터베이스에 데이터를 추출하고 조작하는 데 사용하는 데이터 처리 언어이다
⚙ DBMS의 기능과 특징
정의 기능 : DBMS가 DB의 구조를 정의하는 기능을 제공한다
조작 기능 : DBMS는 DB의 데이터를 관리한다(생성, 검색, 수정, 삭제)
제어 기능 : DBMS는 DB의 데이터를 동시 공유, 회복, 보안 기능을 제공한다
파일 시스템 | DBMS |
데이터 중복 저장 문제 | DBMS는 데이터를 통합하고 관리하므로 데이터의 중복을 최소화한다 |
데이터 종속 문제 | 응용 프로그램이 DBMS를 통해 데이터에 접근하는데 이때 응용 프로그램은 데이터파일에 독립적이다 |
데이터 동시 공유 불가능 | 데이터를 공유하여 응용 프로그램이 관리하던 데이터 관리의 부담을 감소시킨다 |
데이터의 회복 불가능 | 시기별로 데이터 저장 회복 기점을 생성하여 문제가 발생하면 이전에 기점으로 회복시켜줌 |
데이터 보안 | 대다수의 사용자가 접근하는 권한을 관리하므로 보안 관리가 쉽다 |
⚙ DBMS의 장점과 단점
DBMS 장점 | DBMS 단점 |
데이터 중복을 통제한다 | 비용이 많이 든다 |
데이터의 독립성이 확보된다 | 백업과 회복 방법이 복잡함 |
데이터를 동시 공유할 수 있다 | 중앙 집중 관리로 인한 취약점이 존재함 |
데이터 보안이 향상된다 | |
데이터 무결성을 유지할 수 있다 | |
응용 프로그램 개발 비용을 줄일 수 있다 | |
데이터 회복이 가능하다 |
DBMS 핵심 개념 : 대용량의 데이터를 저장 및 관리할 수 있고, 공유 개념인 동시에 다른 사용자가 공유할 수 있어야 한다 (데이터베이스는 대다수의 사용자나 응용 프로그램을 공유하고 동시에 접근이 가능해야 함)
⚙ DBMS의 종류
DBMS | 특징 |
MySQL | 오픈 소스 데이터베이스 Window, Linux 등 다양한 운영체제 지원 Oracle에 비해 대용량 데이터 처리는 어려움 |
Oracle | 가장 먼저 상업용으로 발표된 관계형 데이터베이스 Window, Linux 등 다양한 운영체제 지원 대용량 데이터 처리가 강함 단점으로 비용이 많이 들고, 대기업에서 주로 사용 |
MSSQL | 마이크로소프트사에서 만든 상업용 데이터베이스 비공개 소스, 윈도우에 특화됨 |
MariaDB | MySQL과 동일하게 소스 코드 기반, C++로 만들어짐 MySQL과 비교하여 애플리케이션 속도가 빠름 |
PostgreSQL | 객체 관계형 데이터베이스 시스템 오픈소스이며 대부분 운영체제 지원 ( 리눅스 환경에서 많이 사용 ) 연산자와 복합 자료형 등 데이터베이스의 객체를 사용자가 임의로 만들 수 있다 |
[ 참고 자료 ]