Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 29

TRƯỜNG ĐẠI HỌC VĂN LANG

KHOA KỸ THUẬT CƠ-ĐIỆN VÀ MÁY TÍNH




ĐỒ ÁN
HỌC PHẦN CƠ SỞ DỮ LIỆU
ĐỀ TÀI:

THIẾT KẾ CƠ SỞ DỮ LIỆU


CHO HỆ THỐNG BÁN GÀ RÁN KFC

Sinh viên thưc hiện : Lý Tống Minh – 2374801030046


: Lạc Thế Phong - 2374801030056

Lớp : 232_71SEDA30053_02_CSDL
Giảng viên hướng dẫn: Ths Huỳnh Phước Danh
Mục lục

I. Lời Mở đầu....................................................................................................4


II. Lý Thuyết – Phân Tích Hệ Thống...............................................................5
1. Lý Thuyết Cơ Bản...................................................................................5
a.Khái niệm môn học cơ sở dữ liệu........................................................5
b.Cấu trúc cơ sở dữ liệu..........................................................................5
c.Phân loại cơ sở dữ liệu..........................................................................5
d.Tác dụng thực tế của cơ sở dữ liệu......................................................6
2.Mô hình cơ sở dữ liệu.....................................................................................6
a.Mô hình quan hệ thực thể................................................................... 6
b.Thành phần của mô hình quan hệ..................................................... 7
c.Các loại quan hệ trong mô hình......................................................... 7
d.Phần quan trọng - các bước thiết kế mô hình E-R........................... 8
e.Ứng dụng và thực tiễn......................................................................... 8
3.1.Mô hình quan hệ......................................................................................... 9
a.Mô hình quan hệ là gì ?....................................................................... 9
b.Các loại Khóa và tác dụng của nó...................................................... 10
3.2. Các loại ràng buộc trong mô hình quan hệ............................................. 11
a. Các loại ràng buộc.............................................................................. 11
b.Kết Luận............................................................................................... 12
3.3.Chuẩn hóa trong cơ sở dữ liệu ?................................................................ 12
a.Khái niệm cơ bản ................................................................................ 12
b.Các dạng chuẩn hóa NF.......................................................................12
3.4.Phương pháp chuẩn hóa............................................................................ 15
a.Nguyên lí .............................................................................................. 15
b.Nguyên tắc chuẩn hóa...........................................................................16
c.Ứng dụng của việc chuẩn hóa.............................................................. 17
3.5.Hệ thống quản trị SQL....................................................................................... 18
a.Giới thiệu.......................................................................................................... 18
b.Thành phần của SQL...................................................................................... 18
c.Mục đích sử dụng SQL.................................................................................... 19
3.6. Mô tả chức năng hệ thống................................................................................. 19
a.Mô tả bài toán.................................................................................................. 19
b.Yêu cầu chức năng......................................................................................... 21
III.Mô hình thực thể kết hợp ER..........................................................................22
1. Thuyết minh mô hình ER.................................................................... 22
2. Mô tả các thuộc tính của tập thực thể.................................................22
a. Mô tả...................................................................................................22
b.Các mối quan hệ.................................................................................23
3. Mô tả mối quan hệ giữa các tập thực thể.............................................24
IV. Mô hình quan hệ.......................................................................................24
V.Chuẩn hóa dữ liệu.......................................................................................24
I. Lời Mở Đầu

Thời đại công nghệ số bùng nổ mang đến cho mọi ngành nghề, đặc biệt là lĩnh
vực quản lý hệ thống bán gà rán, cơ hội to lớn để nâng tầm hiệu quả và lợi
nhuận thông qua việc ứng dụng công nghệ dữ liệu tiên tiến.

KFC, thương hiệu gà rán nổi tiếng toàn cầu, trong việc áp dụng giải pháp
quản lý dữ liệu hiệu quả để tối ưu hóa hoạt động kinh doanh. Bài viết này sẽ
đi sâu vào phân tích và đề xuất các giải pháp quản lý hệ thống bán gà rán dựa
trên mô hình CSDL của KFC.

Nội dung bài viết:

 Nhu cầu quản lý dữ liệu trong ngành bán gà rán:


 Nắm bắt thông tin về nguyên liệu, sản phẩm, quy trình sản xuất.
 Quản lý đơn hàng, lập kế hoạch sản xuất.
 Thúc đẩy chiến lược tiếp thị và bán hàng.
 Giải pháp quản lý dữ liệu cho KFC.
 Phân tích nhu cầu cụ thể của ngành và đề xuất phương án tối ưu hóa.
 Giới thiệu các công cụ và kỹ thuật mới nhất trong lĩnh vực quản lý dữ
liệu.
 Lợi ích của việc áp dụng hệ thống quản lý dữ liệu.
 Tiết kiệm thời gian, tăng cường độ chính xác và tính linh hoạt trong
quản lý.
 Nâng cao hiệu suất và lợi nhuận.
 Tăng cường trải nghiệm của khách hàng.

Bài viết này hướng đến:


 Cung cấp cho các nhà quản lý KFC một cái nhìn toàn diện về tầm quan
trọng của việc quản lý dữ liệu.
 Giới thiệu các giải pháp quản lý dữ liệu hiệu quả dựa trên mô hình
CSDL của KFC.
 Hỗ trợ các doanh nghiệp trong ngành bán gà rán áp dụng các công
nghệ dữ liệu tiên tiến để nâng cao hiệu quả kinh doanh.
II. Lý Thuyết – Phân Tích Hệ Thống
1. Lý Thuyết Cơ bản
a. Khái niệm môn học cơ sở dữ liệu
Cơ sở dữ liệu (tiếng Anh: Database) là một tập hợp các dữ liệu có tổ chức liên quan
đến nhau, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính. Khi cơ sở dữ
liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết
kế và mô hình hóa chính thức.Để ứng dụng vào môn này thì nó sẽ có tác dụng là Truy
và Xuất,Quản lý thông tin và cuối cùng là lưu trữ thông tin.
b. Cấu trúc của cơ sở dữ liệu :gồm có dữ liệu và cấu trúc dữ liệu.
Ví dụ, để quản lý việc học tập trong một môi trường đại học, các dữ liệu là các thông
tin về sinh viên, về các môn học, điểm thi... Các dữ liệu đó được tổ chức thành các
bảng và lưu giữ chúng vào sổ sách hoặc sử dụng một phần mềm máy tính để lưu giữ
chúng trên máy tính. Ta có một tập các dữ liệu có liên quan đến nhau và mang nhiều ý
nghĩa, đó là một cơ sở dữ liệu.

c.Phân loại cơ sở dữ liệu


