CƠ SỞ DỮ LIỆU -...

98
Lý thuyết CSDL GIÁO VIÊN: Đỗ Thị Đỗ Thị BỘ MÔN : Các Hệ Các Hệ KHOA : Công ng Công ng Email : dohuon Email : dohuon CƠ SỞ DỮ L 1 ị Mai Hường ị Mai Hường ệ thống thông tin ệ thống thông tin ghệ thông tin ghệ thông tin [email protected] [email protected] LIỆU

Transcript of CƠ SỞ DỮ LIỆU -...

Page 1: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

GIÁO VIÊN: Đỗ Thị Mai HườngĐỗ Thị Mai HườngBỘ MÔN : Các Hệ thống thông tin Các Hệ thống thông tin KHOA : Công nghệ thông tinCông nghệ thông tinEmail : [email protected] : [email protected]

CƠ SỞ DỮ LIỆU

1

Đỗ Thị Mai HườngĐỗ Thị Mai HườngCác Hệ thống thông tin Các Hệ thống thông tin Công nghệ thông tinCông nghệ thông tin

Email : [email protected] : [email protected]

CƠ SỞ DỮ LIỆU

Page 2: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

CHƯƠNG 4

4.1. HỆ QUẢN TRỊ SQL SERVER

2

4.1. HỆ QUẢN TRỊ SQL SERVER

Page 3: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Nội dung bài học

• Giới thiệu SQL Server • Các thành phần Client-Server • Các loại Database• Công cụ và tiện ích SQL Server• Tạo và sử dụng Database• Triển khai Database• Bảo mật SQL Server

3

Server

Công cụ và tiện ích SQL Server

Page 4: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

• Relational Database Management System – RDBMS của SQL Server có nhiệm vụ:

• Duy trì các quan hệ giữa các dữ liệu trong database.• Bảo đảm dữ liệu được lưu trữ đúng và hợp lệ theo các qui tắc đã

đưa ra.• Phục hồi tất cả các dữ liệu khi cần

• SQL server tích hợp với các hệ điều hành Windows

Giới thiệu SQL Server

4

Relational Database Management System RDBMS của SQL Server có nhiệm vụ:

Duy trì các quan hệ giữa các dữ liệu trong database.Bảo đảm dữ liệu được lưu trữ đúng và hợp lệ theo các qui tắc đã

Phục hồi tất cả các dữ liệu khi cần

SQL server tích hợp với các hệ điều hành Windows

Giới thiệu SQL Server

Page 5: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Giới thiệu SQL Server (tt)

• Thực hiện các transaction processing, lưu trữ, phân tích và xây dựng các ứng dụng

• Là một hệ quản trị cơ sở dữ liệu quan hệ– Quản lý kho dữ liệu đối với các transaction và analysis– Trả lời các request của client application– Dùng Transact-SQL, XML, Multidimendional expression

(MDX) hoặc SQL distribute management Object (SQL DMO) để gởi các request giữa client với SQL Server

5

Giới thiệu SQL Server (tt)

Thực hiện các transaction processing, lưu trữ, phân tích và

Là một hệ quản trị cơ sở dữ liệu quan hệQuản lý kho dữ liệu đối với các transaction và analysisTrả lời các request của client application

SQL, XML, Multidimendional expression (MDX) hoặc SQL distribute management Object (SQL –DMO) để gởi các request giữa client với SQL Server

Page 6: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Giới thiệu SQL Server

6

Giới thiệu SQL Server

Online Transaction processing (OLTP) database và Online Analytical processing (OLAP) database

Page 7: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

• OLTP database: – Dữ liệu được lưu trong các table có quan hệ

dữ liệu và tăng tốc độ cập nhật. – Cho phép một số lượng lớn user thực hiện các transaction

một cách đồng thời• OLAP Databases:

– Hỗ trợ phân tích viên đưa ra các giải pháp, các mô hình dữ liệu

Giới thiệu SQL Server (tt)

7

Dữ liệu được lưu trong các table có quan hệ -> giảm dư thừa dữ liệu và tăng tốc độ cập nhật. Cho phép một số lượng lớn user thực hiện các transaction

Hỗ trợ phân tích viên đưa ra các giải pháp, các mô hình dữ

Giới thiệu SQL Server (tt)

Page 8: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Client-Server components

8

Server components

Page 9: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

• Client-Server Architecture– Client đóng vai trò Business logic

user. Có thể chạy trên một hoặc nhiều máy hoặc chạy trên cùng máy với server

– SQL Server quản lý Database và cấp phát tài nguyên

Client-Server components (tt)

9

Business logic và Presenting data cho user. Có thể chạy trên một hoặc nhiều máy hoặc chạy trên

SQL Server quản lý Database và cấp phát tài nguyên

Server components (tt)

Page 10: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Client-Server Communication

10

Server Communication

Page 11: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

SQL Server ServicesSQL Server Services

11

SQL Server ServicesSQL Server Services

Page 12: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

SQL Server Services (tt)

• MSSQL Server Services – Cấp phát tài nguyên máy tính cho nhiều user đồng thời.– Ngăn chặn các logic problems ví dụ như timing requests– Bảo đảm tính ổn định và ràng buộc dữ liệu.

12

SQL Server Services (tt)

Cấp phát tài nguyên máy tính cho nhiều user đồng thời.Ngăn chặn các logic problems ví dụ như timing requestsBảo đảm tính ổn định và ràng buộc dữ liệu.

Page 13: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

SQL Server Services (tt)

• SQLServerAgent Services – Cảnh báo về trạng thái của một process, ví dụ như một công

việc nào đó được hoàn thành hoặc xảy ra lỗi.– Tạo ra một công việc mới và lập lịch để tự động hoá các

nhiệm vụ.– Gởi email hoặc khởi động một ứng dụng khác khi một thông

báo xảy ra.

13

SQL Server Services (tt)

SQLServerAgent Services Cảnh báo về trạng thái của một process, ví dụ như một công việc nào đó được hoàn thành hoặc xảy ra lỗi.Tạo ra một công việc mới và lập lịch để tự động hoá các

Gởi email hoặc khởi động một ứng dụng khác khi một thông

Page 14: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

SQL Server Services (tt)

• Microsoft Distributed Transaction Coordinator (MS DTC)– Cho phép các clients gom nhiều nguồn dữ liệu khác nhau

trong một transaction.• Microsoft Search

– Là một full-text engine.

14

SQL Server Services (tt)

Microsoft Distributed Transaction Coordinator

Cho phép các clients gom nhiều nguồn dữ liệu khác nhau

Page 15: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

SQL Server Database

• Các loại Databases• Các đối tượng Database • Tham chiếu đến đối tượng SQL Server • Các table hệ thống (System Tables)• Metadata Retrieval

15

SQL Server Database

Tham chiếu đến đối tượng SQL Server Các table hệ thống (System Tables)

