Tải bản đầy đủ (.pdf) (97 trang)

Bài giảng hệ quản trị cơ sở dữ liệu ths nguyễn thị thúy loan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (998.79 KB, 97 trang )

1

Cách đánh giá

HỆ QUẢN TRỊ CSDL

 Thực hành: 30%
 Bài tập: 20%

ThS. Nguyễn Thị Thúy Loan

 Lý thuyết: 50%

Nguyễn Thị Thúy Loan

Tài liệu tham khảo
[1]. Bài giảng của Giảng viên khoa Công nghệ Thông tin.
[2]. Giáo trình SQL Server 200, Nguyễn Thiên Bằng chủ biên, NXB
Lao động – xã hội.
[3]. Lập trình SQL căn bản, Đoàn Thiện Ngân chủ biên, NXB Lao
động – xã hội.
[4]. Lập trình ứng dụng chuyên nghiệp SQL – Server 2000, Phạm
Hữu Khang chủ biên, NXB Lao động – xã hội

[5]. />
Trang 2

2/12/2011

Nội dung
 Tổng quan về SQL Server.


 Các đối tượng trong cơ sở dữ liệu.
 Lập trình với cơ sở dữ liệu.
 Store Procedure (thủ tục).
 Trigger & Function.
 Backup anh restore
Nguyễn Thị Thúy Loan

Trang 4

2/12/2011


2

NỘI DUNG

Chương I

TỔNG QUAN VỀ
SQL SERVER

 SQL Server là gì?
 Lịch sử phát triển.
 Mô hình Client/ Server
 Các thành phần của SQL Server.

ThS. Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan


Trang 6

2/12/2011

SQL Server là gì?

SQL Server là gì?

Phần mềm quản trị dữ liệu đáng tin cậy, có tính
mở cao.
 Dễ dàng xây dựng một CSDL quan hệ lớn.
 Giải quyết tình trạng va chạm giữa các user khi
cùng truy xuất một dữ liệu tại cùng một thời
điểm.
 Bảo đảm các RBTV trên CSDL.
 Bảo vệ an toàn dữ liệu.
 Truy vấn dữ liệu nhanh.
Nguyễn Thị Thúy Loan

Trang 8

2/12/2011


3

SQL Server là gì?

Các dịch vụ của SQL Server


 Hệ quản trị CSDL theo mô hình Client/ Server
có thể dễ dàng phát triển trên mô hình phân
tán.

 MSSQL Server: Xử lý các câu lệnh giao tác gởi
từ client và server.
 SQL Server Agent:
o Jobs: Các công việc có thể được lên kế hoạch để thực

 Được truy cập qua hai con đường chính.

thi tại một thời điểm chỉ định trước hay thực thi theo
các khoảng thời gian chu trình.

o Query Analyzer.

o Alerts: đưa ra các sự kiện xảy ra như: lỗi hay khi một

o Enterprise Manager.

CSDL đạt tới một giới hạn vì bộ nhớ trống sẵn không
còn đủ nữa.

Nguyễn Thị Thúy Loan

Trang 9

2/12/2011

Nguyễn Thị Thúy Loan


Các dịch vụ của SQL Server
 Microsoft

Distributed

Transaction

Trang 10

2/12/2011

NỘI DUNG
 SQL Server là gì?

Coordinator: Điều phối các giao tác phân tán,

 Lịch sử phát triển.

quản lý các giao tác, có trách nhiệm điều

 Mô hình Client/ Server

phối các giao tác của CSDL trên nhiều

 Các thành phần của SQL Server.

server.

Nguyễn Thị Thúy Loan


Trang 11

2/12/2011

Nguyễn Thị Thúy Loan

Trang 12

2/12/2011


4

Lịch sử phát triển

Lịch sử phát triển

 1970 IBM đưa ra ngôn ngữ truy vấn SEQUEL

 Nhưng sau đó IBM đưa ra phiên bản mới của
OS/2 gọi là OS/2 mở rộng, HĐH này sẽ mạnh

(Structured English Query Language)
 1975 IBM và Microsoft hợp tác xây dựng
HĐH OS/2 dựa theo hệ điều hành MS DOS
của Microsoft. Ngày 16/12/1987 HĐH OS/2
phiên bản 1.0 đã được chính thức phát hành.

hơn OS/2 phiên bản 1.0 bởi vì nó sẽ tích hợp

thêm một phần CSDL SQL của IBM (ngày nay
chính là HQTCSDL DB2)
 Microsoft hợp tác Sybase làm ra sản phẩm
