View allAll Photos Tagged CodeGym

 

Chắc hẳn, các bạn đã nghe nhiều về transaction rồi. Nhưng không phải ai cũng hiểu và sử dụng thành thạo transaction. Nên bài hôm nay mình sẽ phân tích chi tiết về transaction và dựa trên ví dụ để chúng ta hiểu rõ hơn về nó.

 

1. Transaction là gì và mục đích sử dụng

 

Là kỹ thuật xử lý nhiều tiến trình được thực hiện tuần tự.

 

Các tiến trình đó có thể là: create, read, update hoặc delete.

 

Nếu tất cả tiến trình thực hiện thành công, thì transaction sẽ được commit và dữ liệu sẽ được cập nhật vào DB.

 

[Database] Transaction (Part 1)

 

[Database] Transaction (Part 2)

 

2. Ví dụ về transaction

 

Transaction bên dưới đang có 2 tiến trình:

 

Thực hiện rút tiền từ tài khoản #1.

 

Sau đó, gửi tiền vào tài khoản #2.

 

Nhưng nếu tiến trình 1 bị lỗi, tức là tiền không thể rút từ tài khoản 1, thì tiến trình 2 không thể thực hiện, dữ liệu sẽ được phục hồi về ban đầu.

 

Tương tự như vậy, nếu tiến trình 1 thành công, nhưng tiến trình 2 gặp lỗi, thì dữ liệu không thể được commit và sẽ toàn bộ dữ liệu ở các tiến trình trước cũng sẽ phục hồi về ban đầu.

 

Cuối cùng, cả 2 tiến trình đều thực hiện thành công thì toàn bộ dữ liệu sẽ được commit vào DB.

 

3. Hướng dẫn cách tạo transaction

 

Cú pháp

 

Để bắt đầu một transaction:

 

START TRANSACTION;

 

Khi muốn trả về trạng thái DB ban đầu trước khi transaction hoạt động, hoặc có thể trả về SAVEPOINT:

 

ROLLBACK;

 

Cuối cùng, để cập nhật dữ liệu ở transaction đến DB:

 

COMMIT;

 

Ví dụ

 

Bạn còn nhớ ví dụ ở bài STORED PROCEDURE (SP) không? Nó sẽ thực hiện tạo ra thông tin khám bệnh, bằng cách đăng ký dữ liệu lần lượt vào các table medical_record, doctor_treatment. Nhưng trong trường hợp dữ liệu đăng ký thành công ở table medical_record, sau đó thực hiện thêm dữ liệu vào table doctor_treatment lại xảy ra lỗi. Vậy thì dữ liệu ở table trước đó (tức là table medical_record) đang bị dư thừa và có thể gây ra sự không đồng bộ về việc liên kết dữ liệu sau này.

 

Nên mình sẽ áp dụng transaction vào SP để giải quyết vấn đề trên, nếu một trong các tiến trình xảy ra lỗi, thì sẽ phục hồi lại trạng thái của DB về ban đầu.

 

delimiter //

 

CREATE PROCEDURE sp_register_treatment_transaction (p_doctor_id INT

 

, p_patient_id INT

 

, p_fee DOUBLE)

 

BEGIN

 

START TRANSACTION;

 

BEGIN

 

DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;

 

INSERT INTO medical_record (date_of_examination, fee, patient_id)

 

VALUES (CURDATE(), p_fee, p_patient_id);

 

INSERT INTO doctor_treatment (doctor_id, record_id)

 

VALUES (p_doctor_id, LAST_INSERT_ID());

 

SELECT d.doctor_id, d.last_name, mr.fee, p.patient_id, p.`name`

 

FROM doctor d

 

INNER JOIN doctor_treatment dt ON d.doctor_id = dt.doctor_id

 

INNER JOIN medical_record mr ON dt.record_id = mr.record_id

 

INNER JOIN patient p ON mr.patient_id = p.patient_id

 

WHERE mr.record_id = LAST_INSERT_ID();

 

COMMIT;

 

END;

 

END //

 

delimiter ;

 

Với dòng DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK, nó sẽ giúp thoát SP và rollback lại toàn bộ dữ liệu khi xảy ra lỗi ở một dòng lỗi nào đó trong transaction.

 

4. Các tính chất của transaction

 

Bao gồm 4 tính chất, kết hợp lại thành cụm là ACID.

 

4.1. Atomicity

 