Page 16: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

CácCác loạiloại DatabaseDatabase

16

Page 17: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Các loại Databases (tt)• Master: điều khiển các user databases và các hoạt động của SQL

Server cũng như toàn bộ các thông tin như user accounts, biến môi trường và các system error messages

• Model: cung cấp một template/prototype database cho việc tạo mới một user databases

• Tempdb: cung cấp vùng lưu trữ cho table tạm thời hoặc các vùng làm việc tạm thời

• Msdb: cung cấp vùng lưu trữ choviệc

• Distribution: Lưu trữ history và transaction data được dùng để tạo bản sao

• Pubs: một database ví dụ để học17

Các loại Databases (tt)điều khiển các user databases và các hoạt động của SQL

Server cũng như toàn bộ các thông tin như user accounts, biến môi trường và các system error messages

cung cấp một template/prototype database cho việc tạo

cấp vùng lưu trữ cho table tạm thời hoặc các vùng

cấp vùng lưu trữ cho việc xắp thời khoá biểu các công

Lưu trữ history và transaction data được dùng để

một database ví dụ để học

Page 18: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Database ObjectsDatabase Objects

18

Page 19: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Database Objects (Database Objects (tttt))

Object Mô tả

Table Bảng quan hệ chứa dữ liệu

Data type Kiểu dữ liệu

Constraint Các qui tắc để kiểm tra ràng

Default Các giá trị mặc định nếu giá

Rule Các thông tin mà định nghĩa

Index Là một cấu trúc lưu trữ nhằm

19

))

Bảng quan hệ chứa dữ liệu

ràng buộc dữ liệu

giá trị của một field không được nhập vào

nghĩa các giá trị hợp lệ trong một field

nhằm truy xuất nhanh dữ liệu

Page 20: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Database Objects (Database Objects (tttt))

Object Mô tảView Là table ảo, đây là

hoặc các view khácUser-defined function

Là các hàm do programmer

Stored procedure

Là các thủ tục do programmer

Trigger Là một dạng đặc biệthiện tự động khi user

20

))

một cách để lấy dữ liệu từ các table khác

do programmer định nghĩa

do programmer định nghĩa

biệt của procedure nhưng được thựcuser thay đổi dữ liệu trong table/view

Page 21: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Tham chiếu đến một đối tượng

• Tên đầy đủ:[server.[database.[schema.]]]object

• Tên ngắn gọnĐược hiểu là server default, instance hiện hành, database hiện hành và schema là lược đồ

VD: select * from dbo.nhanvien

21

Tham chiếu đến một đối tượng

server.[database.[schema.]]]object

Được hiểu là server default, instance hiện hành, database hiện hành và schema là lược đồ

VD: select * from dbo.nhanvien

Page 22: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

System Tables

• System tables lưu trữ các thông tin về các System và Database Objects

• Database Catalog lưu trữ Metadata về một Database• System Catalog lưu trữ Metadata về toàn bộ hệ thống

và tất cả các Databases

22

System tables lưu trữ các thông tin về các System và

Database Catalog lưu trữ Metadata về một DatabaseSystem Catalog lưu trữ Metadata về toàn bộ hệ thống

Page 23: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lấy dữ liệu MetaData

23

Lấy dữ liệu MetaData

Page 24: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lấy dữ liệu MetaData(tt)

System Stored Procedure

24

Lấy dữ liệu MetaData(tt)

System Stored Procedure

Page 25: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Công cụ và một số tiện ích

• Service Manager• SQL Server Management Studio

– Import and Export Data– Create and Manipulate Database– Query Analysis– Backup Database

25

Công cụ và một số tiện ích

SQL Server Management Studio

Create and Manipulate Database

Page 26: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Service Manager

• Quản lý cung cấp các dịch vụ của SQL Server– SQL Server muốn truy cập được CSDL thì dịch vụ Service

Manager phải chạy

26

Quản lý cung cấp các dịch vụ của SQL ServerSQL Server muốn truy cập được CSDL thì dịch vụ Service

Page 27: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Import and Export Data

• Cho phép tạo và truy xuất dữ liệu từ các nguồn khác nhau. Dữ liệu từ các hệ khác vào SQL Server và ngược lại.– SQL Server– Microsoft Access– Oracle– Excel– Text (có cấu trúc)– ….

27

Import and Export Data

Cho phép tạo và truy xuất dữ liệu từ các nguồn khác nhau. Dữ liệu từ các hệ khác vào SQL Server và ngược lại.

Page 28: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Query Analysis

• Là tiện ích giúp thực hiện các câu lệnh truy vấn SQL.– Rất đơn giản, giao diện trực quan.– Môi trường rất tốt cho việc kiểm tra các câu lệnh SQL– Cho phép tạo, quản lý CSDL dưới dạng các câu lệnh– Muốn đăng nhập phải có User và Password

28

Là tiện ích giúp thực hiện các câu lệnh truy vấn SQL.Rất đơn giản, giao diện trực quan.Môi trường rất tốt cho việc kiểm tra các câu lệnh SQLCho phép tạo, quản lý CSDL dưới dạng các câu lệnhMuốn đăng nhập phải có User và Password

Page 29: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Các công cụ và tiện ích

• Backup Database: Là tiện ích giúp sao lưu CSDL và phục hồi khi có bất thường xảy ra

• Create and Manipulate Database: Hỗ trợ giao diện đồ họa cho phép quản lý CSDL.

29

Các công cụ và tiện ích

Backup Database: Là tiện ích giúp sao lưu CSDL và phục hồi khi có bất thường xảy raCreate and Manipulate Database: Hỗ trợ giao diện đồ họa cho phép quản lý CSDL.

Page 30: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xây dựng CSDL trong SQL Server

Một CSDL của SQL Server là tập hợp các đối tượng: Bảng (Table): chứa dữ liệu

Bảng ảo (View): chứa dữ liệu lấy từ bảng

Thủ tục nội tại (Stored Procedure): chứa các lệnh thao tác với

dữ liệu

Triger :Chứa các lệnh thao tác với dữ liệu, kiểm tra ràng buộc tự động

Constraint :Chứa các ràng buộc dữ liệu

Trong SQL Server có thể tạo đươc 32767 CSDL khác nhau30

Xây dựng CSDL trong SQL Server

Một CSDL của SQL Server là tập hợp các đối tượng:

Bảng ảo (View): chứa dữ liệu lấy từ bảng

Thủ tục nội tại (Stored Procedure): chứa các lệnh thao tác với

Triger :Chứa các lệnh thao tác với dữ liệu, kiểm tra ràng buộc

Constraint :Chứa các ràng buộc dữ liệu

Trong SQL Server có thể tạo đươc 32767 CSDL khác nhau

Page 31: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server(tt)

CSDL

Primary DataFile(*.MDF)

Secondary Data File(*.NDF)

