1. Trang chủ
  2. » Luận Văn - Báo Cáo

LUẬN VĂN LẬP TRÌNH TRONG MÔI TRƯỜNG .NET

57 520 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Trong Môi Trường .Net
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận văn
Thành phố Hồ Chí Minh
Định dạng
Số trang 57
Dung lượng 920,04 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LUẬN VĂN LẬP TRÌNH TRONG MÔI TRƯỜNG .NET

Trang 1

Luận văn

LẬP TRÌNH TRONG MÔI

TRONG NET

Trang 2

PHẦN I GIỚI THIỆU NGÔN NGỮ

CHƯƠNG I GIỚI THIỆU CHUNG VỀ VISUAL BASIC.NET

I.GIỚI THIỆU CÔNG NGHỆ NET :

1 .Net là gì?

.Net không chỉ là một cái tên gọi mà nó còn đại diện cho toàn bộ các công nghệ và các khái niệm cấu thành một nền tảng để người lập trình xây dựng các ứng dụng trên đó Visual Basic Net có một số phiên bản thực sự là 7.0 nhưng số này ít được sử dụng

Có thể hiểu Net là một lớp tồn tại bên dưới các ứng dụng và cung cấp một tập các chức năng và các dịch vụ cơ bản Lớp này chứa một tập các ứng dụng và các hệ điều hành gọi là các Net server, một tập các đối tượng gọi là Net Framework và một tập các dịch vụ hỗ trợ cho tất cả các ngôn ngữ Net gọi là Commom Language Runtime (CLR) Các phần này được tách biệt như trong hình

.Net Devices

Hardware Components

Trang 3

Mục đích lớn của Net là thuận tiện trong xây dựng các hệ thống phân tán Phần lớn các hệ thống kiểu này thực hiện công việc của chúng ở phần hậu (back end), ở cấp độ server Microsoft cung cấp một tập hợp các sản phẩm phần mềm

