v.v… 1.Các dữ liệu cần được lưu trữ Các dữ liệu cần được lưu trữ bao gồm - Thông tin về khách hàng đăng kí mua tên miền: - Thông tin về các loại tên miền - Thông tin về hợp đồng đăng kí
Trang 1Học viện công nghệ bưu chính viễn thông
Bài tập lớn môn cơ sở dữ liệu
Đề tài:Thiết kế cơ sở dữ liệu phục vụ cho hệ thống quản lí đăng kí tên miền website của một
nhà cung cấp
Sinh viên:Dương Trung Kiên
Lớp D10cn1 Khoa :CNTT
Trang 2I Phân tích yêu cầu
Ngày nay, internet là một trong những lĩnh vực có quy mô phát triển chóng mặt Từ 804.528 người dùng vào năm 2003 cho đến tháng 3/2012 đã có 32.100.000 người dùng.Đi kèm với sự tăng vọt về lượt người sử dụng cũng là sự phát triển không ngừng của các trang web.Để đáp ứng được một số lượng lớn sự ra đời của các trang web, nhiều tên miền mới được ra đời.Các tên miền Mục đích chính của tên miền là
để cung cấp một hình thức đại diện, hay nói cách khác, dùng những tên dễ nhận biết, thay cho những tài nguyên Internet mà đa số được đánh địa chỉ bằng số.Vi dụ như:
- .com: Tên miền cho web thương mại
- .edu: Tên miền cho lĩnh vực giáo dục
- .org: Tên miền dùng cho chính phủ hay các tổ chức , nhóm,
v.v…
1.Các dữ liệu cần được lưu trữ
Các dữ liệu cần được lưu trữ bao gồm
- Thông tin về khách hàng đăng kí mua tên miền:
- Thông tin về các loại tên miền
- Thông tin về hợp đồng đăng kí tên miền giữa khách hàng và nhà cung cấp 2.Các ứng dụng cần được xây dựng và các thao tác dữ liệu cần được thực hiện thường xuyên
- Ứng dụng lưu trữ thông tin về khách hàng
+ Thêm một khách hàng
+ Xóa một khách hàng đã có
+ Chỉnh sửa thông tin về khách hàng
- Ứng dụng lưu trữ thông tin về hợp đồng quan hệ giữa nhà cung cấp và khách hàng
+ Thêm một hợp đồng mới
+ Xóa một hợp đồng đã có
+ Chỉnh sửa thông tin về hợp đồng
- Ứng dụng lưu trữ thông tin về tên miền mới
+ Thêm một tên miền mới
+ Xóa một tên miền đã có
+ Chỉnh sửa thông tin về tên miền
Trang 3II Thiết kế cơ sở dữ liệu mức khái niệm
A .Mô tả tổng quát các dữ liệu cần được lưu trữ
1 Thông tin về chủ thể khách hàng ( khachhang ) bao gồm:
• Mã khách hàng (makh)
• Địa chỉ ( diachi )
• Tên khách hàng (tenkhachhang)
• Số điện thoại ( sodt )
• Email ( email )
• Tên miền đăng kí ( tenmien )
• Tên trang web đăng kí ( tenweb )
2 Thông tin về các loại tên miền ( mien ) bao gồm :
• Mã tên miền (matenmien)
• Tên miền (tenmien)
• Mô tả ( mota )
• Phí khởi tạo ( phikhoitao )
• Phí duy trì theo năm ( phiduytri )
tenkhachhang
diachi
makh
tenmien
khachhang
tenweb
Trang 43 Thông tin về hợp đồng ( hopdong ) bao gồm :
• Mã hợp đồng (mahd)
• Tên khách hàng ( tenkhachhang )
• Tên miền đăng kí ( tenmien )
• Thời gian sử dụng ( thoigian )
• Tổng phí ( tongphi )
B Các ràng buộn dữ liệu giữa các thực thể
1 Mối quan hệ “ đăng kí “ giữa khách hàng và hợp đồng
1 Khách hàng có thể có nhiểu hợp đồng nhưng một hợp đồng chỉ có thể xác định duy nhất một khách hàng
mien
tenmien
phikhoitao
mota
phiduytri
hopdong
tenkhachhang
thoigian
tongphi tenmien
kí
tenkhachhnang diachi
tenweb tenmien
sodt
tenkhachhang
thoigian
tongphi
tenmien
matm
mahd
mahd makh
Trang 52,Mối quan hệ “ chứa ” giữa hợp đông và tên miền
1 hợp đồng có thể có nhiều loại tên miền và một tên miền cũng có thể nằm
trong nhiều hợp đồng
Dưới đây là mô hình E
mota tenmien
phikhoitao phiduytri
thoigian tenkhachhang
tongphi tenmien
mahd matm
Trang 6III Thiết kế cơ sở dữ liệu ở mức logic:
1 .Chuyển đổi từ mô hình thực thể liên kết sang mô hình quan hệ
1.1 Mỗi thực thể sẽ được chuyển đổi thành lược đồ quan hệ tương ứng
• Thực thể “khachhang”
khachhang
sodt
tenmien
tenweb
hopdong
tenmien
tongphi
tenkhachhang
thoigian mien
phikhoitao
phiduytri
dang
ki
chưa makh
mahd matm
Trang 7makh tenkhachhang diachi
sodt email tenmien tenweb
• Thực thể “ mien “
• Thực thể “ hopdong “
1.2 Chuyển đổi mối quan hệ giữa các thực thể
Giữa thực thể “khachhang” và thưc thể “ hopdong “ có mối quan hệ đăng kí
Ta chọn thuộc tính “tenkhachhang” của thực thể “khachang” làm khóa chính và chọn thuộc tính thuộc tính “tenkhachhang” của thực thể “hopdong” lam khóa ngoại
matm tenmien mota phikhoitao phiduytri
mahd tenkhachhang tenmien thoigian tongphi
Trang 8makh
tenkhachhang
diachi
sodt
tenmien
tenweb
Giữa thực thể “mien” và thực thể “hopdong” có mối quan hệ chứa ta chọn thuộc tính “ tenmien ” của thực thể “hopdong” lam khoa ngoại và thuộc tính
“tenmien “ của thực thể “mien” làm khóa chính
Sơ đồ ánh xạ mô hình thực thể liên kết sang mô hình quan hệ
mahd tenkhachhang tenmien thoigian tongphi
tenmien
mota
phikhoitao
phiduytri
matm
tenkhachhang tenmien thoigian tongphi mahd
Trang 9• Thực hành trên MySql
Khachhang
tenkhachhang
makh
diachi
sodt
tenmien
tenweb
Mien tenmien mota phikhoitao phiduytri matm
hopdong tenkhachhang tenmien thoigian tongphi mahd
Trang 10• 10 Câu truy vấn bằng đại số quan hệ
1 Tìm tên tất cả các khách hàng có địa chỉ ở phùng khoang
result = π(tenkhachhang)(σ(diachi = “Phungkhoang”)(khachhang))
2 Tìm tất cả các tên miền có phí khởi tạo lớn hơn 100.000
result = π(tenmien)(σ(phikhoitao > 100000)(mien))
3 Tìm tất cả các tên miền có phi duy tri >100.000 và nhỏ hơn 500.000
result = π(tenmien)(σ(phiduytri >100000 AND phiduytri<500000)(mien))
4 Tìm tên khách hàng có tổng phí sử dụng lớn hơn 1000000
Trang 11result = π(tenkhachhang)(σ(tongphi >100000 )(hopdong))
5.Tìm tên khách hàng và địa chỉ web của họ mà có tổng phí lớn <1000000
result = π(khachhang.tenkhachhang,khachhang.tenweb)(σ(hopdong.tongphi <10000000 )(khachhang
x hopdong))
6.Tìm tên miền có phi khởi tạo lớn hơn 100000 và phí duy tri nhỏ hơn 1000000 result = π(tenmien)(σ(phikhoitao <100000) AND (phiduytri<10000000) )(mien))
7.Tim tên các trang web mà thòi gian duy trì của nó lớn hơn 3 năm
result = π(khachhang,tenweb)(σ(hopdong.thoigian >3 )(khachhang x hopdong))
8.Tìm tên miền và tên web của khách hàng có tổng phỉ lớn hơn 1000000 và thời gian duy trì lớn hơn 2 năm
result = π(khachhang.tenmien,khachhang.tenweb)(σ()(nhaSanXuat))
9.Đưa ra số điện thoại của tất cả các khách hàng
result = π(sodt)(khachhang)
10.Đưa ra địa chỉ email của tất cả các khách hàng
result = π(email)(khachhang)
• Xác định các phụ thuộc hàm F trên từng lược đồ quan hệ và đưa về dạng chuẩn 3 (3NF)
1.Xét thực thể “khachhang”
khachhang(makh(A),tenkhachhang(B),diachi(C),email(D),tenmien(E),tenweb(F ))
Ta có tập phụ thuộc hàm F1=(A->BCDEF) với tập khóa K1={A}
Không có thuộc tính không khóa nào (B,C,D,E,F) phụ thuộc bắc cầu vào
Trang 12khóa A
Quan hệ Khachhang ở dạng 3NF
2.Xet thực thể“mien”
mien(matm(A),tenmien(B),mota(C),phikhoitao(D),phiduytri(E))
Ta có phụ thuộc hàm (A->BCDE,B->A)
Quan hệ trên không thuộc dạng 3NF
Đưa về dạng 3NF:
Tách thành 2 quan hệ con:
-quan hệ con f1=(ABCD) khóa A với phụ thuộc hàm (A->BCD)
-quan hệ con f2=(BA) khóa B với phụ thuộc hàm (B->A)
3.Xét thực thể “hopdong”
hopdong(mahd(A),tenkhachhang(B),tenmien(C),thoigian(D),tongphi(E))
Ta có phụ thuộc hàm (A->BCDE) với tập khóa K={ A }
Không có thuộc tính không khóa nào (B,C,D,E) phụ thuộc bắc cầu vào khóa A
Quan hệ Khachhang ở dạng 3NF
• Thực hiện 10 câu truy vấn bằng ngôn ngữ SQL
1 Tìm tên tất cả các khách hàng có địa chỉ ở phùng khoang
SELECT Tenkhachhang
FROM khachhang
WHERE diachi = “phungkhoang”
2.Tìm tất cả các tên miền có phí khởi tạo lớn hơn 100.000
SELECT tenmien
FROM mien
WHERE phikhoitao >100000
Trang 13
3.Tìm tất cả các tên miền có phi duy tri >100.000 và nhỏ hơn 500.000
SELECT tenmien
FROM mien
WHERE phikhoitao BETWEEN 100000 AND 500000
4.Tìm tên khách hàng có tổng phí sử dụng lớn hơn 1000000
SELECT tenkhachhang
FROM hopdong
WHERE tongphoi >1000000
5.Tìm tên khách hàng và địa chỉ web của họ mà có tổng phí lớn <1000000 SELECT khachhang.tenkhachhang,khachhang.tenweb
FROM khachhang,hopdong
WHERE hopdong.tongphi <1000000
6.Tìm tên miền có phi khởi tạo lớn hơn 100000 và phí duy tri nhỏ hơn 1000000 SELECT tenmien
FROM mien
WHERE phikhoitao >100000 AND phiduytri<10000000
7.Tim tên các trang web mà thòi gian duy trì của nó lớn hơn 3 năm
SELECT khachhang.tenweb
FROM khachhang,hopdong
WHERE hopdong.thoigian >3
8.Tìm tên miền và tên web của khách hàng có tổng phỉ lớn hơn 1000000 và thời gian duy trì lớn hơn 2 năm
SELECT khachhang.tenmien,khachhang.tenweb
Trang 14FROM khachhang,hopdong
WHERE hopdong.tongphi >1000000 AND hopdong.thoigian>2
9.Đưa ra số điện thoại của tất cả các khách hàng
SELECT sodt
FROM khachhang
10.Đưa ra địa chỉ email của tất cả các khách hàng
SELECT email
FROM khachhang