You are on page 1of 90

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CNTT 1

BÀI TẬP LỚN


CƠ SỞ DỮ LIỆU PHÂN TÁN
Chủ Đề: Xây dựng hệ thống cơ sở dữ liệu phân tán cho
cửa hàng bán sách

Nhóm lớp học: 06


Nhóm BTL: 06
Giảng viên giảng dạy: Phan Thị Hà
Danh sách thành viên:
Lê Đức Thắng B21DCCN644
Phạm Hải Đăng B21DCCN206
Nguyễn Trọng Trường B21DCCN740
Nguyễn Quang Minh B21DCCN530
Doanh Văn Vũ B21DCCN794
Nguyễn Thanh Tùng B21DCCN770
Đinh Văn Toàn B21DCCN712
Đặng Minh Đức B21DCCN236
Bùi Xuân Đang B21DCCN026
MỤC LỤC
CHƯƠNG 1: ĐẶT VẤN ĐỀ ............................................................................................................. 7
CHƯƠNG 2: PHÂN TÍCH ............................................................................................................. 10
CHƯƠNG 3: ĐỊNH VỊ ................................................................................................................... 19
CHƯƠNG 4: LINK SERVER ........................................................................................................ 23
CHƯƠNG 5: CÀI ĐẶT .................................................................................................................. 24
CHƯƠNG 6: CÀI ĐẶT TRIGGER TRÊN MÁY CHỦ VÀ MÁY TRẠM ................................... 75
LỜI CẢM ƠN

Đầu tiên, chúng em xin gửi lời cảm ơn sâu sắc đến Học viện nghệ
Bưu chính Viễn thông và khoa CNTT1 đã đưa môn học Cơ sở dữ liệu
phân tán vào trong chương trình giảng dạy. Đặc biệt, chúng em xin gửi
lời cảm ơn sâu sắc đến giảng viên bộ môn Phan Thị Hà đã dạy dỗ, rèn
luyện và truyền đạt những kiến thức quý báu cho chúng em trong suốt
thời gian học tập vừa qua.
Trong thời gian được tham dự lớp học của cô, chúng em đã được
tiếp thu thêm nhiều kiến thức bổ ích, học tập được tinh thần làm việc
hiệu quả, nghiêm túc. Đây thực là những điều rất cần thiết cho quá trình
học tập và công tác sau này của em. Thêm vào đó, nhờ sự dẫn dắt và chỉ
bảo của cô, chúng em đã thực hiện được một đề tài bài tập lớn hoàn
chỉnh cho môn học này, chúng em rất biết ơn điều đó.

Em xin chân thành cám ơn, chúc cô luôn khỏe mạnh và tiếp tu ̣c đạt
được nhiều thành công trong cuộc sống ạ
STT Họ và Máy thực Ứng dụng hệ thống Công việc
tên hiện
1 Lê Đức Máy chủ 1. Hiển thị toàn bộ nhân viên 1. Viết 2 trigger
Thắng 2. Thêm, xem, sửa, xóa nhân riêng cho máy chủ
viên 2. Viết 3 transaction
tập trung và phân tán

2 Phạm Hải Máy trạm 1. Hiển thị thông tin nhân viên 1. Viết 2 trigger
Đăng phân của tru ̣ sở Quảng Ninh và số riêng tại chi nhánh
mảnh lượng giao dịch mà nhân viên QN
Quảng đó thực hiện. 2. Viết 2 transaction
Ninh 2. Thêm, sửa, xóa, tìm kiếm
nhân viên tại tru ̣ sở Quảng
Ninh
3 Nguyễn Máy trạm 1. Hiển thị thông tin nhân viên 1. Thiết kế cơ sở
Quang phân mảnh của tru ̣ sở Hà Nội và số lượng dữ liệu
Minh Hà Nội giao dịch mà nhân viên đó thực 2. Viết trigger
hiện. chung cho các
2. Thêm, sửa, xóa, tìm kiếm bảng trong CSDL
nhân viên tại tru ̣ sở Hà Nội 3. Viết 2 trigger
riêng cho máy
trạm HN
4. Viết 1 transaction

4 Nguyễn Máy trạm1. Hiển thị thông tin nhân viên 1. Viết 2 trigger riêng
Thanh phân mảnh của tru ̣ sở Huế và số lượng giao tại chi nhánh Huế
Tùng Huế dịch mà nhân viên đó thực 2. Viết 2 transaction
hiện.
2. Thêm, sửa, xóa, tìm kiếm nhân
viên tại tru ̣ sở Huế
5 Doanh Máy trạm 1. Hiển thị thông tin nhân viên1. Viết 3 trigger riêng
Văn Vũ phân mảnh của tru ̣ sở Nha Trang và số cho máy trạm NT
Nha Trang lượng giao dịch mà nhân viên
đó thực hiện.
2.Thêm, sửa, xóa, tìm kiếm 2.Viết 2 transaction
nhân viên tại tru ̣ sở Nha Trang