Data Files

Cấu trúc của CSDL gồm 2 tập tin vật lý để lưu trữ: một lưu trữ dữ liệu ( data file), một lưu trữ vết các giao tác (logfile)Thường có 3 file :

31

CSDL trong SQL Server(tt)

Log file(*.LDF)

Log Files

Cấu trúc của CSDL gồm 2 tập tin vật lý để lưu trữ: một lưu trữ dữ liệu ( data file), một lưu trữ vết các giao tác (logfile)

Page 32: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server(tt)

Tạo mới một CSDL trong SQL Server: Cách 1: Sử dụng tiện ích:Click chuột phải vào đối tượng Database, chọn New Database

32

Xaây döïng CSDL trong SQL Server(tt)

Page 33: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

• Xuất hiện hộp thoại :

33/111

Xaây döïng CSDL trong SQL Server (tt)

Page 34: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

Cách 2: Tạo CSDL bằng cách viết lệnh trong Query Enalyzer

34

Xaây döïng CSDL trong SQL Server (tt)

Tạo CSDL bằng cách viết lệnh trong

Page 35: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

• Các kiểu dữ liệu trong SQL ServerKiểu dữ liệu Kích

thước> Các kiểu dữ liệu dạng số nguyênInt 4 bytes từ-2,147SmallInt 2 bytes từ -32768TinyInt 1 byte từ 0 đếnBit 1 byte 0, 1 hoặc> Các kiểu dữ liệu dạng số thập phânDecimal,Numeric

17bytes từ -10^38

> Các kiểu dữ liệu dạng số thựcFloat 8 bytes từ -1.79Real 4 bytes từ -3.40

35

Xaây döïng CSDL trong SQL Server (tt)

Các kiểu dữ liệu trong SQL ServerMiền giá trị dữ liệu lưu trữ

147,483,648đến +2,147,483,64732768 đến +32767đến 255hoặc Nullphân

38 đến +10^38

79E+308 đến +1.79E+30840E+38 đến +3.40E+38

Page 36: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

• Các kiểu dữ liệu trong SQL Server

> Các kiểu dữ liệu dạng chuỗi có độ dài

Char N bytes từ 1 đến 8000byte

> Các kiểu dữ liệu dạng chuỗi có độ dàiVarChar N bytes từ 1 đến 8000Text N bytes từ 1 đến 2,147

là 1 byte> Các kiểu dữ liệu dạng chuỗi dùng fontNChar 2*N bytes từ 1 đến 4000 kýNVarChar 2*N bytes từ 1 đến 4000 ký

NText 2*N bytes từ 1 đến 1,073,là 2 bytes

36

Xaây döïng CSDL trong SQL Server (tt)

Các kiểu dữ liệu trong SQL Server

cố định

8000 ký tự, mỗi ký tự là một

biến đổi8000 ký tự, mỗi ký tự là 1 byte

147,483,647 ký tự, mỗi ký tự

font chữ Unicodeký tự, mỗi ký tự là 2 byteský tự, mỗi ký tự là 2 bytes

,741,823 ký tự, mỗi ký tự

Page 37: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

• Các kiểu dữ liệu trong SQL Server> Các kiểu dữ liệu dạng tiền tệ

Money 8 bytes từ+922

SmallMoney 4 bytes từ -214

> Các kiểu dữ liệu dạng ngày và giờ

DateTime 8 bytesSmallDateTime 4 bytes> Các kiểu dữ liệu dạng chuỗi nhị phân

Binary N bytesVarBinary N bytesImage N bytes

37

Xaây döïng CSDL trong SQL Server (tt)

Các kiểu dữ liệu trong SQL Server

-922,337,203,685,477.5808 đến922,337,203,685,477.5807

214,748.3648 đến + 214,748.3647

giờ

bytes từ 01/01/1753đến3 1/12/9999bytes từ 01/01/1900đến0 6/06/2079

phân (Binary String)

từ 1 đến 8000 bytestừ 1 đến 8000 bytestừ 1 đến 2,147,483,647bytes

Page 38: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

• Các thuộc tính cơ bản của Một Bảng– Tên bảng (Table Name):

Độ dài<= 128 ký tự. Tên bảng phải duy nhất bên phạm vi của người đã tạo ra nó trong một CSDL

– Tên cột (Column Name):Tên của các cột bên trong bảng, tên của các cột bên trong bảng phải duy nhất.

– Kiểu dữ liệu (Data Type):Qui định kiểu dữ liệu mà cột sẽ lưu trữ bên trong bảng.

38

Xaây döïng CSDL trong SQL Server (tt)

Các thuộc tính cơ bản của Một Bảng

Độ dài<= 128 ký tự. Tên bảng phải duy nhất bên trong của người đã tạo ra nó trong một CSDL

Tên của các cột bên trong bảng, tên của các cột bên

Qui định kiểu dữ liệu mà cột sẽ lưu trữ bên trong bảng.

Page 39: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

– Độ dài dữ liệu (Data Length): dùng để qui định độ dài dữ liệu mà cột sẽ lưu trữ đối với các kiểu dữ liệu dạng chuỗi, số.

– Số ký số lưu trữ (Precision): là số ký số tối đa mà các kiểu dữ liệu dạng số có thể lưu trữ được.

– Số lẻ lưu trữ (Scale): là số lẻ tối đa mà các kiểu dữ liệu dạng số thập phân dùng để lưu trữ.

39

Xaây döïng CSDL trong SQL Server (tt)

(Data Length): dùng để qui định độ dài dữ liệu mà cột sẽ lưu trữ đối với các kiểu dữ liệu

(Precision): là số ký số tối đa mà các kiểu dữ liệu dạng số có thể lưu trữ được.

(Scale): là số lẻ tối đa mà các kiểu dữ liệu dạng số thập phân dùng để lưu trữ.

Page 40: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

– Cột định danh (Identity): Giá trị của cột định danh là số nguyên không trùng lặp do hệ thống Microsoft SQL Server tự động cấp phát.

• Các kiểu dữ liệu của cột định danh : Int, SmallInt, TinyInt, Decimal , Numeric

• Thuộc tính Identity Seed:

• Thuộc tính Identity Increment:

40

Xaây döïng CSDL trong SQL Server (tt)

(Identity): Giá trị của cột định danh là số nguyên không trùng lặp do hệ thống Microsoft SQL Server tự động cấp phát.

Các kiểu dữ liệu của cột định danh : Int, SmallInt, TinyInt, Decimal , Numeric

Identity Seed: Số đầu tiên

Identity Increment: giá trị tăng

Page 41: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xaây döïng CSDL trong SQL Server (tt)

– Cho phép để trống dữ liệu

Null): qui định dữ liệu có thể được phép

để trống hay là phải nhập

– Giá trị mặc định (Default Value): là

giá trị mặc nhiên sẽ được gán vào cột

