Tải bản đầy đủ (.pdf) (50 trang)

Xây dựng phần mềm quản lý bán hàng siêu thị

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 (932.47 KB, 50 trang )

MỤC LỤC

LỜI MỞ ĐẦU........................................................................................................ 1
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI ................................................................ 3
1.1 TỔNG QUAN VỀ PHẦN MỀM ................................................................. 3
1.1.1 Mục đích chính của phần mềm ............................................................... 3
1.1.3 Phạm vi ứng dụng ................................................................................... 3
1.2 CÔNG CỤ CÀI ĐẶT .................................................................................. 3
1.2.1 Giới thiệu ngơn ngữ C# ......................................................................... 4
1.2.2 Tìm hiểu về SQL Server 2005 Express ................................................ 14
CHƯƠNG 2: KHẢO SÁT ................................................................................. 25
2.1 KHẢO SÁT HỆ THỐNG ......................................................................... 25
2.2 PHÂN TÍCH HIỆN TRẠNG HỆ THỐNG .............................................. 26
2.2.1 Nhập hàng ............................................................................................. 26
2.2.2 Bán hàng ............................................................................................... 27
2.2.3 Đổi hàng hoặc trả hàng ........................................................................ 27
2.2.4 Kiểm tra tồn kho.................................................................................... 27
2.3 CÁC MẨU PHIẾU ..................................................................................... 28
2.3.1 Nhập hàng ............................................................................................ 28
2.3.2. Bán hàng .............................................................................................. 29
2.3.3. Báo cáo ............................................................................................... 32
2.3.4. Quản lý tiền ......................................................................................... 33
CHƯƠNG 3: PHÂN TÍCH ............................................................................... 35
3.1 PHÂN TÍCH BÀI TỐN .......................................................................... 35
3.2 PHÂN TÍCH CÁC CHỨC NĂNG CHÍNH TRONG HỆ THỐNG
QUẢN LÝ ......................................................................................................... 36
3.3 SƠ ĐỒ PHÂN CẤP CHỨC NĂNG HỆ THỐNG ................................... 37
3.4 BIỂU ĐỒ LUỒNG DỮ LIỆU NGỮ CẢNH ............................................ 37
3.5 BIỂU ĐỒ LUỒNG DỮ LIỆU MỨC ĐỈNH ............................................ 38
3.6 BIỂU ĐỒ LUỒNG DỮ LIỆU MỨC DƯỚI ĐỈNH ................................ 40
CHƯƠNG 4: THIẾT KẾ VÀ CÀI ĐẶT ........................................................... 41


4.1 THIẾT KẾ CƠ SỞ DỮ LIỆU .................................................................. 41
4.2 THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG................................................ 45
KẾT LUẬN .......................................................................................................... 48
TÀI LIỆU THAM KHẢO .................................................................................. 49


Xây dựng phần mềm quản lý bán hàng siêu thị
LỜI MỞ ĐẦU
Một đất nước được coi là phát triển khi đất nước đó có một nền kinh tế
vững mạnh và hiệu quả. Xét ở phạm vi một doanh nghiệp trong cơ chế thị trường
hiện nay thì quá trình bán hàng có vai trị rất lớn, quyết định sự tồn tại và phát
triển của doanh nghiệp .
Trong những năm gần đây, sự chuyển hướng đổi mới của cơ chế thị trường
nền kinh tế nước ta có nhiều biến động. Hoạt động kinh doanh nói chung hầu hết
các doanh nghiệp đều đổi mới, bước đầu đã hoà nhập với nền kinh tế khu vực và
cả thế giới. Đặc biệt, đối với các doanh nghiệp thương mại nói riêng vấn đề tiêu
thụ là một trong những yếu tố quan trọng trong việc tiêu thụ hàng hoá, là một
nghệ thuật kinh doanh của từng doanh nghiệp. Mỗi nhà doanh nghiệp phải biết
nắm bắt được một nguồn cung ứng hàng hoá và sự biến động của nó, phải năng
động, thích hợp, mềm dẻo…
Và trong q trình kinh doanh phát triển của các cơng ty, tổ chức, doanh
nghiệp thì một lượng lớn các thơng tin về giao dịch (mua bán, trao đổi) các loại
hàng hoá giữa các bên liên quan như nhà cung cấp, nhà buôn bán và khách hàng
đều cần được quản lí, theo dõi hàng ngày. Quy mô và số lượng của giao dịch
càng lớn, càng nhiều người thì số lượng thơng tin càng nhiều, càng quan trọng và
phức tạp. Chính vì thế sẽ mất nhiều thời gian, cơng sức để quản lí để dẫn đến
những sai sót đáng tiếc khi quản lí, khai thác và xử lí các thơng tin trên.
Với một thực trạng như vậy thì việc ứng dụng tin học vào cơng tác quản lí
sẽ làm cho q trình tác nghiệp đạt được những hiệu quả lớn, nhanh chóng và
chính xác hơn. Vì vậy em chọn đề tài “Xây dựng phần mềm quản lí bán hàng

