[sql 첫걸음]
[SQL 첫걸음] 1주차
1장 데이터베이스와 SQL
1강 데이터베이스
- 데이터: 컴퓨터 안에 기록되어 있는 숫자
- 데이터베이스 : 데이터의 집합
데이터는 영구적으로 보존되어야 하기 때문에 하드디스크나 SSD 등 비휘발성 저장장치에 저장된다.
- 시스템 내의 데이터베이스
데이터베이스의 예시)
데이터센터에 설치된 데이터베이스 : 인터넷 쇼핑몰
데이터베이스에 데이터가 전송되는 경우 : 계산대
휴대용 기기의 데이터베이스 : 핸드폰의 전화번호부
결론 : 데이터베이스는 다양한 시스템에서 사용한다.
- DB와 DBMS
DB : 저장장치 내에 정리되어 저장된 데이터의 집합
DBMS : 데이터를 효율적으로 관리하는 소프트웨어
DBMS가 필요한 이유, 사용 목적 :
- 생산성 : 시스템 개발 과정에서의 생산성 향상. 데이터 검색, 추가, 삭제, 갱신과 같은 기본 기능을 DBMS가 제공한다.
- 기능성 : 데이터베이스를 다루는 기능을 많이 제공. 복수 유저 대응, 대용량 데이터 처리 etc.
- 신뢰성 : 대규모 데이터베이스는 많은 요청에 대응할 수 있도록 만들어져있다. 클러스터 구성, 스케일 아웃.
- 데이터베이스를 조작하는 언어 SQL
DBMS에서 사용하는 언어이다. 관계형 데이터베이스 관리 시스템(RDBMS)을 조작할 때 사용된다.
SQL 명령은 크게 DML, DDL, DCL로 나뉘어 진다.
2강 다양한 데이터베이스
DBMS는 다양한 종류가 존재한다.
그중에서 SQL로 데이터를 다루는 데이터베이스를 관계형 데이터베이스(RDB)라고 부른다.
- 데이터베이스 종류
DBMS는 데이터 저장 방법에 따라 몇가지로 분류할 수 있다.
- 계층형 데이터베이스 :폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식. 요즘에는 잘 사용하지 않는다.
- 관계형 데이터베이스 : 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 DB. SQL 명령어로 조작할 수 있다.
- 객체지향 데이터베이스 : 객체 그대로를 데이터베이스의 데이터로 저장하는 것
- XML 데이터베이스 : XML 형식으로 기록된 데이터를 저장하는 데이터베이스
- 키-밸류 스토어 (KVS) : 키와 그에 대응하는 값이라는 단순한 형태의 데이털ㄹ 저장하는 데이터베이스
앞으로 관계형 데이터베이스에 집중할 것이다.
- RDBMS 사용 시스템
일반적로 사용하는 인프라는 인터넷이다.
요즘은 웹 시스템과 연동하여 사용하는 경우도 많다.
- 데이터베이스 제품
RDBMS : 관계형 데이터베이스를 관리하는 소프트웨어
아래는 모두 RDBMS 제품으로 SQL을 사용할 수 있다.
- Oracle : 현재 가장 많이 쓰이는 RDBMS 중 하나이다.
- db2 : IBM이 개발
- SQL server : MS가 개발. 윈도우에서만 작동
- postgreSQL : 오픈소스 커뮤니티가 개발. 무료이다.
- MySQL : 오픈소스 커뮤니티에서 개발.
- SQLite : 오픈소스 커뮤니티에서 개발. 임베디드 시스템이서 자주 쓰이는 작은 RDBMS이다.
- SQL이 방언과 표준화
모든 RDBMS에서 SQL을 사용할수는 있지만 각 제품마다 별도의 확장 기능이 생겨나면서 특정 데이터베이스 제품에서만 통용되는 ‘방언’이라는 것이 생겨났다.
예시) 키워드 생략
DELETE 명령어. 어떤 DB는 FROM을 생략해도 되고 어떤 DB는 생략하면 에러가 난다.
예시) 외부결합
Oracle에서는 + 연산자를, SQL Server에서는 *= 연산자를 사용한다.
하지만 표준 SQL을 사용하기를 권장한다.