dữ liệu khi người sử dụng thêm mới

một mẫu tin nhưng lại để trống giá trị

tại cột dữ liệu đó. 41

Xaây döïng CSDL trong SQL Server (tt)

Cho phép để trống dữ liệu (Allow

Null): qui định dữ liệu có thể được phép

để trống hay là phải nhập

(Default Value): là

giá trị mặc nhiên sẽ được gán vào cột

dữ liệu khi người sử dụng thêm mới

một mẫu tin nhưng lại để trống giá trị

Page 42: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

• Tạo Bảng trong Sql Server– Cách 1: Sử dụng tiện ích

• Mở CSDL Click chuột phải trên đối tượng Tables, chọn chức năng New Table... trong thực đơn tắt.

– Cách 2: Sử dụng câu lệnh:

Xaây döïng CSDL trong

42

trong SQL Server (tt)

Page 43: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Ngôn ngữ SQL

• SQL (Structured Query Language)– Ngôn ngữ cấp cao– Người sử dụng chỉ cần đưa ra nội dung cần truy

vấn– Được phát triển bởi IBM (1970s)– Được gọi là SEQUEL– Được ANSI công nhận và phát triển thành chuẩn

• SQL-86• SQL-92• SQL-99

Lý thuyết CSDL

SQL (Structured Query Language)

Người sử dụng chỉ cần đưa ra nội dung cần truy

Được phát triển bởi IBM (1970s)

Được ANSI công nhận và phát triển thành chuẩn

43

Page 44: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ngôn ngữ SQL(tt)

• SQL gồm– Định nghĩa dữ liệu (DDL)– Thao tác dữ liệu (DML)– Định nghĩa khung nhìn– Ràng buộc toàn vẹn – Phân quyền và bảo mật– Điều khiển giao tác

• SQL sử dụng thuật ngữ– Bảng ~ quan hệ– Cột ~ thuộc tính– Dòng ~ bộ 44

Định nghĩa dữ liệu (DDL)

Lý thuyết : Chuẩn SQL-92

Ví dụ : SQL Server

Page 45: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Định nghĩa dữ liệu

• Là ngôn ngữ mô tả– Lược đồ cho mỗi quan hệ– Miền giá trị tương ứng của từng thuộc tính– Ràng buộc toàn vẹn– Chỉ mục trên mỗi quan hệ

• Gồm– CREATE TABLE (tạo bảng)– DROP TABLE (xóa bảng)– ALTER TABLE (sửa bảng)– CREATE DOMAIN / CREATE TYPE (tạo miền giá trị)– CREATE DATABASE

45

Miền giá trị tương ứng của từng thuộc tính

CREATE TABLE (tạo bảng)DROP TABLE (xóa bảng)ALTER TABLE (sửa bảng)CREATE DOMAIN / CREATE TYPE (tạo miền giá trị)

Page 46: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Định nghĩa dữ liệu

• Lệnh tạo cơ sở dữ liệu:

Lý thuyết CSDL

CREATE DATABASE QLNHANVIENON PRIMARY ( NAME= QLNHANVIEN _DATA, FILENAME=’C:\MSSQL\DATA\ QLNHANVIEN _DATA.MDF’, SIZE=50MB, MAXSIZE=200MB, FILEGROWTH=10%)LOG ON( NAME= QLNHANVIEN _LOG,FILENAME=’C:\MSSQL\DATA\ QLNHANVIEN _LOG.LDF’,

SIZE=10MB, MAXSIZE=UNLIMITED, FILEGROWTH=5MB ) Hoặc đơn giản:

CREATE DATABASE QLNHANVIEN46

CREATE DATABASE QLNHANVIENON PRIMARY ( NAME= QLNHANVIEN _DATA,

QLNHANVIEN _DATA.MDF’, SIZE=50MB, MAXSIZE=200MB, FILEGROWTH=10%)

NAME= QLNHANVIEN _LOG,QLNHANVIEN _LOG.LDF’,

SIZE=10MB, MAXSIZE=UNLIMITED, FILEGROWTH=5MB )

CREATE DATABASE QLNHANVIEN

Page 47: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh tạo bảng

• Để định nghĩa một bảng– Tên bảng– Các thuộc tính

• Tên thuộc tính• Kiểu dữ liệu• Các ràng buộc toàn vẹn trên thuộc tính (RBTV)

• Cú phápCREATE TABLE <Tên_bảng>

<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],…[<RBTV>]

) 47

Các ràng buộc toàn vẹn trên thuộc tính (RBTV)

<Tên_bảng> (<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],

Page 48: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ CSDL

• Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ:– NHANVIEN(MANV, HONV, TENNV, NS, GT, DCHI,

LUONG, MA_NQL, MaPB)– PHONGBAN(MaPB, TenPB, MaTP, NG_NHANCHUC)– DUAN(MADA, TENDA, DD_DA, MaPB)– THANNHAN(MANV, TEN_TN– PHANCONG(MANV, MADA

48

Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ:, HONV, TENNV, NS, GT, DCHI,

LUONG, MA_NQL, MaPB), TenPB, MaTP, NG_NHANCHUC)

, TENDA, DD_DA, MaPB)MANV, TEN_TN, NS, GT, QUANHE)

MADA, SOGIO)

Page 49: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh tạo bảng (tt)

• <RBTV> – NOT NULL– NULL– UNIQUE– DEFAULT– PRIMARY KEY– FOREIGN KEY / REFERENCES– CHECK

• Đặt tên cho RBTVCONSTRAINT <Ten_RBTV> <RBTV>

49

FOREIGN KEY / REFERENCES

<Ten_RBTV> <RBTV>

Page 50: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

CREATE TABLE PHONGBAN (

MAPB CHAR(10) PRIMARY KEY

TENPB VARCHAR(20) UNIQUE

MATP CHAR(10),

NG_NHANCHUC DATETIME DEFAULT

)

CREATE TABLE DUAN(

MADA CHAR(10) PRIMARY KEY

TENDA VARCHAR(20) NOT NULL

MAPB CHAR(10) REFERENCES

)

Ví dụ - RBTV

50

CHAR(10) PRIMARY KEY,

UNIQUE,

DATETIME DEFAULT (GETDATE())

CHAR(10) PRIMARY KEY,

NOT NULL,

REFERENCES PHONGBAN(MAPB)

Page 51: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ - RBTV