Siêu Thị” làm đề đồ án tốt nghiệp của em.
Đồ án tốt nghiệp gồm 4 chương :
Chương 1 :Tổng quan về đề tài
Chương này nói về mục đích, phạm vi ứng dụng, giới thiệu ngơn ngữ và
công cụ cài đặt của đồ án.
Chương 2: Khảo sát

1

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
Chương này nói về cơ cấu quản lý, hiện trạng, các mẩu phiếu trong siêu
thị.
Chương 3: Phân tích
Trong chương nội dung chính là phát biểu bài tốn quản lý siêu thị,
phân tích các chức năng chính trong bài tốn.
Chương 4: Thiết kế và cài đặt
Nội dung chính của chương này là thiết kế cơ sở dữ liệu, giao diện cho bài
toán quản lý siêu thị.
Trong suốt quá trình làm đồ án tốt nghiệp được sự giúp đỡ, chỉ bảo tận tình
của cô giáo viên hướng dẫn Th.S Mạnh Thiên Lý cùng các bạn trong lớp đã giúp
đỡ em hoàn thành tốt đồ án này một cách thuận lợi và gặt hái được một số kết
quả khả quan, em xin chân thành cảm ơn công lao dạy dỗ của các Thầy Cô trong
khoa Công nghệ thông tin - Trường đại học Vinh, đã tận tình dạy dỗ chỉ bảo em
trong suốt hơn 4 năm học tại trường.
Bên cạnh những kết quả đã đạt được cũng khơng thể tránh được những thiếu
sót và hạn chế của đồ án, rất mong nhận được góp ý của Thầy Cô và bạn bè.


Vinh, Ngày 15 tháng 12 năm 2011
Sinh viên thực hiện
Bùi Thái Tú

2

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Tổng quan về phần mềm
Hoạt động kế tốn trong một của hàng nói riêng hay cơng ty nói chung là
một chuỗi cơng việc rất vất vả và tốn nhiều cơng sức. Nếu khơng có sự cần mẫn,
chăm chỉ và sáng suốt thì sự sai sót là không tránh khỏi. Hệ thống thông tin quản
lý bán hàng sẽ giúp cho quá trình mua bán diễn ra mau lẹ hợp lý và chính xác.
1.1.1 Mục đích chính của phần mềm
Quản lý hàng hóa theo một qui trình xuyên suốt từ khâu nhập hàng, xuất
hàng cho đến khâu thống kê báo cáo và đánh giá tình hình tồn kho.
Quản lý khách hàng đến mua hàng cũng như nhà cung cấp.
Cân đối được lượng vật tư hàng hóa tồn kho với kế hoạch sản xuất nhằm
đưa ra quyết định kịp thời chính xác phục vụ cho hoạt động sản xuất và phân
phối hàng hóa.
Quản lý tài chính thu chi tại siêu thị.
Báo cáo thống kê và truy vấn dễ dàng theo các chỉ tiêu yêu cầu.
1.1.2 Yêu cầu của phần mềm
Cung cấp thơng tin chi tiết về hàng hóa một cách nhanh chóng, chính xác và
đầy đủ.
Tìm kiếm thống kê và lập báo cáo nhanh chóng theo yêu cầu của ban lãnh
đạo.

Giao diện phải thân thiện, hỗ trợ các phím tắt cho các chức năng, đẩy nhanh
thao tác nhập dữ liệu.
Giảm thiểu được thời gian và công sức quản lý, các phát sinh nhập xuất tồn
kho, tăng độ chính xác trong thống kê, đáp ứng nhanh chóng yêu cầu số liệu cho
các bộ phận khác: kế toán,... phục vụ yêu cầu phát triển của công ty.
Phân quyền cấp hạn sử dụng của người truy cập và chức năng chi tiết.
1.1.3 Phạm vi ứng dụng
Đề tài này được ứng dụng chỉ đơn thuần phục vụ các yêu cầu về quả lí bán
hàng tại một siêu thị Mini,chương trình chạy trên máy đơn.
1.2 Công cụ vài đặt
3

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
1.2.1 Giới thiệu ngôn ngữ C#
C# là một ngôn ngữ khá đơn giản, với khoảng 80 từ khoá và hơn mười kiểu
dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc,
hướng đối tượng, hướng thành phần (component oriented).
Định nghĩa lớp trong C# khơng địi hỏi tách rời tập tin tiêu đề với tập tin cài
đặt như C++. Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp
trong tập tin mã nguồn. Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng
XML.
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java). Một lớp chỉ có thể
kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện.
C# có kiểu cấu trúc, struct (không giống C++). Cấu trúc là kiểu hạng nhẹ và
bị giới hạn. Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt
giao diện.
C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự

