Giới thiệu SQL Server
SQL Server là gì?
SQL Server là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS – Relational Database Management System), được phát triển và tiếp thị bởi Microsoft.
Tương tự như các phần mềm RDBMS khác, SQL Server được xây dựng dựa trên SQL, một ngôn ngữ lập trình tiêu chuẩn để tương tác với các cơ sở dữ liệu quan hệ. SQL Server được liên kết với Transact-SQL hoặc T-SQL, Microsoft đã bổ sung thêm một bộ cấu trúc lập trình độc quyền khi triển khai SQL.
SQL Server chỉ hoạt động trên môi trường Windows trong hơn 20 năm. Năm 2016, Microsoft đã cung cấp nó trên Linux. SQL Server 2017 được phát hành vào tháng 10 năm 2016, chạy trên cả Windows và Linux.
Kiến trúc SQL Server
Sơ đồ sau minh họa kiến trúc của SQL Server:
SQL Server bao gồm hai thành phần chính:
- Database Engine
- SQLOS
Database Engine
Thành phần cốt lõi của SQL Server là Công cụ cơ sở dữ liệu (Database Engine). Công cụ cơ sở dữ liệu bao gồm một Công cụ quan hệ (Relational Engine) để xử lý các truy vấn và Công cụ lưu trữ (Storage Engine) để quản lý các file cơ sở dữ liệu, trang, chỉ mục, v.v. Các đối tượng cơ sở dữ liệu như stored procedure, view và trigger cũng được tạo bởi Công cụ cơ sở dữ liệu.
Relational Engine
Công cụ quan hệ (Relational Engine) chứa các thành phần xác định cách tốt nhất để thực hiện truy vấn. Công cụ quan hệ còn được gọi là bộ xử lý truy vấn (query processor).
Công cụ quan hệ yêu cầu dữ liệu từ Công cụ lưu trữ (Storage Engine) dựa trên truy vấn đầu vào và xử lý kết quả.
Một số tác vụ của Công cụ quan hệ bao gồm xử lý truy vấn, quản lý bộ nhớ, quản lý luồng và tác vụ, quản lý bộ đệm và xử lý truy vấn phân tán.
Storage Engine
Công cụ lưu trữ (Storage Engine) chịu trách nhiệm lưu trữ và truy xuất dữ liệu từ các hệ thống lưu trữ như ổ đĩa và SAN.
SQLOS
Dưới Công cụ quan hệ và Công cụ lưu trữ là Hệ điều hành SQL Server hoặc SQLOS.
SQLOS cung cấp nhiều dịch vụ hệ điều hành như bộ nhớ và quản lý I/O. Các dịch vụ khác bao gồm xử lý ngoại lệ và dịch vụ đồng bộ hóa.
Công cụ và dịch vụ SQL Server
Microsoft cung cấp cả công cụ quản lý dữ liệu, công cụ nghiệp vụ thông minh (BI – Business Intelligence) và các dịch vụ khác cùng với SQL Server.
Để quản lý dữ liệu, SQL Server bao gồm SQL Server Integration Services (SSIS), SQL Server Data Quality Services và SQL Server Master Data Services.
Để phát triển cơ sở dữ liệu, SQL Server cung cấp các công cụ dữ liệu SQL Server Data tools.
Để quản lý, triển khai và giám sát cơ sở dữ liệu SQL Server có SQL Server Management Studio (SSMS).
Để phân tích dữ liệu, SQL Server cung cấp dịch vụ phân tích SQL Server Analysis Services (SSAS).
Dịch vụ báo cáo SQL Server Reporting Services (SSRS) cung cấp các báo cáo và trực quan hóa dữ liệu.
Công nghệ dịch vụ học máy Machine Learning Services xuất hiện đầu tiên trong SQL Server 2016 được đổi tên từ dịch vụ R Services.
Phiên bản SQL Server
SQL Server có bốn phiên bản chính có các dịch vụ và công cụ đi kèm khác nhau. Hai phiên bản có sẵn miễn phí là:
- Phiên bản SQL Server Developer được sử dụng trong phát triển và thử nghiệm cơ sở dữ liệu.
- Phiên bản SQL Server Expression cho các cơ sở dữ liệu nhỏ với dung lượng lưu trữ lên tới 10 GB.
Đối với các ứng dụng lớn hơn và quan trọng hơn, SQL Server cung cấp phiên bản Enterprise có đầy đủ tất cả các tính năng của SQL Server.
SQL Server Standard Edition có một phần tính năng của phiên bản Enterprise và các giới hạn trên máy chủ liên quan đến số lượng lõi bộ xử lý và bộ nhớ có thể được cấu hình.
Để biết thông tin chi tiết về các phiên bản SQL Server, hãy tham khảo phiên bản SQL Server 2017.
Trong phần này, bạn đã có một tổng quan ngắn gọn về SQL Server bao gồm kiến trúc, dịch vụ, công cụ và phiên bản của nó.
Cài đặt SQL Server
Trong phần này, bạn sẽ từng bước tìm hiểu cách cài đặt SQL Server 2017 Developer Edition và SQL Server Mangement Studio (SSMS).
Cài đặt SQL Server 2017 Developer Edition
Để cài đặt SQL Server, bạn cần tải xuống từ trang web microsoft.com thông qua liên kết sau:
Tải xuống SQL Server
Sau khi quá trình tải xuống hoàn tất, bạn bấm đúp vào tệp SQLServer2017-SSEI-Dev.exe để khởi chạy trình cài đặt.
1. Trình cài đặt yêu cầu bạn chọn loại cài đặt, chọn loại cài đặt Custom cho phép bạn chuyển qua trình hướng dẫn cài đặt SQL Server và chọn các tính năng mà bạn muốn cài đặt.
2. Chỉ định thư mục để lưu trữ các tệp cài đặt mà trình cài đặt sẽ tải xuống, sau đó nhấp vào nút Install.
3. Trình cài đặt bắt đầu tải xuống gói cài đặt một lúc.
4. Khi quá trình tải xuống hoàn tất, hãy mở thư mục lưu trữ gói cài đặt và bấm đúp vào tệp SETUP.exe.
5. Cửa sổ sau hiển thị; chọn tùy chọn Installation bên trái:
6. Nhấp vào liên kết đầu tiên để khởi chạy trình hướng dẫn để cài đặt SQL Server 2017.
7. Chỉ định phiên bản bạn muốn cài đặt, chọn phiên bản dành cho nhà phát triển (Developer) và nhấp vào nút Next.
8. Đánh dấu vào ô “I accept the license terms.” và nhấp vào nút Next.
9. Đánh dấu vào ô “Use Microsoft Update to check for updates (recommended)” để nhận cập nhật bảo mật và các bản cập nhật quan trọng khác cho SQL Server và nhấp vào nút Next.
10. Trình cài đặt sẽ kiểm tra các điều kiện tiên quyết trước khi cài đặt. Nếu không có lỗi, nhấp vào nút Next.
11. Chọn các tính năng mà bạn muốn cài đặt. Bạn chỉ cần chọn Database Engine Services bằng cách đánh dấu vào hộp kiểm và nhấp vào nút Next để tiếp tục.
12. Chỉ định Instance ID cho phiên bản của SQL Server và nhấp vào nút Next.
13. Chỉ định tài khoản dịch vụ và cấu hình đối chiếu. Chỉ cần sử dụng cấu hình mặc định và nhấp vào nút Next.
14. Chỉ định chế độ bảo mật công cụ cơ sở dữ liệu. Đầu tiên, chọn Chế độ hỗn hợp (Mixed Mode). Tiếp theo, nhập mật khẩu cho tài khoản (sa) quản trị viên hệ thống SQL Server. Sau đó, nhập lại cùng một mật khẩu để xác nhận nó. Sau đó, nhấp vào nút Thêm người dùng hiện tại (Add Current User). Cuối cùng, nhấp vào nút Next.
15. Xác minh các tính năng SQL Server 2017 sẽ được cài đặt và nhấn nút Install:
16. Trình cài đặt bắt đầu quá trình cài đặt
17. Sau khi hoàn thành, cửa sổ sau sẽ hiển thị. Nhấp vào nút OK.
18. Nhấp vào nút Close để hoàn tất cài đặt
Chúc mừng! bạn đã cài đặt thành công SQL Server 2017 Developer Edition.
Cài đặt SQL Server Management Studio
Để làm việc với SQL Server, bạn cần cài đặt SQL Server Management Studio (SSMS).
SQL Server Management Studio là một phần mềm để truy vấn, thiết kế và quản lý SQL Server trên máy tính cục bộ của bạn hoặc trên đám mây. Nó cung cấp cho bạn các công cụ để cấu hình, giám sát và quản lý các thể hiện của SQL Server.
Đầu tiên, tải xuống SSMS từ trang web của Microsoft thông qua liên kết sau:
Tải xuống SQL Server Management Studio
Thứ hai, bấm đúp vào tệp cài đặt SSMS-Setup-ENU.exe để bắt đầu cài đặt. Quá trình cài đặt SMSS rất đơn giản mà bạn chỉ cần thực hiện theo trình tự màn hình.
1. Nhấp vào nút Install
2. Đợi vài phút trong khi trình cài đặt thiết lập phần mềm.
3. Sau khi hoàn tất thiết lập, nhấp vào nút Đóng
Bây giờ, bạn đã cài đặt thành công SQL Server 2017 Developer Edition và SQL Server Management Studio trên máy tính của mình. Tiếp theo, chúng ta sẽ tìm hiểu cách kết nối với SQL Server 2017 từ SQL Server Management Studio.
Kết nối với SQL Server
Trong phần này, bạn sẽ tìm hiểu cách kết nối với SQL Server từ SQL Server Management Studio và thực hiện truy vấn.
Kết nối với SQL Server bằng SSMS
Để kết nối với SQL Server bằng Microsoft SQL Server Management Studio, bạn sử dụng các bước sau:
Đầu tiên, khởi chạy Microsoft SQL Server Management Studio từ menu Start:
Tiếp theo, nhấn vào menu Connect trong Object Explorer, chọn Database Engine…
Sau đó, nhập thông tin cho Server name là localhost
, Authentication là SQL Server Authentication
, Login là sa
, Password cho tài khoản sa
bạn đã nhập lúc cài đặt và nhấp vào nút Connect để kết nối với SQL Server.
Nếu kết nối được thiết lập thành công, thì bạn sẽ thấy bảng điều khiển Object Explorer như sau:
Thực hiện một truy vấn trong SQL Server
Để thực hiện một truy vấn, bạn làm theo các bước sau:
Đầu tiên, nhấp chuột phải vào nút localhost (SQL Server …) và chọn mục menu New Query:
Sau đó bạn nhập truy vấn sau vào Editor:
select @@version;
Truy vấn này trả về phiên bản của SQL Server.
Cuối cùng bạn nhấp vào nút Execute để thực thi truy vấn:
Cửa sổ Results hiển thị phiên bản của SQL Server được hiển thị trong hình ở trên. Ngoài ra bạn cũng có thể nhấn phím F5 để thực thi truy vấn.
Bây giờ, bạn đã biết cách kết nối với SQL Server và thực hiện truy vấn từ SSMS.
Cơ sở dữ liệu mẫu của SQL Server
Trong phần này, chúng tôi sẽ giới thiệu cho bạn cơ sở dữ liệu mẫu của SQL Server có tên BikeStores.
Dưới đây minh họa lược đồ cơ sở dữ liệu BikeStores:
Như bạn có thể thấy từ sơ đồ, cơ sở dữ liệu mẫu BikeStores có hai lược đồ là sales
và production
, và các lược đồ này có chín bảng.
Bảng sales.stores
Bảng sales.stores
lưu trữ các thông tin của cửa hàng. Mỗi cửa hàng có một tên cửa hàng, thông tin liên lạc như điện thoại và email và một địa chỉ bao gồm đường phố, thành phố, tiểu bang và mã zip.
CREATE TABLE sales.stores (
store_id INT IDENTITY (1, 1) PRIMARY KEY,
store_name VARCHAR (255) NOT NULL,
phone VARCHAR (25),
email VARCHAR (255),
street VARCHAR (255),
city VARCHAR (255),
state VARCHAR (10),
zip_code VARCHAR (5)
);
Bảng sales.staffs
Bảng sales.staffs
lưu trữ các thông tin của nhân viên bao gồm tên, họ. Nó cũng chứa các thông tin liên lạc như email và điện thoại.
Một nhân viên làm việc tại một cửa hàng được chỉ định bởi giá trị trong cột store_id
. Một cửa hàng có thể có một hoặc nhiều nhân viên.
Một nhân viên báo cáo cho người quản lý cửa hàng được chỉ định bởi giá trị trong cột manager_id
. Nếu giá trị trong manager_id là null, thì nhân viên là người quản lý cao nhất.
Nếu một nhân viên không còn làm việc cho bất kỳ cửa hàng nào, giá trị trong cột active
được đặt thành 0.
CREATE TABLE sales.staffs (
staff_id INT IDENTITY (1, 1) PRIMARY KEY,
first_name VARCHAR (50) NOT NULL,
last_name VARCHAR (50) NOT NULL,
email VARCHAR (255) NOT NULL UNIQUE,
phone VARCHAR (25),
active tinyint NOT NULL,
store_id INT NOT NULL,
manager_id INT,
FOREIGN KEY (store_id)
REFERENCES sales.stores (store_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (manager_id)
REFERENCES sales.staffs (staff_id)
ON DELETE NO ACTION ON UPDATE NO ACTION
);
Bảng production.categories
Bảng production.categories
lưu trữ các thông tin chủng loại xe đạp như xe đạp trẻ em, xe đạp điện.
CREATE TABLE production.categories (
category_id INT IDENTITY (1, 1) PRIMARY KEY,
category_name VARCHAR (255) NOT NULL
);
Bảng production.brands
Bảng production.brands
lưu trữ các thông tin của thương hiệu xe đạp, ví dụ, Electra, Haro và Heller.
CREATE TABLE production.brands (
brand_id INT IDENTITY (1, 1) PRIMARY KEY,
brand_name VARCHAR (255) NOT NULL
);
Bảng production.products
Bảng production.products
lưu trữ các thông tin của sản phẩm như tên, thương hiệu, chủng loại, năm sản xuất, và giá niêm yết.
Mỗi sản phẩm thuộc về một thương hiệu được chỉ định bởi cột brand_id
. Do đó, một thương hiệu có thể có không hoặc có nhiều sản phẩm.
Mỗi sản phẩm cũng thuộc một chủng loại được chỉ định bởi cột category_id
. Ngoài ra, mỗi chủng loại có thể có không hoặc nhiều sản phẩm.
CREATE TABLE production.products (
product_id INT IDENTITY (1, 1) PRIMARY KEY,
product_name VARCHAR (255) NOT NULL,
brand_id INT NOT NULL,
category_id INT NOT NULL,
model_year SMALLINT NOT NULL,
list_price DECIMAL (10, 2) NOT NULL,
FOREIGN KEY (category_id)
REFERENCES production.categories (category_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (brand_id)
REFERENCES sales.brands (brand_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
Bảng sales.customers
Bảng sales.customers
lưu trữ các thông tin của khách hàng bao gồm cả tên, họ, điện thoại, email, đường phố, thành phố, tiểu bang và mã zip.
CREATE TABLE sales.customers (
customer_id INT IDENTITY (1, 1) PRIMARY KEY,
first_name VARCHAR (255) NOT NULL,
last_name VARCHAR (255) NOT NULL,
phone VARCHAR (25),
email VARCHAR (255) NOT NULL,
street VARCHAR (255),
city VARCHAR (50),
state VARCHAR (25),
zip_code VARCHAR (5)
);
Bảng sales.orders
Bảng sales.orders
lưu trữ các thông tin đơn đặt hàng của khách hàng bao gồm trạng thái đơn hàng, ngày đặt hàng, ngày yêu cầu, ngày vận chuyển.
Nó cũng lưu trữ thông tin về nơi đơn hàng được tạo ra (cửa hàng) và ai đã tạo đơn hàng (nhân viên).
Mỗi đơn hàng có một hàng trong bảng sales.orders
. Một đơn đặt hàng có một hoặc nhiều chi tiết đơn hàng được lưu trữ trong bảng sales.order_items
.
CREATE TABLE sales.orders (
order_id INT IDENTITY (1, 1) PRIMARY KEY,
customer_id INT,
order_status tinyint NOT NULL,
-- Order status: 1 = Pending; 2 = Processing; 3 = Rejected; 4 = Completed
order_date DATE NOT NULL,
required_date DATE NOT NULL,
shipped_date DATE,
store_id INT NOT NULL,
staff_id INT NOT NULL,
FOREIGN KEY (customer_id)
REFERENCES sales.customers (customer_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (store_id)
REFERENCES sales.stores (store_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (staff_id)
REFERENCES sales.staffs (staff_id)
ON DELETE NO ACTION ON UPDATE NO ACTION
);
Bảng sales.order_items
Bảng sales.order_items
lưu trữ các thông tin chi tiết của một đơn đặt hàng. Mỗi chi tiết đơn hàng thuộc về một đơn đặt hàng được chỉ định bởi cột order_id
.
Một chi tiết đơn hàng bao gồm sản phẩm, số lượng đặt hàng, giá niêm yết và chiết khấu.
CREATE TABLE sales.order_items(
order_id INT,
item_id INT,
product_id INT NOT NULL,
quantity INT NOT NULL,
list_price DECIMAL (10, 2) NOT NULL,
discount DECIMAL (4, 2) NOT NULL DEFAULT 0,
PRIMARY KEY (order_id, item_id),
FOREIGN KEY (order_id)
REFERENCES sales.orders (order_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (product_id)
REFERENCES production.products (product_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
Bảng production.stocks
Bảng production.stocks
lưu trữ các thông tin hàng tồn kho tức là số lượng của một sản phẩm cụ thể trong một cửa hàng cụ thể.
CREATE TABLE production.stocks (
store_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (store_id, product_id),
FOREIGN KEY (store_id)
REFERENCES sales.stores (store_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (product_id)
REFERENCES production.products (product_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
Nhấp vào nút sau đây tải xuống tập lệnh của cơ sở dữ liệu mẫu:
Tải xuống cơ sở dữ liệu mẫu của SQL Server
Bây giờ, bạn nên làm quen với cơ sở dữ liệu mẫu của BikeStores và sẵn sàng nạp nó vào SQL Server.
Nạp cơ sở dữ liệu mẫu vào SQL Server
Trong phần này, bạn sẽ tìm hiểu cách tạo cơ sở dữ liệu mới trong SQL Server và thực thi tập lệnh cơ sở dữ liệu mẫu đã tải về ở phần trước.
Sau khi đã tải tập lệnh cơ sở dữ liệu mẫu về, bạn giải nén tệp zip và sẽ thấy ba tệp tập lệnh SQL:
BikeStores Sample Database - create objects.sql
– tệp này là để tạo các đối tượng cơ sở dữ liệu bao gồm các lược đồ và bảng.BikeStores Sample Database - load data.sql
– tập tin này là để chèn dữ liệu vào các bảng.BikeStores Sample Database - drop all objects.sql
– tệp này dùng để xóa các bảng và lược đồ ra khỏi cơ sở dữ liệu mẫu. Nó rất hữu ích khi bạn muốn làm mới cơ sở dữ liệu mẫu.
Bây giờ bạn hãy tạo một cơ sở dữ liệu, tạo các lược đồ, bảng và nạp dữ liệu mẫu theo hướng dẫn sau:
Bước 1: Bấm chuột phải vào nút Database trong Object Explorer và menu New Database…
Bước 2: (1) Nhập tên cơ sở dữ liệu là BikeStores, (2) nhấp vào nút OK để tạo cơ sở dữ liệu mới.
Bước 3: Nếu mọi thứ đều ổn, bạn sẽ thấy cơ sở dữ liệu BikeStores xuất hiện dưới nút Database như trong ảnh chụp màn hình bên dưới:
Bước 4: Từ menu File, chọn Open > File… để mở tệp tập lệnh SQL.
Bước 5: Chọn tệp BikeStores Sample Database - create objects.sql
và nhấp vào nút Open.
Bước 6: (1) Chọn cơ sở dữ liệu là BikeStores rồi nhấp vào nút Execute để thực thi tập lệnh SQL.
Bạn sẽ thấy kết quả sau chỉ ra rằng truy vấn được thực hiện thành công.
Nếu bạn mở rộng BikeStores> Table, bạn sẽ thấy các lược đồ và các bảng của chúng được tạo như hình dưới đây:
Bước 7: Mở tệp để nạp dữ liệu vào các bảng.
Bước 8: Chọn tệp BikeStores Sample Database - load data.sql
và nhấp vào nút Open.
Bước 9: Nhấp vào nút Execute để nạp dữ liệu vào các bảng.
Bạn sẽ thấy thông báo sau cho biết rằng tất cả các câu lệnh trong tập lệnh đã được thực thi thành công.
Trong hướng dẫn này, bạn đã học cách tạo cơ sở dữ liệu mới sau đó thực thi các tập lệnh SQL để tạo lược đồ, bảng và nạp cơ sở dữ liệu mẫu BikeStores vào SQL Server.