CREATE TABLE NHANVIEN (

MANV CHAR(10) PRIMARY KEY

NS DATETIME,

DCHI VARCHAR(50),

GT CHAR(3) CHECK (GT

LUONG INT DEFAULT

MA_NGS CHAR(10),

MAPB CHAR(10) REFERENCES

)

5151

PRIMARY KEY,

(GT IN (‘Nam’, ‘Nu’)),

INT DEFAULT (10000),

CHAR(10) REFERENCES PHONGBAN(MAPB)

Page 52: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ - Đặt tên RBTV

CREATE TABLE PHANCONG (

MANV CHAR(10) REFERENCES

MADA CHAR(10) REFERENCES

SOGIO DECIMAL(3,1),

CONSTRAINT NV_DA PRIMARY KEY

Hoặc

CREATE TABLE PHANCONG (

MANV CHAR(10) REFERENCES

MADA CHAR(10) REFERENCES

SOGIO DECIMAL(3,1), PRIMARY KEY

) 52

REFERENCES NHANVIEN(MANV),

REFERENCES DUAN(MADA),

PRIMARY KEY(MANV,MADA))

REFERENCES NHANVIEN(MANV),

REFERENCES DUAN(MADA),

PRIMARY KEY(MANV,MADA)

Page 53: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ - Đặt tên cho RBTV

CREATE TABLE PHANCONG (

MANV CHAR(10),

MADA CHAR(10),

SOGIO DECIMAL(3,1),

CONSRAINT PC_MANVIEN_MADA_PK

CONSTRAINT PC_MANVIEN_FK

REFERENCES NHANVIEN(MANV),

CONSTRAINT PC_MADA_FK FOREIGN KEY

REFERENCES DUAN(MADA)

)

53

Đặt tên cho RBTV

PC_MANVIEN_MADA_PK PRIMARY KEY (MANV, MADA),

PC_MANVIEN_FK FOREIGN KEY (MANV)

NHANVIEN(MANV),

FOREIGN KEY (MADA)

DUAN(MADA)

Page 54: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh sửa bảng

• Được dùng để – Thay đổi cấu trúc bảng – Thay đổi RBTV

• Thêm cột

• Xóa cột

• Mở rộng cột

ALTER TABLE<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]

ALTER TABLE <Tên_bảng>

ALTER TABLE<Tên_cột> <Kiểu_dữ_liệu_mới>

54

ALTER TABLE <Tên_bảng> ADD <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]

<Tên_bảng> DROP COLUMN <Tên_cột>

ALTER TABLE <Tên_bảng> ALTER COLUMN<Tên_cột> <Kiểu_dữ_liệu_mới>

Page 55: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh sửa bảng (tt)

• Thêm RBTV

• Xóa RBTV

ALTER TABLE <Tên_bảng> ADDCONSTRAINT <Ten_RBTV> <RBTV>,

CONSTRAINT <Ten_RBTV> <RBTV>,

ALTER TABLE <Tên_bảng> DROP

55

ADD<Ten_RBTV> <RBTV>,

<Ten_RBTV> <RBTV>,

DROP <Tên_RBTV>

Page 56: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ - Thay đổi cấu trúc bảng

ALTER TABLE NHANVIEN ADD

NGHENGHIEP CHAR(20)

ALTER TABLE NHANVIEN DROP COLUMN

ALTER TABLE NHANVIEN ALTER COLUMN

NGHENGHIEP CHAR(50)

56

Thay đổi cấu trúc bảng

(20)

DROP COLUMN NGHENGHIEP

ALTER COLUMN

(50)

Page 57: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ - Thay đổi RBTV

CREATE TABLE PHONGBAN (

TENPB VARCHAR(20),

MAPHONG INT NOT NULL,

TRPHONG CHAR(9),

NG_NHANCHUC DATETIME

)

ALTER TABLE PHONGBAN ADD

CONSTRAINT PB_MAPHONG_PK

CONSTRAINT PB_TRPHONG

REFERENCES NHANVIEN(MANV),

CONSTRAINT PB_NGNHANCHUC_DF

FOR (NG_NHANCHUC),

CONSTRAINT PB_TENPB_UNI 57

PB_MAPHONG_PK PRIMARY KEY (MAPHONG),

PB_TRPHONG FOREIGN KEY (TRPHONG)

NHANVIEN(MANV),

PB_NGNHANCHUC_DF DEFAULT (GETDATE())

(NG_NHANCHUC),

PB_TENPB_UNI UNIQUE (TENPB)

Page 58: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Ví dụ - Thay đổi RBTV

Muốn sửa ràng buộc Check: hoặc

-Xóa bỏ ràng buộc check cũ

-Thêm ràng buộc check mới

ALTER TABLE NHANVIEN

DROP TEN_CONSTRAINT_CHECK

ALTER TABLE NHANVIEN

ADD CONSTRAINT TEN_RB_CHECK CHECK GT IN (‘Nam’,N’Nữ’)

58

ADD CONSTRAINT TEN_RB_CHECK CHECK GT IN (‘Nam’,N’Nữ’)

Page 59: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh xóa bảng

• Được dùng để xóa cấu trúc bảng– Tất cả dữ liệu của bảng cũng bị xóa

• Cú pháp

• Ví dụDROP TABLE <Tên_bảng>

DROP TABLE NHANVIENDROP TABLE PHONGBAN

DROP TABLE PHANCONG

59

Được dùng để xóa cấu trúc bảngTất cả dữ liệu của bảng cũng bị xóa

Page 60: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh xóa bảng (tt)

NHANVIEN

TENNVHONV TENDEM MANV NS

PHONGBAN

TRPHONG

TENPHG MAPHONG

NG_NHANCHUC

60

DCHI GT LUONG

MA_NQL PHONG

NG_NHANCHUC

Page 61: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh tạo miền giá trị

• Tạo ra một kiểu dữ liệu mới kế thừa những kiểu dữ liệu có sẳn

• Cú pháp

• Ví dụ

CREATE DOMAIN <Tên_kdl_mới>

CREATE TYPE <Tên_kdl_mới>

CREATE DOMAIN Kieu_Ten AS VARCHAR

CREATE TYPE Kieu_Ten FROM

61

Tạo ra một kiểu dữ liệu mới kế thừa những kiểu dữ

<Tên_kdl_mới> AS <Kiểu_dữ_liệu>

<Tên_kdl_mới> FROM <Kiểu_dữ_liệu>

VARCHAR(30)

FROM VARCHAR(30) not null

Page 62: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh INSERT

• Dùng để thêm 1 hay nhiều dòng vào bảng

• Để thêm dữ liệu– Tên quan hệ– Danh sách các thuộc tính cần thêm dữ liệu– Danh sách các giá trị tương ứng

6262

Dùng để thêm 1 hay nhiều dòng vào bảng

Danh sách các thuộc tính cần thêm dữ liệuDanh sách các giá trị tương ứng

Page 63: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh INSERT (tt)

• Cú pháp (thêm 1 dòng)

INSERT INTO <tên bảng>(<danh sách các thuộc tính>)

VALUES (<danh sách các giá trị>)

63

<tên bảng>(<danh sách các thuộc tính>)

(<danh sách các giá trị>)

Page 64: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Ví dụ

INSERT INTO NHANVIEN(HODEM, TENNV, MANV)

