데이터베이스 등장
1. 파일
데이터를 일반적으로 파일에 저장한다.
장점
- 운영체제에 관계 없이 쉽게 사용가능
- 이메일, 메신저를 이용해 간편하게 전송 가능
단점
- 성능, 보안적 한계
- 대용량 데이터를 다루기에 적합하지 않다.
- 데이터를 구조적으로 정리하기에 어려움
- 확장 불가능
2. 스프레드시트
엑셀 시트(스프레드시트)를 사용해서 데이터 관리
컬럼(열)으로 데이터 유형 지정, 레코드(행)으로 데이터 값 포함
3. 데이터베이스 등장
파일, 스프레드시트의 데이터관리는 한계가 있기 때문에 데이터베이스가 등장한다.
스프레드시트와 달리 프로그래밍 언어를 작동 시킬 수 있음
관계형 데이터베이스 (RDB)가 많이 쓰인다.
RDB는 각각의 데이터를 테이블에 기입한다.
데이터베이스
1. Database
체계화된 데이터의 모임
여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합
검색, 구조화 같은 작업을 쉽게하기위해 조직화된 데이터를 수집하는 저장 시스템
데이터베이스를 조작하는 프로그램 = DBMS
DBMS에서 데이터베이스를 조작하기 위해 사용하는 언어 = SQL
2. RDB(Realtional Database)
관계형 데이터베이스
데이터를 테이블, 행, 열 등으로 나누어 구조화하는 방식
자료를 여러 테이블로 나누어 관리하고 테이블간의 관계를 설정해서 여러 데이터를 쉽게 조작
SQL을 사용하여 데이터를 조회하고 조작
3. RDB 기본 구조 - 스키마, 테이블
1. 스키마
테이블의 구조(structure)
데이터베이스에서 자료의 구조, 표현방법, 관계 등 전반적인 명세를 기술한 것
2. 테이블
필드와 레코드를 사용해 조직된 데이터 요소들의 집합
관계라고도 부른다
1) 필드(field)
속성, 컬럼
2) 레코드(record)
튜플, 행
테이블의 데이터는 레코드에 저장된다.
3. PK(primary key)
기본키
각 레코드의 고유한 값
기술적으로 다른 항목과 절대 중복될 수 없는 단일 값 (unique)
RDBMS
1. Relational Database Management System
관계형 데이터베이스 관리시스템
관계형 데이터 베이스를 만들고 업데이트, 관리하는 데 사용하는 프로그램
SQLite, MySQL, Oracle Database 등이 있고, 모두 SQL을 이용한다.
2. SQLite
응용 프로그램에 파일 형식으로 넣어 사용하는 비교적 가벼운 데이터베이스
안드로이드, iOS, macOS에 기본적으로 탑재 되어 있고, 임베디드 소프트웨어에서도 많이 이용된다.
오픈 소스 프로젝트로 자유롭게 사용 가능하다.
어떤 환경에서나 실행 가능한 호환성을 가지고 있고, 데이터 타입이 비교적 적고 강하지 않기 때문에 유연하다.
대규모 동시 처리 작업에는 적합하지 않고, 다른 RDBMS에서 지원하는 SQL기능을 지원하지 않을 수 있다.
Django framework의 기본 데이터베이스이다.
SQL
1. Structured Query Language
RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
많은 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택한다.
SQL은 데이터베이스와 상호작용하는 방법이다.
2. DDL / DML / DCL
1. DDL 데이터 정의 언어 (Data Definition Language)
관계형 데이터 베이스의 구조를 정의하기 위한 명령어 (생성, 수정, 삭제)
CREATE DROP ALTER
2. DML 데이터 조작 언어 (Data Manipulation Language)
데이터를 조작(추가, 조회, 변경, 삭제)하기 위한 명령어
INSERT SELECT UPDATE DELETE
3. DCL 데이터 제어 언어 (Data control Language)
데이터의 보안, 수행제어, 사용자 권한부여 등을 정의하기 위한 명령어
GRANT REVOKE COMMIT ROLLBACK
SQLite는 파일로 관리되는 DB이기 때문에 SQL을 이용한 접근 제한이 아닌 운영체제의 파일 접근 권한으로만 제어되기 때문에 SQLite에서는 권한 설정을 담당하는 GRANT, REVOKE를 지원하지 않는다.
3. Statement / Clause
1. Statement (문)
독립적으로 실행할 수 있는 완전한 코드 조각
statement는 clause로 구성된다.
2. Clause (절)
statement의 하위 단위
SELECT * FROM a_table;
위 SQL문 전체를 SELECT statemtent라고 한다.
이 statement는 다음과 같이 2개의 clause로 구성된다.
--clause 1
SELECT *
--clause 2
FROM a_table