thuộc loại HQTCSDL Ashton-Tate vào năm
1988 phát triển trên môi trường OS/2.

Nguyễn Thị Thúy Loan

Trang 13

2/12/2011

Nguyễn Thị Thúy Loan

Lịch sử phát triển

Trang 14

2/12/2011

NỘI DUNG

 Sau đó Sybase đã phát triển sản phẩm trên môi
trường UNIX và đổi tên riêng là DataServer mà
ngày nay có tên khác là Sybase Adaptive Server
 Microsoft quyết định không phát triển HĐH OS/2
mà thay vào đó cho ra đời một HĐH mạng máy

 SQL Server là gì?
 Lịch sử phát triển.

 Mô hình Client/ Server
 Các thành phần của SQL Server.

tính có tên là NT Server và thế là SQL Server chỉ
hoạt động độc lập trên môi trường Windows NT
Server mà thôi.
Nguyễn Thị Thúy Loan

Trang 15

2/12/2011

Nguyễn Thị Thúy Loan

Trang 16

2/12/2011


5

Mô hình Client/Server

Mô hình Client/Server

 Vì sao phát triển trên mô hình Client/Server
o Giảm chi phí
o Tốc độ nhanh
o Tương thích cao
 Mô hình Client/Sever: là kiến trúc gồm 2 thành

phần máy Client và máy Server, 2 thành phần
này liên lạc với nhau thông qua hệ thống mạng
Nguyễn Thị Thúy Loan

Trang 17

2/12/2011

Sử dụng giao tiếp lập trình
ứng dụng để truy xuất dữ
liệu
(APIApplication
Programming Interfece)

Thư viện mạng client sử
dụng 1 phương thức liên lạc
bên trong mạng để giao tiếp
với thư viện mạng của
server

Thư viện mạng của
server nhận gói dữ liệu
và trao chúng cho các
dịch vụ mở dữ liệu

Nguyễn Thị Thúy Loan

Trang 18

2/12/2011


Mô hình Client/Server

Mô hình Client/Server

Nhánh máy trạm (client)
 Đọc và hiển thị dữ liệu hiện có bên trong
CSDL, tính toán dữ liệu đang hiển thị trên màn
hình ứng dụng, in dữ liệu ra các kết xuất
 Các ngôn ngữ sử dụng bên máy khách thường
là: C++, C#, VB, Delphi…
 Các ứng dụng khi xây dựng bên nhánh máy
trạm nên tránh việc đọc tòan bộ dữ liệu của
bảng mà chỉ lấy đúng các thông tin cần thiết
khi xử lý.

Nhánh máy chủ (server)
 Các xử lý đảm bảo việc truy cập của các người
dùng trên mạng là bảo mật.
 Các xử lý liên quan đến việc thực hiện hoặc
cập nhật dữ liệu đồng thời cùng lúc giữa những
người dùng hiện hành trên mạng.
 Các xử lý sao lưu dữ liệu (backup data) tự
động để đảm bảo các dữ liệu không bị mất
trong trường hợp có các sự cố xấu nhất tình cờ
xảy ra.

Nguyễn Thị Thúy Loan

Trang 19


2/12/2011

Nguyễn Thị Thúy Loan

Trang 20

2/12/2011


6

NỘI DUNG

Các thành phần SQL Server

 SQL Server là gì?

 Client network Utility:

 Lịch sử phát triển.

công cụ dùng để thiết lập,

 Mô hình Client/ Server.

tham khảo các cấu hình

 Các thành phần của SQL Server.


mạng: giao thức truyền
cho client, các đường dẫn
tham khảo đến thư viện.

Nguyễn Thị Thúy Loan

Trang 21

2/12/2011

Nguyễn Thị Thúy Loan

Trang 22

2/12/2011

Các thành phần SQL Server

Các thành phần SQL Server

 Enterprise Manager (EM): là màn hình dùng

 Import and Export Data: công cụ hỗ trợ cho

để quản trị SQL Server. EM cung cấp cho người

phép dễ dàng thực hiện việc chuyển dữ liệu từ

quản trị chức năng để quản lý SQL bằng giao
diện đồ hoạ


ngoài vào SQL Server và SQL Server ra
 Query Analyzer: là công cụ cung cấp bởi

o Quản trị các database
o Tạo database và các thành phần bên trong
database

SQL Server, là trình soạn thảo và thực thi câu
lệnh SQL hay Stored Procedure.

o Đăng ký làm việc với SQL Server khác.
Nguyễn Thị Thúy Loan

Trang 23

2/12/2011

Nguyễn Thị Thúy Loan

Trang 24

2/12/2011


7