6 Nguyễn Máy trạm 1. Hiển thị thông tin nhân 1. Viết 3 trigger cho
Trọng phân mảnh viên của tru ̣ sở Đà Nẵng và máy trạm DN
Trường Đà Nẵng số lượng giao dịch mà nhân 2. Viết 2 transaction
viên đó thực hiện.
2. Thêm, sửa, xóa, tìm kiếm
nhân viên tại tru ̣ sở Đà Nẵng
7 Đinh Máy trạm 1. Hiển thị thông tin nhân viên 1. Viết 3 trigger riêng
Văn phân mảnh của tru ̣ sở Thái Bình và số cho máy trạm TB
Toàn Thái Bình lượng giao dịch mà nhân 2. Viết 2 transaction
viên đó thực hiện.
2. Thêm, sửa, xóa, tìm kiếm
nhân viên tại tru ̣ sở Thái
Bình
8 Đặng Máy trạm 1. Hiển thị thông tin nhân viên 1. Viết 3 trigger riêng
Minh phân mảnh của tru ̣ sở Ninh Bình và số cho máy trạm NB
Đức Ninh Bình lượng giao dịch mà nhân 2. Viết 2 transaction
viên đó thực hiện.
2. Thêm, sửa, xóa, tìm kiếm
nhân viên tại tru ̣ sở Ninh
Bình
9 Bùi Xuân Viết báo cáo
Đang
CHƯƠNG 1: ĐẶT VẤN ĐỀ
I. Giới Thiệu.
1. Nhu cầu và tầm quan trọng của dự án

Thế giới ngày càng hội nhập, tạo ra cho doanh nghiệp thêm rất nhiều cơ
hội. Một trong những cơ hội đó là mở rộng thị trường kinh doanh thành các chi
nhánh đặt tại nhiều địa điểm khác nhau, nhằm xây dựng hệ thống làm việc
chuyên nghiệp, phu ̣c vu ̣ và đáp ứng tốt nhất yêu cầu của người dùng nhằm tối
đa hoá lợi nhuận, mang lại hiệu quả kinh tế cao nhất.

Tuy nhiên, việc mở rộng thành các chuỗi chi nhánh gây khó khăn cho
việc quản lý khi số lượng các giao dịch và mặt hàng tăng lên, khi đó khối lượng
công việc theo từng ngày sẽ rất lớn lên rất nhanh. Việc đặt cơ sở dữ liệu nội bộ
tại các chi nhánh lại rất tốn kém và đem lại nhiều bất hợp lý. Trong những năm
gần đây, thuật ngữ CSDL phân tán
đã trở nên gần gũi với những người làm công tác tin học. Việc ứng du ̣ng
CSDL phân tán vào các lĩnh vực đời sống xã hội, vào các ngành kinh doanh,
hàng không, đường sắt, thương mại, … làm giảm thiểu tối đa chi phí quản lý dữ
liệu cũng như giúp người sử du ̣ng có thể mua nhanh chóng và thuận tiện hơn.

Việc xây dựng CSDL phân tán cho chuỗi cửa hàng bán sách làm đơn giản
hóa việc lập các hóa đơn thống kê doanh thu cũng như việc lưu trữ chúng, cung
cấp thông tin nhan chóng và chính xác, phu ̣c vu ̣ hữu hiệu cho việc quản lý và
phát triển của chuỗi cửa hàng.
Hệ thống quản lý cơ sở dữ liệu các chi nhánh bán sách phu ̣c vu ̣ cho việc
quản lý thông tin nhân viên, thông tin các loại sách và quản lý các giao dịch,
quản lý doanh thu cũng như số lượng sách được bán tại từng chi nhánh.
Các chi nhánh có thể sử du ̣ng toàn bộ dữ liệu của cả hệ thống và chuỗi
cửa hàng để quản lý được dữ liệu của mình. Khách hàng có thể thực hiện giao
dịch đặt mua sách tại tất cả các chi nhánh trên cả nước.

2. Sơ lược về dự án
- Nhà xuất bản là dữ liệu chung của hệ thống
- sẽ được cập nhật tại máy chủ.
- Chi nhánh, nhân viên, sản phẩm, khách hàng và giao dịch là dữ liệu riêng của
từng trạm và có thể cập nhật tại máy trạm và máy chủ.
- Dự án được triển khai với 1 vùng quản lý và 7 vùng xử lý.
a) Tru ̣ sở chính Hồ Chí Minh: nơi đặt máy chủ:
- Chức năng: quản lý dữ liệu toàn hệ thống.
- Dữ liệu: tất cả dữ liệu.
- Nguồn dữ liệu: được nhân viên nhập cũng như các máy trạm trả về.
- Dữ liệu vận chuyển đến: các máy trạm.
- Đối tượng sử du ̣ng: nhân viên quản lý hệ thống, được phép quản lý( thêm, sửa,
xóa) tất cả các dữ liệu.

