GIỚI THIỆU VỀ SQL SERVER
Tổng quan SQL Server
Ngôn ngữ hỏi có cấu trúc (SQL), được phát triển bởi IBM từ năm 1974, có nguồn gốc từ SEQUEL và được sử dụng trong hệ cơ sở dữ liệu thử nghiệm System/R Năm 1986, SQL chính thức được ANSI/ISO công nhận là chuẩn ngôn ngữ cho cơ sở dữ liệu quan hệ Hiện nay, SQL đã trở thành ngôn ngữ phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại và đóng vai trò quan trọng trong các hệ thống này.
SQL là ngôn ngữ truy vấn cấu trúc, đóng vai trò quan trọng trong các hệ quản trị cơ sở dữ liệu Nó cho phép người dùng thực hiện các thao tác như truy vấn, cập nhật và quản lý dữ liệu một cách hiệu quả Chương này sẽ cung cấp cái nhìn tổng quan về SQL, chức năng của nó và cách sử dụng trong các hệ quản trị cơ sở dữ liệu quan hệ.
Microsoft SQL Server được ra mắt lần đầu vào năm 1989, với phiên bản 1.0 dành cho hệ điều hành 16 bit, và đã trải qua nhiều giai đoạn phát triển cho đến nay.
Microsoft SQL Server là một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất trên thế giới, được phát hành bởi Microsoft Phần mềm này chuyên dùng để thiết kế và truy xuất dữ liệu theo yêu cầu của các ứng dụng khác, thường được cài đặt trên máy chủ Đối với học sinh, sinh viên mới bắt đầu học lập trình, SQL Server là công cụ lý tưởng để làm quen với cơ sở dữ liệu, bao gồm các môn học liên quan đến truy vấn, tạo bảng và kết nối chúng Đặc biệt trong lập trình NET, việc kết nối với cơ sở dữ liệu local thường phải sử dụng phần mềm này, ví dụ như khi lập trình ứng dụng Winform có kết nối với cơ sở dữ liệu.
Người dùng chủ yếu thao tác với SQL Management Studio, một phần mềm trong bộ SQL Server, cung cấp giao diện để thực hiện các câu lệnh truy vấn và xây dựng cơ sở dữ liệu Đây là công cụ quan trọng mà người dùng cần sử dụng thường xuyên Tuy nhiên, nếu thiếu bất kỳ thành phần nào trong bộ SQL Server, phần mềm sẽ không hoạt động Do đó, cần cài đặt Microsoft SQL Server 2019 Express để sử dụng hiệu quả.
1.1.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ
Mục tiêu: Hiểu được ngôn ngữ SQL là gì
SQL, viết tắt của Ngôn ngữ Truy vấn Có cấu trúc, là công cụ thiết yếu để tổ chức, quản lý và truy xuất dữ liệu trong cơ sở dữ liệu Hệ thống ngôn ngữ này bao gồm các câu lệnh cho phép người dùng tương tác hiệu quả với cơ sở dữ liệu quan hệ.
Ngôn ngữ SQL, mặc dù được biết đến chủ yếu như một công cụ truy xuất dữ liệu, thực tế có khả năng vượt xa hơn thế Ban đầu, SQL được phát triển với mục đích truy xuất dữ liệu, và chức năng này vẫn giữ vai trò quan trọng Tuy nhiên, SQL còn được sử dụng để điều khiển tất cả các chức năng mà hệ quản trị cơ sở dữ liệu cung cấp cho người dùng.
SQL cho phép định nghĩa cơ sở dữ liệu, 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.
SQL cho phép người dùng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu một cách dễ dàng trong các cơ sở dữ liệu.
SQL giúp 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 thiết lập 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 quan trọng để ngăn chặn các lỗi hệ thống và duy trì sự toàn vẹn của dữ liệu trong quá trình cập nhật.
SQL là ngôn ngữ hoàn thiện trong các hệ thống cơ sở dữ liệu, đóng vai trò quan trọng trong quản trị cơ sở dữ liệu Dù không phải là ngôn ngữ lập trình như C, C++, hay Java, các câu lệnh SQL có thể được tích hợp 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.
Khác với các ngôn ngữ lập trình như C, C++, Java, SQL là ngôn ngữ khai báo, cho phép người dùng mô tả yêu cầu trên cơ sở dữ liệu mà không cần chỉ định cách thực hiện Điều này khiến SQL trở thành ngôn ngữ dễ tiếp cận và sử dụng cho người mới.
SQL không phải là một hệ quản trị cơ sở dữ liệu độc lập, mà là một phần thiết yếu của nó Vai trò của SQL là ngôn ngữ giao tiếp, giúp người dùng tương tác với hệ quản trị cơ sở dữ liệu một cách hiệu quả.
Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL có những vai trò như sau:
SQL là ngôn ngữ truy vấn tương tác, cho phép người dùng gửi yêu cầu đến cơ sở dữ liệu thông qua các trình tiện ích và nhận kết quả trả về một cách dễ dàng.
Các thành phần quan trọng trong SQL Server
2.1 Relational Database Engine - Lõi của SQL Server: Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC) Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một user log off
2.2 Replication - Cơ chế tạo bản sao (Replica):
Nếu bạn có một cơ sở dữ liệu thường xuyên được cập nhật và muốn tạo một cơ sở dữ liệu giống hệt trên một máy chủ khác để chạy báo cáo mà không ảnh hưởng đến hiệu suất của máy chủ chính, bạn cần đảm bảo rằng máy chủ báo cáo cũng được cập nhật thường xuyên Trong trường hợp này, bạn không thể sử dụng cơ chế sao lưu và khôi phục Thay vào đó, cơ chế replication của SQL Server sẽ được áp dụng để đảm bảo dữ liệu giữa hai cơ sở dữ liệu được đồng bộ Chi tiết về replication sẽ được thảo luận trong bài 12.
Nếu bạn làm việc trong một công ty lớn với dữ liệu phân tán ở nhiều nơi và định dạng khác nhau như Oracle, DB2, SQL Server hay Microsoft Access, bạn sẽ cần di chuyển dữ liệu giữa các máy chủ Không chỉ là việc di chuyển, bạn còn muốn định dạng lại dữ liệu trước khi lưu vào cơ sở dữ liệu khác Trong trường hợp này, DTS sẽ giúp bạn thực hiện công việc này một cách dễ dàng Thông tin chi tiết về DTS sẽ được trình bày trong bài 8.
2.4 Analysis Service - Một dịch vụ phân tích dữ liệu
Dữ liệu trong cơ sở dữ liệu sẽ không có giá trị nếu không được khai thác hiệu quả thông qua khái niệm hình khối nhiều chiều và kỹ thuật "đào mỏ dữ liệu", mà chúng tôi sẽ trình bày trong bài 13.
2.5 English Query: Ðây là một dịch vụ giúp cho việc query data bằng tiếng Anh "trơn" (plain English)
Dịch vụ này giúp việc quản lý và xử lý Meta data trở nên dễ dàng hơn Vậy Meta data là gì? Meta data là thông tin mô tả cấu trúc của dữ liệu trong cơ sở dữ liệu, bao gồm loại dữ liệu như String hay Integer, và xác định xem một cột có phải là Primary key hay không Mặc dù những thông tin này cũng được lưu trữ trong cơ sở dữ liệu, nhưng để phân biệt với dữ liệu chính, chúng được gọi là Meta data Để tìm hiểu thêm, bạn có thể tham khảo SQL Server Books Online, vì không có bài viết nào trong loạt bài này đề cập chi tiết về dịch vụ này.
Dù bạn đã tham khảo nhiều sách khác về SQL Server, sách trực tuyến này vẫn rất hữu ích và cần thiết, lý do mà Microsoft đã đính kèm nó cùng với SQL Server.
Enterprise Manager là công cụ giúp người dùng có cái nhìn tổng quan về hệ thống cơ sở dữ liệu một cách trực quan Công cụ này rất hữu ích, đặc biệt cho những người mới bắt đầu và chưa quen thuộc với SQL.
Query Analyzer là công cụ thiết yếu cho một DBA giỏi, cho phép quản lý toàn bộ hệ thống database mà không cần hỗ trợ từ các công cụ khác Nó tạo ra một môi trường làm việc hiệu quả, nơi người dùng có thể thực hiện và chạy ngay lập tức bất kỳ câu lệnh SQL nào, đồng thời giúp dễ dàng trong việc gỡ lỗi các Stored Procedure.
SQL Profiler là công cụ mạnh mẽ giúp ghi lại tất cả các sự kiện và hoạt động diễn ra trên SQL Server Nó lưu trữ thông tin dưới dạng tệp văn bản, rất hữu ích cho việc theo dõi và kiểm soát hoạt động của SQL Server.
- Ngoài một số công cụ trực quan như trên chúng ta cũng thường hay dùng osql và bcp (bulk copy) trong command prompt.
Cài đặt SQL Server Express
3.1 Yêu cầu cấu hình cài đặt
CPU: bộ vi xử lý x64: AMD Opteron, AMD Athlon 64, Intel Xeon với hỗ trợ
Intel EM64T, Intel Pentium IV với hỗ trợ EM64T
Tốc độ CPU: Tối thiểu yêu cầu là 1,4 GHz Khuyến nghị là 2.0 GHz hoặc nhanh hơn.
Ram tối thiểu cho phiên bản Express là 1 GB, trong khi các phiên bản khác yêu cầu tối thiểu 4 GB Tất cả các phiên bản đều có khả năng mở rộng để đảm bảo hiệu suất khi kích thước cơ sở dữ liệu tăng lên.
Ổ đĩa trống: Ít nhất 10GB
NET Framework: Phiên bản 3.5 SP1.
3.1.2 Yêu cầu Hệ điều hành khi cài đặt SQL Server 2019
Khi cài đặt SQL Server 2019, các định dạng hệ thống tệp được khuyến nghị là NTFS và ReFS Mặc dù SQL Server vẫn hỗ trợ cài đặt trên hệ thống tệp FAT32, nhưng điều này không được khuyến nghị do tính bảo mật kém hơn so với NTFS và ReFS.
Không cố cài đặt SQL Server 2019 trên ổ đĩa nén, mã hóa hoặc chỉ đọc vì quá trình thiết lập sẽ chặn cài đặt.
Lưu ý rằng SQL Server 2019 không còn hỗ trợ phiên bản 32 bit, mà chỉ tương thích với hệ thống x64 (64-bit) Tuy nhiên, một số tính năng hạn chế vẫn có thể hoạt động trên hệ thống x86 (32-bit).
Khi cài đặt SQL Server, Windows Installer sẽ tạo ra các tệp tạm thời trên ổ đĩa hệ thống Do đó, trước khi tiến hành cài đặt hoặc nâng cấp SQL Server, bạn cần đảm bảo rằng ổ đĩa hệ thống có ít nhất 6 GB dung lượng trống để chứa các tệp này.
Yêu cầu dung lượng đĩa cứng để cài đặt SQL Server 2019 phụ thuộc vào cấu hình hệ thống và các tính năng bạn chọn Tổng dung lượng cần thiết cho tất cả các tính năng khi cài đặt SQL Server 2019 ước tính khoảng 8,3 GB.
Không cài đặt SQL Server trên Bộ điều khiển miền (Domain controller)
SQL Server 2019 Enterprise Edition và Web Edition được hỗ trợ trên Trung tâm dữ liệu Windows Server 2019, Windows Server 2019 Standard, Windows Server
2019 Essentials, Windows Server 2016 Datacenter, Windows Server 2016 Standard, Windows Server 2016 Essentials Nó không được hỗ trợ trên Windows
SQL Server 2019 is compatible with various editions, including Developer, Standard, and Express, and supports operating systems such as Windows Server 2019 (Datacenter, Standard, and Essentials), Windows Server 2016 (Datacenter, Standard, and Essentials), and Windows 10 (Enterprise, Professional, and Home) versions 1507 and above However, Windows 8 is not supported.
Trước khi cài đặt SQL Server 2019, hãy đảm bảo rằng dịch vụ Công cụ quản lý Windows đang hoạt động Bạn có thể xác minh trạng thái này bằng cách truy cập Bảng điều khiển, sau đó vào Công cụ quản trị và chọn Dịch vụ.
Thay đổi cấu hình tường lửa của bạn để cho phép truy cập SQL Server
Tài khoản người dùng để cài đặt SQL Server 2019 phải có quyền quản trị cao nhất.
3.2 Các bước cài đặt SQL Server 2019
Trước khi cài đặt Microsoft SQL Server bạn cần chú ý
Các bạn nên cài SQL Server trước khi cài Microsoft Visual Studio để tránh xung
đột.Các bạn phải cài.Net Framework 3.5 trước khi mở file cài đặt SQL Server để tránh bị lỗi.
Các bạn phải cài SQL Server 2019 trước khi cài Red Gate SQL(SQL Toolbelt) nhé
Bước 1: Truy cập trang chủđể tải SQL Server 2019 tại đây
Sau đó ấn nút download ở phần developer để tải phần mềm về
Bước 2: Mởứng dụng đã tải xong ra
Bước 3: Sau khi mởứng dụng ta có 3 lựa chọn tùy mục đích khác nhau cho người dùng:
Hình 1.6 lựa chọn cài đặt
1 Basic: đây là tùy chọn đơn giản nhất cho người dùng, tại đây ứng dụng sẽ tự động cài đặt các chức năng cơ bản cho bạn
2 Custom: đây là phần cài đặt cho các bạn muốn sử dụng chuyên sâu hơn, khi chọn bạn sẽ được tự cài đặt các cấu hình của phần mềm
3 Download Media: khi chọn vào mục này, hệ thống sẽ tải về cho bạn một file cài đặt offline nhằm mục đích cài được trên nhiều thiết bị khác nhau mà không cần load lại từđầu
Hình 1.7 Chấp nhận cài đặt
Trong bài hướng dẫn này mình sẽ chọn chếđộ Basic, các bạn hãy chọn basic và ấn Accept sau đó ấn nút Install để tiến hành cài đặt
Hình 1.8 Bắt đầu cài đặt
Bước 4: Tại đây ta ấn nút Customize để bắt đầu setting cấu hình để sử dụng
Hình 1.9 Cài đặt tự cấu hình
Bước 5: Cửa sổđầu tiên ta ấn next
Hình 1.10 Cửa sổ cập nhật khi cài đặt
Hệ thống sẽ xác nhận các mục đã đạt yêu cầu, với dấu tích xanh cho biết mọi thứ ổn Thông thường, mục Firewall sẽ hiển thị màu vàng cảnh báo, cho thấy nó có thể ảnh hưởng đến quá trình cài đặt Tuy nhiên, bạn có thể bỏ qua mục này và tiếp tục nhấn "next".
Hình 1.11 Thông báo chính sách cài đặt
Tiếp theo, ở mục Product key bạn phải chọn mục developer để có thể sử dụng miễn phí phần mềm này và ấn next để tiếp tục
Hình 1.12 Chọn phiên bản cài đặt Ở mục License Terms ta chọn I accept the license terms and Privacy
Hình 1.13 Đồng ý License càiđặt Ở mục Features Selection ta nên chọn Database Engine Services, Data
Quality Client và Client Tools Connectivity đểứng dụng cung cấp đủ packages và chức năng cho bạn học đầy đủ vềmôn cơ sở dữ liệu và bấm next
Hình 1.13 chọn các mục cần thiết cài đặt
Hình 1.14 cài đặt tool trên máy trạm
Step 7: Navigate to the Feature Configuration Rules section, where you can name your Instance (feel free to choose any name without spaces or special characters), then click 'Next' to proceed to the Database Engine Configuration section.
Hình 1.15 Xác định máy chủ
Bước 8: Ở mục này, ta bấm chọn chức năng Mix Mode Đây là chức năng bảo mật cho cơ sở dữ liệu của bạn
Tiếp theo các bạn nhập mật khẩu cho tài khoản supper admin(sa) của bạn
Và cuối cùng nhấn nút Add current User để thêm tài khoản
Cuối cùng bạn nhấn next cho đến mục Ready to Install
Bước 9: Đây là phần cuối cùng Bạn chỉ cần nhấn Install và đợi đến khi file cài đặt xong và bấm close để hoàn tất
Hình 1.17 Tiến hành cài đặt
Hình 1.18 Hoàn thành cài đặt
3.3 Cài đặt SQL Server Management Studio (SSMS)
To install SQL Server Management Studio (SSMS), navigate to the Developer Edition screen and click on the "Install SSMS" button The system will automatically redirect you to the download link for SSMS, which can be found at [Microsoft Documentation](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15).
Hình 1.19 Tiến hành cài đặt SSMS
Bước 2: Ấn vào “Download SQL Server Management Studio (SSMS)” để tải file
Hình 1.20 Tải để cài đặt SSMS
Bước 3: Mở file vừa tải về, bấm Install để cài giao diện cho phần mềm
Cuối cùng, sau khi cài xong ta chọn Close để hoàn tất
Hình 1.21 Hoàn tất cài đặt SSMS
Bạn khởi động Microsoft SQL Server Management Studio 201 lên để tiếp tục
To set up an account using Windows Authentication, select "Database Engine" for the Server type, enter your machine's name in the Server name field, and choose "Windows Authentication" for the Authentication method.
Sau khi thiết lập, hãy nhấn "Connect" để kết nối Để đảm bảo tính bảo mật tốt hơn, mình khuyên bạn nên sử dụng tài khoản theo SQL Server Authentication Khi kết nối thành công, bạn sẽ thấy giao diện như hình.
Hình 1.23 Kết nối đến máy chủ SQL Server
Sau khi hoàn tất thiết lập, hãy nhấn "Connect" để kết nối Để đảm bảo an toàn hơn, mình khuyên bạn nên sử dụng tài khoản theo phương thức SQL Server Authentication Khi kết nối thành công, bạn sẽ thấy giao diện như hình.
Hình 1.24 Kết nối thành công đến máy chủ
Bài tập thực hành của học viên
1 Trình bày vai trò và sự cần thiết của SQL Server
2 Trình bày kiến trúc của SQL Server
1 Trình bày vai trò của SQL Server, tham khảo mục 1.1.2 trong bài học trên
2 Trình bày sự cần thiết của SQL Server, tham khảo mục 1.2trong bài học trên
3 Cài đặt SQL Server 2019, tham khảo mục 3 trong bài học trên
Những trọng tâm cần chú ý:
- Trình bày được lịch sử phát triển và đặc điểm của MS SQL Server
- Cấu hình máy phải đảm bảo yêu cầucài đặt của SQL SERVER 2019
- Trình bày vai trò và sự cần thiết của SQL Server
- Trình bày yêu cầu thiết bị phần cứng đểcài đặt SQL Server
- Thao tác đúng các bước cài đặt SQL Server 2019
Bài mở rộng và nâng cao
Cài đặt trên máy chủ SQL-SRV dịch vụ MS SQL Server 2019 để làm Database server lưu trữ dữ liệu tập trung cho hệ thống mạng của công ty
Hình 1: Sơ đồ tổng quát hệ thống mạng
Yêu cầu đánh giá kết quả học tập
Trình bày vai trò và sự cần thiết của SQL Server
Trình bày được lịch sử phát triển và đặc điểm của MS SQL Server
Trình bày các bước cài đặt MS SQL Server với tên Instance Named là Default
Trình bày các bước cài đặt MS SQL với tất cả các component và chứng thực với cơ chế local.
Trình bày được các bước cài đặt SQLServer 2019
+ Thao tác thành thạo quản lý trên hệ thống
+ Thực hiện đúng các bước cài đặt SQLServer 2019
Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, linh hoạt và ngăn nắp trong công việc
Về kiến thức: Đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
Về kỹ năng: Đánh giá kỹ năng thực hành thực hiện các thao tác cài đặt SQLServer
Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, linh hoạt và ngăn nắp trong công việc.
CÁC THÀNH PHẦN CƠ BẢN CỦA SQL SERVER
Khái niệm cơ bản về mô hình quan hệ
Mục tiêu: Hiểu được thế nào là mô hình quan hệ.
Trong hầu hết các cơ sở dữ liệu hiện nay, RDBMS không chỉ lưu trữ dữ liệu mà còn quản lý hệ cơ sở dữ liệu bằng cách kiểm soát dữ liệu nhập vào và các kiểu dữ liệu có thể truy xuất Để đảm bảo an toàn cho tất cả dữ liệu, việc sử dụng hệ thống lưu trữ là cần thiết.
RDBMS cho phép lưu trữ dữ liệu với các nguyên tắc ràng buộc do người dùng hoặc hệ thống định nghĩa Trong chương này, chúng ta sẽ khám phá các thành phần của SQL Server, các kiểu dữ liệu và các loại dữ liệu quan hệ.
1.1 Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ, được đề xuất bởi Codd vào năm 1970, đã trở thành tiêu chuẩn phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại hiện nay Cơ sở dữ liệu quan hệ tổ chức dữ liệu thành các bảng có mối quan hệ với nhau, trong đó mỗi bảng bao gồm các dòng và cột; mỗi dòng được gọi là một bản ghi và mỗi cột là một trường.
Hình 2.1 Mô hình dữ liệu quan hệ
Cơ sở dữ liệu đóng vai trò quan trọng trong việc quản lý thông tin người dùng, giúp tổ chức và lưu trữ dữ liệu một cách hiệu quả Trong một kịch bản thực tế, giảng viên có thể chỉ ra các phương pháp tiếp cận lưu trữ dữ liệu, bao gồm việc sử dụng tệp và cơ sở dữ liệu Mỗi phương pháp đều có những đặc điểm riêng, với điểm mạnh như khả năng truy xuất nhanh và tính bảo mật cao của cơ sở dữ liệu, trong khi hạn chế có thể là chi phí triển khai và yêu cầu kỹ thuật phức tạp Việc hiểu rõ các cách tiếp cận này sẽ giúp tối ưu hóa quy trình quản lý thông tin và nâng cao hiệu quả sử dụng dữ liệu.
- Vai trò của hệ quản trị cơ sở dữ liệu trong việc khai thác và quản trị cơ sở dữ liệu
Mô hình dữ liệu quan hệ bao gồm các khái niệm cơ bản như bảng (quan hệ), bản ghi (dòng dữ liệu), thuộc tính (attributes), miền giá trị (domain), và khóa (bao gồm khóa chính và khóa ngoại) Bảng là cấu trúc tổ chức dữ liệu chính, trong khi bản ghi đại diện cho các bản ghi riêng lẻ trong bảng Các thuộc tính xác định các đặc điểm của bản ghi, và miền giá trị xác định tập hợp các giá trị hợp lệ cho từng thuộc tính Khóa chính đảm bảo tính duy nhất cho mỗi bản ghi, trong khi khóa ngoại tạo mối quan hệ giữa các bảng khác nhau.
Trong bài viết này, chúng ta sẽ khám phá các mô hình truy nhập dữ liệu SQL Server, bao gồm mô hình tập trung, mô hình khách/chủ và mô hình hướng dịch vụ Giảng viên có thể tổ chức thảo luận về các đặc điểm, ưu và nhược điểm của từng mô hình kiến trúc Ngoài ra, giảng viên cũng nên đưa ra gợi ý về khả năng áp dụng và lựa chọn mô hình kiến trúc phù hợp tùy thuộc vào điều kiện phát triển của ứng dụng cụ thể.
Khái quát về kiến trúc bên trong của SQL Server bao gồm các thành phần và dịch vụ quan trọng Các thành phần cơ bản bắt buộc cho hệ quản trị cơ sở dữ liệu gồm quản lý lưu trữ, quản lý truy vấn và quản trị giao dịch Ngoài ra, SQL Server còn cung cấp các thành phần bổ sung mang lại giá trị gia tăng cho việc xử lý dữ liệu, như dịch vụ tích hợp dữ liệu, dịch vụ phân tích dữ liệu và dịch vụ tạo báo cáo.
Trong SQL Server, có hai ngôn ngữ lập trình chính là Transact-SQL (T-SQL) và Common Language Runtime (CLR) T-SQL là ngôn ngữ truy vấn mở rộng, cho phép người dùng thực hiện các thao tác trên cơ sở dữ liệu, trong khi CLR cho phép tích hợp mã viết bằng các ngôn ngữ NET, mở rộng khả năng của SQL Server Sự khác biệt giữa T-SQL và CLR nằm ở cách thức hoạt động và ứng dụng: T-SQL chủ yếu dùng cho các truy vấn và thao tác dữ liệu, trong khi CLR thích hợp cho các tác vụ phức tạp hơn, như xử lý logic nghiệp vụ hoặc tính toán phức tạp Việc hiểu rõ về hai ngôn ngữ này giúp tối ưu hóa hiệu suất và khả năng mở rộng của hệ thống cơ sở dữ liệu.
Hệ quản trị cơ sở dữ liệu SQL Server đã trải qua một quá trình phát triển và tiến hóa đáng kể Các "thế hệ" quản trị cơ sở dữ liệu có những khác biệt cơ bản; trong đó, thế hệ 2 mở rộng khả năng định nghĩa kiểu dữ liệu của người dùng và cung cấp một số dịch vụ phân tích dữ liệu Thế hệ 3, bao gồm SQL Server 2014 và SQL Server 2019, đánh dấu một bước nhảy vọt quan trọng nhờ vào việc tích hợp CLR vào lõi của hệ quản trị cơ sở dữ liệu.
- Nêu khái quát các đặc điểm nổi trội của SQL Server 2019 Các dịch vụ hỗ trợ của SQL Server cho phép bảo vệ dữ liệu mọi nơi, mọi lúc
Trong cơ sở dữ liệu quan hệ, bảng là đối tượng chính để tổ chức và lưu trữ dữ liệu, với mỗi cơ sở dữ liệu bao gồm nhiều bảng được xác định duy nhất bởi tên của chúng Mỗi bảng được cấu thành từ các dòng và cột, trong đó mỗi dòng đại diện cho một thực thể, ví dụ, mỗi dòng trong bảng SINHVIEN tương ứng với một sinh viên Các cột trong bảng biểu diễn các thuộc tính của thực thể, chẳng hạn như cột TENKHOA trong bảng KHOA thể hiện tên các khoa được lưu trữ.
Như vậy, liên quan đến mỗi một bảng bao gồm các yếu tố sau:
• Tên của bảng: được sử dụng để xác định duy nhất mỗi bảng trong cơ sở dữ liệu
Cấu trúc của bảng bao gồm các cột, mỗi cột được xác định bởi tên và kiểu dữ liệu riêng, ví dụ như cột TENKHOA trong bảng KHOA có kiểu dữ liệu là CHAR Kiểu dữ liệu này quy định các giá trị dữ liệu hợp lệ cho từng cột trong bảng.
• Dữ liệu của bảng: Tập các dòng (bản ghi) hiện có trong bảng.
Trong một cơ sở dữ liệu được tối ưu hóa, mỗi bảng cần có ít nhất một cột hoặc một tập hợp các cột để xác định duy nhất mỗi dòng trong bảng Tập hợp các cột này được gọi là khóa của bảng.
Việc lựa chọn khoá cho bảng là yếu tố quan trọng trong thiết kế và cài đặt cơ sở dữ liệu quan hệ Mỗi dòng dữ liệu trong bảng cần có giá trị khác nhau ở khoá Trong bảng MONHOC, cột MAMONHOC được xác định là khoá chính.
Một bảng trong cơ sở dữ liệu có thể chứa nhiều tập cột khác nhau, mỗi tập cột này có thể hoạt động như một khoá, xác định duy nhất một dòng dữ liệu Khoá được chọn làm định danh chính cho bảng gọi là khoá chính (primary key), trong khi các khoá còn lại được gọi là khoá phụ hoặc khoá dự tuyển (candidate key/unique key).
1.4 Mối quan hệ và khoá ngoài
Các bảng trong cơ sở dữ liệu không hoạt động độc lập mà có mối quan hệ chặt chẽ với nhau thông qua các ràng buộc dữ liệu Ràng buộc này yêu cầu giá trị dữ liệu trong một bảng phải xuất hiện trước trong một bảng khác Mối quan hệ giữa các bảng giúp đảm bảo tính chính xác và hợp lệ của dữ liệu trong cơ sở dữ liệu.
Hình 2.2 Quan hệ 2 bảng trong một cơ sở dữ liệu
Cấu trúc của SQL SERVER
Mục tiêu: Liệt kê được các đối tượng cấu thành SQL server
2.1 Các cơ sở dữ liệu hệ thống của SQL SERVER
RDBMS cũng như SQL SERVERchứa dựng nhiều đối tượng bao gồm:
• Database: cơ sở dữ liệu của SQL SERVER
•Tập tin log: tập tin lưu trữ những chuyển tác của SQL
• Diagrams: sơ đồ quan hệ
• Views: Khung nhìn (hay bảng ảo) số liệu dựa trên bảng.
• Stored Procedure: Thủ tục và hàmnội
• User defined Function: Hàm do người dùng định nghĩa
• Users: Người sử dụng cơ sở dữ liệu
• Roles: Các qui định vai trò và chức năng trong hệ thống SQL SERVER
• Defaults: Các giá trị mặc nhiên
• User defined data types: Kiểu dữ liệu do người dùng tự định nghĩa
• Full text catalogs: Tập phân loại dữ liệu Text
Cơ sở dữ liệu là yếu tố quan trọng nhất khi làm việc với SQL Server, nhưng các đối tượng con của nó mới là thành phần chính SQL Server 2019 hỗ trợ Multiple-Instance, do đó khi đề cập đến một SQL Server, chúng ta thường nói về một Instance của SQL Server 2000, thường là Default Instance Mỗi Instance của SQL Server 2000 bao gồm 4 hệ thống cơ sở dữ liệu và một hoặc nhiều cơ sở dữ liệu người dùng, trong đó các hệ thống cơ sở dữ liệu là thành phần thiết yếu.
The Master database contains all system-level information, including details about other databases within the system, such as the locations of data files, login accounts, and the system configuration settings of SQL Server.
Tempdb is a temporary database that stores all tables and stored procedures created during user sessions or by the SQL Server engine itself These temporary objects are cleared when SQL Server is restarted or when a user disconnects.
The Model database serves as a template for other databases in SQL Server When a new user database is created, SQL Server replicates all system objects, including tables and stored procedures, from the Model database to the newly created database.
Msdb: Database này được SQL Server Agent sử dụng để hoạch định các báo động và các công việc cần làm (schedule alerts and jobs)
2.2 Cấu trúc vật lý của một SQL Server Database
Mỗi một database trong SQL Server được lưu trữdưới dạng 2 tập tin:
Tập tin dữ liệu (data file): Lưu trữ dữ liệu gồm 2 loại:
Primary data file (tên file có phần mở rộng là.mdf): đây là file chính chứa data và những system tables
Secondary data file (tên file có phần mở rộng là.ndf): đây là file phụ thường chỉ sử dụng khi database được phân chia để chứa trên nhiều dĩa
The Transaction Log file, identified by the ldf extension, records all changes made within a database and contains comprehensive information necessary for rolling back or rolling forward transactions when required.
Ghi chú; Mỗi một database trong SQL Server có ít nhất một tập tin dữ liệu và một tập tin log:
Data trong SQL Server được chứa thành từng Page 8KB và 8 page liên tục tạo thành một Extent như hình vẽdưới đây:
Hình 2.3 Cấu trúc vật lý của một SQL Server Database
Trước khi SQL Server lưu trữ dữ liệu vào một bảng, nó cần phải dành riêng một khoảng trống trong tệp dữ liệu cho bảng đó, và những khoảng trống này được gọi là extents.
Có 2 loại Extents: Mixed Extents (loại hỗn hợp) dùng để chứa data của nhiều tables trong cùng một Extent và Uniform Extent (loại thuần nhất) dùng để chứa data của một table Ðầu tiên SQL Server dành các Page trong Mixed Extent để chứa data cho một table sau đó khi data tăng trưởng thì SQL dành hẳn một Uniform Extent cho table đó.
2.3 Nguyên tắc hoạt động của Transaction Log Trong SQL Server
Transaction log file trong SQL Server ghi lại mọi thay đổi trong cơ sở dữ liệu Khi có yêu cầu thay đổi dữ liệu như Insert, Update, hoặc Delete từ ứng dụng, SQL Server sẽ tải trang dữ liệu tương ứng vào bộ nhớ (data cache) và thực hiện các thay đổi, tạo ra các trang bị thay đổi (dirty-page) Tất cả các thay đổi này sẽ được ghi vào transaction log file, được gọi là write-ahead log Cuối cùng, quá trình Check Point Process sẽ kiểm tra và ghi lại tất cả các giao dịch đã được hoàn tất vào ổ cứng (flushing the page).
Hình 2.4 Nguyên tắc hoạt động của Transaction Log
Ngoài quy trình Check Point, các dirty-page còn được xử lý bởi một Lazy Writer Nhân vật này hoạt động âm thầm, chỉ thức dậy để quét qua phần data cache theo chu kỳ nhất định, sau đó lại trở về trạng thái ngủ chờ lần quét tiếp theo.
Transaction trong cơ sở dữ liệu là một chuỗi hoạt động được coi là một công việc đơn, với nguyên tắc "tất cả hoặc không có gì" Điều này có nghĩa là một giao dịch phải hoàn thành toàn bộ hoặc không thực hiện bất kỳ thay đổi nào Ví dụ điển hình về transaction là khi thực hiện các thao tác chuyển tiền, nơi cả hai tài khoản phải được cập nhật đồng thời hoặc không có thay đổi nào xảy ra.
Chúng ta muốn chuyển một số tiền $500 từ account A sang account B như vậy công việc này cần làm các bước sau:
Việc chuyển tiền phải được thực hiện dưới dạng một giao dịch, nghĩa là giao dịch chỉ được coi là hoàn tất khi cả hai bước đều thành công Nếu chỉ thực hiện được bước 1 mà không hoàn thành bước 2, giao dịch sẽ không được xem là hoàn tất và cần phải khôi phục lại trạng thái ban đầu.
Thế thì Check Point Process hoạt động như thế nào để có thể đảm bảo một transaction được thực thi mà không làm "dơ" database
Hình 2.5 Mô hình chuyển đổi
Trong hình vẽ, một transaction được biểu diễn bằng mũi tên trên trục thời gian Khi một Check Point được đánh dấu giữa transaction 2 và 3 và sự cố xảy ra trước Check Point tiếp theo, SQL Server sẽ sử dụng transaction log file để phục hồi dữ liệu sau khi khởi động lại Transaction 1 không cần xử lý vì dữ liệu đã được lưu vào đĩa tại thời điểm Check Point Trong khi đó, transaction 2 và 4 sẽ được roll forward vì mặc dù đã được commited, dữ liệu chưa kịp lưu vào đĩa do sự cố SQL Server có đủ thông tin từ log file để ghi vào đĩa cứng Ngược lại, transaction 3 và 5 chưa được commited do bị ngắt đột ngột, vì vậy SQL Server sẽ roll back hai transaction này dựa trên thông tin trong log file.
2.4 Cấu Trúc Logic Của Một SQL Server Database
Each database in SQL Server is organized into various objects, including tables, views, stored procedures, indexes, and constraints System objects in SQL Server typically begin with the prefix 'sys' or 'sp' These objects will be explored in detail in the following chapters of the curriculum.
Bài tập thực hành của học viên
1 Trình bày mô hình quan hệ của SQL Server
2 Trình bày cấutrúc của SQL Server
3 Khởi động SQL server, quan sát và ghi chép lại các thành phần của cơ sở dữ liệu hiện có trên SQL server 2019
1 Trình bày mô hình quan hệ của SQL Server, tham khảo mục 1 trong bài 2 trong giáo trình
2 Trình bày cấu trúc của SQL Server, tham khảo mục 2 trong bài 2 trong giáo trình
3 Khởi động SQL server, quan sát và ghi chép lại các thành phần của cơ sở dữ liệu hiện có trên SQL server 2019
• Tên database, tên ập tin log, tên các bảng dữ liệu
• Filegroups, diagrams, khung nhìn (hay bảng ảo).
• Thủ tục và hàm nội, hàm do người dùng định nghĩa, người sử dụng cơ sở dữ liệu.
• Các qui định vai trò và chức năng trong hệ thống SQL SERVER, những qui tắc, các giá trị mặc nhiên
Những trọng tâm cần chú ý:
- Trình bày mô hình quan hệ của SQL Server
- Trình bày cấu trúc của SQL Server
- Trình bày Cấu trúc vật lý của một SQL Server Database
- Khởi động SQL server, quan sát và ghi chép lại các thành phần của cơ sở dữ liệu hiện có trên SQL server 2019
- Thực hiệnđúngviệc bật CLR integration và Database Mail
- Cài đặt số lượng kết nối tối đa vào SQL Server
- Sử dụng lệnh sqlcmd để liệt kê danh sách CSDL trên server
Bài mở rộng và nâng cao
Cấu hình những thông số cơ bản giúp người dùng có thể kết nối và truy cập database
Yêu cầu đánh giá kết quả học tập
Trình bày Cấu trúc vật lý của một SQL Server Database
Khởi động SQL Sever Management Studio và đăng nhập vào SQL server
Trình bày các bước bật CLR integration và Database Mail
Trình bày các bước cài đặt số lượng kết nối tối đa vào SQL Server
Trình bày được các bước kết nối và truy cập database vào SQLServer 2019
Thực hiện đúng việc bật CLR integration và Database Mail
Cài đặt số lượng kết nối tối đa vào SQL Server
Sử dụng lệnh sqlcmd để liệt kê danh sách CSDL trên server
Thực hiện đúng các bước kết nối và truy cập database vào SQLServer 2019
Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, linh hoạt và ngăn nắp trong công việc.
Về kiến thức: Đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
This article evaluates practical skills in executing CLR integration and Database Mail operations, as well as configuring the maximum number of connections in SQL Server 2019.
Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, linh hoạt và ngăn nắp trong công việc.
GIỚI THIỆU MỘT SỐ CÔNG CỤ TRONG SQL SERVER
Sử dụng công cụ Enterprise manager
Mục tiêu: Trình bày được các công cụ cơ bản của SQL và công dụng của chúng.
Enterprise Manager (EM) là công cụ quan trọng dành cho quản trị viên server và cơ sở dữ liệu (CSDL) Nó cho phép người dùng dừng và khởi động server, đồng thời thực hiện các tác vụ như đăng ký một server.
Cấu hình các server cục bộ hoặc từ xa
Cấu hình và quản lý một cài đặt với nhiều server (multiple-server)
Cài đặt các bảo mật đăng nhập (login security), thêm các người dùng (user), các nhà quản trị hệ thống (system administrator), và các điều hành viên
Gán một password nhà quản trị hệ thống
Tạo và lập biểu cho các công việc (job).
Tạo các cảnh báo và cấu hình giao tiếp đến nhà quản trị hệ thống thông qua e- mail
Installing and managing databases involves overseeing tables, indexes, views, stored procedures, rules, triggers, defaults, backup devices, and error logs.
Quản lý các service khác.
SQL Server Manager là công cụ quản lý cho phép người dùng khởi động, tạm dừng hoặc dừng các dịch vụ trong SQL Server, giúp quản lý hiệu quả các dịch vụ mà SQL Server cung cấp.
1.2.1 Các dịch vụ của SQL Server
A service is a program or process that executes a specific function to support other programs SQL Server offers several services, including SQL Server Service, SQL Server Agent Service, Microsoft Search Service, and Microsoft Distributed Transaction Coordinator Each service has its own functions and responsibilities that aid in the operations of SQL Server When installing one or more instances of SQL Server, the service name for each instance is formatted as MSSQL$InstanceName, where $InstanceName is the name designated during installation Correspondingly, each SQL Server Agent service for an instance is referred to as SQLAGENT$InstanceName However, multiple SQL Server instances will share a single Microsoft Distributed Transaction Coordinator and Microsoft Search service.
Khi khởi động SQL Server, dịch vụ SQL Server được kích hoạt trên Windows NT hoặc Windows 2000, quản lý các tập tin cơ sở dữ liệu và xử lý các câu lệnh T-SQL Dịch vụ này cũng định vị tài nguyên giữa các kết nối người dùng hiện tại, đảm bảo tính nhất quán dữ liệu và thực hiện nhiều chức năng khác Bên cạnh đó, dịch vụ SQL Server Agent cũng đóng vai trò quan trọng trong việc tự động hóa các tác vụ và quản lý lịch trình công việc.
SQL Server Agent là công cụ hỗ trợ lập lịch và thực thi các công việc quản trị cơ sở dữ liệu, bao gồm cảnh báo, thông báo và kế hoạch bảo trì Nếu không có dịch vụ này, việc quản lý cơ sở dữ liệu sẽ trở nên phức tạp hơn Với SQL Server Agent, các thao tác tự động giúp duy trì cơ sở dữ liệu trở nên dễ dàng và hiệu quả hơn.
Chúng ta có thể thiết lập một job để tự động sao lưu dữ liệu mỗi đêm vào lúc 1 giờ sáng và một job khác để sao lưu transaction log mỗi 30 phút Để theo dõi hiệu năng hệ thống, cần có cảnh báo khi CPU của server hoạt động trên 90% Đảm bảo rằng SQL Server Agent đang chạy để thực hiện các tác vụ này.
Dịch vụ này có thể được cấu hình để khởi động tự động hoặc thủ công Để đảm bảo các job, alerts và notifications được thực thi hiệu quả, nên cấu hình cho nó khởi động tự động MICROSOFT DISTRIBUTED TRANSACTION COORDINATOR.
Dùng quản lý các giao tác phân tán. d MICROSOFT SEARCH
1.2.2 Khởi động, tạm ngưng, dừng các dịch vụ của SQL Server Để khởi động hay dừng các dịch vụ SQL Server bằng cách dùng SQL Server Service Manager thì thực hiện các bước sau:
1 Click chọn Start/Programs/Microsoft SQL Server, và chọn Service Manager đểhiển thị công cụ SQL Service Manager.
2 Tên server cục bộ xuất hiện trong mục Server và các dịch vụ của SQL Server xuất hiện trong mục Service Trong danh sách xổ xuống, chọn tên của server và dịch vụ mà bạn muốn điều khiển
Bạn có thể khởi động hoặc dừng các dịch vụ đã chọn bằng cách nhấp vào nút tương ứng Nếu dịch vụ đang ở trạng thái dừng, hãy nhấp vào nút Bắt đầu/Tiếp tục để khởi động lại.
4 Auto-start service when OS Server: cấu hình tự động chạy dịch vụ khi hệ điều hành khởi động.
1.3 Các công cụ của MS SQL
1.3.1 Trình Enterprise Manager Đây là môi trường trực quan sử dụng hệ thống thực đơn Enterprise Manager Sử dụng hệ thống thực đơn (menu) để thực hiện các yêu cầu Chủ yếu các yêu cầu tạo, thêm, xoá, sửa dữ liệu Quản lý lịch trình Backup dữ liệu Quản lý người dùng đang truy cập CSDL Tạo, xóa quyền Login User Định cấu hình cho Server Tạo và quản lý tìm kiếm
Hình 3.1: Giao diện SQL Server Enterprise Manager
1.3.2 Làm việc với công cụ Enterprise Manager
Chọn database -> Click phải -> Chọn New Database…
Hình 3.2: Giao diện SQL Server
- Đặt tên Database trong Textbox Database Name, click OK
Hình 3.3: Hộp thoại New Database
+ Initial Size (MB): dung lượng khởi tạo tập tin.
+ Autogrowth: dung lượng tăng trưởng tập tin
- Click phải chuột lên CSDL cần xóa -> Delete
When deleting a database in SQL Server 2014, it is advisable to check the box for "Close existing connections." This action will terminate all connections to the database, ensuring that the deletion process proceeds without any errors.
Hình 3.4: Hộp Thoại Delete Object
Hình 3.5:Hộp thoại Database Properties
1.4.1 Thiết kế bảng dữ liệu:
Bảng dữ liệu là thành phần cơ bản của cơ sở dữ liệu (CSDL), được cấu trúc từ một hoặc nhiều bảng, mỗi bảng bao gồm các hàng và cột Mỗi hàng mô tả một đối tượng, sự kiện hoặc vấn đề, trong khi các cột thể hiện thuộc tính của những đối tượng hoặc sự kiện đó Các cột trong bảng có cùng kiểu dữ liệu (data type) Ngoài ra, bảng còn bao gồm các khóa, liên kết và ràng buộc để đảm bảo tính toàn vẹn của dữ liệu.
Chọn database -> Click phải lên table -> Chọn New Table …
Hình 3.6 Hộp thoại Object Explorer
Khi chọn New Table sẽ xuất hiện bên phải màn hình bên dưới
Sau đó ta nhập Column Name, DataType… Nhấn Enter để nhập cột kết tiếp
Hình 3.7 Hộp thoại thuộc tính Table Lưu table trên thanh Standard toolbar -> chọn Save
Trước khi thiết lập bảng dữ liệu, cần xác định cách xây dựng bảng dựa trên một số thông tin quan trọng.
- Kiểu dữ liệu trong bảng.
- Các cột, kiểu dữ liệu tương ứng (và độ dài nếu cần thiết).
Cách dùng công cụ Query Analyzer để tạo ra các CSDL
SQL Query Analyzer là giao diện người dùng đồ họa (Graphical User Interface –GUI) dành cho các nhà lập trình Query Analyzer cho phép thực hiện:
- Tạo các truy vấn (query), bó lệnh (script) và thực thi (execute) chúng để tác động đến CSDL của SQL Server
- Tạo các đối tượng của CSDL một cách nhanh chóng từ những script được định nghĩa trước
- Sao chép nhanh chóng các đối tượng của CSDL
- Tạo và thực thi các thủ tục (Stored procedures), hàm người dùng (user-defined function)
- Tìm lỗi (Debug) các thủ tục.
- Tìm lỗi (Debug) các vấn đề hiệu năng của của truy vấn (Show Execution Plan, Show Server Trace, Show Client Statistics, Index Tuning Wizard)
- Định vị các đối tượng trong các CSDL, xem và làm việc với các đối tượng
- Chèn, cập nhật, xóa các mẫu tin trong table một cách nhanh chóng.
SQL Query Analyzer có thể được khởi động từ SQL Server Enterprice Manager hoặc từ Start Menu hoặc từ của sổ Command bằng cách thực thi tiện ích ISQLW.
Khi khởi động SQL Query Analyzer, hộp thoại "Connect to SQL Server" sẽ xuất hiện, yêu cầu bạn xác định chế độ chứng thực để kết nối với SQL Server.
Bạn có thể mở nhiều cửa sổ Query Analyzer đồng thời để làm việc với các cơ sở dữ liệu khác nhau hoặc thực thi các script khác nhau Mỗi cửa sổ sẽ tạo ra một kết nối riêng biệt đến server, cho phép duy trì các cài đặt khác nhau và mỗi cửa sổ sẽ có cơ sở dữ liệu hiện hành riêng.
2.3 Thành phần chính của Query Analyzer
SQL Query Analyzer là công cụ hỗ trợ thiết kế các tác vụ cần thiết để tạo và quản lý cơ sở dữ liệu (CSDL), bao gồm các cửa sổ, hộp thoại và hướng dẫn (wizard) giúp lưu trữ và khai thác dữ liệu hiệu quả trong các CSDL.
Thanh tiêu đề (Title bar): Hiển thị tên của Server, CSDL hiện hành, và tài khoản kết nối tới.
Công cụ Database trên thanh công cụ, cho biết và cho phép bạn thay đổi CSDL được kết nối hiện hành
Bảng điều chỉnh (Editor pane) cho phép người dùng nhập và thực thi các câu lệnh T-SQL, trong khi bảng kết quả (Results pane) hiển thị kết quả của các truy vấn đã được thực thi, với khả năng hiển thị một hoặc nhiều trang trong bảng kết quả.
Trang Messages: Hiển thị thông báo và các lổi gửi trả từ server
Trang Results: Hiển thị những kết quả như văn bản tự do
Trang Results Grid hiển thị kết quả trong bảng kẻ lưới, cho phép người dùng xem dữ liệu nhưng không thể chỉnh sửa Nếu một truy vấn yêu cầu server trả về nhiều hơn một tập kết quả, sẽ có nhiều trang Results Grid được hiển thị Nếu lưới kết quả trống sau khi thực hiện một truy vấn, điều đó có nghĩa là không có bảng kết quả nào được trả về.
Trang Execution Plan: Hiển thị một biểu đồ của kế hoạch thực thi của truy vấn hiện hành Bật tắt Execution Plan ta chọn từ thực đơn Query.
Thiết lập một số cấu hình về Client network utility
3.1 Giới thiệu về mô hình Client/Server và các hệ quản trị CSDL phục vụ cho mô hình Client/Server
SQL là hệ quản trị cơ sở dữ liệu đa người dùng theo mô hình Client/Server, được sử dụng rộng rãi để lưu trữ dữ liệu cho các ứng dụng lớn hiện nay Mô hình này cho phép quản lý và điều khiển tất cả các chức năng mà hệ quản trị cơ sở dữ liệu cung cấp, mang lại cho người dùng những khả năng linh hoạt và hiệu quả.
• Truy xuất và thao tác dữ liệu
• Đảm bảo toàn vẹn dữ liệu
3.2 Các đặc trưng của mô hình Client/server
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ô hình Client/Server trên SQL Server bao gồm phần Server, nơi lưu trữ các cơ sở dữ liệu (CSDL) và cung cấp các chức năng quản lý dữ liệu Mô hình này cho phép nhiều người dùng truy cập dữ liệu cùng lúc, đảm bảo tính nhất quán và tiết kiệm Tất cả dữ liệu được truy xuất thông qua server, giúp nâng cao độ bảo mật, khả năng chịu lỗi, hỗ trợ chạy đồng thời và sao lưu dự phòng.
Phần Client (Máy khách) là các phần mềm hoạt động trên máy trạm, cho phép người dùng giao tiếp với cơ sở dữ liệu trên Server Hệ thống máy tính Client/Server bao gồm 5 mô hình kiến trúc, dựa trên cấu hình phân tán để truy cập dữ liệu.
- Mô hình CSDL tập trung (Centralized database model)
- Mô hình CSDL theo kiểu file - server (File - server database model)
- Mô hình xử lý từng phần CSDL (Database extract proceSQL Servering model)
- Mô hình CSDL Client/Server (Client/Server database model)
- Mô hình CSDL phân tán (Distributed database model)
3.3 Các thành phần quan trọng trong SQL Server
Mục tiêu: Trình bày được các thành phần quan trọng của SQL server
SQL Server 2000 bao gồm nhiều thành phần như Relational Database Engine, Analysis Service và English Query, phối hợp với nhau để tạo ra một giải pháp toàn diện cho việc lưu trữ và phân tích dữ liệu một cách hiệu quả.
3.3.1 Relational Database Engine - Cái lõi của SQL Server Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC) Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một user log off
3.3.2 Replication - Cơ chế tạo bản sao
Trong trường hợp cần tạo một database tương tự để chạy báo cáo mà không ảnh hưởng đến hiệu suất của server chính, việc sử dụng cơ chế replication của SQL Server là giải pháp tối ưu Điều này giúp đảm bảo rằng dữ liệu trên cả hai database được đồng bộ hóa thường xuyên, từ đó duy trì tính chính xác của các báo cáo mà không cần sử dụng phương pháp sao lưu và phục hồi.
Cơ chế nhân bản của SQL Server cho phép nhiều phiên bản từ xa truy cập cùng một dữ liệu, phục vụ cho người dùng di động và các trang web kết nối qua internet, dial-up hoặc intranet Việc phân chia vật lý dữ liệu không chỉ cải thiện hiệu suất tổ chức mà còn hỗ trợ xử lý dữ liệu tại các địa điểm khác nhau, giúp trình bày thông tin một cách hiệu quả tại các site khác để tham khảo.
Dịch vụ chuyển dữ liệu DTS là giải pháp hiệu quả cho việc di chuyển và định dạng dữ liệu giữa các hệ thống khác nhau như Oracle, DB2, SQL Server và Microsoft Access Trong môi trường công ty lớn, nhu cầu chuyển dữ liệu giữa các máy chủ là rất cao, và DTS giúp đơn giản hóa quy trình này, đảm bảo dữ liệu được chuyển đổi và lưu trữ một cách chính xác Bài học 8 sẽ cung cấp kiến thức chi tiết về cách sử dụng DTS để thực hiện các tác vụ này.
Dịch vụ phân tích dữ liệu của Microsoft giúp biến dữ liệu trong cơ sở dữ liệu thành thông tin hữu ích Công cụ mạnh mẽ này sử dụng khái niệm hình khối nhiều chiều và kỹ thuật đào mỏ dữ liệu, mang lại hiệu quả cao trong việc phân tích.
3.3.5 English Query - Một dịch vụ truy vấn Ðây là một dịch vụ giúp cho việc query data bằng tiếng Anh (English).
Dịch vụ này giúp việc quản lý và xử lý Meta data trở nên dễ dàng hơn Vậy Meta data là gì? Meta data là thông tin mô tả cấu trúc của dữ liệu trong cơ sở dữ liệu, chẳng hạn như loại dữ liệu (String hay Integer) và thông tin về các khóa chính Mặc dù những thông tin này được lưu trữ trong cơ sở dữ liệu, nhưng chúng được gọi là Meta data để phân biệt với dữ liệu chính Để tìm hiểu thêm về Meta data, bạn có thể tham khảo SQL Server Books Online, vì bài viết này không đề cập chi tiết về dịch vụ này.
Dù bạn đã tham khảo nhiều sách khác về SQL Server, tài liệu trực tuyến này vẫn rất hữu ích và cần thiết, lý do Microsoft đã tích hợp nó cùng với SQL Server.
Người dùng ạn có thể tìm thông tin trong SQL Server Books Online bằng cách:
- Điều hướng thông qua bảng nội dung.
- Gõ một từ khóa trong index.
- Gõ một từ hoặc một cụm từ và thực hiện việc tìm kiếm
Bài tập thực hành của học viên
1 Thiết lập một số cấu hình về Client network utility trên SQL Server
2 Sử dụng Enterprise Manager của MS SQL thực hiện các yêu cầu sau o Tạo một CSDL tên QuanLyNhanVien
- Tạo và thiết lập quan hệ cho hai bảng như sơ đồ sau:
Hình 3.65 Sơ đồ quan hệ CSDL QuanLyNhanVien
- Nhập dữ liệu cho hai bảng, mỗi bảng ít nhất 10 bản ghi.
- Tạo khung nhìn xem dữ liệu của từng bảng
- Dettach và Attach cơ sở dữ liệu
- Back up và Restore dữ liệu
3 Sử dụng Enterprise Manager của MS SQL thực hiện các yêu cầu sau o Tạo CSDL có tên QLDeAn
- Xây dựng các bảng và mối quan hệ
- Nhập dữ liệu cho hai bảng, mỗi bảng ít nhất 10 bản ghi.
- Tạo khung nhìn xem dữ liệu của từng bảng
- Dettach và Attach cơ sở dữ liệu
- Back up và Restore dữ liệu
1 Thiết lập một số cấu hình về Client network utility trên SQL Server, tham khảo mục 3 trong bài 3 trong giáo trình
2 Sử dụng Enterprise Manager của MS SQL thực hiện các yêu cầu sau o Tạo một CSDL tên QuanLyNhanVien, tham khảo mục 1.3.2.1 trong bài 3 trong giáo trình
Để tạo và thiết lập quan hệ giữa hai bảng, bạn cần tham khảo các mục 1.4, 1.4.2 và 1.6 trong bài 3 của giáo trình Sau đó, nhập dữ liệu cho mỗi bảng với ít nhất 10 bản ghi, theo hướng dẫn tại mục 1.4.4 Tiếp theo, tạo khung nhìn để xem dữ liệu của từng bảng như hướng dẫn ở mục 1.7 Đừng quên thực hiện các thao tác Detach và Attach cơ sở dữ liệu, tham khảo mục 1.11 Cuối cùng, tiến hành sao lưu và khôi phục dữ liệu theo hướng dẫn tại mục 1.13 trong bài 3.
3 Sử dụng Enterprise Manager của MS SQL thực hiện các yêu cầu sau o Tạo CSDL có tên QLDeAn, tham khảo mục 1.3.2.1 trong bài 3 trong giáo trình
Để xây dựng các bảng và mối quan hệ, bạn cần tham khảo mục 1.4, 1.4.2 và 1.6 trong bài 3 của giáo trình Sau đó, hãy nhập dữ liệu cho hai bảng, mỗi bảng có ít nhất 10 bản ghi, theo hướng dẫn tại mục 1.4.4 Tiếp theo, tạo khung nhìn để xem dữ liệu của từng bảng, tham khảo mục 1.7 Đừng quên thực hiện thao tác Detach và Attach cơ sở dữ liệu, như được hướng dẫn ở mục 1.11 Cuối cùng, hãy thực hiện việc sao lưu và khôi phục dữ liệu theo chỉ dẫn tại mục 1.13 trong bài 3 của giáo trình.
Những trọng tâm cần chú ý:
- Trình bày các thao tạo mới CSDL, chú ý các tham số đi kèm CSDL trên SQL Server
- Trình bày các thao tạo về CSDLnhư: Xóa, chỉnh sử tham số, nơi lưu trữ, dung lượng ban đầu cho các dữ liệu và logic
- Trình bày các thao tác trên Table như: Tạo mơi, thêm, sử xóa, khóa và các ràng buộc
- Trình bày các thao tác trên khung nhìn như: Tạo mơi, thêm, sử xóa, khóa và truy vấn đơn giản
- Trình bày các thao tác tạo liên kết cơ sở dữ liệu dữ liệu
- Trình bày các thao tác Dettach và Attach cơ sở dữ liệu
- Trình bày các thao tác Import và Export cơ sở dữ liệu
- Trình bày các thao tác Back up và Restore dữ liệu
- Thực hiện đúng các thao tác trên công cụ Enterprise manager
Bài mở rộng và nâng cao
Công ty TNHH Thương mại Massan hiện đang sử dụng máy chủ MS SQL Server 2014 để lưu trữ cơ sở dữ liệu cho tất cả các phần mềm quản lý, nhằm đáp ứng nhu cầu công việc của công ty.
Phần mềm quản lý nhân sự và tiền lương.
Phần mềm quản lý sản xuất và thương mại.
Phần mềm quản lý kinh doanh.
Hình 6.66 Sơ đồ tổng quát hệ thống mạng công ty Massan
Công ty đang lưu trữ một lượng lớn dữ liệu quan trọng trên máy chủ SQL-SRV, vì vậy cần có kế hoạch bảo vệ an toàn cho dữ liệu này trước các sự cố có thể xảy ra như hỏng ổ cứng, lỗi Mainboard hoặc cháy máy Việc đảm bảo an toàn dữ liệu là cực kỳ cần thiết để duy trì hoạt động và bảo vệ thông tin quan trọng của công ty.
Cấu hình chiến lược sao lưu thảm họa cho Database
Tiến hành khôi phục dữ liệu cho Database
Cấu hình các chế độ backup đối với các loại dữ liệu khác nhau.
Thực hiện restore khi dữ liệu bị mất.
Yêu cầu đánh giá kết quả học tập
Thực hiện đúng việc cài đặt chiến lược Backup (Sao lưu)
Thao tác đúng Full Backup CSDL AdventureWorks
Thao tác đúng Log Backup CSDL AdventureWorks
Thực hiện đúng, Differential Backup CSDL AdventureWorks và Log Backup CSDL AdventureWorks
Thực hiện đúng các bước Restore CSDL
Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, linh hoạt và ngăn nắp trong công việc.
Vềkiến thức: Đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp.
Về kỹ năng: Đánh giá kỹ năng thực hành thực hiện các thao tác Back up và Restore
Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, linh hoạt và ngăn nắp trong công việc.
PHÁT BIỂU CƠ BẢN T -SQL
Cú pháp các câu lệnh T -SQL
1.1 Identifiers (định danh) Ðây chính là tên của các database object Nó dùng để xác định một object (Chú ý khi nói đến Object trong SQL Server là chúng ta muốn đề cập đến table, view, stored procedure, index Vì hầu như mọi thứ trong SQL Server đều được thiết kế theo kiểu hướng đối tượng (object-oriented)) Trong ví dụ sau TableX, KeyCol, Description là những identifiers
(KeyCol INT PRIMARY KEY, Description NVARCHAR(80))
There are two types of identifiers in SQL Server: Regular Identifiers and Delimited Identifiers Delimited Identifiers require quotation marks or brackets for separation They are used for names that conflict with SQL Server reserved keywords or contain spaces.
In the example, the term "Order" coincides with the keyword "Order," so it should be enclosed in square brackets [] This represents the names of database objects used to identify an object It's important to note that when discussing objects in SQL Server, we refer to tables, views, stored procedures, indexes, etc., as everything in SQL Server is designed in an object-oriented manner In the following example, TableX, KeyCol, and Description serve as identifiers.
Các biểu thức trong T-SQL thường có dạng: Identifier + Operators (như +,-
T-SQL dùng … để đánh dấu phần chú thích cho lệnh đơn và dùng /*…*/ để chú thích cho một nhóm lệnh
Thay đổi ngữ cảnh cơ sở dữ liệu (CSDL) cho phép người dùng chỉ định CSDL mà các câu lệnh tiếp theo sẽ áp dụng, xác định rõ ràng CSDL nào sẽ được sử dụng cho các thao tác sau đó.
Trong đó : Là tên của CSDL
1.5 Một số hàm của T-SQL
1.5.1 Các hàm về xâu ký tự
Tên hàm Ví dụ Miêu tả
ASCII SELECT ASCII(‘ABC’) Trả về 65, là mã ASCII của ‘A’
CHAR SELECT CHAR(65) Trả về ‘A’.
DIFFERENCE(‘HELLO’,’HELL’) Trả về 4 Giá trị 4 là có độ tương tự cao nhất (0 -> 4)
LEFT SELECT LEFT(‘RICHARD’,4) Trả lại ‘RICH’
LEN SELECT LEN(‘RICHARD’) Trả lại 7
The SQL function LOWER converts the string 'RICHARD' to 'richard', effectively changing it to lowercase The LTRIM function removes leading spaces from the string ' RICHARD', resulting in 'RICHARD' without any left-side whitespace Additionally, PATINDEX is used to find the position of a specified pattern, such as '%BOX%', within a string.
Trả lại 7, vị trí xuất hiện đầu tiên.
REVERSE SELECT REVERSE(‘ACTION’) Trả lại ‘NOTICA’, đảo ngược của ‘ACTION’
RIGHT SELEC TRIGHT(‘RICHARD’, 4) Trả về ‘HARD’
‘RICHARD’ (sau khi đã xóa bỏ các ký tự trống bên phải) SPACE SELECT ‘RICHARD’ + SPACE(2) +
‘HILL’ Trả về ‘RICHARD HILL’
SUBSTRING SELECT SUBSTRING(‘weather’,2,2) Trả về ‘EA’
UPPER SELECT UPPER(‘Richard’) Trả về RICHARD, mọi ký tự ở dạng chữ hoa STUFF SELECT STUFF(‘Weather,2,3,’i’)
Xóa 3 ký tự từ vị trí thứ 2, sau đó thêm vào ký tự i tại vị trí xóa.
Kết quả thu được là
Hàm Tham số Miêu tả
DATEADD (datepart,number,date) Cộng thêm datepart vào date
DATEDIFF (datepart,date1,date2) Tính toán độ sai lêch về datepart giữa date1 và date2
DATENAME (datepart,date) Trả lại tên datepart, ví dụ October
DATEPART (datepart,date) Trả lại datepart dưới giá trị số
GETDATE () Trả lại ngày giờ hiện tại
Year yy, yyyy Quarter qq, q
Week wk, ww weekday dw
Minute mi, n Second ss, s millisecond ms
Ta có các ví dụ sau:
SELECT GETDATE() Trả lại ngay giờ hiện tại
SELECT DATEDIF(yy,Ord_date, GETDATE()) FROM Sales:
Tính độ lệch về năm giữa Ord_date và ngày hiện tại của table Sales.
ABS Giá trị tuyệt đối ACOS, ASIN, Trả lại giá trị radian của các giá trị
Tính các giá trị cos, sin, tan, cotan tương ứng
Hàm DEGREES trả về số nguyên nhỏ nhất lớn hơn hoặc bằng giá trị đầu vào, trong khi hàm EXP tính toán hàm mũ với cơ số e Hàm FLOOR sẽ trả về số nguyên lớn nhất nhỏ hơn hoặc bằng giá trị đầu vào, và hàm LOG được sử dụng để tính toán logarit với cơ số e.
PI Trả về số PI (3.141592653) POWER Tính hàm mũ dạng a^b với a,b là tham số đưa vào RADIANS Chuyển đổi từ độ sang radian
RAND Trả về một số thực trong khoảng
ROUND Hàm làm tròn, sẽ được nói rõ sau SIGN Trả về dấu, có thể là dương, âm hoặc bằng không SQRT Căn bậc 2
Ví dụ về hàm ROUND(làm tròn)
SELECT Score = ROUND(79.9,0) Kết quả trả về là 80
Chi tiết về hàm ROUND như sau:
ROUND(1234.567,2) 1234.570 ROUND(1234.567,1) 1234.600 ROUND(1234.567,0) 1235.000 ROUND(1234.567,-1) 1230.000 ROUND(1234.567,-2) 1200.000 ROUND(1234.567,32) 1000.000
Ngôn ngữ định nghĩa dữ liệu (DDL) là tập hợp các lệnh được sử dụng để quản lý các thuộc tính của cơ sở dữ liệu, bao gồm việc định nghĩa các hàng và cột của bảng, cũng như vị trí của tệp dữ liệu trong cơ sở dữ liệu.
Trong đó object_Name có thể là một table, view, stored procedure, indexes
2.1 Lệnh tạo cơ sở dữ liệu – Create database
Khi thiết lập một cơ sở dữ liệu, một không gian cơ sở dữ liệu sẽ được tạo ra tự động, trong đó các bảng dữ liệu sẽ được lưu trữ.
Logical_file_name:Là tên file logic mà các câu lệnh T-SQL khi được thực hiện tham chiếu đến
Os_file_name:đường dẫn thực đến file CSDL
Size: kích thước ban đầu của file CSDL
Max_size:kích thước tối đa của file CSDL
Growth_incremen: mức độ tăng trưởng dung lượng file dữ liệu mỗi khi cần nới rộng file CSDL (ngầm định là MB)
Chú ý:Có thể tạo CSDL bằng lệnh Create Database sau: (khi đó các thông số sẽđược chọn ngầm định)
Nháy chuột phải vào Database/New Database Đặt tên cho cơ sở dữ liệu
Lệnh Create sau sẽ tạo ra một table tên Importers với 3 cột CompanyID,CompanyName,Contact
2.2 Lệnh tạo bảng – CREATE TABLE
( [ràng_buộc_cột],
[ràng_buộc_cột],
, [ràng_buộc_cột]
Khi tạo bảng và cột, người sử dụng cần tự định nghĩa tên, nhưng phải tuân thủ các quy tắc đặt tên Đối với kiểu dữ liệu, hãy lựa chọn loại phù hợp nhất với dữ liệu mà người dùng sẽ nhập vào.
Not Null: Bắt buộc phải nhập giá trị cho cột này
Unique: giá trị nhập vào cột phải duy nhất
Ràng buộc khóa chính: Primary key
Ràng buộc khóa ngoài: Foreign Key References (Tên_cột_tham_chiếu)
Ràng buộc mặc định (Default) là giá trị được quy định cho một cột trong cơ sở dữ liệu Giá trị này sẽ tự động được gán cho cột khi người dùng thêm một bản ghi mà không chỉ định giá trị cho cột đó Lưu ý rằng mỗi cột chỉ có thể có tối đa một ràng buộc mặc định.
Ràng buộc kiểm tra: CHECK ( Biểu_thức_logíc )
Ràng buộc khóa chính là giá trị dùng để xác định duy nhất một đối tượng, do đó giá trị của chúng phải là duy nhất và không được phép nhận giá trị Null Để khai báo ràng buộc khóa chính, chúng ta sử dụng cú pháp cụ thể trong SQL.
CONSTRAINT PRIMARY KEY ()
Ràng buộc khóa ngoài là một công cụ quan trọng trong cơ sở dữ liệu, giúp kiểm tra xem giá trị của cột có phù hợp với giá trị của cột trong bảng khác hay không Để khai báo ràng buộc khóa ngoài, bạn có thể sử dụng cú pháp cụ thể để đảm bảo tính toàn vẹn dữ liệu giữa các bảng.
CONSTRAINT FOREIGN KEY
(Tên_thuộc_tính_khóa_ngoài ) REFERENCES ( Tên_thuộc_tính_liên_kết )
Ràng buộc CHECK được sử dụng để xác định các giá trị hoặc định dạng dữ liệu hợp lệ cho một cột trong cơ sở dữ liệu Nhiều ràng buộc CHECK có thể được áp dụng cho cùng một cột Để khai báo một ràng buộc CHECK cho một cột cụ thể, bạn cần sử dụng cú pháp thích hợp.
CONSTRAINT CHECK (Biểu_thức_logíc) là một điều kiện xác định giá trị hợp lệ của dữ liệu Chỉ những giá trị dữ liệu thỏa mãn biểu thức logic và nhận giá trị đúng mới được chấp nhận.
2.2.2 Identity: Khi bạn muốn một cột có giá trịtăng tự động như AutoNumber nên định nghĩa cột đó như IDENTITY [ ( seed, increment ) ]
Trong đó Seed là giá trị khởi đầu khi QSL tựđộng tăng giá trị Increment là bước tăng cho biết mỗi lần tăng cần bao nhiêu giá trị
Ví dụ: Create table MonHoc(MaM tinyint Identity(1,1) Primary key, TenMon VarChar(30))
Chú ý: Identity chỉ áp dụng với kiểu số nguyên
2.2.3 Cột có khả năng tính toán - Cột ảo (Trường ảo):
Khi khai báo cột với thuộc tính Computed, không cần không gian đĩa để lưu trữ dữ liệu cho cột đó Giá trị của cột Computed được tính toán từ sự kết hợp của dữ liệu từ nhiều cột khác.
Cú pháp: AS
Lệnh Alter sau đây cho phép ta thay đổi một phần cấu trúc của các đối tượng table, view, ….
Cú pháp: Alter
Dùng để chỉnh sửa các thông số của cơ sở dữ liệu
| REMOVE FILE logical_file_name
Filespec::=(NAME = logical_file_name
2.3.2 Sửa đối cấu trúc bảng – ALTER TABLE
THÀNH PHẦN KHÁC TRONG SQL SERVER
Giới thiệu về về View
Mục tiêu: Trình bày được các khái niệm về bảng ảo và các áp dụng của nó trên thực tế
View là một bảng ảo được xác định từ một truy vấn, nhưng không tồn tại như một cấu trúc lưu trữ dữ liệu trong cơ sở dữ liệu Dữ liệu trong view thực chất là dữ liệu được lấy từ một hoặc nhiều bảng cơ sở, do đó nó phụ thuộc vào các bảng này.
View là một kỹ thuật bảo mật hiệu quả, cho phép người sử dụng chỉ truy cập và sửa đổi dữ liệu mà view cung cấp Điều này đảm bảo rằng người dùng không thể truy cập hay thay đổi các phần dữ liệu khác trong các bảng cơ sở.
Việc sử dụng view giúp đơn giản hoá các truy vấn phức tạp, cho phép lưu trữ chúng dưới dạng view Dữ liệu từ view có thể được truy xuất thông qua các truy vấn đơn giản hơn, nâng cao hiệu quả làm việc với cơ sở dữ liệu.
Sau khi định nghĩa, view được sử dụng tương đương như bất kỳ bảng nào khác trong CSDL
As Select OrderID, (case when [Name] is null then 'New Customer' else [Name] end )As CustomerName, ProductName,
DateProcessed From Customers Right Outer Join Orders on
In the example provided, we primarily retrieve data from the Orders table in the PracticeDB Instead of displaying the CustomerID, which holds little significance for the user, we will present the customer's name by joining with the Customer table If the Customer Name is null, indicating that the name of the customer who placed the order does not exist in the system, we will display an alternative message instead of leaving it as null.
"New Customer" để dễ nhìn hơn cho user.
Câu lệnh SQL trong View có thể đa dạng, từ việc chọn toàn bộ dữ liệu từ một bảng cho đến những truy vấn phức tạp sử dụng nhiều tính năng lập trình của T.
Tập trung vào các dữ liệu quan trọng: chúng ta thường sử dụng view để chọn lọc những dữ liệu mà người dùng quan tâm hoặc cần chịu trách nhiệm, đồng thời loại bỏ những dữ liệu không cần thiết.
Trong một bảng dữ liệu, có thể có cột "Deleted" với giá trị True hoặc False để xác định xem một bản ghi có bị xóa hay không Phương pháp này thường được sử dụng cho mục đích kiểm tra và theo dõi (Audit) Cụ thể, khi người dùng xóa một bản ghi trong ứng dụng, thay vì xóa hoàn toàn, ta chỉ đánh dấu bản ghi đó là đã bị xóa một cách logic.
Để phòng ngừa yêu cầu roll back từ người dùng, chúng ta chỉ cần tập trung vào dữ liệu chưa bị xóa, trong khi dữ liệu đã được đánh dấu là "deleted" chỉ được xem xét khi cần thực hiện roll back hoặc kiểm tra Trong trường hợp này, chúng ta có thể tạo một view để chọn dữ liệu từ bảng đã đánh dấu deleted và làm việc chủ yếu trên view đó thay vì toàn bộ bảng Việc này giúp đơn giản hóa quá trình xử lý dữ liệu; những truy vấn phức tạp và thường xuyên sử dụng có thể được chuyển thành view, từ đó giúp việc quản lý dữ liệu trở nên dễ dàng hơn.
Tùy chỉnh dữ liệu: Chúng ta có thể sử dụng view để hiển thị dữ liệu từ nhiều góc độ khác nhau cho người dùng, mặc dù họ truy cập cùng một nguồn dữ liệu Ví dụ, có thể tạo ra các view mà thông tin về khách hàng được trình bày khác nhau tùy thuộc vào ID đăng nhập, như người dùng thông thường hay quản lý.
Exporting and importing data from SQL Server to other applications, such as Excel, can be efficiently accomplished by using views to join multiple tables and then utilizing the Bulk Copy Program (BCP) for the export process.
Khi sử dụng view ta có thể select,insert, update, delete data bình thường như với một table
Select * From OrderReport Where DateProcessed chọn Properties
Bước 3: Chọn SQL Server and Windows Authencation mode
Hình 6.3 Chứng thực SQL Server and Windows Authencation mode
Bước 4: Khởi động lại SQL Server
Hình 6.4 Khởi động lại SQL Server
Quản lý người dùng
Người dùng trong SQL Server được chia thành 2 mức: Người truy nhập vào SQL Server gọi là Login, người khai thác CSDL gọi là User
Login là tài khoản có quyền truy cập vào SQL Server, và tùy thuộc vào chế độ bảo mật của SQL Server, login có thể là tài khoản của Windows NT hoặc tài khoản của SQL Server Login được quản lý trực tiếp bởi Server.
User là đối tượng khai thác cơ sở dữ liệu (CSDL) và khi đăng nhập, chỉ xác định quyền truy cập vào SQL Server User được hiểu là login ID tham gia vào việc khai thác CSDL, và việc quản lý user được thực hiện trực tiếp bởi CSDL.
3.1 Tạo tài khoản đăng nhập cho người dùng (Login)
Bước 1: Kết nối vào SQL Server
Bước 2: Click chuột phải vào login, chon New login
Bước 3: Tạo tên và thiết lập các tham số
Hình 6.6 Tạo và thiết lập login
Cách 1: Tạo tài khoản người dùng, ta dùng thủ tục với cú pháp sau Sp_addlogin [@login=]
Ví dụ 1:Tạo tài khoản người dùng có các tham số sau:
EXEC SP_ADDLOGIN ‘HA’, ‘HA1’, ‘QL_BanHag’ Để thay đổi mật khẩu người dùng ta dùng thủ tục với cú pháp sau:
SP_Password[[@old=] ,]
Ví dụ 2: Thay đổi mật khẩu người dùng
SP_Password ‘HA1’, ‘HAI’, ‘HA’
Tạo tài khoảnđăngnhậpsửdụng xác thực Windows Authentication
CREATE LOGIN [ten_mien\ten_dangnhap]
[ WITH DEFAULT_DATABASE = ten_cosodulieu
Tạo tài khoảnđăngnhậpsửdụng xác thực SQL Server Authentication
WITH PASSWORD = { ‘matkhau’ | matkhau_bam HASHED } [
Tạo tài khoảnđăngnhậptừ khóa bấtđốixứng
FROM ASYMMETRIC KEY ten_khoabatdoixung;
3.2 Cấp phát quyền truy cập vào CSDL Để cấp phát quyền truy cập cho người dùng vào CSDL ta sử dụng thủ tục có cú pháp sau:
SP_grantdbaccess [@login=]
[,@Name_in_db=]
Tham số @Name_in_db là bí danh tên của tài khoản người dùng thành một tên khác khi truy cập vào CSDL chỉ định
Ví dụ: Cấp phát quyền cho người dùng
Loại bỏ quyền sử dụng
SP_revokedbaccess [@Name_in_db =]
Ví dụ: Hủy bỏ quyền của người dùng
Quyền người dùng
Tạo người sử dụng từ giao diện
Hình 6.7 Tạo và thiết lập User
4.2 Tạo người sử dụng từ lệnh
Cú pháp để tạo người dùng trong MS SQL Server.
Create user for login
Ví dụ: Để tạo người dùng có tên TestUser vớitên đăng nhập là TestLogin trên
CSDL TestDB, chạy truy vấn dưới đây. create user TestUser for login TestLogin
Cách 2: S ử d ụ ng SQL Server Management Studio SSMS
Lưu ý: Trước hết cần tạo Login bằng bất kì cái tên nào trước khi tạo tài khoản người dùng Hãy dùng tên Login là TestLogin
Bước 1: Kết nối đến SQL Server và mở rộng thư mục CSDL Tiếp theo, mở CSDL có tên TestDB để tạo tài khoản người dùng, sau đó tìm thư mục Security Tại đây, chọn thư mục Users hoặc Logins (trên phiên bản SQL Server mới) và nhấn New Login Màn hình tạo tài khoản sẽ xuất hiện.
Hình 6.8 Màn hình tạongười dùng mới cho MS SQL Server
Bướ c 2: Điền tên TestUser cho tên người dùng và chọn tên Login có tên TestLogin như trong hình dưới đây.
Bướ c 3: Click OK để hoàn tất Refresh lại thư mục, bạn sẽ thấy tên người dùng mới được tạo
Hình 6.10Tạo thành công người dùng mới trên MS SQL Server
Bảng danh sách các quyền thao tác trên các đối tượng của CSDL
Người dùng có quyền truy cập dữ liệu chỉ có thể thực hiện các câu lệnh Select để truy vấn thông tin từ các bảng hoặc View mà họ được phép.
INSERT Cho phép người sử dụng thêm dữ liệu, nếu người sử dụng có quyền này họ có thể thực hiện phát biểu Insert
UPDATE Cho phép người sử dụng chỉnh sửa dữ liệu trong CSDL, với quyền
Người sử dụng có thể cập nhật dữ liệu trong cơ sở dữ liệu bằng cách sử dụng lệnh Update Đồng thời, quyền Delete cho phép người sử dụng xóa dữ liệu thông qua lệnh Delete.
Người dùng có thể thêm dữ liệu và bảng có khóa ngoài nếu họ được cấp quyền, cho phép thực hiện câu lệnh INSERT Tuy nhiên, trong trường hợp của SQL Server, quyền này không liên quan đến quyền truy vấn SELECT.
Quyền này cho phép người dùng thực hiện các thủ tục trong cơ sở dữ liệu Với quyền này, người dùng có khả năng xóa các mẩu tin thông qua việc thực thi các phát biểu thủ tục.
Câu lệnh GRANT được sử dụng để cấp quyền cho người dùng hoặc nhóm người dùng trên các đối tượng trong cơ sở dữ liệu Thông thường, câu lệnh này được áp dụng trong nhiều tình huống khác nhau để quản lý quyền truy cập.
Người sở hữu đối tượng cơ sở dữ liệu muốn cho phép người dùng khác quyền sử dụng những đối tượng mà anh ta đang sở hữu.
Người sở hữu cơ sở dữ liệu có quyền cấp phát quyền thực thi các câu lệnh như CREATE TABLE và CREATE VIEW cho người dùng khác Việc cấp phát quyền này cho phép người dùng truy cập và thao tác trên các đối tượng trong cơ sở dữ liệu một cách hiệu quả.
Chỉ những người sở hữu cơ sở dữ liệu hoặc đối tượng trong cơ sở dữ liệu mới có quyền cấp phát quyền cho người dùng Câu lệnh GRANT được sử dụng để thực hiện việc này với cú pháp cụ thể.
GRANT ALL | các_quyền_cấp_phát
[()] ON tên_bảng | tên_khung_nhìn
|ON tên_bảng | tên_khung_nhìn [()]
TO danh_sách_người_dùng | nhóm_người_dùng
Cấp phát tất cả các quyền cho người dùng trên đối tượng cơ sở dữ liệu được chỉ định, bao gồm các quyền như: SELECT, INSERT, UPDATE, DELETE, và nhiều quyền khác.
Đối với bảng, khung nhìn, và hàm trả về dữ liệu kiểu bảng: SELECT, INSERT, DELETE, UPDATE và REFERENCES
Đối với cột trong bảng, khung nhìn: SELECT và UPDATE
Đối với thủ tục lưu trữ: EXECUTE
Trong các quyền được đề cập đến ở trên, quyền REFERENCES được sử dụng nhằm cho phép tạo khóa ngoài tham chiếu đến bảng cấp phát. các_quyền_cấp_phát
Danh sách các quyền cần cấp phát cho người dùng trên cơ sở dữ liệu được chỉ định bao gồm các quyền được phân cách nhau bởi dấu phẩy Cụ thể, tên_bảng|tên_khung_nhìn chỉ rõ bảng hoặc khung nhìn cần cấp phát quyền, trong khi danh_sách_cột liệt kê các cột của bảng hoặc khung nhìn đó Ngoài ra, tên_thủ_tục là tên của thủ tục được cấp phát cho người dùng, và tên_hàm là tên hàm do người dùng định nghĩa để cấp phát quyền.
Danh sách tên người dùng nhận quyền được cấp phát
WITH GRANT OPTION Cho phép người dùng chuyển tiếp quyền cho người dùng khác
Ví dụ: Cấp phát cho người dùng có tên Ha quyền thực thi các câu lệnh SELECT,
INSERT và UPDATE trên bảng Hang.
Cho phép người dùng Ha quyền xem các thuộc tính (MaH,TenH,SoLuong)
ON Hang(MaH,TenH,SoLuong) ON Hang) TO thuchanh
Với quyền được cấp phát như trên, người dùng Ha có thể thực hiện câu lệnh sau trên bảng Hang
Nhưng câu lệnh dưới đây lại không thể thực hiện được
Ví dụ 1: Câu lệnh dưới đây cấp phát cho người dùng Ha các quyền SELECT, INSERT, UPDATE, DELETE VÀ REFERENCES trên bảng DIEMTHI
GRANT ALL ON DIEMTHI TO Ha
Khi cấp phát quyền cho người dùng trên một đối tượng cơ sở dữ liệu, người dùng đó có thể thực thi các câu lệnh được phép Tuy nhiên, họ không có quyền chuyển nhượng quyền đã nhận cho người dùng khác Để cho phép người dùng chuyển tiếp quyền, cần chỉ định tuỳ chọn WITH GRANT OPTION trong câu lệnh GRANT.
Ví dụ 2: Cho phép người dùng Ha quyền xem dữ liệu trên bảng Hang đồng thời có thể chuyển tiếp quyền này cho người dùng khác
WITH GRANT OPTION b) Cấp phát quyền thực thi các câu lệnh
Câu lệnh GRANT không chỉ cho phép cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu mà còn có thể cấp phát quyền trên hệ quản trị cơ sở dữ liệu hoặc toàn bộ cơ sở dữ liệu Các quyền có thể được cấp phát trong trường hợp này bao gồm nhiều quyền hạn khác nhau, giúp quản lý hiệu quả hơn.
• Tạo cơ sở dữ liệu: CREATE DATEBASE.
• Tạo khung nhìn: CREATE VIEW
• Tạo thủ tục lưu trữ: CREATE PROCEDURE
• Sao lưu cơ sởdữ liệu: BACKUP DATABASE
Câu lệnh GRANT sử dụng trong trường hợp này có cú pháp như sau:
GRANT ALL | danh_sách_câu_lênh
TO danh_sách_người_dùng
Ví dụ: Để cấp phát quyền tạo bảng và khung nhìn cho người dùng có tên là Ha ta sử dụng câu lệnh như sau:
TABLE,CREATE VIEW TO Ha
Câu lệnh GRANT cho phép người dùng tạo các đối tượng trong cơ sở dữ liệu, và đối tượng do người dùng tạo sẽ thuộc quyền sở hữu của họ Người sở hữu có quyền cho phép người dùng khác sử dụng đối tượng và có khả năng xóa bỏ đối tượng mà mình đã tạo ra.
Khác với việc sử dụng câu lệnh GRANT để cấp quyền trên đối tượng cơ sở dữ liệu, trong trường hợp này, câu lệnh GRANT không cho phép sử dụng tùy chọn WITH GRANT OPTION Điều này có nghĩa là người dùng không thể chuyển tiếp quyền thực thi các câu lệnh đã được cấp phát.
Câu lệnh REVOKE được sử dụng để thu hồi quyền đã cấp cho người dùng, tương tự như câu lệnh GRANT Câu lệnh REVOKE áp dụng trong hai trường hợp chính.
• Thu hồi quyềnđã cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu.
• Thu hồi quyền thực thi các câu lệnh trên cơ sở dữliệu đã cấp phát cho người dùng. a) Thu hồi quyền trên đối tượngcơ sở dữ liệu
Cú pháp câu lệnh REVOKE sử dụng để thu hồi quyền đã cấp phát trên đối tượng cơ sở dữ liệu có cú pháp như sau:
REVOKE ALL| các_quyền_cần_thu_hồi
[(danh_sách_cột)] ON tên_bảng | tên_khung_nhìn
|ON tên_bảng | tên_khung_nhìn [(danh_sách_cột)]
FROM danh_sách_người_dùng
Câu lệnh REVOKE có thể sử dụng để thu hồi một số quyền đã cấp phát cho người dùng hoặc là thu hồi tất cả các quyền (ALL).
Ví dụ: Thu hồi quyền thực thi lệnh INSERT trên bảng Hang đối với người dùng