Chúng được phân loại theo tùy mục đích sử dụng
- Database dạng file: Đây là dữ liệu được lưu trữ dưới dạng các file. Loại Database
dạng file hay được sử dụng nhất đó *.mdb Foxpro, ngoài ra còn có *.dbf, ascii,…

- Database quan hệ: Chúng là các dữ liệu khác nhau được lưu trữ trong các bảng dữ
liệu nhưng giữa chúng lại có mối liên hệ với nhau. Vì vậy, chúng mới có tên gọi là
“database quan hệ”. Một số hệ quản trị hỗ trợ database quan hệ hiện rất được ưa
chuộng bao gồm: MySQL, MS SQL server, Oracle,…

- Database hướng đối tượng: Điểm giống nhau giữa database hướng đối tượng và
database quan hệ chính là chúng đều được lưu trữ trong bảng dữ liệu. Còn điểm khác
biệt các bảng của database hướng đối tượng có thêm các tính năng hướng đối tượng,
ví dụ như lưu trữ thêm 1 số hành vi để thể hiện rõ hơn hành vi của đối tượng. Nhắc
đến tên các hệ quản trị hỗ trợ database hướng đối tượng, người ta sẽ nhớ ngay đến
những cái tên nổi bật như: MS SQL server, Postgres SQL, Oracle,…

- Database bán cấu trúc: Loại database này được lưu với định dạng XML, nó có thông
tin mô tả dữ liệu và đối tượng được trình bày trong các thẻ tag. Database bán cấu trúc
có ưu điểm vượt trội đó là lưu trữ được nhiều loại data khác nhau, chính vì vậy nó
đang dần khẳng định được vị trí và giá trị sử dụng của mình.
Ngoài ra còn có Phân loại Database theo hệ điều hành
- Database dùng hệ điều hành Windows, ví dụ như: SQL Server – MSSQL,...

- Database dùng hệ điều hành Linux, ví dụ như: MySQL, Mariadb,...


d. Tác dụng thực tế của cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) có nhiều tác dụng thực tế quan trọng trong các lĩnh vực khác
nhau, bao gồm:
 Quản lý thông tin: CSDL giúp tổ chức và lưu trữ thông tin một cách có tổ
chức, giúp dễ dàng truy cập, tìm kiếm và cập nhật dữ liệu.
 Hỗ trợ ra quyết định: CSDL cung cấp dữ liệu phục vụ cho việc phân tích và
đưa ra quyết định, từ việc dự đoán xu hướng đến đánh giá hiệu suất kinh
doanh.
 Tối ưu hóa quy trình kinh doanh: Bằng cách lưu trữ và quản lý dữ liệu một
cách hiệu quả, CSDL giúp tối ưu hóa quy trình kinh doanh, giảm thiểu thời
gian và chi phí.
 Hỗ trợ khách hàng: CSDL cho phép tổ chức lưu trữ thông tin về khách hàng
và tương tác với họ một cách hiệu quả hơn thông qua việc tạo ra và duy trì hồ
sơ khách hàng.
 Quản lý hàng tồn kho: Trong các doanh nghiệp thương mại, CSDL được sử
dụng để quản lý thông tin về hàng tồn kho, từ việc theo dõi lượng tồn kho đến
việc đặt hàng mới.
 Bảo mật dữ liệu: CSDL cung cấp các cơ chế bảo mật để đảm bảo rằng dữ liệu
chỉ được truy cập và sửa đổi bởi những người được ủy quyền.
Tóm lại, CSDL không chỉ là một công cụ để lưu trữ dữ liệu mà còn là một phần quan
trọng của hệ thống thông tin trong các tổ chức, đóng vai trò quan trọng trong việc hỗ
trợ quản lý và ra quyết định.
2.Mô hình cơ sở dữ liệu
a.Mô hình quan hệ thực thể (Entity Relationship model - E-R) :
CHEN giới thiệu vào năm 1976 là một mô hình được sử dụng rộng rãi trong các bản
thiết kế cơ sở dữ liệu ở mức khái niệm, được xây dựng dựa trên việc nhận thức thế
giới thực thông qua tập các đối tượng được gọi là các thực thể và các mối quan hệ
giữa các đối tượng này

So với mô hình mạng thì mô hình quan hệ thực thể có nhiều ưu điểm hơn và
nó thể hiện rõ hơn các thành phần trong thế giới thực. Nếu như mô hình mạng
chỉ biểu diễn các đối tượng chính chứ không mô tả được các đặc điểm trong đối
tượng đó thì trong mô hình quan hệ thực thể lại khắc phục được những điểm
yếu này. Chính vì vậy việc lựa chọn mô hình này luôn là quyết định của các
nhà phân tích thiết kế cơ sở dữ liệu
b.Thành phần của mô hình quan hệ
Thực thể và thuộc tính
Giá trị của thuộc tính có 2 loại là đơn trị và đa trị. Đơn trị là các thuộc tính như tên,
ngày sinh, giới tính… Đa trị là các thuộc tính như certificates, studied school (có thể
có nhiều hơn 1).
Kiểu dữ liệu của thuộc tính đơn trị có thể là string, float, integer, datetime… Các
thuộc tính đa trị có thể coi như 1 danh sách các giá trị thuộc các kiểu vừa nêu. Ví dụ
ngày sinh kiểu datetime, tên kiểu string, điểm trung bình kiểu float…
Thực thể (Entity) đơn giản là các đối tượng, sự vật, đồ vật. Nhiều thực thể thì được
gọi là một tập thực thể. Trong mô hình ER có thể có nhiều thực thể khác nhau, được
ký hiệu bằng hình chữ nhật và tên thực thể bên trong (xem hình kế tiếp trong mục
Thuộc tính, nhân viên là thực thể). Ví dụ thực thể (Nhà cửa, xe cộ, phòng ban, nhân
viên, sinh viên…).
Ngoài ra còn có 1 loại là thực thể yếu. Thực thể yếu là thực thể thêm vào để bổ sung
thông tin cho thực thể chính trong quan hệ và nó không quan trọng. Thông thường khi
thiết kế ER model, bạn sẽ hiếm khi thấy thực thể yếu xuất hiện trong mô hình.
Thực thể sẽ có các thuộc tính liên quan đến nó. Ví dụ như con người thì sẽ có họ tên,
ngày sinh, giới tính, địa chỉ, số CMND… Sinh viên thì có thêm MSSV, trường, lớp…
Thuộc tính trong mô hình ER được ký hiệu là hình bầu dục hoặc tròn cùng với tên
thuộc tính bên trong. Thuộc tính thuộc thực thể nào thì sẽ được nối đến thực thể đó.
Thuộc tính dùng để phân biệt giữa các thực thể với nhau gọi là thuộc tính khóa. Thuộc
tính khóa ký hiệu tương tự thuộc tính thường nhưng có thêm gạch chân dưới tên thuộc
tính.
c. Các loại quan hệ trong mô hình
Mối quan hệ giữa các thực thể có các kiểu sau:
Quan hệ 1 – 1: ví dụ như chức trưởng phòng chỉ có thể thuộc về 1 người và cũng chỉ
có 1 người có thể giữ chức trưởng phòng trong cùng 1 thời điểm.
Quan hệ 1 – n (hoặc n – 1): ví dụ như mỗi chiếc xe hơi được đứng tên bởi 1 người
nhưng 1 người có thể có nhiều chiếc xe hơi.
Quan hệ n – n: ví dụ như trên đại học, mỗi sinh viên sẽ được tham gia vào các lớp
thuộc các môn học khác nhau và mỗi lớp cũng có nhiều sinh viên khác nhau tham gia.
Mối quan hệ giữa thực thể còn được đánh bảng số để biểu thị số chiều của mối quan
hệ. Bảng số có dạng sau (min, max), trong đó min là số lượng thực thể tối thiểu tham
gia mối quan hệ và max là số thực thể tối đa trong mối quan hệ đó.
Ví dụ như mỗi phòng ban có thể có 1 hoặc nhiều nhân viên (ít nhất 1 và nhiều nhất n
nhân viên), mỗi nhân viên thì chỉ có thể thuộc về 1 và chỉ 1 phòng ban (ít nhất 1 và
nhiều nhất 1).