b) Hà Nội, Huế, Đà Nẵng, Nha Trang, Quảng Ninh, Thái Bình, Ninh Bình: nơi
đặt máy trạm nhận mảnh ngang
- Chức năng: quản lý dữ liệu của tất cả các đối tượng của tru ̣ sở đó(trừ nhà xuất
bản).
- Dữ liệu: chi nhánh, nhân viên, giao dịch, sản phẩm và khách hàng và thông tin
dữ liệu chung: nhà xuất bản.
- Nguồn dữ liệu: được nhân viên nhập cũng như máy chủ gửi đến.
- Dữ liệu vận chuyển đến: máy chủ.
- Đối tượng sử du ̣ng: nhân viên tại chi nhánh, quản lý tại chi nhánh, tổng giám
đốc.

II. Vị trí và nhiệm vụ, dữ liệu khi triển khai dự án


Dự án được triển khai với 1 máy chủ tại 7 tru ̣ sở trong đó:
+ Vị trí 1: Server tổng đặt tại Thành phố Hồ Chí Minh, dùng để quản lý CSDL
các trạm.
+ Vị trí 2: máy trạm đặt tại Hà Nội chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
+ Vị trí 3: máy trạm đặt tại Huế chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
+ Vị trí 4: máy trạm đặt tại Đà Nẵng chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
+ Vị trí 5: máy trạm đặt tại Nha Trang chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
+ Vị trí 6: máy trạm đặt tại Quảng Ninh chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
+ Vị trí 7: máy trạm đặt tại Thái Bình chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
+ Vị trí 8: máy trạm đặt tại Ninh Bình chứa thông tin của tru ̣ sở đó: ChiNhanh,
NhanVien, GiaoDich.
III. Các đối tượng tham gia sử dụng dự án.
a) Nhân viên bán hàng tại chi nhánh
- Xem thông tin giao dịch, khách hàng, sản phẩm.
- Quản lý thông tin giao dịch, khách hàng.
b) Nhân viên quản lý chi nhánh
- Xem thông tin giao dịch, khách hàng, sản phẩm, nhân viên.
- Quản lý thông tin giao dịch, khách hàng, nhân viên.
- Xem thông tin sản phẩm, nhà xuất bản.
- Tạo báo cáo thống kê của chi nhánh.
c) Tổng giám đốc
- Truy cập các dữ liệu có trong hệ thống, cũng như có tất cả các quyền của các
đối tượng trên.
- Quản lý thông tin của tất cả dữ liệu.
- Xem báo cáo chung của các chi nhánh.
CHƯƠNG 2: PHÂN TÍCH

I. Các chức năng chính của hệ thống trong dự án


- Quản lý thông tin nhân viên
- Quản lý thông tin khách hàng
- Quản lý thông tin nhà xuất bản
- Quản lý thông tin sản phẩm( sách)
- Thống kê doanh thu

II. Phân quyền cho các nhóm đối tượng thực hiện dự án
a) Nhân viên bán hàng tại chi nhánh
- Thêm, sửa thông tin giao dịch
- Xem thông tin sản phẩm, nhà xuất bản
b) Nhân viên quản lý chi nhánh
- Thêm, sửa, xóa thông tin giao dịch
- Thêm, sửa, xóa thông tin nhân viên bán hàng
- Xem thông tin sản phẩm, nhà xuất bản
- Tạo báo cáo thống kê của chi nhánh
c) Tổng giám đốc
- Truy cập các dữ liệu có trong hệ thống, cũng như có tất cả các quyền của các
đối tượng trên.
- Thêm, sửa, xóa thông tin của tất cả dữ liệu
- Xem báo cáo chung của các chi nhánh

III. Phân tích chức năng của từng vị trí thực hiện dự án
1. Trụ sở chính
1. Quản lý tất cả các thông tin(đọc, thêm, sửa, xóa) về chi nhánh, nhà xuất bản và
sản phẩm của tất cả các chi nhánh.
2. Có thể xem được tất cả các thông tin về nhân viên, khách hàng và giao dịch
của tất cả các chi nhánh.
3. Thêm thông tin về sản phẩm rồi tự động cập nhật về cho các chi nhánh: Hà
Nội, Huế, Đà Nẵng, Nha Trang, Quảng Ninh, Thái Bình, Ninh Bình.

2. Các chi nhánh


1. Các chi nhánh có quyền đọc, thêm, sửa, xóa thông tin nhân viên.
2. Các chi nhánh có quyền xem. thêm, sửa, xóa thông tin giao dịch.
3. Các thông tin này sẽ được cập nhật lên máy chủ hệ thống.

IV. Chức năng của máy trạm, máy chủ.


