우리 생활 주변의 데이터베이스
- 데이터베이스 : 정보를 필요에 따라 모아 놓은 것. 정보를 일정 기준에 따라 분류해 놓거나 인덱스를 만들어 자료를 쉽게 찾을 수 있다.
데이터, 정보, 데이터베이스
데이터, 정보, 그리고 지식
-
데이터 : 가장 작고 원소적인 단위로 실세계의 실체를 묘사하는 값.
-
정보 : 데이터를 포함하면서 이들로부터 유도될 수 있는 유추된 사실까지도 포함하는 것.(데이터와 그 성질의 구분이 명확하진 않다.)
-
지식 : 수동적이고 정적인 데이터나 정보에 비해 방법, 규칙, 법칙 등을 포함한다.
이 3가지는 세계의 추상화 정도에 따라 구분된다.
데이터베이스
: 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모임.
- 목적 : 정보의 이용
어떠한 정보인가, 다루는 주체가 어떤 조직인가에 따라 목적은 달라진다.
정보를 목적에 맞게 이용하려면 데이터들을 계산, 정렬 , 연산 과정을 거쳐야 한다.
* 연산(operation) : 특정 조건을 만족하는 정보만을 가려냄.
일시적 데이터와 영구적 데이터
상황 :
프로세스의 변수들과 프로그램 코드가 주기억장치 내에 할당된 자리를 잡고 수행.
프로세스가 수행을 마치면 할당되었던 부분은 운영체제가 돌려받아 다른 프로세스에 사용.
-
일시적 데이터 (transient)
: 프로세스가 종료되면 잃어버리는 데이터.
프로세스에 종속적임. -
영구적 데이터 (persistent)
: 프로세스가 종료되기 전에 변수에 담겨있던 데이터를 비휘발성 보조 기억장치에 기록하여 그 위치와 형식을 알고있는 데이터.
프로세스에 종속적이지 않음.
*프로세스 : 프로그램이 실행되는 상태의 모습.
데이터베이스는 영구적인 데이터의 모임이다.
데이터베이스 관리 시스템 (DBMS)
: 컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템.
-
인터페이스 제공
-
정보 표현을 위한 틀 = 데이터 모델
: DBMS가 정보를 관리하는 양식일 뿐 아니라 현실세계의 정보를 컴퓨터에 저장시키는 양식이므로 다양한 정보의 표현이 가능해야한다. -
데이터의 공유
: 공유를 가능하게 하여 불필요한 데이터의 중복을 피할 수 있어 비효율성과 비일관성 의 문제들을 사전에 방지할 수 있다.
하지만 동시에 같은 데이터로 작업을 할 때 동시성 문제가 생길 수 있는데 이는 하나의 단위 프로그램이 일을 마칠 때까지 해당 데이터를 독점하도록하는 방법으로 해결할 수 있다. -
inconsistency 비일관성, concurrency 동시성
-
데이터의 무결성 유지
: 데이터에 결점이 없는 성질을 말하는 것으로서 DB내의 데이터가 얼마나 정확한가를 의미한다.
올바른 데이터 입력과 중복 데이터의 즉각적인 변경이 영향을 미친다. -
integrity 무결성
-
데이터 독립성
: 응용 프로그램과 데이터 간의 독립성을 말한다. 응용 프로그램은 데이터가 디스크에 구체적으로 어떻게 저장되어 있는가를 알면 종속적, 모르면 독립적이다.
종속적이면 데이터의 저장형태나 구조를 바꾸려 할 때 응용 프로그램 역시 수정해야 한다.
독립적이면 데이터를 바꾸어도 응용 프로그램에는 영향을 미치지 않는다. -
효율적인 자원관리
: DBMS는 디스크상에 데이터를 배치하거나 검색하는 등의 작업을 할 때 가장 효율적으로 처리할 수 있는 방법들을 찾는다. 운영체제도 이 기능을 수행하긴 하지만 DBMS보단 효율성이 떨어진다. -
데이터의 보안성과 안정성 유지
: DBMS 자체적인 보안 기능을 제공. 데이터의 종류와 접근권한의 종류에 있어서 일반OS보다 다양하게 제공한다. (사람으로부터 데이터 보호, 보안성)
컴퓨터 장애나 고장 등으로부터의 보호, 복구 가능.(안정성)
파일과 데이터베이스
파일 시스템에서의 데이터 관리
파일 시스템 : 운영체제의 중요한 부분으로 데이터나 프로그램을 디스크에 쓰고 읽을 수 있도록 해주는 프로그램.
DBMS가 나오기 이전에 데이터베이스를 파일 형태로 저장하여 사용했음.
(DBMS를 하나하나 직접 구현해서 썼다고 보면 된다. -> 신뢰성 취약)
파일 시스템을 사용함으로써 발생될 수 있는 문제들
-
프로그램 밖에서의 데이터 조작
-
프로그램과 데이터 형식의 통합
: 프로그램이 데이터 파일에 종속적이게 되어 통합이 어려움. -
동시 접근
-
보안
-
장애 복구
문제를 해결하고자 한다면 각 문제에 따른 응용 프로그램을 개발해야하는 불편함이 있음.
파일 시스템을 이용하는 DBMS
DBMS도 컴퓨터 시스템상에서 돌아가는 프로그램이기 때문에 운영체제의 제어 하에서 수행되며 그 도움을 받는다.
응용 프로그램들을 DBMS를 통해 DB의 데이터에 접근하며, DBMS는 그 DB를 디스크에 파일의 모습으로 저장한다.
이 때, 파일 시스템을 기본적인 저장 기능만을 제공한다.
데이터베이스 시스템과 사용자
-
최종 사용자(end user)
: 응용 프로그램을 이용하는 일반 사용자로 응용 프로그램이 제공하는 사용자 인터페이스를 이용하며 해당 응용 분야의 업무를 처리한다.
숙련된 사용자는 응용 프로그램을 통하지 않고 DBMS자체에서 제공하는 인터페이스를 이용하여 이용할 수도 있다. (SQL) -
응용 프로그램 개발자(application programmer)
-
데이터베이스 관리자(DB Adiministrator)
: DBMS는 여러 응용 프로그램이나 최종 사용자들이 사용하는 일종의 자원이다. 그 운용을 위해서는 하드웨어나 운영체제의 자원들을 이용하는데 이 자원들을 중앙에서 관리 감독하는 사람이 DBA다. -
DBMS 개발자
: DBMS를 구성하는 모듈들을 설계하고 구현한다. 실제로 저장되는 데이터의 내용에는 관심이 없다. 따라서 각 모듈들은 범용적으로 설계되어야 한다.
'Practice & Study > Database' 카테고리의 다른 글
Chap2 의 연습 문제 (0) | 2020.11.03 |
---|---|
Chap2. 관계형 데이터베이스 (0) | 2020.11.03 |
information (0) | 2020.11.03 |