Toàn bộ các tiến trình đều thành công, thì transaction sẽ được đánh giá là thành công. Ngược lại, nếu có một điểm bị lỗi thì tất cả tiến trình trước đó sẽ rollback.

 

4.2. Consistency

 

Các dữ liệu được thực hiện ở transaction phải đảm bảo theo các quy định, ràng buộc (constraints), cascade và trigger.

 

4.3. Isolation

 

Tất cả transaction sẽ thực hiện độc lập với các transaction khác.

 

4.4. Durability

 

Những cập nhật đến từ transaction vẫn luôn đảm bảo thành công, thậm chí nếu hệ thống có bị lỗi.

 

Kết luận

 

Tóm lại, một chuỗi lệnh được xảy ra và các lệnh cần có tính ảnh hưởng lẫn nhau thì transaction sẽ là giải pháp cho vấn đề này. Và các dữ liệu từ transaction sẽ luôn được đảm bảo.

 

Nguồn: codegym.vn/blog/2023/11/22/transaction-va-cac-tinh-chat/

Khóa học lập trình Java theo chương trình Coding Bootcamp tại CodeGym Hà Nội giúp học viên trở thành lập trình viên chuyên nghiệp sau 6 tháng, làm chủ các kiến thức lập trình nói chung và Java web nói riêng. Học lập trình thôi là chưa đủ, để làm được việc và phát triển lâu dài với lập trình, bạn cần có các kỹ năng

 

- Kỹ năng chuyên môn:

Tuân thủ tốt các nguyên tắc mã sạch thông dụng

Sử dụng thành thạo ngôn ngữ Java

- Kỹ năng học tập làm và làm việc suốt đời:

Kỹ năng quản lý thời gian công việc

Giao tiếp và cộng tác

Kỹ năng tạo CV và phỏng vấn tuyển dụng,

- Việc làm:

Được đào tạo toàn diện các kỹ năng nghề nghiệp và sẵn sàng làm việc ngay khi học xong.

Cam kết việc làm bằng văn bản hợp đồng

 

Tham gia khóa học Java web chuyên nghiệp tại CodeGym Hà Nội: hanoi.codegym.vn/khoa-hoc-java/

 

Trụ sở: Số 23, Lô TT01, KĐT Moncity, Hàm Nghi, Mỹ Đình 2, Nam Từ Liêm, Hà Nội.

Cơ sở 2: Tầng 2, Tòa Hapulico 17T4, Nguyễn Huy Tưởng, Q.Thanh Xuân, Hà Nội.

Email: hanoi@codegym.vn

Hotline: 0246 253 8829

#codegymhanoi #khoahocjava #khoahocjavaweb #hoclaptrinhweb #javaweb

Đối với những người tham gia khóa học lập trình ngắn hạn vấn đề bằng cấp và đầu ra xin việc sẽ có nhiều khó khăn. Bạn cần tìm trung tâm uy tín và có cam kết về việc làm sau khi hoàn thành xong khóa học. CodeGym là đơn vị đào tạo công nghệ thông tin với hệ thống lập trình hiện đại. Đơn vị chúng tôi tự hào sẽ lựa chọn thông thái nhất của học viên học lập trình ngắn hạn. Các khóa học lập trình thực chiến tại CodeGym gồm có khóa học lập trình cho người mới bắt đầu và khóa học dành cho những người đã có nền tảng về CNTT. Khoá học lập trình ngắn hạn tại CodeGym Hai ngôn ngữ lập trình nổi tiếng đó là khóa học Java và khóa học Python. CodeGym sẽ cam kết về chất lượng cũng như việc làm cho các học viên sau khi tốt nghiệp với mức lương từ 10 đến 15 triệu. - dt6rijozm4 - codegym.vn/blog/2023/01/07/khoa-hoc-lap-trinh-ngan-han/

  

Mô tả công việc

 

Tư vấn sản phẩm/dịch vụ đào tạo của CodeGym và giải đáp thông tin liên quan cho khách hàng;

 

Tìm kiếm, phát triển dữ liệu khách hàng từ các nguồn khác để đảm bảo chỉ tiêu tuyển sinh;

 

Cập nhật dữ liệu khách hàng lên phần mềm và các biểu mẫu quản lý theo quy định;

 

Thống kê, báo cáo dữ liệu tuyển sinh và các vấn đề liên quan định kỳ hoặc theo yêu cầu;

 