1. Chức năng ở máy trạm
a. Chức năng quản lý thông tin nhân viên.
Giúp cửa hàng quản lý nhân viên làm việc tại chi nhánh, thêm, sửa ,xóa thông
tin của nhân viên . Các thông tin sẽ lưu trữ trong cơ sở dữ liệu.
Các thông tin nhân viên bao gồm:
+ Nhập mã nhân viên.
+ Nhập tên.
+ Nhập giới tính.
+ Nhập số điện thoại.
+ Nhập năm sinh
+ Nhập chức vụ
+ Nhập mã chi nhánh
b. Chức năng quản lý thông tin giao dịch.
Giúp cửa hàng quán lý giao dịch tạo cửa hàng chi nhánh, thêm, sửa, xóa giao
dịch. Các thông tin sẽ lưu trữ trong cơ sở dữ liệu.
Các thông tin giao dịch gồm:
+ Nhập mã giao dịch
+ Nhập mã nhân viên
+ Nhập mã khách hàng
+ Nhập mã sản phẩm
+ Nhập số lượng.
2. Chức năng ở máy chủ.
a. Có toàn bộ chức năng của máy trạm.
b. Chức năng quản lý chi nhánh.
Quản lý thông tin chi nhánh thêm, sửa, xóa chi nhánh. Các thông tin sẽ lưu trữ trong
cơ sở dữ liệu.
Các thông tin chi nhánh gồm:
+ Nhập mã chi nhánh.
+ Nhập tên chi nhánh,
+ Nhập số điện thoại.
c. Chức năng quản lý nhà xuất bản.
Quản lý thông tin nhà xuất bản thêm, sửa, xóa nhà xuất bản. Các thông tin sẽ lưu trữ
trong cơ sở dữ liệu.
Các thông tin nhà xuất bản gồm:
+ Nhập mã nhà xuất bản.
+ Nhập tên nhà xuất bản.
+ Nhập số điện thoại.
+ Nhập địa chỉ.
d. Chức năng quản lý sản phẩm.
Quản lý thông tin sản phẩm thêm, sửa, xóa sản phẩm. Các thông tin sẽ lưu trữ trong cơ
sở dữ liệu.
Các thông tin nhà xuất bản gồm:
+ Nhập mã sản phẩm.
+ Nhập tên sản phẩm.
+ Nhập loại.
+ Nhập giá.
+ Nhập mã nhà xuất bản.
e. Chức năng quản lý khách hàng.
Quản lý thông tin khách hàng thêm, sửa, xóa khách hàng. Các thông tin sẽ lưu trữ
trong cơ sở dữ liệu.
Các thông tin nhà xuất bản gồm:
+ Nhập mã khách hàng.
+ Nhập tên khách hàng
+ Nhập địa chỉ.
+ Nhập số điện thoại.
+ Nhập năm sinh.
+ Nhập giới tính.

V. Phân tích cơ sở dữ liệu


1. Lược đồ thực thể

Phân tích lược đồ E-R

- ChiNhanh và NhanVien là mối quan hệ một – nhiều vì một chi nhánh có nhiều
nhân viên làm việc.

- NhanVien và GiaoDich là mối quan hệ một – nhiều vì một nhân viên có thể
tham gia nhiều giao dịch.

- KhachHang và GiaoDich là mối quan hệ một – nhiều vì một khách hàng có thể
tham gia nhiều giao dịch.

- GiaoDich và SanPham là mối quan hệ một – nhiều vì một giao dịch có thể có
nhiều sản phẩm.

- SanPham và NhaXuatBan là mối quan hệ nhiều – một vì một nhà xuất bản có
nhiều sản phẩm.
2. Lược đồ quan hệ
3.Diagram
VI. Thiết kế CSDL toàn hệ thống

ChiNhanh

Tên thuộc tính Kiểu dữ liệu Mô tả


MaCN NVARCHAR Mã của chi nhánh

TenCN NVARCHAR Tên của chi nhánh

SDT NVARCHAR Số điện thoại của chi nhánh

NhanVien

Tên thuộc tính Kiểu dữ liệu Mô tả

MaNV NVARCHAR Mã của nhân viên

TenNV NVARCHAR Tên của nhân viên

GioiTinh NVARCHAR Giới tính của nhân viên

SDT NVARCHAR Số điện thoại của nhân


viên
NamSinh NVARCHAR Năm sinh của nhân viên

ChucVu NVARCHAR Chức vu ̣ của nhân viên

maCN NVARCHAR Mã chi nhánh của nhân


viên

KhachHang

Tên thuộc tính Kiểu dữ liệu Mô tả

MaKH NVARCHAR Mã của khách hàng

TenKH NVARCHAR Tên của khách hàng

DiaChi NVARCHAR Địa chỉ của khách hàng

SDT NVARCHAR Số điện thoại của khách


hàng
NamSinh NVARCHAR Năm sinh của khách hàng

GioiTinh NVARCHAR Giới tính của khách hàng


NhaXuatBan

Tên thuộc tính Kiểu dữ liệu Mô tả


MaNXB NVARCHAR Mã của nhà xuất bản
TenNXB NVARCHAR Tên của nhà xuất bản
SDT NVARCHAR Số điện thoại của nhà
xuất bản
DiaChi NVARCHAR Địa chỉ của nhà xuất
bản

SanPham

Tên thuộc tính Kiểu dữ liệu Mô tả


MaSP NVARCHAR Mã của sản phẩm
TenSP NVARCHAR Tên của sản phẩm
Loai NVARCHAR Thể loại của sản phẩm
Gia INT Giá của sản phẩm
MaNXB NVARCHAR Mã của nhà xuất bản

GiaoDich

Tên thuộc tính Kiểu dữ liệu Mô tả

MaGD NVARCHAR Mã của giao dịch