mà chúng được biết như là Net Enterprise Servers Chúng được thiết kế để hỗ trợ các tính năng xử lý phần hậu (back end) cần thiết của một hệ thống phân tán Các sản phẩm này bao gồm:

 Hệ điều hành server, Microsoft Windows(Server,Advanced Server,

lý tập tin, thao tác với XML,

.Net Framework cũng cung cấp một tập các hàm API của riêng nó để giúp cho người lập trình tận dụng được hết các khả năng của nó Hình sau cho thấy mối quan hệ của Framework và mã nguồn của chương trình và các dịch vụ của hệ điều hành

Hardware Components

Trang 4

.Net có các khái niệm mà vượt xa hơn chi tiết của lập trình để mô tả cách các hệ thống được xây dựng và cách chúng có thể tương tác Một trong các khái niệm trên là ý tưởng Web Service, chức năng được phân theo một quy luật nhất quán thông qua Internet Các dịch vụ này cho phép một công ty hay tổ chức cung cấp chức năng mà chức năng này được thực hiện hoàn toàn bên trong môi trường của họ Một ví dụ của các dịch vụ này là dịch vụ thanh toán hóa đơn, một công ty

có các server và các ứng dụng trong chính công ty của họ mà có thể thực hiện và quản lý được việc thanh toán hóa đơn Công ty này cung cấp dịch vụ đó cho các công ty khác thông qua dịch vụ Web Dịch vụ này khác với việc cung cấp một trang Web thông thường; đây là một giao tiếp mà các ứng dụng hay các trang web khác có thể sử dụng chức năng được cung cấp

bị Net bao gồm các máy tính chạy trên Windows và các thiết bị chạy trên Windows CE

II NHỮNG NÉT MỚI TRONG VISUAL BASIC NET:

Visual Basic Net là phiên bản mới tiếp của Visual Basic Microsoft đã thiết

kế lại các sản phẩm nhằm tạo sự dễ dàng hơn trước đây trong việc viết các ứng dụng phân tán, như Web Visual Basic Net có hai phần hỗ trợ cho việc tạo form (Windows Forms và Web form) và một phiên bản mới của ADO về truy cập nguồn dữ liệu Hơn nữa, nó thể hiện đa ngôn ngữ lập trình, loại bỏ những cái cũ,

vô hiệu hóa các từ khóa không hữu ích cùng với rất nhiều những thay đổi khác

Các thuộc tính mới này sẽ cho phép bạn tạo cả ứng dụng Client/Server và ứng dụng Internet Với Web Form và ADO.NET bây giờ bạn có thể nhanh chóng pháp triển các Web Site Với việc thêm vào các khả năng thừa kế, ngôn ngữ Visual Basic giờ đây là một môi trường lập trình hướng đối tượng: Các giao diện trên Windows hỗ trợ các khả năng truy cập và thừa kế hiệu quả Cuối cùng, việc cài đặt và thực thi ứng dụng đơn giản chỉ là copy chương trình qua các nơi khác chạy, không cần thiết phải đăng ký với Registry gì cả

Visual Basic Net tích hợp đầy đủ với những ngôn ngữ Microsoft Visual Studio Net Bạn không chỉ có thể phát triển các thành phần của ứng dụng bằng các ngôn ngữ lập trình khác, các lớp của bạn cũng có thể thừa hưởng từ các lớp được viết bằng các ngôn ngữ khác sử dụng tính năng kế thừa đa ngôn ngữ Với trình bắt lỗi, bạn có thể bắt lỗi nhiều ứng dụng với các ngôn ngữ khác nhau cho chương trình đang thực thi cục bộ hoặc từ các máy truy cập ở xa Bất cứ ngôn ngữ nào bạn sử dụng, cơ cấu Microsoft Net cũng cung cấp một tập hợp API cho việc

sử dụng trên Windows và cả trên Internet

1.Những thay đổi với bản thân ngôn ngữ Visual Basic:

Trang 5

Những phiên bản trước đây của Visual Basic hướng đến những ứng dụng Client chuẩn, trọng tâm của Visual Basic Net với việc tạo các ứng dụng dịch vụ Web cũng tốt như các ứng dụng Client chuẩn trên Windows Việc này được thực hiện bởi các chương trình quản lý mã chung cho cơ cấu Net Framework và bộ diễn dịch ngôn ngữ thông dụng –Common Language Runtime Đương nhiên, nó yêu cầu phải có những thay đổi lớn đối với ngôn ngữ Visual Basic

Với những thay đổi chính đòi hỏi phải tạo ra một bộ khung Net Framework

và thư viện Runtime mới, Microsoft nghĩ rằng đây cũng chính là cơ hội tốt để xóa sạch những khía cạnh lỗi để thực hiện những điều sau đây:

 Đơn giản hóa ngôn ngữ và làm cho chúng phù hợp hơn

 Thêm vào những tính năng mới theo yêu cầu

 Tạo ra những chương trình nguồn dễ đọc và bảo vệ dễ dàng hơn

 Phát triển tiến trình xử lý lỗi

 Tạo các ứng dụng dễ bắt và gỡ lỗi

2 Giao diện Windows Forms mới:

Windows Forms là một phần của cơ cấu Net Framework với nhiều kỹ thuật mới bao gồm một cơ cấu ứng dụng thường, quản lý môi trường thực thi, bảo mật

và hướng đối tượng Windows Forms cũng đưa ra đầy đủ những hỗ trợ cho việc nhanh chóng và dễ dàng để kết nối với dịch vụ Web XML, xây dựng nên những ứng dụng nhận biết dữ liệu được tạo cơ bản trên ADO.NET Với môi trường phát triển chia xẻ mới trong Visual Studio, các nhà phát triển có thể tạo ra các ứng dụng Windows Forms bằng bất cứ ngôn ngữ nào có hỗ trợ nền NET

Bạn có thể tạo một ứng dụng Windows Forms như cách bạn đã làm trong phiên bản trước của Visual Basic: Đặt các điều khiển ơ một vị trí trên form, thay đổi thuộc tính cho chúng và nhấp đúp vào điều khiển để mở Source Editor

3 Visual Inheritance:

Visual Inheritance là một tính năng mới của Windows Forms sẽ thúc đẩy các nhà phát triển hoàn thành sản phẩm và dễ dàng sử dụng lại các chương trình nguồn cũ Chẳng hạn, bạn có thể định nghĩa một giao diện chuẩn có chứa các phần

tử như trình đơn (menu) hay là thanh công cụ (toolbar) Bạn có thể sử dụng form này trong những ứng dụng khác thông qua kế thừa và mở rộng nó đáp ứng các yêu cầu của những ứng dụng đặc biệt, hãy chú trọng đến giao diện cho người dùng thông thường và giảm bớt công việc không phải tạo lại các form tương tự

4 Giao diện một form chính xác:

Với Windows Forms mới, những tính năng như Menu Designer, Anchoring, Docking, và nhiều điều khiển khác có thể mạnh hơn và hợp cho các nhà phát triển xây dựng giao diện người dùng trên Windows hơn

Windows Forms cung cấp cho bạn tập hợp các kỹ thuật xây dựng ứng dụng

cơ bản trên Windows Có những điều khiển và thuộc tính mới tốt cho việc hòa hợp các giao diện người dùng; Windows Forms cũng cung cấp thuộc tính bảo mật

5 Giao diện Web:

Web Form được tạo để chỉ định sự khác biệt giữa những kỹ thuật được sử dụng để xây dựng một ứng dụng trên Windows và chúng được sử dụng để tạo một

Trang 6

ứng dụng trên Web Với Visual Basic Net, bạn có thể nhanh chóng phát triển ứng dụng để chạy được trên Internet bằng những kỹ thuật tương tự mà bạn đã học ở Visual Basic Để tạo một ứng dụng trên Web, bạn thêm một Web form vào dự án, kéo thả các điều khiển cần thiết vào trang Dấu mã chương trình tách biệt khỏi mã HTML

Các phiên bản trước đây của công cụ Visual Studio đã cố gắng đơn giản hóa công việc phát triển trên Web Ví dụ, Visual Basic đã cung cấp hỗ trợ cho DHTML Client và WebClasses; Visual InterDev phục vụ trong cho phát triển bằng ASP Web Form đưa ra những giải pháp làm việc hữu dụng hơn để xây dựng Web với Visual Basic Net Web Form mô tả sự biến đổi của ASP và Web Classes, cung cấp cách tốt nhất cho cả hai mô hình

6.Chuyển biến từ VB6:

Microsoft xem xét hai yếu tố khi thiết kế Visual Basic Net: Sử dụng lại mã

đã có của các ứng dụng trước đây đặt cơ sở cho phép chạy trên cùng cơ cấu Net hoặc xây dựng lại nền tảng từ đầu tận dụng tối ưu các tính năng mới của.Net và hệ điều hành Phục vụ hầu hết những tính năng yêu cầu bởi khách hàng và bảo đảm rằng Visual Basic chuyển sang thế hệ của ứng dụng Web Microsoft quyết định xây dựng VB.Net từ đầu, hoàn toàn mới, không phụ thuộc bất kỳ mô hình nào trước đây cả

Visual Basic Net là nền tảng cơ bản, từ việc phát triển ứng dụng Windows đến việc xây dựng ứng dụng trên Web Vì lý do này, chương trình của bạn cần phải được nâng cấp để khai thác hết những thuận lợi của VB.Net Microsoft cung cấp công cụ Update Wizard (nâng cấp theo sự hướng dẫn từng bước) để giúp bạn thi hành tác vụ này Khi bạn mở một dự án của VB6 trong VB.Net, Upgrade Wizard sẽ chạy tự động và tạo ra một dự án mới của VB.Net được lấy từ dự án đang có của bạn

Khi dự án của bạn đã nâng cấp, ngôn ngữ được chỉnh sửa lại vì những thay đổi cú pháp và các form VB6 được chuyển thành Windows forms Trong hầu hết các trường hợp, bạn sẽ phải tự làm một số thay đổi trong mã của bạn mỗi khi nâng cấp vì các đối tượng và các thuộc tính ngôn ngữ hoặc không có sự tương đương trong VB.Net Sau khi nâng cấp, có thể bạn cũng muốn hiệu chỉnh ứng dụng của mình để khai thác các mặt thuận lợi của một số tính năng mới hơn trong VB.Net

Upgrade Wizard bắt đầu khi bạn mở một ứng dụng VB6 Nó sẽ hỏi bạn về kiểu của dự án và tập hợp các chọn lựa cho ứng dụng

Bước tiếp theo là chỉ ra nơi bạn muốn lưu dự án Net mới Nên nhớ rằng dự

án mới sẽ không được hiệu chỉnh Mỗi lần hoàn thành, dự án mới sẽ được mở lại trong cửa sổ Solution Explorer Bạn có thể cho hiển thị Upgrade Report để xem những gì hữu dụng mà bạn cần trong quá trình nâng cấp dự án Lưu ý hai phần sau:

 Preparing Your VB 6 Application for the Upgrade to VB.Net (chuẩn bị

ứng dụng VB6 để nâng cấp thành VB.Net)

 The Transistor from VB6 to VB.net (Chuyển tiếp từ VB6 sang VB.net)

III GIAO DIỆN CỦA CỬA SỔ ỨNG DỤNG:

Trang 7

Trước khi bạn bắt tay vào thiết kế giao diện cho ứng dụng, bạn cần phải biết rõ mục đích của ứng dụng từ đó chọn lựa các kiểu ứng dụng mà Windows hỗ trợ để xây dựng giao diện Có ba kiểu ứng dụng Windows được dùng phổ biến nhất đó là kiểu ứng dụng xử lý mỗi lần chỉ một tài liệu (Single Document interface – SDI), kiểu xử lý cùng một lúc nhiều tài liệu ( Multiple Document interface –MDI), kiểu hiển thị xử lý phân cấp Explorer Kiểu SDI và MDI đã có từ các phiên bản Windows 3.1, tuy nhiên kiểu Explorer hiện đang dùng rất phổ biến trong các ứng dụng Windows hiện đại

1.Giao diện kiểu SDI:

SDI là loại chương trình bình thường và đơn giản nhất, nó không yêu cầu chương trình chạy phải mở cùng lúc nhiều của sổ Tài liệu chỉ xử lý trong cùng một cửa sổ form của chương trình Nhiều thể hiện của chương trình có thể chạy đồng thời để xử lý cùng lúc nhiều tài liệu Hoặc ngay trong chương trình bạn có thể tạo độc lập các form đơn xử lý tách biệt nhau Mặc dù, chương trình theo giao diện SDI khá đơn giản và dễ xử lý nhưng đôi khi ứng dụng của bạn lại cần một giao diện kiểu đa tài liệu (MDI) cho phép làm việc đồng thời với nhiều cửa sổ tài liệu khác nhau

2 Giao diện kiểu MDI:

Giao diện MDI thường bao gồm một form cha chứa cùng một lúc nhiều cửa

sổ form con với các chức năng khác nhau

Giới thiệu về Form Cha:

Trong những phiên bản trước của VB, form cha được xem là khung chứa tất cả những form con trong ứng dụng, form cha có một số đặc điểm hạn chế sau:

 Một ứng dụng chỉ có thể có một form MDI cha

 Chỉ có điều khiển mang thuộc tính Align mới được đặt trực tiếp vào form MDI

 Bạn không thể dùng phương thức Print hoặc bất kỳ các phương thức đồ hoạ nào để hiển thị dữ liệu trong form MDI

Tuy nhiên trong Visual Basic Net, hầu hết những giới hạn trên đã được loại

bỏ Các đặc điểm nổi bậc của form cha giờ đây bao gồm:

 Khi bạn thu nhỏ form cha, form này và tất cả những cửa sổ con của

nó được hiển thị gom lại như một biểu tượng đơn trên thanh công cụ Khi form cha được khôi phục lại kích thước, tất cả cửa sổ form con đều trở về kích thước và vị trí nguyên thuỷ của nó

 Nếu form con có một menu, bạn có thể thiết đặt thuộc tính để xác định các menu con được hiển thị trên form chính như thế nào

Một đặc điểm mới đối với một form MDI là ứng dụng có thể định nghĩa nhiều hơn một form MDI cha Điều này cho phép bạn tạo một ứng dụng hoàn chỉnh bao gồm một hoặc nhiều cửa sổ form cha gồm một hoặc nhiều form con Form con cũng có những đặc điểm ảnh hưởng tới hoạt động của nó:

 Cửa sổ con không thể được di chuyển ra ngoài giới hạn của cửa sổ cha

Trang 8

 Khi một form con được thu nhỏ, hình tượng của nó được hiển thị trong cửa sổ cha chứ không nằm trên thanh công cụ Taskbar

 Một cửa sổ con được phóng lớn che lấp hoàn toàn vùng làm việc của cửa sổ cha Tiêu đề của cửa sổ con cũng được kết hợp với tiêu

đề của cửa sổ cha và hiển thị trên thanh tiêu đề của cửa sổ cha

Phiên bản Net của VB không yêu cầu bạn phải định nghĩa một form con Bất kỳ một form nào không phải form cha đều có thể được sử dụng một cách đơn giản như một form con bằng cách đặt thuộc tính MDIParent ở thời điểm chạy ứng dụng

3 Giao diện kiểu Explorer:

Kiểu Explorer được xem như một giao diện chuẩn trong những năm gần đây, nó là một kiến trúc sử dụng cùng một lúc nhiều thành phần điều khiển trên một giao diện SDI Các điều khiển mà bạn dùng trong việc tạo giao diện Explorer này là:

IV LẬP TRÌNH TRONG MÔI TRONG NET:

.NET Framework cung cấp một mô hình lập trình chung (Common Programming Model), là mô hình bao gồm ngôn ngữ lập trình và rất nhiều các tính năng Nếu bạn biết về các ngôn ngữ khác như C++ thì cơ cấu này sẽ giúp cho bạn thấy được các khả năng tham chiếu mã lệnh của bạn đến những ngôn ngữ khác Điều này hoàn toàn có thể thực hiện được dựa vào không gian tên (namespace), phương thức và các lớp tương thích với tất cả các ngôn ngữ được Net hỗ trợ Nghĩa là khi sử dụng Visual Basic.Net, bạn có thể viết một chuỗi hiển thị sử dụng phương thức WriteLine() của đối tượng Mỗi ngôn ngữ Net sẽ sử dụng phương thức giống nhau từ đối tượng giống nhau

1 Định nghĩa các namespace chính:

Namespace được dùng để nhận dạng một nhóm các đối tượng, chẳng hạn như điều khiển ListBox, TextBox, những điều khiển là các thành phần của hệ thống Microsoft tạo namespace để ngăn cản sự nhập nhằng về tên và các tham chiếu trở nên đơn giản khi sử dụng các nhóm đối tượng lớn như lớp thư viện

Hầu hết các lớp và phương thức mà bạn sẽ sử dụng khi lập trình trong VB.Net là các thành phần của một namespace Bảng sau là một danh sách các namespace và các lớp quan trọng trong Net Framework Các namespace này là những gì bạn sẽ tìm để dùng khi học phát triển ứng dụng với Net

Trang 9

Nên nhớ rằng bạn sẽ sử dụng hầu hết các namespace thậm chí bạn không thể nhận

ra là mình đang sử dụng nó Ví dụ, khi bạn khởi động một ứng dụng và bắt đầu thêm các điều khiển vào form tức là bạn đang sử dụng namespace System.Windows.Forms

2 Các thủ tục (hàm) tự viết:

System Bao gồm các lớp cơ bản mà các chương

trình đều sử dụng, như Object, Char, String

System.IO Cung cấp các lớp cho phép đồng thời và

không đồng thời viết và đọc trên dòng dữ liệu và tập tin

System.Drawing Cung cấp cơ chế truy cập đến lớp đồ hoạ

cơ bản GDI System.Collection Chứa các lớp định nghĩa các tập hợp đối

tượng khác nhau, như danh sách , hàng đợi, và mảng

System.Threading Cung cấp các lớp và các giao diện có khả

năng lập trình đa tuyến hay đa tiểu trình

System.Reflection Chứa các tập hợp của các lớp và các giao

diện cung cấp chủ yếu về kiểu, phương thức và các trường

System.Security Chứa tập hợp của các lớp và namespace

cung cấp sự hỗ trợ bảo mật đối với một ứng dụng, như Permission and Policy

System.Net Cung cấp các lớp và các namespace về

lập trình mạng, như Connection and IP Address

System.Data Chứa các lớp và các namespace cấu tạo

nên kiến trúc của ADO.NET

System.Data.OleDb Cung cấp các lớp về hệ quản trị CSDL,

cho phép truy cập đến nguồn dữ liệu OLE DB

System.Data.SqlClient Cung cấp các lớp về hệ quản trị CSDL,

cho phép truy cập đến nguồn dữ liệu của SQL Server

System.Web.Services Cung cấp các lớp hỗ trợ sự phát triển của

dịch vụ Web XML

System.Web.UI Cung cấp các lớp và các namespace hỗ

trợ sự phát triển trong môi trường Web

System.Windows.Forms Cung cấp các lớp và namespace hỗ trợ sự

phát triển trong môi trường Windows

Trang 10

Có hai loại chính trong Visual Basic.Net Loại thứ nhất gọi là các thủ tục,

nó thực hiện công việc nào đó và không trả về giá trị nào, loại này được gọi là subroutine( viết tắt là Sub) Loại thứ hai là các hàm, cũng thực hiện công việc nào

đó, nhưng có trả về một giá trị, loại này có tên là function Các thủ tục và hàm có tên gọi chung là routine

a Thủ tục:

Thủ tục là một khối code VB.Net thực hiện một số công việc, ví dụ như phương thức Console.WriteLine thực hiện công việc in văn bản ra màn hình, nhưng không trả về giá trị nào Ta sử dụng các thủ tục để thực hiện các tác vụ giống nhau trong các chương trình

Thông thường, nếu chương trình có một phần code được thực hiện nhiều lần, nên cho chúng vào các thủ tục Sau đó, để sử dụng chúng chỉ cần dùng tên ta đặt cho đoạn code đó Để tạo một thủ tục ta cần sử dụng từ khoá Sub Ví du :

Code thực hiện công việc

Ta có thể khai báo biến ở ngoài các thủ tục để các biến này có thể được sử dụng cho nhiều thủ tục khác nhau Nếu khai báo kiểu này, có thể dùng các từ khoá khác, Public và Private:

 Public: Các biến public được sử dụng trong toàn ứng dụng Chúng được gọi là biến toàn cục Nên ít sử dụng các biến kiểu này, nhưng nó hữu dụng khi cần một vài giá trị được sử dụng tại nhiều nơi trong chương trình, ví

dụ như biến kết nối đến cơ sở dữ liệu, hay đường dẫn đến một file

 Private: các biến Private chỉ sử dụng được trong module hay class, nơi mà chúng được khai báo Các biến Private thường được sử dụng trong các ứng dụng khi cần một giá trị chỉ có thể sử dụng trong nhiều thủ tục Tạo

Trang 11

một biến với từ khoá Private cho phép các thủ tục hay hàm trong module hay class đó xử lý biến đó

d Tầm ảnh hưởng và các thủ tục:

Cũng như các biến, các thủ tục và các hàm cũng có tầm ảnh hưởng Tầm ảnh hưởng của các thủ tục và các hàm cũng có ý nghĩa như tầm ảnh hưởng của các biến: nó cho biết những vị trí nào trong chương trình có thể sử dụng các thủ tục và hàm

Các từ khoá để định nghĩa tầm ảnh hưởng của các thủ tục và hàm cũng giống như với các biến

 Public : các thủ tục và hàm public có thể được gọi từ bất kỳ phần nào trong chương trình Đây là giá trị mặc nhiên nếu như không đặt bất kỳ từ khoá nào

 Private: các thủ tục và hàm Private chỉ có thể được gọi từ các hàm và thủ tục ở trong cùng một module hay class, nơi có định nghĩa chúng

V.TRUY CẬP DỮ LIỆU VỚI NET:

1 ADO.NET:

ADO.NET là kỹ thuật truy xuất dữ liệu và là một phần của NET Framework

Nó sẽ là công cụ của người lập trình để truy xuất dữ liệu khi lập trình trong VB.Net và là bước phát triển kế tiếp của ADO/OLEDB Công nghệ OLEDB bên dưới vẫn tồn tại, và OLEDB provider vẫn là phương pháp chính để ADO.NET trao đổi với các hệ cơ sở dữ liệu cụ thể, nhưng bên trên lớp này thì tương đồng rất

ít với các đối tượng ADO cũ

Ghi chú: ADO đóng vai trò là một lớp trên OLEDB, chính ADO sử dụng OLEDB và ODBCdriver để kết nối vào database thựcsự

Kiến trúc ADO.NET được thiết kế là một kiến trúc không kết nối (disconnected architecture) Điều này có nghĩa là các ứng dụng chỉ được kết nối

Trang 12

đủ lâu để nhận và cập nhật dữ liệu và sau đó được đóng kết nối Nếu bạn nhận dữ liệu, bạn có thể lưu trữ nó vào một trong các đối tượng dữ liệu của ADO.Net, ví dụ như DataSet hoặc DataView

Việc sử dụng một kiến trúc không kết nối cung cấp nhiều lợi ích, lợi ích quan trọng nhất là nó cho phép các ứng dụng của bạn chạy nhanh hơn Điều này

có nghĩa là cơ sở dữ liệu của bạn sẽ thực hiện tốt việc hỗ trợ cho hàng trăm người

sử dụng mà tương đương như việc hỗ trợ cho mười người sử dụng Điều này có thể thực hiện được bởi vì ứng dụng chỉ kết nối đến cơ sở dữ liệu đủ lâu để nhận và cập nhật dữ liệu, bằng cách ấy việc giải phóng các kết nối cơ sơ dữ liệu có sẳn cho các instance khác của ứng dụng của bạn

2 Không gian tên System.Data và OLEDB:

Trong Net truy cập dữ liệu được thực hiện thông qua các lớp trong namespace System.Data Namespace này được chi thành hai phần: tập các lớp thuộc System.Data.OleDB và tập các lớp thuộc System.Data.SQLClient Tập các lớp đầu tiên, System.Data.OleDB được thiết kế để cho phép kết nối với bất kỳ hệ

cơ sở dữ liệu nào nếu như có OLEDB provider hoặc một ODBC driver của nó, và tương đương với lớp ADO gốc về mặt kỹ thuật Tập thứ hai, System.Data.SQLClient, được thiết kế chỉ làm việc với Microsoft SQL Server, nhưng cung cấp tính năng rộng rãi hơn chức năng của các lớp OLEDB Kiến trúc tổng quát của các lớp truy xuất dữ liệu trong Net được mô tả trong hình sau gồm hai hệ thống chính

3 Giới thiệu về OleDbConnection:

Lớp OleDbConnection là trái tim của các lớp Nó cung cấp một kết nối từ nguồn dữ liệu của chúng ta, mà nguồn dữ liệu đó có thể là SQL Server Constructor cho lớp này nhận thông số lựa chọn là connection string

System.data

(chứa các đối tượng xử lý dữ liệu

chung)

System.data.SqlClient (chứa các đối tượng cụ thể kềt nối vào Microsoft SQL Server)

System.data.OLEDB (chứa các đối tượng xử chỉ dùng để kết nối thông qua các OLEBD Provider)

Trang 13

Connection string:

Connection string được tạo ra bởi nhiều thông số được biểu diễn ở hình sau Constructor khởi tạo một instance mới của lớp với connection string xác định Bạn cũng có thể gọi constructor mà không có connection string khởi tạo một instance mới của lớp Sau đó, bạn sẽ cần phải đặt một vài thuộc tính của lớp OleDbConnection trước khi bạn có thể sử dụng kết nối Vì thế, thật là thuận lợi để khởi tạo lớp này với một connection string, cũng như chúng ta sử dụng ít code hơn bởi vì không phải đặt một vài các thuộc tính của lớp sau khi chúng ta khởi tạo nó Connection string mà bạn sử dụng phụ thuộc vào dữ liệu lưu trữ (data store)

mà bạn truy cập Tuy nhiên, có một vài thuộc tính cơ bản của một connection string ứng dụng đến hầu hết các dữ liệu lưu trữ Bảng sau là danh sách các thuộc tính tiêu biểu để có thể đặt trong một connection string:

Provider Xác định trình cung cấp OLEDB được sử dụng

Data Source Xác định tên máy nơi dữ liệu lưu trữ được lưu

trữ

Initial catalog Xác định tên cơ sở dữ liệu được sử dụng

vào hệ thống

Password Xác định mật khẩu của người sử dụng đăng

nhập

Integrate Security Xác định trình cung cấp sẽ gọi trình cung cấp

bảo mật dành riêng trong hệ điều hành để nhận truy cập đến tên đăng nhập của chúng ta và sau

đó sử dụng tên đăng nhập này cho phép data store phải có giá trị hợp lệ với sự truy cập của chúng ta Một giá trị SSPI ( Security Support Provider Interface) thường xuyên được xác định với thông số này

Ví dụ:

OleDbConnection("Provider=SQLOLEDB.1;Integrated

Security=SSPI;Persist Security Info=False;Initial " & _

"Catalog=fafilm;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;" & _

"Workstation ID=DHKTCN;Use Encryption for Data=False;Tag with column collation wh" & _

"en possible=False")

Mỗi khi chúng ta khởi tạo một đối tượng kết nối với một connection string như

đã biểu diển ở trên, chúng ta có thể gọi bất kỳ các phương thức của đối tượng OleDbConnection như Open và Close, một cách thực sự mở và đóng một kết nối đến cơ sở dữ liệu được xác định trong connection string

Trang 14

4 Giới thiệu OleDbDataAdapter:

Lớp OleDbDataAdapter được sử dụng để đọc và ghi dữ liệu từ bất kỳ OLEDB data source và có thể được đặt để chứa các câu lệnh SQL hoặc các stored procedure được thực thi Lớp OleDbDataAdapter thực sự không lưu trữ bất kỳ dữ liệu nào nhưng được sử dụng như cầu nối giữa lớp DataSet và dữ liệu lưu trữ Hình sau sẽ cho ta nhìn thấy một cách ngắn gọn lớp DataSet:

Connection Đặt đối tượng OleDbconnection

được sử dụng để truy cập dữ liệu lưu trữ

CommandText Đặt câu lệnh SQL hoặc tên stored

procedure được sử dụng để lựa chọn dữ liệu

CommandType Đặt một giá trị để xác định thuộc

tính CommandText như thế nào được biên dịch

Ví dụ: Sử dụng SelectCommand để thực thi chuổi SQL

Data Store

OleDbDataAdapter

SelectCommand

DataSet Một tập hợp các bảng, các quan hệ chứa dữ liệu đọc được từ dữ liệu lưu trữ

Trang 15

Dim MyDataAdapter As New OleDbDataAdapter()

Ví dụ: Sử dụng SelectCommand để thực thi Stored Procedure

Dim MyDataAdapter As New OleDbDataAdapter()

MyDataAdapter.SelectCommand=new OleDbCommand()

MyDataAdapter.SelectCommand.Connection=objConnection

MyDataAdapter.SelectCommand.CommandText= _

Tên_storeprocedure MyDataAdapter.SelectCommand.CommandType= _

CommandType.Text

b Phương thức ExecuteNonQuery:

Mỗi khi chúng ta đặt thuộc tính SelectCommand một cách chính xác, chúng ta cần phải thực thi câu lệnh SQL hoặc Stored Procedure xác định trong thuộc tính CommandText Chúng ta làm điều này bằng cách gọi phương thức ExecuteNonQuery Phương thức này thực thi chuỗi SQL hoặc Stored Procedure

mà chúng ta xác định và trả về số các dòng bị tác động bởi câu lệnh SQL hoặc Stored Procedure Đối với câu lệnh Select thì phương thức này luôn trả về giá trị là -1 ,đối với câu lệnh Insert, Update, Delete thì giá trị trả về là số dòng bị tác động bởi câu lệnh

Cú pháp: Fill ( DataSet , string )

Đối số DataSet xác định một đối tượng DataSet dùng để chứa dữ liệu được điền vào Đối số string xác định tên của bảng mà được sử dụng để là bảng ánh xạ Trong trường hợp OleDbDataAdapter trả về nhiều bảng, chúng ta phải xác định bảng gốc cho thông số này Root table sẽ là bảng chính từ dữ liệu được chọn Nói cách khác, điều này có nghĩa là bảng được xác định trong mệnh đề from của câu lệnh Select

Trang 16

DataAdapter phân tích những thay đổi được tạo ra và thực thi câu lệnh riêng

(INSERT, UPDATE, hoặc DELETE) Khi DataAdapter gặp một thay đổi đến một DataRow, nó sử dụng InsertCommand, UpdateCommand, hoặc

DeleteCommand để xử lý sự thay đổi Điều này cho phép bạn tối đa hoá việc thực

thi của ứng dụng ADO.NET của bạn bởi việc xác định command syntax tại thời

điểm thiết kế Bạn phải đặt các câu lệnh trước khi gọi phương thức Update Nếu phương thức Update được gọi và command cần thực thi không tồn tại (ví dụ như không có câu lệnh DeleteCommand để xóa các dòng), thì một ngoại lệ sẽ bị ném

ra Các thông số có thể được sử dụng để xác định giá trị xuất và nhập cho câu lệnh

SQL hoặc stored procedure cho mỗi dòng bị thay đổi trong một DataSet Phương thức Update sẽ giải quyết những thay đổi của bạn và gởi trả về dữ liệu nguồn, tuy

nhiên các client khác có thể được sửa đổi dữ liệu tại dữ liệu nguồn sau khi bạn đã

điền vào DataSet Để làm tươi DataSet của bạn với dữ liệu tức thời, bạn sử dụng lại phương thức Fill của DataAdapter để điền vào DataSet Các dòng mới sẽ

được thêm vào bảng và cập nhật thông tin sẽ được phản hồi vào trong các dòng tồn tại Để xử lý các ngoại lệ có thể xuất hiện trong suốt quá trình sử dụng lệnh

Update, bạn có thể sử dụng sự kiện RowUpdated để phản hồi đến các lỗi do cập

nhật các dòng

Ví dụ sau minh họa cho việc thực thi các cập nhật đến các dòng được thay đổi

bằng cách đặt thuộc tính UpdateCommand của DataAdapter

Dim catDA As SqlDataAdapter = New SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn)

