ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN □ □ Báo cáo thực hành: BÀI TẬP LỚN 1 THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN Môn học: CƠ SỞ DỮ LIỆU PHÂN TÁN Giảng viên giảng dạy: Nguyễn Minh Nhựt Lớp: IS211.HTCL Sinh viên thực hiện: Nguyễn Thị Mỹ Trân - 20520322 Tôn Nữ Tú Quyên - 20520296 Thái Tăng Đức - 20521203 Trần Anh Huy - 20520551 Tp.HCM, tháng 12 năm 2022 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán MỤC LỤC MỤC LỤC. THIẾT KẾ CSDL PHÂN TÁN. Thiết kế và mô tả csdl phân tán. Kiến trúc phân mảnh.
Mô tả phân mảnh. Minh họa trên 2 chi nhánh. Xây dựng csdl phân tán. Kiến trúc phân quyền.
Mô tả kiến trúc phân quyền. Thực hiện 10 câu truy vấn. VIẾT HÀM, THỦ TỤC VÀ RÀNG BUỘC TOÀN VẸN. Ràng buộc toàn vẹn.
DEMO CÁC MỨC CÔ LẬP (ISOLATION LEVEL) TRONG MÔI TRƯỜNG PHÂN TÁN. Trường hợp lost update. Mô tả tình huống. 59 Trang | 1 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán 3.
Trường hợp dirty read. Trường hợp unrepeatable read. Trường hợp phantom read. Trường hợp deadlock.
THỰC HIỆN TỐI ƯU HÓA TRUY VẤN TRÊN MÔI TRƯỜNG PHÂN TÁN. Câu truy vấn đơn giản chưa tối ưu. EXPLAIN QUERY câu truy vấn đơn giản. Tối ưu hóa câu truy vấn cục bộ, phân tán.
Viết lại câu query trên môi trường phân tán. CƠ CHẾ NHÂN BẢN TRONG MICROSOFT SQL SERVER. Tìm hiểu cơ chế nhân bản, cách thức hoạt động. Demo cơ chế nhân bản trên nhiều cụm máy.
PHÂN CÔNG CÔNG VIỆC. 76 TÀI LIỆU THAM KHẢO. 77 Trang | 2 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán 1. THIẾT KẾ CSDL PHÂN TÁN 1.
Thiết kế và mô tả csdl phân tán CSDL Quản lý các chi nhánh Mini Mart Mini Mart có 2 chi nhánh tại Thành Phố Hồ Chí Minh. Trụ sở chính của Mini Mart nằm tại chi nhánh ‘Lê Văn Việt, Quận 9’ Lược đồ cơ sở dữ liệu của mỗi chi nhánh của Mini Mart như sau: BRANCH (BRANCH_ID, BRANCH_NAME, ADDRESS) Tân từ: Mỗi chi nhánh có mã chi nhánh (BRANCH_ID) dùng để phân biệt các chi nhánh với nhau ngoài ra còn lưu tên chi nhánh (BRANCH_NAME) và địa chỉ của chi nhánh đó (ADDRESS). Trường tên chi nhánh là duy nhất EMPLOYEE (EMP_ID, FIRST_NAME, LAST_NAME, GENDER, BIRTHDAY, PHONE, ADDRESS, START_DATE, SALARY, ROLE, BRANCH_ID) Tân từ: Mỗi nhân viên có mã nhân viên (EMPLOYEE_ID) là duy nhất, tên nhân viên (FIRST_NAME, LAST_NAME ), giới tính (GENDER), ngày sinh (BIRTHDAY), điện thoại (PHONE), địa chỉ (ADDRESS), chức vụ của nhân viên (JOB), ngày vào làm (START_DATE), gmức lương của nhân viên (SALARY), mã chi nhánh mà nhân viên đó làm việc (BRANCH_ID). CUSTOMER (CUS_ID, FIRST_NAME, LAST_NAME, GENDER, ADDRESS, PHONE, BIRTHDAY, REG_DATE, SPENT_MONEY, POINT) Tân từ: Mỗi khách hàng có mã khách hàng (CUSTOMER_ID) là duy nhất, họ và tên khách hàng (FIRST_NAME, LAST_NAME), giới tính (GENDER), ngày sinh Trang | 3 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán (BIRTHDAY), địa chỉ khách hàng (ADDRESS), điện thoại (), ngày đăng ký (PHONE), tổng tiền chi mua (SPENT_MONEY), điểm tích lũy đơn hàng (POINT) PRODUCT (PRO_ID, PRODUCT_NAME, COUNTRY, ORIGINAL_PRICE, SALE_PRICE, MFG, EXP, PRODUCT_TYPE, VAT, REMAINING_QUANTITY) Tân từ: mỗi sản phẩm có mã sản phẩm (PRO_ID) là suy nhất, tên sản phẩm (PRODUCT_NAME), nước sản xauast (COUNTRY), giá gốc (ORIGINAL_PRICE), giá bán (SALE_PRICE), ngày sản xuất (MFG), ngày hết hạn (EXP), loại sản phẩm ( PRODUCT_TYPE), vat (VAT) WAREHOUSE_MANAGEMENT (BRANCH_ID, PRO_ID, IMPORTED_DATE, IMPORTED_QUANTITY) Tân từ: Kho quản lý sản phảm có mã chi nhánh (BRANCH_ID), mã sản phẩm (PRO_ID), ngày nhập (IMPORTED_DATE), số lượng nhập (IMPORTED_QUANTITY) WAREHOUSE_SALES (BRANCH_ID, PRO_ID, STATUS) Tân từ: quản lý tình trạng bán hàng: mã chi nhánh (BRANCH_ID), mã sản phẩm (PRO_ID), tình trạng (STATUS) BILL (BILL_ID, EMP_ID, CUS_ID, BILL_DATE, TOTAL_MONEY) Tân từ: hóa đơn bán hàng có mã hóa đơn (BILL_ID), mã nhân viên thanh toán (EMP_ID), mã khách hàng (CUS_ID), ngày hóa đơn (BILL_ID), tổng tiền hóa đơn (TOTAL_MONEY) BILL_DETAILS (BILL_ID, PRO_ID, AMOUNT) Tân từ: chi tiết hóa đơn có mã hóa đơn (BILL_ID), mã sản phẩm (PRO_ID), và số lượng sản phẩm (AMOUNT) Trang | 4 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán 1.
Kiến trúc phân mảnh 1. Mô tả phân mảnh • Quan hệ BRANCH là phân mảnh ngang chính • Quan hệ EMPLOYEE, BILL, BILL_DETAILS là phân mảnh ngang dẫn xuất • Quan hệ WAREHOUSE được phân mảnh hỗn hợp thành WAREHOUSE_MANAGEMENT và WAREHOUSE_SALES. Trong đó: o Quan hệ WAREHOUSE_MANAGEMENT chứa các thông tin dùng để quản lý thông tin nhập sản phẩm; o Quan hệ WAREHOUSE_SALES quản lý thông tin trạng thái bán hàng của sản phẩm • Quan hệ CUSTOMER, PRODUCT được nhân bản tại tất cả chi nhánh 1. Minh họa trên 2 chi nhánh * Quan hệ BRANCH là phân mảnh ngang chính CN1.BRANCH = 𝛿(𝐵𝑅𝐴𝑁𝐶𝐻_𝑁𝐴𝑀𝐸 =′𝑀𝑖𝑛𝑖 𝑚𝑎𝑟𝑡 𝑄𝑢𝑎𝑛 9′) BRANCH CN2.BRANCH = 𝛿 (𝐵𝑅𝐴𝑁𝐶𝐻_𝑁𝐴𝑀𝐸 = BRANCH ′𝑀𝑖𝑛𝑖 𝑚𝑎𝑟𝑡 𝑐ℎ𝑖 𝑛ℎ𝑎𝑛ℎ 𝑄𝑢𝑎𝑛 1′) * Quan hệ EMPLOYEE, BILL, BILL_DETAILS là phân mảnh ngang dẫn xuất CN1.EMPLOYEE = EMPLOYEE ⋉𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷 CN1.EMPLOYEE = EMPLOYEE ⋉𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷 CN2.BILL_ID = BILL_ID ⋉𝐸𝑀𝑃_𝐼𝐷 CN1.BILL_ID = BILL_ID ⋉𝐸𝑀𝑃_𝐼𝐷 CN2.BILL_DETAILS = BILL_DETAILS ⋉𝐵𝐼𝐿𝐿_𝐼𝐷 CN1.
BILL_ID CN2. TRANSACTION = BILL_DETAILS ⋉𝐵𝐼𝐿𝐿_𝐼𝐷 CN2. BILL_ID *Quan hệ WAREHOUSE được phân mảnh hỗn hợp thành WAREHOUSE_MANAGEMENT và WAREHOUSE_SALES. Trong đó: Trang | 5 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán CN1.
WAREHOUSE_MANAGEMENT = 𝜋(𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷,𝑃𝑅𝑂_𝐼𝐷,𝐼𝑀𝑃𝑂𝑅𝑇𝐸𝐷_𝐷𝐴𝑇𝐸,𝐼𝑀𝑃𝑂𝑅𝑇𝐸𝐷_𝑄𝑈𝐴𝑁𝑇𝐼𝑇𝑌) (WAREHOUSE ⋉𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷 CN1. WAREHOUSE_SALES = 𝜋(𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷,𝑃𝑅𝑂_𝐼𝐷,𝑆𝑇𝐴𝑇𝑈𝑆) (WAREHOUSE⋉𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷 CN1. WAREHOUSE_MANAGEMENT = 𝜋(𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷,𝑃𝑅𝑂_𝐼𝐷,𝐼𝑀𝑃𝑂𝑅𝑇𝐸𝐷_𝐷𝐴𝑇𝐸,𝐼𝑀𝑃𝑂𝑅𝑇𝐸𝐷_𝑄𝑈𝐴𝑁𝑇𝐼𝑇𝑌) (WAREHOUSE ⋉𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷 CN1. WAREHOUSE_SALES = 𝜋(𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷,𝑃𝑅𝑂_𝐼𝐷,𝑆𝑇𝐴𝑇𝑈𝑆) (WAREHOUSE⋉𝐵𝑅𝐴𝑁𝐶𝐻_𝐼𝐷 CN1.BRANCH) *Quan hệ CUSTOMER, PRODUCT được nhân bản tại tất cả chi nhánh 1.
Xây dựng csdl phân tán 1. Dll CN1 CN2 CREATE TABLE CN1.BRANCH( CREATE TABLE CN2.BRANCH( BRANCH_ID VARCHAR2(5) BRANCH_ID VARCHAR2(5) CONSTRAINT BRANCH_PK CONSTRAINT BRANCH_PK PRIMARY KEY, PRIMARY KEY, BRANCH_NAME BRANCH_NAME VARCHAR2(200), VARCHAR2(200), ADDRESS VARCHAR2(200) ADDRESS VARCHAR2(200) ); ); CREATE TABLE CREATE TABLE CN1.EMPLOYEE( EMP_ID NUMBER EMP_ID NUMBER CONSTRAINT EMPLOYEE_PK CONSTRAINT EMPLOYEE_PK PRIMARY KEY, PRIMARY KEY, FIRST_NAME VARCHAR2(200), FIRST_NAME VARCHAR2(200), Trang | 6 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán LAST_NAME VARCHAR2(200), LAST_NAME VARCHAR2(200), GENDER VARCHAR(10), GENDER VARCHAR(10), BIRTHDAY DATE, BIRTHDAY DATE, PHONE VARCHAR2(200), PHONE VARCHAR2(200), ADDRESS VARCHAR2(200), ADDRESS VARCHAR2(200), START_DATE DATE, START_DATE DATE, SALARY NUMBER, SALARY NUMBER, ROLE VARCHAR2(200), ROLE VARCHAR2(200), BRANCH_ID VARCHAR2(5), BRANCH_ID VARCHAR2(5), CONSTRAINT CONSTRAINT FK_EMP_BRANCH FOREIGN FK_EMP_BRANCH FOREIGN KEY(BRANCH_ID) REFERENCES KEY(BRANCH_ID) REFERENCES BRANCH(BRANCH_ID) BRANCH(BRANCH_ID) ); ); CREATE TABLE CREATE TABLE CN2.CUSTOMER ( ( CUS_ID NUMBER CUS_ID NUMBER CONSTRAINT PK_STUDENT CONSTRAINT PK_STUDENT PRIMARY KEY, PRIMARY KEY, FIRST_NAME VARCHAR(20), FIRST_NAME LAST_NAME VARCHAR(20), VARCHAR(20), GENDER VARCHAR(10), LAST_NAME ADDRESS VARCHAR(200), VARCHAR(20), PHONE VARCHAR(20), GENDER VARCHAR(10), BIRTHDAY DATE, ADDRESS REG_DATE DATE, VARCHAR(200), SPENT_MONEY NUMBER, PHONE VARCHAR(20), POINT INT BIRTHDAY DATE, ); REG_DATE DATE, Trang | 7 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán SPENT_MONEY NUMBER, POINT INT ); CREATE TABLE CN1.PRODUCT CREATE TABLE CN2.PRODUCT ( ( PRO_ID NUMBER PRO_ID NUMBER CONSTRAINT PK_PRO PRIMARY CONSTRAINT PK_PRO PRIMARY KEY, KEY, PRODUCT_NAME PRODUCT_NAME VARCHAR(200), VARCHAR(200), COUNTRY VARCHAR(50), COUNTRY VARCHAR(50), ORIGINAL_PRICE NUMBER, ORIGINAL_PRICE NUMBER, SALE_PRICE NUMBER, SALE_PRICE NUMBER, MFG DATE, MFG DATE, EXP DATE, EXP DATE, PRODUCT_TYPE PRODUCT_TYPE VARCHAR(200), VARCHAR(200), VAT NUMBER, VAT NUMBER, REMAINING_QUANTITY REMAINING_QUANTITY NUMBER NUMBER ); ); CREATE TABLE CREATE TABLE CN1.WAREHOUSE_MANAGEME CN2.WAREHOUSE_MANAGEME NT NT ( ( BRANCH_ID VARCHAR2(5), BRANCH_ID VARCHAR2(5), PRO_ID NUMBER, PRO_ID NUMBER, IMPORTED_DATE DATE, IMPORTED_DATE DATE, Trang | 8 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán IMPORTED_QUANTITY IMPORTED_QUANTITY NUMBER, NUMBER, CONSTRAINT PK_WM CONSTRAINT PK_WM PRIMARY KEY(BRANCH_ID, PRIMARY KEY(BRANCH_ID, PRO_ID), PRO_ID), CONSTRAINT CONSTRAINT FK_WM_BRANCH FOREIGN KEY FK_WM_BRANCH FOREIGN KEY (BRANCH_ID) REFERENCES (BRANCH_ID) REFERENCES BRANCH(BRANCH_ID), BRANCH(BRANCH_ID), CONSTRAINT FK_WM_PRO CONSTRAINT FK_WM_PRO FOREIGN KEY (PRO_ID) FOREIGN KEY (PRO_ID) REFERENCES PRODUCT(PRO_ID) REFERENCES PRODUCT(PRO_ID) ); ); CREATE TABLE CREATE TABLE CN1.WAREHOUSE_SALES CN2.WAREHOUSE_SALES ( ( BRANCH_ID VARCHAR2(5), BRANCH_ID VARCHAR2(5), PRO_ID NUMBER, PRO_ID NUMBER, STATUS VARCHAR2(200), STATUS VARCHAR2(200), CONSTRAINT WS_PK CONSTRAINT WS_PK PRIMARY KEY(BRANCH_ID, PRIMARY KEY(BRANCH_ID, PRO_ID), PRO_ID), CONSTRAINT CONSTRAINT FK_WS_BRANCH FOREIGN KEY FK_WS_BRANCH FOREIGN KEY (BRANCH_ID) REFERENCES (BRANCH_ID) REFERENCES BRANCH(BRANCH_ID), BRANCH(BRANCH_ID), CONSTRAINT FK_WS_PRO CONSTRAINT FK_WS_PRO FOREIGN KEY (PRO_ID) FOREIGN KEY (PRO_ID) REFERENCES PRODUCT(PRO_ID) REFERENCES PRODUCT(PRO_ID) ); ); Trang | 9 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán CREATE TABLE CN1.BILL CREATE TABLE CN2.BILL ( ( BILL_ID NUMBER BILL_ID NUMBER CONSTRAINT PK_BILL PRIMARY CONSTRAINT PK_BILL PRIMARY KEY, KEY, EMP_ID NUMBER, EMP_ID NUMBER, CUS_ID NUMBER, CUS_ID NUMBER, BILL_DATE DATE, BILL_DATE DATE, TOTAL_MONEY NUMBER, TOTAL_MONEY NUMBER, CONSTRAINT FK_BILL_EMP CONSTRAINT FK_BILL_EMP FOREIGN KEY(EMP_ID) FOREIGN KEY(EMP_ID) REFERENCES REFERENCES EMPLOYEE(EMP_ID), EMPLOYEE(EMP_ID), CONSTRAINT FK_BILL_CUS CONSTRAINT FK_BILL_CUS FOREIGN KEY(CUS_ID) FOREIGN KEY(CUS_ID) REFERENCES REFERENCES CUSTOMER(CUS_ID) CUSTOMER(CUS_ID) ); ); CREATE TABLE CREATE TABLE CN1.BILL_DETAILS CN1. Dml CN1 CN2 INSERT INTO INSERT INTO CN1.BRANCH(BRANCH_ID, CN2.BRANCH(BRANCH_ID, BRANCH_NAME, ADDRESS) BRANCH_NAME, ADDRESS) VALUES ('CN1', 'Mini mart Quan 9', VALUES ('CN2', 'Mini mart chi '5, Le Van Viet, Quan 9, TPHCM'); nhanh Quan 1', '55, Ly Thanh Tong, Quan 1, TPHCM'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Nguyen Thi My', 'Tran','Female', 'Nguyen Thi My', 'Tam','Female', TO_DATE('05/05/2002', TO_DATE('05/05/2002', 'dd/mm/yyyy'), '0921231741', 'KTX 'dd/mm/yyyy'), '0921231741', 'KTX khu B', TO_DATE('21/02/2022', khu B', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 10000000,'Manager', 'dd/mm/yyyy'), 10000000,'Manager', 'CN1'); 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Ton Nu Tu', 'Quyen','Female', 'Ton Nu Tu', 'Tran','Female', Trang | 11 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán TO_DATE('05/01/2002', TO_DATE('05/01/2002', 'dd/mm/yyyy'), '0977164279', 'KTX 'dd/mm/yyyy'), '0977164279', 'KTX khu A', TO_DATE('21/02/2022', khu A', TO_DATE('21/02/2022', 'dd/mm/yyyy'),5000000, 'Cashier', 'dd/mm/yyyy'),5000000, 'Cashier', 'CN1'); 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Ngo Thi', 'Anh','Female', 'Ngo Thi', 'Bap','Female', TO_DATE('25/08/2002', TO_DATE('25/08/2002', 'dd/mm/yyyy'), '0356315873', '731 'dd/mm/yyyy'), '0356315873', '731 Tran Hung Dao, Q5, TpHCM', Tran Hung Dao, Q5, TpHCM', TO_DATE('21/02/2022', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 5000000, 'Cashier', 'dd/mm/yyyy'), 5000000, 'Cashier', 'CN1'); 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Nguyen Anh', 'Viet','Male', 'Nguyen Anh', 'Kiet','Male', TO_DATE('05/07/2002', TO_DATE('05/07/2002', 'dd/mm/yyyy'), '0585784600', '45 'dd/mm/yyyy'), '0585784600', '45 Nguyen Canh Chan, Q1, TPHCM', Nguyen Canh Chan, Q1, TPHCM', TO_DATE('21/02/2022', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 5000000, 'dd/mm/yyyy'), 5000000, 'Storekeeper', 'CN1'); 'Storekeeper', 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Nguyen Thi Minh', 'Triet','Female', 'Nguyen Thi Minh', 'Huong','Female', TO_DATE('05/09/2002', TO_DATE('05/09/2002', Trang | 12 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán 'dd/mm/yyyy'), '0932342312', '50/34 'dd/mm/yyyy'), '0932342312', '50/34 Le Dai Hanh, Q10, TPHCM', Le Dai Hanh, Q10, TPHCM', TO_DATE('21/02/2022', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 5000000, 'dd/mm/yyyy'), 5000000, 'Salesperson', 'CN1'); 'Salesperson', 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Tran Anh', 'Huy','Male', 'Tran Anh', 'Tuan','Male', TO_DATE('26/09/2002', TO_DATE('26/09/2002', 'dd/mm/yyyy'), '0916430073', 'KTX 'dd/mm/yyyy'), '0916430073', 'KTX khu B', TO_DATE('21/02/2022', khu B', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 7000000, 'dd/mm/yyyy'), 7000000, 'Salesperson', 'CN1'); 'Salesperson', 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Phan Hong', 'Anh','Female', 'Phan Hong', 'Duc','Female', TO_DATE('20/08/2001', TO_DATE('20/08/2001', 'dd/mm/yyyy'), '0944562311', '16 Le 'dd/mm/yyyy'), '0944562311', '16 Le Van Viet, Q9, TPHCM', Van Viet, Q9, TPHCM', TO_DATE('21/02/2022', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 7000000, 'Customer 'dd/mm/yyyy'), 7000000, 'Customer Service Assistant', 'CN1'); Service Assistant', 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Thai Tang', 'Duc','Male', 'Thai Tang', 'Minh','Male', TO_DATE('16/10/2002', TO_DATE('16/10/2002', 'dd/mm/yyyy'), '0931231756', 'KTX 'dd/mm/yyyy'), '0931231756', 'KTX Trang | 13 Báo cáo bài tập lớn 1 Cơ sở dữ liệu phân tán khu A', TO_DATE('21/02/2022', khu A', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 5000000, 'Quality 'dd/mm/yyyy'), 5000000, 'Quality Checker', 'CN1'); Checker', 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Le Nguyen Thuy', 'Vi','Female', 'Le Nguyen Thuy', 'Lieu','Female', TO_DATE('06/06/2001', TO_DATE('06/06/2001', 'dd/mm/yyyy'), '0948965678', 'KTX 'dd/mm/yyyy'), '0948965678', 'KTX khu B', TO_DATE('21/02/2022', khu B', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 5000000, 'Sanitation 'dd/mm/yyyy'), 5000000, 'Sanitation Worker', 'CN1'); Worker', 'CN2'); INSERT INTO CN1.EMPLOYEE INSERT INTO CN2.EMPLOYEE VALUES VALUES (CN1.EMP_ID_SEQUENCE.EMP_ID_SEQUENCE.nextval, 'Nguyen Thi Kim', 'Hieu','Female', 'Nguyen Thi Kim', 'Ngan','Female', TO_DATE('28/08/2002', TO_DATE('28/08/2002', 'dd/mm/yyyy'), '0931231756', 'KTX 'dd/mm/yyyy'), '0931231756', 'KTX khu B', TO_DATE('21/02/2022', khu B', TO_DATE('21/02/2022', 'dd/mm/yyyy'), 5000000, 'Security 'dd/mm/yyyy'), 5000000, 'Security Guard', 'CN1'); Guard', 'CN2'); INSERT INTO INSERT INTO CN2.CUSTOMER VALUES(CN2.CUS_ID_SEQUENC VALUES(CN1.CUS_ID_SEQ E.nextval,'Tran Minh', 'Tien', 'Male', UENCE.