MaNV NVARCHAR Mã của nhân viên

MaKH NVARCHAR Mã của khách hàng

MaSP NVARCHAR Mã của sản phẩm

SoLuong INT Số lượng của sản phẩm


CHƯƠNG 3: PHÂN MẢNH VÀ ĐỊNH VỊ

I. Phân mảnh:

- Phân mảnh ngang nguyên thuỷ bảng ChiNhanh thành 6 mảnh ứng dụng
với 6 chi nhánh:
CN1 = σMaCN=’HN’(ChiNhanh)
CN2 = σMaCN=’DN’(ChiNhanh)
CN3 = σMaCN=’HUE’(ChiNhanh)
CN4 = σMaCN=’QN’(ChiNhanh)
CN5 = σMaCN=’NT’(ChiNhanh)
CN6 = σMaCN=’TB’(ChiNhanh)
CN7= σMaCN=’NB’(ChiNhanh)

- Phân mảnh dẫn xuất bảng NhanVien theo các mảnh CN1, CN2, CN3, CN4, CN5, CN6,
CN7 như sau:
NV1 = NhanVien >< CN1
NV2 = NhanVien >< CN2
NV3 = NhanVien >< CN3
NV4 = NhanVien >< CN4
NV5 = NhanVien >< CN5
NV6 = NhanVien >< CN6
NV7 = NhanVien >< CN7

- Phân mảnh dẫn xuất bảng GiaoDich theo các mảnh NV1, NV2, NV3, NV4, NV5, NV6,
NV7 như sau:
GD1 = GiaoDich >< NV1
GD2 = GiaoDich >< NV2
GD3 = GiaoDich >< NV3
GD4 = GiaoDich >< NV4
GD5 = GiaoDich >< NV5

GD6 = GiaoDich >< NV6

GD7 = GiaoDich >< NV7


Lược đồ phân mảnh ngang

II. Thiết kế định vị:


Phân mảnh ngang dẫn xuất chia quan hệ tổng thể thành 7 mảnh đặt tại 7 vị trí
như sau:
- Mảnh ngang Hà Nội: Máy trạm đặt tại Hà Nội, chứa thông tin tại tru ̣ sở đó:
ChiNhanh, NhanVien, GiaoDich.
- Mảnh ngang Thái Bình: Máy trạm đặt tại Thái Bình, chứa thông tin tại tru ̣ sở
đó: ChiNhanh, NhanVien, GiaoDich.
- Mảnh ngang Quảng Ninh: Máy trạm đặt tại Quảng Ninh, chứa thông tin tại
tru ̣ sở đó: ChiNhanh, NhanVien, GiaoDich.
- Mảnh ngang Đà Nẵng: Máy trạm đặt tại Đà Nẵng, chứa thông tin tại
tru ̣ sở đó: ChiNhanh, NhanVien, GiaoDich.
- Mảnh ngang Huế: Máy trạm đặt tại Huế, chứa thông tin tại tru ̣ sở đó:
ChiNhanh, NhanVien, GiaoDich.
- Mảnh ngang Nha Trang: Máy trạm đặt tại Nha Trang, chứa thông tin tại
tru ̣ sở đó: ChiNhanh, NhanVien, GiaoDich.
- Mảnh ngang Ninh Bình: Máy trạm đặt tại Ninh Bình, chứa thông tin tại
tru ̣ sở đó: ChiNhanh, NhanVien, GiaoDich.
● Sơ đồ định vị:
CHƯƠNG 4: LINK SERVER

Tài Khoản Tên Login Password Link


mảnh Server

DESKTOP-K4GI6VN\CSDLPTNHOM6
HN HTKN 1234567 HN

PHAMHAIDANG\CSDLPTNHOM6
QN HTKN2 1234567 QN

DESKTOP-2AIKRKL\CSDLPTNHOM6
TB HTKN 1234567 TB

DESKTOP-KSJS5KE\CSDLPTNHOM6
HUE HTKN 1234567 HUE

MSI\CSDLPTNHOM6
DN HTKN2 1234567 DN

NB HTKN 1234567 NB
DESKTOP-O7TCKKS\CSDLPT

DESKTOP-T6N4FNF\CSDLPTNHOM6
NT HTKN 1234567 NT
CHƯƠNG 5: CÀI ĐẶT
I.Cài đặt SQL Server 2019
1.Cài đặt SQL Server 2019 bản developer
Bước: Truy cập vào đường link để tải (tải bản developer):
https://go.microsoft.com/fwlink/?linkid=866662
Bước: Mở tệp .exe vừa tải

Bước: Chọn Download Media sau đó chọn dạng tải về là ISO và chọn đường dẫn rồi
ấn download
Bước: Sau khi tải xong, nhấn close
Bước: Mở tệp .iso và chạy setup.exe
Bước: Giao diện cài đặt hiện lên, chọn Installation sau đó chọn tiếp New SQL server ...
Bước: Cài đặt

Bước: Chọn Next


Bước: Chọn Perform a new installation of SQL Server 2019

