1강) 데이터베이스와 SQL
1. 데이터와 데이터베이스(DB)
- 데이터: 컴퓨터에 기록된 숫자 또는 정보.
- 데이터베이스(DB, Database): 저장 장치에 정리되어 보관된 데이터의 집합.
- 데이터를 영구적으로 저장해야 하므로 하드디스크(HDD) 또는 SSD(플래시 메모리)와 같은 비휘발성 저장 장치에 보관.
- 예시: 계산대(포스 시스템), 휴대폰 전화번호부.
2. 데이터베이스 관리 시스템(DBMS)
데이터를 효율적으로 관리하는 소프트웨어.
📌 DBMS가 필요한 이유
- 생산성: 데이터 검색, 추가, 삭제, 갱신 등 개발 과정에서의 생산성 향상.
- 기능성: 다수의 사용자가 동시에 요청할 수 있으며, 대용량 데이터 저장과 고속 검색 기능 제공.
- 신뢰성: 확장성과 부하 분산을 통해 많은 요청을 처리 가능.
- 여러 대의 컴퓨터를 이용해 클러스터 구성 및 스케일 아웃 지원.
과거: 데이터센터의 서버에서만 운영
현재: 개인용 컴퓨터나 모바일 기기에서도 내장 가능
3. SQL(Structured Query Language)
관계형 데이터베이스(RDBMS)를 조작하는 데 사용하는 언어.
- IBM이 개발한 SEQUEL을 기반으로 만들어짐.
📌 SQL의 주요 명령어
- DML (Data Manipulation Language): 데이터 추가, 삭제, 수정 등 조작.
- DDL (Data Definition Language): 데이터베이스 객체(테이블 등) 생성, 삭제.
- DCL (Data Control Language): 트랜잭션 및 접근 권한 제어.
2강) 다양한 데이터베이스
1. 데이터베이스의 종류
-
계층형 데이터베이스
- 폴더-파일 구조처럼 계층적으로 데이터를 저장.
- 하드디스크, DVD 파일 시스템 등이 이에 해당.
-
관계형 데이터베이스(RDBMS)
- 행(Row)과 열(Column)로 구성된 2차원 데이터 형식.
- SQL을 이용해 데이터 조작 가능.
-
객체지향 데이터베이스
- Java, C++ 등의 객체 개념을 적용한 데이터베이스.
-
XML 데이터베이스
-
키-값 스토어(KVS)
- NoSQL 기반 데이터베이스.
- 단순한 Key-Value 형식으로 데이터를 저장.
- 열 지향 데이터베이스와 유사.
2. 관계형 데이터베이스(RDBMS) 발전 과정
- 초기 메인프레임 기반 → 소형 워크스테이션(다운사이징) → 클라이언트/서버 구조로 발전.
3. 대표적인 데이터베이스 시스템
상용 DBMS | 오픈소스 DBMS |
---|
Oracle | MySQL |
IBM DB2 | PostgreSQL |
MS SQL Server | SQLite |
- 데이터베이스마다 고유한 SQL 방언이 존재하여 명령어가 다를 수 있음.
- 예:
DELETE
키워드 생략 여부, 외부 조인 방식 차이 등.
3강) 데이터베이스 서버
1. 클라이언트/서버 모델
- 클라이언트: 사용자 요청을 전달.
- 서버: 요청을 받아 처리하고 결과 반환.
📌 클라이언트/서버 모델의 특징
- 웹 시스템 예시
- 브라우저(클라이언트) → 웹 서버 → 데이터베이스 서버 구조.
- 리퀘스트(Request): 클라이언트가 보낸 요청.
- 리스폰스(Response): 서버의 응답.
- 사용자 인증 필요: 사용자 ID 및 비밀번호로 접근 제한.
2. 웹 애플리케이션의 구조
- 웹 서버 + 데이터베이스 서버로 구성.
- 웹 서버에서 동적으로 HTML을 생성하려면 CGI(Common Gateway Interface) 필요.
- PHP, Ruby 등 프로그래밍 언어로 구현.
- CGI 프로그램이 데이터베이스 클라이언트 역할 수행.
3. MySQL 서버와 클라이언트
- MySQL 서버: 데이터베이스 서버 역할 수행.
- MySQL 클라이언트 (
mysql
커맨드): 서버에 접속해 SQL 명령 실행.
MySQL 서비스는 PC 부팅과 함께 자동 실행됨
--- 연습문제 ----
1. 2
2.1
3.3