VALUES (‘Le Van’, ‘Tuyen’, ‘635635635’)

INSERT INTO NHANVIEN

VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, ’12/30/1952’

INSERT INTO NHANVIEN(HONV, TENDEM, TENNV, MANV, DCHI)

VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, NULL

64

NHANVIEN(HODEM, TENNV, MANV)

’12/30/1952’, ’98 HV’, ‘Nam’, ‘37000’, 4)

NHANVIEN(HONV, TENDEM, TENNV, MANV, DCHI)

NULL)

Page 65: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh INSERT (tt)

• Nhận xét– Thứ tự các giá trị phải trùng với thứ tự các cột– Có thể thêm giá trị NULL ở những thuộc tính không là

khóa chính và NOT NULL ở những thuộc tính là khóa chính hoặc có RBTV là NOT NULL

– Câu lệnh INSERT sẽ gặp lỗi nếu vi phạm RBTV• Khóa chính• Tham chiếu• NOT NULL - các thuộc tính có ràng buộc NOT

NULL bắt buộc phải có giá trị

65

Thứ tự các giá trị phải trùng với thứ tự các cộtCó thể thêm giá trị NULL ở những thuộc tính không là khóa chính và NOT NULL ở những thuộc tính là khóa chính hoặc có RBTV là NOT NULL Câu lệnh INSERT sẽ gặp lỗi nếu vi phạm RBTV

các thuộc tính có ràng buộc NOT NULL bắt buộc phải có giá trị

Page 66: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh INSERT (tt)

• Cú pháp (thêm nhiều dòng)

INSERT INTO <tên bảng>(<danh sách các thuộc tính>)

<câu truy vấn con>

66

Cú pháp (thêm nhiều dòng)

<tên bảng>(<danh sách các thuộc tính>)

Page 67: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Ví dụ

CREATE TABLE THONGKE_PB (

TENPHONG VARCHAR

SL_NV INT,

LUONG_TC INT

)

INSERT INTO THONGKE_PB(TENPHONG, SL_NV, LUONG_TC)

SELECT TENPHONG, COUNT

FROM NHANVIEN, PHONGBAN

WHERE PHONG=MAPHONG

GROUP BY TENPHONG

67