Bước: Giao diện sau khi tích vào cài mới, mặc định là Developer, ta cần chuyển sang
Evaluation và ấn Next
Bước: Chọn Next
Bước: Chọn chức năng phù hợp với môn học ở mu ̣c Features sau đó ấn nút Next
Bước: Ta có thể đặt tên cho Instance (tên có thể đặt tùy ý, không dấu, không
khoảng trắng) sau đó nhấn next .
Bước: Nhấn next

Bước: Ở mu ̣c này, ta bấm chọn chức năng Mix Mode. Đây là chức năng bảo mật
cho cơ sở dữ liệu.
Bước: Tiếp theo các ta nhập mật khẩu cho tài khoản supper admin(sa) là 1234567.

Bước: Và cuối cùng nhấn nút Add current User để thêm tài khoản.
Bước: Cuối cùng nhấn next cho đến mu ̣c Ready to Install.

Bước: Chọn next


Bước: Chọn next

Bước: Ấn Install
Bước: Đang trong quá trình cài đặt
Bước: Giao diện cài đặt thành công -> ấn Close

2.Cài đặt SQL Server Management Studio Tools (SSMS).


* Giới thiệu : SSMS là một ứng du ̣ng phần mềm thiết kế bởi Microsoft, ra mắt lần đầu năm 2005.
Ứng du ̣ng này cho phép lập trình viên cấu hình, quản lý và quản trị bộ máy cơ sở dữ liệu (database
engine) SQL Server. SSMS phổ biến và được sử du ̣ng rộng rãi trong cộng đồng lập trình viên và quản
trị viên cơ sở dữ liệu bởi những ưu điểm

-Miễn phí

-Trải nghiệm người dùng tốt

-Nhiều lựa chọn add-in

-Dễ cài đặt

Bước: Click vào Install SQL Server Management Tools

Hoặc ấn vào đường link để cài đặt:

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-
ssms?redirectedfrom=MSDN&view=sql-server-ver15
Bước: Sau khi download ta chạy file “SSMS-Setup-ENU.exe” để cài đặt.

Bước: Chọn Install để cài đặt, quá trình cài đặt diễn ra hoàn toàn tự động
Bước: Chờ cho đến khi quá trình cài đặt hoàn tất và khởi động lại server

II,Cài đặt tường lửa (firewall) để mở cổng cho SQL


Giới thiệu : Tường lửa hay firewall là một hệ thống bảo mật mạng giám sát và kiểm soát lưu lượng
mạng đến và đi dựa trên các quy tắc bảo mật được xác định trước. Một tường lửa thường thiết lập
một rào cản giữa một mạng nội bộ đáng tin cậy và mạng bên ngoài không tin cậy, chẳng hạn như
Internet.

1. Tắt tường lửa


Bước: Tìm kiếm Firewall trong thanh công cu ̣
Bước: Chọn Turn Windows Defender Firewall on or off

Bước: Thực hiện tắt tường lửa -> chọn Turn off Windows Defender Firewall ở cả 2 mu ̣c -

> nhấn OK
Bước: Tường lửa đã được tắt thành công

Chú ý : Nếu như không tắt được tường lửa thì có thể là bạn đang chạy trình duyệt diệt virus . Hãy
xóa / tắt trình duyệt diệt virus đi thì mới tắt được tường lửa .

2. Mở port 1433
Mu ̣c đích : Theo mặc định, SQL Server sử du ̣ng Cổng TCP 1433 để giao tiếp với các ứng du ̣ng.
Nếu ta đang chạy một ứng du ̣ng yêu cầu kết nối với SQL Server, ta phải bật cổng 1433 cho SQL
Server để kết nối.Sau đây là các bước để mở port 1433

Bước: Trong thanh tìm kiếm, tìm SQL Server 2019 Configuration Manager
Bước: Chọn SQL Server Network Configuration + Protocols for CSDLPTNHOM6

Bước: Trong TCP/IP, nhấn enabled.


Bước: Chọn Properties

Bước: Nhấn IP Addresses, lướt xuống dòng cuối cùng IPAll và chọn TCP Port là 1433
Bước: Chọn SQL Server Sevices và Restart lại Server đã config và restart lại.
3. Thêm New Rule: tcp1433
Mu ̣c đích: Để mở một cổng 1433 trong tường lửa Windows để truy cập TCP
Bước: Chọn Advanced Settings

Bước: Chọn Inbound Rules -> New Rule


Bước: Rule Type chuyển sang Port => Chọn Next

Bước: Chọn specific local ports + cổng 1433 -> ấn Next


Bước: Tiếp đến ta Chọn Allow the connection (theo mặc định) rồi ấn Next

Bước: Chọn tất cả và bấm next


Bước: Thực hiện đặt tên (tcp1433) -> ấn Finish

Đã hoàn thành bước thức hiện cài đặt = > Cài đặt thành công

4. Thêm New Rule sqlserver_csdlptnhom6


Mu ̣c đích: Để mở quyền truy cập vào SQL Server khi sử du ̣ng cổng động (dynamic ports)

Bước: Trong mu ̣c Rule Type, chọn Program -> ấn Next

