Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

미래학자

[MySQL] 11장 부록 (트랜잭션, 뷰, Date) 본문

DataBase

[MySQL] 11장 부록 (트랜잭션, 뷰, Date)

미래학자 2016. 11. 23. 14:34

지금까지 헤드퍼스트 SQL 책을 정리했다. 물론 SQL에는 더 많은 내용을 가지고 있다. 지금까지 다뤘던 내용은 기본적으로 많이 사용하는 내용을 위주로

다뤘다.


지금부터는 큰 주제로 다루지 못한 내용을 간단히 살펴 보려고 한다.


  1. 뷰 (VIEW)
  2. CHECK
  3. 트랜잭션
  4. DATE


1. 뷰 (VIEW)


뷰에 대한 설명은 다음과 같다.


쿼리를 저장하여 결과를 여러번 반복해서 확인하는 방법. 흔히, 가상 테이블이라 한다. 실제로 동작하는 것은 내부적으로 서브 쿼리를 호출한다.


뷰의 유용성

  1. 테이블 구조가 변경되어도 뷰를 계속 사용가능
  2. 어플리케이션 코드에 복잡한 쿼리가 존재하지 않게 할 수 있다.
  3. 쿼리가 어플리케이션에 노출 되지 않음
SELECT 할 수 있는 데이터는 모두 뷰로 만들 수 있다.






2. CHECK


만약, 성별 데이터를 'W', 또는 'M'일 것이라 예상을 하는데 다른 값이 들어간다면? 또는 다른 값을 넣는 것을 방지하고 싶다면??


* 데이터 무결성 : 특정 데이터에는 우리가 예상할수 있는, 의미가 있는 데이터 이외의 데이터가 들어가면 안된다.

* MySQL 에서는 안된다.



3. 트랜잭션(TRANSACTION)



트랜잭션은 데이터 베이스를 안정적으로 사용하기 위해 고안된 내용이다. 트랜잭션에 대한 개념은 지금 많이 다루지는 못할 것 같다. 나중에 내가 트랜잭션에

대해 이해를 하게 되면 그 때 트랜잭션을 하나의 주제로 새롭게 글을 쓸 수 있을 것 같다.


지금은 대략적인 내용만 살펴보자.


트랜잭션 : 어떤 처리 과정에서 어떤 단계에서든 문제가 발생하면 초기 상태로 되돌려서, 전체가 실행되거나, 전체 중 어떤 것도 반영되지 않게 하는 것.


A : ATOMICITY (일부만 수행할 수 없음)

C : CONSISTENCY

I : ISOLATION (다른 트랜잭션이 실행 중에는 관련된 데이터에 접근 조차 못함)

D : DUABILITY (결과 그대로 저장되고 유지)



* MySQL에는 여러 엔진이 있는데 그 중 트랜잭션이 가능한 엔진은 BDB, InnoDB 다. (Default 는 InnoDB)


ALTER TABLE your_table TYPE = InnoDB; # 변경 가능



4. DATE (DATETIME, TIME)


자료형 

format 

예 

DATE 

YYYY-MM-DD 

2016-11-23

DATETIME 

YYYY-MM-DD HH:MM:SS

2016-11-23 11:12:53

TIMESTAMP 

YYYYMMDDHHMMSS 

20161123111253 

 TIME

HH:MM:SS 

11:12:53 



TIMESTAMP는 시스템 변수를 통해 시간을 받아 오고, DATETIME은 임의로 입력한다. DATETIME은 미래의 일정에 적합하고, TIMESTAMP는 어떤 처리 시간을

저장할 때 유용할 것으로 보인다.




아래와 같이 일정한 형태로 날짜 정보를 출력도 가능하다.





지금은 간단하게 내용을 다뤘지만, 몇몇 개는 더 공부하여 하나의 주제로 잡고 다시 다루는 날을 기약해본다.

Comments