Top Banner
Lý thuyết CSDL 1 GIÁO VIÊN: Đ Đ Th Th Mai Mai ng ng BMÔN : C C á á c c H H th th ng ng thông thông tin tin KHOA : Công Công ngh ngh thông thông tin tin Email : Email : [email protected] [email protected] SDLIU
90

CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Oct 31, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 1

GIÁO VIÊN: ĐĐỗỗ ThThịị Mai Mai HưHườờngngBỘ MÔN : CCáácc HHệệ ththốốngng thôngthông tin tin KHOA : CôngCông nghnghệệ thôngthông tintinEmail :Email : [email protected]@gmail.com

CƠ SỞ DỮ LIỆU

Page 2: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 2/111

CHƯƠNG 5

HỆ QUẢN TRỊ SQL SERVER

Page 3: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 3/111

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

Page 4: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 4/111

Giới thiệu SQL Server (1)

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

Page 5: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 5/111

Giới thiệu SQL Server (2)

• 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

Page 6: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 6/111

• 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

Giới thiệu SQL Server (3)

Page 7: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 7/111

• OLTP database: – 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

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 (4)

Page 8: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 8/111

Client-Server components (1)

Page 9: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 9/111

• Client-Server Architecture– Client đóng vai trò 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 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 (2)

Page 10: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 10/111

Client-Server Communication

Page 11: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 11/111

SQL Server Services (1)SQL Server Services (1)

Page 12: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 12/111

SQL Server Services (2)

• 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.

Page 13: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 13/111

SQL Server Services (3)

• 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ày đó đượ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 thời khoá để 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.

Page 14: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 14/111

SQL Server Services (4)

• 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 hoạt động như một dịch vụ trong Windows 2000.

Page 15: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 15/111

SQL Server tSQL Server tíích hch hợợp vp vớới ci cáác OSc OS

Page 16: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 16/111

SQL Server tSQL Server tíích hch hợợp vp vớớii……

Page 17: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 17/111

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

Page 18: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 18/111

CCáác loc loạại Database (1)i Database (1)

Page 19: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 19/111

Các loại Databases (2)• 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ữ cho việc xắp thời khoábiểu các công việc

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

• pubs: một database ví dụ để học• Northwind một database ví dụ để học• User1: một database do user tạo ra

Page 20: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 20/111

Database Objects (1)Database Objects (1)

Page 21: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 21/111

Database Objects (2)Database Objects (2)

Object Mô tảTable Bảng quan hệ chứa dữ liệuData type Kiểu dữ liệuConstraint Các qui tắc để kiểm tra ràng buộc dữ liệuDefault Các giá trị mặc định nếu giá trị của một field không được nhập

vàoRule Các thông tin mà định nghĩa các giá trị hợp lệ trong một field

Index Là một cấu trúc lưu trữ nhằm truy xuất nhanh dữ liệu

Page 22: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 22/111

Database Objects (3)Database Objects (3)

Object Mô tảView Là table ảo, đây là một cách để lấy dữ liệu từ các table hoặc các

view khác

User-defined function

Là các function do programmer định nghĩa

Stored procedure

Là các thủ tục do programmer định nghĩa

Trigger Là một dạng đắc biệt của procedure nhưng được thực hiện tự động khi user thay đổi dữ liệu trong table/view

Page 23: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 23/111

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

Page 24: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 24/111

System Tables (1)

• 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

Page 25: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 25/111

System tables (2)

Page 26: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 26/111

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

Page 27: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 27/111

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

System Stored Procedure

Page 28: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 28/111

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

Page 29: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 29/111

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

Page 30: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 30/111

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)– ….

Page 31: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 31/111

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

Page 32: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 32/111

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.

Page 33: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 33/111

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áclệnh thao tác với Dữ liệu

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áclệnh thao tác với Dữ liệu

Page 34: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 34/111

Xaây döïng CSDL trong SQL Server

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

Một CSDL do một hoặc nhiều người tạo nhưngcó thể được nhiều người truy cập

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

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

Một CSDL do một hoặc nhiều người tạo nhưngcó thể được nhiều người truy cập

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