Bước: Chọn mu ̣c This program path và ấn Browse để chọn file thích hợp
C:\Program Files\Microsoft SQL Server\MSSQL15.CSDLPTNHOM6\MSSQL\Binn

Bước: Tiếp tu ̣c ấn Next


Bước: Đặt tên cho Rule mới là sqlserver_csdlptnhom6

5. Thêm New Rule port Udp1434:


Mu ̣c đích: Để mở một cổng 1434 trong tường lửa Windows để truy cập UDP
Bước: Tương tự Chọn mu ̣c Protocol and Ports -> chọn UDP và local ports : 1434 -> ấn Next

Bước: Đặt tên udp1434 -> Finish

Bước: Hoàn thành tạo mới các Rule

III. Chuẩn bị folder để chứa các dữ liệu trao đổi trong quá trình update dữ
liệu từ các phân mảnh về cơ sở dữ liệu gốc, và từ cơ sở dữ liệu gốc đến các
phân mảnh.

REPLDATA
Bước: Tạo 1 folder C:\REPLDATA để chứa các dữ liệu trao đổi trong quá trình update dữ liệu từ các
phân mảnh về cơ sở dữ liệu gốc, và từ cơ sở dữ liệu gốc đến các phân mảnh.

Bước: Click chuột phải vào folder REPLDATA > Properties

Bước: Chọn tab Sharing > Share.


Bước: Chọn Everyone > click Add
Bước: chọn quyền Read/Write như trong hình.
Bước: click nút lệnh Share.

\\Dell\repldata : Dell là tên của máy

Bước: nhấn Done

IV,Kết nối máy trạm và các chi nhánh bằng cách sử dụng
phần mềm cài đặt VPN Radmin VPN

1. Tải phần mềm Radmin VPN


Giới thiệu: phần mềm Radmin VPN là phần mềm dùng để tạo mạng riêng ảo (VPN). Cho phép
thiết lập kết nối bảo mật giữa các máy tính qua internet như thể các máy tính này kết nối với nhau
trên mạng LAN.

Bước: Cài đặt phần mềm Radmin VPN, theo link dưới:
https://www.radmin-vpn.com/
Bước: Chọn folder để lưu Radmin > save để lưu file .exe tải về

Bước: Mở file .exe vừa tải về


Bước: Thực hiện cài đặt Install Radmin_VPN

Cài đặt thành công.


Bước: Tạo Network cho máy chủ.

Bước: Điền các thông tin như tên network và mật khẩu.
Nhấn vào Create Network

Ví Du ̣:

+network name: CSDLPTNHOM6

+password:1234567
Các máy trạm sẽ kết nối với nhau và kết nối với máy chủ bằng VPN này. Sau khi đã kết nối ta có
giao diện như sau:
Bước: Kiểm tra kết nối bằng cách chuột phải vào thành viên và click ping
Và kết quả ra như hình sau nghĩa là các máy đã kết nối với nhau thành công.

2. Bật TCP IP và thêm IP các máy trạm.


Bước: mở Sql Server Configuration Manager để cấu hình IP cho từng máy.

+ TCP/IP : Enable
+ Named Pipes: Disabled

Bước: Mở TCP/IP > IP Addresses


Cài đặt các IP như sau:

+ Active: Yes

+ Enable: Yes

+ Tất cả các TCP Port: 1433

IP1: 26.42.140.72 -> là IP máy chủ

Các IP còn lại đều là máy trạm.


Bước: Restart lại server

3. Tạo tài khoản sa (nếu chưa có)


Bước: Chạy SQL Server Management Studio và login bằng Windows Authentication như thông
thường.
Bước. Tìm đến Security > Logins > sa
Bước: Click chuột phải chọn Properties
Bước: Vào General để đổi mật khẩu -> Bỏ check Enforce password policy.
Bước: Sang chọn mu ̣c Status -> các mu ̣c như dưới hình -> ấn Ok
CHƯƠNG 6: CÀI ĐẶT TRIGGER TRÊN MÁY CHỦ VÀ MÁY
TRẠM
I. Trigger chung cả hệ thống
1. Trigger cập nhật, thêm trong bảng NhanVien
a) Code:
CREATE trigger [dbo].[check_NhanVien] on [dbo].[NhanVien] after
insert, update
as
IF(@@ROWCOUNT=0) BEGIN
PRINT(N'Table không có dữ liệu') RETURN
END

declare @MaNV nvarchar(100) declare


@NamSinh nvarchar(100) declare @SDT
nvarchar(100)

set @MaNV = (select MaNV from inserted)


set @NamSinh = (select NamSinh from inserted) set @SDT
= (select SDT from inserted)

if (@MaNV not like ('NV'+ '[0-9][0-9][0-9]'))


