데이터베이스
데이터베이스란?
관련된 데이터의 모임. 조직/개인이 사용하는 조작 가능한(처리하기 용이한), 저장된 데이터의 모임.
(예 : 사장실의 파일 캐비닛 – 주소록, 계약서 등 관리(각각 하나의 데이터베이스를 구성))
데이터, 정보, 데이터베이스
- 데이터 : 실세계의 실체를 묘사하는 값. 정형화되고 기록할 만한 가치가 있다고 판단되는 어떤 현상이나 사건, 아이디어에 대한 묘사(객관적임)
- 정보 : 데이터를 일차적으로 처리해서 컴퓨터로 나타낸 것(객관적임)
- 지식 : 데이터&정보에 비해 상위 수준의 개념. 데이터/정보를 가지고 이들을 처리하는 방법 이나 어떤 근거에 대한 판단을 내리는데 필요한 분석과 판단에 관한 법칙 등을 포함 (주식이 오를 것인가). 주관적임
일시적 데이터 & 영구적 데이터
- 일시적 데이터 : 프로세스가 실행되는 동안만 일시적으로 존재 (예 : 프로그램의 변수). 휘발성
- 영구적 데이터 : 프로세스와 상관x. 프로세스의 생명주기에 종속적이지 않고 스스로 존재. 비휘발성
* 일반적인 데이터 베이스는 영구적 데이터임 (지속적인 데이터)
데이터베이스 관리 시스템 (DataBase Management System)
DBMS : 디스크에 저장돼있는 데이터베이스를 관리해주는 소프트웨어 시스템 (예 : 오라클, 티베로, MySQL)
<DMBS가 제공하는 기능>
- 정보를 표현할 수 있는 틀 : 프레임 제공. DBMS가 정보를 관리할 수 있는 양식.
현실 세계의 정보를 컴퓨터에 저장시키는 양식이므로, 다양한 정보의 표현이 가능해야함
- 데이터의 공유
→ 데이터 중복 제거(동일한 데이터는 하나의 데이터로 관리). 데이터를 공유함으로써 비효율성과 일관성 문제를 제거
→ 동시성 문제 : 여러 프로그램에서 같은 데이터에 접근하면 문제 생길 수 있음. DBMS가 동시에 실행해도 되는지 판단함.
하나의 프로그램이 일을 마칠 때 까지 해당 데이터 독점하도록 하는 방법 등 사용
- 데이터의 무결성 유지 기능
→데이터가 얼마나 정확한가?
- 데이터 독립성
→응용프로그램과 내가 사용할 데이터 사이의 독립성을 보장해줌. 응용프로그램은 데이터가 디스크에 구체적으로 어떻게 저장 돼있는지 몰라도 됨
→데이터에 종속성 : 데이터의 구조와 저장형태를 고려한 응용프로그램 구현으로, 나중에 데이터의 저장형태나 구조 바꾸려 할 때 응용프로그램도 바꾸지 않으면 안됨
- 효율적인 자원관리 기능
→많은 양의 데이터를 다루는데 더 효율적인 방법들을 사용.
- 데이터의 보안성&안정성 유지 기능
→DBMS가 관리하는 모든 데이터에 대해 자체적인 보안 기능 제공. 보안성(사람으로부터 데이터 보호),
안정성(컴퓨터 장애/고 장 등으로부터 보호)
DBMS가 없다면? 이 모든 기능들을 프로그래머가 책임 져야하는 것임
파일 & 데이터베이스
- 파일시스템 : OS에서 관리함. 운영체제의 중요한 부분으로 데이터/프로그램을 디스크에 읽고 쓸 수 있게 해주는 프로그램
- 프로그램에서 다루는 데이터를 직접 하나의 파일에 저장해 관리하는 경우의 문제점
: 프로그램 이외에도 데이터 조작 가능(예 : 아래 한글 파일을 메모장으로 읽어 작업하기 – 데이터 보안 문제 생김). 프로그램과 데이터 형식이 묶여있음. 동시 접근의 문제. 보안 문제. 장애 복구 문제
→ DBMS는 데이터베이스를 다루는 데 있어 필요한 공통의 기능을 제공하는 소프트웨어 시스템임
- 파일 시스템 : 기본적인 저장 기능만 제공
- DBMS : 데이터베이스 관리에 필요한 다양한 기능
데이터베이스 시스템과 사용자
- 최종 사용자 : end user. 데이터베이스 사용하는 지도 모르고 응용 프로그램이 제공하는 인터페이스 통해 사용하는 사람들. 숙련된 최종 사용자는 응용프로그램을 이용하지 않고 DBMS에서 직접 사용
- 응용 프로그램 개발자 : DBMS을 이용한 응용프로그램을 개발하는 사람
- 데이터베이스 관리자(=DBS. DataBase Administrator) : DBMS와 이와 관련된 하드웨어/소프트웨어를 관리 감독 하는 사람
DBMS 개발자 : DBMS를 개발하는데 관여하고 DBMS를 구성하는 모듈들 설계&구현하는 사람