<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
TIỂU LUẬN
MÔN HỌC H
Ệ
CƠ SỞ DỮ
LIỆU
<b>ĐỀ TÀI: QUẢN LÝ MUA BÁN</b>
<b>GVHD: Trần Thị Kim Chi</b>
<b>Sinh viên thực hiện: </b>
<b>Phạm Phú Nhân 09203631</b>
<b>Hoàng Anh Tuấn 09170111</b>
<b>Phạm Hải Băng 09219351</b>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>A.</b>
<b>PHỤ LỤC</b>
<b>I.GIỚI THIỆU ĐỀ TÀI</b>
<b> 1. Mụch đích chọn đề tài</b>
<b>2. Yêu cầu đề tài </b>
<b> II. XÂY DỰNG MƠ HÌNH THỰC THỂ KẾT HỢP</b>
<b>1.Kiểu thực thể</b>
<b>2. Các thuộc tính</b>
<b>3.Các mối quan hệ</b>
<b>4. Mơ hình thực thể kết hợp</b>
<b>III. MƠ HÌNH QUAN HỆ</b>
<b>IV. CÁC RÀNG BUỘC</b>
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
<b>B. NỘI DUNG</b>
<b>I. GIỚI THIỆU ĐỀ TÀI</b>
<b>1. Mụch đích chọn đề tài </b>
Ngày nay, hoạt động trao đổi bn bán khơng cịn xa lạ với
chúng ta, với tốc độ phát triển một cách mạnh mẽ các ngành nghề
kéo theo buôn bán kinh doanh cũng phát triển theo. Cũng suất phát
từ đó vấn đề quản lí dữ liệu đã cần được quan tâm phát triển. Ví dụ
việc quản lý xuất nhập hàng, mua bán hàng hóa va quản lý tồn kho,
những vấn đề này cần được thực hiện một cách chính xác, chặt chẽ.
Nhưng để tổ chức quản lý những công việc trên bằng phương pháp
thủ công ghi chép thì khơng phải là một cơng việc đơn giản, khơng
phải ai cũng làm được mà cần phải có một kỹ năng nghiệp vụ và cần
1 hệ thống, 1 cơ sở dữ liệu quản lý chặt chẽ và chính xác để vịêc
mua bán kinh doanh thụân tịên hơn, và nhất là không dẫn đến những
thiệt hại cho hoạt động bn bán. Vậy nên phương pháp thủ cơng
này thì mất nhiều cơng sức và dễ bị nhầm lẫn.Vì lý do đó nhóm em
chọn đề tài này để thực hành vịêc kinh doanh, quản lý vịêc mua bán,
trau dồi kinh nghiệm và nhất là cách xây dựng 1 csdl bằng việc ứng
dụng công nghệ thông tin.
<b>2. yêu cầu đề tài</b>
Công ty ABC cần quản lý việc mua bán các mặt hàng cho các
đại lý với mô tả như sau:
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
Các đại lý bán/mua hàng cũng cần được lưu lại các thông tin
như: Mã số đại lý (không trùng nhau), tên đại lý, địa chỉ của đại lý, số
điện thoại, số Fax, địa chỉ Email, tên người đại diện.
Dữ liệu bán/mua cần được lưu trữ riêng biệt.
Mỗi lần bán/mua hàng: công ty cần lưu lại thơng tin từ các hố
đơn bán/mua bao gồm các thơng tin: số hố đơn, ngày bán/mua, họ
tên và địa chỉ của người mua/ người bán (đại lý), tổng số tiền
mua/bán, số tiền thuế VAT, tổng số tiền sau khi đã tính thuế, người
lập phiếu (người phụ trách việc mua/bán).
Bên cạnh các thông tin trên, công ty cũng cần lưu lại thông tin
chi tiết của từng hoá đơn như: số hoá đơn, mã hàng đươc bán/mua,
số lượng bán/mua, đơn giá của từng mặt hàng.
Yêu cầu được đề ra là xây dựng cơ sở dư cho cty qản lý
vịêc mua bán với các đại lý sỉ, lẻ. dễ dàng, thụân tiện cho việc qản lý,
giảm chi phí do tiền chi cho nhân cơng, tránh các thiệt hại khơng
đáng có do sai sót của người quản lý.
<b>II .XÂY DỰNG MƠ HÌNH THỰC THỂ KẾT </b>
<b>HỢP</b>
<b>1.Kiểu thực thể</b>
<b>KHACHHANG</b>
<b>MATHANG</b>
<b>HDNHAP</b>
<b>HDXUAT</b>
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
<b>KHACHHANG</b>
-
<b>Makh( khóa chính )</b>
-
<b>Tenkh</b>
-
<b>Diachi</b>
-
<b>Sdt</b>
-
<b>Fax</b>
-
<b>Email</b>
-
<b>Daidien</b>
<b> </b>
<b>MATHANG</b>
-
<b>Mamh (khóa chính)</b>
-
<b>tenmh</b>
-
<b>dvt</b>
-
<b>mota</b>
-
<b>nsx</b>
-
<b>dongia</b>
-
<b>slton</b>
-
<b>HDNHAP</b>
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
-
<b>makh(khóa ngoại)</b>
<b>HDXUAT</b>
-
<b>sohdxuat(khóa chính)</b>
-
<b>makh (khóa ngoại)</b>
-
<b>ngayxuat</b>
<b>3. Các mối quan hệ</b>
<b>a.</b>
<b>Giữa khách hàng (đại lý) và hóa đơn </b>
<b>nhập (hóa đơn mua hàng của cửa hàng)</b>
<b>Sohdnhap</b>
<b>Ngaynhap</b>
<b>makh</b>
<b>1</b>
<b>23/1/2010</b>
<b>1</b>
<b>2</b>
<b>14/2/2010</b>
<b>1</b>
<b>3</b>
<b>14/2/2010</b>
<b>2</b>
<b>4</b>
<b>23/1/2010</b>
<b>3</b>
<b>Một khách hàng hay một đại lý thì có thể bán cho cửa hàng của</b>
<b>chúng ta một hoặc nhiều lần cần thiết và sẽ có một hoặc nhiều</b>
<b>hóa đơn , tuy nhiên một hóa đơn nhập hàng của cửa hàng</b>
<b>chúng ta thì lại là của một và chỉ một đại lý duy nhất.</b>
<b>b. Giữa khách hàng (đại lý) và hóa đơn xuất</b>
<b>(hd bán hàng của cửa hàng)</b>
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
<b>Sohdxuat</b>
<b>Ngaynhap</b>
<b>makh</b>
<b>1</b>
<b>21/1/2010</b>
<b>1</b>
<b>2</b>
<b>19/2/2010</b>
<b>1</b>
<b>3</b>
<b>17/2/2010</b>
<b>2</b>
<b>4</b>
<b>26/1/2010</b>
<b>3</b>
Một khách hàng hay một đại lý thì có thể mua một hoặc nhiều mặt
hàng từ cửa hàng của chúng ta và sẽ có một hoặc nhiều hóa đơn ,
tuy nhiên một hóa đơn bán hàng của cửa hàng chúng ta thì lại là của
một và chỉ một đại lý duy nhất.
<b>c.</b>
<b>Giữa mặt hàng và hóa đơn nhập</b>
Trong một hóa đơn nhập hàng (hd mua hàng của đại lý ) thì
có thể có nhiều mặt hàng trong đó và ngược lại một mặt hàng thì
cũng có thể có mặt trong nhiều hóa đơn nhập khác nhau vì vậy xuất
hiện mối quan hệ nhiều nhiều yêu cầu ta phải đưa về quan hệ một
nhiều bằng cách thêm một quan hề khác đó là chi tiết hóa đơn nhập
(CTNHAP) gồm các thuộc tính sau:
KHACHANG
HDXUAT
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<b>CTNHAP</b>
-
<b>sohdnhap (khóa chính)</b>
-
<b>mamh (khóa chính)</b>
-
<b>soluong</b>
-
<b>dg</b>
-
<b>vat</b>
-
<b>tt</b>
<b>d.</b>
<b>Giữa mặt hàng và hóa đơn xuất</b>
Trong một hóa đơn xuất hàng (hd bán hàng của đại lý ) thì có
thể có nhiều mặt hàng trong đó và ngược lại một mặt hàng thì cũng
có thể có mặt trong nhiều hóa đơn xuất khác nhau vì vậy xuất hiện
mối quan hệ nhiều nhiều yêu cầu ta phải đưa về quan hệ một nhiều
bằng cách thêm một quan hề khác đó là chi tiết hóa đơn xuất
(CTXUAT) gồm các thuộc tính sau:
<b>CTNHAP</b>
-
<b>sohdxuat (khóa chính)</b>
-
<b>mamh (khóa chính)</b>
-
<b>soluong</b>
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
-
<b>dg</b>
-
<b>vat</b>
-
<b>tt</b>
<b>4.Xây dựng mơ hình thực thể kết hợp</b>
III. MƠ HÌNH QUAN HỆ
KHACHHANG (makh,tenkh,diachi,daidien)
MATHANG (mamh, tenmh, dvt, mota, nsx,
dongia, slton)
HDNHAP (sohdnhap,ngaynhap,makh,tongtien)
HDXUAT (sohdxuat, ngayxuat, makh,tongtien)
SDT (makh, sdt)
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
EMAIL (makh, email)
CTNHAP (sohdnhap, mamh, soluong, dg, vat,
tt)
CTXUAT (sohdxuat, mamh, soluong, dg, vat,
tt)
IV. CÁC RÀNG BUỘC
1.KHACHHANG
Với r là một quan hệ của khách hàng ta có các
ràng buộc toàn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
.MAKH ≠ t
2
.MAKH
R
1
Thêm
Xóa
Sửa
R
+
-
+
R
2:
t € r
t.tenkh is not null
R
2
Thêm
Xóa
Sửa
R
+
-
+
2.MATHANG
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
R
1
:
t
1
, t
2
€ r
t
1
.MAMH ≠ t
2
.MAM
H
R
1
Thêm
Xóa
Sửa
R
+
-
+
R
2:
t € r
t.tenmh is not null
R
2
Thêm
Xóa
Sửa
R
+
-
+
R
3:
t € r
t.dongia is not null
R
3
Thêm
Xóa
Sửa
R
+
-
+
R
4:
t € r
t.dvt is not null
R
4
Thêm
Xóa
Sửa
R
+
-
+
R
5:
t € r
t.nsx is not null
R
5
Thêm
Xóa
Sửa
R
+
-
+
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
Với r là một quan hệ của hóa đơn nhập ta có
các ràng buộc tồn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
.sohdnhap ≠ t
2
.sohdnhap
R
1
Thêm
Xóa
Sửa
R
+
-
+
R
2:
t € r
t.ngaynhap is not null
R
2
Thêm
Xóa
Sửa
R
+
-
+
R
3
:
t € r
t.tongtien is n
ot null
R
3
Thêm
Xóa
Sửa
R
+
-
+
Với r, s lần lượt là một quan hệ của HDNHAP,
KHACHHANG ta có ràng buộc tồn vẹn sau
R
r [makh]
<sub></sub>
s[makh]
R
3
Thêm
Xóa
Sửa
R
+
-
+
S
-
+
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
Với r là một quan hệ của hóa đơn xuất ta có
các ràng buộc tồn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
.sohdxuat ≠ t
2
.sohdxuat
R
1
Thêm
Xóa
Sửa
R
+
-
+
R
2:
t € r
t.ngayxuat is not null
R
2
Thêm
Xóa
Sửa
R
+
-
+
R
3
:
t € r
t.tongtien is not null
R
3
Thêm
Xóa
Sửa
R
+
-
+
Với r, s lần lượt là một quan hệ của HDXUAT,
KHACHHANG ta có ràng buộc tồn vẹn sau
R
r [makh]
<sub></sub>
s[makh]
R
3
Thêm
Xóa
Sửa
R
+
-
+
S
-
+
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
Với r là một quan hệ của CTNHAP ta có các
ràng buộc toàn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
. sohdnhap, mamh ≠ t
2. sohdnhap, mamh
R
1
Thêm
Xóa
Sửa
R
+
-
+
R
2:
t € r
t.soluong is not null
R
2
Thêm
Xóa
Sửa
R
+
-
+
R
3:
t € r
t.dg is not null
R
3
Thêm
Xóa
Sửa
R
+
-
+
R
4:
t € r
t.VAT is not null
R
4
Thêm
Xóa
Sửa
R
+
-
+
R
5:
t € r
</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>
R
5
Thêm
Xóa
Sửa
R
+
-
+
6.CTXUAT
Với r là một quan hệ của CTXUAT ta có các
ràng buộc tồn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
. sohdxuat, mamh ≠ t
2
. sohdxuat
, mamh
R
1
Thêm
Xóa
Sửa
R
+
-
+
R
2:
t € r
t.soluong is not null
R
2
Thêm
Xóa
Sửa
R
+
-
+
R
3:
t € r
t.dg is not null
R
3
Thêm
Xóa
Sửa
R
+
-
+
R
4:
t € r
t.VAT is not null
R
4
Thêm
Xóa
Sửa
</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>
R
5:
t € r
t.tt is not null
R
5
Thêm
Xóa
Sửa
R
+
-
+
7.EMAIL
Với r là một quan hệ của EMAIL ta có các ràng
buộc tồn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
. makh ≠ t
2
. makh
R
1
Thêm
Xóa
Sửa
R
+
-
+
8.FAX
Với r là một quan hệ của FAX ta có các ràng
buộc tồn vẹn sau:
R
1
:
t
1
, t
2
€ r
t
1
. makh ≠ t
2
. makh
R
1
Thêm
Xóa
Sửa
R
+
-
+
</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>
R
1
:
t
1
, t
2
€ r
t
1
. makh ≠ t
2
. makh
R
1
Thêm
Xóa
Sửa
R
+
-
+
V. ĐẠI SỐ QUAN HỆ
Liệt kê tên các kh mua loại hàng có mã F5
P
tenkh(KHACHHANG mamh=mamh
s
mamh=‘F5’
(MATHANG))
liệt kê các mặt hàng có đơn giá =5tr
s
dongia=5tr (MATHANG)
Liệt kê các cơng ty nhập & xuất có số lượng bằng
nhau
HDNHAP
HDXUAT
soluong=soluong
</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>
Liệt kê những khách hàng mua mặt hàng là ‘ca’
s
mamh=ca CTXUAT
HDXUAT
Sohdxuat=Sohdxuat
VI. TRUY VẤN SQL
--tạo cơ sở dữ liệu bán hàng
CREATE
DATABASE
banhang
ON
PRIMARY
(
NAME
=
BH1_data
,
filename
=
'D:\tieuluan\BH1.mdf'
,
SIZE
=
10
,
MAXSIZE
=
50
,
FILEGROWTH
=
15
%
),
(
NAME
=
BH2_data
,
filename
=
'D:\tieuluan\BH2.ndf'
,
SIZE
=
10
,
MAXSIZE
=
50
,
FILEGROWTH
=
15
%),
FILEGROUP
BH1group
(
NAME
=
BH3_data
,
FILENAME
=
'D:\tieuluan\BH3.ndf'
,
SIZE
=
10
,
MAXSIZE
=
50
,
FILEGROWTH
=
5
%)
LOG
ON
(
NAME
=
BH_log
,
FILENAME
=
'D:\tieuluan\BH.ldf'
,
</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>
MAXSIZE
=
25
,
FILEGROWTH
=
5
%)
drop
table
mathang
use
banhang
drop
table
ctxuat
--tạo bảng khách hàng
create
table
KHACHHANG
(
MAKH
char
(
5
)not
null
PRIMARY
KEY
,
TENKH
Varchar
(
30
)
NOT
NULL,
DIACHI
Varchar
(
40
),
DAIDIEN
VARCHAR
(
30
)
)
--tạo bảng mặt hàng
create
table
MATHANG
(
mamh
char
(
5
)
not
null
PRIMARY
KEY
,
tenmh
Varchar
(
20
)
unique
not
null,
dvt
char
(
10
)not
null,
mota
VARCHAR
(
20
),
nsx
DateTime
NOT
NULL,
dongia
smallmoney
not
null,
slton
int
)
--tạo bảng chi tiết nhập hàng hóa
create
table
ctnhap
(
sohdnhap
int
identity
not
null,
mamh
char
(
5
)
not
null,
soluong
int
not
null,
dg
smallmoney
,
</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>
tt
as
((
soluong
*
dg
)+(
soluong
*
dg
*
vat
)/
100
),
primary
key
(
sohdnhap
,
mamh
)
)
--tạo bảng chi tiết xuất hàng hóa
create
table
ctxuat
(
sohdxuat
int
identity
not
null,
mamh
char
(
5
)
not
null,
soluong
int
not
null,
dg
smallmoney
,
vat
float
,
tt
as
((
soluong
*
dg
)+(
soluong
*
dg
*
vat
)/
100
),
primary
key
(
sohdxuat
,
mamh
)
)
--tạo bảng hóa đơn nhập
create
table
hdnhap
(
sohdnhap
int
identity
not
null
primary
key
,
makh
char
(
5
)
foreign
key
references
khachhang
(
makh
),
ngaynhap
DateTime
NOT
NULL
DEFAULT
(
GetDate
()),
tongtien
float
)
--tạo bảng hóa đơn xuất
create
table
hdxuat
(
sohdxuat
int
identity
not
null
primary
key
,
makh
char
(
5
)
foreign
key
references
khachhang
(
makh
),
ngayxuat
DateTime
NOT
NULL
DEFAULT
(
GetDate
()),
tongtien
float
)
</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>
(
makh
char
(
5
)
primary
key
,
sodt
char
(
12
)
)
--tạo bảng địa chỉ email của khách hàng
create
table
email
(
makh
char
(
5
)
primary
key
,
email
char
(
40
)
)
--tạo bảng số fax của khách hàng
create
table
fax
(
makh
char
(
5
)
primary
key
,
fax
char
(
20
)
)
--các câu lệnh truy vấn
--Cho biết hai mặt hàng có cùng đơn giá
SELECT
mh1
.
tenmh
,
mh2
.
tenmh
,
mh1
.
dongia
FROM
mathang mh1
,
mathang mh2
WHERE
mh1
.
dongia
=
mh2
.
dongia
--Danh sách các hoá đơn gồm Mahd, tenkh
SELECT
h
.
makh
,
tenkh
FROM
hdnhap h
,
khachhang k
WHERE
h
.
makh
=
k
.
makh
--Cho biết tổng tiền xuất của từng khách hàng
SELECT
makh
,
SUM
((
soluong
*
dg
)+(
soluong
*
dg
*
vat
)/
100
)
AS
Total
FROM
ctxuat c
,
hdxuat h
where
c
.
sohdxuat
=
h
.
sohdxuat
GROUP
BY
makh
</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>
SELECT
sohdnhap
,
SUM
((
soluong
*
dg
)+
(
soluong
*
dg
*
vat
)/
100
)
AS
Total
FROM
ctnhap
GROUP
BY
sohdnhap
--Cho biết trung bình thu được theo từng hóa đơn
SELECT
sohdnhap
,
AVG
((
soluong
*
dg
)+
(
soluong
*
dg
*
vat
)/
100
)
AS
AVGTOTAL
FROM
ctnhap
GROUP
BY
sohdnhap
--Cho biết các sản phẩm có đơn giá cao nhất
SELECT
*
FROM
mathang
WHERE
dongia
>=
ALL
(
SELECT
dongia
FROM
mathang
)
--Cho biết các sản phẩm có đơn vị tính có chữ cai và
có đơn giá cao nhất
SELECT
*
FROM
mathang
WHERE
dvt
like
'%cai%'
and
dongia
>=
ALL
(
SELECT
dongia
FROM
mathang
)
--liệt kê những khách hàng cùng địa chỉ
select
distinct
a
.
makh
,
a
.
tenkh
,
a
.
diachi
from
khachhang a
,
khachhang b
where
a
.
makh
!=
b
.
makh
and
a
.
diachi
=
b
.
diachi
;
--liệt kê nhữn khách hàng mua nhiều hơn 2 sản phẩm
</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>
where
a
.
makh
=
b
.
makh
and
b
.
Sohdxuat
=
c
.
Sohdxuat
group
by
a
.
makh
,
a
.
tenkh
having
count
(
c
.
mamh
)>=
2
;
--liệt kê những mặt hàng còn tồn trong kho
select
*
from
mathang
where
slton
>
0
--liệt kê mặt hàng tên là cam
select
*
from
mathang
</div>
<!--links-->