database?
: 단지 데이터가 많이 있는 것(ex. 책, 문서, 전화번호부....)==> 컴퓨터와 무관한 데이터들의 구조적 집합이다!
DBMS?
: 데이터 베이스를 컴퓨터 시스템을 통해 관리하는 것(ex. oracle, MySQL...)
==> 이 DBMS를 통해 한 데이터 베이스를 수많은 응용 프로그램들이 공유함으로써
전사적으로 정보를 관리함.
WHY we need a DBMS?
: 응용 프로그램마다 데이터 베이스를 따로 만들어 줄 수 없기 때문에!
=> why?(데이터베이스를 따로 만들어 줄수 없는 이유)
1. 데이터의 일관성 문제(Consistency)
: 데이터를 데이터 베이스마다 따로따로 저장해 두는 경우 데이터들을 일관되게
유지하는 것에 어려움이 발생함
(ex. A 데이터베이스에는 군필로 저장, B데이터 베이스에는 미필로 저장된 경우
재입대를 해야할 수 있음)
2. 데이터의 중복성의 문제(Redundancy)
: 데이터를 데이터 베이스마다 따로따로 저장해 두는 경우 데이터가 중복되는
경우가 발생함
(ex. A데이터베이스에도 B데이터 베이스에도 동일한 내용이 저장될 수 있음)
3. 데이터의 접근성의 문제
: 새로운 프로그램을 만들때 마다 별도의 데이터 베이스를 요구하는 상황이 발생함
4. 데이터의 종속성의 문제(Dependency)
: 중속성이 강할 때 프로그램의 변경이나 데이터의 형태 및 종류를 변경하는 경우
연관된 모든 프로그램을 변경해야하는 경우가 발생함
5. 데이터의 독립성의 문제(Isolation)
: 데이터와 프로그램의 독립성이 약할 경우 하나의 수정 작업이 다른 작업에 영향을
주는 경우가 발생함
6. 데이터의 동시사용성의 문제
: 동시에 일련의 작업들이 이루어지는 경우 올바른 수행이 일어나지 않는 경우가
발생함
(ex. 두 사람이 동시에 한 계좌에서 돈을 인출하는 경우 양쪽에서 인출 될 수 있음)
7. 데이터의 원자성의 문제
: 일련의 작업들을 시스템에 문제가 발생한 경우 작업이 취소되는 경우가 발생함
(ex. 계좌이체 도중 내 계좌에서는 인출이 된 후, 다른 계좌로 입급되기 직전에
정전이 일어난다면 이체된 금액이 사라질 수 있음)
8. 데이터의 무결성의 문제
: 요구되는 조건에 따라 데이터가 입력되지 않는 경우가 발생함
(ex. 남자가 M이고 여자를 F로 입력받기로 프로그램을 만들었는데 사용자가 A를
입력하는 경우 무결성이 깨질 수 있음)
DBMS는 이러한 문제를 모두 알아서 관리해준다!!
How can applications use DBMS?
==> DBMS의 구조를 통해 알 수 있다.
1. Physical level : 하나 또는 수많은 하드디스크에 여러 데이터들을 마구 저장한다.
2. Logical level : 수 많은 하드에 저장된 데이터들을 물리적 구조 사상에 의해 정갈하게
맵핑해준다.
3. View level : logical에서 필요로 하는 데이터를 논리적 구조 사상에 의해 구분한 뒤
필요한 데이터 만을 응용프로그램에 제공한다.
이러한 이유들로 초기에 데이터 베이스는 위의 모습이었으나
현재에는 위의 모습으로 바뀌어 졌다.
DBMS Architecture
유저
|
프로그램
|
|
|
|
SQL을 실행하는 level --- > view level
|
|
|
블록을 읽고 쓰는 level --- > Logical level
|
|
|
Disk level --- > Physical level
(데이터, 데이터 저장형태(char, int) 등을 저장)
댓글 없음:
댓글 쓰기