1강. 데이터베이스

  1. 데이터베이스와 데이터의 정의
    1. 데이터: 컴퓨터 안에 기록되어 있는 숫자
    2. 데이터베이스: 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 데이터의 집합
    3. 데이터베이스의 데이터는 하드디스크나 플래시메모리 등 비휘발성 저장장치에 저장
  2. DB와 DBMS
    1. DB: Database의 약자
    2. DBMS (Database Management System): 데이터베이스 관리 시스템
    3. 생산성: DB를 사용할 경우 기본적인 데이터 CRUD 기능을 제공해주기 때문에 생산성을 노ㅠ을 수 있다.
    4. 기능성: DBMS는 DB를 다루는 기능을 제공 → DB간기 기능을 유저가 확장하여 유연하게 시스템을 개발 할 수 있음.
    5. 신뢰성: 대규모 DB의 경우 많은 요청에 대응할 수 있도록 만들어져 있다.
      1. 하드웨어를 여러대로 구성하여 신뢰성과 성능을 향상시키기도 함.
      2. 일부 DBMS는 컴퓨터를 여러대 두고 SW를 통해 확장성/부하 분산을 구현한다 ⇒ 클러스터 구성/ 스케일 아웃
      3. export/ import 기능을 사용하여 DB를 간단하게 백업 할 수 있다.
  3. SQL
    1. 정의: RDBMS를 조작할 때 사용하는 조작용 언어
    2. 종류
      1. DML (Data Manipulation Language)
        1. 데이터베이스에 새롭게 데이터를 CRUD하는 등 데이터를 조작할 때 사용됨.
        2. SQL의 가장 기본이 되는 명령셋
      2. DDL (Data Definition Language)
        1. 데이터베이스를 정의하는 명령어
        2. 데이터베이스는 데이터 베이스 객체라는 데이터 그릇을 이용하여 데이터를 관리하는데
        3. 이같은 객체를 만들거나 삭제하는 명령어
      3. DCL (Data Control Language)
        1. 데이터를 제어하는 명령어
        2. 트랜잭션을 제어하는 명령과 데이터 접근권한을 제어하는 명령이 포함됨.

2장. 다양한 데이터베이스

  1. 데이터 베이스의 종류
    1. 계층형 데이터베이스
      1. 폴더와 파일등의 계층구조로 데이터를 저장하는 방식의 데이터베이스
      2. 현재는 사용되지 않음.
    2. 관계형 데이터베이스
      1. 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
    3. 객체지향 데이터베이스
      1. 가능하면 객체 그래도를 데이터베이스의 데이터로 저장하는 데이터베이스
    4. XML 데이터베이스
      1. XML 형식으로 기록된 데이터를 저장하는 데이터베이스
      2. SQL 명령을 사용할 수 없는 대신 XQuery라는 전용 명령어를 사용한다.
    5. 키-밸류 스토어 (KVS)
      1. 키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스.
  2. SQL의 방언과 표준화
    1. 각 데이터베이스 별로 기능 확장이 이루어지는 과정에서 ‘비슷한 조작을 실행하더라도 서로 다른 명령어가 필요한’ 상황이 발생 ⇒ 고유 방언이 생겨남.
    2. 그 예시로 키워드 생략 ⇒ DELETE 뒤에 FROM 생략 가능 유무
    3. ISO & ANSI 가 방언을 대체할 표준어를 설정함 ⇒ 표준(ANSI) SQL

3장. 데이터베이스 서버

  1. 클라이언트 / 서버 모델
    1. 사용자 조작에 따라 요청을 전달하는 ‘클라이언트’와 해당 요청을 받아 처리하는 ‘서버’로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템
    2. RDBS의 클라이언트/서버는 사용자 인증이 필요함
    3. SQL 명령 실행
      1. RDBS 접속 시 SQL 명령을 서버에 요청
      2. 한번 DB 접속 시 재접속 없이 SQL 명령을 여러 번 요청 가능
      3. 클라이언트 종료 시 DB 접속 종료
  2. 웹 어플리케이션의 구조
    1. 해당 경우에는 웹 서버의 CGI 프로그램이 클라이언트, 데이터베이스가 서버가 된다.
  3. MySQL 서버와 mysql 클라이언트
    1. PC 한 대로 클라이언트와 서버 모두 실행할 수 있지만 네트워크 기능은 필요하다.
    2. 클라이언트 ~ 서버 접속 시 네트워크를 경유하여 PC의 서버로 되돌아오는 형태로 접속
    3. 이를 루프 백 접속이라 함.