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 커맨드가 클라이언트가 됨
'백엔드 > SQL 첫걸음' 카테고리의 다른 글
6장 데이터베이스 객체 작성과 삭제 (0) | 2024.10.12 |
---|---|
5장 집계와 서브쿼리 (0) | 2024.10.11 |
4장 데이터의 추가, 삭제, 갱신 (0) | 2024.10.05 |
3장 정렬과 연산 (0) | 2024.10.05 |
2장 테이블에서 데이터 검색 (0) | 2024.09.27 |