begin
print(N'Cập nhật thông tin không thành công: Mã nhân viên không đúng định
dạng!')
raiserror(N'Mã nhân viên không đúng định dạng',16,1) rollback tran
end
else if (@NamSinh not like ('[0-9][0-9][0-9][0-9]')) begin
print(N'Cập nhật thông tin không thành công: Năm sinh không đúng định
dạng!')
raiserror(N'Năm sinh không đúng định dạng',16,1) rollback tran
end
else if (@SDT not like ('0[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0- 9][0-9]'))
begin
print(N'Cập nhật thông tin không thành công: Số điện thoại không đúng định
dạng!')
raiserror(N'Số điện thoại không đúng định dạng',16,1)
rollback tran
end
else
begin
end

b) Chạy thử:
- Cập nhật thành công:

Cập nhật không thành công:

2. Trigger cập nhật, thêm trong bảng KhachHang


a) Code:
create trigger check_KhachHang on KhachHang
after insert, update
as
IF(@@ROWCOUNT=0) BEGIN
PRINT(N'Table không có dữ liệu') RETURN
END

declare @MaKH nvarchar(100) declare


@NamSinh nvarchar(100) declare @SDT
nvarchar(100)

set @MaKH = (select MaKH from inserted)


set @NamSinh = (select NamSinh from inserted) set @SDT
= (select SDT from inserted)
select COUNT(*) From KhachHang

if (@MaKH not like ('KH'+ '[0-9][0-9][0-9][0-9][0-9]'))


begin
print(N'Cập nhật thông tin không
thành công') raiserror(N'Mã khách
hàng không đúng định dạng ',16,1)
rollback tran
end
else if (@NamSinh not like ('[0-9][0-9][0-9][0-9]')) begin
print(N'Cập nhật thông tin không thành công') raiserror(N'Năm sinh
không đúng định dạng ',16,1) rollback tran
end
else if (@SDT not like ('0[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-
9][0-9]'))
begin
print(N'Cập nhật thông tin không
thành công') raiserror(N'Số điện
thoại không đúng định dạng ',16,1)
rollback tran
end else
begin

end
go print(N'Cập nhật khách hàng thành công')

b) Chạy thử:
- Cập nhật thành công và không thành công:
II. Trigger riêng các máy
2.1. Trigger bổ sung cho máy chủ
2.1.1. Trigger kiểm tra số lượng nhân viên toàn hệ thống không vượt
quá 160 nhân viên

- Trigger cập nhật thành công:

- Trigger thực hiện thất bại


2.1.2. Trigger kiểm tra giá tiền của sản phẩm không được nhỏ hơn 1000
- Code:
USE
[QLCH]
GO
SET ANSI_NULLS
ON GO
SET QUOTED_IDENTIFIER
ON GO
ALTER trigger [dbo].[kiem_tra_gia_san_pham] on
[dbo].[SanPham] after insert, update
as
declare @Gia varchar(255)
set @Gia = (select Gia from inserted)
if(@@ROWCOUNT = 0)
begin
print 'Bang SanPham khong co du lieu' return
end
if(@Gia>=100)
begin
print ('Cap nhat thanh cong')
end
begin
print('Cap nhat thong tin that bai')
raiserror('Loi: Gia san pham nho hon 1000vnd', 16, 1)
else
begin
rollback tran
end

- Trigger cập nhật thành công:


- Trigger cập nhật thất bại:
2.2 Trigger bổ sung cho máy trạm phân mảnh ngang Hà Nội
Trigger tại bảng NhanVien: trigger số lượng nhân viên ở chi nhánh Hà
Nội không quá 27 người.
- Code:
create trigger check_SoluongNhanVien on
NhanVien after insert, update
as
IF(@@ROWCOUNT=0)
BEGIN
PRINT(N'Table không có dữ liệu') RETURN
END
declare @MaNV nvarchar(100) = (select MaNV from
inserted) if ((SELECT COUNT(*) FROM NhanVien ) > 27)
begin
print(N'Cập nhật không thành công')
raiserror (N'Số lượng nhân viên vượt quá cho phép', 16,1)
end
else
begin
end
- Chạy thử:
Cập nhật thành công:

Cập nhật không thành công:

2.3. Trigger bổ sung cho máy trạm Đà Nẵng:


2.3.1 Trigger kiểm tra khi thêm sửa thì năm sinh có nhỏ hơn 2008 không

create trigger [dbo].[kiem_tra_nam_sinhnv] on


[dbo].[NhanVien] after insert, update
as
declare @ns varchar(50)
set @ns = TRY_CAST((select NamSinh from inserted) as int) if ( @ns <2008) begin
end else
print(N'Khách hàng đã được thêm vào!!')
begin
print(N'Xem lại thông tin khách hàng')
raiserror(N'Độ tuổi của khách hàng không phù hợp với yêu cầu ',16,1) rollback tran
end
Nếu nhập năm sinh >=2008 thì sẽ bị lỗi

2.3.2 Trigger kiểm tra khi thêm sửa có đúng định dạng GioiTinh không

create trigger kiem_tra_gioitinh on


NhanVien after insert,update
as
begin
declare @GioiTinh nvarchar(100)
set @GioiTinh =(select GioiTinh from inserted)
if(@GioiTinh<>'Nam' @GioiTinh<>'Nu' )
begin
(N'Cập nhập sai cú pháp', 16,1)
rollback tran
end
2.3.3.Trigger xóa giao dịch

Chạy thử

You might also like