너무 많이 들어본 단어라서 비전공자라도 이 뜻은 알 것이다.
Data Base : Server가 Client에게 제공할 정보를 저장해둔 곳
이렇게만 이해해도 충분하다. 그렇다면 우리는 여기서 무엇을 더 알아야 하는가?
In - Memory : Javascript에서 변수를 만들어 저장한다고 해도 프로그램 실행이 끝나는 순간 데이터도 같이 사라진다.
File I/O : 파일로 저장해두고 필요할 때 그걸 읽어오는 형태로 관리
But, 파일을 매번 읽어와야하고 크기가 클 수록 작업이 버거워지는 단점이 있다.
위 와 같은 문제점 혹은 단점들을 보완하고 보다 편리하게 데이터를 저장하기 위해서 필요한 것이 DB이다.
트랜젝션(Transaction) : 여러 작업들을 하나의 유닛으로 묶어준 것, 묶여있는 작업들이 모두 성공해야 완료되고 하나라도 실패하면 작업이 실행되지 않는다. 이러한 특징은 다음과 같다.
- Atomicity(원자성) : 전부 성공하거나 전부 실패해야 한다.
- Consistency(일관성) : 트랜젝션 이전과 이후 DB 상태는 이전과 같이 유효해야 한다.
- Isolation(독립성) : 하나의 트랜젝션은 다른 트랜젝션과 독립적이다.
- Durability(지속성) : 수행되었다면 성공하든 실패하든 그 기록은 영구적이어야 한다.
Structured Query Language 즉, 구조화된 쿼리 언어로 줄여서 SQL이다. 주로 관계형 데이터베이스에서 사용 된다.
직역하면 '질의문' 으로 정보를 필터하기 위한 질문 이다.
기본 명령어는 크게 3개의 부류로 나눌 수 있다.
대략적인 사용방법만 정의하고 자세한건 실제 사용하면서 익숙해지면 된다. 지금은 이러게 있다 정도만 알면 될 것 같다.
Data Define Language : CREATE
, ALTER
, DROP
// CREATE 생성
CREATE DATABASE 데이터베이스_이름;
CREATE TABLE 테이블_이름;
...
// ALTER 업데이트
ALTER TABLE 테이블명 ADD 속성명 데이터_타입; // 새로운 속성 추가시 사용
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];// 특정 속성의 기본값 변경시 사용
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE]; // 특정 속성 삭제시 사용
...
// DROP 삭제
DROP DATABASE 데이터베이스_이름;
DROP TABLE 테이블_이름;
...
Data Control Language : GRANT
, REVOKE
, COMMIT
, ROLLBACK
, SAVEPOINT
Data Manipulatin Language : SELECT
, INSERT
, DELETE
, UPDATE
// SELECT : 검색
SELECT [테이블명.]속성명 [AS 별칭]...
FROM 테이블명
[WHERE 조건];
// INSERT : 삽입
INSERT INTO 테이블명([속성명,...])
VALUES (데이터1, 데이터2, ...);
// DELETE : 삭제
DELETE
FROM 테이블명
[WHERE 조건];
// * DELETE문은 테이블의 구조나 테이블 자체는 남겨둔다. DROP은 테이블을 완전히 제거한다.
// UPDATE : 갱신
UPDATE 테이블명
SET 속성명 = 데이터[, 속성명 = 데이터 ...]
[WHERE 조건];
학교 DB 수업시간에도 들었고, 컴활 공부하면서도 들었고, 정보처리기사 필기준비하면서도 들은 개념이지만 어째 볼때마다 새롭다.
DB의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것
NoSQL(비구조화 쿼리 언어)
Key-Value
의 쌍을 속성으로 하는 배열 형태로 저장SQL과의 차이점
SQL
NoSQL