catDA.UpdateCommand = New SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " & _

"WHERE CategoryID = @CategoryID", nwindConn)

Dim cRow As DataRow = catDS.Tables("Categories").Rows(0)

cRow("CategoryName") = "New Category"

catDA.Update(catDS)

5 Giới thiệu DataSet:

Trang 17

Thành phần chính khác của ADO.NET đó là DataSet Nó tương ứng với ADO recordset Tuy nhiên, nó có hai điểm khác biệt quan trọng Thứ nhất, DataSet luôn tách rời, và hậu quả là không quan tâm nơi xuất xứ của dữ liệu – có thể dùng DataSet theo cách để điều tác dữ liệu từ một nguồn dữ liệu truyền thống hoặc từ một tư liệu XML Để nối một DataSet với một nguồn dữ liệu, ta cần dùng DataAdapter như một yếu tố trung gian giữa DataSet và trình cung cấp dữ liệu NET

Lớp DataSet được sử dụng để lưu trữ dữ liệu nhận được từ data store và lưu trữ các dữ liệu này trong bộ nhớ của Client Đối tượng DataSet chứa một tập hợp các bảng, các quan hệ chúng chứa dữ liệu đọc được từ data store

Dữ liệu trong DataSet thực sự không kết nối từ dữ liệu lưu trữ và bạn có thể chạy trên dữ liệu một cách độc lập từ dữ liệu lưu trữ Bạn có thể thao tác dữ liệu trên một đối tượng DataSet bằng cách thêm vào, sữa chữa, xoá các record Bạn có thể ứng dụng những thay đổi trở lại dữ liệu lưu trữ bằng cách sử dụng đối tượng OleDbDataAdapter