THONGKE_PB (

VARCHAR(20),

INT

THONGKE_PB(TENPHONG, SL_NV, LUONG_TC)

COUNT(MANV), SUM(LUONG)

NHANVIEN, PHONGBAN

PHONG=MAPHONG

Page 68: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh DELETE

• Dùng để xóa các dòng của bảng

• Cú pháp

DELETE FROM <tên bảng>

[WHERE <điều kiện>]

68

Dùng để xóa các dòng của bảng

Page 69: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Ví dụ

DELETE FROM NHANVIEN

WHERE HODEM=‘Tran Van’

DELETE FROM NHANVIEN

WHERE MANV=‘345345345’

DELETE FROM NHANVIEN

69

NHANVIEN

‘Tran Van’

NHANVIEN

‘345345345’

NHANVIEN

Page 70: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh DELETE (tt)

• Nhận xét– Số lượng số dòng bị xóa phụ thuộc vào điều kiện ở

mệnh đề WHERE

– Nếu không chỉ định điều kiện ở mệnh đề WHERE, tất cả các dòng trong bảng sẽ bị xóa

– Lệnh DELETE có thể gây ra vi phạm RB tham chiếu• Không cho xóa• Xóa luôn những dòng có giá trị đang tham chiếu đến

– CASCADE• Đặt NULL cho những giá trị tham chiếu 70

Số lượng số dòng bị xóa phụ thuộc vào điều kiện ở

Nếu không chỉ định điều kiện ở mệnh đề WHERE, tất cả các dòng trong bảng sẽ bị xóa

Lệnh DELETE có thể gây ra vi phạm RB tham chiếu

Xóa luôn những dòng có giá trị đang tham chiếu đến

Đặt NULL cho những giá trị tham chiếu

Page 71: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh DELETE (tt)

TENNVHONV NGSINH

TungNguyen 12/08/1955

HungNguyen 09/15/1962

333445555987987987

MANV TENLOT

Thanh

Manh

HangBui 07/19/1968999887777

Ngoc

NhuLe 07620/1951

987654321

Quynh

VinhPham 11/10/1945888665555

Van

SODAMA_NVIEN

10333445555 20888665555

30987654321 1453453453

TamTran 07/31/1972453453453

Thanh

QuangTran 04/08/1969987987987

Hong

10987987987 30987987987

71

DCHI PHAI LUONG PHG

12/08/1955 638 NVC Q5

Nam 40000 5

09/15/1962 Ba Ria VT Nam 38000 5

MA_NQL

888665555333445555

07/19/1968 33 NTH Q1 Nu 38000 498765432107620/195 219 TD Q3 Nu 43000 4888665555

11/10/1945 450 TV HN Nam 55000 1NULL

SODA THOIGIAN

10.0

20.0

20.0

20.0

07/31/1972 543 MTL Q1

Nu 25000 5333445555

04/08/1969 980 LHP Q5

Nam 25000 4987654321

35.0

5.0

Page 72: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh DELETE (tt)

TENNVHONV NGSINH

TungNguyen 12/08/1955

HungNguyen 09/15/1962

333445555987987987

MANV TENLOT

Thanh

Manh

HangBui 07/19/1968999887777

Ngoc

NhuLe 07620/1951

987654321

Quynh

VinhPham 11/10/1945888665555

Van

TamTran 07/31/1972453453453

Thanh

QuangTran 04/08/1969987987987

Hong

333445555Nghien cuu 5

MA_NVIEN

987987987

888665555

TENPHG MAPHG

Dieu hanh 4

Quan ly 1

72

DCHI PHAI LUONG PHG

12/08/1955 638 NVC Q5

Nam 40000

09/15/1962 Ba Ria VT Nam 38000

MA_NQL

888665555333445555

07/19/1968 33 NTH Q1 Nu 38000 498765432107620/195 219 TD Q3 Nu 43000 4888665555

11/10/1945 450 TV HN Nam 55000 1NULL

07/31/1972 543 MTL Q1

Nu 25000

5

5

5333445555

04/08/1969 980 LHP Q5

Nam 25000 4987654321

NULL

NULL

NULL

05/22/1988333445555

NG_NHANCHUC

MA_NVIEN

01/01/1995

06/19/1981

987987987

888665555

Page 73: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Lệnh UPDATE

• Dùng để thay đổi giá trị của thuộc tính cho các dòng của bảng

• Cú phápUPDATE <tên bảng>

SET <tên thuộc tính>=<giá trị mới>,

<tên thuộc tính>=<giá trị mới>,

[WHERE <điều kiện>]

73

Dùng để thay đổi giá trị của thuộc tính cho các dòng

<tên thuộc tính>=<giá trị mới>,

<tên thuộc tính>=<giá trị mới>,

Page 74: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Ví dụ

UPDATE NHANVIEN

SET NGSINH=’08/12/1965’

WHERE MANV=‘333445555’

UPDATE NHANVIEN

SET LUONG=LUONG*1.1

74

’08/12/1965’

‘333445555’

LUONG=LUONG*1.1

Page 75: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Ví dụ

• Với đề án có mã số 10, hãy thay đổi nơi thực hiện đề án thành ‘Vung Tau’ và phòng ban phụ trách là phòng 5

UPDATE DEAN

SET DIADIEM_DA=’Vung Tau’

WHERE MADA=10

75

Với đề án có mã số 10, hãy thay đổi nơi thực hiện đề án thành ‘Vung Tau’ và phòng ban phụ trách là

’Vung Tau’, PHONG=5

Page 76: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDLLý thuyết CSDL

Lệnh UPDATE

• Nhận xét– Những dòng thỏa điều kiện tại mệnh đề WHERE sẽ

được cập nhật giá trị mới

– Nếu không chỉ định điều kiện ở mệnh đề WHERE, tất cả các dòng trong bảng sẽ bị cập nhật

– Lệnh UPDATE có thể gây ra vi phạm RB tham chiếu• Không cho sửa• Sửa luôn những dòng có giá trị đang tham chiếu đến

– CASCADE76

Những dòng thỏa điều kiện tại mệnh đề WHERE sẽ

Nếu không chỉ định điều kiện ở mệnh đề WHERE, tất cả các dòng trong bảng sẽ bị cập nhật

Lệnh UPDATE có thể gây ra vi phạm RB tham chiếu

Sửa luôn những dòng có giá trị đang tham chiếu đến

Page 77: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Sao lưu phục hồi dữ liệu

• Có các cách sao lưu dữ liệu:• Detach/ Attach :• Backup/Restore• Export/Import• Generate Script

77

Sao lưu phục hồi dữ liệu

Page 78: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Attach and Detach in Management Studio

• Detach:– Chọn database: chọn Tasks | Detach.– Việc Detach CSDL có thể chưa sẵn sàng nếu như có ít nhất một user

khác đang kết nối đến CSDL này.

• Attach:– Copy file dữ liệu và file log vào thư mục trong máy chủ. Thông

thường đặt trong thư mục data trong sqlserver.– Trong cửa sổ Object Browser của Database chọn Attach.– Chương trình mở cửa số Attach. Chọn nút Add và mở thư mục chứa

file dữ liệu (.mdf).

78

Attach and Detach in Management

Chọn database: chọn Tasks | Detach.Việc Detach CSDL có thể chưa sẵn sàng nếu như có ít nhất một user khác đang kết nối đến CSDL này.

Copy file dữ liệu và file log vào thư mục trong máy chủ. Thông thường đặt trong thư mục data trong sqlserver.Trong cửa sổ Object Browser của Database chọn Attach.Chương trình mở cửa số Attach. Chọn nút Add và mở thư mục chứa

Page 79: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Backup/Restore

Click chuột phải vào cơ sở dữ liệu cần Backup, chọn Task/Backup

79/95

Page 80: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Backup/Restore

Click chuột phải vào cơ sở dữ liệu cần Restore, chọn Tasks/Restore/DatabaseCó thể chọn Restore từ Database hoặc từ File.bak trong ổ đĩa

80/95

Page 81: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Generate Scripts

81

Page 82: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xác thực NSD

• Các kiểu xác thực: – SQL Server and Windows Authentication: hỗ trợ 2 kiểu

đăng nhập trên SQL Server và trên Windows– Windows Authentication

• Khi cài đặt chúng ta đã chọn một kiểu xác thực cho SQL Server. Tuy nhiên chúng ta có thể thay đổi:– Mở MSt.– Trong cửa sổ Object Explorer, ấn phải chuột lên server,

chọn properties.– Chọn nút Security => chọn kiểu xác thực– Chọn OK

82

SQL Server and Windows Authentication: hỗ trợ 2 kiểu đăng nhập trên SQL Server và trên Windows

Khi cài đặt chúng ta đã chọn một kiểu xác thực cho SQL Server. Tuy nhiên chúng ta có thể thay đổi:

Trong cửa sổ Object Explorer, ấn phải chuột lên server,

Chọn nút Security => chọn kiểu xác thực

Page 83: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Xác thực NSD

83

Page 84: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

So sánh 2 kiểu xác thực

• Kiểu Windows Authentication– Chỉ yêu cầu NSD đăng nhập một lần– Quản lý tập trung– Tận dụng được các tính năng bảo mật của Windows

• Kiểu SQL and Windows– Hỗ trợ NSD trên các HĐH khác– Quản lý NSD riêng

84

So sánh 2 kiểu xác thực

Kiểu Windows AuthenticationChỉ yêu cầu NSD đăng nhập một lần

Tận dụng được các tính năng bảo mật của Windows

Hỗ trợ NSD trên các HĐH khác

Page 85: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Access Levels

85

Page 86: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Tạo thêm NSD mới trên SQL Server• Chú ý: Nếu sử dụng password policy thì mật khẩu phải tối thiểu

là 6 kí tự và phải chứa cả ba loại: chữ thường achữ số 0-9.

• Thêm NSD theo xác thực Windows– Mở Security mức Server– Ấn phải chuột chọn New Login– Lựa chọn: Windows Authentication– Nhập tên NSD, hoặc chọn Search– Chọn Default DB– Chọn Server Roles– Chọn User Mapping để chỉ ra các CSDL mà NSD có quyền tương tác.

• Thêm NSD theo xác thực SQL Server (làm tương tự)86

Tạo thêm NSD mới trên SQL ServerChú ý: Nếu sử dụng password policy thì mật khẩu phải tối thiểu là 6 kí tự và phải chứa cả ba loại: chữ thường a-z, chữ hoa A-Z,

Thêm NSD theo xác thực Windows

Lựa chọn: Windows Authentication

Chọn User Mapping để chỉ ra các CSDL mà NSD có quyền tương tác.

Thêm NSD theo xác thực SQL Server (làm tương tự)

Page 87: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Thêm NSD mới bằng TCREATE LOGIN login_name { WITH <option_list1> | FROM

<sources> } <sources> ::=WINDOWS [ WITH <windows_options> [ ,... ] ]| CERTIFICATE certname | ASYMMETRIC KEY asym_key_name

<option_list1> ::= PASSWORD = 'password' [ HASHED ] [ MUST_CHANGE ][ , <option_list2> [ ,... ] ]

<option_list2> ::= SID = sid| DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language

| CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} [ CREDENTIAL = credential_name ]

<windows_options> ::= DEFAULT_DATABASE = database| DEFAULT_LANGUAGE = language

87