kiện và dẫn hướng khai báo (được gọi là attribute). Lập trình hướng component
được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các
lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật ….
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng
mã đó được xem như khơng an tồn. CLR sẽ không thực thi việc thu dọn rác tự
động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải
phóng.
1.2.1.1 Chương trình đầu tiên
Chương này ta sẽ tạo, biên dịch và chạy chương trình “Hello World” bằng
ngơn ngữ C#. Phân tích ngắn gọn chương trình để giới thiệu các đặc trưng chính
yếu trong ngơn ngữ C#.
Ví dụ Chương trình Hello World
4

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
class HelloWorld
{ Static void Main( )
{

// sử dụng đối tượng console của hệ thống
System. Console. WriteLine("Hello World");

}
}
1.2.1.2 Biến và Hằng
Biến :
Một biến dùng để lưu trữ giá trị mang một kiểu dữ liệu nào đó. Cú pháp C#

sau đây để khai báo một biến :
[ modifier ] datatype identifer ;
Phạm vi hoạt động của biến (Variable Scope): là vùng đoạn mã mà từ đấy
biến có thể được truy xuất.
Trong một phạm vi hoạt động (scope), khơng thể có hai biến cùng mang một
tên trùng nhau.
Hằng:
Một hằng (constant) là một biến nhưng giá trị không thể thay đổi được suốt
thời gian thi hành chương trình. Đơi lúc ta cũng cần có những giá trị bao giờ cũng
bất biến.
Thí dụ
const int a=100; // giá trị này không thể bị thay đổi
1.2.1.3 Kiểu dữ liệu trong C#
Các kiểu Integer:

Name

CTS Type

Description

Range(min:max)
5

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
sbyte


System. SByte

8-bit signed integer

-128:127 (-27:27-1)

short

System. Int16

16-bit signed integer

-32, 768:32, 767 (-215:215-1)

int

System. Int32

32-bit signed integer

-2, 147, 483, 648:2, 147, 483,
647 (-231:231-1)
-9, 223, 372, 036, 854, 775,

long

System. Int64

64-bit signed integer


808: 9, 223, 372, 036, 854,
775, 807 (-263:263-1)

byte

System. Byte

8-bit signed integer

0:255 (0:28-1)

ushort

System. UInt16

16-bit signed integer

0:65, 535 (0:216-1)

uint

System. UInt32

32-bit signed integer

0:4, 294, 967, 295 (0:232-1)

ulong

System.UInt64


64-bit signed integer

0:18, 446, 744, 073, 709, 551,
615(0:264-1)

Kiểu dữ liệu số dấu chấm di động (Floating Point Types)
Name

CTS Type

Float

Double

System. Single

System. Double

Description
32-bit single-precision
floating- point
64-bit double-precision
floating- point

Significant

Range

Figures


(approximate)

7

15/16

±1. 5 × 10-45 to
±3. 4 × 1038
±5. 0 × 10-324 to
±1. 7 × 10308

Kiểu dữ liệu số thập phân (Decimal Type):
Name

CTS Type

Description

decimal

System. Decimal

128-bit high

Significant

Range

Figures


(approximate)

28

±1. 0 × 10-28 to

6

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
±7. 9 × 1028

precision decimal
notation
Kiểu Boolean :
Name

CTS Type

Value

Bool

System. Boolean

true or false


Kiểu Character Type:
Name

CTS Type

Value

char

System. Char

Represents a single 16-bit (Unicode) character

Kiểu tham khảo tiền định nghĩa:
Name
object

CTS Type
System. Object

Description
The root type, from which all other types in the
CTS derive (including value types)

string

System. String

Unicode character string


Các ký tự escape thông dụng:
Escape Sequence

Character

\'

Single quote

\"

Double quote

\\

Backslash

\0

Null

\a

Alert

\b

Backspace

\f


Form feed
7

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
\n

Newline

\r

Carriage return

\t

Tab character

\v

Vertical tab

