1강. 데이터베이스
- 데이터베이스와 데이터의 정의
- 데이터: 컴퓨터 안에 기록되어 있는 숫자
- 데이터베이스: 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 데이터의 집합
- 데이터베이스의 데이터는 하드디스크나 플래시메모리 등 비휘발성 저장장치에 저장
- DB와 DBMS
- DB: Database의 약자
- DBMS (Database Management System): 데이터베이스 관리 시스템
- 생산성: DB를 사용할 경우 기본적인 데이터 CRUD 기능을 제공해주기 때문에 생산성을 노ㅠ을 수 있다.
- 기능성: DBMS는 DB를 다루는 기능을 제공 → DB간기 기능을 유저가 확장하여 유연하게 시스템을 개발 할 수 있음.
- 신뢰성: 대규모 DB의 경우 많은 요청에 대응할 수 있도록 만들어져 있다.
- 하드웨어를 여러대로 구성하여 신뢰성과 성능을 향상시키기도 함.
- 일부 DBMS는 컴퓨터를 여러대 두고 SW를 통해 확장성/부하 분산을 구현한다 ⇒ 클러스터 구성/ 스케일 아웃
- export/ import 기능을 사용하여 DB를 간단하게 백업 할 수 있다.
- SQL
- 정의: RDBMS를 조작할 때 사용하는 조작용 언어
- 종류
- DML (Data Manipulation Language)
- 데이터베이스에 새롭게 데이터를 CRUD하는 등 데이터를 조작할 때 사용됨.
- SQL의 가장 기본이 되는 명령셋
- DDL (Data Definition Language)
- 데이터베이스를 정의하는 명령어
- 데이터베이스는 데이터 베이스 객체라는 데이터 그릇을 이용하여 데이터를 관리하는데
- 이같은 객체를 만들거나 삭제하는 명령어
- DCL (Data Control Language)
- 데이터를 제어하는 명령어
- 트랜잭션을 제어하는 명령과 데이터 접근권한을 제어하는 명령이 포함됨.
2장. 다양한 데이터베이스
- 데이터 베이스의 종류
- 계층형 데이터베이스
- 폴더와 파일등의 계층구조로 데이터를 저장하는 방식의 데이터베이스
- 현재는 사용되지 않음.
- 관계형 데이터베이스
- 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
- 객체지향 데이터베이스
- 가능하면 객체 그래도를 데이터베이스의 데이터로 저장하는 데이터베이스
- XML 데이터베이스
- XML 형식으로 기록된 데이터를 저장하는 데이터베이스
- SQL 명령을 사용할 수 없는 대신 XQuery라는 전용 명령어를 사용한다.
- 키-밸류 스토어 (KVS)
- 키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스.
- SQL의 방언과 표준화
- 각 데이터베이스 별로 기능 확장이 이루어지는 과정에서 ‘비슷한 조작을 실행하더라도 서로 다른 명령어가 필요한’ 상황이 발생 ⇒ 고유 방언이 생겨남.
- 그 예시로 키워드 생략 ⇒ DELETE 뒤에 FROM 생략 가능 유무
- ISO & ANSI 가 방언을 대체할 표준어를 설정함 ⇒ 표준(ANSI) SQL
3장. 데이터베이스 서버
- 클라이언트 / 서버 모델
- 사용자 조작에 따라 요청을 전달하는 ‘클라이언트’와 해당 요청을 받아 처리하는 ‘서버’로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템
- RDBS의 클라이언트/서버는 사용자 인증이 필요함
- SQL 명령 실행
- RDBS 접속 시 SQL 명령을 서버에 요청
- 한번 DB 접속 시 재접속 없이 SQL 명령을 여러 번 요청 가능
- 클라이언트 종료 시 DB 접속 종료
- 웹 어플리케이션의 구조
- 해당 경우에는 웹 서버의 CGI 프로그램이 클라이언트, 데이터베이스가 서버가 된다.
- MySQL 서버와 mysql 클라이언트
- PC 한 대로 클라이언트와 서버 모두 실행할 수 있지만 네트워크 기능은 필요하다.
- 클라이언트 ~ 서버 접속 시 네트워크를 경유하여 PC의 서버로 되돌아오는 형태로 접속
- 이를 루프 백 접속이라 함.