Các thành phần SQL Server
 Server Network Utility: công cụ dùng để thiết


Chương II

lập các cấu hình cho server và hiển thị các

CÁC ĐỐI TƯỢNG TRONG

thông tin đường dẫn tham chiếu thư viện làm

CƠ SỞ DỮ LIỆU

việc
 Server Manager: dùng để khởi động, tạm

ThS. Nguyễn Thị Thúy Loan

dừng, hoặc kết thúc các phục vụ của SQL
Server.
Nguyễn Thị Thúy Loan

Trang 25

2/12/2011

NỘI DUNG
 Cơ sở dữ liệu của SQL Server
 Bảng (Table)

Cơ sở dữ liệu của SQL
Server


 Bảng ảo (View)
 Mô hình quan hệ dữ liệu
 Kiểu dữ liệu do người dùng định nghĩa
 Quy tắc kiểm tra miền giá trị dữ liệu (rule)
 Giá trị mặc định.
Nguyễn Thị Thúy Loan

Trang 27

2/12/2011

Nguyễn Thị Thúy Loan

Trang 28

2/12/2011


8

Cơ sở dữ liệu của SQL Server

Cơ sở dữ liệu của SQL Server
Khi cài SQL Server xong, hệ thống sẽ tự động tạo
một vài CSDL mặc định:
 Master
 Model
 Tempdb
 Pubs
 Northwind

 Msdb
Xem các CSDL trong Query Analyzer:SP_helpdb

Nguyễn Thị Thúy Loan

Trang 29

2/12/2011

Các tập tin vật lý lưu trữ DL

Nguyễn Thị Thúy Loan

Trang 30

2/12/2011

Các tập tin vật lý lưu trữ DL

 Hai tập tin vật lý để lưu trữ dữ liệu:
o Lưu trữ dữ liệu (data file)
o Lưu trữ các giao tác mà người dùng đã thực
hiện (transaction log file)
 Các tập tin CSDL trong SQL Server được chia
thành 3 loại tập tin.
Nguyễn Thị Thúy Loan

Trang 31

2/12/2011


Nguyễn Thị Thúy Loan

Trang 32

2/12/2011


9

Các tập tin vật lý lưu trữ DL
 Tập tin dữ liệu chính (Primary Data File). Phần
mở rộng của tập tin này là *.mdf

Tạo mới cơ sở dữ liệu
Các thuộc tính CSDL trong SQL Server
 Tên CSDL (Database name): dài tối đa 128
ký tự, duy nhất trong SQL Server

 Tập tin thứ yếu (Secondary Data Files) (không

 Vị trí tập tin (File location): Thông thường

bắt buộc phải có khi tạo mới CSDL). Phần mở

tập tin này sẽ được lưu tại C:\Program
Files\Microsoft SQL Server\MSSQL\ Data

rộng của tập tin này là *.ndf
 Tập tin lưu trữ (Log Files). Phần mở rộng là

*.ldf
Nguyễn Thị Thúy Loan

 Tên tập tin (File name): là tên luận lý của mỗi
loại tập tin dữ liệu tương ứng mà hệ thống
SQL Server dùng để quản lý bên trong.

Trang 33

2/12/2011

Nguyễn Thị Thúy Loan

Trang 34

2/12/2011

Tạo mới cơ sở dữ liệu

Tạo mới cơ sở dữ liệu

 Kích thước ban đầu (Initial size): là kích

 Ví dụ: tạo CSDL có tên QLBH với kích thước

thước khởi tạo của tập tin dữ liệu khi CSDL

ban đầu là 50 MB, tự động tăng kích thước lên
10% khi dữ liệu đầy, kích thước tăng trưởng


mới được tạo lập.
 Tăng kích thước tập tin dữ liệu (File
growth)

vết với kích thước ban đầu lúc khởi tạo là
10MB, tự động tăng kích thước tập tin lên 5

 Kích thước tối đa tập tin dữ liệu (Maximun

MB khi dữ liệu bị đầy, kích thước tăng trưởng
tập tin không giới hạn.

file size)
Nguyễn Thị Thúy Loan

tập tin tối đa không quá 200MB. Và tập tin lưu

Trang 35

2/12/2011

Nguyễn Thị Thúy Loan

Trang 36

2/12/2011


10


Tạo mới cơ sở dữ liệu

Tạo mới cơ sở dữ liệu

 Cách 1: tạo trong Query Analyzer

 Cách 2: tạo trong Enterprise Manager