1.2.1.4 Câu lệnh điều kiện
Câu lệnh điều kiện if
Cú pháp :
if (condition)
statement(s)
[else

statement(s)]
Câu lệnh switch
Các câu lệnh if nằm lồng rất khó đọc, khó gỡ rối. Khi có một loạt lựa chọn
phức tạp thì nên sử dụng câu lệnh switch.
Cú pháp :
switch (biểu thức)
{ casce biểu thức ràng buộc:
câu lệnh
câu lệnh nhảy
[default: câu lệnh mặc định]
}
Vòng lặp for:
Cú pháp:
for (initializer; condition; iterator)
{
statement(s) }
8

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị

Vòng lặp while (The while Loop)
Cú pháp :
while(condition)
statement(s);
Vòng lặp do... while (The do…while Loop)
do
{

// Vịng lặp này sẽ thực hiện ít nhất một lần thậm chí
nếu câu điều kiện sai
MustBeCalledAtLeastOnce();
condition = CheckCondition();
} while (condition);
Vòng lặp foreach (The foreach Loop)
Cú pháp như sau:
foreach (type identifier in expression) statement
Câu lệnh break
Ta dùng câu lệnh break khi muốn ngưng ngang xương việc thi hành và thốt
khỏi vịng lặp.
Câu lệnh continue
Câu lệnh continue được dùng trong vòng lặp khi ta muốn khởi động lại một
vòng lặp nhưng lại khơng muốn thi hành phần lệnh cịn lại trong vịng lặp, ở một
điểm nào đó trong thân vịng lặp.
Câu lệnh return
Câu lệnh return dùng thốt khỏi một hàm hành sự của một lớp, trả quyền
điều khiển về phía triệu gọi hàm (caller). Nếu hàm có một kiểu dữ liệu trả về thì
9

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
return phải trả về một kiểu dữ liệu này; bằng không thì câu lệnh được dùng khơng
có biểu thức.
1.2.1.5 Lớp
Class tạo nên một chương trình lớn trong C#. Tuy nhiên nó thực sự có khả
năng viết một chương trình mà khơng sử dụng đến lớp.
Lớp là một khuôn mẫu thiết yếu mà chúng ta cần tạo ra đối tượng. Mỗi đối

tượng chứa dữ liệu và các phương thức chế tác truy cập dữ liệu. Lớp định nghĩa
cái mà dữ liệu và hàm của mỗi đối tượng riêng biệt (được gọi là thể hiện) của lớp
có thể chứa. Ví dụ chúng ta có một lớp miêu tả một khách hàng nó được định
nghĩa các trường như CustomerID, FirstName, LastName, và Address, cái mà
chúng ta giữ thơng tin cụ thể khách hàng. Nó cũng có thể được miêu tả bởi các
hành động trong các trường dữ liệu.
Hàm thành phần (Function Members):
Modifier
new
public
protected

Description
Phương thức ẩn một phương thức kế thừa với cùng kí hiệu
Phương thức có thể được truy cập bất kỳ
Phương thức có thể bị truy xuất khơng từ lớp nó thuộc hoặc
từ lớp dẫn xuất;

internal

Phương thức có thể được truy cập khơng cùng assembly

private

Phương thức có thể được truy cập từ bên trong lớp nó phụ
thuộc

static

Phương thức có thể khơng được tính trên trên một lớp thể

hiển cụ thể

virtual

Phương thức bị ghi đè bởi một lớp dẫn xúât

abstract

Phương thức trừu tượng

override

Phương thức ghi đè một phương thức ảo kế thừa hoặc trừu
10

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
tượng.
Phương thức ghi đè một phương thức ảo kế thừa, nhưng

sealed

không thể bị ghi đè từ lớp kế thừa này
Phương thức được thực thi theo bên ngồi từ một ngơn ngữ

extern

khác


1.2.1.5 Operators
Category

Operator

Arithmetic

+-*/%

Logical

& | ^ ~ && || !

String concatenation

+

Increment and decrement

++ --

Bit shifting

<< >>

Comparison

== != < > <= >=


Assignment

= += -= *= /= %= &= |= ^= <<= >>=

Member access (for objects and structs) .
Indexing (for arrays and indexers)

[]

Cast

()

Conditional (the Ternary Operator)

?:

Object Creation

new

Type information

sizeof (unsafe code only) is typeof as

Overflow exception control

checked unchecked

Indirection and Address


* -> & (unsafe code only) []

1.2.1.6 Operator Shortcuts
11

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị

Tương đương

Shortcut Operator
x++, ++x

x=x+1

x--, --x

x=x-1

x += y

x=x+y

x -= y

x=x–y


x *= y

x=x*y

x /= y

x=x/y

x %= y

x=x%y

x >>= y

x = x >> y

x <<= y

x = x << y

x &= y

x=x&y

x |= y

x=x|y

x ^= y