d.Phần quan trọng – các bước thiết kế E-R


Để xây dựng ER Model, ta thực hiện theo các bước sau:

a. Xác định tập thực thể


b. Xác định thuộc tính của thực thể
c. Xác định kiểu của các thuộc tính
d. Xác định thuộc tính khóa của các thực thể
e. Xác định mối quan hệ giữa thực thể
f. Vẽ ER Model
g. Chuẩn hóa model
Ngoài ra, còn có 1 số quy tắc quan trọng
1. Mỗi thành phần phải có ý nghĩa trong model
2. Xác định đúng thực thể
3. Có đầy đủ các thuộc tính của thực thể
4. Xác định đúng các mối quan hệ giữa thực thể
5. Model phải đơn giản nhưng đầy đủ thông tin và dễ đọc hiểu
e.Ứng dụng và thực tiễn
ER là mô hình dùng để mô tả cấu trúc dữ liệu và quan hệ giữa các thực thể trong cơ sở
dữ liệu. Mô hình ER được sử dụng để thể hiện sự liên kết giữa các thực thể và thuộc
tính của chúng. ER là mô hình hóa dữ liệu và ERD là công cụ để biểu diễn và trực
quan hóa mô hình ER.
3.Mô hình quan hệ
a. Mô hình quan hệ là gì ?
Mô hình quan hệ do F.F Codd đề xuất năm 1970, được xây dựng dựa trên cấu trúc
toán học tự nhiên và đơn giản: Quan hệ (relation) hay Bảng (table).

Ví dụ cho một mô hình quan hệ


Sau đây sẽ là thuật ngữ cơ bản của mô hình quan hệ
Thuộc tính (attribute): Là các cột của một quan hệ được đặt tên cụ thể.
Như trên quan hệ Phim, thuộc tính chính là Tên phim, Năm, Thời lượng, Loại.
Các thuộc tính xuất hiện ở trên cùng của một cột và mô tả ý nghĩa của cột đó. Thứ tự
của các cột trong một quan hệ không quan trọng, miễn sao cung cấp đầy đủ thông tin
và tránh dư thừa dữ liệu là được.
Ví dụ: Cột Thời lượng cho ta biết độ dài của một bộ phim theo đơn vị phút.
Lược đồ (Schema): Được định nghĩa bao gồm tên của một quan hệ và tập hợp các
thuộc tính của quan hệ đó.
Ví dụ: Lược đồ của quan hệ Phim là: Phim(Tên_phim, năm, thời_lượng, Loại)
Trong mô hình quan hệ, một CSDL bao gồm một hoặc nhiều quan hệ tạo thành tập
hợp các lược đồ của các quan hệ của một CSDL được gọi là lược đồ CSDL (Database
Schema)
Bộ (Tuple): Chính là những dòng của một quan hệ, khác với dòng tiêu đề banh nhé
(Bao gồm tên các thuộc tính)
Một bộ có các thành phần tương ứng với các thuộc tính của quan hệ.
Ví dụ: Bộ đầu tiên trong quan hệ Phim có 4 thành phần: Cuốn theo chiều gió, 1939,
231, Tình cảm - tương ứng với 4 thuộc tính Tên phim, Năm, Thời lượng, Loại
Cách viết một bộ bao gồm các thành phần xuất hiện theo thứ tự các thuộc tính được
liệt kê trong lược đồ, cách nhau dấu phẩy và được bao bọc bởi cặp dấu ngoặc đơn.Ví
dụ: (Cuốn theo chiều gió, 1939, 231, Tình cảm)
Thể hiện: Nội dung (bao gồm tập các bộ) của một quan hệ tại một thời điểm nào đó
được gọi là thể hiện của quan hệ tại thời điểm đó.
Ví dụ: 3 bộ trong quan hệ Phim này là một thể hiện của chính quan hệ Phim này.
Miền giá trị: Tập các giá trị mà một thuộc tính Ai có thể nhận được gọi là miền giá trị
của thuộc tính đó, kí hiệu dom(Ai)
Mỗi thành phần của một bộ hay giá trị của các thuộc tính phải là nguyên tố. Một giá
trị được gọi là nguyên tố khi giá trị này không thể phân chia được, ví dụ tên sinh viên,
năm sinh
=> Kiểu dữ liệu của một thuộc tính phải là các kiểu cơ bản như string, integer.
Ví dụ: dom(năm sinh) phải là tập hợp các số có 4 chữ số.
Khoá (Key): Là tập tối thiểu các thuộc tính xác định duy nhất của một bộ.
b.Các loại Khóa và tác dụng của nó
Khoá (Key): Là tập tối thiểu các thuộc tính xác định duy nhất của một bộ.
Một quan hệ có thể có nhiều khoá, gọi là các khoá ứng viên (candidate key). Trong
đó, khoá chính (primary key) là khoá được chọn từ các khoá ứng viên:
Thường là khoá ứng viên có ít nhất một thuộc tính
Thường được gạch dưới trong lược đồ quan hệ
Ví dụ: SINHVIEN(MSSV, hoten, namsinh, diachi, ML)
Khóa chính của quan hệ này xuất hiện như là các thuộc tính của một quan hệ khác thì
gọi là khóa ngoại (Foreign key).
Khoá chính và khoá ngoại kết hợp với nhau tạo nên các liên kết mật thiết đảm bảo dữ
liệu được logic và toàn vẹn.
Ví dụ
SINHVIEN (MASV, hoten, namsinh, diachi, ML)
LOP (ML, tenlop)
MONHOC (MM, tenmon, TC, LT, TH)
DIEM (MASV, MM, hk, nk, diem)
GIAOVIEN (MAGV, hotenGv, namsinhGv, diachiGv)
DAY (MAGV, MM, hk, nk)