CREATE DATABASE QLBH
ON PRIMARY (NAME = QLBH,
FILENAME= ‘C:\Program Files\Microsoft SQL
Server\MSSQL.3\MSSQL\Data\ QLBH.mdf’,
SIZE=50MB, MAXSIZE = 200MB,
FILEGROWTH = 10%)
LOG ON(NAME = QLBH_Log,
FILENAME= ‘C:\Program Files\Microsoft SQL
Server\MSSQL.3\MSSQL\Data\ QLBH_Log.ldf',
SIZE=10MB, MAXSIZE = UNLIMITED,
FILEGROWTH = 5MB)
Nguyễn Thị Thúy Loan

Trang 37

2/12/2011

Nguyễn Thị Thúy Loan

Tạo mới cơ sở dữ liệu

Trang 38


2/12/2011

NỘI DUNG

Tên CSDL

 Cơ sở dữ liệu của SQL Server
 Bảng (Table)
 Bảng ảo (View)
 Mô hình quan hệ dữ liệu
 Kiểu dữ liệu do người dùng định nghĩa
 Quy tắc kiểm tra miền giá trị dữ liệu (rule)
Click
Nguyễn Thị Thúy Loan

Trang 39

 Giá trị mặc định.
2/12/2011

Nguyễn Thị Thúy Loan

Trang 40

2/12/2011


11


Bảng (Tables)

Bảng (Kiểu dữ liệu)

Dùng để lưu trữ các thông tin dữ liệu của những
đối tượng, thực thể trong thế giới thực vào máy
tính.

Kiểu dữ liệu

Kích thước

Miền giá trị dữ liệu lưu trữ

Số nguyên
Int

4 bytes

Từ -2,147,483,648 đến +2,147,483,648

Smallint

2 bytes

Từ -32,768 đến + 32,767

Tinyint

1 byte


Từ 0 đến 255

Bit

1 byte

0,1 hoặc Null

 Tên bảng (table name): dài tối đa 128 ký tự

Các kiểu dữ liệu dạng số thập phân

 Tên cột (column name)

Decimal,
Numeric

 Kiểu dữ liệu (Data type): quy định kiểu dữ

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

liệu mà cột sẽ lưu trữ bên trong bảng.
Nguyễn Thị Thúy Loan

Trang 41

2/12/2011

Bảng (Kiểu dữ liệu)

Kiểu dữ liệu

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

Các kiểu dữ liệu dạng chuỗi
Char

N bytes

Từ 1 đến 8,000 ký tự, độ dài cố định

Varchar

N bytes

Từ 1 đến 8,000 ký tự, độ dài biến đổi
Từ 1 đến 2,147,483,647 ký tự

Text

N bytes

Nchar

2* n bytes Unicode, từ 1 đến 4,000 ký tự, mỗi ký tự 2 bytes

Nvarchar

2* n bytes Từ -10^38 đến +10^38


Ntext

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

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

8 bytes

Từ 01/01/1753 đến 31/12/9999

smalldatetime 4 bytes

Từ 01/01/1900 đến 06/06/2079

17 byte

Từ -10^38 đến +10^38

Float

8 bytes

Từ -1.79E + 308 đến +1.79E + 308

Real

4 bytes

Từ -1.79E + 308 đến +1.79E + 308


Nguyễn Thị Thúy Loan

Trang 42

2/12/2011

Tạo cấu trúc bảng dữ liệu
 Tạo cấu trúc bảng đơn giản
CREATE TABLE <tên bảng> (
<tên cột 1>:

<kiểu dữ liệu 1> [NOT NULL],

<tên cột 2>:

<kiểu dữ liệu 2> [NOT NULL],

……………
<tên cột n>:

<kiểu dữ liệu n> [NOT NULL])

Các kiểu dữ liệu dạng chuỗi nhị phân
Image

N byte

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


Binary

N byte

Từ 1 đến 8,000

Nguyễn Thị Thúy Loan

Trang 44

2/12/2011


12

Tạo cấu trúc bảng dữ liệu

 Tạo cấu trúc bảng có giá trị mặc định
CREATE TABLE <tên bảng> (
<tên cột 1>:
<kiểu dữ liệu 1> Default
gia_trị|hàm,
<tên cột 2>:
<kiểu dữ liệu 2> [NOT NULL],
……………
<tên cột n>:
<kiểu dữ liệu n> [NOT NULL])

Ví dụ:
CREATE TABLE LOP(

Malop

char(6) NOT NULL,

TenLop

varchar(20) NOT NULL,

SiSo

smallInt NOT NULL)

Nguyễn Thị Thúy Loan

Trang 45

Tạo cấu trúc bảng dữ liệu

2/12/2011