x=x^y

1.2.1.7 Operator Precedence
Group

Operators
(). [] x++ x-- new typeof sizeof checked
unchecked

Unary

+ - ! ~ ++x --x and casts

Multiplication/Division

*/%

Addition/Subtraction

+-

Bitwise shift operators

<< >>

Relational

< > <= >= is as

Comparison


== !=

Bitwise AND

&
12

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
Bitwise XOR

^

Bitwise OR

|

Boolean AND

&&

Boolean OR

||

Ternary operator


?:

Assignment

= += -= *= /= %= &= |= ^= <<= >>= >>>=

1.2.1.8 Namespaces
Namespace cung cấp cho ta cách mà chúng ta tổ chức quan hệ giữa các lớp
và các kiểu khác. Namespace( địa bàn hoạt động của các tên) là cách mà. NET
tránh né việc các tên lớp, tên biến, tên hàm.. đụng độ vì trùng tên giữa các lớp.
Câu lệnh using
Từ khoá using giúp giảm thiểu việc phải gõ những namespace trước các
hàm hành sự hoặc thuộc tính
Bí danh Namespace
Một cách sử dụng khác từ khố using là gán những bí danh cho các lớp và
namespace. Nếu có 1 namespace quá dài mà chúng ta muốn quy chiếu nhiều chỗ
trên đoạn mã. thì có thể gán một alias cho namespace.
Cú pháp :
using alias = NamespaceName;

13

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
1.2.2 Tìm hiểu về SQL Server 2005 Express
1.2.2.1 Tổng quan về cơ sở dữ liệu
a. Các khái niệm
Cơ sở dữ liệu (Database): là một tập hợp các dữ liệu tác nghiệp của một đơn

vị, một doanh nghiệp hay một cá nhân, được lưu lại và được sử dụng bởi các hệ
thống ứng dụng của đơn vị, doanh nghiệp hay cá nhân ấy. Cơ sở dữ liệu còn được
hiểu là một tập hợp các thông tin được tổ chức hợp lý để có thể truy xuất nhanh
khi cần sử dụng.
Thực thể (Entity): là một đối tượng cần quan tâm trong công tác quản lý, nó
có thể là:
- Cụ thể: một nhân viên, một tổ chức, một hố đơn,…
- Trừu tượng: một mơn học, một khoa trong trường đại học,…
Dữ liệu quan hệ (Relation Data): là dữ liệu được tổ chức thành các bảng
gồm các hàng và các cột. Mỗi bảng ứng với một kiểu thực thể. Trong một bảng,
mỗi cột biểu diễn một thuộc tính của thực thể, mỗi hàng thể hiện đầy đủ các dữ
liệu về một thực thể cụ thể.
Cơ sở dữ liệu quan hệ (Relation Database): là cơ sở dữ liệu sử dụng mơ
hình dữ liệu quan hệ (Relation Data Model) như: Access, SQL Server, Oracle,
My SQL,…
Hệ quản trị cơ sở dữ liệu (Relation Database Management System –
RDMS): là hệ thống giúp các nhà quản trị làm việc với cơ sở dữ liệu như
Microsoft Access, Microsoft SQL Server 2005 Express, …
Trường dữ liệu (Data Field): là dữ liệu để mơ tả một đặc trưng nào đó của
thực thể ( họ tên, ngày sinh,…) hoặc để phân biệt thực thể này với thực thể khác
(mã sinh viên, mã sách,…).
Kiểu dữ liệu (Data Type): là một khái niệm trừu tượng, được đặc trưng bởi
độ lớn và miền giá trị. Nó có thể là: text, numeric, datetime, int,…
14

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
Mối quan hệ (Relation): là sự mô tả sự liên hệ giữa các phần tử của các tập