Phần in đậm - có gạch dưới là khoá chính, in nghiêng – có gạch dưới là khoá
ngoại.Hoặc với khoá ngoại bạn có thể nhận biết được bằng xét xem một thuộc tính
của bất kì một quan hệ nào là khoá chính của một quan hệ khác.
Khoá chính có thể bao gồm nhiều thuộc tính – cũng có thể bao gồm nhiều khoá ngoại
khác nhau.
3.2.Các loại ràng buộc trong mô hình quan hệ
a.Các loại ràng buộc
Ràng buộc ngầm định: Là các ràng buộc liên quan đến tính chất của một quan hệ như:
 Giá trị các thuộc tính phải là nguyên tố
 Không được phép có hai bộ giống nhau trong cùng một quan hệ
 Thứ tự các bộ trong một quan hệ là không quan trọng,…
Ràng buộc dựa trên ứng dụng: Là ràng buộc liên quan đến ngữ nghĩa và hành vi
(behavior) của các thuộc tính. Loại ràng buộc này khó mô tả trong mô hình dữ liệu và
chỉ được kiểm tra trong quá trình cập nhật dữ liệu dựa trên nền tảng ứng dụng đã được
lập trình.
Ràng buộc dựa trên lược đồ: Là ràng buộc có thể mô tả trực tiếp trong lược đồ của
mô hình dữ liệu. Loại ràng buộc này được mô tả bằng ngôn ngữ DDL bao gồm các
ràng buộc về:
 Miền giá trị (domain constraint)
 Khoá (key constraint)
 Các giá trị NULL
 Toàn vẹn thực thể (entity integrity constraint)
 Toàn vẹn tham chiếu (referential integrity constraint)
Ràng buộc miền giá trị: Là loại ràng buộc về giá trị của một thuộc tính xác định nào
đó trong một quan hệ cụ thể. Ràng buộc này có thể áp dụng lên một thuộc tính hoặc
một nhóm các thuộc tính tự ràng buộc lẫn nhau về giá trị.
Ví dụ: 0 <= điểm <= 10 hoặc 1 <= tháng <= 12
Hay một quan hệ TRASACH có thuộc tính ngayMuon và ngayTra: ngayMuon <=
ngayTra
Ràng buộc về khoá: Thường được biểu diễn bằng các phụ thuộc hàm, là một loại ràng
buộc liên bộ phổ biến xác lập sự tồn tại duy nhất của các bộ trong một quan hệ.
Ví dụ: Hai bộ phân biệt của cùng quan hệ không thể có thuộc tính khoá trùng nhau.
Mỗi sinh viên có mã số duy nhất, …
Ràng buộc về giá trị NULL: Ràng buộc này cho biết một thuộc tính có thể nhận giá trị
NULL hay không.
Ràng buộc toàn vẹn thực thể: Kiểm tra rằng khoá chính không thể mang giá trị NULL
hay nói cách khác – các khoá chính được sử dụng để xác định các bộ trong một quan
hệ. Nếu có bất cứ khoá chính nào mang giá trị NULL thì các bộ tương ứng đó sẽ
không thể xác định được.
Ví dụ: Nếu có hai hoặc nhiều bộ có khoá chính mang giá trị NULL => thể không thể
phân biệt chúng nếu tham khảo chúng từ các quan hệ khác.

b.Kết luận
Tóm lại, ràng buộc là thứ không thể thiếu trong việc thiết kế và vận hành một CSDL
trong thực tế. Ràng buộc là kiến thức tiên quyết để bắt đầu xây dựng một CSDL nhất
quán và logic để đáp ứng được các nhu cầu khách hàng trong xây dựng và phát triển
phần mềm.

3.3.Chuẩn hóa trong cơ sở dữ liệu ?


a.Khái niệm cơ bản
Chuẩn hoá là quá trình tách bảng (phân rã) thành các bảng nhỏ hơn dựa vào các phụ
thuộc hàm. Các dạng chuẩn là các chỉ dẫn để thiết kế các bảng trong CSDL.
Mục đích của chuẩn hoá là loại bỏ các dư thừa dữ liệu và các lỗi khi thao tác dư thừa
và các lỗi khi thao tác dữ liệu (Insert, Delete, Update). Nhưng chuẩn hoá làm tăng thời
gian truy vấn.
b.Các dạng chuẩn hóa(NF)

– 1NF (First Normal Form)

Định nghĩa: Một bảng (quan hệ) được gọi là ở dạng chuẩn 1NF nếu và chỉ nếu toàn bộ
các miền giá trị của các cột có mặt trong bảng (quan hệ) đều chỉ chứa các giá trị
nguyên tử (nguyên tố)

Ví dụ :

MASV HOTEN DIA CHI MAMON TENMON DIEM


A01 Minh Can Tho M01 CSDL 9
A02 Phong Phu Tho M01M02 CSDL AV 10
A03 Huy Binh Duong M03 CSDL AV 7
Toan

Dạng chuẩn 2 – 2NF

Định nghĩa Một quan hệ ở dạng chuẩn 2NF nếu quan hệ đó:
Là 1NF
Các thuộc tính không khoá phải phụ thuộc hàm đầy đủ vào khoá chính
Ví dụ 1: Cho quan hệ R = (ABCD) , khoá là AB và tập phụ thuộc hàm F = {AB -> C,
AB -> D}là quan hệ đạt chuẩn 2NF.
Ví dụ 2: Cho quan hệ R = (ABCD) , khoá là AB và tập phụ thuộc hàm
 F = {AB -> C, AB -> D, B -> DC} là quan hệ không đạt chuẩn 2NF vì có phụ
thuộc hàm
 B -> DC là phụ thuộc hàm bộ phận (phụ thuộc hàm không đầy đủ) vào khoá.
Khi đó ta đưa về dạng chuẩn 2NF như sau:

Suy ra :
Một quan hệ ở dạng chuẩn 2NF nếu thoả mãn 1 trong các điều kiện sau: Khoá chính
chỉ gồm một thuộc tính Bảng không có các thuộc tính không khoá Tất cả các thuộc
tính không khoá phụ thuộc hoàn toàn vào tập các thuộc tính khoá chính
Dạng chuẩn 3 – 3NF
Định nghĩa Một quan hệ ở dạng chuẩn 3NF nếu quan hệ đó:
Là 2NF
Các thuộc tính không khoá phải phụ thuộc trực tiếp vào khoá chính
Ví dụ 1: Cho quan hệ R = (ABCDGH, khoá là AB và tập phụ thuộc hàm F = {AB ->
C, AB -> D, AB -> GH} là quan hệ đạt chuẩn 3NF.
Ví dụ 2: Cho quan hệ R = (ABCDGH) , khoá là AB và tập phụ thuộc hàm
F = {AB -> C, AB -> D, AB -> GH, G -> DH} là quan hệ không đạt chuẩn 3NF vì có
phụ thuộc hàm G ® DH là phụ thuộc hàm gián tiếp vào khoá. Khi đó ta đưa về dạng
chuẩn 3NF như sau:

Ngoài ra còn 1 loại dạng chuẩn hóa


Dạng chuẩn BCNF (Boyce Codd Normal Form)
Định nghĩa Một quan hệ ở dạng chuẩn BCNF nếu quan hệ đó:
Là 3NF
Không có thuộc tính khoá mà phụ thuộc hàm vào thuộc tính không khoá.
Ví dụ 1: Cho quan hệ R = (ABCDGH, khoá là AB và tập phụ thuộc hàm F = {AB ->
C, AB -> D, AB -> GH} là quan hệ đạt chuẩn BCNF.
Ví dụ 2: Cho quan hệ R = (ABCDGH) , khoá là AB và tập phụ thuộc hàm
F = {AB -> C, AB -> D, AB -> GH, H -> B} là quan hệ không đạt chuẩn BCNF vì có
thuộc tính khoá B phụ thuộc hàm vào thuộc tính không khoá H. Khi đó ta đưa về dạng
chuẩn BCNF như sau:

3.4.Phương pháp chuẩn hóa


a.Nguyên lí
Nguyên lí cơ bản trong chuẩn hóa CSDL là triệt tiêu dư thừa dữ liệu bằng cách phân
rã các quan hệ nhưng không được làm mất thông tin. Tutorial về chuẩn hóa CSDL
Tutorial 1 - Dùng phương pháp làm phẳng để chuẩn hóa 1NF
Tutorial 2 - Dùng phương pháp tách nhóm lặp để chuẩn hóa 1NF

. Khác với tutorial 1 ở trên dùng phương pháp làm phẳng, chúng em dùng phương
pháp tách nhóm lặp để đưa về dạng 1NF trước.
Yêu cầu: thiết kế CSDL quản lí cửa hàng thuốc cần các thông tin sau:
DB(Mã hóa đơn, Ngày bán, Tổng tiền Hóa đơn, Mã khách hàng, Tên Khách hàng, Số
ĐT Khách hàng, Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT Nhân
viên (Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD, Số lượng, Thành tiền)).
Các phụ thuộc hàm:
Mã hóa đơn, Mã khách hàng, Mã nhân viên, Mã thuốc, xác định duy nhất 1 hóa đơn, 1
khách hàng, 1 NV, 1 loại thuốc.
Một hóa đơn có thể có nhiều thuốc nhưng chỉ do một người mua và một nhân viên
bán.
Số CMT của NV-> Tên NV, Địa chỉ NV
1NF - Loại bỏ nhóm lặp và loại bỏ các thuộc tính tính toán.
Cần loại 2 thuộc tính tính toán sau: Tổng tiền hóa đơn và thành tiền. Vì đây chính là
dữ liệu dư thừa.
Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Tên Khách hàng, Số ĐT Khách
hàng, Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD,
Số lượng)
2NF - Loại bỏ các phụ thuộc hàm không hoàn toàn vào khóa chính
Quan hệ Hóa đơn chỉ có khóa đơn nên quan hệ này đã ở 2NF.
Xét quan hệ Hóa đơn - Thuốc : Tên thuốc, Công dụng, Ngày SX, Hạn SD chỉ phụ
thuộc vào Mã thuốc mà không phụ thuộc vào toàn khóa nên quan hệ này được tách
làm 2 quan hệ sau:
Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)
Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD)
Như vậy, ở dạng 2NF ta có 3 quan hệ:
Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Tên Khách hàng, Số ĐT Khách
hàng, Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)
Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD)
3NF - Loại bỏ các phụ thuộc hàm bắc cầu vào khóa chính
Ở quan hệ Hóa đơn, ta thấy Tên Khách hàng, Số ĐT Khách hàng chỉ phụ thuộc Mã
khách hàng. Số CMT của NV, Tên NV, Địa chỉ NV chỉ phụ thuộc mã nhân viên. Do
đó tách quan hệ này thành 3 quan hệ sau:
Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)
Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng)
Nhân viên(Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
Như vậy, ở 3NF, chúng ta có 5 quan hệ sau:
Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)
Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng)
Nhân viên(Mã Nhân viên, Số CMT của NV, Tên NV, Địa chỉ NV, Số ĐT NV)
Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)
Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD)
Tutorial 3 - Chuẩn hóa về BCNF Ở đây có giáo trình CSDL (Bằng Tiếng Anh)đề cập
về chuẩn hóa rất dễ hiểu. Trình bày khá sâu về anomaly, các dạng chuẩn giải quyết
anomaly như thế nào.
Nói chung thì chuẩn hóa CSDL là việc nên biết trong khi học , Vì ngoài thực tế nếu
mà đạt được chuẩn càng cao thì CSDL càng bị dư thừa - Tùy theo mục đích sử dụng
mà chuẩn hóa hay không ).
b.Nguyên tắc chuẩn hóa
 First Normal Form
 Second Normal Form
 Third Normal Form
 BCNF
 Fourth Normal Form Tuy nhiên, chúng ta chỉ tìm hiểu về 1NF, 2NF, 3NF, và
BCNF.

Second Normal Form (2NF)