Tạo cấu trúc bảng dữ liệu

Nguyễn Thị Thúy Loan

Trang 46

2/12/2011

Tạo cấu trúc bảng dữ liệu
 Tạo cấu trúc bảng có cột định danh


Ví dụ:
CREATE TABLE LOP(
Malop

char(6) NOT NULL,

TenLop

varchar(20) NOT NULL,

SiSo

smallInt Default 0)

CREATE TABLE <tên bảng> (
<tên cột 1>: <kiểu dữ liệu 1> Identity
[(số_bắt_đầu,chỉ_số_tăng)],
<tên cột 2>: <kiểu dữ liệu 2> [NOT NULL],
……………
<tên cột n>: <kiểu dữ liệu n> [NOT NULL])

Nguyễn Thị Thúy Loan

Trang 47

2/12/2011

Nguyễn Thị Thúy Loan


Trang 48

2/12/2011


13

Tạo cấu trúc bảng dữ liệu

Enterprise Manager
 Right-click Tables/ chọn New Table…

Ví dụ:
CREATE TABLE LOP(
Malop int

Tạo cấu trúc bảng dữ liệu

Identity(1000,5),

TenLop varchar(20) NOT NULL,
SiSo

smallInt NOT NULL)

Nguyễn Thị Thúy Loan

Trang 49

2/12/2011


Tạo cấu trúc bảng dữ liệu
 Tạo các cột.

Tên column

Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan

Trang 50

2/12/2011

Tạo cấu trúc bảng dữ liệu
 Đặt tên bảng

Kiểu DL

Trang 51

2/12/2011

Nguyễn Thị Thúy Loan

Trang 52

2/12/2011



14

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

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

Query Analyzer

Query Analyzer

 Thêm một cột mới vào bảng

 Hủy bỏ cột hiện có bên trong bảng

ALTER TABLE Tên_bảng

ALTER TABLE Tên_bảng

ADD Tên_cột kiểu_dữ_liệu

DROP COLUMN Tên_cột

Ví dụ:

Ví dụ:

ALTER TABLE LOP

ALTER TABLE LOP


ADD Nien_khoa int

DROP COLUMN Nien_khoa

Nguyễn Thị Thúy Loan

Trang 53

2/12/2011

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

2/12/2011

 Đổi tên cột, tên bảng dữ liệu
EXEC sp_rename ‘Tên_bảng[.tên_cột]’,
‘Tên_mới’ [, ‘COLUMN’]
Ví dụ 1: đổi tên cột Nien_khoa thành khoa_hoc
trong bảng LOP
EXEC sp_rename ‘LOP.nien_khoa’,
‘khoa_hoc’, ‘COLUMN’
Ví dụ 2: thay đổi tên LOP thành LOPHOC
EXEC sp_rename ‘LOP’, ‘LOPHOC’

 Sửa đổi kiểu dữ liệu của cột
ALTER TABLE Tên_bảng
alter column Tên_cột <kiểu_dữ_liệu_mới>
Ví dụ:
ALTER TABLE LOP
ALTER COLUMN Nien_khoa char(9)

Trang 55

Trang 54

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

Query Analyzer

Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan

2/12/2011

Nguyễn Thị Thúy Loan

Trang 56

2/12/2011


15

Tính toàn vẹn trong cơ sở DL

Tính toàn vẹn trong cơ sở DL

 Ràng buộc toàn vẹn (RBTV) dữ liệu thực sự là

Các Phương Pháp Ðảm Bảo Data Integrity

 Data Type
 Not Null Definitions
 Default Definitions
 Identity Properties
 Constraints
 Rules
 Triggers
 Indexes

việc đặc ra các quy tắc trong một cơ sở dữ liệu
nhằm kiểm tra các giá trị của dữ liệu trước khi
lưu trữ phải đảm bảo tính chính xác và hợp lý
bên trong một cơ sở dữ liệu.

Nguyễn Thị Thúy Loan

Trang 57

2/12/2011

Nguyễn Thị Thúy Loan

Trang 58

2/12/2011

Cách tạo các ràng buộc

Cách tạo các ràng buộc


 Primary Key Constraint
CREATE
TABLE LOP
(MaLop
INT PRIMARY KEY,
TenLop VARCHAR(30))
Hay
CREATE
TABLE LOP
(MaLop
INT,
TenLop VARCHAR(30),
CONSTRAINT MaLop_pk PRIMARY KEY
(MaLop))

 Primary Key Constraint