Thêm NSD mới bằng T-SQLCREATE LOGIN login_name { WITH <option_list1> | FROM

WINDOWS [ WITH <windows_options> [ ,... ] ]| CERTIFICATE certname | ASYMMETRIC KEY

PASSWORD = 'password' [ HASHED ] [ MUST_CHANGE ]

| DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language

| CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} [ CREDENTIAL = credential_name ]

<windows_options> ::= DEFAULT_DATABASE = database| DEFAULT_LANGUAGE = language

Page 88: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Thêm NSD mới bằng T

Create database testgouse testGo-- Them login la UserLogin1 theo xac thuc SQL ServerCREATE LOGIN UserLogin1 WITH PASSWORD = '123' --Them login la HUNG-CNPM\ManhHung

WindowsCREATE LOGIN [HUNG-CNPM

WINDOWS;

88

Thêm NSD mới bằng T-SQL (2)

Them login la UserLogin1 theo xac thuc SQL Server1 WITH PASSWORD = '123' ManhHung lay tu user cua

CNPM\ManhHung] FROM

Page 89: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Grant, Revoke, Deny• Grant – là lệnh dùng để cấp pháp quyền thực thi các

thao tác hoặc là quyền truy cập đến đối tượng trên SQL Server.

• Revoke – dùng để đòi lại các quyền mà user đã được cấp phát.

• Deny – cấm không cho thực thi các thao tác hoặc truy cập đến một đối tượng nào đó

89

là lệnh dùng để cấp pháp quyền thực thi các thao tác hoặc là quyền truy cập đến đối tượng trên SQL

dùng để đòi lại các quyền mà user đã được

cấm không cho thực thi các thao tác hoặc truy cập đến một đối tượng nào đó

Page 90: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Grants permissions on a schema

Cấp quyền đối với mỗi schema:GRANT permission [ ,...n ] ON SCHEMA ::

schema_nameTO database_principal [ ,...n ][ WITH GRANT OPTION ][ AS granting_principal ]

90

Grants permissions on a schema

Cấp quyền đối với mỗi schema:GRANT permission [ ,...n ] ON SCHEMA ::

TO database_principal [ ,...n ][ WITH GRANT OPTION ]

Page 91: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Grants permissions on objects (table, view, proc,…)

GRANT <permission> [ ,...n ] ON [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]

91

Grants permissions on objects (table, view,

GRANT <permission> [ ,...n ] ON [ OBJECT :: ][ schema_name ]. object_name [ (

TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]

Page 92: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Grants permissions on a server

GRANT permission [ ,...n ] TO <login> [ Ví dụ:

use master gocreate login LoginUs1 with password='123'create login LoginUs2 with password='123grant create any database to LoginUs1execute as login='LoginUs1'create database test1revertexecute as login='LoginUs2'create database test2 --failrevertdrop database test1Drop login LoginUs1

92

Grants permissions on a server

...n ] TO <login> [ ,...n ]

create login LoginUs1 with password='123'create login LoginUs2 with password='123’ gogrant create any database to LoginUs1

Page 93: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Revokes permissions on a schema

• REVOKE [ GRANT OPTION FOR ] SCHEMA :: schema_name { TO | FROM } database_principal [ ,...n ] [ CASCADE ]

- GRANT OPTION FOR: Đòi lại quyền OPTION đã cấp phát

- CASCADE: Đòi lại các quyền đã phát.- Ví dụ:

- user sa -> usr1 (WITH GRANT OPTION- User sa đòi lại quyền của usr1(cascade) thì quyền truy cập của

usr2 cũng tự động bị đòi lại

93

Revokes permissions on a schema

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] ON { TO | FROM }

[ ,...n ] [ CASCADE ]

GRANT OPTION FOR: Đòi lại quyền WITH GRANT

CASCADE: Đòi lại các quyền đã phát.

WITH GRANT OPTION )->usr2User sa đòi lại quyền của usr1(cascade) thì quyền truy cập của

Page 94: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Removes server-level GRANT and DENY permissions

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ] { TO | FROM } <login> [ ,...n ] [ CASCADE ]

94

level GRANT and DENY

REVOKE [ GRANT OPTION FOR ] ...n ] { TO | FROM } <login>

Page 95: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Revokes permissions on objects

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]

{ FROM | TO } <database_principal> [ ,...n ] [ CASCADE ]

95

Revokes permissions on objects

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON [ OBJECT :: ][ schema_name ]. object_name [ ( column [

{ FROM | TO } <database_principal> [ ,...n ]

Page 96: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

Deny

• Denies permissions on a server:– DENY permission [ ,...n ] TO <login> [

• Denies permissions on a schema:– DENY permission [ ,...n ] } ON SCHEMA

database_principal [ ,...n ] [ CASCADE ] • Denies permissions on objects:

– DENY <permission> [ ,...n ] ON [ OBJECT object_name [ ( column [ ,...n ] )CASCADE ]

96

Denies permissions on a server:...n ] TO <login> [ ,...n ] [ CASCADE ]

Denies permissions on a schema:[ ,...n ] } ON SCHEMA :: schema_name TO [ ,...n ] [ CASCADE ]

Denies permissions on objects:...n ] ON [ OBJECT :: ][ schema_name ].

) ] TO <database_principal> [ ,...n ] [

Page 97: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

THẢO LUẬN

Trả lời câu hỏi:1. Các tiện ích trong SQL Server?2. Các cách tạo cơ sở dữ liệu trong SQL Server?3. Các cách sao lưu dự liệu4. Các loại xác thực trong SQL Server?

97

THẢO LUẬN

Trả lời câu hỏi:Các tiện ích trong SQL Server?Các cách tạo cơ sở dữ liệu trong SQL Server?Các cách sao lưu dự liệuCác loại xác thực trong SQL Server?

Page 98: CƠ SỞ DỮ LIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong4_1_HequantriSQLServer(20189101632).pdf · – Cho phép để trống dữ liệu Null): qui định dữ

Lý thuyết CSDL

THẢO LUẬN

Thảo luận theo nhóm:Các nhóm trình bày:

Mô tả đề tài: Mục đích, nghiệp vụ, xác định các

chức năng, mô tả dữ liệu, mô hình liên kết

thực thể, chuyển đổi sang mô hình quan hệ.

Demo cài đặt:

Tạo cơ sở dữ liệu, cấu trúc các bảng, ràng buộc

toàn vẹn trên cơ sở dữ liệu đề tài của nhóm

98

THẢO LUẬN

Thảo luận theo nhóm:Các nhóm trình bày:

Mô tả đề tài: Mục đích, nghiệp vụ, xác định các

chức năng, mô tả dữ liệu, mô hình liên kết

thực thể, chuyển đổi sang mô hình quan hệ.

Tạo cơ sở dữ liệu, cấu trúc các bảng, ràng buộc

toàn vẹn trên cơ sở dữ liệu đề tài của nhóm