Page 35: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 35/111

Xaây döïng CSDL trong SQL Server

Cấu trúc lưu trữ của một CSDL : Một CSDL trong SQL Server tối thiểu

sẽ dùng hai tập tin vật lý để lưu trữ dữliệu: Một dùng lưu trữ dữ liệu (Data

file) Một dùng để lưu trữ các vết giao

tác (Transaction log file)

CCấấuu trtrúúcc lưulưu trtrữữ ccủủaa mmộộtt CSDL : CSDL : MMộộtt CSDL CSDL trongtrong SQL Server SQL Server ttốốii thithiểểuu

ssẽẽ ddùùngng haihai ttậậpp tin tin vvậậtt lýlý đđểể lưulưu trtrữữ ddữữliliệệuu:: MMộộtt ddùùngng lưulưu trtrữữ ddữữ liliệệuu (Data (Data

file) file) MMộộtt ddùùngng đđểể lưulưu trtrữữ ccáácc vvếếtt giaogiao

ttáácc (Transaction log file)(Transaction log file)

Page 36: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 36/111

Xaây döïng moät CSDL trong SQL Server

Thường được tổ chức lưu trữ trong 3 tập tin :

Thường được tổ chức lưu trữ trong 3 tập tin :

CSDL

Primary DataFile(*.MDF)

Secondary Data Fie(*.NDF)

Log file(*.LDF)

Data Files Log Files

Page 37: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 37/111

Xaây döïng moät CSDL trong SQL Server

Tạo mới một CSDL trongSQL Server

Cách 1: Sử dụngtiện íchEnterPriseManager:Click chuộc phảivào đối tượngDatabases chọn New Database

Tạo mới một CSDL trongSQL Server

Cách 1: Sử dụngtiện íchEnterPriseManager:Click chuộc phảivào đối tượngDatabases chọn New Database

Page 38: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 38/111

Xaây döïng CSDL trong SQL Server

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

Nhập tênCSDL

Page 39: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 39/111

Xaây döïng CSDL trong SQL Server

• Chọn Tab Data Files:– Filename :Tên tập tin Data

Files – Location: Vị trí lưu trữ– Initial size(Mb) :Kích thước

ban đầu– Automatically grow file: Tự

độngtăng kích thước

• In megabytes : tăng baonhiêu mB

• By percent :Tăng theophần trăm

– Maximun file size : kích

Page 40: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 40/111

Xaây döïng CSDL trong SQL Server

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

CREATE DATABASE QLBANHANGON PRIMARY( NAME= QLBANHANG_DATA,FILENAME=’C:\MSSQL\DATA\ QLBANHANG_DATA.MDF’,SIZE=50MB,MAXSIZE=200MB,FILEGROWTH=10%)LOG ON(NAME= QLBANHANG_LOG,FILENAME=’C:\MSSQL\DATA\ QLBANHANG_LOG.LDF’,SIZE=10MB,MAXSIZE=UNLIMITED,FILEGROWTH=5MB)

Page 41: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 41/111

Xaây döïng CSDL trong SQL Server

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

từ -3.40E+38 đến +3.40E+384 bytesRealtừ -1.79E+308 đến +1.79E+3088 bytesFloat

> Các kiểu dữ liệu dạng số thực

từ -10^38 đến +10^3817bytesDecimal, Numeric

> Các kiểu dữ liệu dạng số thập phân0, 1 hoặc Null1 byteBittừ 0 đến 2551 byteTinyInttừ -32768 đến +327672 bytesSmallInttừ-2,147,483,648đến +2,147,483,647

4 bytesInt> Các kiểu dữ liệu dạng số nguyên

Miền giá trị dữ liệu lưu trữKíchthước

Kiểu dữ liệu

Page 42: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 42/111

Xaây döïng CSDL trong SQL Server

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

từ 1 đến 1,073,741,823 ký tự, mỗi kýtự là 2 bytes

2*N bytes

NText

từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes

2*N bytes

NVarChar

từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes

2*N bytes

NChar> Các kiểu dữ liệu dạng chuỗi dùng font chữ Unicode

