GIỚI THIỆU VỀ SQL SERVER
Tổng quan SQL Server
Ngôn ngữ hỏi có cấu trúc (SQL), phát triển từ SEQUEL, được IBM giới thiệu trong hệ cơ sở dữ liệu thử nghiệm System/R vào năm 1974 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ệ Đế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à giữ vai trò quan trọng trong các hệ thống này.
SQL là ngôn ngữ lập trình quan trọng trong quản trị cơ sở dữ liệu, giúp người dùng tương tác và quản lý dữ liệu hiệu quả Nó cho phép thực hiện các thao tác như truy vấn, chèn, cập nhật và xóa dữ liệu trong các hệ quản trị cơ sở dữ liệu quan hệ Chương này sẽ mang đến cái nhìn tổng quan về SQL cùng với các khía cạnh liên quan, nhấn mạnh tầm quan trọng của nó trong việc quản lý dữ liệu.
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 các hệ điều hành 16 bit và đã trải qua quá trình phát triển liên tục cho đến ngày nay.
Microsoft SQL Server là một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất do Microsoft phát hành, chuyên dùng để thiết kế và truy xuất dữ liệu cho các phần mềm khác Đây là công cụ lý tưởng cho học sinh, sinh viên mới học lập trình, giúp họ làm quen với các khái niệm cơ bản về cơ sở dữ liệu, 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 yêu cầu 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, phần mềm này sẽ không hoạt động nếu thiếu bất kỳ thành phần nào trong bộ SQL Server Do đó, việc cài đặt Microsoft SQL Server 2019 Express là cần thiết.
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, hay còn gọi là Ngôn ngữ Hỏi 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 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ó tên gọi liên quan đến việc truy xuất dữ liệu, thực sự mang đến nhiều khả năng vượt trội hơn một công cụ đơn thuần Được phát triển với mục đích ban đầu là truy xuất dữ liệu, SQL vẫn giữ vai trò quan trọng trong việc này, nhưng đồng thời cũng cho phép người dùng điều khiển toàn bộ chức năng của hệ quản trị cơ sở dữ liệu.
SQL cho phép người dùng đị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.
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.
SQL đóng vai trò quan trọng trong việc kiểm soát truy cập, cho phép cấp phát và quản lý các quyền thao tác của người sử 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 thông qua việc định nghĩa các ràng buộc, từ đó duy trì tính hợp lệ và chính xác của dữ liệu trong cơ sở dữ liệu Điều này rất quan trọng để ngăn chặn các lỗi 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 cho 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 Mặc 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 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.
Khác với các ngôn ngữ lập trình như C, C++, hay Java, SQL là ngôn ngữ khai báo, cho phép người dùng mô tả yêu cầu cần thực hiện trên cơ sở dữ liệu mà không cần chỉ ra cách thức thực hiện Điều này làm cho SQL trở thành một 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 quan trọng của nó Vai trò chính của SQL là ngôn ngữ giao tiếp giữa người dùng và hệ quản trị cơ sở dữ liệu, giúp thực hiện các thao tác quản lý và truy vấn dữ liệu 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 câu lệnh SQL dễ dàng Người dùng có thể sử dụng các trình tiện ích để nhận kết quả trả về từ cơ sở dữ liệu một cách nhanh chóng và hiệu quả.
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):
Khi bạn có một database thường xuyên được cập nhật bởi các ứng dụng, việc tạo một bản sao giống hệt trên một server khác để chạy báo cáo là cần thiết nhằm tránh ảnh hưởng đến hiệu suất của server chính Tuy nhiên, report server cũng cần được cập nhật liên tục để đảm bảo tính chính xác của các báo cáo Trong trường hợp này, cơ chế backup and restore không thể áp dụng, vì vậy bạn cần sử dụng cơ chế replication của SQL Server để đảm bảo dữ liệu giữa hai database được đồng bộ Replication sẽ được thảo luận chi tiết trong bài 12.
Dịch vụ chuyển dữ liệu là cần thiết cho những công ty lớn khi dữ liệu được lưu trữ ở nhiều nơi và định dạng khác nhau, chẳng hạn như trong Oracle, DB2 (IBM), SQL Server, và Microsoft Access Việc di chuyển dữ liệu giữa các máy chủ (migrate hay transfer) không chỉ đơn thuần là chuyển đổi, mà còn cần định dạng lại trước khi lưu vào cơ sở dữ liệu khác DTS sẽ giúp bạn thực hiện công việc này một cách dễ dàng và hiệu quả Chi tiết về DTS sẽ được trình bày kỹ trong bài viết số 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ẽ trở nên vô nghĩa 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, điều này sẽ được 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, chẳng hạn như loại dữ liệu (String hay Integer) và việc xác định cột nào là Primary key 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 nên tham khảo SQL Server Books Online, vì không có bài 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 nhau về SQL Server, tài liệu trực tuyến này vẫn rất hữu ích và không thể thiếu, lý do khiến Microsoft quyết định đính kèm nó với SQL Server.
Enterprise Manager là công cụ giúp hiển thị toàn cảnh hệ thống cơ sở dữ liệu một cách trực quan, rất hữu ích cho những người mới học và chưa thành thạo về 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 hiệu quả mà không cần nhiều công cụ khác Nó cung cấp môi trường làm việc thuận lợi, cho phép thực thi ngay lập tức bất kỳ câu lệnh SQL nào, đồng thời hỗ trợ việc debug các Stored procedure một cách dễ dàng.
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 trên SQL Server, lưu trữ chúng dưới dạng file văn bản Công cụ này rất hữu ích trong việc theo dõi và kiểm soát hoạt động của SQL Server, giúp người quản trị dễ dàng phân tích và tối ưu hóa hiệu suất hệ thống.
- 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 cho phiên bản Express yêu cầu tối thiểu 1 GB, trong khi các phiên bản khác cần tối thiểu 4 GB Tất cả các phiên bản này đề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ù cài đặt trên hệ thống tệp FAT32 vẫn được hỗ trợ, nhưng không được khuyến nghị do độ an toàn 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 Tất cả tính năng của SQL Server 2019 chỉ được hỗ trợ trên hệ thống x64 (64-bit), trong khi chỉ một số ít tính năng đặc biệt mới có thể chạy 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 bắt đầu quá trì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 để lưu trữ 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 supported on various editions including Developer, Standard, and Express, and is compatible with multiple operating systems such as Windows Server 2019 (Datacenter, Standard, Essentials), Windows Server 2016 (Datacenter, Standard, Essentials), and Windows 10 (Enterprise, Professional, Home) Notably, Windows 10 versions TH1 1507 and later are supported, while Windows 8 is not compatible.
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ể kiểm tra trạng thái này bằng cách truy cập vào Bảng điều khiển, sau đó chọn Công cụ quản trị và tìm trong danh sách 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ẽ kiểm tra các mục yêu cầu; nếu có dấu tích xanh, nghĩa là đã đạt yêu cầu 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
In 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) After naming, click "Next" to proceed to the Database Engine Configuration.
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), select the "Install SSMS" button on the Developer Edition screen The system will automatically redirect you to the download link available at [Microsoft's official 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" as the server type, choose your machine's name for the server name, and opt for "Windows Authentication" in the authentication section.
Sau khi thiết lập, bạn nhấn "Connect" để kết nối Nên sử dụng tài khoản theo SQL Server Authentication để tăng cường bảo mật Khi kết nối thành công, giao diện sẽ hiển thị như hình.
Hình 1.23 Kết nối đến máy chủ SQL Server
Sau khi thiết lập, nhấn Connect để kết nối Để đảm bảo an toàn, nên sử dụng tài khoản theo SQL Server Authentication Khi kết nối thành công, giao diện sẽ hiển thị 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 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ệ thống cơ sở dữ liệu bằng cách kiểm soát dữ liệu nhập vào và kiểu dữ liệu 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 theo các nguyên tắc ràng buộc do người dùng hoặc hệ thống xác định 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 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ệ
Việc sử dụng cơ sở dữ liệu trong quản lý thông tin dữ liệu của người dùng đóng vai trò quan trọng và mang lại nhiều lợi ích Từ 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ữ và quản lý 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 này có những đặc điểm riêng, với các điểm mạnh như khả năng truy cập nhanh và tổ chức dữ liệu hiệu quả, cũng như những hạn chế như chi phí cao và yêu cầu kỹ thuật phức tạp Việc hiểu rõ những ưu và nhược điểm này sẽ giúp người dùng lựa chọn phương pháp phù hợp nhất cho nhu cầu quản lý thông tin của họ.
- 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à các loại khóa như khóa chính (primary key) và khóa ngoại (foreign key) Bảng là cấu trúc tổ chức dữ liệu, trong khi bản ghi đại diện cho một đơn vị thông tin cụ thể Các thuộc tính xác định đặ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 thuộc tính Khóa chính là định danh 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ẽ tìm hiểu về các mô hình truy cập dữ liệu trong 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 để phân tích các đặc điểm, ưu điểm và nhược điểm của từng mô hình kiến trúc Đồng thời, việc đư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 với điều kiện phát triển ứng dụng cụ thể cũng là điều cần thiết.
Khám phá 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 như quản lý lưu trữ, quản lý truy vấn và quản trị giao dịch là thiết yếu cho hệ quản trị cơ sở dữ liệu Ngoài ra, các dịch vụ bổ sung 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 cung cấp giá trị gia tăng cho việc xử lý dữ liệu trên SQL Server.
Trong SQL Server, hai ngôn ngữ lập trình chính được hỗ trợ là Transact-SQL (T-SQL) và Common Language Runtime (CLR) T-SQL là ngôn ngữ truy vấn chính được sử dụng để tương tác với cơ sở dữ liệu, cho phép thực hiện các thao tác như truy vấn, cập nhật và quản lý dữ liệu Trong khi đó, CLR cho phép phát triển các ứng dụng phức tạp hơn bằng cách sử dụng các ngôn ngữ lập trình như C# hoặc VB.NET, mở rộng khả năng của SQL Server Sự khác biệt giữa T-SQL và CLR nằm ở phạm vi ứng dụng, trong khi T-SQL thường được sử dụng cho các tác vụ cơ bản và hiệu suất cao, CLR thích hợp cho các giải pháp yêu cầu tính toán phức tạp hoặc xử lý dữ liệu nâng cao.
Hệ quản trị cơ sở dữ liệu SQL Server đã trải qua nhiều giai đoạn phát triển và tiến hóa đáng kể 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 Đặc biệt, thế hệ 3, bao gồm SQL Server 2014 và SQL Server 2019, đánh dấu bước nhảy vọt quan trọng nhờ việc tích hợp Common Language Runtime (CLR) vào lõi của hệ quản trị, mang lại nhiều tính năng và hiệu suất vượt trội.
- 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 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ột bảng bao gồm 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òn mỗi cột biểu thị một thuộc tính của thực thể (như cột TENKHOA trong bảng KHOA lưu trữ tên các khoa).
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 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 cụ thể Ví dụ, 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 cột đó.
• 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 thiết kế hiệu quả, mỗi bảng cần có một hoặc một tập hợp các cột mà giá trị dữ liệu của chúng xác định duy nhất một 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 khóa 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 trên khóa Trong bảng MONHOC, cột MAMONHOC được sử dụng làm khóa.
Một bảng có thể chứa nhiều tập cột với tính chất của khoá, xác định duy nhất một dòng dữ liệu Khoá được chọn cho bảng gọi là khoá chính (primary key), trong khi các khoá khác đượ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 tồn tại độc lập mà có mối quan hệ chặt chẽ với nhau về dữ liệu Mối quan hệ này được thể hiện qua ràng buộc giá trị, yêu cầu dữ liệu trong một bảng phải xuất hiện trước trong bảng khác Sự liên kết 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, có nghĩa là khi đề cập đến một SQL Server, chúng ta đang nói đến 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 system databases và một hoặc nhiều user databases Các system databases này đóng vai trò thiết yếu trong việc quản lý và vận hành cơ sở dữ liệu.
The Master database contains essential system-level information, including details about other databases within the system, such as the locations of data files, login accounts, and SQL Server system configuration settings.
Tempdb is a temporary storage database in SQL Server that holds all tables and stored procedures created during user sessions or by the SQL Server engine itself These temporary objects are cleared when the SQL Server is restarted or when a user disconnects.
The Model database serves as a template for other databases in SQL Server, meaning that when a new user database is created, SQL Server copies all system objects, such as 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, with the extension ldf, records all changes made within a database It 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 bảng, nó cần phải dành riêng một không gian trong tệp dữ liệu cho bảng đó, và không gian 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, SQL Server sẽ tải trang dữ liệu tương ứng vào bộ nhớ (data cache) Các trang dữ liệu này sẽ được thay đổi và được gọi là dirty-page Tất cả các thay đổi sẽ được ghi vào transaction log file, vì vậy nó được gọi là write-ahead log Cuối cùng, quá trình Check Point Process sẽ kiểm tra và ghi tất cả các transaction đã được hoàn tất vào ổ cứng, đảm bảo tính toàn vẹn của dữ liệu.
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ũng được xử lý bởi một Lazy writer Lazy writer là một thành phần hoạt động lặng lẽ, chỉ thức dậy để quét qua dữ liệu trong cache theo chu kỳ nhất định, sau đó lại trở về trạng thái ngủ chờ đến lần quét tiếp theo.
Trong cơ sở dữ liệu, khái niệm transaction (giao dịch) đề cập đến một chuỗi các hoạt động được thực hiện như một công việc đơn (unit of work), tức là phải thành công toàn bộ hoặc không thực hiện gì cả (all or nothing) Ví dụ cổ điển về transaction minh họa rõ ràng cho nguyên tắc này.
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 giao dịch, tức là giao dịch chỉ được xem 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 tất bước 2, giao dịch sẽ không được coi là hoàn tất và cần phải phục hồi 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ẽ, 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, sự cố xảy ra trước Check Point kế tiếp Khi SQL Server khởi động lại, nó sử dụng thông tin từ transaction log file để phục hồi dữ liệu Transaction 1 không cần xử lý vì đã được lưu vào đĩa tại thời điểm Check Point Trong khi đó, transaction 2 và 4 sẽ được roll forward do đã được committed nhưng chưa kịp lưu vào đĩa Ngược lại, transaction 3 và 5 chưa được committed và sẽ bị roll back 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 such as 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 subsequent 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) Với Enterprise Manager, bạn có thể dễ dàng dừng và khởi động server, cũng như 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
Setting up 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 bạn khởi động, tạm dừng hoặc dừng các dịch vụ trong SQL Server Các dịch vụ này được cung cấp sẵn bởi SQL Server để đảm bảo hoạt động hiệu quả của hệ thống.
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 with distinct functions that facilitate SQL Server operations 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, the SQL Server Agent service for each instance is referred to as SQLAGENT$InstanceName However, multiple instances of SQL Server will share a single Microsoft Distributed Transaction Coordinator and Microsoft Search service.
Khi khởi động SQL Server, dịch vụ SQL Server sẽ đượ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 (CSDL), xử lý câu lệnh T-SQL và định vị tài nguyên giữa các kết nối người dùng hiện tại Ngoài ra, dịch vụ này còn đảm bảo tính nhất quán của dữ liệu và thực hiện nhiều chức năng quan trọng khác, bao gồm cả dịch vụ SQL Server Agent.
SQL Server Agent là công cụ quan trọng hỗ trợ lập lịch và thực hiện các công việc, cảnh báo, thông báo, cũng như kế hoạch bảo trì cơ sở dữ liệu (CSDL) Nếu không có dịch vụ này, việc quản trị CSDL sẽ gặp nhiều khó khăn Với SQL Server Agent, các thao tác duy trì CSDL có thể được thực hiện tự động, giúp nâng cao hiệu quả quản lý.
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ơ chế cảnh báo khi CPU của server hoạt động trên 90% Để thực hiện các tác vụ này, SQL Server Agent phải được kích hoạt.
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ả, chúng ta nên thiết lập cấu hình 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ể dễ dàng khởi động và dừng các dịch vụ đã chọn bằng cách nhấn vào các nút tương ứng Nếu dịch vụ đang ở trạng thái dừng, hãy nhấn 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 using 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 occurs without generating any error messages.
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à một thành phần thiết yếu trong cơ sở dữ liệu (CSDL), được cấu trúc từ nhiều bảng, mỗi bảng bao gồm các hàng và cột Mỗi hàng đại diện cho 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 các đối tượng đó Các cột trong bảng có cùng kiểu dữ liệu, và bên cạnh hàng và cột, bảng còn có 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 cùng lúc để 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 đồng thời Mỗi cửa sổ sẽ tạo ra một kết nối riêng biệt đến máy chủ, duy trì các cài đặt khác nhau và 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ụ bao gồm nhiều cửa sổ, hộp thoại và hướng dẫn (wizard) hỗ trợ thiết kế các tác vụ cần thiết để tạo cơ sở dữ liệu (CSDL), 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
Pane chỉnh sửa cho phép người dùng nhập và thực thi các câu lệnh T-SQL, trong khi pane kết quả hiển thị kết quả của các truy vấn đã thực hiện, có thể bao gồm một hoặc nhiều trang thông tin.
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ị các kết quả dưới dạng bảng kẻ lưới, cho phép người dùng xem dữ liệu mà không thể chỉnh sửa Trong trường hợp một truy vấn yêu cầu server trả về nhiều 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 truy vấn, điều này có nghĩa là truy vấn không trả về bảng kết quả nào.
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 (CSDL) đ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 Client/Server trong SQL cho phép điều khiển toàn bộ chức năng mà hệ quản trị CSDL cung cấp, mang lại nhiều khả năng cho người dùng.
• 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 (Máy chủ) chứa các cơ sở dữ liệu (CSDL) và cung cấp các chức năng quản lý dữ liệu hiệu quả Server cho phép nhiều người dùng truy cập dữ liệu đồng thời, đảm bảo tính nhất quán và tiết kiệm chi phí 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, và hỗ trợ 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 về 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 giải pháp hoàn chỉnh cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng.
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
Để tạo một cơ sở dữ liệu báo cáo giống hệt như cơ sở dữ liệu chính trên một server khác mà không ảnh hưởng đến hiệu suất của server chính, cần phải sử dụng cơ chế replication của SQL Server Điều này đảm bảo rằng dữ liệu ở cả hai cơ sở dữ liệu được đồng bộ và cập nhật thường xuyên, giúp duy trì tính chính xác của các báo cáo mà không thể sử dụng phương pháp sao lưu và phục hồi.
Cơ chế nhân bản trong 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ỉ nâng cao hiệu suất tổ chức mà còn đảm bảo dữ liệu được xử lý và trình bày hiệu quả tại các địa điểm khác nhau để phục vụ cho việc tham chiếu.
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 làm việc của các công ty lớn, nhu cầu chuyển đổi dữ liệu giữa các server là rất cao DTS không chỉ giúp bạn thực hiện việc di chuyển dữ liệu một cách dễ dàng mà còn cho phép bạn định dạng dữ liệu trước khi lưu trữ vào cơ sở dữ liệu khác Hãy cùng khám phá DTS trong bài 8 để thấy rõ những lợi ích mà nó mang lại.
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 Với công cụ mạnh mẽ này, việc phân tích dữ liệu trở nên dễ dàng và hiệu quả hơn 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ẽ giới thiệu trong phần tiếp theo.
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, Integer) và việc xác định các cột có phải là Primary Key hay không Mặc dù Meta Data cũng được lưu trữ trong cơ sở dữ liệu, nhưng nó được phân biệt với dữ liệu chính bằng cách gọi nó là Meta Data Để tìm hiểu thêm về vấn đề này, 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 nhau về SQL Server, tài liệu trực tuyến này vẫn rất hữu ích và không thể thiếu, lý do mà Microsoft đã quyết định đính kèm nó 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
Để 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 đó, hãy 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, 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, theo mục 1.11 Cuối cùng, thực hiện việc 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 của giáo trình.
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 tối thiểu 10 bản ghi, theo hướng dẫn ở mục 1.4.4 trong bài 3 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 trong bài 3 Đừng quên thực hiện các thao tác Detach và Attach cơ sở dữ liệu theo hướng dẫn tại mục 1.11 trong bài 3 Cuối cùng, hãy thực hiện việc sao lưu và khôi phục dữ liệu, tham khảo 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ả phần mềm quản lý, đá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 cần thiết lập kế hoạch bảo vệ dữ liệu quan trọng lưu trữ trên máy chủ SQL-SRV, nhằm đảm bảo an toàn trước các sự cố như hư hỏng ổ cứng, lỗi mainboard hoặc cháy máy Việc này giúp giảm thiểu rủi ro mất mát thông tin và duy trì hoạt động hiệu quả của doanh nghiệp.
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 and are used for names that conflict with reserved keywords or contain spaces.
In the example above, the term "Order" coincides with the keyword "Order," so it should be enclosed in square brackets [] This signifies the name of database objects used to identify an object It's important to note that when referring to objects in SQL Server, we are discussing tables, views, stored procedures, indexes, etc., as most elements in SQL Server are 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 chỉ định CSDL mà các câu lệnh tiếp theo sẽ tác động lên, giúp khai báo rõ ràng CSDL nào sẽ được sử dụng cho các lệnh 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', applying lowercase formatting The LTRIM function removes leading spaces from the string ' RICHARD', resulting in 'RICHARD' without any left-side whitespace Additionally, the PATINDEX function is used to find the position of a specified pattern, such as '%BOX%', within a given 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 giá trị 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 tính giá trị 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) bao gồm các lệnh quản lý thuộc tính của cơ sở dữ liệu, như việc định nghĩa hàng và cột của bảng, cũng như xác định vị trí 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 bạn tạo một cơ sở dữ liệu, không gian cơ sở dữ liệu sẽ được tạo ra tự động, và các bảng dữ liệu sẽ được lưu trữ trong không gian này.
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]
Tên bảng và tên cột được người sử dụng tự định đặt nhưng phải tuân theo quy tắc đặt tên Khi chọn kiểu dữ liệu, cần 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, hay còn gọi là Default , được sử dụng để xác định giá trị mặc định cho một cột trong cơ sở dữ liệu Khi người dùng thêm một bản ghi mà không cung cấp giá trị cho cột đó, giá trị mặc định sẽ tự động được gán 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 trong cơ sở dữ liệu, 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, 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 dùng để kiểm tra tính hợp lệ của giá trị trong cột của bảng hiện tại so với cột tương ứng trong bảng khác Để khai báo ràng buộc khóa ngoài, bạn có thể sử dụng cú pháp quy định sẵn.
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 Có thể áp dụng nhiều ràng buộc CHECK cho một cột Để khai báo một ràng buộc CHECK cho cột, ta sử dụng cú pháp cụ thể.
Ràng buộc CONSTRAINT CHECK (Biểu_thức_logíc) được sử dụng để xác định giá trị hoặc khuôn dạng của dữ liệu Chỉ những giá trị dữ liệu thỏa mãn biểu thức logic và cho kết quả đú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 có thuộc tính Computed, bạn không cần không gian đĩa để lưu trữ dữ liệu cho cột đó, vì giá trị của cột đượ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 chứa nội dung được xác định 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à kết quả 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ả, giúp người sử dụng chỉ có quyền truy cập và chỉnh sửa dữ liệu mà view cung cấp Nhờ đó, người dùng không thể truy cập hay sửa đổi các dữ liệu khác trong các bảng cơ sở.
Việc đơn giản hóa các truy vấn phức tạp có thể đạt được thông qua việc sử dụng view Các truy vấn này có thể được lưu trữ dưới dạng view, cho phép người dùng truy xuất dữ liệu bằng các truy vấn đơn giản hơn.
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 this example, we primarily retrieve data from the Orders table in PracticeDB Instead of displaying the CustomerID, which holds little significance for the user, we will show the customer's name by joining with the Customer table If the Customer Name is null, indicating that the customer who placed the order does not exist in the system, we will replace the null value with a more meaningful placeholder.
"New Customer" để dễ nhìn hơn cho user.
Câu lệnh SQL trong View có thể đơn giản như việc chọn toàn bộ dữ liệu từ một bảng, hoặc phức tạp với nhiều tính năng lập trình của SQL.
Tập trung vào dữ liệu quan trọng: Chúng ta thường sử dụng view để lựa chọn những dữ liệu mà người dùng quan tâm hoặc 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ột "Deleted" có thể chứa giá trị True hoặc False để xác định xem một bản ghi đã bị xóa hay chưa Phương pháp này thường được sử dụng cho mục đích kiểm tra (Audit) Cụ thể, khi người dùng xóa một bản ghi trong ứng dụng, thay vì xóa nó hoàn toàn, chúng ta chỉ đánh dấu bản ghi đó là đã bị xóa một cách logic.
Để quản lý dữ liệu hiệu quả, 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ần xem xét khi cần phục hồi hoặc kiểm tra Trong trường hợp này, việc tạo một view để chọn dữ liệu từ bảng "Deleted" sẽ giúp làm việc dễ dàng hơn Ngoài ra, để đơn giản hóa quy 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 và xử lý như một bảng, từ đó giúp việc quản lý dữ liệu trở nên thuận tiện 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ọ sử dụng cùng một nguồn dữ liệu Ví dụ, có thể tạo view để 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 hoặc quản lý.
Exporting and importing data is essential for transferring information between SQL Server and other applications like Excel By utilizing views to join multiple tables, users can efficiently export data using the Bulk Copy Program (BCP).
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à đối tượng 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 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, điều này chỉ xác định quyền truy cập vào SQL Server User được hiểu là ID đăng nhập 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 Tìm thư mục Security, sau đó 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 sẽ hiển thị như dưới đây.
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 phép xem dữ liệu chỉ khi họ có quyền hạn tương ứng, và trong trường hợp này, họ 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 truy cậ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 thông qua câu lệnh Update Ngoài ra, quyền Delete cho phép người sử dụng xóa dữ liệu bằng câu lệnh Delete.
Người dùng có thể thêm dữ liệu và bảng có khóa ngoài nếu được cấp quyền, cho phép thực hiện câu lệnh INSERT Tuy nhiên, trong 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 sử 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 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 Câu lệnh này thường áp dụng trong nhiều tình huống khác nhau.
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 được thực hiện trên các đối tượng trong cơ sở dữ liệu, giúp quản lý quyền truy cập và bảo mật thông tin hiệu quả hơn.
Chỉ người sở hữu cơ sở dữ liệu hoặc đối tượng 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.
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 quyền truy cập và thao tác dữ liệu.
Đố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 bao gồm tên bảng hoặc khung nhìn, danh sách các cột, tên thủ tục và tên hàm do người dùng định nghĩa Các quyền được phân cách bởi dấu phẩy, giúp xác định rõ ràng các quyền cần cấp phát cho từng đối tượng cụ thể.
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 hiện các lệnh được phép, nhưng không có quyền cấp phát quyền cho người khác Tuy nhiên, nếu muốn, ta có thể cho phép người dùng chuyển tiếp quyền cho người khác bằng cách sử dụng 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 sử 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 rất đa dạng.
• 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 cơ sở dữ liệu, và đối tượng do họ tạo ra sẽ thuộc quyền sở hữu của họ Người sở hữu có quyền cấp quyền sử dụng cho người dùng khác và cũng có khả năng xóa bỏ (DROP) đối tượng mà mình đã tạo.
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 sẽ 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, REVOKE được á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