ALTER TABLE
<tên bảng> ADD
CONSTRAINT <tên RBTV> PRIMARY
KEY(thuộc tính khóa chính)
Ví dụ:
ALTER
TABLE
HOCVIEN
ADD
CONSTRAINT
MaHV_pk
PRIMARY
KEY(MaHV)
Chú ý: khi thêm khóa chính thì cột MaHV trong

bảng HOCVIEN buộc phải khác NULL

Nguyễn Thị Thúy Loan

Trang 59

2/12/2011

Nguyễn Thị Thúy Loan

Trang 60

2/12/2011


16

Add Primary Key

Cách tạo các ràng buộc

Enterprise Manager
 Right-click column of interest
 Set Primary Key

Unique Constraint
 Cách tạo ra Unique Constraint cũng tương tự
như Primary Key Constraint chỉ việc thay chữ
Primary Key thành Unique.
 Chỉ có một Primary Key Constraint trong một

table trong khi ta có thể có nhiều Unique
Constraint trên một table.

Nguyễn Thị Thúy Loan

Trang 61

2/12/2011

Nguyễn Thị Thúy Loan

Trang 62

2/12/2011

Cách tạo các ràng buộc

Cách tạo các ràng buộc

 Foreign Key Constraint
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
MaKh INT REFERENCES Khoa (MaKH))
Hay
CREATE TABLE LOP
(MaLop INT PRIMARY KEY,
MaKh INT,
CONSTRAINT MaKh_fk FOREIGN KEY
(MaKh) REFERENCES Khoa(MaKh))


 Foreign Key Constraint
ALTER TABLE <tên bảng> ADD
CONSTRAINT <tên RBTV> FOREIGN
KEY(các cột khóa ngoại) REFERENCES bảng> (các cột khóa chính)
Ví dụ:
ALTER TABLE LOP ADD CONSTRAINT
Makh_fk FOREIGN KEY(MaKh)
REFERENCES Khoa (MaKh)

Nguyễn Thị Thúy Loan

Trang 63

2/12/2011

Nguyễn Thị Thúy Loan

Trang 64

2/12/2011


17

Cách tạo các ràng buộc

Cách tạo các ràng buộc

 Check Constraint (ràng buộc miền giá trị)


 Check Constraint (ràng buộc miền giá trị)

CREATE TABLE LOP

CREATE TABLE LOP

(MaLop INT PRIMARY KEY,

(MaLop INT PRIMARY KEY,

TenLop VARCHAR(30),

TenLop

Siso

Siso

INT CHECK (Siso BETWEEN 1

AND 100))

VARCHAR(30),

INT,

CONSTRAINT

Siso_Ck


CHECK

(Siso

BETWEEN 1 AND 100))
Nguyễn Thị Thúy Loan

Trang 65

2/12/2011

Cách tạo các ràng buộc

Nguyễn Thị Thúy Loan

Trang 66

2/12/2011

Cách tạo các ràng buộc

 Check Constraint (ràng buộc miền giá trị)

 Check Constraint (ràng buộc miền giá trị)

Alter table <tenbang>

Alter table KhachHang


add constraint <tên constraint> check

Add constraint DT_Ck check (DT like

Ví dụ:

‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]’)

Alter table Lop
add constraint Siso_Ck check (Siso between 1 and
100)
Nguyễn Thị Thúy Loan

Alter table SanPham
Add constraint GiaBan_Ck check (GiaBan >0)

Trang 67

2/12/2011

Nguyễn Thị Thúy Loan

Trang 68

2/12/2011


18

NỘI DUNG


Khung nhìn (View)

 Cơ sở dữ liệu của SQL Server
 Đối tượng bên trong nó chỉ lưu trữ duy nhất

 Bảng (Table)

một câu lệnh SELECT

 Bảng ảo (View)

 Bảng ảo không hoàn toàn lưu trữ dữ liệu một

 Mô hình quan hệ dữ liệu

cách riêng rẽ.

 Kiểu dữ liệu do người dùng định nghĩa
 Quy tắc kiểm tra miền giá trị dữ liệu (rule)
 Giá trị mặc định.
Nguyễn Thị Thúy Loan

Trang 69

2/12/2011

Khung nhìn (View)

Trang 71


Trang 70

2/12/2011

Khung nhìn (View)

 Cú pháp:
CREATE VIEW
<Tên_Bang_ao> [(tên_các_cột)]
[WITH ENCRYPTION] //mã hóa câu lệnh
AS
Câu lệnh SELECT
[WITH CHECK OPTION]// ngăn cản các thao
tác cập nhật dữ liệu (thêm, sửa) tác động trực
tiếp vào bảng ảo không thỏa điều kiện trong
mệnh đề WHERE.
Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan

