Tải bản đầy đủ (.doc) (23 trang)

tieu luan he co so du lieu

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 (274.46 KB, 23 trang )

<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-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×