Dữ liệu trong đối tượng DataSet được biểu diển như XML, thực hiện nó rất hiệu quả để chuyển qua lại giữa các đối tượng

Ví dụ : để điền một DataSet bằng dữ liệu từ bảng Phim trong cơ sở dữ liệu Fafilm objDataSet = New DataSet()

objConnection.Open()

objDataAdapter = New OleDbDataAdapter("SELECT

maphim,tenphim,tennsx,namsx,matl,malp,sotap from phim", objConnection) objDataSet = New DataSet()

o Tạo DataSet mới

.NET Data Provider ConnectiCommanDataRead

DataAdapter

Data Source

DataSet

XML

document

Trang 18

o Gọi phương thức Fill của DataAdapter Ta truyền DataSet muốn điền dưới dạng một tham số cho phương pháp này, cùng với tên của bảng bên trong DataSet muốn điền Nếu ta gọi phương thức Fill dựa trên một tuyến nối đóng, tuyến nối sẽ tự động mở, rồi đóng lại sau khi DataSet đã được điền

6 Giới thiệu DataView:

Lớp DataView được sử dụng để sắp xếp, lọc, tìm kiếm, soạn thảo dữ liệu

từ một DataSet DataView là binbable , có nghĩa là nó có thể bound đến các điều

khiển giống như cách DataSet có thể bound đến các control

Trong bộ nhớ dữ liệu được sử dụng bởi các đối tượng DataSet và DataView là đối tượng DataTable Lớp DataView là một khung nhìn thu nhỏ của DataTable được nhận từ đối tượng DataSet

Bạn có thể tạo một DataView từ dữ liệu chứa trong một DataTable nó chỉ chứa dữ liệu mà bạn hiển thị Ví dụ, nếu dữ liệu trong DataTable chứa tất cả các tác giả đã được sắp xếp bởi họ và tên, bạn có thể tạo một DataView để chứa tất cả các tác giả được sắp xếp bởi tên trước sau đó rồi tới họ Hoặc bạn muốn tạo một DataView chỉ chứa tên hoặc họ

Dữ liệu trong một DataView là tách rời từ dữ liệu được chứa trong DataTable của DataSet, vì thế bạn có thể thực thi dữ liệu mà không ảnh hưởng gì đến dữ liệu trong DataSet

Constructor cho lớp DataView khởi tạo một instance của lớp DataView

và nhận DataTable như đối số Đoạn code sau khai báo đối tượng DataView và khởi tạo nó bằng cách sử dụng bảng authors từ DataSet tên objDataSet Chú ý, chúng ta có thể truy cập tập hợp các bảng của đối tượng DataSet bằng cách xác định thuộc tính Tables và tẽn bảng:

Dim objDataView=New DataView(objDataSet.Tables(“authors”))

a Phương thức Sort:

Mỗi khi một DataView được khởi tạo và chứa dữ liệu, bạn có thể thực thi dữ liệu Ví dụ, giả sử chúng ta muốn sắp xếp dữ liệu theo một trật tự khác hơn so với trong DataSet Để sắp xếp dữ liệu trong một DataView, chúng ta đặt phương thức Sort và xác định cột hoặc các cột mà chúng ta muốn sắp xếp Đoạn code sau sắp xếp dữ liệu trong DataView theo họ và tên tác giả:

ObjDataView.Sort=”au_fname,au_lname”

Các chức năng sắp xếp luôn được thực hiện theo một trật tự tăng dần Nếu chúng ta muốn thực hiện sắp xếp theo trật tự giảm dần cần phải thêm từ khoá DECS

Ví dụ: ObjDataView.Sort=”au_fname,au_lname DECS”

b Phương thức Find:

Nếu chúng ta muốn tìm một dòng được chỉ định trong DataView, chúng ta gọi phương thức Find Phương thức Find tìm dữ liệu trong cột khóa chính của DataView Vì thế, trước khi gọi phuơng thức Find chúng ta cần phải sắp xếp DataView trong cột chứa dữ liệu mà ta muốn tìm Cột mà DataView sắp xếp sẽ trở thành cột khóa chính trong đối tượng DataView

Trang 19

Nếu tìm thấy dòng dữ liệu thoả điều kiện tìm kiếm phương thức Find trả về vị trí của record trong DataView, còn ngược lại sẽ trả về giá trị –1 Nếu phương thức Find tìm thấy giá trị cần tìm, nó sẽ ngừng tìm kiếm và trả về vị trí mà nó tìm thấy

Ví dụ:

ObjDataView.Sort=”au_fname”

Intposition=ObjDataView.Find(“anne”)

c Thuộc tính RowsFilter:

Khi chúng ta khởi tạo DataView, chúng ta có thể lọc các dòng của dữ liệu mà

nó sẽ chứa Thuộc tính RowFilter xác định tiêu chuẩn mà ta muốn ứng dụng trong DataView và chứa một tên cột theo sau bởi một biểu thức toán học

Ví dụ:

Dim objDataView=New DataView(objDataSet.Tables(“authors”))

ObjDataView.RowsFilter=”au_lname = ‘Green’”

7 Giới thiệu các lớp SqlCommand và OleDbCommand:

Hai lớp này hầu như đồng nhất, điểm khác biệt thực sự duy nhất đó là lớp Sqlcommand phô diễn một phương pháp thi hành để trả về một luồng XML mà lớp OleDbCommand không có Đây là một khả năng được gán cho lớp SqlCommand dựa vào các khả năng XML của SQL Server 7.0 trở lên

Lớp OleDbCommand:

Lớp OleDbCommand biểu diễn một query được tạo bởi một data source Query này có thể là query Select, Insert, Update hoặc Delete và có thể được biểu diễn như một chuỗi SQL hoặc một Stored Procedure Query này được thực thi có thể chứa các thông số hoặc không có chứa thông số Chúng ta quan sát lớp OledbCommand vừa rồi trong OleDbDataAdapter, như thuộc tính Selectcommand thực sự đã được nhận từ lớp này Trong phần OleDbcommand chúng ta sử dụng lớp này để thực thi một câu query được tạo bởi dữ liệu mà không sử dụng OleDbDataAdapter

Constructor cho lớp OleDbCommand có một vài biến, nhưng phương thức đơn giản nhất là khởi tạo một đối tượng OleDbCommand không có tham số Sau đó, một khi đối tượng đã được khởi tạo bạn có thể đặt thuộc tính mà bạn cần thực thi vào Đoạn code sau biểu diễn công việc khởi tạo một đối tượng OleDbCommand: Dim objCommand As OleDbCommand = New OleDbCommand()

a Thuộc tính Connection:

Giống như đối tượng OleDbDataAdapter, có chứa nhiều thuộc tính mà chúng ta phải đặt trước khi chúng ta có thể thực thi một câu query Thuộc tính đầu tiên là thuộc tính Connection Thuộc tính này được đặt đến một đối tượng mà đối tượng này chứa một kết nối hoạt động đến cơ sở dữ liệu lưu trữ như đối tượng OleDbConnection

Ví dụ: objCommand.Connection=objConnection

b Thuộc tính CommandText và CommandType:

Thuộc tính kế tiếp mà ta phải đặt là thuộc tính CommandText Thuộc tính này xác định chuỗi SQL hoặc stored procedure được thực thi Theo sau thuộc

Trang 20

tính này là thuộc tính CommandType, thuộc tính này xác định thuộc tính CommandText được biên dịch như thế nào

 CloseConnection – tuyến nối được đóng khi DataReader kết hợp được đóng

Trang 21

 KeyInfo – lệnh truy vấn trả về thông tin khoá chính và cột Lệnh truy vấn được thi hành mà không khóa trên các hàng đã lựa Khi dùng KeyInfo, trình cung cấp dữ liệu SQL Server chắp một mệnh đề FOR BROWSE vào câu lệnh đang được thi hành

 SchemaOnly – lệnh chỉ trả về thông tin cột và không tác động gì đến cơ sở

dữ liệu

 SequetialAccess – các kết quả của lệnh truy vấn được đọc tuần tự đến cấp cột Điều này cho phép đọc dữ liệu nhị phân lớn bằng các phương pháp GetChars hoặc GetBytes

 SingleResult – trả về một kết quả đơn lẻ

 SingleRow –trả về một hàng dữ liệu đơn lẻ

Mã sau đây minh họa cách thực thi phương pháp ExecuteReader():

Public Sub CreateMyOleDbDataReader(mySelectQuery As

Select count (*) Dùng ExecuteScalar() ít thiên về mã hơn, và cũng yêu cầu ít tài

nguyên hệ thống hơn so với việc dùng ExecuteReader() rồi triệu gọi phương pháp ExecuteReader.Read() để có giá trị trả về Phương pháp ExecuteReader() tạo một luồng bộ đọc dữ liệu trên tuyến nối, ngăn cấm mọi thứ dùng tuyến nối cho đến khi đóng bộ đọc dữ liệu nhưng ExecuteScalar() không làm như thế Đoạn mã sau đây minh hoạ cách thực thi phương pháp ExecuteScalar():

Public Sub CreateMyOleDbCommand(myScalarQuery As String, myConnection

Trang 22

End Sub 'CreateMyOleDbCommand

Các trình cung cấp dữ liệu NET có gộp các lớp để tạo các đối tượng tham số

có thể được bổ sung vào ParametersCollection của một lệnh Các tham số được tạo bằng một tên, kiểu dữ liệu, phần chỉ định nhập hoặc xuất và một giá trị nếu

áp dụng được Cả hai lớp SqlParameter và OleDbParameter vận hành giống nhau : tuy nhiên, SqlParameter được truyền cho SQL Server dưới dạng các tham số hữu danh và phải ánh xạ theo các tên tham số trong các stored procedure

Để tạo các lệnh truy vấn T-SQL được tham số hoá, ta bổ sung một hoặc nhiều tham số vào câu lệnh T-SQL và bổ sung cùng các tham số vào sưu tập Parameters của lệnh Điều này được minh hoạ trong mã sau đây:

Dim objCommand As OleDbCommand = New OleDbCommand()

Trang 23

I GIỚI THIỆU SQL SERVER:

Microsoft SQL Server cho phép những ứng dụng Client điều khiển những thông tin được truy xuất từ Server bằng cách sử dụng một vài công cụ và kỹ thuật đặc biệt Chúng ta cũng có thể xử lý thông tin trên máy Client khi cần thiết

Đặc điểm chính của SQL Server là một cơ sở dữ liệu quan hệ Trong đó dữ liệu được tham khảo như những hàng và cột của hàng Đối với mô hình quan hệ được thực hiện trong nó thì các hàng của bảng dữ liệu không được xếp thứ tự từ khi chúng ta tạo index cho bảng Tuy nhiên chúng ta có thể truy xuất và hiển thị các hàng theo thứ tự nào đó Chúng ta phải sử dụng những câu phát biểu của ngôn ngữ SQL thích hợp để truy xuất theo thứ tự đó Mô hình quan hệ theo lý thuyết ban đầu yêu cầu mỗi hàng được định nghĩa độc lập bởi ít nhất một cột của bảng gọi là khóa (Primary key ) Việc yêu cầu mỗi hàng là duy nhất nhằm đảm bảo rằng mỗi hàm được truy xuất hay thay đổi độc lập và duy nhất với các hàng khác trong Table Tuy nhiên SQL Server không đòi hỏi chúng ta định nghĩa những hàng trong Table là duy nhất

Trang 24

Thành phần của SQL Server là cơ sở dữ liệu quan hệ và cấu trúc của nó SQL Server là cơ sở dữ liệu toàn diện, mạnh và an toàn với khả năng như sau:

Microsoft SQL Server cho phép chúng ta định nghĩa đến 32676 Database, khó có ứng dụng nào vượt quá giới hạn cho phép trên Trong các ứng dụng thông thường chỉ có vài Database trong một dịch vụ trên Serser Chưa kể chúng ta định nghĩa đến hai tỷ Table cho một Database Dễ thấy rằng không có nơi nào cần đến hai tỷ Table trong một cơ sở dử liệu

SQL Server cho phép chúng ta định nghĩa đến 250 cột cho mỗi Table, và nó cũng cho phép kết các cột từ 16 Table khác nhau trong một Query SQL không giới hạn số hàng trong Table, tuy nhiên trên thực tế bị giới hạn bởi môi trường lưu trữ Các Database và những Table của nó có thể được chứa trong nhiều đĩa vật lý Microsoft SQL Server cho phép Database mở rộng đến 32 đĩa vật lý Chúng ta có thể định nghĩa đến 250 index trong mỗi Table nhưng chỉ có một trong số đó là Clustered index Index là một cấu trúc cho phép các hàng của Table được truy xuất nhanh hơn không sử dụng index Trong Clustered index, những hàng của Table được sắp xếp thứ tự, duy trì và lưu trữ có thứ tự trên đĩa vật lý, các hàng được sắp xếp thứ tự thêm vào Chúng ta thường định nghĩa index cho những cột được truy xuất thường xuyên để tăng tốc độ truy xuất Index tốn không gian lưu trữ trong Database để chứa các cấu trúc index chúng ta cần định nghĩa index để tăng tốc độ truy xuất các hàng và thường ít khi dùng hết 250 index cho một Table

Các đối tượng dữ liệu SQL Server:

Các cơ sở dữ liệu SQL Server bao gồm cả dữ liệu lẫn đối tượng cơ sở dữ liệu Đối tượng cơ sở dữ liệu được dùng để chứa dữ liệu ( 1 đối tượng như một bảng chẳng hạn ) hoặc để tương tác với dữ liệu (một đối tượng như một thủ tục trử sẳn chẳng hạn ) Về cốt lõi mọi thứ do SQL Server quản lý đều là một đối tượng bao gồm một co sở dữ liệu SQL và mọi thứ mà từng cơ sở dữ liệu chứa một cơ sở

dữ liệu có thể chứa các đối tượng khác nhau như bảng, kiểu xem, chỉ mục, kiểu cơ

sở dữ liệu, trị ngầm định, qui tắc thủ tục trữ sẵn, lệnh ứng tác và các hạn chế

Bảng ( Table ) là đối tượng quan trọng nhất trong một cơ sở dữ liệu bởi vì

đó là nơi lưu trữ dữ liệu Các bảng được hình thành bởi các hàng [bảng ghi ][record] và các cột [ fields]

Trong một cơ sở dữ liệu có thể chứa nhiều đối tượng khác nhau nhưng trong SQL Server thì đối tượng bảng đóng vai trò quan trọng nhất vì nền tảng của

cơ sở dữ liệu là “bảng “ , đồng thời bảng là những đối tượng có cơ sở dữ liệu chứa những dữ liệu trong SQL Server Trong bảng dữ liệu được tổ chức theo dạng hàng _ cột như một bảng tính Mỗi hàng biểu diễn một record duy nhất, mỗi cột biểu diễn một thuộc tính của record

Khi thiết kế cơ sở dữ liệu cần xác định rõ loại bảng cần có, loại dữ liệu cho từng bảng, ai có thể truy cập …

Để tạo và làm việc với bảng, nhiều loại đối tượng dữ liệu khác nhau được dùng bao gồm loại dữ liệu (datatype ), ràng buộc (constrains), mặc định (default), qui tắc (rules), bẫy (triggers ), khóa (keys) và chỉ định (indexes)

Trang 25

Mỗi cột được gán cho một loại dữ liệu , xác định trị cho phép của cột đó

Có thể dùng Datatype của SQL Server hoặc Datatype mà người sử dụng tạo ( theo yêu cầu riêng )

Trong SQL Server mỗi cột trong record phải có một giá trị dù giá trị đó là null ( tuỳ loại Datatype mà giá trị Null có được nhận hay không)

Bảng thường có một cột hay nhiều cột kết hợp mà giá trị của nó xác định duy nhất một hàng trong cột Cột (hay các cột này ) gọi là khóa (Primary key ) của bản Khóa không thể là Null Tương tự các cơ sở dữ liệu của các ngôn ngữ khác ta cũng có khóa ngoại (Foreign key ) Foreign key có thể là Null nhưng tất cả các thành phần hợp thành Foreign key phải là Null

Kiểu xem: được tạo để đưa ra các cách thay thế khi xem dữ liệu lưu trữ

trong bảng Có thể tạo các kiểu xem để hiển thị một tập con dữ liệu từ chỉ một bảng hoặc có thể nối kết và tổ hợp hai hay nhiều bảng để tạo ra một kiểu xem Bản thân các kiểu xem không chứa dữ liệu, chúng chỉ trỏ đến dữ liệu đã chọn trong các bảng và trình bày nó bằng hình ảnh

Chỉ mục : là những đối tượng có cơ sở dữ liệu dùng để tăng tốc độ truy cập

dữ liệu Các chỉ mục chứa các biến con trỏ được xếp theo thứ tự trỏ đến dữ liệu lưu trữ trong các bảng SQL Server có hai kiểu chỉ mục khác nhau :

 Chỉ mục kết cụm : buộc các hàng trong bảng, thực tế lưu trữ theo thứ tự sấp xếp dùng một cột của bảng để sấp xếp các hàng

 Chỉ mục phi cụm : không thực tế dàn xếp dữ liệu mà trỏ đến dữ liệu trong bảng

Kiểu dữ liệu : Định nghĩa hoặc mô tả kiểu dữ liệu có thể được đưa vào một

cột và cách mà nó được SQL Server lưu trữ Kiểu dữ liệu phải được chỉ định cho mọi cột trong bảng

Trị ngầm định :là những giá trị được tự động nhập vào các cột khi không

có giá trị nào được nhập vào đó trong khi nhập liệu Các trị ngầm định có thể được gán cho bất kỳ cột nào trong bảng

Qui tắc [rules]: là những đối tượng có cơ sở dữ liệu được dùng để điều

khiển các dữ liệu có thể nhập vào một bảng Đây là trường hợp ngăn ngừa việc nhập sai dữ liệu vào một bảng

Các thủ tục lưu trữ sẵn:

 là những đối tượng có cơ sở dữ liệu mạnh và linh hoạt cho phép bạn tự động hóa nhiều công việc Chúng bao gồm nhiều điều lệnh Transact-SQL biên dịch sẵn, thi hành một hay một loạt công việc định sẵn Mọi thủ tục lưu trữ sẵn thường bắt đầu bằng các ký tự “sp-“ và được lưu trữ trong cơ sở

dữ liệu Master

 Nếu thủ tục lưu trữ sẵn được nhập từ công cụ SQL Query thì nó sẽ được thực thi và thông tin trợ giúp về các cơ sở dữ liệu do SQL Server quản lý xuất hiện SQL Server có thể thực hiện bao gồm việc chèn, cập nhật và xoá records

Trigger: là một kiểu thủ tục lưu trữ sẵn đặc biệt thi hành mỗi khi xảy ra các

sự kiện cụ thể cho một bảng Ví dụ mỗi khi chèn, cập nhật hay xoá dữ liệu trong

Trang 26

một bảng Trigger có thể tự động phát động, thi hành một loạt lệnh T-SQL có trong Trigger Thực hiện hầu hết những công việc mà SQL có thể thực hiện

Hạn chế [Constraints] : Dùng để củng cố tính nguyên vẹn dữ liệu Trong

nhiều cách chúng cũng giống như các kiểu dữ liệu, trị ngầm định, qui tắc và lệnh ứng tác, tất cả đều được dùng để củng cố tính nguyên vẹn dữ liệu

II BẢO MẬT CỦA SQL SERVER:

Có 3 mức độ như sau:

 Standard Security: đòi hỏi chúng ta login vào SQL phải sử dụng

UserName và ID

 Integrated security: chúng ta chỉ cần login vào mạng Windows NT, không

cần login lần thứ hai vào SQL Server chúng ta vẫn được nhắc khi vào SQL Server nhưng UserName trong SQL Server được lấy từ login ID của mạng

 Mixered security: cho phép chúng ta vào SQL Server hoặc sử dụng

Integrated login vào Windows NT Integrated login được sử dụng với sự kết nối Client đến Server sử dụng Name pipe

III CÁC KIỂU DỮ LIỆU TRONG SQL SERVER:

Trong SQL Server có rất nhiều kiểu dữ liệu, rất đa dạng từ loại lưu trữ từng bit nhị phân đến loại chứa đến hai tỷ bytes dữ liệu Trong phạm vi đề tài chỉ trình bày những kiểu dữ liệu có sử dụng trong các Table của chương trình

Chúng ta có thể sử dụng datatype có sẳn của SQL Server hoặc có thể tạo datatype mới Trong SQL Server có những kiểu data chuẩn sau: Numeric Integer (Int, Smallint, tintint); Numeric Floatinpoint (real, float(n), decimal(n)); Character( char, varchar); datetime; small datetime; bit; binary; text; image; money; smallmoney; sysname…

Trong phần này chỉ giới thiệu một số kiểu data chính:

 Real: kiểu số thực

 Char(n): kiểu chuổi ký tự có độ dài tối đa n ký tự

 Bit: chỉ có giá trị 0 hoặc 1

 Datetime: kiểu ngày

 Text và image: giống kiểu memo của Fox, chiều dài tối đa có thể lên tới 2,147,483,647 byte Có một điều lưu ý là đây không phải là kiểu dữ liệu dùng để lưu trữ hình ảnh

 Numeric(m,n): kiểu số có phần thập phân (n)

 Int : loại này có thể chứa tất cả các số nguyên dương và số nguyên âm

 Smallint: loại này có thể chứa các số nằm trong khoảng –32.768  32.767 mỗi giá trị được lưu trữ trong kiểu này sử dụng 15 bit chứa giá trị và một bit dấu

 Varchar: là một loại chứa những chuổi ký tự có chiều dài thay đổi, chiều dài tối đa là 255 ký tự Loại này không giống với loại char nghĩa là các khoảng trắng không được thêm vào cuối chuỗi khi chiều dài chuỗi nhỏ hơn chiều dài tối đa được khai báo

Trang 27

 Text: kiểu này cho phép lưu trữ từ 1 đến 2147483647 bytes data

IV CẤU TRÚC CỦA CƠ SỞ DỮ LIỆU:

Trong cấu trúc logic của cơ sở dữ liệu này có thể khác biệt với cấu trúc của một cơ sở dữ liệu khác, thì cấu trúc vật lý của hệ thống cơ sở dữ liệu cũng khác nhau một cách đáng kể Những máy Mainframe rõ ràng là khác hẳn những máy Minicomputer và lại khác biệt nhiều hơn nữa so với những máy PC Nhưng tất cả loại máy này đều có thể chạy những hệ thống quản trị cơ sở dữ liệu Cấu trúc của những hệ thống quản trị cơ sở dữ liệu này tuỳ thuộc vào phần cứng và tuỳ thuộc vào kiểu truy xuất dữ liệu yêu cầu

Có một số phương thức theo đó bạn có thể thành lập cơ cấu cho một hệ thống máy tính để giúp bạn truy xuất cơ sở dữ liệu, nhưng dù sao thì những phương thức này cũng chỉ rơi vào một trong hai loại:

 Cơ cấu đơn lẻ

 Cơ cấu nhiều người sử dụng

Trong một cơ cấu đơn lẻ thì chỉ có một máy PC, máy này vừa làm máy chủ cho

cơ sở dữ liệu vừa dành cho người sử dụng Trong một hệ thống nhiều người sử dụng, nhiều người có thể truy xuất cơ sở dữ liệu đồng thời; cơ sở dữ liệu có thể

ở trên một máy PC hoặc trải trên nhiều máy

1 Hệ thống cơ sở dữ liệu đơn lẻ:

Một hệ thống cơ sở dữ liệu đơn lẻ thì chỉ bao gồm một máy PC Dữ liệu thì lưu trú trong ký ức máy còn người sử dụng thì ngồi trước màn hình và tay gỏ trên phím Hệ quản trị cơ sở dữ liệu trong trường hợp này là một phần mềm tích hợp đơn độc Vì một hệ thống như thế, mỗi lúc chỉ phục vụ một người, nên những hệ thống cơ sỡ dữ liệu đơn lẻ và những áp dụng kết hợp với chúng tương đối nhỏ

Kiểu khai thác nói trên thường phung phí rất nhiều năng lực của máy PC Trong lúc mà người sử dụng đặt ngón tay vào bàn phím để thực hiện bấm một phím thì máy PC có thể thi hành hàng triệu chỉ thị Vì thế, những máy PC chạy đơn lẻ và sử dụng trong việc khai thác những cơ sở dữ liệu nhỏ sẽ phí thời gian rất nhiều vào việc chờ điều hành viên thực hiện một thao tác nào đó

2 Hệ thống cơ sở dữ liệu nhiều người sử dụng:

Bạn có thể nhận ra ngay tên gọi của nó, hệ thống cơ sở dữ liệu nhiều người sử dụng có thể sử dụng đồng thời cho nhiều người Điều này rất hay theo quan quan điểm về hiệu quả sử dụng, bởi vì hệ thống có thể lo chuyện đáp ứng yêu cầu của người sử dụng này trong lúc chờ đợi người khác nhập liệu

Có bốn cấu hình khác nhau có thể chu cấp khả năng khai thác nhiều người sử dụng:

 Khai thác từ xa

 Client/Server

 Cấu trúc chia sẻ nguồn lực hệ thống

 Khai thác dữ liệu theo kiểu phân bố

a Khai thác từ xa:

Trang 28

Phương thức tiếp cận trước đây là hệ thống khai thác từ xa, trong đó một bộ

xử lý trung tâm có năng lực sẽ được kết nối với nhiều máy đầu cuối có tên gọi là

“Dumb Teminals” Người sử dụng tương tác với cơ sở dữ liệu thông qua máy đầu cuối này Phương pháp này được trình bày trong hình sau, có những mặt hạn chế đáng kể Bởi vì chỉ có một đơn vị xử lý lo mọi chuyện nên hiệu năng của hệ thống sẽ bị giảm sút một cách đáng kể khi số người sử dụng tăng thêm Hiệu năng của hệ thống cũng tuỳ thuộc vào bề rộng của băng truyền dữ liệu ( khả năng truyền tải thông tin) được dùng để nối đơn vị xử lý trung tâm với những người sử dụng Bề rộng băng truyền càng nhỏ thì càng ít thông tin được truyền tải mỗi giây trên kênh truyền Khi bạn tăng thêm số người sử dụng hệ thống thì băng truyền dữ liệu dễ bị “kẹt” vì số lượng lưu thông nhiều hơn Hơn nữa, những máy PC đủ năng lực để hỗ trợ đối với một số lượng lớn người sử dụng thỉ thường là những máy Mainframe rất đắt tiền

MÔ HÌNH LAN VỚI WINDOWS NT VÀ SQL SERVER DATABASE

b Client/Server:

Một cấu hình nhiều người sử dụng thứ hai là cấu hình theo kiểu Client/Server Trong hệ thống này, một đơn vị xử lý trung tâm gọi là máy chủ (Server) sẽ được nối với nhiều máy Pc khác gọi là Client Người sử dụng chỉ cần ngồi ngay tại máy PC ở Client, ở máy đó chạy những hệ thống áp dụng khai thác trên một cơ sở dữ liệu nằm ở máy Server Vì những máy Client chỉ hành xử phần việc khai thác có ý nghĩa riêng đối với nó (phần áp dụng tại trạm Client), nên máy Server đang chạy như môt động cơ chính của hệ quản trị cơ sở dữ liệu, có thể tập trung vào việc xử lý dữ liệu Database Engine là thuật ngữ dùng để chỉ bộ phận của hệ quản trị cơ sở dữ liệu tác động trực tiếp với dữ liệu của hệ thống

Máy Server thông minh thuộc một hệ thống Client/Server được gọi là Database Server Máy này có thể là một máy vi tính không đắt lắm không cần phải

WINDOWS NT SERVER

SQL SERVER

DATABASE

Ngày đăng: 05/11/2013, 15:42

HÌNH ẢNH LIÊN QUAN

Hình sau sẽ cho ta nhìn thấy một cách ngắn gọn lớp DataSet: - LUẬN VĂN LẬP TRÌNH TRONG MÔI TRƯỜNG .NET
Hình sau sẽ cho ta nhìn thấy một cách ngắn gọn lớp DataSet: (Trang 14)
Hình sau trình bày một sơ đồ tổ chức tiêu biểu của hệ thống theo cấu trúc  Client/Server - LUẬN VĂN LẬP TRÌNH TRONG MÔI TRƯỜNG .NET
Hình sau trình bày một sơ đồ tổ chức tiêu biểu của hệ thống theo cấu trúc Client/Server (Trang 29)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w