thực thể với nhau, chúng là các gắn kết các tập thực thể với nhau, có các kiểu
quan hệ như sau:
- Kiểu quan hệ 1-1: mỗi thực thể của tập thực thể này có liên hệ với một
thực thể của tập thực thể kia.
- Kiểu quan hệ 1-n: mỗi thực thể của tập thực thể này có liên hệ với nhiều
thực thể của tập thực thể kia.
- Kiểu quan hệ m-n: m thực thể của tập thực thể này có liên hệ với n thực
thể của tập thực thể kia. Quan hệ này thường được tách ra thành các quan hệ 1-1
và 1- n.
Lược đồ quan hệ (Relation Diagram): lược đồ quan hệ là sự hợp thành bởi
hai yếu tố:
- Một cấu trúc, gồm tên quan hệ và một danh sách các thuộc tính.
- Một tập hợp các ràng buộc, tức là các điều kiện mà mọi quan hệ trong lược
đồ đều phải thoả mãn.
Phụ thuộc hàm bắc cầu: Cho lược đồ quan hệ R và tập phụ thuộc hàm F xác
định trên R; X, Y R, AR. Nếu ta có: X  Y, Y A và AXY thì ta nói A
phụ thuộc hàm bắc cầu vào X. A được gọi là thuộc tính phụ thuộc bắc cầu, Y là
các thuộc tính cầu.
b. Các dạng chuẩn dữ liệu
Có 3 dạng chuẩn cơ bản (Normal Form – NF):
- Dạng chuẩn 1 (1NF): lược đồ quan hệ chỉ chứa các thuộc tính đơn (khơng
cịn thuộc tính lặp).
- Dạng chuẩn 2 (2NF): là dạng chuẩn 1 và mọi thuộc tính khơng khố của
lược đồ quan hệ phải phụ thuộc hàm đầy đủ vào khố chính.

15

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh



Xây dựng phần mềm quản lý bán hàng siêu thị
Dạng chuẩn 3 (3NF): là dạng chuẩn 2 và lược đồ quan hệ khơng tồn tại
thuộc tính khơng khố phụ thuộc hàm bắc cầu vào khoá.
c. Phương pháp chuẩn hoá dữ liệu
Trường hợp quan hệ chưa là 1NF: Lúc này, lược đồ quan hệ tồn tại các
thuộc tính lặp. Khi đó ta tách lược đồ quan hệ thành hai lược đồ quan hệ con:
- Lược đồ quan hệ 1: gồm các thuộc tính lặp và khố chính xác định chúng.
- Lược đồ quan hệ 2: gồm các thuộc tính cịn lại và khố chính.
Trường hợp quan hệ chưa là 2NF: Lúc này, lược đồ quan hệ tồn tại thuộc
tính khơng khố phụ thuộc khơng đầy đủ vào khố chính. Khi đó ta tách lược đồ
quan hệ thành hai lược đồ quan hệ con:
- Lược đồ quan hệ 1: gồm các thuộc tính phụ thuộc khơng đầy đủ vào khố
chính và phần khoá bị phụ thuộc.
- Lược đồ quan hệ 2: gồm các thuộc tính cịn lại và khố chính.
Trường hợp quan hệ chưa là 3NF (đang là 2NF): Lúc này, trong lược đồ
quan hệ tồn tại phụ thuộc hàm bắc cầu. Khi đó ta tách lược đồ quan hệ thành hai
lược đồ quan hệ con:
- Lược đồ quan hệ 1: gồm các thuộc tính phụ thuộc bắc cầu và thuộc tính
cầu.
- Lược đồ quan hệ 2: gồm các thuộc tính cịn lại và thuộc tính cầu.

16

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
1.2.2.2 Giới thiệu về SQL Server 2005 Express
a. Tổng quan :
SQL Server 2005 Express là phiên bản đặc biệt của SQL Server 2005, sản

phẩm của hãng phần mềm Microsoft. Sở dĩ có tên như vậy là vì hệ quản trị cơ sở
dữ liệu này sử dụng công cụ quản lý cơ sở dữ liệu theo phong cách Express
(nhanh). SQL Server 2005 cải tiến khả năng quản lý và bảo mật thông qua việc
cung cấp cho tồn quyền viên nhiều cơng cụ điều khiển hơn trên những thể hiện
cục bộ và từ xa của SQL Server. Microsoft SQL Server 2005 Express Edition
miễn phí, dễ sử dụng, gọn nhẹ, và khả nhúng, là một trong những hệ quản trị cơ
sở dữ liệu quan hệ hàng đầu hiện nay. Ngoài SQL Server 2005 Express ra thì
SQL Server 2005 cịn có các phiên bản khác là:
- SQL Server 2005 Enterprise Edition
- SQL Server 2005 Standard Edition
- SQL Server 2005 Workgroup Edition
- Với SQL Server 2005 Express, quản trị viên có thể:
- Xây dựng những ứng dụng điều khiển dữ liệu linh hoạt và đáng tin cậy với
môi trường thao tác quản lý dữ liệu trực quan, đơn giản.
- Hỗ trợ các Website động (tương tác với người dùng), hỗ trợ sẵn XML
trong cơ sở dữ liệu để đảm bảo Website có thể tương tác với những ứng dụng
khác thông qua các dịch vụ Web.
- Tạo ra các báo cáo một cách nhanh chóng, với những bảng, những biểu đồ,
đồ hoạ, và nhúng chúng trong các ứng dụng.
- Đơn giản hoá thao tác triển khai và phục vụ của cơ sở dữ liệu tác nghiệp.
b. Các đặc trưng của SQL Server 2005 Express
Dễ cài đặt và quản lý:

17

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
- Download nhanh, miễn phí tại địa chỉ:


rosoft.

com/sql/2005
- Đơn giản hố việc cài đặt giao diện người dùng.
- Nhúng tốt, triển khai hợp nhất
Cơ sở dữ liệu phân tán:
- Dễ sao lưu, di chuyển cơ sở dữ liệu
- Hỗ trợ các giao dịch phân tán
Hỗ trợ XML:
- Có sẵn kiểu dữ liệu XML
- Hỗ trợ dữ liệu có cấu trúc và nửa cấu trúc
- Hỗ trợ truy vấn XML và lược đồ XML
Cung cấp nhiều chức năng cơ sở dữ liệu:
- Diagrams (lược đồ quan hệ):
- Stored procedures (thủ tục nội trú), Functions (hàm)
- Tables (bảng), Views (khung nhìn)
- Triggers (bẫy lỗi)
- Kiểu dữ liệu Cursor (con trỏ)
- Indexes (các chỉ số mở rộng)
- Advanced query (truy vấn nâng cao)
- Hỗ trợ Transact-SQL
- Các dịch vụ tìm kiếm và báo cáo,…
Tích hợp sâu trong Visual Studio 2005:
- Thiết kế, cập nhật và truy vấn cơ sở dữ liệu ngay trong môi trường của
Visual Studio.
- Truy nhập dữ liệu với ADO.NET.
Bảo mật cao:
Bảo mật theo các thiết lập mặc định, các phân quyền.
18


Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
Bảo mật nhờ các Stored Procedure (thủ tục nội trú), hỗ trợ Active Directory
(thư mục tích cực).

c. Các kiểu dữ liệu trong SQL Server 2005
Kiểu dữ liệu
Bigint

8

bytes
1

Dữ liệu bít có giá trị 0 (False) hay 1 (True)
Dữ liệu ký tự Non-Unicode chiều dài cố định, tối

Char

DateTime

Dữ liệu số nguyên có giá trị từ -263 đến 263-1
Dữ liệu nhị phân có chiều dài cố định, tối đa 8000

Binary
Bit


Diễn giải

Bytes

đa 8000 ký tự
8

Dữ liệu ngày tháng, có giá trị từ 01/01/1753 đến
31/12/9999

Decimal

Số từ -1038-1 đến 1038-1

Float

Số từ -1.79E+308 đến -1.79E+308
Dữ liệu nhị phân có chiều dài biến đổi, tối đa 2 32-1

Image

bytes

Int

4

Dữ liệu số nguyên có giá trị từ -232 đến 232-1

Money


8

Kiểu dữ liệu tiền tệ, có giá trị từ-263 đến 263

Nchar

Ntext
Numeric
Nvarchar

Dữ liệu ký tự Unicode chiều dài cố định, tối đa
4000 ký tự
Dữ liệu ký tự Unicode chiều dài biến đổi, tối đa
1,073,741,823 ký tự
Tương tự Decimal nhưng chỉ dùng trong SQL
Dữ liệu ký tự Unicode chiều dài biến đổi, tối đa
4000 ký tự

19

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
Dữ liệu ký tự Unicode chiều dài biến đổi > 4000

Nvarchar(MAX)

ký tự

Số từ -1.18E – 38 đến 0 và 1.18E – 38 đến 3.40E

Real

+ 38
Dữ liệu ngày tháng, có giá trị từ 01/01/1990 đến

SmallDateTime

4

SmallInt

2

Dữ liệu số nguyên có giá trị từ -216 đến 216-1

SmallMoney

4

Kiểu dữ liệu tiền tệ, có giá trị từ-231 đến 231

31/12/2079

Kiểu dữ liệu tuỳ biến

Sql_variant

Dữ liệu ký tự Non-Unicode chiều dài biến đổi, tối


Text

đa 2,147,483,647 ký tự

TimeStamp
TinyInt

1

UniqueIndentifier

16

Xml

thời gian

bytes

Varbinary(MAX)

Varchar(MAX)

Nhận dạng tồn cục duy nhất theo khơng gian và
Dữ liệu nhị phân có chiều dài biến đổi, tối đa 8000

Varbinary

Varchar


Dữ liệu số nguyên có giá trị từ 0 đến 255

Dữ liệu nhị phân có chiều dài biến đổi >8000
bytes
Dữ liệu ký tự Non-Unicode chiều dài biến đổi, tối
đa 8000 ký tự
Dữ liệu ký tự Non-Unicode chiều dài biến đổi >
8000 ký tự
Dữ liệu XML (eXtensible Markup Language), lưu
trữ tối đa 2 GB

