비즈니스의 사이즈가 늘어나면서 도서의 수가 늘어난다.
진짜 컴퓨터가 아니라 텍스트 에디터 수준
엉망으로 관리, 컴퓨터를 사용하기 시작함
• 도서 : 10,000권
• 고객 : 서울 지역 고객
• 업무 : 회계 업무(컴퓨터 사용), 데이터베이스 시스템
• 고객 서비스 : 클라이언트/서버 시스템으로 지점을 연결하여 도서 검색 서비스 제공
지점마다 컴퓨터 설치하고 한군데 본사(DB)에서 관리한다.
"DB의 시작"
웹서버의 등장(+DB를 끌어와서 보여주는 웹서버)
모바일앱이라는 인터페이스로도 제공한다. 모바일 서버의 등장(역시 DB를 끌어와서 보여줌)

1) 데이터를 프로그램 내부에 저장하는 방법(원시적)
ex> 구조체 만들어서 변수에 저장하고 컴파일
계속 소스코드 변경하고 컴파일해야함 귀찮다...
2) 파일시스템을 사용하는 방법(데이터 관리 목적, 컴퓨터는 많이 발전 못했을때)
ex> 파일로 저장후에 소스코드로 읽어온다.
그러나 book.txt파일을 A라는 사람이 열고 보다가 B라는 사람이 열러고 하면 다른 사용자가 사용중이어서 열리지 않는다. 여러사람이 한개의 파일을 공유하는 것이 매우 힘들다.
3) DBMS를 사용하는 방법(현재)


구매파일과 판매파일끼리 데이터를 공유할 수 없다.

동시성: 여러프로그램이 동시에 접속했을 경우

DBMS: MySQL, ORACLE
데이터베이스: 집
데이터 모델: 집을 설계하는 것(Relational Data Model)

응용프로그램화면: 웹페이지
DBMS는 주기억장치(메모리)에 존재
MySQL(DBMS)은 메모리에 존재하면서 HDD에서 필요한 데이터를 끌어다가 쓴다. 메모리는 상대적으로 사이즈가 작음(핵심정보들만)

(구매데이터 + 판매데이터) 통합 할떄 어떤식으로 할것이냐?
데이터베이스는 각 조직에서 사용하는 데이터를 모아서 통합하고 공유할 목적으로 구축
1> 통합된 데이터(integrated data)
데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상을 제거
2> 저장된 데이터(stored data)
문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
3> 운영 데이터(operational data)
조직의 목적을 위해 사용되는 데이터, 즉 업무를 위한 검색을 할 목적으로 저장된 데이터
4> 공용 데이터(shared data)
한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미
1) 실시간 접근성(real time accessibility)
데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스한다.
2) 계속적인 변화(continuous change)
데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다. 데이터베이스는 삽입, 삭제, 수정 등의 작업을 통하여 바뀐 데이터 값을 저장한다.
3) 동시 공유(concurrent sharing)
데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 동시는 병행이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미이다.
커밋: 어떤사람은 돈넣고 어떤사람은 뺀다.(동시에) 이러면 손실이 날 수 있다. 데이터가 들어오면 일시적으로 중지시킬 수 있다. 실시간으로 반영안되지만 기다리게 해줌. 나이제 다했어 하고 "커밋"을 한다. 그러면 다 반영이 됨. 손실을 최소화 하기 위해서 하는 것임
4) 내용에 따른 참조(reference by content)
데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.
파일시스템은 물리적인 위치에 따른 참조이다.