2/12/2011

 Một số từ khoá chuẩn không được dùng trong
VIEW:
ORDER BY
COMPUTE (thống kê dữ liệu cuối cùng)
COMPUTE BY (thống kê dữ liệu theo từng
nhóm)
SELECT INTO

Nguyễn Thị Thúy Loan

Trang 72

2/12/2011


19

Khung nhìn (View)

Khung nhìn (View)
Tạo bằng Enterprise Manager
 Bước 1:

 Ví dụ:
CREATE VIEW KQ_DAU AS
select kq.masv,tensv,mamh,diem
from sv,kq
where diem>7 and kq.masv=sv.masv
 Xem kết quả của View
Select * from <Tenview>
Nguyễn Thị Thúy Loan

Trang 73

2/12/2011

Khung nhìn (View)


Trang 75

Trang 74

Khung nhìn (View)
 Bước 3: lần lượt chọn các cột
như trong màn hình thiết kế

Tạo bằng Enterprise Manager
 Bước 2: Chọn các bảng

Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan

2/12/2011

2/12/2011


20

NỘI DUNG

Mô hình dữ liệu quan hệ
 Tạo các ràng buộc khóa ngoại một cách trực
quan hơn.
 Tạo mô hình quan hệ
o Bước 1:


 Cơ sở dữ liệu của SQL Server
 Bảng (Table)
 Bảng ảo (View)
 Mô hình quan hệ dữ liệu
 Kiểu dữ liệu do người dùng định nghĩa
 Quy tắc kiểm tra miền giá trị dữ liệu (rule)
 Giá trị mặc định.
Nguyễn Thị Thúy Loan

Trang 77

2/12/2011

Mô hình dữ liệu quan hệ
o Bước 2:

Nguyễn Thị Thúy Loan

Nguyễn Thị Thúy Loan

Trang 78

2/12/2011

Mô hình dữ liệu quan hệ
o Bước 3:

Trang 79

2/12/2011


Nguyễn Thị Thúy Loan

Trang 80

2/12/2011


21

NỘI DUNG

KDL do người dùng định nghĩa

 Cơ sở dữ liệu của SQL Server

 Mục đích đảm bảo cho cấu trúc dữ liệu bên

 Bảng (Table)

trong CSDL được nhất quán và dễ sửa đổi.

 Bảng ảo (View)

 Cú pháp:

 Mô hình quan hệ dữ liệu

EXEC


 Kiểu dữ liệu do người dùng định nghĩa

‘kiểu_dữ_liệu_cơ_sở’ [,NULL| NOT NULL]

sp_addtype Tên_kiểu_dl_mới,

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)
 Giá trị mặc định.
Nguyễn Thị Thúy Loan

Trang 81

2/12/2011

Nguyễn Thị Thúy Loan

KDL do người dùng định nghĩa
 Ví dụ:

Trang 82

2/12/2011

NỘI DUNG
 Cơ sở dữ liệu của SQL Server

exec sp_addtype dn_sl, ‘float’, ‘not null’

 Bảng (Table)


exec sp_addtype slg, ‘int’
 Khi tạo lập cấu trúc bảng KQ chúng ta có thể
sử dụng:

 Bảng ảo (View)
 Mô hình quan hệ dữ liệu

CREATE TABLE KQ

 Kiểu dữ liệu do người dùng định nghĩa

(MaSV nchar(10),

 Quy tắc kiểm tra miền giá trị dữ liệu (rule)

MaMH nchar(10),

 Giá trị mặc định.

Diem dn_sl)
Nguyễn Thị Thúy Loan

Trang 83

2/12/2011

Nguyễn Thị Thúy Loan

Trang 84


2/12/2011


22

Rules

Rules

 Kiểm tra các cột bên trong bảng phải thoả mãn

 Tên_quy_tắc: kiểm tra miền giá trị dữ liệu

điều kiện nào đó khi dữ liệu bị sửa đổi hoặc
thêm vào. Tính năng hoạt động của nó gần
giống như CHECK constraint

AS

o Tên biến hình thức (phải bắt đầu bằng @)

Tên_qui_tắc

o Toán tử so sánh

Biểu_thức

Nguyễn Thị Thúy Loan

Trang 85


 Biểu thức: biểu thức luận lý hoặc so sánh. Có
3 thành phần:

 Cú pháp (Query Analyzer)
CREATE RULE

được tạo mới.

o Giá trị so sánh
2/12/2011

Nguyễn Thị Thúy Loan

Trang 86

2/12/2011

Rules

