728x90
반응형
1. DBMS란
1.1 데이터베이스의 정의와 특징
1.1.1 데이터베이스
- ‘데이터의 집합’
- 여러 명의 사용자나 응용프로그램이 공유하는 데이터들
- 동시에 접근 가능함
- ‘데이터의 저장 공간’ 자체
1.1.2 DBMS
- 데이터베이스를 관리·운영하는 역할
- DBMS의 종류는 매우 다양한데 표준SQL문 + 내장함수(DBMS 종류와 버전별로 조금씩 다르다)
1.2 DB/DBMS의 특징
- 데이터의 무결성 (Integrity)
- 데이터베이스 안의 데이터는 오류가 없어야함
- 제약 조건(Constrain)이라는 특성을 가짐
- 데이터의 독립성
- 데이터베이스 크기 변경하거나 데이터 파일의 저장소 변경시에는 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야함
- 보안
- 데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야
접근할 때도 사용자의 계정에 따라서 다른 권한 가짐
- 데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야
- 데이터 중복의 최소화
- 동일한 데이터가 여러 개 중복되어 저장되는 것 방지
- 동일한 데이터가 여러 개 중복되어 저장되는 것 방지
- 응용프로그램 제작 및 수정이 쉬워짐
- 통일된 방식으로 응용프로그램 작성 가능
- 유지보수 또한 쉬워짐
- 데이터의 안전성 향상
- 대부분의 DBMS가 제공하는 백업·복원 기능 이용
- 데이터가 깨지는 문제가 발생할 경우 원상으로 복원 , 복구하는 방법이 명확해짐
2. DBMS 데이터 언어
2.1 DDL(정의)
CREATE | 데이터베이스 및 테이블 생성 |
ALTER | 테이블의 속성 수정 |
DROP | 데이터베이스 및 테이블 삭제 |
TRUNCATE | 테이블 초기화 |
2.2 DML(조작)
DML (Data Manipulation Language) 데이터를 조작 (관리)
SELECT | 데이터 조회 |
INSERT | 데이터 삽입 |
UPDATE | 데이터 수정 |
DELETE | 데이터 삭제 |
2.3 DCL(조절)
GRANT | 특정 Database의 특정 작업에 대한 권한 부여 |
REVOKE | 특정 Database의 특정 작업에 대한 권한을 회수함 |
COMMIT | transaction의 모든 DML을 실제로 적용 |
ROLLBACK | transaction의 모든 DML을 취소하거나 작업전으로 복구 |
2.4 TCL (Transaction)
특정한 작업을 수행하기 위해 필요한 데이터베이스의 명령들의 집합체이다. Transaction은 All or Nothing이다. 하나의 단위로 묶여서 해당하는 모든 DML이 모두 성공(Commit) 또는 모두 실패(Rollback)라는 2개의 결과만 나오게된다.
//시작
//
//완료 (진짜 데이터를 반영한다)
//
//트랜잭션 시작
//<구매하기>
//주문테이블에 데이터 insert
//주문상세테이블 데이터 insert n번
//제품의 재고수량을 update n번
//회원 테이블에 포인트 update
//commit
//
//트랜잭션 시작
try
{
주문테이블에 데이터 insert
주문상세테이블 데이터 insert n번
제품의 재고수량을 update n번
회원 테이블에 포인트 update
commit;
}
catch()
{
rollback;
}
- DDL인 Drop, Truncate 는 트랜잭션이 없기 때문에 rollback이 안된다.
- select는 트랜잭션 단위에 포함 X
728x90
반응형
'스마트한 개발 공부 > SQL' 카테고리의 다른 글
[MySQL] 데이터 형식 및 MySQL 내장함수 (0) | 2021.09.16 |
---|---|
[MySQL] 기본 문법 정리 (0) | 2021.09.13 |