Bảng ở dạng chuẩn 2NF Trước hết là phải chuẩn 1NF và không có phụ thuộc một
phần. Dữ liệu ở dạng chuẩn 1NF có dữ liệu dư thừa tăng, vì sẽ có nhiều cột có
cùng dữ liệu trong nhiều hàng nhưng mỗi hàng sẽ là duy nhất.
Third Normal Form (3NF)
Bảng ở dạng chuẩn 3NF Trước hết là phải chuẩn 2NF và không có phụ thuộc bắc
câù.
Boyce and Codd Normal Form (BCNF)
Boyce và Codd Form Form là phiên bản cao hơn của 3NF. Chuẩn này liên quan
đến một số loại dị thường không được xử lý bởi 3NF. Một bảng 3NF không có
nhiều khóa ứng viên chồng chéo được cho là trong BCNF. Để bảng là chuẩn
BCNF, các điều kiện sau phải được thỏa mãn:
R phải ở dạng chuẩn 3NF
Đối với mỗi phụ thuộc chức năng (X → Y), X phải là một siêu khóa.
c.Ứng dụng của việc chuẩn hóa
Dữ liệu tập trung lưu trữ ở một nơi: dù dữ liệu đó là dữ liệu gì, nằm ở phòng ban nào,
chi nhánh nào thì cũng phải lưu trữ trên một hệ thống phần mềm duy nhất.
Dữ liệu có tính nhất quán: đảm bảo tính duy nhất của dữ liệu, ví dụ chỉ có một khách
hàng tên Nguyễn Văn A với số điện thoại 0123456789 trên toàn bộ hệ thống.
Dữ liệu có tính chia sẻ: Dữ liệu có thể chia sẻ qua lại giữa người dùng, phòng ban và
chi nhánh.
Dữ liệu phải có tính kế thừa: Dữ liệu của chi nhánh này, phòng ban này thì chi nhánh
khác, phòng ban khác cũng có thể sử dụng lại.
Dữ liệu được phân quyền rõ ràng: Tuy dữ liệu có tính chia sẻ và kế thừa tuy nhiên
phải được phân quyền rõ ràng. Ví dụ: dữ liệu khách hàng của bộ phận bán hàng được
bộ phận CSKH sử dụng lại không có quyền cập nhật đơn hàng.
Dữ liệu phải được bảo mật: Cuối cùng dữ liệu cần phải được bảo mật trên toàn bộ hệ
thống. Tránh việc rò rỉ và mất cấp thông tin khách hàng.
3.5.Hệ thống quản trị SQL
a.Giới thiệu
SQL Server đã trở thành một trong những mối quan tâm hàng đầu của mọi người khi
tìm hiểu về công nghệ thông tin. SQL Server, viết tắt của Microsoft SQL Server hoặc
MS SQL Server, là một ứng dụng phần mềm do Microsoft phát triển. Nó được thiết kế
để quản lý và lưu trữ dữ liệu theo mô hình quan hệ RDBMS (Relational Database
Management System).
SQL, viết tắt của Structured Query Language, được hiểu đơn giản là ngôn ngữ truy
vấn cấu trúc dữ liệu. Đây là một loại ngôn ngữ lập trình được sử dụng để quản lý và
truy vấn cơ sở dữ liệu quan hệ. SQL cho phép bạn thực hiện các hoạt động như lưu
trữ, cập nhật, xóa, tìm kiếm, truy xuất dữ liệu, quản lý và tối ưu hóa hiệu suất của cơ
sở dữ liệu.
b.Thành phần của SQL
MS SQL Server bao gồm hai thành phần chính Database Engine và SQLOS (SQL
Server Operating System).
 Database Engine là thành phần trung tâm của SQL Server, chứa hai phần
chính: Relation Engine và Storage Engine. Relation Engine chịu trách nhiệm
xử lý các truy vấn từ người dùng và ứng dụng. Storage Engine, trong khi đó,
quản lý việc lưu trữ cơ sở dữ liệu bằng cách quản lý các tệp cơ sở dữ liệu, trang
dữ liệu, chỉ mục, và nhiều khía cạnh khác của dữ liệu.
 SQLOS, viết tắt của SQL Server Operating System, quản lý việc quản lý bộ
nhớ và I/O, lên lịch thực hiện các nhiệm vụ, và quản lý các khóa dữ liệu để
đảm bảo tính toàn vẹn và tránh xung đột dữ liệu khi có các thay đổi dữ liệu
đồng thời.
Server SQL được cấu tạo từ 7 thành phần khác nhau, mỗi thành phần mang một
chức năng riêng:
 Integration Services: Đây là một tập hợp cho đối tượng lập trình, nhằm thực
hiện các thao tác sao chép, di chuyển, chuyển đổi dữ liệu, các công cụ đồ
họa.
 Service Broker: Là một môi trường lập trình để tạo các ứng dụng.
 Database Engine: Mang nhiệm vụ lưu trữ dữ liệu dưới dạng table hay
support và có thể tự điều chỉnh được.
 Analysis Services: Đây là dịch vụ phân tích dữ liệu bởi kỹ thuật khai thác
hình khối đa chiều.
 Notification Services: Đây là nền tảng phát triển hay triển khai các ứng
dụng soạn và gửi thông báo. Thậm chí dịch vụ này cũng sẽ mang tính năng
là gửi thông báo đến tất cả người đăng ký sử dụng trên các thiết bị khác
nhau.
 Full Text Search Services: Là một thành phần đặc biệt trong việc truy vấn,
đánh giá các chỉ mục dữ liệu văn bản được lưu trữ ở trong database.
 Reporting Services: Là một công cụ mang chức năng tạo,triển khai và quán
lý các báo cáo cho Server và Client. Đây cũng chính là nền tảng thúc đẩy
xây dựng ứng dụng báo cáo.

c.Mục đích sử dụng SQL


Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu phổ biến được sử dụng chủ
yếu để lưu trữ và quản lý dữ liệu. Tuy nhiên, nó không chỉ giới hạn trong việc lưu trữ
dữ liệu mà còn mang lại một loạt tính năng và lợi ích giúp người dùng làm việc hiệu
quả hơn:
 Duy trì việc lưu trữ bền vững
 Tạo nhiều cơ sở dữ liệu
 Khả năng bảo mật cao
 Tạo báo cáo bằng SSRS (SQL Server Reporting Services)
 Các quá trình được thực hiện bằng SSIS (SQL Server Integration Services)
3.6 Mô tả chức năng hệ thống
a. Mô tả bài toán
Xây dựng một phần mềm quản lý nhà hàng để tối ưu quá trình quản lý và thanh toán
hóa đơn khách hàng. Phần mềm này cần có các chức năng sau:
Đăng nhập – Đăng ký
• Nhập thông tin khách hàng vào – nhận thông tin khách hàng
• Cho phép khách hàng sử dụng tài khoản theo ý muốn hay tạo tài khoản mới
• Cho phép khách hàng truy cập thông tin

Quản lý thông tin thực đơn:


• Nhập thông tin về các mục thực đơn bao gồm: mã thực đơn, tên thực đơn, đơn
giá, đơn vị tính.
• Tra cứu thông tin thực đơn.
• Quản lý thông tin nhân viên:
• Nhập thông tin về nhân viên bao gồm: mã nhân viên, họ tên, ngày sinh, tên
đăng nhập và mật khẩu (nếu có), quyền, công việc.
Tra cứu thông tin nhân viên.
• Phân công nhân viên vào các công việc cụ thể.
• Chức năng gọi món:
• Cho phép nhân viên gọi món khi có yêu cầu từ khách hàng.
Chức năng thanh toán:
• Thực hiện thanh toán hóa đơn khi được yêu cầu từ khách hàng.
Thống kê:

