스마트한 개발 공부/SQL

DBMS의 정의와 특징 및 DBMS 데이터 언어

스마트한지노 2021. 9. 15. 16:13
728x90
반응형

1. DBMS란

1.1 데이터베이스의 정의와 특징 

1.1.1 데이터베이스

  • ‘데이터의 집합’
  • 여러 명의 사용자나 응용프로그램이 공유하는 데이터들
  • 동시에 접근 가능함
  • ‘데이터의 저장 공간’ 자체

1.1.2 DBMS

  • 데이터베이스를 관리·운영하는 역할
  • DBMS의 종류는 매우 다양한데 표준SQL문 + 내장함수(DBMS 종류와 버전별로 조금씩 다르다)

1.2 DB/DBMS의 특징

  • 데이터의 무결성 (Integrity)
    1. 데이터베이스 안의 데이터는 오류가 없어야함
    2. 제약 조건(Constrain)이라는 특성을 가짐
  • 데이터의 독립성
    1. 데이터베이스 크기 변경하거나 데이터 파일의 저장소 변경시에는 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야함
  • 보안
    1. 데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 
      접근할 때도 사용자의 계정에 따라서 다른 권한 가짐
  • 데이터 중복의 최소화
    1. 동일한 데이터가 여러 개 중복되어 저장되는 것 방지

  • 응용프로그램 제작 및 수정이 쉬워짐
    1. 통일된 방식으로 응용프로그램 작성 가능
    2. 유지보수 또한 쉬워짐

  • 데이터의 안전성 향상
    1. 대부분의 DBMS가 제공하는 백업·복원 기능 이용
    2. 데이터가 깨지는 문제가 발생할 경우 원상으로 복원 , 복구하는 방법이 명확해짐

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