데이터베이스: 데이터 확인에 용이하도록 저장장치 내에 정리된 데이터의 집합.
영구적으로 보존되어야하므로 비휘발성 저장장치(SSD, 하드디스크 등)에 보관됨
1-1. 시스템 내의 데이터베이스
일반적으로 데이터베이스는 데이터센터 서버에서 운용햇지만 현재에는 웹시스템, POS, 휴대전화 등으로도 접근하거나 내장되어있는 등 보다 다양한 시스템에 사용되고 있으며 일상 생활과 밀접한 관련이 있다.
1-2. DB와 DBMS
DB(데이터베이스)를 효율적으로 관리하기 위한 소프트웨어를 DBMS(DataBase Management System)이라고 부른다.
생산성
데이터의 검색, 추가, 삭제, 갱신과 같은 기본 처리 기능을 제공기능성
복수 유저의 요청에 대응, 대용량 저장, 고속 검색, 유저에 의한 확장 등 유연한 개발이 가능신뢰성
하드웨어 여러대로 구성해 확장성(Scalability)과 부하분산(Load balancing)을 구현해 신뢰성을 높이고 성능 향상을 도모하는 "클러스터 구성" (또는 "스케일 아웃"), import와 export를 통한 백업1-3 데이터베이스 조작 언어 SQL
DBMS를 조작하기 위한 언어 중 하나로, 관계형 데이터 베이스 (RDBMS: Relational DataBase Management System)에서 사용한다.
DML
Data Manipulation Language (데이터 조작)DDL
Data Definition Language (데이터 정의)DCL
Data Control Language (데이터 제어)2-1 데이터베이스의 종류
계층형 데이터베이스
: 역사가 오래된 DBMS로 폴더와 파일의 계층 구조로 데이터를 저장.관계형 데이터베이스
: 행과 열의 표 형식(2차원)으로 데이터를 저장.객체지향 데이터베이스
: 가능하면 객체 그대로를 데이터로 저장.XML 데이터베이스
: 태그를 이용한 마크업 형식으로 데이터를 저장. XQuery라는 전용 명령어 사용.Key-Value 스토어(KVS)
: NoSQL로부터 생겨난 열 지향 데이터베이스. (dictionary 나 hash table 같은 형태)2-2 RDBMS 사용 시스템
RDBMS은 메인프레임의 대부분이라고 해도 과언이 아닐만큼 다양한 시스템에서 사용되고, 하드웨어가 진화함에 따라 휴대폰에도 경량화 된 RDBMS가 내장되어있다.
2-3 데이터베이스 제품
RDBMS라는 소프트웨어에는 Oracle
, MySQL
,SQLite
,DB2
등 여러 제품이 있고 모두 SQL을 이용해 제어한다.
2-4 SQL의 방언과 표준화
Oracle의 DELETE (FROM)등 키워드 생략, 외부결합 연산자 등 SQL에는 특정 데이터베이스 제품에만 통용되는 고유 방언이 있다. 하지만 표준 SQL을 사용하는 쪽을 권장한다!
RDBMS는 복수 클라이언트의 요청에 응답하기 위해 클라이언트/서버 모델로 동작한다. 클라이언트가 서버에 접속요청이나 SQL명령 실행요청을 보내면, 서버는 이를 처리하고 클라에 결과를 반환한다.
3-1 클라이언트/서버 모델
클라이언트는 사용자 조작에 따라 요청을 전달하고, 서버는 해당 요청 처리한다.
3-2 웹 애플리케이션 구조
웹 애플리케이션 = 웹 서버 + 데이터베이스 서버
웹사이트가 정적인 HTML로만 구성돼있다면 웹 서버만으로도 충분하지만, 웹앱정도의 규모부터는 DB가 필요하다.
이럴 때 필요한 것이 PHP, Ruby 언어나 ASP.NET(윈도우), Servlet(Java) 등의 CGI인데, 이것을 통해 프로그램과 웹 서버 간을 연동, 통신할 수 있다. 웹 서버의 CGI = 데이터베이스의 클라이언트인 것이다.
3-3 MySQL 서버와 mysql 클라이언트
MySQL 패키지를 인스톨하면 MySQL 서비스(데이터베이스 서버)와 mysql 커맨드(클라이언트)를 이용할 수 있다.