본문 바로가기
개발 외의 것들/책을읽읍시다.

[TIR]SQL 첫걸음 1~4강

by Joshua21 2022. 2. 11.

1강. 데이터베이스

데이터베이스

  • 비 휘발성 저장장치에 저장되는 영속된 데이터의 집합
  • 데이터를 저장하며, 효율적으로 검색할 수 있도록 정리해준다.

데이터베이스 데이터를 비 휘발성 저장장치에 저장하는 이유?

  • 데이터베이스 내의 데이터를 영구적으로 보존되어야 하는데,주기억장치에만 데이터를 저장하면 전원을 끄는 순간 모든 데이터가 날아가 버린다.
  • 하드디스크나 플래시메모리(SSD) 등의 비 휘발성 저장장치에 저장해야 한다.

DBMS

  • 생산성
    • 검색, 추가, 삭제, 갱신같은 처리 등 기능을 제공
  • 기능성
    • 복수 유저의 요청에 대응하거나 대용량 데이터를 저장하고 고속으로 검색하는 기능 제공
  • 신뢰성
    • 확장성, 부하분산을 구현
    • 이를 클러스터 구성, 스케일 아웃이라 부름
    • 외부로 데이터를 내보내거(export)나 집어넣는 것(import)도 가능

데이터베이스를 조작하는 언어 == SQL

  • SQL은 DBMS와 대화하기 위한 언어로 관계형 데이터베이스 관리 시스템을 조작할 때 사용
  • SQL은 IBM이 개발한 SEQUEL이라는 관계형 데이터베이스 조작용 언어를 기반
  • ISO 등에 의해 표준화가 진행되어 표준 언어가 됨

SQL명령의 종류

  • DML(Date Manipulation Language) : 데이터 조작어
  • DDL(Data Definition Language) : 데이터 정의어
  • DCL(Data Control Languate) : 데이터 제어어로 트랜잭션, 데이터 접근권한하는 명령이 포함됨

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

  • 계층형 데이터베이스
    • 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식
  • 관계형 데이터베이스
    • 관계 대수라는 것에 착안해 고안한 DB로 행과 열을 가지는 표 형식 데이터를 저장하는 데이터베이스
  • 객체지향 데이터베이스
    • 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것
  • XML 데이터베이스 → Extensible Markup Language
    • XML이란 자료 형식으로 기록된 데이터를 저장하는 데이터베이스
    • SQL을 사용하는 것이 아니라 XQuery를 사용합니다.
    <?xml version="1.0"?>
    <CAT>
      <NAME>Izzy</NAME>
      <BREED>Siamese</BREED>
      <AGE>6</AGE>
      <ALTERED>yes</ALTERED>
      <DECLAWED>no</DECLAWED>
      <LICENSE>Izz138bod</LICENSE>
      <OWNER>Colin Wilcox</OWNER>
    </CAT>
    
  • 키-밸류 스토어(열 지향 데이터베이스)
    • 맵이나 해시 테이블 형식으로 저장하는 방식으로 NoSQL이라고도 합니다. → MongoDB, redis → 확장성 굿
    데이터베이스 제품
    • RDBMS : 관계형 데이터베이스를 관리하는 소프트웨어
    • 종류 :
    Oracle(현재 가장 많이 쓰이는 RDBMS 중 하나), DB2, SQL Server(윈도우 플랫폼에서만 동작), PostgreSQL, MySQL, SQLite(임베디드 시스템에 자주 쓰이는 작은 RDBMS)

3강. 데이터베이스 서버

1. 클라이언트/서버 모델

  • 클라이언트/서버 모델 : 사용자 조작에 따라 요청을 전달하는 '클라이언트'와 해당 요청을 받아 처리하는 '서버'로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템.

> 웹 시스템에서의 클라이언트/서버

  • 웹 시스템이란 브라우저와 웹 서버로 구성되는 클라이언트/서버 모델의 시스템.
  • 전형적인 클라이언트/서버 모델에서의 처리 : 브라우저(클라이언트)가 웹서버에 요청(Request)를 보내면, 클라이언트의 요청을 받은 웹 서버에서는 그에 맞게 처리 후 응답(Response)을 클라이언트로 반환.(응답 데이터는 네트워크를 통해서 전송)

웹에서는 요청과 응답이 되풀이되면서 웹 페이지가 표시됨.

> RDBMS의 클라이언트/서버

RDBMS도 웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성됨. 하지만 웹 시스템에는 없었던 ID와 비밀번호를 이용한

사용자 인증

이 필요.

> SQL명령 실행

RDBMS에 접속하면 SQL명령을 보낼 수 있음. 서버가 가동 중이고 네트워크에 연결되있으면 클라이언트에서 SQL명령을 보낼 때 서버는 응답.  한번 데이터베이스에 접속하면 이를 유지. 일반적으로 클라이어트를 종료하면 데이터베이스 접속도 끊김.


4강. Hello World 실행하기

MySQL에는 다음과 같이 몇 가지 패키지가 있는데..

  • MySQL Enterprise Edition(엔터프라이즈)
  • MySQL CIuster CGE (클러스터)
  • MySQL Community Sever(커뮤니티)
  • 스페이스를 넣지 않고 붙여서 입력할 경우 에러가 발생해서 실행할 수 없다.
  • 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.

SQL명령과 달리 많은 데이터베이스 제품들은 데이터의 대소문자를 구별(설정에 따라 구별하지않는 경우도 있음)

  • SELECT 명령을 실행하면 표 형식의 데이터가 출력. 행(레코드)와 열(컬럼/필드)로 구성.
  • 데이터는 자료형으로 분류할 수 있고, 열은 하나의 자료형(문자열형, 수치형, 날짜시간형..)만 가질수 있음.
  • NULL(널)은 값이 없는 데이터.

'개발 외의 것들 > 책을읽읍시다.' 카테고리의 다른 글

비하인드 도어 - B.A.패리스  (0) 2023.04.12
[TIR]SQL첫걸음 5,6강  (0) 2022.02.12
[TIR]cleancode 10.클래스  (0) 2022.02.10
[TIR]cleancode 7,8,9 중간점검  (0) 2022.02.09
[TIR]cleancode 9. 단위 테스트  (0) 2022.02.06