사용자는 언어를 사용해서
1) DB에 데이터를 생성하거나(DDL)
2) 데이터를 조작하거나(DML)
3) 데이터를 검색한다(SQL)
Database interface는 다양한 툴이 존재
다사용자의 GUI와 비슷하지만, 혼자 씀
- GUI 도구를 사용해서 DB의 테이블을 생성하고 데이터를 저장한다.
이 보고서도 하나의 데이터 베이스 인터페이스임.
- 사용자의 인터페이스 part
- DBA Staff: 전문가
- Casual Users: 가끔 사용하는 사람
- Application Programmers: app 만드는 개발자
질의처리기가 위 사용자의 요구사항을 받아서,
- Stored Database를 관리하는 저장관리자가
System Catalog는 DB랑 항상 쌍으로 존재.
데이터베이스 유틸리티
편의성 제고 위해 여러가지 툴 제공
데이터베이스 아키텍쳐
이런 DBMS들이 어떤 형태로 실제로 운영되는가?
중앙집중형 DBMS 아키텍처
:DBMS가 하나의 컴퓨터 시스템 안에 존재할 때
- 사용자는 터미널이나 PC를 이용해서 중앙집중형 DB에 접속한다.
- EX) 전세계 국민은행 고객들은 서울에 있는 서버에 접속한다. 이 서울 DB를 중앙집중형 DB라 한다.
- 모든 DB관리 기능은 중앙에 두고, 나머지 원격지에 있는 사람들은 네트워크를 사용해서 DB를 사용하게 하는 운영방식.
- 모든 DBMS의 기능 (실행, 유저 인터페이스) 이 하나의 machine에서 이뤄짐.
- 단점: 사용자 수가 많아지면 컴퓨터 병목 형상 생김 - 다 서울쪽으로 접속하기 때문에 네트워크 부하가 커짐.
- 초창기에는 이 방식을 많이 썼지만, 이제는 잘 사용안됨.
Client-Server 아키텍쳐 (2-tier)
하나의 컴퓨너임.
- 중앙 집중혁 아키텍처의 터미널이 하는 역할보다도 client에서 하는 역할이 많아짐 : 중앙 집중혁 아키텍처에서 모니터는 단순히 입출력
Client-Server 아키텍쳐 (3-tier)
-
항상 병목현상은 DB에서 생긴다. : DB는 한번만 저장을 하고 모든 사용자, application이 공유하기 때문이다.
=> 이 부분을 완화한게 3tier architecture
-
생산된 제품이 수많은 소비자한테 팔려나갈 때는 물류회사를 중간에 끼는게 좋음.
DBMS의 분류
DBMS를 다른 관점으로, 데이터 모델 관점에서 분류해보자.
- Relational: 우리가 배우는 관계형 db
- 객체 모델: Relational db 단점 보완하기 위해 만들어짐. 어떤 경우에는 객체 관계 DBMS를 지원하기도 함.
- 계층 모델, 네트워크 모델: 지금은 잘 사용하지 않음.
- XML DBMS: XML문서가 많이 활용되기 때문에 생김.
- NoSQL: 빅데이터를 위한 DB
사용자 수 관점
- 한 사람을 서비스
- 다사용자 고객을 지원하는 DBMS
사이트 개수
- 중앙집중형 DBMS
- 분산 DBMS : 여러 컴퓨터에 DATA를 나눠서 저장.
요약