từ 1 đến 2,147,483,647 ký tự, mỗiký tự là 1 byte

N bytesText

từ 1 đến 8000 ký tự, mỗi ký tự là 1 byte

N bytesVarChar> Các kiểu dữ liệu dạng chuỗi có độ dài biến đổi

từ 1 đến 8000 ký tự, mỗi ký tự làmột byte

N bytesChar

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

Page 43: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 43/111

Xaây döïng CSDL trong SQL Server

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

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

N bytesImagetừ 1 đến 8000 bytesN bytesVarBinarytừ 1 đến 8000 bytesN bytesBinary

> Các kiểu dữ liệu dạng chuỗi nhị phân (Binary String)

từ01/01/1900đến06/06/20794 bytesSmallDateTimetừ01/01/1753đến31/12/99998 bytesDateTime

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

từ -214,748.3648 đến + 214,748.36474 bytesSmallMoney

từ -922,337,203,685,477.5808 đến+922,337,203,685,477.5807

8 bytesMoney

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

Page 44: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 44/111

Xaây döïng CSDL trong SQL Server

• 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 trong phạm vi của người đãtạo ra nó trong một CSDL

– Tên cột (Column Name): là tên của các cột bêntrong bảng, tên của các cột bên trong bảng phải duynhấ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.

Page 45: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 45/111

Xaây döïng CSDL trong SQL Server

– Độ 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ệudạ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ữ.

Page 46: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 46/111

Xaây döïng CSDL trong SQL Server

– Cột định danh (Identity): Giá trị của cột định danhlà 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 :Số đầu tiên

• Thuộc tính Identity Increment :giá trị tăng

Page 47: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 47/111

Xaây döïng CSDL trong SQL Server

– Cho phép để trống dữ liệu (Allow Null): qui định dữ liệu có thể đượcphé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àocột dữ liệu khi người sử dụng thêmmới một mẫu tin nhưng lại để trốnggiá trị tại cột dữ liệu đó.

Page 48: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 48/111

Xaây döïng CSDL trong SQL Server

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

Enterprise Manager

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

Page 49: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 49/111

Xaây döïng CSDL trong SQL Server

• Màn hình sau xuất hiện :Nhập tên bảng,nhấp OK

• Màn hình thiết kế bảng xuất hiện:nhập thông tin và chọn cột làmkhoá chính

Page 50: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 50/111Lý 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– …

Page 51: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 51/111

Kiểu dữ liệu

• Số (numeric)– INTEGER– SMALLINT– NUMERIC– DECIMAL– REAL– DOUBLE PRECISION– FLOAT

Page 52: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 52/11152

Kiểu dữ liệu (tt)

• Chuỗi ký tự (character string)– CHARACTER, CHARACTER(n)

• Chuỗi bit (bit string)– BIT, BIT(x)

• Ngày giờ (datetime)– DATE gồm ngày, tháng và năm– TIME gồm giờ, phút và giây– TIMESTAMP gồm ngày và giờ

Page 53: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 53/11153

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>]

)

Page 54: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 54/111

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, PHONG)– PHONGBAN(MAPHONG, TENPHONG, TRPHONG,

NG_NHANCHUC)– DEAN(MADA, TENDA, DD_DA, PHONG)– THANNHAN(MANV, TEN_TN, NS, GT, QUANHE)– NV_DEAN(MANV, MADA, SOGIO)– PHONGBAN_DD(MAPB, DD)

Page 55: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 55/111

Ví dụ - Tạo bảng

CREATE TABLE NHANVIEN (

MANV CHAR(9),

HODEM VARCHAR(30),

TENNV VARCHAR(10),

NS DATETIME,

DCHI VARCHAR(50),

GT CHAR(3),

LUONG INT,

MA_NQL CHAR(9),

PHONG INT

)

Page 56: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 56/111

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>

Page 57: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 57/11157

Ví dụ - RBTV

