{"id":9501,"date":"2025-04-22T12:13:17","date_gmt":"2025-04-22T05:13:17","guid":{"rendered":"https:\/\/mb668s.com\/cam-nang-7mb66-xoc-dia\/?p=9501"},"modified":"2025-04-22T12:17:41","modified_gmt":"2025-04-22T05:17:41","slug":"transaction-trong-database-la-gi","status":"publish","type":"post","link":"https:\/\/mb668s.com\/cam-nang-7mb66-xoc-dia\/tu-van-nghe-nghiep\/transaction-trong-database-la-gi","title":{"rendered":"Transaction trong database l\u00e0 g\u00ec? Kh\u00e1i ni\u1ec7m \u0111\u1ebfn \u1ee9ng d\u1ee5ng trong h\u1ec7 qu\u1ea3n tr\u1ecb d\u1eef li\u1ec7u"},"content":{"rendered":"\n

Trong c\u00e1c h\u1ec7 th\u1ed1ng c\u01a1 s\u1edf d\u1eef li\u1ec7u hi\u1ec7n \u0111\u1ea1i, vi\u1ec7c \u0111\u1ea3m b\u1ea3o r\u1eb1ng d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c x\u1eed l\u00fd ch\u00ednh x\u00e1c, nh\u1ea5t qu\u00e1n v\u00e0 c\u00f3 th\u1ec3 kh\u00f4i ph\u1ee5c sau s\u1ef1 c\u1ed1 l\u00e0 m\u1ed9t y\u00eau c\u1ea7u b\u1eaft bu\u1ed9c. Transaction ch\u00ednh l\u00e0 c\u01a1 ch\u1ebf quan tr\u1ecdng gi\u00fap \u0111\u00e1p \u1ee9ng c\u00e1c ti\u00eau ch\u00ed \u0111\u00f3. Khi thao t\u00e1c v\u1edbi d\u1eef li\u1ec7u, \u0111\u1eb7c bi\u1ec7t trong c\u00e1c h\u1ec7 th\u1ed1ng c\u00f3 nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng truy c\u1eadp \u0111\u1ed3ng th\u1eddi vi\u1ec7c ki\u1ec3m so\u00e1t qu\u00e1 tr\u00ecnh th\u1ef1c thi tr\u1edf n\u00ean v\u00f4 c\u00f9ng quan tr\u1ecdng. Ch\u00ednh v\u00ec v\u1eady, hi\u1ec3u r\u00f5 Transaction trong database l\u00e0 g\u00ec<\/strong> s\u1ebd gi\u00fap b\u1ea1n n\u1eafm \u0111\u01b0\u1ee3c c\u00e1ch qu\u1ea3n l\u00fd d\u1eef li\u1ec7u an to\u00e0n, hi\u1ec7u qu\u1ea3 v\u00e0 tin c\u1eady h\u01a1n trong c\u00e1c \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf.<\/p>\n\n\n\n

\"Transaction<\/figure>\n\n\n\n

Transaction trong database l\u00e0 g\u00ec?<\/h2>\n\n\n\n
\n

Transaction trong c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 m\u1ed9t \u0111\u01a1n v\u1ecb x\u1eed l\u00fd \u0111\u1ed9c l\u1eadp bao g\u1ed3m m\u1ed9t ho\u1eb7c nhi\u1ec1u thao t\u00e1c truy xu\u1ea5t v\u00e0 thay \u0111\u1ed5i d\u1eef li\u1ec7u.<\/strong><\/p>\n<\/blockquote>\n\n\n\n

T\u1ea5t c\u1ea3 c\u00e1c thao t\u00e1c trong m\u1ed9t Transaction \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n nh\u01b0 m\u1ed9t kh\u1ed1i th\u1ed1ng nh\u1ea5tngh\u0129a l\u00e0 ho\u1eb7c t\u1ea5t c\u1ea3 \u0111\u1ec1u \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00e0nh c\u00f4ng, ho\u1eb7c kh\u00f4ng c\u00f3 thao t\u00e1c n\u00e0o \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng n\u1ebfu c\u00f3 l\u1ed7i x\u1ea3y ra. Transaction gi\u00fap \u0111\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n, nh\u1ea5t qu\u00e1n v\u00e0 kh\u1ea3 n\u0103ng kh\u00f4i ph\u1ee5c c\u1ee7a c\u01a1 s\u1edf d\u1eef li\u1ec7u trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd, \u0111\u1eb7c bi\u1ec7t quan tr\u1ecdng trong c\u00e1c h\u1ec7 th\u1ed1ng \u0111a ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c y\u00eau c\u1ea7u \u0111\u1ed9 tin c\u1eady cao.<\/p>\n\n\n\n

C\u00e1c t\u00ednh ch\u1ea5t ACID c\u1ee7a Transaction<\/h2>\n\n\n\n

ACID l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p b\u1ed1n t\u00ednh ch\u1ea5t quan tr\u1ecdng m\u00e0 m\u1ed7i Transaction ph\u1ea3i tu\u00e2n th\u1ee7 \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh v\u00e0 \u0111\u00e1ng tin c\u1eady trong c\u01a1 s\u1edf d\u1eef li\u1ec7u: Atomicity, Consistency, Isolation v\u00e0 Durability. C\u00e1c t\u00ednh ch\u1ea5t n\u00e0y \u0111\u00f3ng vai tr\u00f2 thi\u1ebft y\u1ebfu trong vi\u1ec7c b\u1ea3o v\u1ec7 t\u00ednh to\u00e0n v\u1eb9n d\u1eef li\u1ec7u, \u0111\u1eb7c bi\u1ec7t trong m\u00f4i tr\u01b0\u1eddng \u0111a ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c c\u00f3 kh\u1ea3 n\u0103ng x\u1ea3y ra l\u1ed7i h\u1ec7 th\u1ed1ng. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 ba t\u00ednh ch\u1ea5t quan tr\u1ecdng c\u1ea7n ch\u00fa \u00fd:<\/p>\n\n\n\n

Consistency (T\u00ednh nh\u1ea5t qu\u00e1n)<\/h3>\n\n\n\n

T\u00ednh nh\u1ea5t qu\u00e1n y\u00eau c\u1ea7u m\u1ed7i Transaction khi ho\u00e0n t\u1ea5t ph\u1ea3i \u0111\u01b0a c\u01a1 s\u1edf d\u1eef li\u1ec7u t\u1eeb m\u1ed9t tr\u1ea1ng th\u00e1i h\u1ee3p l\u1ec7 sang m\u1ed9t tr\u1ea1ng th\u00e1i h\u1ee3p l\u1ec7 kh\u00e1c. N\u1ebfu m\u1ed9t Transaction l\u00e0m sai l\u1ec7ch r\u00e0ng bu\u1ed9c d\u1eef li\u1ec7u, to\u00e0n b\u1ed9 qu\u00e1 tr\u00ecnh s\u1ebd b\u1ecb h\u1ee7y b\u1ecf \u0111\u1ec3 duy tr\u00ec tr\u1ea1ng th\u00e1i h\u1ee3p l\u1ec7 ban \u0111\u1ea7u. \u0110\u00e2y l\u00e0 \u0111i\u1ec3m kh\u00e1c bi\u1ec7t l\u1edbn so v\u1edbi c\u00e1c truy v\u1ea5n \u0111\u01a1n l\u1ebb (query), v\u1ed1n ch\u1ec9 th\u1ef1c hi\u1ec7n t\u1eebng h\u00e0nh \u0111\u1ed9ng ri\u00eang bi\u1ec7t m\u00e0 kh\u00f4ng ki\u1ec3m so\u00e1t \u0111\u01b0\u1ee3c to\u00e0n b\u1ed9 chu\u1ed7i logic x\u1eed l\u00fd. Nh\u1edd t\u00ednh nh\u1ea5t qu\u00e1n, c\u01a1 s\u1edf d\u1eef li\u1ec7u lu\u00f4n ph\u1ea3n \u00e1nh \u0111\u00fang logic nghi\u1ec7p v\u1ee5 v\u00e0 c\u00e1c quy t\u1eafc \u0111\u00e3 thi\u1ebft l\u1eadp, d\u00f9 c\u00f3 x\u1ea3y ra l\u1ed7i ho\u1eb7c gi\u00e1n \u0111o\u1ea1n.<\/p>\n\n\n\n

Isolation (T\u00ednh c\u00f4 l\u1eadp)<\/h3>\n\n\n\n

Isolation \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c Transaction ch\u1ea1y \u0111\u1ed3ng th\u1eddi kh\u00f4ng g\u00e2y \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn nhau. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 k\u1ebft qu\u1ea3 th\u1ef1c thi c\u1ee7a c\u00e1c Transaction \u0111\u1ed3ng th\u1eddi ph\u1ea3i gi\u1ed1ng nh\u01b0 khi ch\u00fang \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tu\u1ea7n t\u1ef1. T\u00ednh ch\u1ea5t n\u00e0y gi\u00fap tr\u00e1nh \u0111\u01b0\u1ee3c c\u00e1c v\u1ea5n \u0111\u1ec1 nh\u01b0 \u0111\u1ecdc d\u1eef li\u1ec7u ch\u01b0a commit (dirty read) ho\u1eb7c thay \u0111\u1ed5i d\u1eef li\u1ec7u gi\u1eefa c\u00e1c l\u1ea7n \u0111\u1ecdc (non-repeatable read). C\u01a1 s\u1edf d\u1eef li\u1ec7u th\u01b0\u1eddng cung c\u1ea5p nhi\u1ec1u m\u1ee9c \u0111\u1ed9 isolation kh\u00e1c nhau \u0111\u1ec3 c\u00e2n b\u1eb1ng gi\u1eefa hi\u1ec7u su\u1ea5t v\u00e0 \u0111\u1ed9 an to\u00e0n d\u1eef li\u1ec7u. Vi\u1ec7c l\u1ef1a ch\u1ecdn \u0111\u00fang m\u1ee9c \u0111\u1ed9 l\u00e0 y\u1ebfu t\u1ed1 then ch\u1ed1t trong thi\u1ebft k\u1ebf h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n

Durability (T\u00ednh b\u1ec1n v\u1eefng)<\/h3>\n\n\n\n

Durability \u0111\u1ea3m b\u1ea3o r\u1eb1ng khi m\u1ed9t Transaction \u0111\u00e3 \u0111\u01b0\u1ee3c commit, c\u00e1c thay \u0111\u1ed5i m\u00e0 n\u00f3 t\u1ea1o ra s\u1ebd \u0111\u01b0\u1ee3c ghi nh\u1eadn v\u0129nh vi\u1ec5n trong h\u1ec7 th\u1ed1ng, k\u1ec3 c\u1ea3 khi h\u1ec7 th\u1ed1ng g\u1eb7p s\u1ef1 c\u1ed1 nh\u01b0 m\u1ea5t \u0111i\u1ec7n hay l\u1ed7i ph\u1ea7n m\u1ec1m. T\u00ednh ch\u1ea5t n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u1ea3m b\u1ea3o th\u00f4ng qua c\u00e1c c\u01a1 ch\u1ebf ghi log, snapshot ho\u1eb7c replication. V\u1edbi Durability, h\u1ec7 th\u1ed1ng lu\u00f4n c\u00f3 th\u1ec3 ph\u1ee5c h\u1ed3i tr\u1ea1ng th\u00e1i ch\u00ednh x\u00e1c \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn, gi\u1ea3m thi\u1ec3u r\u1ee7i ro m\u1ea5t m\u00e1t d\u1eef li\u1ec7u trong c\u00e1c t\u00ecnh hu\u1ed1ng kh\u1ea9n c\u1ea5p.<\/p>\n\n\n\n

V\u00f2ng \u0111\u1eddi c\u1ee7a m\u1ed9t Transaction<\/h2>\n\n\n\n

M\u1ed9t Transaction trong c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00f4ng \u0111\u01a1n thu\u1ea7n ch\u1ec9 l\u00e0 m\u1ed9t l\u1ec7nh th\u1ef1c thi, m\u00e0 l\u00e0 m\u1ed9t chu\u1ed7i c\u00e1c b\u01b0\u1edbc x\u1eed l\u00fd c\u00f3 ki\u1ec3m so\u00e1t ch\u1eb7t ch\u1ebd. Vi\u1ec7c n\u1eafm r\u00f5 v\u00f2ng \u0111\u1eddi c\u1ee7a m\u1ed9t Transaction gi\u00fap ng\u01b0\u1eddi d\u00f9ng qu\u1ea3n l\u00fd hi\u1ec7u qu\u1ea3 tr\u1ea1ng th\u00e1i v\u00e0 h\u00e0nh vi c\u1ee7a d\u1eef li\u1ec7u trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd, t\u1eeb l\u00fac b\u1eaft \u0111\u1ea7u \u0111\u1ebfn khi k\u1ebft th\u00fac. M\u1ed7i giai \u0111o\u1ea1n \u0111\u1ec1u c\u00f3 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn t\u00ednh nh\u1ea5t qu\u00e1n v\u00e0 kh\u1ea3 n\u0103ng ph\u1ee5c h\u1ed3i c\u1ee7a h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n

B\u1eaft \u0111\u1ea7u (Begin)<\/h3>\n\n\n\n

Khi m\u1ed9t Transaction \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o, h\u1ec7 th\u1ed1ng s\u1ebd \u0111\u00e1nh d\u1ea5u tr\u1ea1ng th\u00e1i l\u00e0 \u201cactive\u201d. \u0110\u00e2y l\u00e0 th\u1eddi \u0111i\u1ec3m b\u1eaft \u0111\u1ea7u theo d\u00f5i c\u00e1c thay \u0111\u1ed5i m\u00e0 Transaction s\u1ebd th\u1ef1c hi\u1ec7n.<\/p>\n\n\n\n

Th\u1ef1c hi\u1ec7n (Execute)<\/h3>\n\n\n\n

Trong giai \u0111o\u1ea1n n\u00e0y, c\u00e1c l\u1ec7nh nh\u01b0 INSERT, UPDATE, DELETE \u0111\u01b0\u1ee3c th\u1ef1c thi. C\u00e1c thay \u0111\u1ed5i \u0111\u01b0\u1ee3c l\u01b0u t\u1ea1m v\u00e0o b\u1ed9 nh\u1edb v\u00e0 ch\u01b0a \u0111\u01b0\u1ee3c ghi v\u0129nh vi\u1ec5n v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/p>\n\n\n\n

Commit<\/h3>\n\n\n\n

N\u1ebfu Transaction th\u1ef1c hi\u1ec7n th\u00e0nh c\u00f4ng v\u00e0 kh\u00f4ng g\u1eb7p l\u1ed7i, l\u1ec7nh COMMIT s\u1ebd \u0111\u01b0\u1ee3c g\u1ecdi \u0111\u1ec3 x\u00e1c nh\u1eadn m\u1ecdi thay \u0111\u1ed5i. Sau b\u01b0\u1edbc n\u00e0y, d\u1eef li\u1ec7u s\u1ebd \u0111\u01b0\u1ee3c ghi v\u0129nh vi\u1ec5n v\u00e0o h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n

Rollback<\/h3>\n\n\n\n

N\u1ebfu x\u1ea3y ra l\u1ed7i ho\u1eb7c c\u00f3 y\u00eau c\u1ea7u h\u1ee7y b\u1ecf, ROLLBACK s\u1ebd ho\u00e0n t\u00e1c to\u00e0n b\u1ed9 c\u00e1c thay \u0111\u1ed5i \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n trong Transaction, \u0111\u01b0a h\u1ec7 th\u1ed1ng v\u1ec1 tr\u1ea1ng th\u00e1i ban \u0111\u1ea7u.<\/p>\n\n\n\n

Tr\u1ea1ng th\u00e1i c\u1ee7a Transaction<\/h3>\n\n\n\n

M\u1ed9t Transaction c\u00f3 th\u1ec3 tr\u1ea3i qua c\u00e1c tr\u1ea1ng th\u00e1i:<\/p>\n\n\n\n