백엔드/SQL 첫걸음

1장 데이터베이스와 SQL

dlng23 2024. 9. 27. 00:34

01강. 데이터베이스

데이터베이스 

- 데이터(컴퓨터 안에 기록되어 있는 숫자)의 집합

- 컴퓨터 안에 기록된 모든 것

- 특정 데이터를 간단하게 찾아낼 수 있도록 정리된 형태

=> 영구적으로 보존, 비휘발성 저장장치에 저장

 

1. 시스템 내의 데이터베이스

데이터센터의 서버 내에서 운용될 뿐 아니라, 개인용 컴퓨터나 휴대용 기기에 내장되어있기도 함

 

2. DB와 DBMS

DB(Database) : 저장장치 내에 정리되어 저장된 데이터의 집합

DBMS(Database Management System): DB를 효율적으로 관리하는 SW

 

DBMS가 필요한 이유

- 생산성

데이터 검색, 추가, 삭제, 갱신과 같은 기본 기능 제공

- 기능성

복수 유저의 요청 대응, 대용량의 데이터 저장, 고속으로 검색하는 기능 제공

- 신뢰성

많은 요청에 대응할 수 있도록 하드웨어 여러 대로 구성

SW를 통해 확장성(Scalability), 부하 분산(Load balancing) 구현 → '클러스터 구성·스케일 아웃' 이라 부름

DB의 데이터를 다른 저장장치로 내보내거나(export), DB 안에 데이터를 집어넣는(import) 기능을 갖춤

 

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

관계형 데이터베이스 관리 시스템(RDBMS: Relational Database Management System)을 조작할 때 사용

 

SQL 명령의 종류

- DML (Data Manipulation Language) : 데이터를 조작하는 명령어

- DDL (Data Definition Language) : 데이터를 정의하는 명령어

- DCL (Data Control Language) : 데이터를 제어하는 명령어

 

 

02강. 데이터베이스

1. 데이터베이스 종류

- 계층형 데이터베이스

폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식

ex) 하드디스크, DVD 파일시스템 / 현재 DBMS로 채택되는 경우는 많지x

 

- 관계형 데이터베이스

관계 대수(relational algebra)에 착안하여 고안한 데이터베이스

행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스

 

- 객체지향 데이터베이스

가능하면 객체 그대로를 데이터베이스의 데이터로 저장

 

- XML 데이터베이스

XML 형식으로 기록된 데이터를 저장하는 데이터베이스

XML: 자료 형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것

SQL 명령어 사용 불가, XML 데이터를 검색할 때는 XQuery 전용 명령어 사용

 

- 키-밸류 스토어(KVS)

키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스

NoSQL(Not only SQL)이라는 슬로건으로부터 생겨난 데이터베이스, 열 지향 데이터베이스라고도 불림

 

2. RDBMS 사용 시스템

메인 프레임은 대부분 RDBMS 사용, 웹 시스템, 휴대전화 등 여러 곳에 사용

 

3. 데이터베이스 제품

  • Oracle
  • DB2
  • SQL Server
  • PostgreSQL
  • MySQL
  • SQLite

 

4. SQL의 방언과 표준화

각 데이터베이스 제품별로 기능 확장이 이루어지는 과정에서 비슷한 조작을 실행하더라도 서로 다른 명령어가 필요한 상황 발생 → 특정 데이터베이스 제품에만 통용되는 고유 방언이 생겨남

방언 대신 표준 SQL 사용하는 편이 좋음!

 

 

03강. 데이터베이스 서버

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

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

 

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

브라우저와 웹 서버로 구성되는 클라이언트/서버 모델의 시스템

클라이언트의 request에 맞게, 서버는 response

 

- RDBMS의 클라이언트/서버

웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성되지만, 웹 시스템에서는 없었던 사용자 인증이 필요

사용자 별로 DB 접근 제한 가능 → DB를 사용하기 위해서는 사용자 인증 거쳐야 함

 

- SQL명령 실행

RDBMS에 접속하면 SQL 명령을 서버에 보낼 수 있음

한 번 데이터베이스에 접속하면, 이를 유지 → 재접속 없이 SQL 명령 여러 번 보낼 수 있음

사용이 끝나면 DB와의 접속 끊김

 

2. 웹 애플리케이션의 구조

일반적으로 웹 서버와 데이터베이스 서버의 조합으로 구축됨

웹 애플리케이션 규모는 DB 필요. 웹 서버에서 동적으로 HTML을 생성하려면 제어용 프로그램 필요

→ CGI를 이용하여 프로그램과 웹 서버 간을 연동, 통신하여 처리

 

DB서버 사용 위해 CGI 프로그램으로 DB 서버와의 접속이 성립되어야 함

그 후, DB에 필요한 SQL 명령 전달, 실행 결과는 클라이언트로 돌아감

웹 서버의 CGI 프로그램 == 데이터베이스의 클라이언트

 

3. MySQL 서버와 mysql 클라이언트

MySQL 서비스가 데이터베이스 서버, mysql 커맨드가 클라이언트가 됨