• Tạo ra báo cáo thống kê về doanh thu, số lượng khách đến, thức ăn và đồ uống
được bán nhiều nhất theo từng ngày, tháng, năm hoặc trong một khoảng thời gian nhất
định.
Yêu cầu kỹ thuật:

• Phần mềm cần được thiết kế để dễ sử dụng và hiệu quả trong việc quản lý và
thanh toán.
• Giao diện người dùng cần được thiết kế thân thiện và trực quan.
• Dữ liệu cần được lưu trữ một cách an toàn và có khả năng sao lưu để tránh mất
mát thông tin.
• Phải đảm bảo tính bảo mật của thông tin nhân viên và thanh toán của khách
hàng.

b.Yêu cầu chức năng


*Nhân viên và Khách Hàng
STT Chức năng Mô tả
1 Đăng Nhập Cho phép người dùng truy
cập
2 Đăng Ký Cho phép người dùng
khởi tạo tài khoản mới
3 Quên mật khẩu Cho phép người dùng đổi
password
4 Sửa thông tin Cho phép điều chỉnh
thông tin cá nhân
5 Xóa Cho phép người dùng
xóa sản phẩm trong giỏ
hàng hoặc mục hóa đơn
6 Lọc Sản phẩm Cho phép người dùng truy
cập để tìm kiếm sản phẩm
theo mong muốn
7 Hủy Hóa đơn Cho phép người dùng hủy
toàn bộ sản phẩm

*Admin ( Quản Lý)


STT Tên chức năng Mô tả
1 Đăng nhập Cho phép truy cập theo
dạng nhân sự đặc biệt
2 Tạo tài khoản cho nhân sự Cho phép admin tạo tài
khoản cho nhân viên
3 Xem lịch sử đơn hàng Cho phép admin theo dõi
4 Quản lý kho Điều chỉnh sản phẩm và
theo dõi kho hàng
Biểu mẫu để đăng nhập
 Nhân viên và khách hàng
User Miyamoth
Password 585
Quên mật khẩu
Đăng kí
Đăng nhập

 Admin
ID 0965467821221
Pass X45%TY

III.Mô Hình Thực Thể kết hợp E-R Đăng nhập

1.Thuyết minh mô hình E-R


Dựa trên những sơ đồ Use Case đã thực hiện, ta có thể xây dựng mô hình thực thể kết
hợp ER cho hệ thống quản lý nhà hàng như sau:

Hình 1. Mô tả bằng mô hình ER của cơ sở dữ liệu Quản Lý Gà Rán KFC


2.Mô tả các thuộc tính của các Thực thể
a.Mô tả

Hóa đơn:
 Mã hóa đơn (MAHD)
 Tổng tiền (TongTien)
 Thời gian (ThoiGian)
Chi tiết hóa đơn (ChiTietHoaDon)
 Thời gian (ThoiGian)
 Thành tiền (ThanhTien)
Sản phẩm:
 Mã sản phẩm (MASP)
 Tên (Tên)
 Giá bán (DonGia)
 Mô tả (MoTa)
Chi tiết hóa đơn:
 Số lượng (SoLuong)
 Thành tiền (ThanhTien)
Nhân viên :
 Mã nhân viên (MaNV)
 Tên(Ten)
 Số điện thoại (SDT)
 Ngày Sinh(NgaySinh)
 Giới Tính (GioiTinh)
 ChucVu
Phòng ban :
 Mã PB(MaPB)
 Địa chỉ (DiaDiem)
Loại SP:
 Mô tả (MoTa)
 Mã loại SP(Mã)
 Tên
b. Các mối quan hệ:
 Mối quan hệ một-nhiều:
 Một hóa đơn có thể có nhiều chi tiết hóa đơn.
 Một sản phẩm có thể xuất hiện trong nhiều chi tiết hóa đơn.
 Mối quan hệ nhiều-nhiều:
 Một nhân viên có thể bán nhiều hóa đơn.
 Một khách hàng có thể mua nhiều hóa đơn.
c. Các thuộc tính bổ sung:
 Có: Thuộc tính này có thể có giá trị "Có" hoặc "Không".
 Mô tả: Thuộc tính này mô tả thêm thông tin về đối tượng.
 Ngày sinh: Thuộc tính này lưu trữ ngày sinh của khách hàng hoặc nhân viên.
 Giới tính: Thuộc tính này lưu trữ giới tính của khách hàng hoặc nhân viên.
3.Mô tả mối quan hệ giữa tập thực thể
 Hóa đơn có thể có nhiều Chi tiết hóa đơn.
 Mỗi Chi tiết hóa đơn thuộc về một Hóa đơn.
 Mỗi Chi tiết hóa đơn liên quan đến một Sản phẩm.
 Sản phẩm có thể xuất hiện trong nhiều Chi tiết hóa đơn.
 Hóa đơn được tạo bởi một Nhân viên.
 Nhân viên có thể tạo nhiều Hóa đơn.
 Nhân viên thuộc về một Phòng ban.
 Phòng ban có thể có nhiều Nhân viên.
Ngoài ra:
 Thuộc: Mối quan hệ giữa Phòng ban và Nhân viên thể hiện sự quản lý.
 Có: Mối quan hệ giữa Sản phẩm và Loại sản phẩm thể hiện sự phân loại.
 Có: Mối quan hệ giữa Nhân viên và Chức vụ thể hiện vị trí công việc.
IV. Mô hình quan hệ
 NhanVien(maNV,NgaySinh,ChucVu,HoTen,GioiTinh,SDT)
 SanPham(maSP,Ten,Dongia,MoTa)
 LoaiSP(Mã,MoTa,Ten)
 KhachHang(MaKH, HoTenKH, DiaChi, SoDT )
 HoaDon(maHD,ThoiGian, TongTien)
 ChiTietHoaDon(Mã,maSP,Soluong, ThanhTien)
V.Chuẩn hóa dữ liệu
1. Tìm khóa:

Hóa đơn: {MAHD}


Chi tiết hóa đơn: {MAHD, MASP}
Sản phẩm: {MASP}
Nhân viên: {MaNV}
Khách hàng: {MAKH}
Loại sản phẩm: {MALSP}
Kết luận:
Mỗi thực thể đều có 1 khóa chính duy nhất.

2. Phân tích 3NF:

Xét PTH: MAHD → MaNV, TongTien, ThoiGian.

Vế trái chứa khóa {MAHD}.


Vế phải không là thuộc tính khóa.
Kết luận:

Q đạt 3NF.
3. Tìm phủ tối thiểu: F' = {MAHD → MaNV,MAHD → TongTien,MAHD →
ThoiGian,MASP → Ten,MASP → LoalSP,MASP → MoTa,MASP →
DonGia,MaNV → Ten,MaNV → ChucVu,MaNV → NgaySinh,MaNV →
GioiTinh,MaNV → SDT,MAKH → Ten,MAKH → DiaChi,MAKH → SDT,MALSP
→ Ten}

