Để đáp ứng những nhu cầu cần thiết đó của con người, các ứng dụng trên các thiết bị Smart phone Pocket PC ngày càng đa dạng để phục vụ cho người sử dụng một cách tích cực và có hiệu quả
TÌM HIỂU VỀ POCKET PC
Đặc điểm
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Khả năng lập trình trên Pocket PC
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
2.1 Tốc độ và các hỗ trợ khả năng hiển thị
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
2.2 Khả năng và hình thức lưu trữ
Các Pocket PC thông thường có ROM ít nhất là 8MB, RAM ít nhất là 8 MB Các Pocket PC chuyên dụng có ROM ít nhất là 12MB, RAM ít nhất là 16MB Tuy nhiên, yêu cầu về dung lượng của RAM và ROM tùy thuộc vào loại CPU sử dụng, những thành phần mà nhà sản xuất hỗ trợ trên Pocket PC và tùy thuộc vào loại Pocket PC được sử dụng
Do hạn chế về nguồn năng lượng Pin và kích thước của thiết bị nên Pocket
PC không sử dụng các thiết bị lưu trữ như đĩa cứng hay đĩa mềm mà nó sử dụng cơ chế gọi là Bộ Lưu Trữ Đối Tượng Bộ Lưu Trữ Đối Tượng là một vùng RAM được người dùng định nghĩa , dùng để lưu trữ các tập tin, các thông tin các thanh ghi và cơ sở dữ liệu (gọi là Bộ Lưu Trữ Đối Tượng dạng dự trữ(Storage)) Vùng RAM còn lại dùng làm bộ nhớ cho các chương trình đang được thực thi (gọi là Bộ Lưu Trữ Đối Tượng dạng chương trình) Bộ Lưu Trữ Đối Tượng vẫn lưu giữ được thông tin của các ứng dụng và dữ liệu ngay cả khi năng lượng cung cấp chính bị mất từ nguồn Pin dự trữ Có thể xem Bộ Lưu Trữ Đối Tượng như là đĩa cứng trên thiết bị dùng Windows CE vì các người dùng đầu cuối không biết về Bộ Lưu Trữ Đối Tượng do Microsoft đã cung cấp trình WinCE Explorer để đọc nội dung của nó ( tương tự như Microsoft Windows Explorer để đọc nội dung của đĩa cứng trên máy Desktop PC)
Windows CE sử dụng các thư mục gốc cho việc cài dặt các thiết bị của người dùng Ví dụ, nếu người dùng gắn một thẻ flash vào máy, Windows CE sẽ tạo ra một thư mục /Storage Card 1 Cứ mỗi thẻ flash được gắn vào, con số này sẽ tăng lên (/Storage Card 2, ) Đường dẫn tới tập tin được giới hạn bởi MAX_PATH (có thể dài tối da 260 kí tự, giống như trên Windows) Tuy nhiên, trên Windows CE không có khái niệm thư mục hiện hành , ta phải truy xuất các tập tin bằng các đường dẫn đầy đủ của nó
Có thể xem cơ sở dữ liệu trên Windows CE như một dang tập tin đặc biệt Mỗi cơ sở dữ liệu có thể nằm trên các thiết bị ngoài như thẻ flash Khi sử dụng có thể truy xuất cơ sở dữ liệu để sử dụng trên thiết bị, cơ sở dữ liệu trên Windows CE hỗ trợ các thao tác: tạo, mở, ghi, sắp xếp, đọc dữ liệu, tìm kiếm dữ liệu trên cơ sở dữ liệu đó Sử dụng tập tin hay cơ sở dữ liệu là một vấn đề cần xem xét khi tổ chức lưu trữ dữ liệu trên Pocket PC
2.3 Tương tác giữa người dùng và thiết bị
Người sử dụng tương tác với thiết bị thông qua màn hình cảm ứng Không sử dụng bàn phím và chuột thông thường mà Pocket PC hỗ trợ nhập dữ liệu thông qua một bàn phím logic gọi là SIP (Soft Input Panel) Bàn phím luận lý này thực chất là một khung cửa sổ tồn tại trên màn hình , mô tả và sắp xếp các phím tương tự trên máy tính thông thường Người dùng sẽ giao tiếp với SIP thông qua ngón tay hoặc một cây bút vật lý, cho phép nhập dữ liệu bằng cách viết trực tiếp lên màn hình
Hinh2: Bàn phím của Pocket PC
Thay thế cho việc nhấn Enter hay nhấp đúp chuột, Pocket PC sử dụng cơ chế nhấn đơn lên màn hình cảm ứng Người dùng chỉ cần nhấn một lần lên một đối tượng hay liên kết nào đó, lúc đó hệ điều hành sẽ mở đối tượng hay liên kết tương ứng
Ngoài ra, để giao tiếp với ứng dụng, người dùng có thể nhấn-và-giữ.Đây là cơ chế có tác dụng tương tự như việc sử dụng thực đơn nội dung (Context menu) bằng cách nhấn chuột phải trên máy tính Khi người dùng nhấn-và-giữ trên một đối tượng , có thể một thực đơn (menu) hoặc một lời hướng dẫn (Tooltip) sẽ hiện ra, tùy theo đối tượng đó xử lý như thế nào
Các mặt hạn chế của Pocket PC:
- Hạn chế về năng lực xử lý và bộ nhớ
- Phải sử dụng nguồn năng lượng Pin
- Hiện tại, trên thị trường giá cả tương đối đắt.
TÌM HIỂU NET COMPACT FRAMEWORK
Mục đích thiết kế của hệ điều hành Windows CE
Khi bắt đầu tìm hiểu bất kỳ một công nghệ nào, chúng ta phải tìm hiểu những ý tưởng của quá trình phát triển công nghệ của tác giả là gì? Chúng ta bắt đầu với những mục đích của Windows CE Chúng ta phải hiểu những mục đích thiết kế của những đội ngũ phát triển của Windows CE Những mục đích này là một quy luật quan trọng, bởi vì chúng mêu tả những yêu cầu nhất định cho những đội ngũ phát triển sau phải theo đúng những qui luật đó
Một số đăc điểm của chung của Windows CE:
1.1 Tính nhỏ gọn Đây là đặc điểm đầu tiên và cũng rất quan trọng: Windows CE được xây dựng nhỏ Hệ điều hành Windows CE nhỏ nhất ít hơn 500k_ một hạt nhân nhỏ mà nó không thể hiện màn hình và không điều khiển những thiết bị, nó chỉ có thể hỗ trợ một file hệ thống, chạy những xử lý, những luồng, những thư viện liên kết động và truy xuất bộ nhớ Hạt nhân này không hỗ trợ đủ cho thư viện Win32 API để hỗ trợ CF, nhưng đủ cho những thiết bị đơn giản như một máy in nhỏ, hoặc một trình chơi nhạc di động
Một ảnh lớn hơn có thể chiếm từ 5 đến 10 Mb của bộ nhớ RAM_ đủ để hỗ trợ việc hiện thị màn hình và đủ cho một giao thức mạng chạy một trình duyệt Web Những thiết bị Pocket PC có thể hỗ trợ 32 Mb ( hoặc cao hơn), có thể chạy được những ứng dụng lớn hơn
Windows CE là một modular (những chức năng được chia nhỏ ra thành các module nhỏ, và thực hiện những chức năng riêng của nó), một ưu thế cần thiết bởi vì Windows CE có thể cấu hình được Không giống như những phiên bản của Windows trên PC, Windows CE tạo ra những module của chính nó (những tập tin chương trình như exe, những thư viện liên kết động dll), và một vài module được tạo bởi 2 hoặc nhiều hơn 2 thành phần ( mỗi module này chứa đựng những thư viện của Win32 hoặc những tính năng của hệ thống)
Khi thiết kế một thiết bị mới, những người thiết kế sử dụng công cụ của Microsoft được gọi là Platform Builder Platform Builder cho phép họ có thể tùy biến ảnh của hệ điều hành bằng cách thêm vào hay xóa ra những module trong số những module đa dạng của hệ điều hành mà chúng thật sự cần thiết cho thiết bị thông minh Platform Builder cho phép bạn có thể dễ dàng điều chỉnh những thành phần của một hệ điều hành để bạn có thể xây dựng những thành phần cần thiết
CF mang đến khái niêm về tính di động bằng cách hỗ trợ binary-portablity (tính linh hoạt nhị phân) giữa những nền xử lý khác nhau, điều này có nghĩa là chỉ cân xây dựng một lần, những chương trình đơn giản của CF (.exe) chạy không được tốt trên các nền tảng của CF với bất kỳ bộ xử lý nào, chứa đựng ARM, MIPS, SH3, SH4 và trên những CPU x86 Thêm vào đó những chương trình này cũng có thể chạy được trên PC với phiên bản của NET Framework 1.1
Bạn có thể chuyển đổi mã giữa PC và Windows CE, và giữa những thiết bị Windows CE được xây dựng trên nền tảng của những bộ xử lý trung tâm khác nhau
Tạo ra những giao diện lập trình phù hợp có nghĩa là tạo ra giao tiếp tương thích bên trong thiết bị Để làm điều này , những đội ngũ Windows CE mang đến khái niệm của sự tương thích ở một bước xa hơn, dễ dàng tạo ra sự tương thích để chia sẻ mã giữa PC và các thiết bị thông minh
Windows CE có thể làm cho các thiết bị thông minh kết nối tốt đến những thiết bị Windows CE khác, đến mạng cục bộ, (cả có dây và không dây dẫn), và kết nối đến internet
Sự quan tâm đến những vấn đề an toàn luôn luôn được đề cao khi có sự truyền thông trên internet Một Windows CE- thể hiện như là một thiết bị thông minh có thể tạo ra được sự an toàn, sự riêng biệt trên internet đến một mạng LAN sử dụng giao thức mạng ngang hàng Point-to-point Protocol (PPTP) để tạo ra sự an toàn của mạng riêng ảo (VPN) Trong số những tính năng mà Windows CE cung cấp cho việc an toàn trong truyền thông mạng là lớp Secure Socket Layer (SSL), hỗ trợ cho API mã hóa, và hỗ trợ tường lửa
Nói chung, khi có mối liên hệ giữa Client/ Server, Windows CE và Compact Framework hỗ trợ kết nối máy khách Ví dụ, Compact Framework hỗ trợ tạo dịch vụ Web XML của máy khách, nhưng không hỗ trợ dịch vụ Web Server của máy chủ
Khung Compact hỗ trợ nhiều mức cao của những lớp kế thừa mạng, như NET Framework hỗ trợ cả những TCP Socket và UDP Socket của máy khách Một điều thú vị là cả Compact Framework và NET Framework điều hỗ trợ cổng RS232 Các framework này hỗ trợ kết nối trực tiếp đến thiết bị RS232
Mục tiêu cuối cùng của Windows CE là hỗ trợ cho việc phát triển những hệ thống thời gian thực Trong thế giới của lập trình nhúng, ‘Real-time’ thích hợp hơn đối với những tính năng để thực thi một vài nhiệm vụ đặc biệt- tính một giá trị, ghi nhận lại một vài thao tác nhập liệu, hay gởi một lệnh đến một vài thiết bị bên ngoài- trong một khoảng thời gian đặc biệt Nhiều hệ thống yêu cầu một nhiêm vụ- hoặc một hệ thống những nhiệm vụ được thực hiện một cách nhất quán và đáng tin cậy, không có vấn đề gì khi chạy hệ thống
Bắt đầu với Windows CE 3.0, những người sáng lập ra Windows CE thiết lập một hệ thống những tính năng quan trọng để hỗ trợ cho việc phát triển những hệ thống thời gian thực Thêm vào đó, những tính năng này được hỗ trợ cho 256 luồng ưu tiên ( Windows CE luôn hỗ trợ lập trình đa luồng), và hỗ trợ cho những lời gọi ngắt lồng nhau
Thế giới của những hệ thống thời gian thực có thể được chia thành 2 loại: những yêu cầu cứng và những yêu cầu mềm Những yêu cầu phần mềm cho phép một vài giới hạn được bỏ qua trong một khoảng thời gian nào đó mà không có hậu quả nghiêm trọng Những yêu cầu cứng không chấp nhận một sự kiện đáp lại chậm trễ nào
Thành phần chính của NET Framework
Hình 3: Các thành phần chính của NET Framework
2.1 Các ứng dụng trên NET Được chia ra làm hai loại
- Dành cho Internet gọi là ASP.NET bao gồm có Web Forms và Web
- Dành cho máy tính để bàn gọi là Windows Forms, nó giống như Form của Visual Basic 6 và có hỗ trợ Unicode và thật sự hướng đối tượng Web Form có những thành phần điều khiển làm việc giống như các thành phần điều khiển trong Windows Forms, nhất là có thể dùng những đoạn mã để xử lý các sự kiện y hệt như các Windows Forms
2.2 Các lớp cơ bản của NET Framework(.NET Framework Base Classes)
ADO.NET là một loại bộ nhớ cơ sở dữ liệu nhỏ (gọi là cơ sở dữ liệu không được kết nối) để thay thế cho ADO Thay vì những trình ứng dụng kết nối vĩnh viễn với cơ sở dữ liệu gốc thông qua ADO, trình ứnh dụng trong NET làm việc với cơ sở dữ liệu có khả năng dịch chuyển (portable database) chỉ với hai bảng (là bản sao từ cơ sở dữ liệu gốc) Khi nào cần thì cơ sở dữ liệu có khả năng dịch chuyển này sẽ liên kết với cơ sở dữ liệu gốc để cập nhập các thay đổi Vì ADO.NET có chứa dữ liệu gốc lẫn dữ liệu mới nên Rollback trong ADO.NET sẽ rât dễ dàng
XML được hỗ trợ tối đa, nó có thể là những bảng trong ADO.NET hay các điểm trên hệ thống cây phân cấp trong mô hình đối tượng thư mục DOM (Document Object Model)
IO được hổ trợ bằng toàn bộ Stream kể cả Stream bộ nhớ và
StreamReader/StreamWriter Thêm vào đó là việc định dạng dữ liệu cho Serialisation để đưa đối tượng vào tập tin nhị phân hay tập tin văn bản
TCP/IP và HTTP là hai giao thức thông dụng nhất trong NET, chúng gọi một thủ tục điều khiển từ xa (nằm trên máy tính khác) dễ dàng như một thủ tục nội bộ Kỹ thuật này gọi là điều khiển từ xa (Remoting)
Security hỗ trợ mã hóa, phân quyền
Diagnostics cho ta gỡ rối (Debug) và tìm vết(Trace)
Threading rất tiện và đơn giản để thi hành các tiến trình nhỏ
2.3 Bộ triển khai ngôn ngữ thông thường (Common language Runtime)
Nhắm vào những mục tiêu chính sau
Việc triển khai đơn giản và nhanh hơn: các nhà phát triển phần mềm sẽ dành thời gian quyết định kết hợp những thành phần nào lại với nhau hơn là lập trình thật sự
Các thao tác thiết yếu như quản lý bộ nhớ, giao tiếp với các tiến trình v.v được sử lý tự động
Cài đặt đơn giản và an toàn
Trong đó, NET Compact Framework là một giao diện lập trình và những thư viện thông minh (Runtime Library) được tạo bởi sự kết hợp của hai công nghệ: Windows CE và NET nhằm phát triển giao diện và công cụ lập trình của Microsoft
3.1 Cấu trúc của NET Compact Framework:
Có thể nói đây là một trong những mục tiêu thiết kế của Compact Framework Để hỗ trợ mục tiêu này Microsoft đã tạo ra một cấu trúc
Hình 4:Cấu trúc của NET Compact Framework
3.1.1 Hệ điều hành máy tính (Host Operating System)
Việc xây dựng mã nguồn trong Compact Framework phải được thi hành trên hệ điều hành của máy Và thường thì Compact Framework chạy trên Windows CE 3.0 và Windows CE 4.1
PAL là thành phần đầu tiên mà tạo ra tính linh hoạt của hệ điều hành Về bản chất, PAL chứa một trong những hệ thống con mà cho thấy tính năng của hệ điều hành và phần cứng trong tập hợp các giao diện chương trình ứng dụng API (Application Program Interface) của NSL và EE.Ví dụ, PAL bao gồm giao diện của diver thiết bị, hệ thống quản lý bộ nhớ, bộ ngắt quảng và các cổng xuất nhập Tất cả các hệ thống con trên phải thi hành đầy đủ trên một thiết bị Để Compact Framework có thể chạy trên những thiết bị khác nhau, thì những hãng chế tạo thiết bị phải tích hợp PAL vào hệ điều hành cũng như phần cứng Tất nhiên, phụ thuộc vào sự hỗ trợ của hệ điều hành và đặc tính của thiết bị mà chức năng của PAL có thể hoặc không thể được ánh xạ đến hệ điều hành
3.1.3 Các thư viện hỗ trợ linh động (Native Support Libraries - NSLs):
Bởi vì không phải tất cả các thiết bị đều hỗ trợ cùng những dịch vụ giống nhau Compact Framework có một loạt các NSLs để thi hành những đặc tính mà Compact Framework yêu cầu bao gồm những tập tin của hệ điều hành, quản lý heap, mật mã và giao diện người dùng đồ họa (Graphical User Interface)
Những dịch vụ này sau đó sẽ gọi PAL để thi hành những hoạt động của chúng một cách xoay vòng bằng cách gọi EE như hình trên Một ví dụ điển hình là giao diện người dùng đồ họa hỗ trợ thi hành như một NSL mà được thể hiên trong những lớp của namespace System.Windows.Forms trong thư viện lớp của Compact Framework
EE cung cấp những dịch vụ giống nhau mà Common Language Runtime dành cho các trình ứng dụng trên Server bằng việc quản lý việc thi hành của các trình ứng dụng trên NET ngoài ra, bởi vì nó thi hành những chức năng này trong một môi trường cần có tài nguyên nên EE được thiết kế dựa trên việc kết hợp các ràng buộc của những tài nguyên này EE được viết bằng ngôn ngữ C và được thi hành trên cả hai DLL, là Mscoree.dll và Mscoree1_0.dll Để hiểu rõ hơn cách thức làm việc của EE thì danh sách một vài Core của EE:
Bộ nạp lớp(Class Loader): giống như desktop Framework, một đoạn mã phải được thi hành bởi Compact Framework đều phải đều phải được biên dịch thành lệnh MSIL Như tên của nó, bộ nạp lớp định vị và nạp những assemblies được yêu cầu để thi hành một ứng dụng Trước khi bộ nạp lớp có thể làm việc thì trình ứng dụng của Compact Framework phải được thi hành trên hệ điều hành của máy Lúc này, một tiến trình được tạo ra, và Mscoree.dll rồi sau đó là
Mscoree1_0.dll sẽ lần lượt được nạp bởi hệ điều hành vào tiến trình đó Và một vùng ứng dụng(Application Domain) được tạo ra, EE sẽ chuyển trình ứng dụng vào trong một vùng (Domain) đang chạy Cũng giống như vùng ứng dụng của desktop Framework được xem như một phương tiện cô lập những trình ứng dụng của Compact Framework chạy trong cùng một tiến trình Một lần nữa EE được yêu cầu, bộ nạp lớp có thể thi hành bằng cách thi hành những assemblies cần thiết để thi hành ứng dụng, nó làm điều này bằng cách kiểm tra các metadata trong asemblies đó Danh sách những assemlies được yêu cầu Custom assemblies do các nhà phát triển phần mềm tạo ra và assemblies trong Compact Framework như System.Windows.Forms Tóm lại, bộ nạp lớp sẽ xem xét số phiên bản của các assembly và nạp nó vào nếu chúng cùng một phiên bản Và bộ nạp lớp cũng hỗ trợ cách thi hành side-by-side, có nghĩa là một trình ứng dụng của Compact Framework sẽ luôn được thi hành trên phiên bản của EE trong khi EE đó được biên dịch
Bộ kiểm tra loại(Type Checker): sau khi bộ nạp lớp nạp những assemblies được yêu cầu, bộ kiểm tra loại được yêu cầu để kiểm tra nếu đọan mã MSIL được an toàn để thực thi Bằng cách này, Compact Framework cung cấp những loại thi hành an toàn như desktop Framework
Trình biên dịch JIT : khi bộ kiểm tra loại kiểm tra mã và thi hành thành công thì mã MSIL được JIT biên dịch để thi hành những chỉ lệnh trên CPU Trình biên dịch JIT của Compact Framework phải nhạy cảm với những ràng buộc của tài nguyên thiết bị và nó dùng kỹ thuật code-pitching để giải phóng bộ nhớ khi tài nguyên bị chiếm dụng nhiều Để làm việc này, chúng đánh dấu những phiên làm việc của đoạn mã mà JIT biên dịch
TÌM HIỂU MICROSOFT SQL SERVER CE
Tổng quan về SQL Server CE
Trên thiết bị di động có rất nhiều loại dữ liệu có thế sử dụng được, nhưng một trong số chúng ta sử dụng SQL Server CE Đây là dữ liệu của thiết bị di động được lập trình trên NETCF, là sự hỗ trợ đầy đủ của CF trong môi trường runtime và môi trường phát triển
1.1 Các tập tin của SQL Server CE
Mỗi dữ liệu của SQL Server CE được lưu trữ bởi một tập tin trên thiết bị CE của chúng ta Yêu cầu phần tên của dữ liệu phải có phần đuôi mở rộng là “.sdf”
Từ khi dữ liệu của SQL Server CE là những tập tin trong hệ thống tập tin của Windows CE, chúng ta có thể truy cập đến các lớp File và Directory
Vì vậy bạn có thể sao chép, xóa và kiểm tra sự tồn tại của nó
SQL Server CE chỉ cải thiện không gian lưu trữ trong những tập tin dữ liệu khi bạn có yêu cầu đến nó Để cải thiện không gian lưu trữ của một tập tin dữ liêu SQL Server CE bạn phải sử dụng phương thức Compact của lớp SqlCengine
1.2 Cú Pháp Của SQL Server CE
Lập trình SQL Server CE thì đơn giản hơn lập trình SQL Server bởi vì ngôn ngữ SQL được hỗ trơ bởi SQL Server CE là một tập hợp con của ngôn ngữ SQL trong SQL Server.Ví dụ, từ khi cơ sở dữ liệu SQL Server CE là một cơ sở dữ liệu cá nhân, tính bảo mật của nó được điều khiển bởi tập tin mật khẩu (file password), không có cần thiết cho GRANT, DENY,
Nó cũng bỏ qua những phần mở rộng Transact-SQL của SQL Server; không có procedure, trigger và cũng không có những khai báo DECLARE, SET, IF, WHILE Thậm chí một vài câu lệnh SQL tiêu chuẩn cũng bị bỏ quên, ví dụ như không hỗ trợ view Không phải tất cả các dữ liệu của SQL Server điều được dùng Ví dụ như Windows CE hỗ trợ Unicode cho chính nó, và những Unicode thì chỉ hỗ trợ những loại dữ liệu nchar, nvarchar, ntext
SQL Server CE cung cấp gì để hỗ trợ cho những table, index,default và tính đúng đắn của nó Nó cũng có chức năng để thêm, cập nhật, và xóa nhứng dòng dữ liệu trong những table sử dụng những câu SQL chuẩn DML(Data Manipulation Language) Vì thế, ứng dụng của bạn có thể thao tác dữ liệu trong SQL Server CE bằng cách kết nối đến tập tin dữ liệu và sử dụng INSERT, UPDATE và DELETE trên dữ liệu Bạn cũng có thể viết những câu lệnh DML của chính bạn.
Tìm hiểu về SQL SERVER CE QUERY ANALYZER
Công cụ tiện ích chính cho màn hình hiển thị các thông tin trong cơ sở dữ liệu và việc thực thi cơ sở dữ liệu SQL Server CE là SQL Server CE
Query Analyzer Nó giống như là bản sao của SQL Server 2000, SQL Server
CE Query Analyzer cung cấp những phương thức tiện lợi để tạo và submit các câu truy vấn đặc biệt
Sự cài đặt SQL Server CE phụ thuộc vào môi trường phát triển mà SQL Server CE được cài đặt Khi bạn cài đặt SQL Server CE, SQL Server
CE Query Analazer thì không được cài đặt mặc định trên thiết bị Nếu Query Analazer được cài đặt trên thiết bị sau đó bạn có thể chạy tập tin thi hành, Isqlw20.exe, từ Start menu hoặc từ thư mục ở nơi mà nó được cài đặt Ngoài ra, việc click trên database file từ bên trong File Explorer cũng mở được Query Analazer
Cú pháp của SQL được thiết lập chuẩn bởi ANSI (American National Standards Insiture) Cả SQL Server và SQL CE thì phục tùng cao với ANSI 92 SQL Server 2000 có một vài option (tuỳ chọn) cho việc chọn lựa giữa ANSI và các phiên bản SQL Server khác Các option không được hỗ trợ trong SQL CE; ANSI chỉ được chọn trong SQL Server CE
Query Analazer cho phép bạn thấy cấu trúc thông tin về cơ sơ dữ liệu, Query Analazer Form hiển thị một khung nhỏ Để đóng Query Analazer, chọn Tool Exit Để rõ hơn trong việc tạo một database, chúng ta viết một loạt các ứng dụng đơn giản bắt đầu với việc tạo database và xử lý và tạo các chỉ mục; truy lại, hiển thị và cập nhật dữ liệu ở bậc thứ 2; và sau đó sang bậc thứ 3 để tạo và sử dụng dữ liệu thiết lập, và kết nối dữ liệu
Hình 9: Thực thi truy vấn trong SQL CE
Tạo một tập tin dữ liệu SQL CE
Để tạo một SQL Server CE Database, dùng Engine class định vị trong System Data SqlServerce Mỗi SQL Server CE database là một tập tin đơn và các tập tin này bạn cần kể đối tượng engine là đường dẫn và tên của tập tin kia Ngoài ra, bạn có thể làm điều này trong lớp engine hoặc bằng cách thiết lập thuộc tính LocalConnectionString Trong một số trường hợp khác, bạn phải chỉ định tên tập tin trước để thực thi
CreateDatabase phương thức của lớp engine, do phương thức này không yêu cầu bất kỳ tham số nào.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Thông tin sản phẩm
Lưu trữ thông tin về sản phẩm là điều cần thiết Các thông tin này được lưu dưới dạng nội dung và hình ảnh, từ đây khách hàng có thể tìm hiểu về sản phẩm một cách trực quan và sinh động Và những hình ảnh này được lưu theo hình thức mỗi sản phẩm có thể có nhiều hình ảnh với nhiều khía cạnh của sản phẩm giúp khách hàng quan sát sản phẩm một cách cụ thể Từ đó, người dùng cũng như khách hàng sẽ có những ý kiến nhận xét về sản phẩm ấy.
Thông tin khách hàng
Khi có một yêu cầu mua bán từ khách hàng thì đầu tiên họ sẽ cung cấp các thông tin về bản thân như: họ tên, địa chỉ, điên thoại liên lạc Các thông tin này được lưu trữ và cập nhập cơ sở dữ liệu Từ đây, nhân viên sẽ lập một đơn đặt hàng với sản phẩm và số lượng rõ ràng.
Mô hình thực thể kết hợp
2.1 Các ký hiệu sử dụng:
Mỗi một đối tượng trong thực tế được thể hiện bằng một thực thể và chúng được mô tả bằng các ký hiệu sau:
Hai thực thể bất kỳ có thể có sự liên hệ với nhau, sự liên hệ này được mô tả bằng mối kết hợp giữa hai thực thể đó Một điều quan trọng là khi tham gia vào mối kết hợp thì cần phải biết số lượng thể hiện của chúng trong mối kết hợp là như thế nào
Ký hiệu mô tả mối liên hệ giữa hai thực thể :
2.2 Mô hình thực thể kết hợp
Hình 10: Mô hình thực thể kết hợp
Danh sách các đối tượng trong mô hình
3.1 Danh sách các thực thể
STT Tên đối tượng Diễn giải
1 NHOM_HANG Đối tượng nhóm hàng
2 LOAI_SP Đối tượng loại sản phẩm
3 SAN_PHAM Đối tượng sản phẩm
4 HINH_ANH Đối tượng hình ảnh
5 HANG_SX Đối tượng hãng sản xuất
6 KHUYEN_MAI Đối tượng khuyến mãi
7 CHI_TIET_KM Đối tượng chi tiết khuyến mãi
8 KHACH_HANG Đối tượng khách hàng
9 DON_DH Đối tượng đơn đặt hàng
10 CHI_TIET_DH Đối tượng chi tiết đơn đặt hàng
11 GHI_CHU Đối tượng ghi chú về sản phẩm
3.2 Mô tả chi tiết các mối kết hợp
3.2.1 Mối quan hệ giữa NHOM_HANG và LOAI_SP
Một nhóm hàng có một hoặc nhiều loại sản phẩm, một lọai sản phẩm chỉ thuộc duy nhất một nhóm hàng Do đó, quan hệ giữa nhóm hàng (NHOM_HANG) và loại sản phẩm (LOAI_SP): quan hệ 1 – n
3.2.2 Mối quan hệ giữa LOAI_SP và SAN_PHAM
Một loại sản phẩm có một hoặc nhiều sản phẩm, mỗi sản phẩm chỉ thuộc một loại sản phẩm Do đó, quan hệ giữa loại sản phẩm (LOAI_SP) và sản phẩm (SAN_PHAM): quan hệ 1 – n
3.2.3 Mối quan hệ giữa SAN_PHAM và HINH_ANH
Một sản phẩm có một hay nhiều hình ảnh, mỗi hình ảnh chỉ thuộc duy nhất một sản phẩm Do đó, quan hệ giữa sản phẩm (SAN_PHAM) và hình ảnh (HINH_ANH): quan hệ 1 - n
3.2.4 Mối quan hệ giữa HANG_SX và SAN_PHAM
Một hãng sản xuất có thể sản xuất một hay nhiều sản phẩm, mỗi sản phẩm chỉ thuộc duy nhất một nhà sản xuất Do đó, quan hệ giữa hãng sản xuất (HANG_SX) và sản phẩm (SAN_PHAM): quan hệ 1 - n
3.2.5 Mối quan hệ giữa SAN_PHAM và GHI_CHU
Một sản phẩm có một hay nhiều ghi chú, mỗi ghi chú chỉ thuộc duy nhất một sản phẩm Do đó, quan hệ giữa sản phẩm (SAN_PHAM) và ghi chú (GHI_CHU): quan hệ 1 - n
3.2.6 Mối quan hệ giữa SAN_PHAM và KHUYEN_MAI
Một sản phẩm không có khuyến mãi hay có tối đa n khuyến mãi, mỗi khuyến mãi không thuộc hay thuộc tối đa n khuyến mãi Do đó, quan hệ mới tên là CHI_TIET_KM được hình thành Bổ sung hai thuộc tính khóa chính của hai thực thể là SAN_PHAM và KHUYEN_MAI
CHI_TIET_KM ( MASP, MAKM, GIA_SAU_KM)
3.2.7 Mối quan hệ giữa SAN_PHAM và DON_DH
Một sản phẩm có một hay có tối đa n đơn đặt hàng, mỗi đơn đặt hàng có một hay thuộc tối đa n sản phẩm Do đó, một quan hệ mới tên là CHI_TIET_DDH được hình thành Bổ sung hai thuộc tính khóa chính của hai thực thể là SAN_PHAM và DON_DH Nên ta có:
CHI_TIET_DDH ( MADH, MASP, SO_LUONG)
3.2.8 Mối quan hệ giữa KHACH_HANG và DON_DH
Một khách hàng có một hay nhiều đơn đặt hàng, mỗi đơn đặt hàng có một khách hàng duy nhất Do đó, một quan hệ giữa khách hàng (KHACH_HANG) và đơn đặt hàng (DON_DH): quan hệ 1 - n.
Mô tả chi tiết các thuộc tính của thực thể
Hình 11: Chi tiết thuộc tính thực thể
- Tên thực thể: NHOM_HANG
Mỗi thể hiện của loại thực thể NHOM_HANG là một đối tượng trong hệ thống, nó được xác định bởi một mã nhóm hàng duy nhất (MA_NH) Mã nhóm hàng này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa nhóm hàng Mỗi nhóm hàng, ngoài mã nhóm hàng còn có tên nhóm hàng (TEN_NH)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_NH Chuỗi Khóa chính Mã nhóm hàng
2 TEN_NH Chuỗi Bắt buộc Tên của nhóm hàng
- Tên thực thể: LOAI_SP
- Diễn giải: loại sản phẩm
Mỗi thể hiện của loại thực thể LOAI_SP là một đối tượng trong hệ thống, nó được xác định bởi một mã loại sản phẩm duy nhất (MA_LOAI) Mã loại sản phẩm này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa loại sản phẩm Mỗi loại sản phẩm., ngoài mã loại sản phẩm còn có tên loại sản phẩm (TEN_LOAI)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_LOAI Chuỗi Khóa chính Mã loại sản phẩm
2 TEN_LOAI Chuỗi Bắt buộc Tên loại sản phẩm
- Tên thực thể: SAN_PHAM
Mỗi thể hiện của loại thực thể SAN_PHAM là một đối tượng trong hệ thống, nó được xác định bởi một mã sản phẩm duy nhất (MA_SP) Mã sản phẩm này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa sản phẩm Mỗi sản phẩm, ngoài mã sản phẩm còn có tên sản phẩm (TEN_SP), giá cả (GIA), tính năng vượt trội (TINH_NANG_VT), tính năng thông thường(TINH_NANG)
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 MA_SP Chuỗi Khóa chính Mã sản phẩm
2 TEN_SP Chuỗi Bắt buộc Tên sản phẩm
3 GIA Số Bắt buộc Giá sản phẩm
4 TINH_NANG_VT Chuỗi Không bắt buộc Tính năng vượt trội
5 TINH_NANG Chuỗi Bắt buộc Tính năng
- Tên thực thể: HANG_SX
- Diễn giải: hãng sản xuất
Mỗi thể hiện của loại thực thể HANG_SX là một đối tượng trong hệ thống, nó được xác định bởi một mã hãng sản xuất duy nhất (MA_HANG) Mã hãng sản xuất này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa hãng sản xuất Mỗi hãng sản xuất, ngoài mã hãng sản xuất còn có tên hãng sản xuất (TEN_HANG) Bảng thuộc tính:
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_HANG Chuỗi Khóa chính Mã hãng sản xuất
2 TEN_HANG Chuỗi Bắt buộc Tên hãng sản xuất
- Tên thực thể: HINH_ANH
Mỗi thể hiện của loại thực thể HINH_ANH là một đối tượng trong hệ thống, nó được xác định bởi một mã hình ảnh (MA_HA) Mã hình ảnh này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa hình ảnh Mỗi hình ảnh, ngoài mã hình ảnh còn có tên hình ảnh (TEN_HA)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_HA Chuỗi Khóa chính Mã hình ảnh
2 TEN_HA Chuỗi Bắt buộc Tên hình ảnh
- Tên thực thể: KHUYEN_MAI
Mỗi thể hiện của loại thực thể KHUYEN_MAI là một đối tượng trong hệ thống, nó được xác định bởi một mã khuyến mãi duy nhất (MA_KM) Mã khuyến mãi này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa khuyến mãi Mỗi khuyến mãi, ngoài mã khuyến mãi còn có ngày bắt đầu (NGAY_BD), ngày kết thúc (NGAY_KT)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_KM Chuỗi Khóa chính Mã khuyến mãi
2 NGAY_BD Chuỗi Bắt buộc Ngày bắt đầu
3 NGAY_KT Chuỗi Bắt buộc Ngày kết thúc
4.7 Thực thể CHI_TIET_KM
- Tên thực thể: CHI_TIET_KM
- Diễn giải: chi tiết khuyến mãi
Mỗi thể hiện của loại thực thể CHI_TIET_KM là một đối tượng trong hệ thống, nó được xác định bởi một mã khuyến mãi (MA_KM) và mã sản phẩm (MA_SP) Mã khuyến mãi và mã sản phẩm này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa chi tiết khuyến mãi Mỗi chi tiết khuyến mãi, ngoài mã khuyến mãi và mã sản phẩm còn có hình thức khuyến mãi (HINH_THUC_KM), số lượng khuyên mãi (SO_LUONG_KM), bao nhiêu phầm trăm (CHIET_KHAU)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_KM Chuỗi Khóa chính Mã khuyến mãi
2 MA_SP Chuỗi Khóa chính Mã sản phẩm
3 HINH_THUC_KM Chuỗi Bắt buôc Hình thức khuyến mãi
4 SO_LUONG_KM Số Bắt buộc Số lượng khuyến mãi
5 CHIET_KHAU Số Bắt buộc Chiiết khấu bao nhiêu
- Tên thực thể: KHACH_HANG
Mỗi thể hiện của loại thực thể KHACH_HANG là một đối tượng trong hệ thống, nó được xác định bởi một mã khách hàng duy nhất (MA_KH) Mã khách hàng này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa khách hàng Mỗi khách hàng, ngoài mã khách hàng còn có họ tên khách hàng ( HO_TEN), địa chỉ (DIA_CHI), điện thoại liên lạc(DIEN_THOAI)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_KH Chuỗi Khóa chính Mã khách hàng
2 HO_TEN Chuỗi Bắt buộc Họ tên khách hàng
3 DIA_CHI Chuỗi Bắt buôc Địa chỉ khách hàng
4 DIEN_THOAI Chuỗi Không bắt buộc Điện thoại khách hàng
- Tên thực thể: DON_DH
- Diễn giải: đơn dặt hàng
Mỗi thể hiện của loại thực thể DON_DH là một đối tượng trong hệ thống, nó được xác định bởi một mã nhóm hàng duy nhất
(MA_DH) Mã đơn dặt hàng này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa đơn dặt hàng Mỗi đơn dặt hàng, ngoài mã đơn dặt hàng còn có, ngày đặt hàng (NGAY_DH)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_DH Chuỗi Khóa chính Mã đơn dặt hàng
2 NGAY_DH Chuỗi Bắt buộc Ngày đặt hàng
4.10 Thực thể CHI_TIET_DH
- Tên thực thể: CHI_TIET_DH
- Diễn giải: chi tiết đơn đặt hàng
Mỗi thể hiện của loại thực thể CHI_TIET_DH là một đối tượng trong hệ thống, nó được xác định bởi một mã đơn đặt hàng (MA_DH) và mã sản phẩm (MA_SP) Mã đơn đặt hàng và mã sản phẩm được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa nhóm hàng Mỗi chi tiết đơn đặt hàng, ngoài mã đơn đặt hàng và mã sản phẩm còn có số lượng sản phẩm muốn mua (SO_LUONG)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_DH Chuỗi Khóa chính Mã đơn đặt hàng
2 MA_SP Chuỗi Khóa chính Mã sản phẩm
3 SO_LUONG Số Bắt buộc Số lượng hàng
- Tên thực thể: GHI_CHU
Mỗi thể hiện của loại thực thể GHI_CHU là một đối tượng trong hệ thống, nó được xác định bởi một mã ghi chú về sản phẩm (MA_GC) Mã ghi chú về sản phẩm này được hệ thống cập nhật khi người dùng thêm mới hoặc xoá, sửa ghi chú về sản phẩm Mỗi ghi chú về sản phẩm, ngoài mã ghi chú về sản phẩm còn có ghi chú (GHI_CHU) và ý kiến khách hàng về sản phẩm đó (Y_KIEN_KH)
STT Thuộc tính Kiểu DL Ràng buộc Ý nghĩa
1 MA_GC Chuỗi Khóa chính Mã ghi chú
2 GHI_CHU Chuỗi Bắt buộc Ghi chú của nhân viên
3 Y_KIEN_KH Chuỗi Không bắt buộc Ý kiến khách hàng
Mô tả chi tiết thuộc tính của mối kết hợp (quan hệ)
5.1 Phân rã thành mô hình quan hệ
Từ mô hình thực thể kết hợp là mô hình biểu hiện tất cả các đối tượng Mỗi đối tượng là một thể hiện Bây giờ, chúng ta sẽ đi vào xét mối quan hệ của từng đối tượng cụ thể như sau:
Như vậy, các quan hệ của đối tượng là:
NHOM_HANG (MA_NH, TEN_NH)
LOAI_SP (MA_LOAI, TEN_LOAI)
SAN_PHAM (MA_SP, TEN_SP, GIA, TINH_NANG_VT,
HANG_SX (MA_HANG, TEN_HANG)
HINH_ANH (MA_HA, TEN_HA)
KHUYEN_MAI (MA_KM, NGAY_BD, NGAY_KT)
CHI_TIET_KM (MA_KM, MA_SP, HINH_THUC_KM,
SO_LUONG_KM, CHIET_KHAU)
KHACH_HANG (MA_KH, HO_TEN, DIA_CHI, DIEN_THOAI)
DON_DH (MA_DH, NGAY_DH)
CHI_TIET_DH (MA_DH, MA_SP, SO_LUONG)
GHI_CHU (MA_GC, GHI_CHU, Y_KIEN_KH)
5.2 Các lược đồ quan hệ
NHOM_HANG (MA_NH, TEN_NH)
Mô tả : mỗi nhóm hàng (NHOM_HANG) có một mã nhóm hàng (MA_NH) duy nhất để phân biệt với các nhóm hàng khác và một tên nhóm hàng (TEN_NH)
LOAI_SP (MA_LOAI, MA_NH, TEN_LOAI)
Mô tả : mỗi loại sản phẩm (LOAI_SP) có một mã loại sản phẩm (MA_LOAI) duy nhất để phân biệt với các loại sản phẩm khác và một tên loại sản phẩm (TEN_LOAI)
MA_NH : cho biết loại sản phẩm thuộc nhóm hàng nào
SAN_PHAM (MA_SP, MA_LOAI, MA_HANG, TEN_SP, GIA,
TINH_NANG_VT, TINH_NANG)
Mô tả : mỗi sản phẩm (SAN_PHAM) có một mã sản phẩm (MA_SP) duy nhất để phân biệt với các sản phẩm khác và tên sản phẩm (TEN_SP), giá (GIA), tính năng vượt trội (TỊNH_NANG_VT), tính năng (TINH_NANG)
MA_LOAI : cho biết một sản phẩm thuộc loại sản phẩm nào
MA_HANG : cho biết sản phẩm có tên hãng sản xuất gì
HANG_SX (MA_HANG, TEN_HANG)
Mô tả : mỗi hãng sản xuất (HANG_SX) có một mã hãng sản xuất (MA_HANG) duy nhất để phân biệt với các hãng sản xuất khác và một tên hãng sản xuất (TEN_HANG)
HINH_ANH (MA_HA, MA_SP, TEN_HA)
Mô tả : mỗi hình ảnh (HINH_ANH) có một mã hình ảnh (MA_HA) duy nhất để phân biệt với các hình ảnh khác và một tên hình ảnh (TEN_HA)
MA_SP : cho biết hình ảnh nào thuộc sản phẩm nào
GHI_CHU (MA_GC, MA_SP, GHI_CHU, Y_KIEN_KH)
Mô tả : mỗi ghi chú về sản phẩm (GHI_CHU) có một mã ghi chú về sản phẩm đó (MA_GH) duy nhất để phân biệt với các ghi chú khác và một ghi chú của nhân viên (GHI_CHU), ý kiến khách hàng (Y_KIEN_KH)
MA_SP : cho biết ghi chú nào thuộc sản phẩm nào
KHUYEN_MAI (MA_KM, NGAY_BD, NGAY_KT)
Mô tả : mỗi khuyến mãi (KHUYEN_MAI) có một mã khuyến mãi(MA_KM) duy nhất để phân biệt với các khuyến mãi khác và ngày bắt đầu (NGAY_BD), ngày kết thúc (NGAY_KT)
CHI_TIET_KM (MA_KM, MA_SP, HINH_THUC_KM,
SO_LUONG_KM, CHIET_KHAU)
Mô tả : mỗi chi tiết khuyến mãi (CHI_TIET_KM) có một mã sản phẩm (MA_SP) và mã khuyến mãi để phân biệt với các chi tếi khuyến mãi khác và một hình thức khuyến mãi (HINH_THUC_KM), số lượng khuyến mãi (SO_LUONG_KM), bao nhiêu phầm trăm (CHIET_KHAU)
KHACH_HANG (MA_KH, HO_TEN, DIA_CHI, DIEN_THOAI)
Mô tả : mỗi loại khách hàng (KHACH_HANG) có một mã khách hàng (MA_KH) duy nhất để phân biệt với các khách hàng khác và tên khách hàng (HO_TEN), địa chỉ (DIA_CHI), điện thoại (DIEN_THOAI)
DON_DH (MA_DH, MA_KH, NGAY_DH)
Mô tả : mỗi đơn đặt hàng (DON_DH) có một mã đơn đặt hàng (MA_DH) duy nhất để phân biệt với các đơn đặt hàng khác và một ngày làm đơn đặt hàng (NGAY_DH)
MA_KH : cho biết đơn đặt hàng nào của khách hàng nào
CHI_TIET_DH (MA_DH, MA_SP, SO_LUONG)
Mô tả : mỗi chi tiết đơn đặt hàng (CHI_TIET_DH) có một mã đơn đặt hàng (MA_DH) và một mã sản phẩm (MA_SP) để phân biệt với các chi tiết đơn đặt hàng và số lượng sản phẩm muốn đặt (SO_LUONG).
Ràng buộc toàn vẹn
6 1 Ràng buộc toàn vẹn trên một quan hệ
6.1.1 Ràng buộc toàn vẹn liên quan đến miền giá trị
+ Ràng buộc : MA_NH phải khác rỗng
+ Ràng buộc : MA_LOAI phải khác rỗng
+ Ràng buộc : MA_SP phải khác rỗng
+ Ràng buộc : MA_HANG phải khác rỗng
+ Ràng buộc : MA_HA phải khác rỗng
+ Ràng buộc : MA_GC phải khác rỗng
+ Ràng buộc : MA_KM phải khác rỗng
+ Ràng buộc : MA_KH phải khác rỗng
+ Ràng buộc : MA_DH phải khác rỗng
6.1.2 Ràng buộc toàn vẹn liên bộ (ràng buộc khoá chính)
Mô tả: ràng buộc khoá chính
t1, t2 NHOM_HANG: t1 t2 t1[MA_NH] t2[MA_NH] Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 LOAI_SP: t1 t2 t1[MA_LOAI] t2[MA_LOAI] Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 SAN_PHAM: t1 t2 t1[MA_SP] t2[MA_SP] Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 HANG_SX: t1 t2 t1[MA_HANG] t2[MA_HANG]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 HINH_ANH: t1 t2 t1[MA_HA] t2[MA_HA] Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 GHI_CHU: t1 t2 t1[MA_GC] t2[MA_GC]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 KHUYEN_MAI: t1 t2 t1[MA_KM] t2[MA_KM] Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 KHACH_HANG: t1 t2 t1[MA_KH] t2[MA_KH] Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Mô tả: ràng buộc khoá chính
t1, t2 DON_DH: t1 t2 t1[MA_DH] t2[MA_DH]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ KHACH_HANG, DON_DH và CHI_TIET_DH
Bối cảnh: KHACH_HANG, DON_DH và CHI_TIET_DH
Mô tả: ràng buộc khoá chính
Với mỗi mã đơn đặt hàng trong thực thể Chi Tiết Đơn Đặt Hàng phải nằm trong mã đơn đặt hàng trong thực thể Đơn Đặt Hàng
Với mỗi mã sản phẩm trong thực thể Chi Tiết Đơn Đặt Hàng phải nằm trong mã sản phẩm trong thực thể Sản Phẩm
t SAN_PHAM và g DON_DH , s CHI_TIET_DH s[MA_SP] t[MA_SP] và s[MA_DH] g[MA_DH]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ SAN_PHAM, KHUYEN_MAI và CHI_TIET_KM
Bối cảnh: SAN_PHAM, KHUYEN_MAI và CHI_TIET_KM
Mô tả: ràng buộc khoá chính
Với mỗi mã khuyến mãi trong thực thể Chi Tiết Khuyến Mãi phải nằm trong mã khuyến mãi trong thực thể Khuyến Mãi
Với mỗi mã sản phẩm trong thực thể Chi Tiết Khuyến Mãi phải nằm trong mã sản phẩm trong thực thể Sản Phẩm
t SAN_PHAM và g KHUYEN_MAI , s CHI_TIET_KM s[MA_SP] t[MA_SP] và s[MA_KM] g[MA_KM]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
6.2 Ràng buộc toàn vẹn trên nhiều quan hệ
6.2.1 Ràng buộc toàn vẹn phụ thuộc khóa ngoại
+ NHOM_HANG và LOAI_SP
Bối cảnh: NHOM_HANG và LOAI_SP
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã nhóm hàng trong thực thể Loại Sản Phẩm phải nằm trong mã nhóm hàng trong thực thể Nhóm hàng
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ LOAI_SP và SAN_PHAM
Bối cảnh: LOAI_SP và SAN_PHAM
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã loại sản xuất trong thực thể Sản Phẩm phải nằm trong mã loại sản xuất trong thực thể Loại Sản Phẩm
t LOAI_SP, s SAN_PHAM s[MA_LOAI] t[MA_LOAI]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ HANG_SX và SAN_PHAM
Bối cảnh: HANG_SX và SAN_PHAM
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã hãng sản xuất trong thực thể Sản Phẩm phải nằm trong mã hãng sản xuất trong thực thể Hãng Sản Xuất
t HANG_SX, s SAN_PHAM s[MA_HANG] t[MA_HANG]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ KHACH_HANG và DON_DH
Bối cảnh: KHACH_HANG và DON_DH
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã khách hàng trong thực thể Đơn Đặt Hàng phải nằm trong mã khách hàng trong thực thể Khách Hàng
t KHACH_HANG, s DON_DH s[MA_KH] t[MA_KH]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ DON_DH và CHI_TIET_DH
Bối cảnh: DON_DH và CHI_TIET_DH
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã đơn đặt hàng trong thực thể chi tiết đơn đặt hàng phải nằm trong mã đơn đặt hàng trong thực thể Đơn Đặt Hàng
t DON_DH, s CHI_TIET_DH s[MA_DH] t[MA_DH]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ SAN_PHAM và CHI_TIET_DH
Bối cảnh: SAN_PHAM và CHI_TIET_DH
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã sản phẩm trong thực thể chi tiết đơn đặt hàng phải nằm trong mã sản phẩm trong thực thể Sản Phẩm
t SAN_PHAM, s CHI_TIET_DH s[MA_SP] t[MA_SP]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ SAN_PHAM và HINH_ANH
Bối cảnh: SAN_PHAM và HINH_ANH
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã sản phẩm trong thực thể Hình Ảnh phải nằm trong mã sản phẩm trong thực thể Sản Phẩm
t SAN_PHAM, s HINH_ANH s[MA_SP] t[MA_SP]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ KHUYEN_MAI và CHI_TIET_KM
Bối cảnh: KHUYEN_MAI và CHI_TIET_KM
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã khuyến mãi trong thực thể Chi Tiết Khuyến Mãi phải nằm trong mã khuyến mãi trong thực thể Khuyến Mãi
t KHUYEN_MAI, s CHI_TIET_KM s[MA_KM] t[MA_KM]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ SAN_PHAM và CHI_TIET_KM
Bối cảnh: SAN_PHAM và CHI_TIET_KM
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã sản phẩm trong thực thể Chi Tiết Khuyến Mãi phải nằm trong mã sản phẩm trong thực thể Sản Phẩm
t SAN_PHAM, s CHI_TIET_KM s[MA_SP] t[MA_SP]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
+ SAN_PHAM và GHI_CHU
Bối cảnh: SAN_PHAM và GHI_CHU
Mô tả: ràng buộc phụ thuộc tồn tại
Với mỗi mã sản phẩm trong thực thể Ghi Chú phải nằm trong mã sản phẩm trong thực thể Sản Phẩm
t SAN_PHAM, s GHI_CHU s[MA_SP] t[MA_SP]
Bảng tầm ảnh hưởng các ràng buộc toàn vẹn
Thiết kế hệ thống
Hình 12: Sơ đồ xử lý 7.2 Thiết kế giao diện
7.2.1 Sơ đồ liên kết các màn hình
Hình 13: Sơ đồ liên kết các màn hình
Người dùng có các lựa chọn:
Xem sản phẩm, sau đó mua hàng và ghi chú với menu ChonSP
Thống kê theo khách hàng và sản phẩm
Hình 15: màn hình lựa chọn sản phẩm
Màn hình này để lựa chọn sản phẩm cần xem.
Hình 16: màn hình sản phẩm
Màn hình này hiện ra khi người dùng chon sản phẩm ở trên
Trong phần này gồm có :
Nút di chuyển ảnh < > (nếu sản phẩm đó có 2 ảnh trở lên)
Nút xem các tính năng vượt trội: TN Vuot Troi
Nút xem mô tả về sản phẩm: Mo Ta
Nút ghi chú sản phẩm: Ghi Chu
Nút đặt hàng sản phẩm này: Dat Hang
Hình 17: màn hình xem khuyến mãi
Màn hình này để xem chương trình khuyến mãi của sản phẩm này: bao gồm giá tất cả sản phẩm sau khuyến mãi
Hình 18: màn hình ghi chú sản phẩm
Màn hình này dùng để ghi lại nhận xét và ý kiến của khách hàng về sản phẩm này
Hình 19: màn hình đặt hàng
Màn hình này để lưu thông tin khách hàng và các sản phẩm mà khách hàng này muốn đặt hàng
Nút Tro Lai sẽ quay về lại Form Chọn sản phẩm để lấy thêm Sản Phẩm cho khách hàng này
Hình 20: màn hình xem danh sách khách hàng
Màn hình này xem tất cả các khách hàng đã đặt sản phẩm nào và tổng số tiền của hóa đơn
Hình 21: màn hình xem các sản phẩm đã được đặt hàng
Màn hình này xem các sản phẩm mà khách hàng đã đặt với số lượng và khách hàng cụ thể
Hình 22: màn hình tìm kiếm sản phẩm
Màn hình này để tìm kiếm sản phẩm theo Hãng Sản Xuất và Loại Sản Phẩm
Hình 23: màn hình kết quả tìm kiếm
Màn hình này xem tất cả các sản phẩm đã tìm kiếm ở trên, bao gồm cả phần tìm kiếm theo giá cả của các sản phẩm được tìm thấy.