20

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
d. Làm việc với SQL Server 2005 Express
Với SQL Server, người dùng có thể lập trình xử lý dữ liệu ngay trong cơ sở
dữ liệu, cụ thể là việc tạo ra các Trigger, Store procedures, Function,…Khi lập
trình cho cơ sở dữ liệu SQL Server cần có những hiểu biết cơ bản như sau:
- Cách khai báo biến:
DECLARE @<tên biến><kiểu dữ liệu>,
[@<tên biến><kiểu dữ liệu>]
Ví dụ:
DECLARE @Age, @Number Int
- Các hàm hệ thống:
Các hàm này có dạng @@TÊN, như @@ROWCOUNT (trả về số
lượng mẩu tin có ảnh hưởng đến phát biểu SQL cuối cùng),

@@DATEFIRST (trả về ngày đầu tiên trong tuần),...
- Thực thi câu lệnh SQL:
EXEC (<câu lệnh SQL>) hoặc EXECUTE (<câu lệnh SQL>).
Ví dụ:
EXEC (‘SELECT * FROM Student WHERE Age>21’)
- Xây dựng Stored Procedures:
Stored Procedures được xây dựng bởi những phát biểu SQL và TSQL, được lưu trữ như một phần của cơ sở dữ liệu dưới dạng một văn bản
text. Khi cần thực thi chỉ cần gọi chúng như gọi một thủ tục hay một hàm.
Cấu trúc của Stored Procedures như sau:
USE <tên bảng>
GO
CREAT PROC <tên thủ tục> [@<tên bến><kiểu dữ liệu>,
[@<tên biến><kiểu dữ liệu>]]
21

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
AS
<Câu lệnh SQL>
Ví dụ:
USE Account
GO
CREAT PROC sp_ShowCust
AS
SELECT CustNo, CustName, CustCity
FROM tblCustomer
- Thực thi Stored Procedures:
EXEC <tên thủ tục>

Ví dụ:
EXEC sp_ShowCust
- Thay đổi Stored Procedures bằng câu lệnh:
Tương tự phần tạo Stored Procedures, chỉ khác là sử dụng từ khoá
ALTER thay cho từ khoá CREATE
- Xoá Stored Procedures bằng câu lệnh
DROP PROC <tên thủ tục>.
Ví dụ:
USE Account
GO
DROP PROC sp_ShowCust
- Phát biểu điều khiển:
Nhìn vào khía cạnh lập trình thì SQL cũng sử dụng các phát biểu thông
dụng như: IF…ELSE, GOTO, WHILE, CASE, WAITFOR, RETURN,… Các
phát biểu điều kiện này thường được dùng trong các Stored Procedure. Ở đây
22

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
cần chú ý phát biểu WAITFOR dùng để chỉ thị cho SQL tạm dừng một thời
gian nhất định trước khi xử lý tiếp các phát biểu sau, cú pháp có dạng như sau:
WAITFOR
DELAY <’time’> (chờ trong khoảng thời gian)|
TIME <’time’> (chờ cho đến thời gian)
Ví dụ 1:
WAITFOR
DELAY ’01:00’
Ví dụ 2:

WAITFOR
TIME ’01:00’
- Xây dựng Functions:
Một Function có thể trả về một giá trị hoặc một bảng. Cú pháp để tạo ra
một Function như sau:
CREAT FUNCTION [dbo.] <tên hàm>
(
[<@tên tham số> <kiểu dữ liệu> <giá trị mặc định>,[] ]
)
RETURNS
<kiểu dữ liệu> | TABLE
AS
BEGIN
<Các câu lệnh>
RETURN (kiểu dữ liệu trong mệnh đề RETURNS) | (‘câu
lệnh SELECT’)
- Hàm trả về một giá trị:
USE Account
23

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


Xây dựng phần mềm quản lý bán hàng siêu thị
GO
CREAT FUNCTION dbo.Dngay (@Date datetime)
RETURN varchar(12)
AS
BEGIN
RETURN

CONVERT(varchar(12), @Date, 105)
END
- Hàm trả về một bảng dữ liệu:
USE Account
GO
CREAT FUNCTION dbo.Dngay (@Date datetime)
RETURN TABLE
AS
RETURN
(

SELECT * FROM tblCustomer WHERE Date>@Date

)
- Để xoá một Function chỉ cần dùng câu lệnh DROP FUNCTION.
Ví dụ:
USE Account
GO
DROP FUNCTION Dngay

24

Bùi Thái Tú - Lớp 48K CNTT - Đại học Vinh


×