CREATE TABLE NHANVIEN (

HODEM VARCHAR(30) NOT NULL,

TENNV VARCHAR(10) NOT NULL,

MANV CHAR(9) PRIMARY KEY,

NS DATETIME,

DCHI VARCHAR(50),

GT CHAR(3) CHECK (GT IN (‘Nam’, ‘Nu’)),

LUONG INT DEFAULT (10000),

MA_NQL CHAR(9),

PHONG INT

)

Page 58: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 58/111

Ví dụ - RBTV

CREATE TABLE PHONGBAN (

TENPB VARCHAR(20) UNIQUE,

MAPHONG INT NOT NULL,

TRPHONG CHAR(9),

NG_NHANCHUC DATETIME DEFAULT (GETDATE())

)

CREATE TABLE PHANCONG (

MA_NVIEN CHAR(9) FOREIGN KEY (MA_NVIEN)

REFERENCES NHANVIEN(MANV),

SODA INT REFERENCES DEAN(MADA),

THOIGIAN DECIMAL(3,1)

)

Page 59: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 59/111

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

CREATE TABLE NHANVIEN (

HODEM VARCHAR(30) CONSTRAINT NV_HODEM_NN NOT NULL,

TENNV VARCHAR(10) NOT NULL,

MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,

NS DATETIME,

DCHI VARCHAR(50),

GT CHAR(3) CONSTRAINT NV_GT_CHK

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

LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (1000000),

MA_NQL CHAR(9),

PHONG INT

)

Page 60: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 60/111

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

CREATE TABLE PHANCONG (

MA_NVIEN CHAR(9),

SODA INT,

THOIGIAN DECIMAL(3,1),

CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY (MA_NVIEN, SODA),

CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN)

REFERENCES NHANVIEN(MANV),

CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA)

REFERENCES DEAN(MADA)

)

Page 61: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 61/111Lý thuyết CSDL 61

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_bảng> ADD COLUMN<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]

ALTER TABLE <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 62: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 62/111Lý 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 <Tên_RBTV>

Page 63: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 63/111Lý 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 NGHENGHIEP

ALTER TABLE NHANVIEN ALTER COLUMN

NGHENGHIEP CHAR(50)

Page 64: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 64/111Lý 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 PRIMARY KEY (MAPHONG),

CONSTRAINT PB_TRPHONG FOREIGN KEY (TRPHONG)

REFERENCES NHANVIEN(MANV),

CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE())

FOR (NG_NHANCHUC),

CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB)

Page 65: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 65/111Lý 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

Page 66: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 66/111Lý thuyết CSDL

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

NHANVIEN

TENNVHONV TENDEM MANV NS DCHI GT LUONG

MA_NQL PHONG

PHONGBAN

TRPHONG

TENPHG MAPHONG

NG_NHANCHUC

Page 67: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 67/111

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> AS <Kiểu_dữ_liệu>

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

CREATE DOMAIN Kieu_Ten AS VARCHAR(30)

CREATE TYPE Kieu_Ten FROM VARCHAR(30) not null

Page 68: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 68/111

Detach and Reattach the Database in Transact-SQL

use master--DetachEXEC sp_detach_db 'Asset5'Go--AttachEXEC sp_attach_db @dbname = 'Asset5',

@filename1 = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\mssql\data\Asset5.mdf',

@filename2 = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\mssql\data\Asset5_log.ldf‘

Nếu CSDL còn có nhiều file khác thì chúng ta thêm vào các @filename3, @filename4,…

Page 69: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 69/111

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).

Page 70: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 70/111

Attach and Detach in Management Studio

• Xuất hiện lỗi sau khi attach hoặc restore một CSDL được lấy từ một server khác.– Cannot add diagram to SQL Server 2005 DB: Database diagram

support objects cannot be installed because this database does not have a valid owner .

• Sửa lỗi này:– EXEC sp_dbcmptlevel 'dbname', '90';

– ALTER AUTHORIZATION ON DATABASE::dbname TO valid_login

• Ví dụ– EXEC sp_dbcmptlevel 'Northwind', '90';– ALTER AUTHORIZATION ON DATABASE::Northwind TO "HUNG-CNPM\ManhHung“

