DBMS를 사용하는 이유
- 생산성
- 데이터 검색, 추가, 삭제, 갱신과 같은 기본 기능 제공
- 기능성
- 복수 유저의 요청에 대응, 대용량 데이터 저장, 고속 검색 등 데이터베이스를 다루는 다양한 기능 제공
- 유저가 데이터베이스 관리 기능 확장 가능
- 신뢰성
- 확장성(Scalability)과 부하 분산(Load balancing)을 구현하여 신뢰성 과 성능을 높임
- 클러스터 구성, 스케일 아웃
SQL
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
SQL 명령의 종류
DML (Data Manipulation Language)
- SQL의 가장 기본이 되는 명령어 집합
- 데이터베이스에 새롭게 데이터를 추가, 삭제, 갱신하는 등 데이터를 조작할 때 사용
DDL (Data Definition Language)
- 데이터를 정의하는 명령어
- 데이터베이스 객체를 만들거나 삭제
DCL (Data Control Language)
- 데이터를 제어하는 명령어
- 트랜잭션을 제어하는 명령, 데이터 접근권한을 제어하는 명령 포함
데이터베이스의 종류
계층형 데이터베이스
- 폴더나 파일 등의 계층구조로 데이터를 저장하는 방식의 데이터베이스
- e.g. 하드디스크, DVD 파일시스템
관계형 데이터베이스
- 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
- SQL 명령어로 데이터를 조작
- e.g. Oracle, DB2, SQL Server, PostgreSQL, MySQL, SQLite
객체지향 데이터베이스
- 가능하면 객체 그대로를 데이터로 저장하는 데이터베이스
XML 데이터베이스
- XML 형식으로 기록된 데이터를 저장하는 데이터베이스
- XML(Extensible Markup Language): W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어 / 태그를 이용해 마크업 문서를 작성할 수 있게 정의
- SQL 대신 XQuery라는 전용 명령어를 사용함
KVS(Key-Value store)
- 키-값 형태의 데이터를 저장하는 데이터베이스
- NoSQL이라는 슬로건으로부터 생겨난 데이터베이스로 열 지향 데이터베이스라고도 불림
데이터베이스 서버
클라이언트/서버 모델
- 사용자 조작에 따라 요청을 전달하는 클라이언트와, 해당 요청을 받아 처리하는 서버로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템
- request: 클라이언트가 보내는 요구 사항
- response: 서버의 응답
- 클라이언트가
페이지 열람
이라는 요청을 보내면 서버는 HTML로 된 데이터를 클라이언트로 반환하고, 브라우저는 화면에 페이지 내용을 표시함
- RDBMS도 웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성되는데, 웹 시스템과 달리 사용자 ID와 비밀번호로 사용자 인증을 해야 접속할 수 있음
- 접속 종료 전까지는 재접속 없이 SQL 명령을 여러 번 보낼 수 있음
웹 애플리케이션의 구조
- 웹 어플리케이션 : 웹 서버 + 데이터베이스 서버
- 웹 서버는 브라우저를 클라이언트로 삼아 작동하고, 데이터베이스 서버는 웹 서버의 Common Gateway Interface(CGI) 프로그램을 클라이언트로 삼아 작동함
- 클라이언트와 서버가 네트워크로 연결되어 있다면 다른 머신에 두어도 무방함
→ 처리가 분산되어 시스템 전체 성능이 향상
Source
SQL 공부까지...열정이 너무 멋져요. 저도 Jane 본 받아야겠어요