Tham gia các phiên họp và đào tạo định kỳ hoặc theo yêu cầu;

 

Các công việc khác theo sự phân công của Cán bộ quản lý.

 

Yêu cầu ứng viên

 

Tốt nghiệp Trung cấp, Cao đẳng, Đại học ưu tiên ứng viên tốt nghiệp các chuyên ngành quản trị kinh doanh, kinh tế, marketing, tâm lý, giáo dục, ngoại ngữ…;

 

Có khả năng thuyết trình trước đám đông, khả năng thuyết phục khách hàng, khả năng nắm bắt tâm lý khách hàng;

 

Có khả năng giao tiếp tốt; giọng nói chuẩn (không nói ngọng);

 

Ngoại hình sáng, nhanh nhẹn, trung thực, tự tin, ham học hỏi, nhiệt huyết trong công việc;

 

Có sức khỏe tốt, trung thực, nhiệt tình, trách nhiệm và chịu được áp lực trong công việc…;

 

Có kinh nghiệm trong các vị trí: nhân viên kinh doanh, telesales, tiếp thị; tư vấn…;

 

Có kinh nghiệm trong công tác tuyển sinh và tư vấn giáo dục là một lợi thế lớn;

 

Tự túc máy tính xách tay cá nhân.

 

Quyền lợi

 

Mức lương: 15 – 25 triệu;

 

Môi trường làm việc tử tế, trẻ trung, thân thiện, chuyên nghiệp, đề cao tinh thần học tập và phát triển;

 

Tham gia BHYT, BHXH, BHTN và các chế độ phúc lợi theo quy định của Công ty (như sinh nhật, thưởng các ngày lễ, tết);

 

Khám sức khỏe định kỳ hàng năm;

 

Được tham gia giờ học tập nội bộ 1 lần/tuần;

 

Tham gia các khóa đào tạo định kỳ về quản lý công việc và nâng cao chuyên môn;

 

Du lịch công ty/team building ít nhất 2 lần/năm;

 

Thưởng Quý;

 

Review lương 2 lần/năm;

 

Nghỉ phép 12 ngày/năm.

 

Địa điểm làm việc

 

Hà Nội: Trung tâm đào tạo CodeGym Hà Nội – Căn hộ TT01.23, khu đô thị Moncity, Hàm Nghi, Mỹ Đình., Nam Từ Liêm;

 

Hồ Chí Minh: Trung tâm đào tạo CodeGym Sài Gòn – Số 21k Nguyễn Văn Trỗi, Q. Phú Nhuận, TP. Hồ Chí Minh, Phú Nhuận.

 

Cách thức ứng tuyển

 

Ứng viên nộp hồ sơ trực tuyến bằng cách liên hệ:

 

Email: talent@codegym.vn

 

SĐT: 0978.121.792

 

Hạn nộp hồ sơ: 30/12/2023

 

Application deadline: December 30, 2023

 

Nguồn: codegym.vn/blog/2023/11/23/tuyen-dung-direct-sale/

 

SQL được chia thành nhiều nhóm lệnh khác nhau như:

 

Nhóm định nghĩa cấu trúc dữ liệu (DDL).

 

Nhóm lệnh thao tác dữ liệu (DML).

 

Nhóm lệnh phân quyền sử dụng dữ liệu (DCL).

 

Nhóm lệnh thao tác với transaction (TCL).

 

Bài hôm nay chúng ta sẽ cùng tìm hiểu về các câu lệnh ở DDL.

 

1. Vai trò của các câu lệnh DDL trong SQL

 

Với nhóm lệnh DDL sẽ ứng dụng cho việc xây dựng cấu trúc, định nghĩa dữ liệu ở DB. Và để dễ dàng thiết lập DB về sau.

 

[Database] DDL

 

2. Hướng dẫn sử dụng các câu lệnh thông dụng ở DDL

 

2.1. Câu lệnh CREATE

 

Thường sử dụng để tạo cấu trúc của table, về sau này có thể sử dụng cho khái niệm nâng cao như tạo VIEW, TRIGGER, STORED PROCEDURE, FUNCTION…

 

Cú pháp

 

CREATE TABLE table_name (

 

column1 datatype,

 

column2 datatype,

 

column3 datatype,

 

....

 

);

 

Ví dụ

 

CREATE DATABASE hospital_management;

 

USE hospital_management;

 

