CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan về đề tài 1.1.1 Tên đề tài “Quản lý bán hàng mỹ phẩm của cửa hàng Beauty Garden” 1.1.2 Giới thiệu đề tài Hiện nay, công nghệ thông tin được xem là một
Trang 1TRƯỜNG ĐẠI HỌC TÀI CHÍNH MARKETING
Mã lớp học phần: 2121112002902
Giảng viên hướng dẫn: Lê Thị Kim Thoa
Nhóm sinh viên thực hiện:
Phạm Thị Thanh Tuyền MSSV: 2021010337
Trang 2TRƯỜNG ĐẠI HỌC TÀI CHÍNH MARKETING
Mã lớp học phần: 2121112002902
Giảng viên hướng dẫn: Lê Thị Kim Thoa
Nhóm sinh viên thực hiện:
Phạm Thị Thanh Tuyền MSSV: 2021010337
Trang 3Trong suốt quá trình học tập và thực hành đồ án chúng em luôn được sự quan tâm, hướng dẫn và giúp đỡ tận tình của cô, cùng nhiều sự hỗ trợ từ bạn bè trong lớp
Lời đầu tiên chúng em xin bày tỏ lòng biết ơn sâu sắc và chân thành đối với cô vì sự giúp đỡ của cô đối với chúng em trong suốt những buổi học và cảm ơn cô đã hướng dẫn
và hỗ trợ chúng em hoàn thành được tốt bài đồ án kết thúc môn học này ạ
Qua thực hành đồ án, đã cho chúng em nhiều kiến thức và nhiều điều mới mẻ, bổ ích cho tương lai của chúng em rất nhiều
Vì kiến thức bản thân vẫn còn nhiều hạn chế, trong quá trình học tập, rèn luyện bản thân, không tránh khỏi những sai sót, kính mong cô cho chúng em nhiều ý kiến để chúng
em có thể rút ra được nhiều kinh nghiệm cho những đồ án tiếp theo ạ
Xin chân thành cảm ơn cô rất nhiều ạ!
Kí và ghi rõ họ tên
Lê Thị Yến Nhi Phạm Thị Thanh Tuyền
Trang 4Nhận xét của giảng viên Lê Thị Kim Thoa:
Chữ ký của giảng viên
Trang 5DANH MỤC TỪ VIẾT TẮT
Trang 6DANH MỤC THUẬT NGỮ ANH – VIỆT
SQL Database Engine Hệ quản trị cơ sở dữ liệu SQL
SQL Structured Query Language Ngôn ngữ truy vấn dữ liệu
Trang 7MỤC LỤC
CHƯƠNG 1: TỔNG QUAN 13
1.1 Tổng quan về đề tài Error! Bookmark not defined 1.1.1 Tên đề tài 13
1.1.2 Giới thiệu đề tài 13
1.2 Tính cấp thiết của đề tài 14
1.3 Phạm vi của đề tài 14
1.4 Công cụ thực hiện đề tài 14
1.5 Bố cục của đề tài 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.1 Mô tả hệ thống 15
2.2 SQL Sever 17
2.2.1 Tổng quan về SQL 17
2.2.1.1 Giới thiệu 17
2.2.1.2 Các thành phần SQL 18
2.2.1.3 Các tính năng và công cụ của SQL 19
2.2.1.4 Một số phiên bản SQL Server 19
2.2.3 Ưu điểm 20
2.2.4 Nhược điểm 20
CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 21
3.1 Mô hình dữ liệu mức quan niệm 21
3.1.1 Các tập thực thể 21
3.1.2 Xây dựng mô hình thực thể kết hợp 21
3.1.3 Mối kết hợp 25
3.2 Mô hình dữ liệu quan hệ 26
3.3 Ràng buộc dữ liệu 28
3.4 Cài đặt cơ sở dữ liệu 31
3.4.1 Tạo cơ sở dữ liệu 31
Trang 83.4.2 Kiểu dữ liệu trong SQL Server 31
3.4.2.1 Kiểu chuỗi 31
3.4.2.2 Kiểu số 32
3.4.3 Tạo bảng 32
3.4.4 Thêm dữ liệu - Insert 38
3.4.5 Cập nhật dữ liệu – Update 50
3.4.6 Xóa dữ liệu – Delete 51
CHƯƠNG 4: ỨNG DỤNG 52
4.1 Synonym 52
4.1.1 Cú pháp synonym 52
4.1.2 Áp dụng 52
4.2 Index 54
4.2.1 Cú pháp Index 54
4.2.2 Áp dụng 54
4.3 View 55
4.3.1 Cú pháp view 55
4.3.2 Áp dụng 56
4.4 Store Proceduce 58
4.4.1 Cú pháp Store Proceduce 58
4.4.2 Áp dụng 59
4.5 Function 63
4.5.1 Cú pháp function 63
4.5.2 Áp dụng 64
4.6 Trigger 65
4.6.1 Cú pháp trigger 65
4.6.2 Áp dụng 66
4.7 User 69
4.7.1 Cú pháp tạo user và cấp quyền 69
4.7.2 Áp dụng 70
Trang 94.8 Reporting Sevices/ Power View… 72
KẾT LUẬN 72 TÀI LIỆU THAM KHẢO 74
Trang 10DANH MỤC BẢNG BIỂU
Bảng 3 1: Bảng Khách hàng 21
Bảng 3 2: Bảng Nhân viên 21
Bảng 3 3: Bảng Sản phẩm 22
Bảng 3 4: Bảng Nhà cung cấp 23
Bảng 3 5: Bảng Phiếu nhập 23
Bảng 3 6: Bảng Phiếu xuất 24
Bảng 3 7: Bảng Loại sản phẩm 24
Bảng 3 8: Bảng CT phiếu nhập 25
Bảng 3 9: Bảng CT phiếu xuất 25
Bảng 3 10: Bảng kiểu chuỗi 31
Bảng 3 11: Bảng kiểu số 32
Trang 11DANH MỤC HÌNH ẢNH
Hình 2 1: Sơ đồ nghiệp vụ 1 17
Hình 2 2: Sơ đồ nghiệp vụ 2 17
Hình 3 1: Mô hình dữ liệu mức quan niệm 26
Hình 3 2: Mô hình dữ liệu quan hệ 27
Hình 3 3: Kết quả ràng buộc check 29
Hình 3 4: Kết quả ràng buộc unique 30
Hình 3 5: Kết quả ràng buộc not null 31
Hình 3 6: Tạo cơ sở dữ liệu 31
Hình 3 7: Bảng Khách hàng 33
Hình 3 8: Bảng Nhân viên 34
Hình 3 9: Bảng Nhà cung cấp 35
Hình 3 10: Bảng Loại sản phẩm 35
Hình 3 11: Bảng Sản phẩm 36
Hình 3 12: Bảng Phiếu nhập 36
Hình 3 13: Bảng CT phiếu nhập 37
Hình 3 14: Bảng Phiếu xuất 37
Hình 3 15: Bảng CT phiếu xuất 38
Hình 3 16: Dữ liệu Khách hàng 39
Hình 3 17: Dữ liệu Nhân viên 40
Hình 3 18: Dữ liệu Sản phẩm 42
Hình 3 19: Dữ liệu Loại sản phẩm 43
Hình 3 20: Dữ liệu Phiếu xuất 44
Hình 3 21: Dữ liệu Phiếu nhập 45
Hình 3 22: Dữ liệu CT phiếu nhập 47
Hình 3 23: Dữ liệu CT phiếu xuất 48
Hình 3 24: Dữ liệu Nhà cung cấp 50
Hình 3 25: Kết quả cập nhật dữ liệu 51
Hình 3 26: Kết quả xóa dữ liệu 52
Hình 4 1: Kết quả thực thi 53
Hình 4 2: Kết quả xóa synonym 53
Hình 4 3: Kết quả thực thi 54
Hình 4 4: Kết quả xóa synonym 54
Trang 12Hình 4 6: Kết quả thực thi 55
Hình 4 7: Kết quả thực thi 56
Hình 4 8: Kết quả thực thi 57
Hình 4 9: Kết quả thực thi 57
Hình 4 10: Kết quả thực thi 58
Hình 4 11: Kết quả thực thi 59
Hình 4 12: Kết quả thực thi 60
Hình 4 13: Kết quả thực thi 60
Hình 4 14: Kết quả tạo proc 61
Hình 4 15: Kết quả thực thi 62
Hình 4 16: Kết quả thực thi 62
Hình 4 17: Kết quả thực thi 63
Hình 4 18: Kết quả thực thi 65
Hình 4 19: Kết quả thực thi 65
Hình 4 20: Kết quả thực thi 66
Hình 4 21: Kết quả update_trigger 67
Hình 4 22: Kết quả thực thi 68
Hình 4 23: Kết quả update_ trigger 69
Hình 4 24: Tạo tài khoản user 71
Hình 4 25: Tạo tài khoản user 72
Trang 13CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan về đề tài
1.1.1 Tên đề tài
“Quản lý bán hàng mỹ phẩm của cửa hàng Beauty Garden”
1.1.2 Giới thiệu đề tài
Hiện nay, công nghệ thông tin được xem là một ngành mũi nhọn của các quốc gia, đặc biệt là các quốc gia đang phát triển, tiến hành công nghiệp hóa, hiện đại hóa như nước ta.Sự bùng nổ thông tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật số, yêu cầu muốn phát triển thì phải tin học hóa tất cả các ngành, các lĩnh vực
Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần mềm ngày càng trở nên phong phú,hoàn thiện hơn và hỗ trợ hiệu quả cho con người Các phần mềm hiện nay càng ngày càng mô phỏng được rất nhiều nghiệp vụ khó khăn, hỗ trợ cho người dùng thuận tiện sử dụng thời gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao Do vậy mà trong việc phát triển phần mềm, sự đòi hỏi không chỉ là sự chính xác, xử
lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng các yêu cầu khác như về tốc độ, giao diện thân thiện, mô hình hóa được thực tế vào máy tính để người sử dụng tiện lợi, quen thuộc, tính tương thích cao, bảo mật cao….Các phần mềm giúp tiết kiệm một lượng thời gian lớn,công sức của con người, và tăng độ chính xác và hiệu quả trong công việc Cùng với đó là sự phát triển của đời sống thì nhu cầu làm đẹp, chăm sóc bản thân của con người cũng được nâng cao, mà nhất là chị em phụ nữ Vì thế, nhiều loại mỹ phẩm ra đời nhằm giúp họ có thể chăm sóc được bản thân mình tốt hơn Hàng loạt các của hàng
mỹ phẩm ra xuất hiện với đa dạng các mặt hàng Vì thế vấn đề quản lý sẽ trở nên khó khăn hơn, nhất là khi có sự phát triển như vũ bảo của công nghệ thông tin, thì việc cần phần mềm quản lý chuyên nghiệp phục vụ cho nhu cầu quản lý trở nên cấp thiết hơn bao giờ hết
Trang 14Xuất phát từ nhu cầu thực tế trong cuộc sống như vậy, chúng em quyết định chọn đề tài “ Quản lý bán hàng mỹ phẩm của cửa hàng Beauty Garden” nhằm đáp ứng được việc quản lý các hàng mỹ phẩm hiện nay
1.2 Tính cấp thiết của đề tài
Hiện nay việc ứng dụng công nghệ thông tin vào đời sống không còn xa lạ đối với mỗi chúng ta Công nghệ thông tin với tốc dộ nhanh chóng, chính xác giúp con người rất nhiều trong các lĩnh vực, nhất là kinh doanh, lĩnh vực bán hàng mỹ phẩm cũng không ngoại lệ
Vì vậy, chúng em chọn đề tài này để thực hiện các nhu cầu quản lý, xử lý các thông tin cần thiết của việc bán hàng, giúp chúng được thực hiện nhanh chóng và chính xác hơn
1.3 Phạm vi của đề tài
Phạm vi nghiên cứu: Nghiên cứu dựa trên những cửa vừa và nhỏ đang phân phối các mặt hàng mỹ phẩm của Beauty Garden
Đối tượng nghiên cứu: Các mặt hàng, loại hàng mỹ phẩm trong các cửa hàng
1.4 Công cụ thực hiện đề tài
Công cụ thực hiện: Draw.io, SQL Server 2014…
1.5 Bố cục của đề tài
- Bố cục đề tài gồm 4 chương:
+ Chương 1: Tổng quan
+ Chương 2: Cơ sở lý thuyết
+ Chương 3: Thiết kế cơ sở dữ liệu
+ Chương 4: Ứng dụng
Trang 15CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Mô tả hệ thống
Quy trình bán hàng của công ty bắt đầu bằng việc nhận đơn hàng từ phía khách hàng nhận đơn đặt hàng từ khách hàng bằng điện thoại, trực tiếp, fax, e-mail , tiếp nhận thông tin về khách hàng, sản phẩm đặt hàng, và lưu trữ vào kho đơn đặt hàng, hẹn ngày đàm phán giữa hai bên Để đảm bảo cho quan hệ mua bán hàng diễn ra được chắc chắn (nhất
là đối với một số mặt hàng có giá trị và kỹ thuật cao) người mua cần phải đặt cọc trước một khoản tiền nhất định và gửi đến công ty theo quy ước của cả hai bên Người mua hàng có thể mua hàng ngay mà không cần thông qua đơn đặt hàng Nhân viên bán hàng phải luôn luôn xem xét tình trạng hàng hóa trong kho để đáp ứng những thông tin cần thiết khi tiếp nhận đơn đặt hàng Sau khi tiếp nhận đơn đặt hàng nhân viên có nhiệm vụ phải gom đơn đặt hàng trong ngày và kiểm tra tính hợp pháp của đơn đặt hàng
Hàng ngày nhân viên bán hàng phải xử lý những đơn đặt hàng đã đến hẹn Nếu không
có khách hàng (người đại diện) thì thực hiện việc tạm xóa đơn đặt hàng, và thực hiện loại
bỏ hoàn toàn sau đó nếu đơn đặt hàng đó không có giá trị Nếu có thì xử lý giống như với khách hàng thỏa thuận trực tiếp không thông qua việc đặt hàng: tiến hành thỏa thuận ngay và lập hóa đơn nếu có sự đồng ý của hai bên đồng thời thỏa thuận phương thức thanh toán phương thức thanh toán được áp dụng ở hai dạng: thanh toán ngay hoặc cho
nợ có thỏa thuận sau đó gửi hóa đơn đến kho để xuất hàng đồng tiến hành ký kết việc giao hàng và thanh toán (trừ đi số tiền khách được đặt cọc đối với đơn đặt hàng) Việc ký kết phải được tiến hành bởi: người bán hàng(người lập hóa đơn ), người giao hàng, người phụ trách kinh doanh và khách hàng
Đi kèm với hóa đơn bán hàng là phiếu bảo hành đối với sản phẩm đem bán Nhân viên phải viết phiếu bảo hành cho sản phẩm đó và giao cho khách hàng có sự ký kết của hai bên và vào sổ lưu
Sau khi bán hàng nhân viên phải tổng hợp thông tin và gửi lên phòng phụ trách kinh doanh của công ty do phòng kinh doanh của công ty phải thu thập các thông tin để kiểm
Trang 16tra và chuyển cho bộ phận admin dể admin cập nhật dữ liệu lên website đòng thời đánh giá tình hình kinh doanh chung của toàn công ty (Mô tả hệ thống quản lý bán hàng, 2015) Những yêu cầu đối với hệ thông tin (Mô tả hệ thống quản lý bán hàng, 2015):
- Tiếp nhận các đơn đặt hàng, đặt cọc và cho tất cả các đơn đó vào sổ lưu
- Tiếp nhận các hóa đơn bán hàng và lưu lại
- Làm phiếu bảo hành cho tất cả các mặt hàng và lưu vào sổ
- Tính toán tiền bán hàng, tiền nợ
- Theo dõi tình trạng của hàng hóa trong kho
- In báo cáo hàng ngày
Nghiệp vụ 1: Quy trình quản lý và nhập kho mỹ phẩm
Bước 1: Thông báo kế hoạch nhập mỹ phẩm
Bộ phận đề xuất khi có yêu cầu nhập liệu phục vụ cho hoạt động doanh nghiệp cần thông báo với các phòng ban khác như: kế toán, kho, phòng kế hoạch vật tư,… để kịp thời bố trí nhân sự và cập nhật thông tin
Bước 2: Kiểm tra hàng và đối chiếu
Thủ kho căn cứ vào đơn đặt hàng hoặc phiếu đề nghị mua hàng ban đầu, tiến hành đối chiếu với số lượng nguyên vật liệu nhập vào, đồng thời kiểm tra về chất lượng của chúng Nếu có hỏng hoặc kém chất lượng cần báo ngay cho nhà cung cấp để kịp thời khắc phục Sau đó nhận từ nhà cung cấp hóa đơn (phiếu giao nhận) của mặt hàng
Bước 3: Lập phiếu nhập kho
Phiếu nhập kho thường do thủ kho đảm nhận Phiếu nhập kho gồm 3 liên, có chữ ký xác nhận của thủ kho và bên giao hàng (hoặc có thêm kế toán) Một liên thủ kho lưu lại, một liên do kế toán giữ và liên cuối cùng đưa lại cho người giao hàng
Bước 4: Hoàn thành nhập kho
Trang 17Thủ kho bắt đầu tiến hành nhập kho nguyên vật liệu, sắp xếp vào các khu vực phù hợp sao cho hợp lý và thuận tiện khi lấy nguyên vật liệu, sau đó ghi nhận thông tin vào thẻ kho.
Tất cả thông tin của hàng hóa sau đó cần cập nhật ngay vào hệ thống quản lý kho hàng (excel hoặc phần mềm quản lý) (Quy trình quản lý kho, 2017)
Hình 2 1: Sơ đồ nghiệp vụ 1
Nghiệp vụ 2: Quy trình quản lý và xuất kho mỹ phẩm
Khi nhận được yêu cầu mỹ phẩm xuất ra khỏi kho, kế toán kho tiến hành kiểm tra tồn kho Nếu hàng thiếu cần thông báo ngay lại với đơn vị đề xuất.Nếu hàng đầy đủ thì bắt đầu thực hiện xuất kho thủ kho sẽ tạo phiếu xuất kho với số lượng các loại mỹ phẩm theo yêu cầu Phiếu xuất kho được lập dựa trên thông tin đơn hàng mà khách yêu cầu Sau khi phiếu xuất kho được duyệt, Thủ kho dựa vào thông tin trên phiếu để lấy chính xác những sản phẩm, nguyên vật liệu mà người mua cần và tiến hành xuất hàng cho người nhận Cập nhật thẻ kho và lưu chứng từ (Quy trình quản lý kho, 2017)
Trang 18- SQL Server 2000 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user
- SQL là viết tắt của Structure Query Language - ngôn ngữ hỏi có cấu trúc, nó là một hệ thống quản trị cơ sở dữ liệu nhiều người dùng kiểu Client Server Đây là một hệ thống cơ ban dùng lưu trữ dữ liệu cho hầu hết các ứng dụng lớn hiện nay
Và được sử dụng ở nhiều lĩnh vực Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual Basic, Oracle, visual C
2.2.1.2 Các thành phần SQL
Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine,
Integration Services, Notification Services, Full Text Search Service,…Tất cả kết hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc phân tích và lưu trữ dữ liệu trở nên dễ dàng hơn
- Database Engine: Đây là một engine có khả năng chứa dữ liệu ở các quy mô dưới dạng support và table Ngoài ra, nó còn có khả năng tự điều chỉnh ví dụ: trả lại tài nguyên cho hệ điều hành khi một user log off và sử dụng thêm các tài nguyên của máy khi cần
- Integration Services: là tập hợp các đối tượng lập trình và các công cụ đồ họa cho việc sao chép, di chuyển và chuyển đổi dữ liệu Khi bạn làm việc trong một công
ty lớn thì dữ liệu được lưu trữ ở nhiều nơi khác nhau như được chứa trong: Oracle, SQL Server, DB2, Microsoft Access, … và bạn chắc chắn sẽ có nhu cầu di chuyển
dữ liệu giữa các server này Ngoài ra, bạn còn muốn định dạng dữ liệu trước khi lưu vào database Chắc chắn Integration Services sẽ giúp bạn giải quyết được công việc này dễ dàng
- Analysis Services: Đây là một dịch vụ phân tích dữ liệu rất hay của Microsoft Dữ liệu khi được lưu trữ vào trong database mà bạn không thể lấy được những thông tin bổ ích thì coi như không có ý nghĩa gì Chính vì thế, công cụ này ra đời giúp
Trang 19bạn trong việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – Datamining và khái niệm hình khối nhiều chiều – Multi Dimendion cubes
- Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển khai các ứng dụng soạn và gửi thông báo Ngoài ra, dịch vụ này còn có chức năng gửi thông báo theo dịch thời đến hàng ngàn người dăng ký sử dụng trên nhiều loại thiết bị khác nhau
- Reporting Services: là một công cụ tạo, quản lý và triển khai báo cáo bao gồm: server và client Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo
- Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn và đánh chỉ mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu SQL Server
- Service Broker: là một môi trường lập trình cho việc tạo ra các ứng dụng trong việc nhảy qua các Instance (Tổng quan SQL Server, 2020)
2.2.1.3 Các tính năng và công cụ của SQL
- Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên Internet
- Cho phép kết nối với nhiều ngôn ngữ lập trình khác dùng xây dựng các ứng dụng đặc thù(Visual Basic, C, C#, ASP,ASP.NET,XML,…)
- Sử dụng câu lệnh truy vấn dữ liệu Transaction – SQL(Access là SQL ,Oracle là PL/SQL)
- Hỗ trợ mô hình Client/Server
- Dễ cài đặt, thích hợp trên hệ điều hành Windows
2.2.1.4 Một số phiên bản SQL Server
Trang 20- Có thể cài nhiều phiên bản MS SQL khác nhau trên cùng một máy tính
- Duy trì riêng biệt các môi trường sản xuất, phát triển, thử nghiệm
- Giảm thiểu các vấn đề tạm thời trên cơ sở dữ liệu
- Tách biệt các đặc quyền bảo mật
- Duy trì máy chủ dự phòng
2.2.4 Nhược điểm
- SQL Server chỉ chạy trên hệ điều hành Windows
- Cần thanh toán phí license để chạy nhiều CSDL (database)
Trang 21CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 3.1 Mô hình dữ liệu mức quan niệm
3.1.1 Các tập thực thể
- Mỗi thực thể chuyển thành một quan hệ cùng tên và danh sách thuộc tính
- Thuộc tính khóa trở thành khóa chính của quan hệ
Tên quan hệ : NHAN VIEN
Bảng 3 2: Bảng Nhân viên
Tên thuộc
tính
Tên kiểu dữ liệu
Độ dài Ràng buộc Chú thích
Trang 22Hoten nvarchar 30 Họ tên
Tên quan hệ: SAN PHAM
Ràng buộc Chú thích
Trang 23Tên quan hệ: NHA CUNG CAP
Ràng buộc Chú thích
cấp
Trang 24Tên quan hệ: PHIEU XUAT
Tên quan hệ: LOAI SAN PHAM
Tên quan hệ: CHI TIET PHIEU NHAP
Trang 25Tên quan hệ: CHI TIET PHIEU XUAT
3.1.3 Mối kết hợp
- Mối kết hợp 1 - 1 : Thuộc tính khóa bên này là khóa ngoại bên kia và ngược lại
- Mối kết hợp 1 – N : Thuộc tính khóa bên 1 làm khóa ngoại bên nhiều
Trang 26- Mối kết hợp N – N : Chuyển thành quan hệ mới có khóa chính gồm 2 thuộc tính khóa của 2 quan hệ, thuộc tính mối kết hợp (nếu có) trở thành thuộc tính của quan
hệ mới
Hình 3 1: Mô hình dữ liệu mức quan niệm
3.2 Mô hình dữ liệu quan hệ
Mô hình ERD của cơ sở dữ liệu quản lý cửa hàng Beauty Garden được mô tả như sau:
Trang 27Hình 3 2: Mô hình dữ liệu quan hệ
Chuyển đổi ERD sang mô hình dữ liệu quan hệ:
Khachhang (MaKH, TenKH, DiaChi, Ngaysinh, SoDT)
LoaiSP (MaLoaiHang, TenLoaiHang, Ghichu)
Nhanvien (MaNV, HoTen, GioiTinh, DiaChi, NgaySinh, DienThoai, Email, NoiSinh,
NgayVaoLam)
Nhacungcap (MaNCC, TenNCC, DiaChi, DienThoai, Email, Website)
Sanpham (MaSP, MaLoaiSP, TenSP, Donvitinh, Ghichu)
MaloaiSP tham chiếu đến LoaiSP (MaloaiSP)
Trang 28Phieunhap (SoPN, MaNV, MaNCC, NgayNhap, Ghichu)
MaNV tham chiếu đến Nhanvien (MaNV)
MaNCC tham chiếu đến Nhacungcap (MaNCC)
CTPhieunhap (MaSP, SoPN, Soluong, Gianhap)
MaSP tham chiếu đến Sanpham (MaSP)
SoPN tham chiếu đến Phieunhap (SoPN)
Phieuxuat (SoPX, MaNV, MaKH, NgayBan, Ghichu)
MaKH tham chiếu đến Khachhang (MaKH)
MaNV tham chiếu đến Nhanvien (MaNV)
CTPHIEUXUAT (SoPX, MaSP, SoLuong, Giaban)
MaSP tham chiếu đến Sanpham (MaSP)
SoPX tham chiếu đến Phieuxuat (SoPX)
3.3 Ràng buộc dữ liệu
Ràng buộc (Constraint) là các quy tắc được áp đặt cho các cột dữ liệu trên table
Chúng được sử dụng để giới hạn kiểu dữ liệu nhập vào một bảng Điều này đảm bảo tính chính xác và tính đáng tin cậy cho dữ liệu trong Database
Dưới đây là các ràng buộc có sẵn và được sử dụng phổ biến trong SQL
- Ràng buộc NOT NULL trong SQL: Bảo đảm một cột không thể có giá trị NULL
- Ràng buộc DEFAULT trong SQL: Cung cấp một giá trị mặc định cho cột khi không được xác định
- Ràng buộc UNIQUE trong SQL: Bảo đảm tất cả giá trị trong một cột là khác nhau
- Ràng buộc PRIMARY Key trong SQL: Mỗi hàng/bản ghi được nhận diện một cách duy nhất trong một bảng
Trang 29- Ràng buộc FOREIGN Key trong SQL: Mỗi hàng/bản ghi được nhận diện một cách duy nhất trong bất kỳ bảng nào
- Ràng buộc CHECK trong SQL: Bảo đảm tất cả giá trị trong một cột thỏa mãn các điều kiện nào đó
- Ràng buộc INDEX trong SQL: Sử dụng để tạo và lấy dữ liệu từ Database một cách nhanh chóng
Ràng buộc Check
Yêu cầu số lượng lớn nhập lớn hơn 0
CREATESCHEMA Test_Soluong ;
GO
CREATETABLE CTPhieunhap_SL(
MaSP INTIDENTITYPRIMARYKEY,
Soluong VARCHAR(255) NOTNULL,
Soluongnhap DEC(10,2)CHECK(Soluongnhap > 0)
Trang 30CREATETABLE unique_Nhanvien(
MaNV INTIDENTITYPRIMARYKEY,
HoTen VARCHAR(255)NOTNULL,
Email VARCHAR(255)UNIQUE
);
INSERTINTO unique_Nhanvien(Hoten, email)
VALUES('John','j.doe@bike.stores');
Kết quả
Hình 3 4: Kết quả ràng buộc unique
Ràng buộc Not Null
Tạo một bảng với ràng buộc not null cho các cột thuộc bảng Khachhang
CREATESCHEMA Khachhang;
GO
CREATETABLE hr_Khachhang(
MaKH INTIDENTITYPRIMARYKEY,
TenKH VARCHAR(255)NOTNULL,
Diachi VARCHAR(255) NOTNULL,
Email VARCHAR(255)NOTNULL,
SoDT VARCHAR(20)
);
Kết quả
Trang 31Hình 3 5: Kết quả ràng buộc not null
3.4 Cài đặt cơ sở dữ liệu
3.4.1 Tạo cơ sở dữ liệu
Cú pháp
Create Database <Tên_CSDL>
Áp dụng tạo cơ sở dữ liệu cho đề tài:
create database QLBHMyPham3
Hình 3 6: Tạo cơ sở dữ liệu
3.4.2 Kiểu dữ liệu trong SQL Server
3.4.2.1 Kiểu chuỗi
Bảng 3 10: Bảng kiểu chuỗi
char(n) Cố định độ rộng chuỗi Tối đa 8000 ký tự
varchar(n) Không cố định độ rộng chuỗi Tối đa 8000 ký tự
varchar(max) Không cố định độ rộng chuỗi Tối đa 1,073,741,824 ký tự
text Không cố định độ rộng chuỗi Tối đa 2GB dữ liệu văn bản
nchar(n) Tương tự kiểu dữ liệu char nhưng hỗ trợ Unicode
nvarchar(n) Tương tự kiểu dữ liệu varchar nhưng hỗ trợ Unicode
nvarchar(max) Tương tự kiểu dữ liệu varchar(max) nhưng hỗ trợ Unicode
Trang 32ntext Tương tự kiểu dữ liệu text nhưng hỗ trợ Unicode
Trang 33Primary key( Khóa chính ),
Foreign key ( Khóa ngoại ) references Bảng_Tham_Chiếu( Khóa ngoại ),
)
Trong đó , bảng tham chiếu phải tồn tại trước và có khóa chính tham gia là khóa ngoại trong bảng đang được tạo Nếu tạo bảng không có khóa ngoại thì loại bỏ dòng, foreign key( Khóa ngoại ) references Bảng_Tham_Chiếu( Khóa ngoại )
Áp dụng tạo bảng cho đề tài:
Bảng Khách Hàng
create table Khachhang (
MaKH nvarchar ( 4 ) primary key ,
TenKH nvarchar ( 30 ),
Diachi nvarchar ( 50 ) NULL,
Ngaysinh datetime NULL,
SoDT nvarchar ( 15 ) NULL
)
Hình 3 7: Bảng Khách hàng
Bảng Nhân Viên
create table Nhanvien (
MaNV nvarchar ( 4 ) primary key ,
HoTen nvarchar ( 30 ),
Trang 34GioiTinh bit ,
DiaChi nvarchar ( 50 ),
NgaySinh datetime ,
DienThoai nvarchar ( 15 ) NULL,
Email ntext NULL,
NoiSinh nvarchar ( 20 ),
NgayVaoLam datetime NULL,
MaNQL nvarchar ( 4 ) NULL
)
Hình 3 8: Bảng Nhân viên
Bảng Nhà Cung Cấp
create table Nhacungcap (
MaNCC nvarchar ( 5 ) primary key ,
Trang 35)
Hình 3 9: Bảng Nhà cung cấp
Bảng Loại Sản Phẩm
create table LoaiSP (
MaloaiSP nvarchar ( 4 ) primary key ,
create table Sanpham (
MaSP nvarchar ( 4 ) primary key ,
MaloaiSP nvarchar ( 4 ) REFERENCES LoaiSP ( MaloaiSP ),
TenSP nvarchar ( 50 ),
Donvitinh nvarchar ( 10 ),
Ghichu nvarchar ( 100 ) NULL
)
Trang 36Hình 3 11: Bảng Sản phẩm
Bảng Phiếu Nhập
create table Phieunhap (
SoPN nvarchar ( 5 ) primary key ,
MaNV nvarchar ( 4 ) REFERENCES Nhanvien ( MaNV )
MaNCC nvarchar ( 5 ) REFERENCES Nhacungcap ( MaNCC ),
Ngaynhap datetime ,
Ghichu nvarchar ( 100 ) NULL
)
Hình 3 12: Bảng Phiếu nhập
Bảng Chi Tiết Phiếu Nhập
create table CTPhieunhap (
MaSP nvarchar ( 4 ) REFERENCES Sanpham ( MaSP ),
SoPN nvarchar ( 5 ) REFERENCES Phieunhap ( SoPN ),
Soluong int not null,
Gianhap float not null,
Trang 37primary key ( MaSP , SoPN )
)
Hình 3 13: Bảng CT phiếu nhập
Bảng Phiếu Xuất
create table Phieuxuat (
SoPX nvarchar ( 5 ) primary key ,
MaNV nvarchar ( 4 ) REFERENCES Nhanvien ( MaNV ),
MaKH nvarchar ( 4 ) REFERENCES Khachhang ( MaKH ),
NgayBan datetime ,
Ghichu ntext NULL
)
Hình 3 14: Bảng Phiếu xuất
Bảng Chi Tiết Phiếu Xuất
create table CTPHIEUXUAT (
SoPX nvarchar ( 5 ) REFERENCES Phieuxuat ( SoPX ),
MaSP nvarchar ( 4 ) REFERENCES Sanpham ( MaSP ),