- 데이터베이스 : 정보를 필요에 따라 모아 놓은 것 → 조직, 개인이 사용하고, 조작 가능한 데이터의 모임 ex. 회사 파일 캐비닛
- 데이터 : 실세계의 실체를 묘사하는 값 (사실 자체의 일차적인 표현) ex. 1-1 : 2.5 / 1-2 : 3.0 / 2-1 : 3.0 / ...
- 정보 : 데이터를 포함하고, 데이터로 추측할 수 있는 사실까지 포함함. ex. 평균평점 : 2.78 / 표준편차 0.31 / 성적추이 등등
- 지식 : 데이터와 정보를 처리하는 방법, 규칙, 법칙 등을 포함함 ex. 검색한 키워드의 관련 정보를 알고리즘으로 띄워줌.
★ 현실세계 - (추출) -> 데이터 - (처리) -> 정보 - (추론) -> 지식
- 데이터베이스 : 데이터의 모임 → 정형화, 조작 가능, 처리 용이, 컴퓨터 저장 → 특정 목적을 위해 데이터 처리
☞ 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모임
- 컴퓨터에서 처리되는 데이터
1. 일시적데이터 : 해당 프로세스가 실행되는 동안만 일시적으로 존재 (ex. 프로그램의 변수 등)
2. 영구적데이터 : 프로세스의 생명주기에 종속적X 스스로 존재함 (ex. 하드디스트, SSD 등)
☞ 데이터베이스는 영구적인 데이터의 모임임.
.
.
.
컴퓨터에 저장된 데이터베이스를 수행하는 프로그램은 무엇일까? 바로 데이터베이스 관리 시스템(DBMS) 임. (S/W)
DBMS는 컴퓨터에 저장되는 데이터 베이스를 관리해주는 소프트웨어 시스템임.
물건 | 데이터 |
창고 | 데이터베이스 |
창고관리인 | DBMS |
직원 | 응용프로그램 |
데이터베이스 관리 시스템에는 두 가지 종류가 있음.
1. 관계형 모델에 기반한 관계형 DBMS (오라클, IBM 등등)
2. 비관계형 모델에 기반한 비관계형 DBMS (hashMap 등등)
종류도 알아보았으니, DBMS가 정확히 어떤 기능을 하는지 알아보자.
- 데이터모델이란 틀로 정보를 표현함. 다양한 정보의 표현이 가능해야함.
- 데이터를 공유함. 그래서 여러 응용 프로그램에서 하나의 데이터에 접근, 수정 등등이 가능하므로 데이터 중복을 피할 수 있음 (효율성 + 일관성)
- 하나의 프로그램이 끌날 때까지 해당 데이터를 독점할 수 있게 함. 즉, 동시성 문제도 해결 (ex. 좌석예약)
- 데이터가 오류없이 정확함. 데이터의 무결성을 유지시켜줌. 어떻게? 불필요한 중복을 막고, 제약조건을 시킬 때만 DB에 저장.
- 응용프로그램과 데이터 간의 독립성을 보장함. 응용프로그램은 데이터의 저장위치를 몰라도 됨. 종속적인 프로그램의 경우, 데이터의 저장위치를 고려하게 되면, 나중에 데이터를 수정할 때 응용프로그램도 수정해야하므로 문제가 있음. 하지만 DBMS는 그럴 일이 없음.
- 효율적으로 시스템 자원 관리가 가능함. 많은 양의 데이터를 다루므로 효율/효과적인 방법들이 사용됨. 디스크에 데이터 배치, 디스크에서 주기억장치로 데이터를 불러들임 등등의 자원관리를 수행함.
- 사용자 인증, 데이터에 대한 다양한 접근권한 관리 등 자체적으로 데이터를 보안하므로 데이터 보안성이 높음. 또 정전과 같은 예기치 못한 상황 발생 시, 체계적인 수습 및 복구가 가능하므로 데이터 안정성도 높음.
.
.
.
DBMS가 나오기 전에는 어떻게 데이터를 관리했을까? 바로 파일시스템에서 해당 역할을 수행했다.
파일시스템은 운영체제의 핵심 구성요소이기도 하는데, 데이터/프로그램을 디스크에 읽고/쓰기를 가능하게 하는 프로그램이다. 이를 이용하면 디스크에 데이터를 영구적으로 저장이 가능했다. 마치 DBMS처럼 말이다.
그러나 운영체제의 구성요소였으므로 데이터 처리하는데는 부족함이 있기도 하였다.
- 프로그램 이외의 방법으로도 데이터 조작이 가능하여 쉽게 변형됨. 즉, 무결성 유지에 어려움.
- 프로그램과 데이터 형식이 묶여 있으므로 종속적인 프로그램이었음.
- 동시 접근에 대한 제한이 없었음.
- 간단히 접근권한설정이 가능했으므로 보안 문제도 있었음
- 장애복구에도 문제가 있었음.
그래서 데이터베이스를 다루는 데 최적화된 DBMS가 등장하게 된 것임.
그렇다고 파일 시스템이 없어진 것이 아님. 현재는 파일 시스템 위에 DBMS가 존재하는 형태임.
파일시스템은 기본적인 저장 기능만 제공하고, DBMS에서 데이터베이스 관리에 필요한 다양한 기능들을 제공하고 있음
.
.
.
이제 DBMS를 다루는 여러 사람들을 살펴보자.
- 최종사용자(일반사용자) : 응용프로그램이 제공하는 사용자 인터페이스를 이용하여 업무를 처리함
- 최종사용자(숙련된사용자) : 응용프로그램 없이 DBMS에서 제공하는 도구/언어로 이용함.(SQL)
- 데이터베이스관리자 : DBMS를 사용하기 위해 하드웨어 또는 소프트웨어 중앙에서 관리 감독함.
- 응용프로그램개발자 : 프로그램 제작 시, DBMS를 이용하여 개발함.
- DBMS 개발자 : DBMS를 개발함. (DBMS는 시스템소프트웨어임)