CREATE TABLE doctor (

 

doctor_id INT,

 

first_name VARCHAR(10),

 

middle_name VARCHAR(10)

 

);

 

Với ví dụ trên, mình đang sử dụng CREATE để lần lượt tạo DB là quản lý bệnh viện. Và sau đó tiếp tục sử dụng để tạo table doctor, với 3 column là doctor_id (mã bác sĩ), first_name (tên bác sĩ), middle_name (tên lót của bác sĩ).

 

2.2. Câu lệnh ALTER

 

Khi các bạn muốn cập nhật lại cấu trúc của table, thì hãy nghĩ ngay đến câu lệnh ALTER. Ngoài ra, với những khái niệm nào thường được sử dụng với CREATE, thì sẽ sử dụng được với ALTER.

 

Cú pháp

 

Thêm một cột

 

ALTER TABLE table_name

 

ADD column_name datatype;

 

Xoá một cột

 

ALTER TABLE table_name

 

DROP COLUMN column_name;

 

Đổi tên cột

 

ALTER TABLE table_name

 

RENAME COLUMN old_name to new_name;

 

Sửa đổi kiểu dữ liệu của cột

 

ALTER TABLE table_name

 

MODIFY COLUMN column_name datatype;

 

Ví dụ

 

Ở ví dụ về CREATE, mình đã tạo ra table là doctor. Nhưng đang thiếu trường last_name là họ của bác sĩ, vậy mình sẽ tiến hành cập nhật theo lệnh bên dưới:

 

ALTER TABLE doctor

 

ADD last_name VARCHAR(10);

 

2.3. Câu lệnh DROP

 

Với các table không được sử dụng nữa, thì cần thực hiện xoá đi với câu lệnh DROP, nó sẽ xoá toàn bộ cấu trúc và dữ liệu của table ra khỏi DB.

 

Cú pháp

 

DROP TABLE table_name;

 

Ngoài ra, nếu bạn chỉ muốn xoá dữ liệu thôi, thì có thể sử dụng:

 

TRUNCATE TABLE table_name;

 

Ví dụ

 

DROP TABLE doctor;

 

Kết luận

 

Tóm lại với các bộ lệnh ở DDL, thì thường được sử dụng cho các thao tác liên quan đến cấu trúc trong DB và cú pháp cũng không khó để sử dụng:

 

Tạo mới cấu trúc: CREATE

 

Chính sửa cấu trúc: ALTER

 

Xoá cấu trúc: DROP

 

Nguồn: codegym.vn/blog/2023/11/18/cac-cau-lenh-thong-dung-o-ddl/

Công nghệ thông tin gồm những môn nào? Làm gì? Nên học ở đâu?

Thời gian này, các bạn học sinh lớp 12 đang gấp rút chuẩn bị kiến thức cho kì thi sắp tới. Nhiều bạn đang quan tâm đến khối ngành công nghệ thông tin. Vì nhận thấy đây đang là ngành Hot và xu hướng phát triển chung. Tuy nhiên, không phải ai cũng hiểu hết về ngành này. Vậy công nghệ thông tin gồm những môn nào? Làm gì? Nên học ở đâu? Tất cả sẽ có trong bài viết này.

 

#codegym #hoclaptrinh #codingbootcamp #CNTT #laptrinhvien #daotaolaptrinh

codegym.vn/blog/2021/01/29/cong-nghe-thong-tin-gom-nhung-...

Cẩm nang từ A – Z về học lập trình cho người mới bắt đầu

Những người mới bắt đầu thường có xu hướng tìm hiểu xem nên chọn học ngôn ngữ gì. Tuy nhiên, đó lại là cách làm ngược. Thực tế, công nghiệp phần mềm không phải là một khối đơn nhất mà có nhiều mảng lĩnh vực nhỏ. Trước khi quyết định học một ngôn ngữ, bạn nên xác định mình muốn tham gia vào lĩnh vực nào. Cũng giống như đi câu cá, bạn nên khảo sát ao cá xem có cá không, có những loại cá nào. Sau đó, hãy đi mua loại cần câu và mồi câu thích hợp.

Xem thêm: codegym.vn/blog/2018/11/21/hoc-lap-trinh-cho-nguoi-moi-ba...

#codegym #hoclaptrinh #codingbootcamp #CNTT #laptrinhvien #daotaolaptrinh

1 2 3 4 6 ••• 10 11