4. Phân rã:
Dựa vào phủ tối thiểu F':

Khóa ứng viên (TK):{MAHD, MASP, MaNV, MAKH, MALSP}


Bước 1 & 2:

Không thực hiện.


Bước 3:

Q1(MAHD, MaNV, TongTien, ThoiGian) với F1 = {MAHD → MaNV, MAHD →


TongTien, MAHD → ThoiGian}
Q2(MASP, Ten, LoalSP, MoTa, DonGia) với F2 = {MASP → Ten, MASP →
LoalSP, MASP → MoTa, MASP → DonGia}
Q3(MaNV, Ten, ChucVu, NgaySinh, GioiTinh, SDT) với F3 = {MaNV → Ten,
MaNV → ChucVu, MaNV → NgaySinh, MaNV → GioiTinh, MaNV → SDT}
Q4(MAKH, Ten, DiaChi, SDT) với F4 = {MAKH → Ten, MAKH → DiaChi,
MAKH → SDT}
Q5(MALSP, Ten) với F5 = {MALSP → Ten}
Bước 4:

Không cần bổ sung khóa vì mỗi Q đều có ít nhất 1 khóa.


Kết luận:

Phân rã: {Q1, Q2, Q3, Q4, Q5}


5.Chuẩn hóa
1. Xác định các thực thể và thuộc tính:
Hóa đơn:MAHD (Khóa chính)MaNV (Mã nhân viên)TongTien (Tổng tiền)ThoiGian
(Thời gian)
Sản phẩm:MASP (Khóa chính)TenSP (Tên sản phẩm)LoaiSP (Loại sản phẩm)DonGia
(Đơn giá)
Nhân viên:MaNV (Khóa chính)TenNV (Tên nhân viên)GioiTinh (Giới tính)
Khách hàng:MaKH (Khóa chính)TenKH (Tên khách hàng)DiaChi (Địa chỉ)SDT (Số
điện thoại)
Loại sản phẩm:MaLoaiSP (Khóa chính)TenLoaiSP (Tên loại sản phẩm)
2. Phân tích 3NF:
Xét các phụ thuộc hàm:
MAHD → MaNV, TongTien, ThoiGian
MASP → TenSP, LoaiSP, DonGia
MaNV → TenNV, GioiTinh
MAKH → TenKH, DiaChi, SDT
LoaiSP → TenLoaiSP
Kết luận:
Tất cả các phụ thuộc hàm đều thỏa mãn 3NF.
3. Tìm phủ tối thiểu:
Bước 1:
F' = F, tách F' thành tập phụ thuộc hàm mà vế phải chỉ có một thuộc tính:
F' = {MAHD → MaNV, MAHD → TongTien, MAHD → ThoiGian, MASP →
TenSP, MASP → LoaiSP, MASP → DonGia, MaNV → TenNV, MaNV → GioiTinh,
MAKH → TenKH, MAKH → DiaChi, MAKH → SDT, LoaiSP → TenLoaiSP}
Bước 2:
Loại bỏ các thuộc tính dư thừa:
F' = {MAHD → MaNV, MAHD → TongTien, MAHD → ThoiGian, MASP →
TenSP, MASP → LoaiSP, MASP → DonGia, MaNV → TenNV, MaNV → GioiTinh,
MAKH → TenKH, MAKH → DiaChi, MAKH → SDT, LoaiSP → TenLoaiSP}
Kết luận:
F' = {MAHD → MaNV, MAHD → TongTien, MAHD → ThoiGian, MASP →
TenSP, MASP → LoaiSP, MASP → DonGia, MaNV → TenNV, MaNV → GioiTinh,
MAKH → TenKH, MAKH → DiaChi, MAKH → SDT, LoaiSP → TenLoaiSP} là
phủ tối thiểu của F.
4. Phân rã:
Dựa vào phủ tối thiểu F':
Khóa ứng viên (TK): {MAHD, MASP, MaNV, MAKH, MaLoaiSP}
Bước 1 & 2:
Không thực hiện.
Bước 3:

Q1(MAHD, MaNV, TongTien, ThoiGian) với F1 = {MAHD → MaNV, MAHD →


TongTien, MAHD → ThoiGian}
Q2(MASP, TenSP, LoaiSP, DonGia) với F2 = {MASP → TenSP, MASP → LoaiSP,
MASP → DonGia}
Q3(MaNV, TenNV, GioiTinh) với F3 = {MaNV → TenNV, MaNV → GioiTinh}
Q4(MAKH, TenKH, DiaChi, SDT) với F4 = {MAKH → TenKH, MAKH → DiaChi,
MAKH → SDT}
Q5(MaLoaiSP, TenLoaiSP) với F5 = {LoaiSP → TenLoaiSP}
Bước 4:
Không cần bổ sung khóa vì mỗi Q đều có ít nhất 1 khóa.
Kết luận:
Phân rã: {Q1, Q2, Q3, Q4, Q5}

5.Sơ đồ chuẩn hóa


a. Sơ đồ ban đầu
 Hóa đơn (MAHD, MaNV, TongTien, ThoiGian)
 Chi tiết hóa đơn (MAHD, MASP, SoLuong, ThanhTien)
 Sản phẩm (MASP, Ten, LoaiSP, MoTa, DonGia)
 Nhân viên (MaNV, Ten, ChucVu, NgaySinh, GioiTinh, SDT)
 Khách hàng (MAKH, Ten, DiaChi, SDT)
 Loại sản phẩm (MALSP, Ten)
b.Sơ đồ chuẩn hóa 3NF
 Hóa đơn (MAHD, MaNV, TongTien, ThoiGian)
 Chi tiết hóa đơn (MAHD, MASP, SoLuong, ThanhTien)
 Sản phẩm (MASP, Ten, LoalSP, MoTa, DonGia)
 Nhân viên (MaNV, Ten)
 Chức vụ (MaCV, TenCV)
 Nhân viên_Chức vụ (MaNV, MaCV)
 Khách hàng (MAKH, Ten, DiaChi, SDT)
 Loại sản phẩm (MALSP, Ten)
c.Phân rã Q3:
 Q31(MaNV, Ten)
 Q32(MaNV, ChucVu, NgaySinh, GioiTinh, SDT)
Tạo bảng mới:
 Chức vụ (MaCV, TenCV)
 Nhân viên_Chức vụ (MaNV, MaCV)
Chuyển đổi mối quan hệ:
Nhân viên:
 Loại bỏ thuộc tính ChucVu, NgaySinh, GioiTinh, SDT
 Thêm thuộc tính MaCV
Chi tiết hóa đơn:
 Loại bỏ thuộc tính Ten

You might also like