Rules

 Ví dụ 1: Để tạo quy tắc kiểm tra miền giá trị

 Ví dụ 2: Để tạo quy tắc kiểm tra miền giá trị

dữ liệu cột điểm phải từ 0 đến 10.

dữ liệu cột đơn vị tính của vật tư chỉ thuộc
trong các từ: cái, bộ, kg, m2, m3.


CREATE RULE R_Diem

CREATE RULE

AS

rule_Dvtinh_Hople

AS

@Diem between 0 and 10

@Dvt IN (‘Cái’, ‘Bộ’, ‘Kg’, ‘m2’, ‘m3’)

Nguyễn Thị Thúy Loan

Trang 87

2/12/2011

Nguyễn Thị Thúy Loan

Trang 88

2/12/2011


23


Rules (áp dụng quy tắc KT)

Rules (áp dụng quy tắc KT)

 Cú pháp:
EXEC sp_bindrule

 Ví dụ 2: Áp dụng quy tắc kiểm tra có tên là

Tên_qui_tắc, Tên_đối_tượng

R_Diem cho kiểu dữ liệu mới có tên là dn_sl

 Ví dụ 1: Áp dụng quy tắc kiểm tra có tên

EXEC sp_bindrule R_Diem, ‘dn_sl’

R_Diem cho cột điểm trong bảng KQ.
EXEC sp_bindrule R_Diem, ‘KQ.Diem’

Nguyễn Thị Thúy Loan

Trang 89

2/12/2011

Nguyễn Thị Thúy Loan

Rules (gỡ bỏ quy tắc KT)
 Cú pháp:

EXEC sp_unbindrule Tên_đối_tượng
 Ví dụ
EXEC sp_unbindrule ‘dn_sl’

2/12/2011

Trang 90

Rules
 Enterprise Manager

Tên Rule

ND Rule

Nguyễn Thị Thúy Loan

Trang 91

2/12/2011

Nguyễn Thị Thúy Loan

Trang 92

2/12/2011


24


Rules
 Click vào
Properties.

mục

Bind

Nguyễn Thị Thúy Loan

Rules
Columns…

Trang 93

trong

2/12/2011

 Chọn những bảng và cột tương ứng để ràng
buộc.

Nguyễn Thị Thúy Loan

Rules

Trang 94

2/12/2011


NỘI DUNG

 Xóa rule
DROP Rule Tên_rule
 Ví dụ;
Drop Rule R_Diem
Drop Rule R_Siso

 Cơ sở dữ liệu của SQL Server
 Bảng (Table)
 Bảng ảo (View)
 Mô hình quan hệ dữ liệu
 Kiểu dữ liệu do người dùng định nghĩa
 Quy tắc kiểm tra miền giá trị dữ liệu (rule)
 Giá trị mặc định.

Nguyễn Thị Thúy Loan

Trang 95

2/12/2011

Nguyễn Thị Thúy Loan

Trang 96

2/12/2011


25


Giá trị mặc định (Default)

Giá trị mặc định (Default)

 Cú pháp:
CREATE
DEFAULT
tên_giá_trị_mặc_định
AS
Biểu_thức
Trong đó:
 Tên_giá_trị_mặc_định: tên giá trị mặc định
phải duy nhất trong CSDL.
 Biểu thức: là một giá trị cụ thể nào đó như số,
ngày, chuỗi hoặc một hàm, biểu thức tính
toán.

 Ví dụ: tạo giá trị mặc định cho các cột điểm là 0.

Nguyễn Thị Thúy Loan

Trang 97

2/12/2011

Giá trị mặc định (Default)

CREATE DEFAULT D_Diem
AS


‘0’

Nguyễn Thị Thúy Loan

Trang 98

2/12/2011

Giá trị mặc định (Default)

 Liên kết các giá trị mặc định vào dữ liệu

 Không liên kết các giá trị mặc định vào cột

 Cú pháp:

 Cú pháp:

EXEC sp_bindefault

Tên_mặc_định,

EXEC sp_unbindefault Tên_đối_tượng
 Ví dụ: Để hủy bỏ giá trị mặc định đã liên kết

Tên_đối_tượng
 Ví dụ: Để liên kết giá trị mặc định vừa tạo
D_Diem vào cột Diem có trong bảng KQ


cho cột Diem trong bảng KQ trước đó.
EXEC sp_unbindefault ‘KQ.Diem’

EXEC sp_bindefault D_Diem, ‘KQ.Diem’
Nguyễn Thị Thúy Loan

Trang 99

2/12/2011

Nguyễn Thị Thúy Loan

Trang 100

2/12/2011


×