Tải bản đầy đủ (.docx) (30 trang)

Quản lý bán ô tô Cơ sở dữ liệu phân tán UTT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (840.39 KB, 30 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
-----o0o-----

HỌC PHẦN: CƠ SỞ DỮ LIỆU PHÂN TÁN
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: QUẢN LÝ BÁN Ơ TƠ
Nhóm sinh viên thực hiện: Nhóm 18
Lớp: 72DCTT21
Giảng viên hướng dẫn : Bùi Thị Như
Thành viên thực hiện: Lại Khánh Nam
Đinh Quốc Khánh
Nguyễn Thế Khoan

HÀ NỘI 2024
MỤC LỤC
1


I. THIẾT KẾ CÁC HỆ CSDL PHÂN TÁN......................................................5
1.1. Mơ hình cơ sở dữ liệu.............................................................................5
1.1.1. Nhân Viên...........................................................................................5
1.1.2. Lương.................................................................................................5
1.1.3. Khách hàng.........................................................................................5
1.1.4. Loại sản phẩm.....................................................................................5
1.1.5. Sản phẩm............................................................................................6
1.1.6. Nhà cung cấp......................................................................................6
1.1.7. Đơn hàng............................................................................................6
1.1.8. Chi tiết đơn hàng................................................................................6
1.2.Mơ hình cơ sở dữ liệu tập trung................................................................7
1.3. Thiết lập cơ sở dữ liệu............................................................................7


1. Tạo CSDL Websitebanoto.......................................................................7
2. Tạo bảng Nhân viên................................................................................7
3. Tạo bảng Lương.......................................................................................8
4. Tạo bảng Khách hàng.............................................................................8
5. Tạo bảng Loại sản phẩm.........................................................................8
6. Tạo bảng Nhà cung cấp...........................................................................8
7. Tạo bảng Sản phẩm.................................................................................8
8. Tạo bảng Đơn hàng.................................................................................9
9. Tạo bảng Chi tiết đơn hàng.....................................................................9
10.

Tạo Liên Kết Giữa Các Bảng Dữ Liệu................................................9

1.4. Cơ sở dữ liệu..........................................................................................10
1.4.1. Nhân Viên.........................................................................................10
1.4.2. Lương...............................................................................................10
1.4.3. Nhà cung cấp....................................................................................10
1.4.4. Loại sản phẩm...................................................................................10
1.4.5. Sản phẩm..........................................................................................10
1.4.6. Khách hàng.......................................................................................11
2


1.4.7. Đơn hàng..........................................................................................11
1.4.8. Chi tiết đơn hàng..............................................................................11
II. PHÂN MẢNH DỮ LIỆU.............................................................................12
2.1. Phân mảnh ngang.................................................................................12
2.2. Phân mảnh dọc......................................................................................12
2.3. Phân mảnh hỗn hợp..............................................................................13
2.4. Đồ thị phân mảnh và ảnh vật lý của quan hệ tổng thể......................13

III. TRUY VẤN PHÂN MẢNH VÀ TRUY VẤN TÁI THIẾT.....................15
3.1. Truy vấn phân mảnh..............................................................................15
3.1.1. Truy vấn phân mảnh ngang.................................................................15
3.1.2. Truy vấn phân mảnh dọc.....................................................................17
3.1.3. Truy vấn phân mảnh hỗn hợp.............................................................17
3.2 Truy vấn tái thiết......................................................................................18
IV. TỐI ƯU TRUY VẤN BẰNG THUẬT TOÁN INGRES.........................19
4.1. Cho biết tên loại sản phẩm Madaz và có giá tiền = 500000000........19
4.2. Cho biết tên sản phẩm được nhập từ nhà cung cấp tại Hà Nội........19
V. XÂY DỰNG CÂY ĐẠI SỐ QUAN HỆ VÀ RÚT GỌN CÂU TRUY VẤN20
1. Cho biết tên sản phẩm thuộc loại Rolls Roys và có giá > 400000000....20
2. Đưa ra tên sản phẩm của NCC ở Hà Nội và được bán trong năm 202023
3. Đưa ra tên sản phẩm thuộc loại Honda, đã được bán ra ngày '19/10/2020'
tổng hóa đơn >200000000..............................................................................24

3


I. THIẾT KẾ CÁC HỆ CSDL PHÂN TÁN
1.1. Mơ hình cơ sở dữ liệu
1.1.1. Nhân Viên
Tên trường

Kiểu

Độ rộng

Giải thích

Manv


Varchar

50

Khóa chính, Mã nhân viên

Tennv

50

Tên nhân viên

Ngaysinh

Nvarcha
r
Date

Ngaylamviec

Date

Diachi

Nvarcha
r
Varchar

Max


Địa chỉ

50

Số điện thoại

Nvarcha
r

50

Chức vụ

Kiểu
Nvarcha
r
Money
Money

Độ rộng
50

Giải thích
Khóa chính, Chức vụ

Kiểu
Varchar
Nvarcha
r

nvarchar
Nvarcha
r
Varchar
Varchar

Độ rộng
50
50

Giải thích
Khóa chính, Mã khách hàng
Tên khách hàng

50
Max

Giới tính
Địa chỉ

50
50

Số điện thoại
Email

Sdt
Chucvu

Ngày sinh

Ngày làm việc

1.1.2. Lương
Tên trường
Chucvu
Luongcoban
Phucap

Lương cơ bản
Phụ cấp

1.1.3. Khách hàng
Tên trường
Makh
Tenkh
Gioitinh
Diachi
Sdt
Email

4


1.1.4. Loại sản phẩm
Tên trường
Maloaisp
Tenloaisp

Kiểu
Varchar

Nvarcha
r

Độ rộng
50
Max

Giải thích
Khóa chính, Mã loại sản phẩm
Tên loại sản phẩm

1.1.5. Sản phẩm
Tên trường

Kiểu

Độ rộng

Giải thích

Masp

Varchar

50

Khóa chính, Mã sản phẩm

Tensp


Nvarcha
r

Max

Maloaisp

Varchar

50

Mã loại sản phẩm

Mancc

Varchar

50

Mã nhà cung cấp

gia

Money

Mã giá

Soluong

Int


Số lượng sản phẩm

Tiêu đề sản phẩm

1.1.6. Nhà cung cấp
Tên trường
Mancc
Tenncc
Diachi
Sdt

Kiểu
Varchar
Nvarcha
r
Nvarcha
r
Varchar

Độ rộng
50
50

Giải thích
Khóa chính, Mã nhà cung cấp
Tên nhà cung cấp

Max


Địa chỉ

50

Số điện thoại

Kiểu
Varchar
Varchar
Varchar
Nvarcha

Độ rộng
50
50
50
Max

Giải thích
Khóa chính, Mã đơn hàng
Mã nhân viên
Mã khách hàng
Địa chỉ

1.1.7. Đơn hàng
Tên trường
Madh
Manv
Makh
Diachi


5


Ngaydat
Ngaygiao

r
Date
Date

Ngày đặt
Ngày giao

1.1.8. Chi tiết đơn hàng
Tên trường
Madh
Masp
Gia
Soluong
Giamgia

Kiểu
Varcha
r
Varcha
r
Money
Int
Money


Độ rộng
50

Giải thích
Khóa chính, Mã đơn hàng

50

Khóa chính, Mã sản phẩm
Gía sản phẩm
Số lượng sản phẩm
Tiền giảm giá

6


1.2.Mơ hình cơ sở dữ liệu tập trung

1.3.

Thiết lập cơ sở dữ liệu

1. Tạo CSDL Websitebanoto
CREATE DATABASE Website_ bán ô tô
USE Website_bán ô tô
2. Tạo bảng Nhân viên
CREATE TABLE nhanvien
(
manv

VARCHAR (50) PRIMARY KEY NOT NULL,
tennv
NVARCHAR (50),
7


ngaysinh
ngaylamviec
dichi
sdt
chucvu

DATE,
DATE,
NVARCHAR (Max),
VARCHAR (50),
NVARCHAR(50),

)
3. Tạo bảng Lương
CREATE TABLE luong
(
chucvu
NVARCHAR(50) PRIMARY KEY NOT NULL,
luongcoban
MONEY,
phucap
MONEY
)
4. Tạo bảng Khách hàng

CREATE TABLE khachhang
(
Makh
VARCHAR (50) PRIMARY KEY NOT NULL,
tenkh
NVARCHAR (50),
dichi
NVARCHAR (Max),
sdt
VARCHAR (50),
email
VARCHAR (50)
)

5. Tạo bảng Loại sản phẩm
CREATE TABLE loaisp
(
maloaisp
tenloaisp

VARCHAR (50) PRIMARY KEY NOT NULL,
NVARCHAR (Max),

)
6. Tạo bảng Nhà cung cấp
CREATE TABLE nhacungcap
(
mancc

VARCHAR (50) PRIMARY KEY NOT NULL,

8


dichi
sdt

NVARCHAR (Max),
VARCHAR (50)

)
7. Tạo bảng Sản phẩm
CREATE TABLE sanpham
(
masp
VARCHAR (50) PRIMARY KEY NOT NULL,
tensp
NVARCHAR (50),
maloaisp
VARCHAR (50) NOT NULL,
mancc
VARCHAR (50) NOT NULL,
soluong
INT,
gia
MONEY ,
)
8. Tạo bảng Đơn hàng
CREATE TABLE donhang
(
madh

VARCHAR (50) PRIMARY KEY NOT NULL,
manv
VARCHAR ( 50) NOT NULL,
makh
VARCHAR (50) NOT NULL,
dichi
NVARCHAR (Max),
ngaydat
DATE,
ngaygiao
DATE
)

9. Tạo bảng Chi tiết đơn hàng
CREATE TABLE chitietdonhang
(
madh
VARCHAR (50) NOT NULL,
masp
VARCHAR (50) NOT NULL,
gia
MONEY,
soluong
INT,
giamgia
MONEY,
CONSTRAINT pk_chitietdonhang PRIMARY KEY (madh,masp)
)
9



10.Tạo Liên Kết Giữa Các Bảng Dữ Liệu
alter table sanpham
add
constraint
fk_nhacungcap
foreign
key
(mancc)
references
nhacungcap(mancc)
alter table sanpham
add constraint fk_loaisp foreign key (maloaisp) references loaisp(maloaisp)
alter table donhang
add constraint fk_donhang_khachhang foreign key (makh)
khachhang(makh)
alter table donhang
add constraint fk_donhang_nhanvien foreign key (manv)
nhanvien(manv)
alter table chitietdonhang
add constraint fk_chitiet_donhang
donhang(madh)
alter table chitietdonhang
add constraint fk_chitiet_sanpham
sanpham(masp)
1.4. Cơ sở dữ liệu

references

references


foreign

key

(madh)

references

foreign

key

(masp)

references

1.4.1. Nhân Viên

10


1.4.2. Lương

1.4.3. Nhà cung cấp

1.4.4. Loại sản phẩm

1.4.5. Sản phẩm


11


1.4.6. Khách hàng

1.4.7. Đơn hàng

1.4.8. Chi tiết đơn hàng

II. PHÂN MẢNH DỮ LIỆU
2.1.

Phân mảnh ngang

- Phân mảnh ngang quan hệ Luong được phân mảnh 3 mảnh theo lương cơ bản:
 Luong1=σ Luongcoban >16000000 (Luong)
12


 Luong2=σ Luongcoban=16000000 (Luong)
 Luong3=σ Luongcoban <16000000 (Luong)
- Phân mảnh ngang quan hệ NhaCungCap được phân mảnh 3 mảnh theo các chức
vụ:
 NCC1=σ diachi=Hà Nội ( NhaCungCap)
 NCC2=σ diachi=Hà Nam (NhaCungCap)
 NCC3=σ diachi=Nam Định (NhaCungCap)
- Phân mảnh ngang nguyên thủy trên quan hệ LoaiSP thành 4 mảnh ngang như
sau:






LoaiSP1= σ maloaisp=RR ( LoaiSP)
LoaiSP2=σ maloaisp=HD ( LoaiSP)
LoaiSP3=σ maloaisp=TYT (LoaiSP)
LoaiSP4=σ maloaisp=MD ( LoaiSP)

- Phân mảnh ngang dẫn xuất trên quan hệ SanPham theo quan hệ LoaiSP thành 4
mảnh:





SanPham1 = SanPham
SanPham2 = SanPham
SanPham3 = SanPham
SanPham4 = SanPham

2.2.

LoaiSP1
LoaiSP2
LoaiSP3
LoaiSP4

Phân mảnh dọc

- Quan hệ NhanVien được phân thành 3 mảnh dọc

 NhanVien1(Manv, Tennv, Ngaysinh, Sdt)
NV1 = π MaNV ,TenNV , Ngaysinh ,SDT ( NhanVien)
 NhanVien2 (MaNV, Ngaylamviec, Diachi).
13


NV2 = π MaNV , Ngaylamviec , Diachi ( NhanVien)
 NhanVien3 (MaNV,Chucvu,Luong).
NV3 = π MaNV ,Chucvu , Luong( NhanVien)

2.3.

Phân mảnh hỗn hợp

- Quan hệ SanPham phân mảnh hỗn hợp thành 4 mảnh:
 SP1 (MaSP, MaLoaiSP)
SP1 = π MaSP , MaLoaiSP (SanPham)
 SP2 (MaSP, MaNCC)
SP2 = π MaSP , MaNCC (SanPham)
 SP3 (MaSP, TenSP, Gia, SoLuong) với Gia <= 400000000
SP3 = σ Gia≤ 400000000 (π MaSP , TenSP , SoLuong,Gia ( SanPham))
14


 SP4 (MaSP, TenSP, Gia, SoLuong) với Gia > 400000000
SP4 = σ Gia> 400000000 ( π MaSP, TenSP, SoLuong, Gia ( SanPham ))

2.4.

Đồ thị phân mảnh và ảnh vật lý của quan hệ tổng thể


Sơ đồ định vị tại các trạm làm việc được chia thành 3 trạm:
 SITE 1: NV1, NV2, NV3, Luong1, Luong2, NCC1, LoaiSP1, LoaiSP4, SP1,
SP3, DH
 SITE 2: NV3, Luong3, NCC2, NCC3, LoaiSP2, LoaiSP3, SP1, KH
 SITE 3: NV3, Luong3, NCC3, LoaiSP2, LoaiSP4, SP2, SP4, KH, CTDH

15


III. TRUY VẤN PHÂN MẢNH VÀ TRUY VẤN TÁI THIẾT
3.1. Truy vấn phân mảnh
3.1.1. Truy vấn phân mảnh ngang
 Truy vấn trên bảng lương
Phân mảnh luong1:
select

* into Luong1
16


from
Luong
where Luongcoban>16000000
Phân mảnh luong2:
select
* into Luong1
from
Luong
where Luongcoban=16000000

Phân mảnh luong3:
select
* into Luong1
from
Luong
where Luongcoban<16000000
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
Luong1 ⊆ Luong, Luong2 ⊆ Luong, Luong3 ⊆ Luong
Luong = Luong1 ∪ Luong2 ∪ Luong3
Luong1 ∩ Luong2 = ∅ , Luong1 ∩ Luong3 = ∅ , Luong2 ∩ Luong3 = ∅
 Truy vấn trên bảng NhaCungCap
Phân mảnh NCC1:
select
* into NCC1
from
NhaCungCap
where diachi = 'Hà Nội'
Phân mảnh NCC2:
select
* into NCC1
from
NhaCungCap
where diachi = 'Hà Nam'
Phân mảnh NCC3:
select
* into NCC1
from
NhaCungCap
where diachi = 'Nam Định'
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt

NCC1 ⊆ NhaCungCap, NCC2 ⊆ NhaCungCap, NCC3 ⊆ NhaCungCap
17


NhaCungCap = NCC1 ∪ NCC2∪ NCC3
NCC1 ∩ NCC2 = ∅ , NCC1 ∩ NCC3 = ∅ , NCC2 ∩ NCC3 = ∅
 Truy vấn trên bảng LoaiSP
Phân mảnh LoaiSP1:
select
* into LoaiSP1
from

LoaiSP

where

maLoaisp = 'RR'

Phân mảnh LoaiSP2:
select

* into LoaiSP1

from

LoaiSP

where

maLoaisp = 'HD'


Phân mảnh LoaiSP3:
select

* into LoaiSP1

from

LoaiSP

where

maLoaisp = 'TYT'

Phân mảnh LoaiSP4:
select

* into LoaiSP1

from

LoaiSP

where

maLoaisp = 'MD'

Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
LoaiSP1⊆LoaiSP, LoaiSP2⊆LoaiSP, LoaiSP3⊆LoaiSP, LoaiSP4 ⊆ LoaiSP
LoaiSP1∩ LoaiSP2 = ∅ , LoaiSP1∩ LoaiSP3= ∅ , LoaiSP1∩ LoaiSP4= ∅

LoaiSP2 ∩ LoaiSP3 = ∅ , LoaiSP2∩ LoaiSP4= ∅ , LoaiSP3∩ LoaiSP4= ∅
LoaiSP = LoaiSP1 ∪ LoaiSP2 ∪ LoaiSP3 ∪ LoaiSP4
18


3.1.2. Truy vấn phân mảnh dọc
 Truy vấn trên bảng NhanVien
Phân mảnh NV1:
select
Manv, Tennv, Ngaysinh,Sdt into NV1
from
NhanVien
Phân mảnh NV2:
select
MaNV, Ngaylamviec, Diachi into NV2
from
NhanVien
Phân mảnh NV3:
select
MaNV, Chucvu,Luong into NV3
from
NhanVien
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
NV1 ⊆ NhanVien, NV2 ⊆ NhanVien, NV3 ⊆ NhanVien
NV1 ∩ NV2 = ∅ , NV1 ∩ NV3 = ∅ , NV3 ∩ NV2 = ∅
NhanVien = NV1 ⋈ NV2 ⋈ NV3
3.1.3. Truy vấn phân mảnh hỗn hợp
Phân mảnh SP1:
select
MaSP, MaLoaiSP into SP1

from
SanPham
Phân mảnh SP2:
select
MaSP, TenSP, MaNCC into SP2
from
SanPham
Phân mảnh SP3:
select
MaSP, TenSP, Gia, SoLuong into SP3
from
SanPham
where Gia <= 400000000
Phân mảnh SP4:
select
MaSP, TenSP, Gia, SoLuong into SP4
from
SanPham
where Gia > 400000000
Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt
19


SP1 ⊆ SanPham, SP2 ⊆ SanPham, SP3 ⊆ SanPham, SP4 ⊆ SanPham
SanPham = SP1 ⋈ SP2 ⋈ (SP3 ∪ SP4)
SP1 ∩ SP2 = ∅ , SP1 ∩ SP3 = ∅ , SP1 ∩ SP4 = ∅ , SP2 ∩ SP3 = ∅ ,
SP2 ∩ SP4 = ∅ , SP3 ∩ SP4 = ∅
3.2 Truy vấn tái thiết
 Tái thiết bảng NhanVien
select


* into NhanVien

from

NV1, NV2, NV3

where

NV1.MaNV= NV2.MaNV and NV1.MaNV= NV3.MaNV

 Tái thiết bảng NhaCungCap
select

*

into NhaCungCap

from

NCC1, NCC2, NCC3

 Tái thiết bảng Luong
select

*

into Luong

from


Luong1, Luong2, Luong3

 Tái thiết bảng LoaiSP
select

*

into LoaiSP

from

LoaiSP1, LoaiSP2, LoaiSP3, LoaiSP4

 Tái thiết bảng SanPham
select

*

into SanPham

from

SP1, SP2, ( Select * From SP3 Union
Select * From SP4) as SP

where

SP1.MaSP= SP2.MaSP
AND (SP1.MaSP= SP.MaSP)

20



×