통신을 위한 기본 원리
기계어를 모르면 명령을 못내린다.
그래서 DBMS에 영어로 명령을 내린다
툴( ex)HeidiSQL )을 접속하면 DBMS와 소켓을 달아서 통신한다.
툴을 통해 QUERRY를 전송한다
READ(SELECT)를 INPUT하면 DBMS가 파싱해서 툴에 전송한다
WRITE: 하드디스크를 수정하겠다(INSERT,UPDATE,DELETE)
INSERT는 데이터를 요청해도 입력만 하는 것이기에 정보를 받지 않아도 된다
UPDATE는 UPDATE 수정할 데이터를 입력하고 DBMS에서 데이터를 가지고 있는 상태에서 SELECT를 하고 DELETE를 한 뒤 INSERT를 해서 보낸다
DELETE는 요청을하면 DBMS에서 WRITE(DELETE)를 하게 된다.
>>ex) INSERT를 3을 요청할 때 2를 주는 것은 INSERT가 되지 않았다 >> 이게 오류는 아니다
문법이 틀리면 -1을 돌려준다 (프로토콜)
>> wait나 lost가 걸리면 포트가 다르거나 ip가 다르거나 실행이 되지 않았다는 뜻이다.
DBMS는 데이터베이스 소켓이 연결되어 있다
DBMS는 반이중 형태이다(효율이 제일 좋다 REQUIRE하고 REQUEST만 해주면 되기 때문에)
- HTML은 IP와 포트번호만 알면 연결이 된다
- DBMS는 IP, 포트번호, ID, PASSWORD, 프로토콜명을 알아야 연결이 된다 (개인정보가 있기 때문에 아무나 들어올 수 없게 해야 한다.)
JDBC의 원리
- 세션을 만든다 (통신 연결이 되었고 세션이 만들어졌다)
통신의 기본원리 5가지
- IP주소
- 포트번호
- ID
- PASSWORD
- 프로토콜
- 기본적으로 연결은 IP와 포트번호가 있으면 되지만 데이터베이스와 통신을 할 때는 중요정보까지 포함되어있는 경우가 있기 때문에 ID와 PASSWORD를 함께 넣어주어야 연결이 된다
데이터 통신의 기본적인 순서
- 클라이언트에서 쿼리(WRITE)를 서버에게 날리게되면
- 서버는 리스너를 통해 쿼리를 읽어들인다(READ)
- 서버에서 클라이언트가 요청한 데이터를 파싱을 한다.
- 파싱한 데이터를 RAM에서 찾는다
- 찾는데이터가 없으면 HDD에서 검색해서 찾아준다(HDD내부에는 파일 시스템(FS)과 데이터베이스시스템(DBS)이 존재하며
- HDD에서 데이터를 찾게 되면 다시 RAM으로 넘겨준다
- RAM에서 받은 데이터를 서버가 받게되면 데이터를 쓰고(WRITE) 클라이언트에게 전송한다
- 전송받은 데이터를 클라이언트가 읽어들인다(READ).
캐싱이란?
위에 그림에서 요청받은 데이터를 RAM에서 바로 찾았다 이것을 캐싱이라 한다. 즉 상대적으로 가까운 저장공간에서 데이터를 찾았다는 것을 말하며 캐싱이 되었다는 것은 RAM으로 부터 하드디스크까지 가는 I/O가 생략이 되었다는 것을 말하고 통신이 빨라진다.
램의 메모리가 가득차면?
램의 메모리가 가득차게 되면, 램의 공간을 확보하기 위해 가장 오랫동안 사용하지 않은 데이터를 하드에 기록하는데, 하드에 기록이 되어있다면, 없어지고 기록이 되어있지 않다면 기록한다
그리고 새로 입력된 데이터를 새로 쓴다.
데이터베이스시스템(DBS)에서의 TABLE?
- 데이터베이스 시스템 내에서 데이터는 논리적인 구조로 표현되며, 이러한 논리적인 구조는 테이블(Table)이라는 개념으로 표현된다.
- 테이블은 데이터베이스 시스템에서 데이터를 구조화하고 저장하는 데 사용되는 가장 기본적인 단위이다.
- 테이블 스페이스는 데이터를 물리적으로 저장하는 공간이다. 테이블 스페이스는 데이터베이스 시스템에서 데이터를 효율적으로 관리하고 성능을 최적화하는 데 사용된다.
데이터베이스
STRING은 안되고 CLASS로 받아야 한다
요약
자바가 다른세계(데이터베이스)로부터에서 데이터를 받으면 파싱해서 내 세상의 오브젝트(자바오브젝트)에 넣어야한다는 것이다
데이터베이스로부터 INSERT, DELETE, UPDATE 데이터를 날리면 INT로 받을 수 있다
1이 날라오면: 행의 변경 갯수를 리턴 해준다
SELECT 데이터를 날리면 DABLE DATA를 받을 수 있다
Share article