[DB] 데이터베이스와 SQL

Jane·2021년 2월 3일
1
post-thumbnail

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

2개의 댓글

comment-user-thumbnail
2021년 2월 3일

SQL 공부까지...열정이 너무 멋져요. 저도 Jane 본 받아야겠어요

1개의 답글