Mục lục
LờI NóI ĐầU
Ngày nay công nghệ thông tin (CNTT) là ngành khoa học đã nhanh chóng khẳng định vị trí của mình với những tính ưu việt mà không ai có thể phủ nhận được. Từ những năm cuối thế kỷ 20, CNTT ở Việt Nam đã phát triển mạnh mẽ và ứng dụng ngày càng sâu rộng trong hầu hết các lĩnh vực khoa học kỹ thuật, kinh tế, văn hoá, xã hội.
Trong công cuộc đổi mới đất nước, cùng với các lĩnh vực khác, ngành Giáo dục và đào tạo đã và đang từng bước áp dụng những tiến bộ khoa học kỹ thuật củ
95 trang |
Chia sẻ: huyen82 | Lượt xem: 1528 | Lượt tải: 1
Tóm tắt tài liệu Quản lí hàng hoá dựa trên đơn đặt hàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
a CNTT vào ngành. Những phần mềm quản lý, những phần mềm hỗ trợ sự dạy và học với sự trợ giúp của máy tính đã và đang phát huy tác dụng góp phần không nhỏ vào sự nghiệp giáo dục nước nhà. Đặc biệt là trong công tác quản lý tin học làm giảm nhẹ sức lực của người quản lý tin học làm giảm nhẹ và thuận tiện hơn rất nhiều so với thực hiện công việc quản lý theo cách truyền thống cũ trên giấy tờ, ứng dụng tin học vào công tác quản lý đặc biệt là thu hẹp không gian lưu trữ, tránh được thất lạc dữ liệu, từng bước tự động hoá và cụ thể hoá lượng thông tin theo yêu cầu của người quản lý, có thể tìm kiếm, tra cứu thông tin nhanh một cách đầy đủ và chính xác hơn.
Hàng hoá là một yếu tố quan trọng quyết định đến hoạt động, sự tồn tại của bất kỳ một cửa hàng nào. Vì thế, quản lý hàng hoá là một đề tài mà gần như tất cả cửa hàng đều quan tâm đến, bởi nó quyết định sự hoạt động của cửa hàng đó có hiệu quả hay không, công tác quản lý vấn đề hàng hoá của cửa hàng có tối ưu để cửa hàng hoạt động tốt hay không...
Qua đó, ta thấy rằng vấn đề quản lý hàng hoá luôn luôn là một vấn đề cấp thiết. Với lí do đó, em mạnh dạn chọn: “Quản lí hàng hoá dựa trên đơn đặt hàng” làm đề tài. Chương trình Quản lý hàng hoá này được viết dưới dạng một phần mềm tin học dùng để ứng dụng trong các cửa hàng với mục đích quản lý các mặt hàng về các mặt: đặt,xuất,nhập...
Chương trình quản lý hàng hoá này có các chức năng được phân cấp rõ ràng theo từng cấp để bất cứ ai làm công tác quản lý cũng có thể sử dụng được, có phần Help kết nối trực tiếp với cỏc Modul chương trình để người sử dụng có thể tra cứu bất cứ lúc nào. Mặt khác, chương trình còn cho phép người sử dụng quản trị hệ thống mạnh, tìm kiếm thông tin nhanh, chính xác.
Song bên cạnh đó vì thời gian có hạn, nên chương trình này của em còn chứa đựng rất nhiều hạn chế mà em chưa có thời gian khắc phục. Vì vậy, em rất mong nhận được sự đúng góp ý kiến của tất cả các thầy, các bạn
Nhờ sự tận tâm theo sát hướng dẫn của thầy Cao Kim ánh, trong bước đầu em đã nghiên cứu và vận dụng kiến thức đã học để xây dựng được chương trình quản lý đáp ứng tương đối một số các yêu cầu đặt ra như trên. Tuy nhiên do kiến thức còn hạn chế nên chương trình chắc chắn không tránh khỏi các thiếu sót, vì vậy em rất mong được sự góp ý nhắc nhở của các thầy cô và của các bạn để có thể từng bước xây dựng chương trình ngày càng hoàn thiện và hiệu quả hơn.
Em xin chân thành cảm ơn thầy giáo hướng dẫn Cao Kim ánh và các thày cô giáo Khoa Công Nghệ Thông Tin đã giúp em hoàn thành đồ án này.
Hà nội, ngày 30 tháng 4 năm 2009
Sinh viên thực hiện
Vũ Minh Quang
Phần 1. cơ sở lý thuyết
Chương 1. Lý thuyết cơ sở dữ liệu
I. Tổng quan về cơ sở dữ liệu
1. Khái niệm về cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) là một tập hợp có sắp xếp các thông tin, dữ liệu về một vấn đề nào đó, nhằm giúp cho người sử dụng dễ dàng tra cứu, sử dụng và cập nhập.
Đặc điểm chủ yếu của CSDL là cách tổ chức, sắp xếp thông tin, các dữ liệu có liên quan với nhau sẽ đượ lưu trong các tập tin hay trong các bảng. Nói cách khác nó là tập hợp các dữ liệu có quan hệ với nhau.
2. Sự cần thiết của cơ sở dữ liệu
Ngày nay nhu cầu tích lũy, lưu trữ và xử lý dữ liệu đã có mặt trên mọi lĩnh vực, trong mọi hoạt động của con người. Nhưng thông tin ngày càng lớn và phức tạp, buộc con người phải sắp xếp các thông tin sao cho có khoa học, vì vậy đòi hỏi họ phải sử dụng CSDL.
3. Hệ quản trị cơ sở dữ liệu (Database Management System)
Là một công cụ cho phép quản lý và tương tác với cơ sở dữ liệu như cho phép xử lý, thay đổi, truy xuất cơ sở dữ liệu.Theo nghĩa này hệ quản trị cơ sở dữ liệu có nhiệm vụ rất quan trọng như là một bộ phận diễn dịch với ngôn ngữ bậc cao nhằm giúp người sử dụng có thể dùng được hệ thống mà ít nhiều không cần quan tâm đến thuật toán chi tiết hoặc biểu diễn dữ liệu trong máy tính. Hầu hết các hệ quản trị cơ sở dữ liệu đều thực hiện các chức năng sau:
- Lưu trữ dữ liệu
- Tạo và duy trì cấu trúc dữ liệu
- Hỗ trợ bảo mật và riêng tư
- Cho xem và xử lý các dữ liệu lưu trữ
- Cung cấp một cơ chế chỉ mục (index) hiệu quả để truy cập nhanh các dữ liệu lựa chọn.
- Cung cấp tính nhất quán giữa các bản ghi khác nhau.
- Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi dữ liệu (recovery)
Trong hệ quản trị cơ sở dữ liệu quan hệ dữ liệu được tổ chức thành các bảng, các bảng bao gồm các trường và các trường chứa các bản ghi. Mỗi trường tương ứng với một mục dữ liệu, hai hay nhiều bảng có thể liên kết nếu chúng có một hay nhiều trường chung.
II. Lý thuyết về cơ sở dữ liệu quan hệ
1. Khái niệm cơ bản về cơ sở dữ liệu quan hệ
Khái niệm cơ sở dữ liệu quan hệ: là loại cơ sở dữ liệu cho phép ta truy cập đến dữ liệu thông qua mối quan hệ đến các dữ liệu khác giống như các bảng tính. Để truy cập thông tin ta có thể dùng một ngôn ngữ đặc biệt để truy vấn, đó là SQL (Structure Query Language) nó là ngôn ngữ truy vấn có cấu trúc.
2. Thành phần của cơ sở dữ liệu
a) Các trường dữ liệu (data fields)
Trường dữ liệu chứa dữ liệu nhỏ nhất (dữ liệu nguyên tố), ví dụ trong bảng HSSV chứa thông tin về sinh viên: trường MSSV chứa mã sinh viên, trường ngaysinh chứa thông tin về ngày tháng năm sinh của sinh viên trong trường....
Tất cả các trường tạo ra sẽ chứa một cơ sở dữ liệu đơn. Tuy rằng ta có thể chứa hơn một thành phần dữ liệu trong một trường (field) đơn, nhưng gặp trở ngại khi cập nhập hay sắp xếp thứ tự.
b) Các bản ghi dữ liệu (Data Record)
Các bản ghi dữ liệu (record) là tập hợp các trường dữ liệu có liên quan. Một số bản ghi sinh viên bao gồm các thông tin về sinh viên như : họ tên, ngày sinh, quê quán, hộ khẩu thường trú, giới tính…
c) Bảng dữ liệu (Data Table)
Bằng cách kết hợp fields dữ liệu và record dữ liệu đã tạo ra nguyên tố chung nhất của cơ sở dữ liệu quan hệ là bảng dữ liệu. Nguyên tố này chứa nhiều bản ghi dữ liệu, mỗi bản ghi chứa nhiều trường dữ liệu. Cũng như mỗi bản ghi chứa các trường có quan hệ, mỗi bảng dữ liệu chứa các bản ghi có quan hệ. Các bảng dữ liệu nên đặt tên theo đúng ý nghĩa để giúp người dùng dễ nhớ nộidung của bản ghi và trường.
Mô hình cơ sở dữ liệu quan hệ yêu cầu mỗi hàng trong một bảng phải là duy nhất. Để đảm bảo tính duy nhất cho một hàng bằng cách tạo ra một khoá chính (primary key) một cột hay kết hợp nhiều cột để xác định duy nhất một hàng. Một bảng ghi chỉ có một Primary key, mặc dù có thể có một số cột hay tôt hợp các cột khác có thể tạo ra các giá trị duy nhất. Những cột (hay tổ hợp các cột) giá trị duy nhất trong bảng được xem như là khoá dự tuyển của primary key. Cho đến nay không có một nguyên tắc tuyệt đối nào để xác định khoá dự tuyển nào là tốt nhất. Các tính chất đề nghị của khoá dự tuyển tốt nhất là: nhỏ nhất(minimality – chọn một số cột cần thiết ít nhất) ổn định (stability – chọn khoá ít thay đổi nhất) và đơn giản/ thân thiện (simplicity / familiaty- chọn một khoá vừa đơn giản vừa quen thuộc).
* Khoá ngoại lai (Foreign key): Mặc dù các primary key là thành phần của các bảng riêng biệt, nếu ta chỉ dùng các bảng độc lập mà không có quan hệ, ta rất ít sử dụng primary key để trở nên thiết yếu khi ta tạo ra các quan hệ để liên kết các bảng trong cơ sở dữ liệu quan hệ.
Một trường được gọi là khóa ngoại lai của một bảng A nếu nó không phải là khoá chính của bảng A và liên kết với một bản B qua khoá chính của bảng B để xác định duy nhất một bản ghi của bảng B.
d) Các mối quan hệ trong bảng (Relationship)
Trong cơ sở dữ liệu quan hệ, quan hệ được xác lập trên từng cặp bảng. Những cặp bảng này quan hệ với nhau theo một trong 3 loại sau 1-1, 1-∞, ∞-∞.
* Quan hệ 1-1 (one - to - one)
Hai bảng được gọi là quan hệ 1-1 nếu với mọi hàng trong bảng thứ nhất chỉ có nhiều nhất một hàng trong bảng thứ hai. Trên thực tế quan hệ này ít xảy ra. Loại quan hệ này thường được tạo ra để khắc phục một số giới hạn của các phần mềm quản lý cơ sở dữ liệu hơn là mô hình hóa một trạng thái của thế giới thực. Trong Microsoft Access, các quan hệ 1-1 có lẽ cần thiết trong một cơ sở dữ liệu quan hệ khi tách một bảng thành hai hay nhiều bảng do tính bảo mật hay hiệu quả.
* Quan hệ 1- ∞ (one – to – many):
Hai bảng có quan hệ một nhiều (one – to – many) nếu đối với bảng thứ nhất có thể không có, hay có một hay nhiều trong bảng thứ hai. Quan hệ một nhiều còn gọi là quan hệ cha con hay là quan hệ chính phụ. Loại quan hệ này được dùng rất nhiều trong cơ sở dữ liệu quan hệ.
* Quan hệ ∞ - ∞ (many – to – many)
Hai bảng có quan hệ ∞ - ∞ khi đối với mọi hàng trong bảng thứ nhất có thể có nhiều hàng trong bảng thứ hai và đối với mọi bảng trong bảng thứ hai có thể có nhiều hàng trong bảng thứ nhất. Các quan hệ ∞ - ∞ không thể mô hình hoá trong nhiều phần mềm cơ sở dữ liệu trong đó có cả Microsoft Access. Những quan hệ này cần được tách ra thành nhiều quan hệ 1 - ∞.
3. Lý thuyết thiết kế cơ sở dữ liệu quan hệ
Trong phần lớn các ứng dụng chúng ta đều phải tạo ra cơ sở dữ liệu. Do các nguyên nhân đặc biệt có một số ứng dụng không thể xây dựng được cơ sở dữ liệu từ đầu hoặc phải sử dụng một số cơ sở có sẵn không ở dạng thích hợp cho cơ sở dữ liệu quan hệ. Một trong những dạng thường gặp nhất của ta là chuyển dữ liệu chứa ở dạng dữ liệu bảng tính thành các bàng của cơ sở dữ liệu quan hệ.
Có ba bước thiết kế cơ sở dữ liệu:
- Tạo ra các lớp thực thể
- Chuẩn hoá các cơ sở dữ liệu
- Thực hiện phi chuẩn
Giới thiệu về SQL(Structure Query Language) ngôn ngữ hỏi có cấu trúc, là một công cụ sử dụng để tổ chức,quản lý và truy xuất dữ liệu được lưu trữ trong các cơ sở dữ liệu.SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với CSDL quan hệ.
Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng đến một công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu.Thực sự mà nói,khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu,mặc dù đây là mục đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là một trong những chức năng quan trọng của nó.SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:
• Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu,các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu.
• Truy xuất và thao tác dữ liệu: Với SQL, người dựng cú thể dễ dàng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu.
• Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
• Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập nhật cũng như các lỗi của hệ thống.
Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ liệu và là một thành phần khụng thể thiếu trong các hệ quản trị cơ sở dữ liệu. Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java,...song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lập trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu. Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java,... SQL là ngôn ngữ có tính khai báo. Với SQL, người dựng chỉ cần mô tả các yêu cầu cần phải thực hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu như thế nào. Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng.
* Vai trò của SQL
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tại độc lập. SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuấtt hiện trong các hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sử dụng và hệ quản trị cơ sở dữ liệu. Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL cú những vai trò như sau:
• SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông qua các trình tiện ích để gởi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữ liệu và nhận kết quả trả về từ cơ sở dữ liệu
• SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng các câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương trình ứng dụng giao tiếp với cơ sở dữ liệu
• SQL là ngôn ngữ quản trị cơ sở dữ liệu: Thông qua SQL, người quản trị cơ sở dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ liệu, điều khiển truy cập cơ sở dữ liệu,...
• SQL là ngôn ngữ cho các hệ thống khách/chủ (client/server): Trong các hệ thống cơ sở dữ liệu khách/chủ, SQL được sử dụng như là công cụ để giao tiếp giữa các trình ứng dụng phía máy khách với máy chủ cơ sở dữ liệu.
• SQL là ngôn ngữ truy cập dữ liệu trên Internet: Cho đến nay, hầu hết các máy chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trò là ngôn ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu.
• SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ liệu phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trên mạng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau.
• SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: Trong một hệ thống mạng máy tính với nhiều hệ quản trị cơ sở dữ liệu khác nhau, SQL thường được sử dụng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sở dữ liệu.
* Tổng quan về cơ sở dữ liệu quan hệ
a. Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ được Codd đề xuất năm 1970 và đến nay trở thành mô hình được sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại. Nói một cách đơn giản, một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu trong đó tất cả dữ liệu được tổ chức trong các bảng có mối quan hệ với nhau. Mỗi một bảng bao gồm các dòng và các cột: mỗi một dòng được gọi là một bản ghi (bộ) và mỗi một cột là một trường (thuộc tính).
b.Bảng (Table)
Như đã nói ở trên, trong cơ sở dữ liệu quan hệ, bảng là đối tượng được sử dụng để tổ chức và lưu trữ dữ liệu. Một cơ sở dữ liệu bao gồm nhiều bảng và mỗi bảng được xác định duy nhất bởi tên bảng. Một bảng bao gồm một tập các dòng và các cột: mỗi một dòng trong bảng biểu diễn cho một thực thể (trong hình 1.1, mỗi một dòng trong bảng SINHVIEN tương ứng với một sinh viên); và mỗi một cột biểu diễn cho một tính chất của thực thể (chẳng hạn cột NGAYSINH trong bảng SINHVIEN biểu diễn cho ngày sinh của các sinh viên được lưu trữ trong bảng).Như vậy, liên quan đến mỗi một bảng bao gồm các yếu tố sau
• Tên của bảng: được sử dụng để xác định duy nhất mỗi bảng trong cơ sở dữ liệu.
• Cấu trúc của bảng: Tập các cột trong bảng. Mỗi một cột trong bảng được xác định bởi một tên cột và phải có một kiểu dữ liệu nào đó (chẳng hạn cột NGAYSINH trong bảng SINHVIEN ở hình trên có kiểu là DATETIME).Kiểu dữ liệu của mỗi cột qui định giá trị dữ liệu có thể được chấp nhận trên cột đó.
• Dữ liệu của bảng: Tập các dòng (bản ghi) hiện có trong bảng.
c. Khóa của bảng
Trong một cơ sở dữ liệu được thiết kế tốt, mỗi một bảng phải có một hoặc một tập các cột mà giá trị dữ liệu của nó xác định duy nhất một dòng trong một tập các dòng của bảng. Tập một hoặc nhiều cột có tính chất này được gọi là khoá của bảng. Việc chọn khoá của bảng có vai trò quan trọng trong việc thiết kế và cài đặt các cơ sở dữ liệu quan hệ. Các dòng dữ liệu trong một bảng phải có giá trị khác nhau trên khoá. Bảng MONHOC trong hình dưới đây có khoá là cột MAMONHOC
Một bảng có thể có nhiều tập các cột khác nhau có tính chất của khoá (tức là giá trị của nó xác định duy nhất một dòng dữ liệu trong bảng). Trong trường hợp này, khoá được chọn cho bảng được gọi là khoá chính (primary key) và những khoá còn lại được gọi là khoá phụ hay là khoá dự tuyển (candidate key/unique key).
Mối quan hệ và khóa ngoài
Các bảng trong một cơ sở dữ liệu không tồn tại độc lập mà có mối quan hệ mật thiết với nhau về mặt dữ liệu. Mối quan hệ này được thể hiện thông qua ràng buộc giá trị dữ liệu xuất hiện ở bảng này phải có xuất hiện trước trong một bảng khác. Mối quan hệ giữa các bảng trong cơ sở dữ liệu nhằm đàm bảo được tính đúng đắn và hợp lệ của dữ liệu trong cơ sở dữ liệu.Này đòi hỏi giá trị cột MAKHOA của một dòng (tức là một lớp) trong bảng LOP phải được xác định từ cột MAKHOA của bảng KHOA.
Mối quan hệ giữa các bảng trong một cơ sở dữ liệu thể hiện đúng mối quan hệ giữa các thực thể trong thế giới thực. Trong hình 1.3, mối quan hệ giữa hai bảng LOP và KHOA không cho phép một lớp nào đó tồn tại mà lại thuộc vào một khoa không có thật.Khái niệm khoá ngoài (Foreign Key) trong cơ sở dữ liệu quan hệ được sử dụng để biểu diễn mối quan hệ giữa các bảng dữ liệu. Một hay một tập các cột trong một bảng mà giá trị của nó được xác định từ khóa chính của một bảng khác được gọi là khoá ngoài. Trong hình trên, cột MAKHOA của bảng LOP được gọi là khoá ngoài của bảng này, khoá ngoài này tham chiếu đến khoá chính của bảng KHOA là cột MAKHOA.
e. Sơ lược về SQL
SQL chuẩn bao gồm khoảng 40 câu lệnh. Bảng 1.1 liệt kê danh sách các câu lệnh thường được sử dụng nhất trong số các câu lệnh của SQL. Trong các hệ quản trị cơ sở dữ liệu khác nhau, mặc dù các câu lệnh đều có cùng dạng và cùng mục đích sử dụng song mỗi một hệ quản trị cơ sở dữ liệu có thể có một số thay đổi nào đó. Điều này đôi khi dẫn đến cú pháp chi tiết của các câu lệnh có thể sẽ khác nhau trong các hệ quản trị cơ cơ sở dữ liệu khác nhau.
Câu lệnh
Thao tác dữ liệu
SELECT
INSERT
UPDATE
DELETE
TRUNCATE
Định nghĩa dữ liệu
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE VIEW
ALTER VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
CREATE SCHEMA
DROP SCHEMA
CREATE PROCEDURE
ALTER PROCEDURE
DROP PROCEDURE
CREATE FUNCTION
ALTER FUNCTION
DROP FUNCTION
CREATE TRIGGER
ALTER TRIGGER
DROP TRIGGER
Điều khiển truy cập
GRANT
REVOKE
Quản lý giao tác
COMMIT
ROLLBACK
SAVE TRANSACTION
Lập trình
DECLARE
OPEN
FETCH
CLOSE
EXECUTE
Chức năng
Truy xuất dữ liệu
Bổ sung dữ liệu
Cập nhật dữ liệu
Xoá dữ liệu
Xoá toàn bộ dữ liệu trong bảng
Tạo bảng
Xoa bảng
Sửa đổi bảng
Tạo khung nhìn
Sửa đổi khung nhìn
Xoá khung nhìn
Tạo chỉ mục
Xoá chỉ mục
Tạo lược đồ cơ sở dữ liệu
Xoá lược đồ cơ sở dữ liệu
Tạo thủ tục lưu trữ
Sửa đổi thủ tục lưư trữ
Xoá thủ tục lưu trữ
Tạo hàm (do người sử dụng định nghĩa)
Sửa đổi hàm
Xoá hàm
Tạo trigger
Sửa đổi trigger
Xoá trigger
Cấp phát quyền cho người sử dụng
Thu hồi quyền từ người sử dụng
Uỷ thác (kết thúc thành công) giao tác
Quay lui giao tác
Đánh dấu một điểm trong giao tác
Khai báo biến hoặc định nghĩa con trỏ
Mở một con trỏ để truy xuất kết quả truy vấn
Đọc một dòng trong kết quả truy vấn (sử dụng con trỏ)
Đóng một con trỏ
Thực thi một câu lệnh SQL
Các câu lệnh của SQL đều được bắt đầu bởi các từ lệnh, là một từ khoá cho biết chức năng của câu lệnh (chẳng hạn SELECT, DELETE, COMMIT). Sau từ lệnh là các mệnh đề của câu lệnh. Mỗi một mệnh đề trong câu lệnh cũng được bắt đầu bởi một từ khoá (chẳng hạn FROM, WHERE,...).
Ví dụ 1.1: Câu lệnh:
SELECTmasv,hodem,ten
FROM sinhvien
WHERE malop=’C24102’
dùng để truy xuất dữ liệu trong bảng SINHVIEN được bắt đầu bởi từ lệnh SELECT, trong câu lệnh bao gồm hai mệnh đề: mệnh đề FROM chỉ định tên của bảng cần truy xuất dữ liệu và mệnh đề WHERE chỉ định điều kiện truy vấn dữ liệu.
f. Kiểu dữ liệu
Chuẩn ANSI/ISO SQL cung cấp các kiểu dữ liệu khác nhau để sử dụng trong các cơ sở dữ liệu dựa trên SQL và trong ngôn ngữ SQL. Dựa trên cơ sở các kiểu dữ liệu do chuẩn ANSI/ISO SQL cung cấp, các hệ quản trị cơ sở dữ liệu thương mại hiện nay có thể sử dụng các dạng dữ liệu khác nhau trong sản phẩm của mình. Bảng dưới đây liệt kê một số kiểu dữ liệu thông dụng được sử dụng trong SQL.
CHAR (n) Kiểu chuỗi với độ dài cố định
NCHAR (n) Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE
VARCHAR (n) Kiểu chuỗi với độ dài chính xác
NVARCHAR (n) Kiểu chuỗi với độ dài chính xác hỗ trợ UNICODE
INTEGER Số nguyên có giá trị từ -231đến 231 - 1
INT Như kiểu Integer
TINYTINT Số nguyên có giá trị từ 0 đến 255.
SMALLINT Số nguyên có giá trị từ -215đến 215 – 1
BIGINT Số nguyên có giá trị từ -263đến 263-1
NUMERIC (p,s) Kiểu số với độ chính xác cố định.
DECIMAL (p,s) Tương tự kiểu Numeric
FLOAT Số thực có giá trị từ -1.79E+308 đến 1.79E+308
REAL Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38
MONEY Kiểu tiền tệ
BIT Kiểu bit (có giá trị 0 hoặc 1)
DATETIME Kiểu ngày giờ (chính xác đến phần trăm của giây)
SMALLDATETIME Kiểu ngày giờ (chính xác đến phút)
TIMESTAMP
BINARY Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes)
VARBINARY Dữ liệu nhị phân với độ dài chính xác (tối đa 8000 bytes)
g. Giá trị NULL
Một cơ sở dữ liệu là sự phản ánh của một hệ thống trong thế giới thực, do đó các giá trị dữ liệu tồn tại trong cơ sở dữ liệu có thể không xác định được. Một giá trị không xác định được xuất hiện trong cơ sở dữ liệu có thể do một số nguyên nhân sau:
• Giá trị đó có tồn tại nhưng không biết.
• Không xác định được giá trị đó có tồn tại hay không.
• Tại một thời điểm nào đó giá trị chưa có nhưng rồi có thể sẽ có.
• Giá trị bị lỗi do tính toán (tràn số, chia cho không,...)
Những giá trị không xác định được biểu diễn trong cơ sở dữ liệu quan hệ bởi các giá trị NULL. Đây là giá trị đặc biệt và không nên nhầm lẫn với chuỗi rỗng (đối với dữ liệu kiểu chuỗi) hay giá trị không (đối với giá trị kiểu số). Giá trị NULL đóng một vai trò quan trọng trong các cơ sở dữ liệu và hầu hết các hệ quản trị cơ sở dữ liệu quan hệ hiện nay đều hỗ trợ việc sử dụng giá trị này.
III. Mô hình cơ sở dữ liệu quan hệ
1. Quan hệ
Quan hệ là một tập hợp con của tích Đề – các của một hay nhiều miền Di. Như vậy miền quan hệ là vô hạn. Luôn luôn giả thiết rằng, quan hệ là một tập hữu hạn.
Một hàng của quan hệ gọi là một bộ
Quan hệ là tập con của tích Đề – các D1 * D2….D3 gọi là quan hệ n.
Khi đó mỗiquan hệ có n thành phần (n cột). Các tiêu đề cột của quan hệ là thuộc tính. Ta có thể định nghĩa quan hệ như sau:
Cho R = { a1,a2,….an }là một tập hợp hữu hạn, không rỗng các thuộc tính. Mỗi thuộc tính ai có một miền giá trị là Dai. Khi đó r- một tập hợp các bộ{ h1,h2,….hm } được gọi là một quan hệ trên R với hj (j = 1,2…., m) là một hàm:
Hj : R -> ẩ Dai
Ai ẻ R
Sao cho : hj (ai) ẻ Dai
2. Phụ thuộc hàm
Khái niệm về phụ thuộc hàm trong một quan hệ là một quan niệm có tầm quan trọng rất lớn đối với việc thiết kế mô hình dữ liệu.
Định nghĩa : Cho R (U) là một lược đồ quan hệ với U = { A1,….,An } là tập thuộc tính. X và Y là tập con của U.
Nói rằng X -> Y (đọc là X xác định Y hoặc Y phụ thuộc vào hàm X), nếu r là một quan hệ xác định trên R (U) sao cho bất kỳ hai bộ t1, t2 thuộc r mà t1 [X] = t2 [ X] thì t1[Y] = t2 [ Y ].
* Hệ tiêu đề Armstrong trong phụ thuộc hàm:
Gọi F là tất cả các phụ thuộc hàm đối với lược đồ quan hệ R (U) và X-> Y là một phụ thuộc hàm, trong đó X, Y Í U. Khi đó ta có F+ là tập hợp tất cả các phụ thuộc hàm được sinh ra từ F khi sử dụng tiêu đề armstrong được gọi là bao đóng của F.
Hệ tiêu đề amstrong: Gọi R(U) là lược đồ quan hệ với U = { A1,….,An } là tập tất cả các thuộc tính X,Y, X,T Í U. Khi đó ta có:
- Tính phản xạ : nếu Y Í X thì X-> Y
- Tính tăng trưởng : nếu Z Í U và X-> Y thì XZ -> YZ, trong đó XZ là tập của hai tập X và Y, YZ là tập hợp của hai tập Y và Z.
- Tính bắc cầu : nếu X -> Y và Y -> Z thì X -> Z.
3. Khoá
a) Định nghĩa
Khóa của quan hệ r trên tập thuộc tính U = { A1, A2….,An } là tập con K Í U sao cho bất kỳ hai bộ khác nhau, t1, t2 ẻ r luôn thoả mãn t1 (K) ≠ t2 (K). Tập K là siêu khoá (khóa tối thiểu) của quan hệ r nếu K là một khoá của quan hệ r và mọi tập con thực sự K’ của K đều không phải là tập khoá.
b) Các thuật toán tìm khoá tối tiểu
Thuật toán tìm khoá tối thiểu của một sơ đồ quan hệ:
Vào : sơ đồ quan hệ s = trong đó:
R = { A1, A2….,An } là tập hợp các thuộc tính.
F là tập các phụ thuộc hàm.
Ra là một khoá tối tiểu.
Thuật toán thực hiện như sau:
+ Bước 1: K0 = R = { A1, …..….,An }
+ Bước i :
Thay đổi thứ tự các thuộc tính R bằng thuật toán trên chúng ta có thể tìm được một khoá tối tiểu khác.
Thuật toán tìm khoá tối tiểu của quan hệ:
Cho trước R = { h1, …..….,hm } là một quan hệ trên tập thuộc tính.
R = { a1, …..….,an }. Thuật toán thực hiện như sau:
+ Bước 1:
Tìm Er = { Eij, 1 ≤ i ≤ j ≤ m }
+ Bước 2:
B0 = R = { a1, …..….,nn }
+ Bước 3:
+ Bước 4:
K = Bn là khoá tối tiểu
Cũng như thuật toán trên, nếu ta thay đổi thứ tự các thuộc tính của R bằng thuật toán này chúng ta có thể tìm được một khoá tối tiểu khác.
4. Các dạng chuẩn
* Dạng chuẩn 1 (1 – NF):
Giả sử r = { h1, …..….,hm } là File dữ liệu trên tập cột R = { a1, …..….,an }. Khi đó r là 1 – NF nếu các giá trị hi (ai) là sơ cấp với mọi i, j.
Khái niệm sơ cấp hiểu ở đây là giá trị hi (aj) (i = - 1,….., m ; j = 1,…, n) không phân loại chi được nữa.
* Dạng chuẩn 2 (2 – NF):
Quan hệ r được gọi là dạng chuẩn 2 nếu :
- Quan hệ r là dạng chuẩn 1.
-Với mọi khoá tối tiểu K:
A - > { a } ẽ Fr với A è K và a là thuộc tính thứ cấp.
* Dạng chuẩn 3 (3- NF)
Quan hệ r là dạng chuẩn 3 nếu :
A - > { a} ẽ Fr , đối với A+ ẽ R, a ẽ A, a ẽ ẩ K.
Có nghĩa là:
- K là một khoá tối tiểu.
- a thuộc tính thứ cấp.
- A không là khoá.
- A -> { a} không đúng trong r.
5. Các phép tính trên cơ sở dữ liệu
- Phép chèn: là phép thêm một bộ t { d1, ..., d n} vào quan hệ r { A1,….An}. Ký hiệu r ẩ t. Trong đó Ai với i=1, …., n là tên các thuộc tính và d1 ẻ dom (Ai) là các giá trị thuộc miền giá trị tương ứng của thuộc tính Ai.
- Phép loại bỏ: là phép xoá một bộ ra khỏi một quan hệ cho trước ký hiệu r – t, tuy nhiêm không phải lúc nào phép loại bỏ cũng cần đầy đủ thông tin về cả bộ cần loại bỏ.
Chương 2. GIớI THIệU VB.NET
1 Nguồn gốc của .NET
Đầu năm 1998, sau khi hoàn tất version 4 của Internet Information Server (IIS), một đội lập trình ở Microsoft nhận thấy họ còn rất nhiều sáng kiến để kiện toàn IIS. Họ bắt đầu thiết kế một architecture mới dựa trên những ý đó và project đuợc đặt tên là Next Generation Windows Services (NGWS).Sau khi Visual Basic 6 đuợc trình làng vào cuối năm 1998, dự án kế tiếp mang tên Visual Studio 7 đuợc xáp nhập vào NGWS. Đội ngũ COM+/MTS góp vào một universal runtime cho tất cả các ngôn ngữ lập trình trong Visual Studio, mà họ có ý định cho ngay cả các ngôn ngữ lập trình của công ty khác dùng luôn. Công việc được giữ bí mật mãi đến hội nghị Professional Developers' Conference ở Orlando vào tháng 7/2000. Đến tháng 11/2000 thì Microsoft cho phát hành Beta 1 của.NET gồm ba CD. Tính đến lúc ấy thì Microsoft đã làm việc trên dự án ấy gần ba năm rồi. Điều ấy cắt nghĩa tại sao Beta 1 version tương đối rất vững chải.
.NET mang dấu tích những sáng kiến đã được áp dụng trước đây như p-code trong UCSD Pascal cho đến Java Virtual Marchine. Có điều Microsoft góp nhặt những sáng kiến của người khác, kết hợp với những sáng kiến của chính mình để làm nên một sản phẩm ăn rơ từ trong ra ngoài. Có lẽ cuối năm 2001 hay đầu năm 2002 Microsoft mới phát hành.NET. Có người hỏi Microsoft xem.NET quan trọng như thế nào. Các "xếp" của Microsoft cho biết 80% tài khóa Research & Development (Nghiên cứu và Triển khai) của Microsoft trong năm 2001 được dành cho.NET, và tối hậu, tất cả sản phẩm của Microsoft đều sẽ được dọn nhà qua.NET platform.
.NET gồm có hai phần: Framework và Integrated Development Environment (IDE). Framework cung cấp tất cả những gì cần thiết căn bản. Chữ Framework có nghĩa là cái Khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ước nhất định để công việc trôi chảy. Còn IDE cung cấp một môi trường giúp ta triển khai dễ dàng, nhanh chóng hơn. Nếu không có IDE ta cũng có thể dùng Notepad và line commands để triển khai nhưng nó chậm hơn. Do đó, nếu có chỗ nào IDE genareted code có vẽ quá rắc rối, bạn nên trở về Framework để xem mình thật sự tối thiểu cần những thứ gì. Vì nói cho cùng, Framework là quan trọng nhất, còn IDE bất quá chỉ là một công cụ gắn lên phía trên Framework thôi. Trong.NET, C# và VB.NET đều dùng cùng một IDE.
2 VB.NET
VB.NET (còn được gọi là VB7)chẳng qua là C# viết theo lối Visual Basic. Nay VB7 đã hoàn toàn là Object Oriented, tức là cho ta dùng lại classes/forms theo cách thừa kế thật thoải mái, nên nó khác VB6 nhiều lắm.
Tất cả đều là Object như trong Java.
Dùng Namespace để Import classes từ các component vào chương trình
Các Visual components của Winform đều được chứa dưới dạng Designer Generated Code giống như Delphi, chớ không phải chứa trong phần đầu của.frm file như trong VB6.
Integer types bây giờ gồm có Byte, Short, Integer và Long
Có thể dùng các Arithmetic Operators mới như:
X += 4 tương đương với X = X + 4
Mess &= " text" tương đương với Mess = Mess & " text"
VB.NET có cả Byte và Char data type. Byte với trị số 0-255 có thể được dùng cho ASCII character. Char với trị số 0-65535 của 2 bytes được dùng cho Unicode.
String trong VB.NET khác với String trong VB6 rất nhiều vì nó đến từ System.String class. ý niệm fixed-length string của VB6 như khai báo
Dim MyString as string * 30
đã bị dẹp bỏ.
Option Strict bắt buộc ta phải tự mình convert data type chớ VB.NET không làm dùm như trong VB6.
Những control tàn hình như Timer, Menu (không còn dùng Menu Editor như trong VB6 nữa) được chứa riêng trong Component tray (mâm).
VB.NET không có variant data type nhưng thay vào đó là Object data type.
Tất cả array đều zero-based. VB.NET dùng block-level scope, do đó một variable declared trong một IF... THEN.. END IF block sẽ biến mất khi qua khỏi END IF.
Short Circuit trong IF.. THEN Statement
Trong VB6, nếu ta viết:
Dim myInt as Integer
myInt = 0
If (myInt 0) and (17 \ myInt < 5 ) then
Thì sẽ bị Division by Zero error, vì mặc dầu phần (myInt 0) là False, nhưng VB6 vẫn tiếp tục tính phần (17\myInt<5).
Trong VB.NET, khi (myInt 0) là False thì nó không tính thêm nữa. #ặc tính nầy gọi là Short Circuit (đi tắt).
Thêm vào Collection và Dictionary class sẽ có ArrayList, BitArray, Hashtable, ObjectList, Queue, SortedList, Stack và StringCollection
Không còn Set statement cho Object. Trong VB6 ta có thể viết:
Set x = New Product
Set w = x
Trong VB.NET sẽ được viết lại như sau:
x = New Product()
w = x
T._.
Các file đính kèm theo tài liệu này:
- 1995.doc