• 60 = SQL Server 6.0; 65 = SQL Server 6.5 • 70 = SQL Server 7.0; 80 = SQL Server 2000 • 90 = SQL Server 2005

Page 71: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 71/111

Vấn đề tiềm ẩn trong việc triển khai CSDL

• Khi triển khai CSDL như trên sẽ không đảm bảo được liên kết giữa server logins and database users.

• Vì:– Server logins được lưu trữ trong CSDL Master, Database

users được lưu trữ trong từng CSDL.– Các Database users sẽ được attach theo CSDL, nhưng các

Database users này lại liên kết đến server logins trên server cũ. => Lỗi.

• Giải pháp:– Sử dụng sp_change_users_login

Page 72: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 72/111

Thủ tục sp_change_users_login Cú pháp: sp_change_users_login [ @Action = ] 'action'

[ , [ @UserNamePattern = ] 'user' ] [ , [ @LoginName = ] 'login' ] [ , [ @Password = ] 'password' ]

Action Value Description

Auto_Fix

Links a user entry in the sysusers table in the current database to a SQL Server login of the same name. If a login with the same name does not exist, one will be created.

Nếu login không tồn tại thì bạn phải chỉ định cả user and password.Nếu login đã có thì phải chỉ định user và không được chỉ định password.login phải là NULL, user phải đúng là có trong CSDL, login phải chưa được mapped

đến một user nào khác.

Report Liệt kê danh sách các user trong CSDL hiện thời không có liên kết đến server logins. Khi đó các tham số: user, login, and password must be NULL or not specified.

Update_One Liên kết user đến một server login. Khi đó: user and login must be specified. password must be NULL or not specified.

Page 73: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 73/111

Thủ tục sp_change_users_login

• Hiển thị tất cả các user không có liên kết đến server logins của CSDL hiện thời:exec sp_change_users_login @Action = 'Report'

• Liên kết user chỉ định trong @UserNamePattern đến một server login:exec sp_change_users_login @Action = 'Update_one',

@UserNamePattern = 'test',@LoginName = 'hung‘

--login chưa có phải chỉ định cả user and password.

exec sp_change_users_login @Action = 'Auto_Fix',@UserNamePattern = 'nsunderic' ,@password = 'myl.password'

Page 74: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 74/111

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

Page 75: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 75/111

Page 76: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 76/111

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

Page 77: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 77/111

Access Levels

Page 78: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 78/111

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 lọai: chữ thường a-z, chữ hoa A-Z, chữ 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ự)

Page 79: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 79/111

Thêm NSD mới bằng T-SQLCREATE 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

Page 80: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 80/111

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

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

WindowsCREATE LOGIN [HUNG-CNPM\ManhHung] FROM

WINDOWS;

Page 81: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 81/111

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 đó

Page 82: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 82/111

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 ]

Ví dụ:

Page 83: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 83/111

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 ]

Page 84: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 84/111

Grants permissions on a server

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

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

Page 85: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 85/111

Revokes permissions on a schema

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

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

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

- user sa -> usr1 (WITH GRANT OPTION )->usr2- 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

Page 86: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 86/111

Removes server-level GRANT and DENY permissions

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

Page 87: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 87/111

Revokes permissions on objectsREVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON

[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]

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

Page 88: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 88/111

Deny• Denies permissions on a server:

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

– DENY permission [ ,...n ] } ON SCHEMA :: schema_name TO database_principal [ ,...n ] [ CASCADE ]

• Denies permissions on objects:– DENY <permission> [ ,...n ] ON [ OBJECT :: ][ schema_name ].

object_name [ ( column [ ,...n ] ) ] TO <database_principal> [ ,...n ] [ CASCADE ]

Page 89: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 89/111

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 loại xác thực trong SQL Server?

Page 90: CƠ SỞDỮLIỆU - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Chuong5_HequantriSQLServer.pdf · Lý thuyết CSDL 5/111 Giới thiệu SQL Server (2) • Thực hiện các transaction

Lý thuyết CSDL 90/111

THẢO LUẬN

Thảo luận theo nhóm:Các nhóm trình bày chi tiết cách 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