TỔNG QUAN VỀ MÔ HÌNH CLIENT/ SERVER
Các kiến thức tổng quan về CSDL
Một hệ CSDL (DB system) bao gồm một CSDL (Database) và một hệ quản trị CSDL (DBMS)
CSDL (Cơ sở dữ liệu) là một tập hợp dữ liệu được tổ chức và lưu trữ một cách có hệ thống, phục vụ cho nhiều người dùng với các mục đích khác nhau.
Hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm thiết yếu giúp lưu trữ, truy xuất và quản lý cơ sở dữ liệu một cách hiệu quả Nó cung cấp môi trường thuận lợi cho người dùng và ứng dụng, tối ưu hóa việc sử dụng tài nguyên dữ liệu Hệ quản trị CSDL đóng vai trò quan trọng trong việc giải quyết các vấn đề như bảo mật và cạnh tranh trong truy xuất dữ liệu.
Các giai đoạn phát triển của mộ t hệ quản trị CSDL
Vào những năm 1975-1976, IBM giới thiệu hệ quản trị cơ sở dữ liệu quan hệ đầu tiên mang tên SYSTEM-R, sử dụng ngôn ngữ SEQUEL (Structured English Query Language) để tương tác với cơ sở dữ liệu.
Vào năm 1976, ngôn ngữ SEQUEL đã được nâng cấp thành SEQUEL2 Đến khoảng năm 1978-1979, SEQUEL2 tiếp tục được cải tiến và đổi tên thành Ngôn ngữ truy vấn có cấu trúc (SQL) Cuối năm 1979, SQL đã được phát triển thêm và trở thành SYSTEM-R.
In 1986, the American National Standards Institute (ANSI) recognized and standardized the SQL language, which was subsequently acknowledged by the International Standards Organization (ISO), leading to the establishment of the SQL-86 standard.
Tới nay SQL đã qua 3 lần chuẩn hóa lại (1989, 1992, 1996) để mở rộng các phép toán và tăng cường khả năng bảo mật và tính toàn vẹn dữ liệu
Ngôn ngữ cơ sở dữ liệu (CSDL) được triển khai khác nhau tùy thuộc vào từng hệ quản trị CSDL, nhưng đều phải tuân theo một tiêu chuẩn nhất định Hiện nay, hầu hết các ngôn ngữ truy vấn CSDL đều dựa trên chuẩn SQL-92.
Giới thiệu về mô hình Client/ Server
Mô hình client-server là một kiến trúc phổ biến trong mạng máy tính, được sử dụng rộng rãi cho tất cả các trang web hiện nay Trong mô hình này, máy con (máy khách) gửi yêu cầu đến máy chủ, và máy chủ (người cung ứng dịch vụ) sẽ xử lý yêu cầu đó và trả lại kết quả cho máy khách.
Mô hình master-slaver là một cấu trúc trong đó máy chủ (ông chủ) tự động gửi dữ liệu đến máy con (nô lệ) mà không cần xem xét nhu cầu của máy con.
Mô hình Web client/server :
Thuật ngữ server đề cập đến các chương trình thực hiện dịch vụ trên toàn mạng, chấp nhận yêu cầu từ mọi nguồn và trả kết quả về máy yêu cầu Chương trình được gọi là client khi gửi yêu cầu tới server và chờ phản hồi Server và client giao tiếp qua các thông điệp thông qua cổng truyền thông IPC (Interprocess Communication) Để giao tiếp, cần có một giao thức chuẩn mà client phải tuân theo khi yêu cầu thông tin từ server Mặc dù có thể tạo ra giao thức riêng khi xây dựng mô hình client/server, thường chỉ thực hiện ở tầng ứng dụng Sự phát triển mạng hiện nay đã dẫn đến nhiều giao thức chuẩn mới ra đời để đáp ứng nhu cầu này.
Các giao thức chuẩn phổ biến hiện nay ở tầng mạng và vận chuyển bao gồm TCP/IP, SNA của IBM, OSI, ISDN, X.25 và giao thức LAN-to-LAN NetBIOS Trong mô hình client/server, máy tính chứa chương trình server được gọi là máy chủ, trong khi máy chứa chương trình client được gọi là máy tớ Mô hình này cho phép các máy chủ và máy tớ giao tiếp với nhau thông qua một hoặc nhiều dịch vụ.
Mô hình client/server là một giải pháp hiệu quả cho việc truyền thông liên tiến trình trên các máy tính cá nhân Nó cho phép xây dựng và triển khai các chương trình client/server một cách dễ dàng, giúp các ứng dụng tương tác với nhau một cách hiệu quả hơn.
Mô hình client/server là một cấu trúc tổng quát, cho phép một server kết nối với nhiều server khác để cải thiện hiệu suất và tốc độ xử lý Khi nhận yêu cầu từ client, server có thể chuyển tiếp yêu cầu đó đến các server khác để đáp ứng nhanh chóng hơn.
Máy chủ có khả năng thực hiện các nhiệm vụ đơn giản hoặc phức tạp, và trong trường hợp không thể xử lý yêu cầu, nó có thể nhận hỗ trợ từ các máy chủ khác, chẳng hạn như máy chủ cơ sở dữ liệu.
Máy chủ hoạt động theo nguyên lý nhận và xử lý yêu cầu từ máy client, như ví dụ về việc trả lời thời gian hiện tại Khi client gửi yêu cầu theo tiêu chuẩn của server, nếu yêu cầu được chấp nhận, server sẽ trả về thông tin cần thiết Dịch vụ server trên mạng đều tuân theo quy trình này và thường được thực hiện trên hai máy khác nhau Mặc dù server luôn ở trạng thái sẵn sàng, quá trình tương tác giữa client và server bắt đầu từ phía client khi gửi tín hiệu yêu cầu Các chương trình server thường hoạt động ở tầng ứng dụng của mạng.
Phương pháp này mang lại sự thuận lợi khi có thể hoạt động trên bất kỳ mạng máy tính nào hỗ trợ giao thức TCP/IP Việc sử dụng các giao thức chuẩn này giúp nhà sản xuất dễ dàng tích hợp nhiều sản phẩm khác nhau lên mạng mà không gặp khó khăn Các chương trình server cho dịch vụ có thể thực hiện trên hệ thống chia sẻ thời gian với nhiều chương trình và dịch vụ khác, hoặc có thể chạy trên một máy tính cá nhân thông thường.
Có thể có nhiều chương server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính
Mô hình client/server chủ yếu tập trung vào phần mềm, không liên quan nhiều đến phần cứng, mặc dù máy chủ (server) yêu cầu cấu hình cao hơn so với máy khách (client) Điều này là do máy chủ phải xử lý nhiều yêu cầu đồng thời từ các máy khách khác nhau trên mạng Một trong những ưu điểm của mô hình này là người sử dụng có thể truy cập dữ liệu từ xa một cách dễ dàng.
10 gồm các công việc như gửi và nhận file, tìm kiếm thông tin, ) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được
Mô hình client/server tạo điều kiện thuận lợi cho việc áp dụng các kỹ thuật hiện đại như thiết kế hướng đối tượng, hệ chuyên gia và hệ thông tin địa lý (GIS) Tuy nhiên, một thách thức lớn trong mô hình này là đảm bảo an toàn và bảo mật thông tin trên mạng, do dữ liệu cần được trao đổi giữa hai máy ở các vị trí khác nhau, dẫn đến nguy cơ thông tin bị lộ trong quá trình truyền tải.
Trong mô hình client/server, máy client được định nghĩa là một máy trạm sử dụng riêng cho một người dùng, nhằm thể hiện tính độc lập Máy client có thể chạy trên các hệ điều hành như Win9x, DOS, OS/2 và đã tích hợp nhiều chức năng Khi kết nối vào mạng LAN hoặc WAN theo mô hình client/server, máy client có khả năng sử dụng thêm các chức năng từ hệ điều hành mạng (NOS), cho phép truy cập vào nhiều dịch vụ khác nhau do các server cung cấp, chẳng hạn như yêu cầu dữ liệu từ server hoặc gửi dữ liệu lên server.
Trong mô hình client/server, các chức năng hoạt động chủ yếu dựa vào sự kết hợp giữa client và server, cho phép chia sẻ tài nguyên và dữ liệu một cách hiệu quả.
Trong mô hình client/server, client đóng vai trò quan trọng khi sử dụng các dịch vụ mạng do một hoặc nhiều máy chủ cung cấp, trong khi server là đơn vị cung cấp dịch vụ để đáp ứng yêu cầu từ các client Hiểu rõ vai trò của client trong mô hình này là cần thiết, vì một máy client có thể hoạt động như server trong một mô hình khác.
Máy trạm làm việc có thể hoạt động như một client trong mạng LAN, đồng thời đóng vai trò là máy in chủ (printer server), cung cấp dịch vụ in ấn từ xa cho nhiều client khác Client được hiểu là giao diện hiển thị các dịch vụ mạng, với thông tin vào hoặc ra được thể hiện trên thiết bị này.
Các đặc trưng của mô hình Client/server
Mô hình Client/Server là một phần quan trọng trong hệ quản trị cơ sở dữ liệu SQL, nơi SQL đóng vai trò điều khiển tất cả các chức năng mà hệ thống cung cấp cho người dùng.
SQL cho phép người dùng định nghĩa cơ sở dữ liệu, thiết lập các cấu trúc lưu trữ và tổ chức dữ liệu, đồng thời xác định mối quan hệ giữa các thành phần dữ liệu.
Với SQL, người dùng có khả nă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 một cách dễ dàng trong các cơ sở dữ liệu (CSDL).
SQL cho phép điều khiển truy cập bằng cách 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, từ đó đảm bảo an toàn cho thông tin.
SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu, giúp đảm bảo tính hợp lệ và chính xác của dữ liệu Điều này rất quan trọng để ngăn chặn các lỗi trong hệ thống và bảo vệ dữ liệu trước các thao tác cập nhật.
SQL là ngôn ngữ hoàn thiện và không thể thiếu trong quản trị cơ sở dữ liệu Mặc dù không phải là ngôn ngữ lập trình như C hay Java, các câu lệnh SQL có thể được nhúng vào các ngôn ngữ lập trình khác để phát triển ứng dụng tương tác với cơ sở dữ liệu.
Một ứng dụng kiểu Client/Server bao gồm 2 phần: Một phần chạy trên Server (máy chủ) và phần khác chạy trên các Workstations (máy trạm)
Một cơ sở dữ liệu (CSDL) cần đảm bảo tính độc lập giữa dữ liệu và chương trình ứng dụng Trong mô hình CSDL Client/Server, dữ liệu được lưu trữ trên máy chủ (Server) trong khi các chương trình ứng dụng chạy trên máy khách (Client) khác.
Trong mô hình này, các thành phần ứng dụng trên hệ thống Client gửi yêu cầu đến phần mềm CSDL trên máy Client Phần mềm này sau đó kết nối với phần mềm CSDL trên Server, cho phép truy cập vào cơ sở dữ liệu và gửi kết quả trở lại máy Client.
Các tầng cấu trúc
Theo kiến trúc ANSI-PARC, cơ sở dữ liệu (CSDL) được tổ chức thành ba mức biểu diễn Mức đầu tiên là mô hình dữ liệu mức thấp, hay còn gọi là mức vật lý, mô tả chi tiết cách thức dữ liệu được lưu trữ trong máy tính, do đó còn được gọi là mức lưu trữ của CSDL.
Tại mức này, cần xác định loại dữ liệu cần lưu trữ, phương thức lưu trữ (trên đĩa từ, băng từ, track, sector) và các chỉ mục cần thiết Việc truy xuất dữ liệu có thể diễn ra theo cách tuần tự (Sequential Access) hoặc ngẫu nhiên (Random Access) tùy thuộc vào từng loại dữ liệu trong SQL Server.
Những người hiểu và làm việc với CSDL tại mức này là người quản trị CSDL (Administrator), những người sử dụng (NSD) chuyên môn
Ví dụ : Mô hình quan hệ, mô hình mạng, mô hình phân cấp b Mô hình dữ liệu mức cao (Mức quan niệm)
Cung cấp các khái niệm gần gũi với người dùng Mô hình tự nhiên và giàu ngữ nghĩa
Tại mức này, chúng ta sẽ trả lời câu hỏi về số lượng và loại dữ liệu mà cơ sở dữ liệu (CSDL) cần lưu trữ Điều này bao gồm việc xác định các loại dữ liệu cụ thể và mối quan hệ giữa chúng, giúp tối ưu hóa quản lý và truy xuất thông tin trong CSDL.
Các chuyên viên tin học, thông qua khảo sát và phân tích, cùng với những người quản trị cơ sở dữ liệu (CSDL), sẽ xác định các loại thông tin cần thiết để đưa vào CSDL Họ cũng sẽ mô tả rõ ràng mối liên hệ giữa các thông tin này.
CSDL mức quan niệm và CSDL mức vật lý có mối quan hệ chặt chẽ, trong đó CSDL mức quan niệm đại diện cho một hình thức trừu tượng của CSDL mức vật lý Ngược lại, CSDL vật lý được xem như là một cài đặt cụ thể của CSDL mức quan niệm.
Mô hình dữ liệu mức thực hiện cung cấp khái niệm dễ hiểu cho người dùng mà không làm mất đi tính chính xác của dữ liệu tổ chức trên máy Mỗi người dùng hoặc chương trình ứng dụng có thể "nhìn" thấy cơ sở dữ liệu (CSDL) từ những góc độ khác nhau, cho phép họ truy cập toàn bộ, một phần, hoặc chỉ thông tin tổng hợp Người dùng và ứng dụng có thể không cần biết về cấu trúc tổ chức lưu trữ thông tin trong CSDL, bao gồm cả tên các loại dữ liệu hay thuộc tính Họ chỉ làm việc trên một phần CSDL theo cách "nhìn" được quy định bởi người quản trị hoặc chương trình ứng dụng, gọi là khung nhìn (View).
Các mô hình dữ liệu của hệ thống Client/Server
a Mô hình CSDL tập trung (Centralized database model)
Trong mô hình này, các thành phần xử lý ứng dụng, phần mềm CSDL và bản thân CSDL đều ở trên một bộ xử lý
Người dùng máy tính cá nhân có thể sử dụng phần mềm CSDL Oracle để truy cập cơ sở dữ liệu trên ổ cứng của máy tính Khi các thành phần ứng dụng, phần mềm CSDL và cơ sở dữ liệu được lưu trữ trên cùng một máy, ứng dụng hoạt động theo mô hình tập trung.
Nhiều tổ chức vẫn duy trì mô hình tập trung trong việc xử lý luồng thông tin chính Chẳng hạn, một bộ xử lý mainframe sử dụng phần mềm CSDL IMS hoặc DB2 của IBM có khả năng cung cấp dịch vụ cho các trạm làm việc khác nhau.
Mô hình CSDL theo kiểu file-server (File-server database model) cho phép phân tán sự truy cập nhanh chóng tới cơ sở dữ liệu trung tâm Tuy nhiên, trong nhiều hệ thống, cả ba thành phần của ứng dụng CSDL thường được thực hiện trên cùng một máy mainframe, do đó cấu hình này cũng phù hợp với mô hình tập trung.
Trong mô hình cơ sở dữ liệu file-server, các ứng dụng và phần mềm cơ sở dữ liệu hoạt động trên một hệ thống máy tính, trong khi các file dữ liệu vật lý được lưu trữ trên một hệ thống máy tính khác Cấu hình này thường được áp dụng trong môi trường cục bộ, nơi một hoặc nhiều máy chủ lưu trữ dữ liệu cho các máy tính khác truy cập Trong môi trường file-server, phần mềm mạng cho phép người dùng cuối truy cập các file và cơ sở dữ liệu trên máy chủ như thể chúng được lưu trữ trên máy tính của chính họ.
Mô hình file server tương tự như mô hình tập trung, trong đó các file cơ sở dữ liệu (CSDL) được lưu trữ trên máy chủ riêng biệt, tách biệt với các thành phần ứng dụng và phần mềm CSDL Tuy nhiên, các thành phần ứng dụng và phần mềm CSDL có thể được thiết kế để hoạt động trong một môi trường tập trung Mô hình xử lý từng phần CSDL (Database extract processing model) cũng có thể được áp dụng trong bối cảnh này.
Cơ sở dữ liệu (CSDL) ở xa có thể được truy cập thông qua phần mềm CSDL, cho phép người dùng kết nối từ máy tính cá nhân đến hệ thống máy tính chứa dữ liệu cần thiết Người dùng có khả năng tương tác trực tiếp với phần mềm trên máy chủ từ xa để gửi yêu cầu lấy dữ liệu Ngoài ra, họ cũng có thể chuyển dữ liệu từ máy tính ở xa về máy cá nhân và lưu trữ trên đĩa cứng, cũng như thực hiện sao chép dữ liệu bằng phần mềm CSDL trên máy tính của mình.
Để truy cập và lấy dữ liệu từ một máy tính ở xa, người sử dụng cần phải xác định chính xác vị trí của dữ liệu và cách thức truy cập Ngoài ra, phần mềm ứng dụng cần được cài đặt trên cả hai hệ thống máy tính để đảm bảo kiểm soát truy cập hiệu quả.
Mô hình CSDL Client/Server cho phép hai hệ thống trao đổi và xử lý dữ liệu một cách độc lập Người dùng tương tác với phần mềm CSDL trên mỗi máy mà không cần biết rằng việc xử lý dữ liệu từ xa đang diễn ra.
Mô hình CSDL Client/Server gần giống như mô hình file - server, tuy nhiên mô hình Client/Server có rất nhiều thuận lợi hơn mô hình file - server
Một người dùng cuối cần tạo một bản tin để thu thập dữ liệu tổng số từ 1000 bản ghi.
Với phương pháp File-Server, toàn bộ 1000 bản ghi cần được tải lên mạng, vì phần mềm cơ sở dữ liệu hoạt động trên máy của người dùng phải truy cập từng bản ghi để đáp ứng nhu cầu của người sử dụng.
Trong mô hình CSDL Client/Server, chỉ cần gửi câu lệnh truy vấn ban đầu và nhận kết quả cuối cùng qua mạng Phần mềm CSDL hoạt động trên máy chủ sẽ truy cập các bản ghi cần thiết, xử lý dữ liệu và thực hiện các thủ tục cần thiết để cung cấp kết quả cuối cùng.
Trong mô hình CSDL Client/Server, phần mềm front-end chạy trên máy tính cá nhân hoặc workstation, phục vụ các yêu cầu riêng lẻ và đóng vai trò là Client Nó thực hiện các chức năng nhằm đáp ứng nhu cầu của người dùng cuối Phần mềm front-end thường được phân loại thành nhiều loại khác nhau.
Phần mềm cơ sở dữ liệu người dùng cuối cho phép người sử dụng truy cập các cơ sở dữ liệu cục bộ nhỏ trên hệ thống của họ, đồng thời kết nối với các cơ sở dữ liệu lớn hơn trên máy chủ.
Phần mềm truy vấn và báo cáo đơn giản được thiết kế để cung cấp công cụ dễ sử dụng, giúp người dùng dễ dàng lấy dữ liệu từ cơ sở dữ liệu và tạo ra các báo cáo đơn giản từ dữ liệu hiện có.
- Data analysis software: Cung cấp các hàm về tìm kiếm, khôi phục, chúng
17 có thể cung cấp các phân tích phức tạp cho người dùng
Công cụ phát triển ứng dụng cung cấp các khả năng ngôn ngữ cho nhân viên hệ thống thông tin chuyên nghiệp, giúp họ xây dựng các ứng dụng cơ sở dữ liệu hiệu quả.
TỔNG QUAN VỀ HQTCSDL SQL SERVER
Giới thiệu hệ quản trị CSDL MS SQL Server
SQL, viết tắt của ngôn ngữ truy vấn có cấu trúc, là công cụ quan trọng để tổ chức, quản lý và truy xuất dữ liệu trong các cơ sở dữ liệu Nó bao gồm một tập hợp các câu lệnh dùng để tương tác với các cơ sở dữ liệu quan hệ.
Ngôn ngữ truy vấn có cấu trúc (SQL) và các hệ quản trị cơ sở dữ liệu (CSDL) quan hệ là nền tảng kỹ thuật quan trọng trong ngành công nghiệp máy tính Hiện nay, SQL được công nhận là ngôn ngữ chuẩn cho CSDL, với nhiều hệ quản trị CSDL thương mại phổ biến như Oracle và SQL Server.
Informix, DB2, đều chọn SQL làm ngôn ngữ cho sản phẩm của mình
SQL là hệ quản trị cơ sở dữ liệu đa người dùng theo mô hình Client/Server, đóng vai trò quan trọng trong việc lưu trữ dữ liệu cho nhiều ứng dụng lớn hiện nay Mô hình này cho phép người dùng truy cập và điều khiển các chức năng mà hệ thống quản trị cơ sở dữ liệu cung cấp.
SQL cho phép định nghĩa cơ sở dữ liệu (CSDL), cấu trúc lưu trữ và tổ chức dữ liệu, đồng thời xác định mối quan hệ giữa các thành phần dữ liệu.
Người dùng có khả nă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 một cách dễ dàng và hiệu quả.
SQL được sử dụng để quản lý quyền truy cập, cho phép cấp phát và kiểm soát các thao tác của người dùng trên dữ liệu, từ đó đảm bảo an toàn cho cơ sở dữ liệu.
SQL giúp đảm bảo toàn vẹn dữ liệu trong cơ sở dữ liệu (CSDL) thông qua việc định nghĩa các ràng buộc toàn vẹn, từ đó duy trì tính hợp lệ và chính xác của dữ liệu trong quá trình cập nhật và xử lý lỗi hệ thống.
SQL Server sử dụng ngôn ngữ Transact-SQL (T-SQL), một phiên bản của Structured Query Language, để thực hiện các truy vấn và lập trình cơ sở dữ liệu T-SQL cho phép người dùng truy xuất, cập nhật và quản lý hệ thống cơ sở dữ liệu quan hệ một cách hiệu quả Mỗi máy chủ SQL Server chỉ hỗ trợ một hệ quản trị cơ sở dữ liệu duy nhất.
Những đặc điểm mới của SQL server 2008
SQL Server 2008 là nền tảng an toàn, tin cậy và có khả năng mở rộng cho các ứng dụng phức tạp, giúp giảm bớt sự phức tạp trong quản lý cơ sở hạ tầng dữ liệu Nó bảo đảm bảo mật cho thông tin quý giá trong các ứng dụng hiện có và nâng cao khả năng sẵn có của dữ liệu Ngoài ra, SQL Server 2008 còn có cơ chế quản lý tiên tiến cho phép định nghĩa các chính sách quản trị tự động cho các thực thể máy chủ trên nhiều máy chủ.
Sự phát triển của SQL Server 2008 cùng với NET Framework đã đơn giản hóa quá trình phát triển ứng dụng mới ADO.NET Entity Framework nâng cao năng suất bằng cách làm việc với các thực thể dữ liệu logic thay vì lập trình trực tiếp với bảng và cột Các mở rộng ngôn ngữ truy vấn mới trong NET Framework hỗ trợ các chuyên gia phát triển viết truy vấn dữ liệu dễ dàng hơn thông qua Visual C#® và Visual Basic® NET, với cú pháp truy vấn tương tự SQL Điều này cũng hỗ trợ cho các hệ thống kết nối, cho phép xây dựng các ứng dụng hiệu quả hơn.
20 phép người dùng mang dữ liệu cùng với nó vào các thiết bị và sau đó đồng bộ dữ liệu của chúng với máy chủ trung tâm
SQL Server 2008 hỗ trợ dữ liệu quan hệ mở rộng, cho phép làm việc với nhiều loại dữ liệu khác nhau, bao gồm cả các kiểu dữ liệu truyền thống và dữ liệu không gian địa lý mới.
SQL Server 2008 cung cấp một cơ sở hạ tầng mở rộng, giúp quản lý báo cáo và phân tích với mọi kích thước và độ phức tạp Nó cải thiện khả năng truy cập thông tin cho người dùng thông qua tích hợp sâu sắc với Microsoft Office, cho phép CNTT phân phối thông tin doanh nghiệp một cách hiệu quả trong toàn tổ chức.
Hình 1.1 Toàn cảnh nền dữ liệu của Microsoft
Các thành phần của SQL Server
SQL Server bao gồm nhiều thành phần khác nhau, có mối quan hệ chặt chẽ trong hệ thống, phối hợp để tạo ra giải pháp toàn diện, từ đó nâng cao hiệu quả trong quản trị, phân tích và lưu trữ dữ liệu.
SQL Server 2008 là một hệ thống quản lý cơ sở dữ liệu bao gồm một máy chủ và các công cụ client để tương tác với cơ sở dữ liệu Trong số các công cụ client, Management Studio là công cụ chính để quản lý và thao tác với máy chủ cơ sở dữ liệu.
SQL Server Management Studio là công cụ đồ họa chính được sử dụng để quản lý cơ sở dữ liệu SQL Server 2008 Nó cho phép người dùng thao tác trực tiếp với các đối tượng trong cơ sở dữ liệu, đồng thời hỗ trợ phát triển và kiểm thử các câu lệnh SQL một cách hiệu quả.
SQL Server Configuration Manager: Là công cụ đồ họa, có thể dung để khởi động và dừng server cơ sở dữ liệu
Books Online: Bộ tài liệu cho SQL Server 2008
Cài đặt SQL server 2008
Tùy theo môi trường của máy tính của bạn mà thực hành cài đặt phiên bản nào, bảng sau là tham số với SQL Server 2008
Hệ điều hành tối thiểu: Windows 7
Phần cứng: o Máy tính chip Pentium III 600 MHz trở lên (Cấu hình đề nghị: Chip 1
GHz hoặc cao hơn.) o Tối thiểu 1GB RAM (Cấu hình đề nghị: 2G RAM.)
22 Để cài đặt SQL Server 2008 Express R2 SQL Server, máy tính phải có Windows Installer 3.1 trở lên, download về tại địa chỉ: http://go.microsoft.com/fwlink/?LinkIdF459
Hệ điều hành 32bit: http://go.microsoft.com/fwlink/?LinkIdU731
Hệ điều hành 64bit: http://go.microsoft.com/fwlink/?LinkIdU734
File cài đặt SQL Server 2008 Express R2 SQL Server
Các thành phần của một CSDL trong SQL Server
Table là phần quan trọng trong cơ sở dữ liệu (CSDL) dùng để lưu trữ thông tin cần quản lý Mỗi table bao gồm một hoặc nhiều field, với mỗi field tương ứng với một loại dữ liệu cụ thể cần được lưu trữ.
Table còn có các thành phần liên quan như: a Constraint - Ràng buộc b Triggers - Bẫy lỗi c Indexs - Chỉ mục
- Diagram - Sơ đồ quan hệ
Thể hiện mối quan hệ dữ liệu giữa các table
- Views - Khung nhìn hay table ảo
Là đối tượng dùng hiển thị dữ liệu được rút trích, tính toán từ các table theo nhu cầu của người dùng
Stored Procedure (Stored Proc) chứa các lệnh T-SQL để thực hiện các tác vụ cụ thể và có khả năng nhận cũng như truyền tham số Vì được biên dịch trước, Stored Proc có thời gian thực hiện nhanh chóng khi được gọi Ngoài ra, có nhiều Stored Proc hệ thống được định nghĩa với tiền tố "sp_", giúp thu thập thông tin từ các bảng hệ thống, rất hữu ích cho công tác quản trị.
Hàm do người dùng định nghĩa
Danh sách người dùng sử dụng cơ sở dữ liệu bao gồm tài khoản quản trị hệ thống cao nhất với tên người dùng là dbo và tên đăng nhập mặc định là sa Tài khoản sa luôn được duy trì và không thể xóa Để thay đổi mật khẩu của tài khoản sa, bạn có thể thực hiện theo cách nhanh nhất.
Thực hiện thủ tục hệ thống: EXEC SP_PASSWORD NULL
Các quy định vai trò và chức năng của User trong hệ thống SQL Server
Các quy tắc ràng buộc dữ liệu được lưu trữ trên table
Các khai báo giá trị mặc định
Kiểu dữ liệu do người dùng tự định nghĩa
Tập phân loại dữ liệu Text
SQL SERVER MANAGEMENT STUDIO
Kết nối sử dụng Server Management Studio
Kiểu server trong bài viết này được xác định là Database Engine, cho phép hiển thị các tùy chọn kết nối khác nhau dựa trên các kiểu dữ liệu của server.
The second combo box labeled "Server Name" displays a list of SQL Server installations, showing the name of the computer installed locally By clicking on the "Server Name" box, you can search for additional local servers or network connections by selecting the option "".
Xác thực: Combobox cuối cùng xác định các loại hình kết nối mà bạn muốn sử dụng Trong hướng dẫn này, kết nối đến SQL Server sử dụng Windows Authentication Nếu bạn đã cài đặt SQL Server với chế độ hỗn hợp (mixed mode), bạn có thể thay đổi lựa chọn sang SQL Server Authentication, điều này sẽ mở ra hai hộp thoại để bạn có thể lựa chọn.
Hình 2.1 Kết nối vào SQL server
Khởi động chương trình
Mở SQL Server Management Studio ta làm như sau: Vào start -> chọn program -
> chọn Microsoft SQL Server 2008 -> chọn SQL Server Management Studio
Sau khi nhấn nút Connect sẽ xuất hiện màn hình sau:
Hình 2.2 SQL Server Management Studio
Các thao tác với CSDL
- Tạo cơ sở dữ liệu (database)
Chọn database -> Click phải -> Chọn New Database…
Trong hộp thoại New Database đặt tên cho database name -> Chọn OK
Hình 2.4 Giao diện New Database
- Xóa cơ sở dữ liệu:
Chọn cơ sở dữ liệu Click chuột phải vào CSDL trong Management Studio Chọn lệnh Delete OK
Lưu ý rằng thao tác này sẽ xóa vĩnh viễn các file dữ liệu và file nhật ký của CSDL
Vì vậy hãy chắc chắn bạn có một bản sao lưu dự phòng của CSDL trước khi xóa, phòng trường hợp khi cần đến có thể khôi phục CSDL
Chọn cơ sở dữ liệu Click chuột phải vào CSDL trong Management Studio Chọn lệnh Rename OK
Click phải vào CSDL cần back up -> Chọn Tasks -> Chọn Back up… Thực hiện các thao tác theo thứ tự các hình bên dưới
27 Hình 2.13 Tạo file Back Up
28 Hình 2.14 Lựa chọn đường dẫn đến file
Hình 2.15 Quá trình Back Up file được thực hiện
Nhấn chuột phải vào CSDL cần Restore -> Chọn Tasks -> Chọn Restore -> Database…Thực hiện các thao tác theo thứ tự các hình bên dưới
30 Hình 2.16 Giao diện tạo Resstore cho CSDL
31 Hình 2.17 Chọn đường dẫn để tạo file Restore cho CSDL
Hình 2.18 Quá trình tạo file Restore được hoàn thành.
Làm việc với bảng dữ liệu của CSDL
- Tạo cấu trúc bảng (table)
Vào database quản lý bán hàng chọn table Sau đó click phải lên table -> Chọn New Table
Hình 2.5 Giao diện tạo bảng mới trong CSDL
Khi chọn New Table sẽ xuất hiện bên phải màn hình.Sau đó ta nhập Column Name, Data Type Nhấn Enter để nhập cột kế tiếp
Hình 2.6 Giao diện một bảng trong CSDL
Lưu table trên thanh Standard toolbar -> chọn Save
Hình 2.7 Giao diện một bảng mới được xây dựng
- Thao tác hiệu chỉnh cấu trúc bảng
Để chỉnh sửa thiết kế của một bảng có sẵn, bạn cần mở rộng thư mục Tables, nhấp chuột phải vào bảng và chọn lệnh Modify để hiển thị thông tin trong Table Designer Tại đây, bạn có thể thiết lập các thuộc tính cơ bản cho mỗi cột bằng cách sử dụng lưới trên Table Designer để chỉ định tên cột, kiểu dữ liệu và xác định cột có chấp nhận giá trị Null hay không Để điều chỉnh các thuộc tính khác cho cột, chẳng hạn như Identity column hoặc giá trị mặc định, hãy sử dụng phần Column Properties.
To create a primary key for a table in SQL Server Management Studio, first define the column and its data type Then, on the toolbar, click the "Set Primary Key" button Alternatively, you can right-click on the column and select "Set Primary Key" from the context menu.
Hình 2.8 Tạo khóa chính cho bảng
- Tạo khóa ngoài cho bảng:
Hiển thị bảng trong Table Designer Nhấn nút Relationships trên thanh công cụ Chọn Add
Mở rộng thư mục Tables Click chuột phải vào bảng Chọn Delete Hiển thị Delete Object Chọn OK để xóa bảng
Thiết lập quan hệ giữa các bảng
Sơ đồ là 1 cửa sổ hiển thị mối quan hệ giữa các bảng của 1 CSDL Tạo sơ đồ ta thực hiện như sau:
Trong cửa sổ Object Explorer chọn tên database cần tạo -> Click phải vào Database Diagrams -> Chọn New Database Diagram
Hình 2.10: Tạo mới New Database Diagram
Khi chọn New Database Diagram, một hộp thoại sẽ hiện ra để bạn thêm các bảng Sau khi hoàn tất việc thêm bảng, hãy chọn Close Để thiết lập mối quan hệ giữa các bảng, bạn cần chọn cột dữ liệu làm khóa chính trong bảng cha và kéo nó đến khóa ngoại trong bảng con.
Hình 2.11 Sơ đồ liên kết giữa 2 bảng
Sau khi kéo mối quan hệ cho 2 bảng sẽ xuất hiện hộp thoại như hình trên
Hình 2.12 Giao diện tạo liên kết giữa 2 bảng
Khi bạn chọn OK giữa hai bảng, một kết nối sẽ được thiết lập giữa chúng Tương tự, bạn có thể tạo ra các mối quan hệ khác nhau Sau khi hoàn tất, hãy lưu và đóng sơ đồ của bạn.
QUẢN LÝ BẢO MẬT TRONG SQL SERVER
Giới thiệu bảo mật SQL Server
Để bắt đầu, người dùng cần kết nối và đăng nhập vào server thông qua ứng dụng hoặc Management Studio Quá trình xác thực ID đăng nhập có thể thực hiện theo hai phương pháp khác nhau.
Khi người dùng đăng nhập vào SQL Server, họ chỉ được phép truy cập và thực hiện các thao tác cụ thể trên các đối tượng cơ sở dữ liệu Người dùng có thể được cấp quyền để thực hiện các thao tác cơ sở dữ liệu nhất định Hơn nữa, các quyền này có thể được tổ chức thành các vai trò, cho phép nhiều người dùng được gán vào một vai trò để nhận tất cả quyền liên quan Việc này giúp giảm số lượng quyền cần cấp cho từng người dùng, từ đó đơn giản hóa quản lý bảo mật Do đó, vai trò thường được sử dụng trong hầu hết các hệ thống.
The first method involves executing SQL commands and system stored procedures using the Query Editor or by utilizing the SQLCMD utility.
Cách thứ hai để thực hiện thao tác bảo mật là sử dụng giao diện đồ họa trong Management Studio Phương pháp này giúp việc quản lý bảo mật trở nên dễ dàng hơn, mặc dù có thể mất nhiều thời gian hơn.
Một số khái niệm cơ bản
Đăng nhập vào hệ thống SQL Server là bước đầu tiên để truy cập, tuy nhiên, các tài khoản đăng nhập chỉ có quyền truy cập vào máy chủ mà chưa chắc đã có quyền truy cập vào các cơ sở dữ liệu cụ thể.
Server, các quyền truy cập vào Database được gắn liền với các người dùng
CSDL (Users) Để xem tất cả các login của Server, dùng lệnh exec sp_helplogins hoặc trong SSMS (Server/Security/Logins)
User: Mỗi Database có một danh sách các người dùng được phép truy cập
CSDL của mình, mỗi user luôn được gắn (mapped) với một login ở mức
Khi đăng nhập vào SQL Server bằng một login, bạn sẽ được cấp quyền truy cập vào cơ sở dữ liệu dựa trên quyền hạn của user tương ứng Mỗi login có thể liên kết với nhiều user, mỗi user có quyền hạn khác nhau trên các cơ sở dữ liệu Để xem tất cả các user trong một cơ sở dữ liệu, bạn có thể sử dụng lệnh exec sp_helpuser hoặc truy cập qua SSMS tại Database/Security/Users.
Server role (vai trò phía Server)
Role là tập hợp các quyền được tổ chức và đặt tên để dễ quản lý Server role là nhóm quyền ở mức server, cho phép login thực hiện các thao tác cụ thể khi được cấp quyền Trong SQL Server, có nhiều loại Server Roles khác nhau.
Trong đó sysadmin có quyền cao nhất (toàn quyền) hoạt động trong server, dbcreator có quyền tạo database…
Database role (vai trò phía Database)
Database role là một tập hợp các quyền truy cập cơ sở dữ liệu được nhóm lại và đại diện bởi một tên riêng, nhằm mục đích cấp phát quyền truy cập cơ sở dữ liệu cho người dùng.
Sau đây là các Database role trong SQL Server
Các vai trò trong cơ sở dữ liệu (Database Roles) phản ánh quyền truy cập tương ứng của chúng Ví dụ, vai trò db_datareader cho phép người dùng đọc dữ liệu từ tất cả các bảng, trong khi vai trò db_datawriter cho phép ghi dữ liệu vào tất cả các bảng Đặc biệt, vai trò db_owner có quyền cao nhất, cho phép quản lý toàn bộ cơ sở dữ liệu.
SQL Server offers two authentication methods for system login: Windows Authentication and SQL Server Authentication When creating a new login, you must choose between these two options If you select Windows Authentication, you need to provide a Windows account, and SQL Server will only store the account name in its login list Conversely, if you opt for SQL Server Authentication, you must provide both a login name and a password, which will be stored within SQL Server.
Cấp phát và thu hồi quyền trong SQL bằng TSQL
Cấp phát quyền truy cập (GRANT)
PRIVILEGES : Các quyền truy cập Database (Select, Insert, Update, Excute…)
DatabaseObjects: Các đối tượng cơ sở dữ liệu (Table, View, Stored Procedure, Functions…)
USERS: Người dùng| nhóm người dùng
WITH GRANT OPTION: Cho phép người dùng chuyển tiếp quyền cho người dùng khác
Cấp quyền SELECT và UPDATE trên bảng ACCOUNTS cho người dùng 'khoa', đồng thời cho phép người dùng này cấp quyền tương tự cho những người dùng khác.
Thu hồi quyền truy cập cơ sở dữ liệu
Khi cấp quyền cho người dùng bằng lệnh GRANT kèm tuỳ chọn WITH GRANT OPTION, việc thu hồi quyền bằng lệnh REVOKE cần chỉ định tuỳ chọn CASCADE Điều này đảm bảo rằng các quyền đã được chuyển tiếp cho người dùng khác cũng sẽ bị thu hồi đồng thời.
Ví dụ: Thu hồi quyền cập nhật trên bảng ACCOUNTS từ người dùng khoa và từ những người dùng khác mà người dùng khoa đã cấp quyền này.
Cách tạo và quản lý người dùng trong SQL Server Management Studio
Bước1: Login vào SQL Server với người dùng có đủ quyền
Chọn Login name, Mode authentication, Server Role, Users Mapping… cho login
Tạo User truy xuất CSDL (ATM)
Tạo một tên người dùng (username) tùy chỉnh và chọn tên đăng nhập (login name) cho tài khoản, trong đó sử dụng tên đăng nhập là "dba" mà bạn đã tạo ở bước trước Sau đó, đăng nhập vào hệ thống bằng tài khoản dba vừa tạo.
Để cấp quyền truy cập cơ sở dữ liệu cho người dùng 'bda', trước tiên bạn cần đăng nhập vào hệ thống với tư cách quản trị viên và thiết lập quyền truy cập hợp lý cho 'bda'.
TRUY VẤN DỮ LIỆU TRONG SQL SERVER
Truy xuất dữ liệu bằng câu lệnh SELECT
Transact-SQL is an extended version of SQL based on the ISO (International Organization for Standardization) and ANSI (American National Standards Institute) standards, utilized in SQL Server, distinguishing it from PL-SQL (Procedural Language/Structured Query Language) used in Oracle.
5.1.1 Tạo và xóa CSDL, bảng bằng TSQL: Ðây là những lệnh dùng để quản lý các thuộc tính của một CSDL như định nghĩa các hàng hoặc cột của một bảng, hay vị trí file dữ liệu của một CSDL , thường có dạng như sau :
Trong đó object_Name có thể là một bảng, view, stored procedure, indexes
Ví dụ: Lệnh Create sau sẽ tạo ra một table tên Importers với 3 cột: CompanyID, CompanyName,Contact USE Northwind
Sử dụng cơ sở dữ liệu Northwind
CompanyID int NOT NULL, CompanyName varchar(40) NOT NULL, Contact varchar(40) NOT NULL
Lệnh ALTER cho phép thay đổi định nghĩa của bảng, bao gồm việc thêm hoặc bớt cột và ràng buộc Ví dụ, chúng ta sẽ thêm cột ContactTitle vào bảng Importers.
Lệnh Drop sẽ xóa hoàn toàn bảng khỏi cơ sở dữ liệu, bao gồm cả định nghĩa và dữ liệu bên trong bảng, khác với lệnh Delete chỉ xóa dữ liệu mà vẫn giữ lại bảng.
5.1.2 Ngôn ngữ thao tác dữ liệu Ðây là những lệnh phổ biến dùng để xử lý dữ liệu như Select, Update, Insert, Delete
WHERE (CustomerID = 'alfki' OR CustomerID = 'anatr')
INSERT INTO Territories VALUES (98101, 'Seattle', 2)
Chú ý: trong lệnh Delete bạn có thể có chữ From hay không đều được Để kiểm tra các ví dụ trên làm như sau:
In the SQL Server Management Studio toolbar, select "New Query" and enter the commands as shown Below is an example of creating a table using T-SQL.
Sử dụng từ khóa DISTINCT
Từ khóa DISTINCT trong câu lệnh Select giúp loại bỏ các dòng trùng lặp trong tập kết quả Nếu không sử dụng DISTINCT, tất cả các dòng trùng nhau sẽ được hiển thị.
Ví dụ, muốn hiện thị các ProductID không trùng nhau từ bản Order Details với Discount là 0 Câu lệnh và kết quả như trong hình
Thêm dữ liệu sử dụng INSERT
Câu lệnh Insert Into Values là cách đơn giản nhất để thêm một dòng dữ liệu mới vào bảng Khi sử dụng câu lệnh này, cần đảm bảo rằng tất cả các giá trị được thêm vào phải tương ứng với các cột trong bảng cần cập nhật.
Insert Into [table_name] Values (“value 1”,”value 2”, “value 3”, )
Ví dụ: muốn thêm một giá trị mới vào bảng Region trong cơ sở dữ liệu Northwind , Kết quả như trong hình
Insert into [Region] Values (6,”NewRegion”)
Thêm dữ liệu sử dụng INSERT…SELECT
Câu lệnh "Insert into values" chỉ cho phép thêm một dòng dữ liệu tại một thời điểm Để thêm nhiều dòng dữ liệu cùng lúc, bạn cần sử dụng câu lệnh "Insert select".
INSERT INTO [table_name] ( [column1], [column2], [column3],
Để tạo mới bảng Names với hai cột NameID và FullName, và chèn tất cả tên của nhân viên từ bảng Employees vào bảng Names, bạn có thể sử dụng câu lệnh Insert … Select như sau.
Để tiết kiệm thời gian nhập liệu, bạn có thể sử dụng từ khóa DEFAULT để gán giá trị mặc định cho một hoặc nhiều cột trong bảng, giúp không cần nhập cùng một giá trị cho nhiều cột dữ liệu.
INSERT INTO [table_name] DEFAULT VALUES
Ví dụ:tạo một bảng tên History, gồm 3 trường ID, CreateDate, CreateName Trong đó gán thuộc tính DEFAULT cho CreateDate
Insert vào bảng vừa tạo một dòng dữ liệu theo cách thông thường Dùng hàm GETDATE() để lấy ngày giờ hệ thống
Hình 2 2 Thêm dữ liệu không dùng DEFAULT VALUES
Bây giờ thêm vào một dòng dữ liệu và sử dụng DEFAULT VALUES, có thể lấy giờ hệ thống
Hình 2 3 Thêm dữ liệu dùng DEFAULT VALUES
Xóa dữ liệu sử dụng câu lệnh DELETE
Câu lệnh Delete dùng để xóa tất cả các dòng ra khỏi bảng
DELETE [table_name] WHERE [column]=[value]
Lưu ý : Khi sử dụng lệnh Delete mà không có mệnh đề Where thì SQL Server sẽ xóa toàn bộ các dòng trong bảng
Ví dụ : trong bảng Employee nếu muốn xóa những nhân viên nào ở thành phố LonDon thì có thể sử dụng câu lệnh như sau
Hình 2 4 Xóa tất cả các loại sản phẩm chưa có sản phẩm nào
Cập nhật dữ liệu sử dụng UPDATE
Câu lệnh UPDATE được sử dụng để cập nhập/sửa đổi dữ liệu đã có trong bảng
Update [table_name] SET [column]=[new value]
Khi sử dụng lệnh Update trong SQL Server, nếu không có mệnh đề Where, toàn bộ các dòng trong bảng sẽ được cập nhật với giá trị mới của cột được chỉ định.
Ví dụ : nếu như muôn cập nhập lai tất cả các sản phẩm có cùng một nhà cung cấp thực hiện như sau:
Hình 2 5 Cập nhật nhà cung cấp
Để cập nhật tất cả các sản phẩm từ một nhà cung cấp nhất định có số lượng hàng trong kho lớn hơn 0, bạn có thể thực hiện như trong ví dụ trên và thêm vào mệnh đề Where để lọc kết quả.
Hình 2 6 Cập nhật sản phẩm với mệnh đề WHERE
5.1.2 Truy vấn dữ liệu đơn giản
Câu lệnh SELECT FROM dùng để chọn lựa các dữ liệu cần thiết từ một hoặc nhiều bảng có quan hệ bên trong một cơ sở dữ liệu
SELECT
SELECT * FROM tên_table (*) dùng để lấy tất cả các cột trong bảng
USE Northwind SELECT RegionID, RegionDescription FROM Region
Hoặc có thể viết theo cách sau:
5.1 Kết quả ví dụ sử dụng câu lệnh select…from
Sử dụng mệnh đề WHERE
Cú pháp SELECT FROM kết hợp với mệnh đề WHERE cho phép lọc các dòng dữ liệu trong bảng, yêu cầu các dòng này phải đáp ứng điều kiện được chỉ định trong mệnh đề WHERE.
SELECT [DISTINCT ][TOP số dòng[PERCENT]]
Từ khóa DISTINCT: chỉ dùng để chỉ định truy vấn các dòng dữ liệu duy nhất, không trùng lặp dữ liệu
Từ khóa TOP được sử dụng để truy vấn và chọn ra một số dòng dữ liệu đầu tiên, trong khi từ khóa PERCENT cho phép chọn ra một tỷ lệ phần trăm mẫu tin đầu tiên, với giá trị chỉ định từ 0 đến 100 Thông thường, TOP được kết hợp với mệnh đề ORDER BY để sắp xếp dữ liệu theo thứ tự mong muốn Điều kiện lọc là yếu tố quyết định để lọc các mẫu tin trong bảng, thường được biểu diễn dưới dạng biểu thức luận lý.
USE Northwind SELECT RegionID, RegionDescription FROM Region
5.2 Kết quả ví dụ sử dụng nhóm câu lệnh Select … From thêm Where
5.1.3 Truy vấn nhóm dữ liệu
Truy vấn dữ liệu sử dụng mệnh đề GROUP BY
Cú pháp SELECT FROM kết hợp với mệnh đề GROUP BY cho phép nhóm dữ liệu trong bảng và sử dụng các hàm thống kê để tính toán các dữ liệu tổng hợp Sau khi nhóm dữ liệu, nên sử dụng mệnh đề ORDER BY để sắp xếp dữ liệu theo thứ tự mong muốn Mệnh đề GROUP BY rất hữu ích trong việc gom nhóm khi thực hiện các phép tính toán.
SELECT Danh_sách_các_cột| Hàm_thống_kê AS Bí_danh
FROM Tên_bảng [WHERE Điều_kiện_lọc]
GROUP BY Danh_sách_cột_nhóm [ORDER BY Tên_cột[DESE] [,…]]
USE Northwind SELECT Country, COUNT(EmployeeID) AS 'Tổng' FROM dbo.Employees
Hình 8.1 Kết quả ví dụ sử dụng mệnh đề Group By trong truy vấn
Truy vấn dữ liệu sử dụng mệnh đề HAVING
Khung nhìn (View)
View là một đối tượng trong cơ sở dữ liệu, cho phép người dùng truy cập và xem các dữ liệu cần thiết một cách chính xác Nó không chỉ giới hạn ở một vài trường trong một bảng, mà còn có khả năng kết hợp thông tin từ nhiều trường trong nhiều bảng khác nhau.
Có 2 cách để tạo View:
Cách 1: tạo View trong View Designer
Khởi động SQL Server Management Studio (SSMS)
Chọn CSDL cần làm việc
Click phải vào Views Container -> chọn New View
Trong hộp thoại Add Table -> chọn các bảng cần thiết ->Add
Click chọn các trường trong bảng vừa thêm vào
Chọn Execute SQL để xem kêt quả
Cách 2: tạo View bằng T-SQL
SQL Satements Để chỉnh sửa hoặc xóa View ta dung ALTER/ DROP
Ví dụ: tạo 1 View tên ViewOrders_Products với dữ liệu lấy từ 2 bảng Order Details và Products
Gọi View vừa tạo với điều kiện ProductID=1
Các ví dụ minh họa
Tạo View thống kê số lượng mặt hàng theo từng nhà cung cấp
Tạo view lấy danh sách các hóa đơn có giá trị >= 10000
Bẫy lỗi (Trigger)
SQL là ngôn ngữ được thiết kế để thực hiện các thao tác trên cơ sở dữ liệu, bao gồm việc tạo lập cấu trúc, bổ sung, cập nhật, xoá và truy vấn dữ liệu Người dùng viết các câu lệnh SQL và yêu cầu hệ quản trị cơ sở dữ liệu thực hiện chúng theo chế độ tương tác.
Các câu lệnh SQL có thể được nhúng vào các ngôn ngữ lập trình, cho phép thực hiện chuỗi thao tác trên cơ sở dữ liệu thông qua các câu lệnh và cấu trúc điều khiển của ngôn ngữ đó Thủ tục lưu trữ là một đối tượng trong cơ sở dữ liệu, bao gồm nhiều câu lệnh SQL được nhóm lại, kết hợp khả năng của ngôn ngữ lập trình với SQL để tối ưu hóa các thao tác dữ liệu.
• Các cấu trúc điều khiển (IF, WHILE, FOR) có thể được sửdụng trong thủ tục
Trong thủ tục lưu trữ, có thể sử dụng các biến tương tự như trong ngôn ngữ lập trình để lưu trữ các giá trị đã được tính toán và các giá trị được truy xuất từ cơ sở dữ liệu.
Một thủ tục lưu trữ trong SQL là một tập hợp các câu lệnh SQL được kết hợp thành một khối lệnh, cho phép nhận tham số đầu vào và trả về giá trị thông qua các tham số Sau khi được định nghĩa, thủ tục có thể được gọi bằng tên của nó, thực thi các câu lệnh SQL bên trong và trả về kết quả sau khi hoàn tất.
Sửdụng các thủ tục lưu trữ trong cơ sở dữ liệu sẽ giúp tăng hiệu năng của cơ sở dữ liệu, mang lại các lợi ích sau:
- Đơn giản hoá các thao tác trên CSDL nhờ vào khả năng module hoá các thao tác này
Thủ tục lưu trữ được tối ưu hóa và phân tích, giúp việc thực thi nhanh chóng hơn so với việc thực hiện các câu lệnh SQL rời rạc theo cách truyền thống.
Thủ tục lưu trữ cho phép thực hiện yêu cầu với một câu lệnh đơn giản, thay vì sử dụng nhiều dòng lệnh SQL, giúp giảm thiểu lưu thông dữ liệu trên mạng.
Thay vì cấp quyền trực tiếp cho người dùng trên các câu lệnh SQL và đối tượng cơ sở dữ liệu, việc cấp quyền thông qua các thủ tục lưu trữ sẽ nâng cao tính bảo mật cho hệ thống.
Một số nhóm thủ tục lưu trữ
Thủ tục lưu trữ là một tập hợp các câu lệnh T-SQL đã được biên dịch trước, cho phép thực thi nhanh chóng và hiệu quả hơn Chúng có thể chứa một hoặc nhiều tham số đầu vào và có khả năng trả về một giá trị, một bảng hoặc không trả về giá trị nào Việc sử dụng thủ tục lưu trữ giúp dễ dàng thay đổi, nâng cấp và cải thiện tính bảo mật cho ứng dụng.
Có 2 dạng thủ tục lưu trữ
Các hệ thống thủ tục lưu trữ có sẵn khi cài đặt SQL Server Tất cả các System StoredProcedure đều bắt đầu bằng tiền tố sp_
Database Engine stored procedures: bao gồm các câu lệnh truy vấn lấy thông tin của SQL Server và CSDL
Ví dụ: sp_helpdb lấy thông tin của tất cả các CSDL hiện có trên Server
Database Mail stored procedures: dùng cho các thao tác về e-mail trong CSDL
Security stored procedures: dùng cho mục đích bảo mật như thêm/ xóa User, đăng nhập… ( sp_addlogin)
XML stored procedures: dùng quản lý các tài liệu (sp_xml_preparedocument) Tạo thủ tục lưu trữ
CREATE PROCEDURE tên_thủ_tục[(danh_sách_tham_số)]
Các_câu_lệnh_của_thủ_tục
Tên thủ tục cần tạo phải tuân theo quy tắc định danh và không vượt quá 128 ký tự Các tham số của thủ tục được khai báo ngay sau tên thủ tục, và nếu có nhiều tham số, chúng phải được phân cách bằng dấu phẩy Mỗi khai báo tham số tối thiểu phải bao gồm hai phần.
- tên tham số được bắt đầu bởi dấu @
- kiểu dữ liệu của tham số
Khi sử dụng tùy chọn WITH RECOMPILE trong thủ tục, quá trình phân tích, tối ưu và dịch sẽ diễn ra mỗi lần thủ tục được gọi, thay vì chỉ thực hiện một lần ở lần gọi đầu tiên.
Ví dụ1: Giả sử cần thực hiện một chuỗi các thao tác như sau trên cơ sở dữ liệu
- Bổ sung thêm môn học cơ sở dữ liệu có mã TI-005và số đơn vị học trình là
Lập danh sách nhập điểm thi môn cơ sở dữ liệu cho sinh viên lớp C24102 bằng cách bổ sung các bản ghi vào bảng DIEMTHI Cột MAMONHOC sẽ nhận giá trị TI-005, cột MASV sẽ chứa mã sinh viên của lớp C24105, và các cột điểm sẽ được để trống (NULL).
Nếu thực hiện yêu cầu trên thông qua các câu lệnh SQL như thông thường, phải thực thi hai câu lệnh như sau:
VALUES ('TI-005','Cơ sở dữ liệu',5)
INSERT INTO DIEMTHI (MAMONHOC,MASV)
SELECT ‘TI-005’, MASV FROM SINHVIEN
Thay vì sử dụng hai câu lệnh, bạn có thể định nghĩa một thủ tục lưu trữ với các tham số @mamonhoc, @tenmonhoc, @sodvht và @malop bằng cách sử dụng câu lệnh CREATE PROC sp_LenDanhSachDiem.
INSERT INTO monhoc VALUES(@mamonhoc,@tenmonhoc,@sodvht) INSERT INTO diemthi(mamonhoc,masv)
SELECT @mamonhoc,masv FROM sinhvien
Sau khi thủ tục được tạo, hai yêu cầu có thể được thực hiện dễ dàng thông qua lệnh gọi thủ tục: sp_LenDanhSachDiem 'TI-005','Cơsởdữliệu', 5,'C24102'.
Lời gọi thủ tục lưu trữ
Khi một thủ tục lưu trữ được tạo ra, người dùng có thể yêu cầu hệ quản trị cơ sở dữ liệu thực thi thủ tục đó thông qua lệnh gọi với cú pháp: tên_thủ_tục [danh_sách_các_đối_số].
Số lượng các đối số cũng như thứ tự của chúng phải phù hợp với số lượng và thứ tự của các tham số khi định nghĩa thủ tục
Khi thực hiện lời gọi thủ tục trong một thủ tục khác, trong một trigger, hoặc kết hợp với các câu lệnh SQL khác, cần sử dụng cú pháp phù hợp để đảm bảo hoạt động hiệu quả.
EXECUTE tên_thủ_tục [danh_sách_các_đối_số]
DROP PRO[CEDURE]