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

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

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 (1.57 MB, 76 trang )

TRƢỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----

BÀI GIẢNG
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

TÊN HỌC PHẦN

: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

MÃ HỌC PHẦN

: 17402

TRÌNH ĐỘ ĐÀO TẠO

: ĐẠI HỌC CHÍNH QUY

DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN

HẢI PHÒNG - 2011


2
MỤC LỤC
Chương I. Giới thiệu ................................................................................................................ 8
1.1. Giới thiệu về hệ quản trị. .............................................................................................. 8
1.2. Tổng quan SQL Server 2005 ...................................................................................... 10
1.3. Giới thiệu SQL Management Tool ............................................................................. 10


1.4. Ngôn ngữ vấn tin có cấu trúc ...................................................................................... 11
Chương II. Tạo và quản lý cơ sở dữ liệu ............................................................................... 12
2.1. Các tệp tin cơ sở dữ liệu (Database files) ................................................................... 12
2.2. Tạo cơ sở dữ liệu (Database) ...................................................................................... 12
2.3. Sửa cơ sở dữ liệu ......................................................................................................... 14
2.4. Xóa cơ sở dữ liệu ........................................................................................................ 15
2.5. Các system database đặc biệt ...................................................................................... 16
Chương III. Tạo và quản lý các bảng .................................................................................... 18
3.1. Tạo bảng (CREATE TABLE) .................................................................................... 18
3.2. Định nghĩa các cột (Columns) .................................................................................... 19
3.3. Định nghĩa các ràng buộc (Constrains)....................................................................... 20
3.4. Sửa bảng (ALTER TABLE) ....................................................................................... 21
3.5. Xóa bảng (DROP TABLE) ......................................................................................... 22
3.6. Thêm bản ghi mới (INSERT) ..................................................................................... 23
3.7. Cập nhật bản ghi (UPDATE) ...................................................................................... 25
3.8. Xóa bản ghi (DELETE) .............................................................................................. 25
Chương IV. Truy vấn dữ liệu................................................................................................. 27
4.1. Truy vấn cơ bản .......................................................................................................... 27
4.2. Sử dụng biểu thức và hàm .......................................................................................... 30
4.3. Truy vấn từ nhiều bảng ............................................................................................... 33
4.4. Truy vấn lồng nhau ..................................................................................................... 37
Chương V. Tạo và quản lý các chỉ mục ................................................................................. 40
5.1. Các kiểu chỉ mục (Indexes) ........................................................................................ 40
5.2. Tạo các chỉ mục .......................................................................................................... 40
5.3. Quản lý và gỡ bỏ các chỉ mục ..................................................................................... 42


3
Chương VI. Tạo và quản lý khung nhìn ................................................................................ 45
6.1. Định nghĩa ................................................................................................................... 45

6.2.Mục đích sử dụng: ....................................................................................................... 45
6.3. Tạo các khung nhìn (Views) ....................................................................................... 46
6.4. Quản lý các khung nhìn .............................................................................................. 47
Chương VII. Tạo và quản lý các thủ tục thường trú .............................................................. 50
7.1. Giới thiệu. ................................................................................................................... 50
7.2. Tạo các thủ tục thường trú. ......................................................................................... 51
7.3. Thực thi thủ tục thường trú. ........................................................................................ 51
7.4. Quản lý các thủ tục thường trú.................................................................................... 52
7.5. Tham số vào và ra. ...................................................................................................... 53
7.6. Thủ tục thường trú hệ thống. ...................................................................................... 54
Chương VIII. Tạo và quản lý hàm người dùng định nghĩa ................................................... 56
8.1. Các kiểu hàm người dùng định nghĩa (User-defined functions)................................. 56
8.2. Tạo hàm người dùng định nghĩa ................................................................................. 56
8.3. Quản lý hàm người dùng định nghĩa .......................................................................... 57
Chương IX. Tạo và quản lý các Trigger ................................................................................ 60
9.1. Tạo các Trigger thao tác dữ liệu (DML Triggers) ...................................................... 60
9.2. DDL Trigger và DML Trigger.................................................................................... 62
9.3. Sử dụng các Trigger lồng nhau (Nested Triggers) ..................................................... 63
9.4. Sử dụng các Trigger đệ quy: ....................................................................................... 64


4
Tên học phần: Hệ quản trị Cơ sở dữ liệu

Loại học phần: 4

Bộ môn phụ trách giảng dạy: Hệ thống Thông tin

Khoa phụ trách: CNTT.


Mã học phần: 17402
Tổng
tiết
90

số Lý thuyết
45

Tổng số TC: 4
Thực hành/ Xemina

Tự học

Bài tập lớn

Đồ án
học

30

0



không

môn

Học phần học trƣớc: Không yêu cầu.
Học phần tiên quyết: Không yêu cầu.

Học phần song song: Không yêu cầu.
Mục tiêu của học phần:
Cung cấp cho sinh viên những kiến thức cơ bản về hệ quản trị cơ sở dữ liệu; Các chức năng
và công cụ cần thiết để quản trị cơ sở dữ liệu cho người phát triển hệ thống.
Nội dung chủ yếu:
Giới thiệu về hệ quản trị cơ sở dữ liệu; Tạo và quản lý cơ sở dữ liệu; Tạo và quản lý các
bảng; Truy vấn dữ liệu; Tạo và quản lý các chỉ mục; Tạo và quản lý các khung nhìn; Tạo và
quản lý các thủ tục thường trú; Tạo và quản lý các hàm người dùng định nghĩa; Tạo và quản
lý các Trigger.
Nội dung chi tiết:
PHÂN PHỐI SỐ TIẾT
TÊN CHƢƠNG MỤC

TS

LT

Chƣơng 1. Giới thiệu

5

3

2

10

6

4


BT

TH

1.1. Hệ quản trị cơ sở dữ liệu Microsoft SQL Server
(2005)
1.2. Các thành phần cơ bản trong Microsoft SQL Server
(2005)
1.3. Ngôn ngữ truy vấn dữ liệu có cấu trúc (SQL)
Chƣơng 2. Tạo và quản lý cơ sở dữ liệu
2.1. Các tệp tin cơ sở dữ liệu (Database files)
2.2. Tạo cơ sở dữ liệu (Database)
2.3. Quản lý cơ sở dữ liệu
2.4. Xóa cơ sở dữ liệu

KT


5
PHÂN PHỐI SỐ TIẾT
TÊN CHƢƠNG MỤC

TS

LT

Chƣơng 3. Tạo và quản lý các bảng

15


9

6

20

12

8

5

3

2

5

3

2

BT

TH

3.1. Tạo bảng (Tables)
3.2. Định nghĩa các cột (Columns)
3.3. Định nghĩa các ràng buộc (Constrains)

3.4. Sửa bảng (ALTER TABLE)
3.5. Xóa bảng (DROP TABLE)
3.6. Thêm bản ghi mới (INSERT)
3.7. Cập nhật bản ghi (UPDATE)
3.8. Xóa bản ghi (DELETE)
Chƣơng 4. Truy vấn dữ liệu
4.1. Truy vấn cơ bản
4.1.1. Mệnh đề SELECT
4.1.2. Mệnh đề FROM
4.1.3. Mệnh đề WHERE
4.1.4. Mệnh đề GROUP BY và HAVING
4.1.5. Mệnh đề ORDER BY
4.1.6. Kết hợp kết quả từ nhiều truy vấn khác nhau
4.2. Truy vấn từ nhiều bảng
4.2.1. Inner Joins
4.2.2. Outer Joins
4.3. Truy vấn lồng nhau (Subqueries)
Chƣơng 5. Tạo và quản lý các chỉ mục
5.1. Các kiểu chỉ mục (Indexes)
5.2. Tạo các chỉ mục
5.3. Quản lý các chỉ mục
5.4. Xóa các chỉ mục
Chƣơng 6. Tạo và quản lý khung nhìn
6.1. Định nghĩa

KT


6
PHÂN PHỐI SỐ TIẾT

TÊN CHƢƠNG MỤC

TS

LT

BT

TH

5

3

2

5

3

2

5

3

2

KT


6.2. Tạo các khung nhìn (Views)
6.3. Quản lý các khung nhìn
6.4. Xóa các khung nhìn
Chƣơng 7. Tạo và quản lý các thủ tục thƣờng trú
7.1. Tạo các thủ tục thường trú (Stored procedures)
7.2. Thực thi các thủ tục thường trú
7.3. Xem và sửa các thủ tục thường trú
7.4. Tham số vào và ra (Parameters)
7.5. Các thủ tục thường trú của hệ thống
Chƣơng 8. Tạo và quản lý hàm ngƣời dùng định nghĩa
8.1. Các kiểu hàm người dùng định nghĩa (User-defined
functions)
8.2. Tạo hàm người dùng định nghĩa
8.3. Quản lý hàm người dùng định nghĩa
Chƣơng 9. Tạo và quản lý các Trigger
9.1. Tạo các Trigger thao tác dữ liệu (DML Triggers)
9.2. Tạo các Trigger định nghĩa dữ liệu (DDL Triggers)
9.3. Sử dụng các Trigger lồng nhau (Nested Triggers)
9.4. Sử dụng các Trigger đệ quy (Recursive Triggers)
Nhiệm vụ của sinh viên:
Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi
giữa học phần và bài thi kết thúc học phần theo đúng quy định.
Tài liệu học tập:
Dương Quang Thiện, SQL Server 2000: Lập trình T - SQL, NXB Văn hóa Sài Gòn, 2007.
Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T.Silverstein, Microsoft SQL Server 2005
Unleashed, Sams Publishing, 2007.
Brian Knightet al, Professional SQL Server 2005 Administration, Wrox Press, 2007.
Paul Turley & Dan Wood, Beginning Transact-SQL with SQL Server 2000 and 2005, Wrox
Press, 2006.
Hình thức và tiêu chuẩn đánh giá sinh viên:



7
Hình thức thi: thi viết hoặc vấn đáp.
Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi
học lý thuyết và thực hành, kết quả làm các bài tập được giao, kết quả của các bài thi giữa
học phần và bài thi kết thúc học phần.
Thang điểm: Thang điểm chữ A, B, C, D, F.
Điểm đánh giá học phần: Z = 0,4X + 0,6Y.

Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin, Khoa
Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên.

Ngày phê duyệt:

Trƣởng Bộ môn

/

/


8
Chƣơng I. Giới thiệu
1.1. Giới thiệu về hệ quản trị.
1.1.1. CSDL quan hệ là gì?
 Dữ liệu có thể được hiểu như mọi thông tin nói chung.
 Tập hợp các dữ liệu liên quan với nhau được tổ chức thành CSDL.
 Các mô hình CSDL:



Mô hình dữ liệu file: dữ liệu được lưu trữ 1 cách rời rạc trên các file. Thường dùng
cho các mô hình đơn giản chỉ có 1 bảng hay 1 file.



Mô hình phân cấp: dữ liệu được tổ chức liên kết vật lý theo mô hình cây (quan hệ nút
cha nút con). 1 bản ghi cha có quyền có nhiều bản ghi con nhưng 1 bản ghi con chỉ
có duy nhất 1 bản ghi cha



Mô hình mạng: Mô hình này tương tự mô hình phân cấp. Mô hình phân cấp là 1
trường hợp đặc biệt của mô hình mạng. Trong mô hình mạng dữ liệu được tổ chức
liên kết vật lý theo dạng tập hợp. 1 bản ghi cha có quyền có nhiều bản ghi con và 1
bản ghi con có quyền có nhiều bản ghi cha.



Mô hình quan hệ. Mô hình quan hệ là mô hình dữ liệu được tổ chức dựa trên mô hình
của đại số quan hệ. Trong đó, dữ liệu được tổ chức thành các bảng dữ liệu. Mỗi bảng
dữ liệu gồm có các cột hay còn gọi là các trường và các dòng hay còn gọi là các bản
ghi. Mối liên hệ giữa các bản ghi được tổ chức theo dạng logic thông qua các cột giá
trị chung.

 Cơ sở dữ liệu quan hệ là cơ sở dữ liệu được tổ chức theo mô hình quan hệ.
1.1.2. Hệ quản trị CSDL quan hệ là gì?
 Hệ quản trị CSDL là một hệ thống bao gồm các CSDL và phần mềm cho phép tạo
lập CSDL và điều khiển mọi truy nhập đối với CSDL đó.
 Hệ quản trị CSDL quan hệ là hệ quản trị CSDL dùng để quản lý CSDL quan hệ.

1.1.3. Các khả năng của hệ quản trị CSDL:
 Khả năng quản lý dữ liệu tồn tại lâu dài: đặc điểm này chỉ ra rằng có một cơ sở dữ
liệu tồn tại trong một thời gian dài, nội dung của cơ sở dữ liệu này là các dữ liệu mà
hệ quản trị CSDL truy nhập và quản lý.
 Khả năng truy nhập các khối lượng dữ liệu lớn một cách hiệu quả.
 Hỗ trợ ít nhất một mô hình dữ liệu hay một sự trừu tượng toán học mà qua đó người
sử dụng có thể quan sát dữ liệu.
 Đảm bảo tính độc lập dữ liệu hay tính bất biến của chương trình ứng dụng đối với
các thay đổi về cấu trúc trong mô hình dữ liệu.


9
 Hỗ trợ các ngôn ngữ cao cấp nhất định cho phép người dùng định nghĩa cấu trúc dữ
liệu, truy cập và thao tác dữ liệu.
 Quản lý giao dịch, có nghĩa là khả năng cung cấp các truy nhập đồng thời đúng đắn
với CSDL từ nhiều người sử dụng tại cùng một thời điểm.
 Điều khiển truy nhập, có nghĩa khả năng hạn chế truy nhập đến các dữ liệu bởi các
người dùng không được cấp phép và khả năng kiểm tra tính đúng đắn của CSDL.
 Phục hồi dữ liệu, có nghĩa khả năng khôi phục không làm mất mát dữ liệu với các lỗi
hệ thống.
1.1.4. Sơ đồ tổng quát của một hệ quản trị CSDL

1.1.5. Hoạt động của hệ quản trị CSDL


10
1.2. Tổng quan SQL Server 2005
 Microsoft SQL Server 2005 là một hệ quản trị cơ sở dữ liệu quan hệ (Relation
Database Management System - RDBMS), cung cấp cách tổ chức dữ liệu bằng cách
lưu chúng vào các bảng. Dữ liệu quan hệ được lưu trữ trong các bảng và các quan hệ

đó được định nghĩa giữa các bảng với nhau.
 Một số tính năng mới được đưa ra trong phiên bản này như dịch vụ thông báo, dịch
vụ, dịch vụ báo cáo, môi giới dịch vụ, sự cải tiến database engine.
 Các phiên bản của Microsoft SQL Server 2005


SQL Server 2005 Enterprise Edition.



SQL Server 2005 Standard Edition.



SQL Server 2005 Workgroup Edition.



SQL Server 2005 Developer Edition.



SQL Server 2005 Express Edition.

 Các thành phần chính của SQL Server 2005


Relational Database Engine.




Analysis Services.



Notification Services.



Data Transformation Services.



Reporting Services.



Service Broker.



Replication.



Native HTTP Support.



Full-Text Search.


1.3. Giới thiệu SQL Management Tool
 Microsoft SQL SQL Server Management Studio (SSMS), là công cụ mới trên
Microsoft SQL Server 2005, nó là một môi trường được tích hợp cho việc truy xuất,
cấu hình, quản trị và phát triển tất cả các thành phần của SQL Server. SSMS kết hợp
các tính năng của Enterprise Manager, Query Analyzer, và Analysis Manager, được
bao hàm trong các phiên bản trước của SQL Server, thành một môi trường đơn mà
cung cấp truy xuất SQL Server để phát triển và quản trị tất cả các mức kỹ năng trên.
 SQL Server Configuration Manager cung cấp các quản trị cấu hình cơ sở cho các
dịch vụ SQL Server (SQL Server services), các giao thức server (server protocols),
các giao thức client (client protocols) và các bí danh client (client aliases).


11
 SQL Server Profiler cung cấp giao diện người dùng đồ họa cho việc giám sát thể
hiện của Database Engine hoặc thể hiện của Analysis Services.
 Database Engine Tuning Advisor cố vấn, giúp tạo các tập tối ưu các chỉ số (indexes),
indexed views, và các phân vùng (partitions).
1.4. Ngôn ngữ vấn tin có cấu trúc
 Mỗi hệ quản trị CSDL có một ngôn ngữ định nghĩa dữ liệu riêng (DDL - Data
Definition Languague). Đây là ngôn ngữ dùng để định nghĩa, khai báo cấu trúc của
CSDL.Những người thiết kế và quản trị CSDL thực hiện các công việc khai báo cấu
trúc CSDL. Các chương trình khai báo cấu trúc CSDL được viết bằng ngôn ngữ DDL
mà hệ quản trị CSDL cho phép.
 Các chương trình ứng dụng được viết bằng các ngôn ngữ lập trình
C++/C#/Java/Delphi… kết hợp với các ngôn ngữ thao tác dữ liệu (DML - Data
Manipulation Language) thông qua các thư viện hoặc đối tượng kết nối CSDL được
ngôn ngữ lập trình hỗ trợ: ODBC, RDO, ADO,… Các hệ quản trị CSDL quan hệ
ngày nay phổ biến sử dụng các ngôn ngữ DDL và DML dựa trên ngôn ngữ SQL.
 Đối với hệ quản trị CSDL SQL Server thì ngôn ngữ dùng để tương tác với cơ sở dữ

liệu là T – SQL. Đây là một phiên bản của ngôn ngữ SQL. Ngôn ngữ T – SQL trên
SQL Server bao gồm nhiều câu lệnh khác nhau, có thể chia thành 3 nhóm:


Nhóm ngôn ngữ định nghĩa dữ liệu DDL: với các lệnh cho phép tạo, thay đổi cấu
trúc và xóa bỏ các đối tượng cơ sở dữ liệu như: view, table, database,…



Nhóm ngôn ngữ thao tác dữ liệu DML: với các lệnh như SELECT /INSERT
/UPDATE /DELETE cho phép lấy về dữ liệu cụ thể, thay đổi giá trị của dữ liệu.



Nhóm ngôn ngữ điều khiển dữ liệu DCL: với các lệnh cho phép hay ngăn chặn
người dùng thao tác dữ liệu.

Bài tập
Câu 1: Trình bày khái niệm về cơ sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ có những điểm
khác biệt gì so với hệ thống xử lý file truyền thống?
Câu 2: Trình bày khái niệm về hệ quản trị cơ sở dữ liệu quan hệ.
Câu 3: Nêu các thành phần cơ bản của hệ quản trị CSDL SQL Server.
Câu 4: Trình bày những đặc điểm cơ bản của ngôn ngữ vấn tin SQL.


12
Chƣơng II. Tạo và quản lý cơ sở dữ liệu
2.1. Các tệp tin cơ sở dữ liệu (Database files)
 Một cơ sở dữ liệu có thể có tối đa 32726 file. Có thể chia làm 3 loại:



Primary Files Mỗi database phải có ít nhất một tập tin Primary data file với phần mở
rộng là .MDF. Tập tin này ngoài nhiệm vụ cất trữ dữ liệu thuần túy còn nhiệm vụ lưu
trữ thông tin liên quan đến cấu trúc và đặc điểm của chính database đó (lưu trong các
system tables). Ta tuyệt đối không nên can thiệp vào các system tables này vì việc
này có thể phá hỏng database.



Secondary Files Mỗi database có thể không có hoặc có nhiều Secondary Data File.
Các tập tin này chỉ thuần túy lưu trữ dữ liệu và có phần mở rộng là .NDF.



Log Files Mỗi database phải có ít nhất một transaction log file (có phần mở rộng là
.LDF). Log file làm nhiệm vụ lưu trữ thông tin liên quan các giao dịch (transaction)
thực hiện trên database đó. Thông tin này một phần phục vụ cho thao tác Roll Back
khi có lỗi giao dịch xảy ra.

 Các tập tin CSDL được tổ chức thành file group(nhóm)theo nguyên tắc:
 Một CSDL có thể có một hay nhiều file group. Trong đó bắt buộc phải có một file
group chính gọi là PRIMARY.
 Mỗi file group có thể chứa một hay nhiều file(.MDF, .NDF). Trong đó phải có ít nhất
1 tập tin Primary File (.MDF) nằm trong group chính PRIMARY.
 Các tập tin Log không thuộc về một file group nào cả.
2.2. Tạo cơ sở dữ liệu (Database)
2.2.1. Sử dụng lệnh CREATE DATABASE
CREATE DATABASE <Tên CSDL>
[ON PRIMARY <Khai báo tập tin .MDF>, [<Khai báo tập tin .NDF>,]…]
[FILEGROUP <Tên file group>

<Khai báo tập tin .NDF>, [<Khai báo tập tin .NDF>,]…]...
[LOG ON <Khai báo tập tin .LDF>, [<Khai báo tập tin .LDF>,]…]
 Mỗi tập tin trong CSDL (.MDF,.NDF,.LDF) đêu có 5 thuộc tính cơ bản:


NAME: Tên logic của tập tin.



FILENAME: Đường dẫn đầy đủ (tên vật lý).



SIZE: Kích thước ban đầu của tập tin (KB, MB, GB, TB).



MAXSIZE: Kích thước tối đa cho phép của tập tin (KB, MB, GB,TB).



FILEGROWTH : Tốc độ gia tăng kích thước của tập tin (KB, MB, GB, TB,%).


13
Ví dụ: Khi khai báo chúng ta sẽ khai báo như sau:
(NAME = QLBHM, FILENAME = „C:\DB\QLBH.MDF‟,
SIZE = 2MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10%) .
Ví dụ:
CREATE DATABASE QLBH

ON PRIMARY
(NAME = QLBHM, FILENAME = „C:\DB\QLBH.MDF‟, SIZE = 2MB, MAXSIZE =
UNLIMITED, FILEGROWTH = 10%),
(NAME = QLBHN1, FILENAME = „C:\DB\QLBH1.NDF‟, SIZE = 2MB, MAXSIZE =
UNLIMITED, FILEGROWTH = 10%)
FILEGROUP FG
(NAME = QLBHN2, FILENAME = „C:\DB\QLBH2.NDF‟, SIZE = 2MB, MAXSIZE =
UNLIMITED, FILEGROWTH = 10%),
(NAME = QLBHN3, FILENAME = „C:\DB\QLBH3.NDF‟, SIZE = 2MB, MAXSIZE =
UNLIMITED, FILEGROWTH = 10%)
LOG ON
(NAME = QLBHL, FILENAME = „C:\DB\QLBH.LDF‟, SIZE = 2MB, MAXSIZE =
UNLIMITED, FILEGROWTH = 10%)
2.2.2. Sử dụng Management Tool.


14

2.3. Sửa cơ sở dữ liệu
2.3.1. Sử dụng lệnh ALTER DATABSE
ALTER DATABASE <tên CSDL>
[ ADD FILE <Khai báo tập tin .MDF,.NDF> [, . . .] [ TO FILEGROUP Group>] ]
[ADD LOG FILE <Khai báo tập tin .LDF> [, . . .]]
[ADD FILEGROUP <Tên File Group>]
[REMOVE FILE <Tên logic của tập tin>]
[REMOVE FILEGROUP <Tên File Group>]
[MODIFY NAME = <Tên mới cho Database>]
[MODIFY FILE <Khai báo tập tin>]
[MODIFY FILEGROUP <Tên File Group> <Thuộc tính File Group>|NAME =

mới>]
[COLLATE <Tên collation>]
<Thuộc tính File Group> bao gồm:


READONLY: Khi một file group bị đánh dấu READONLY thì mọi thao tác cập nhật
dữ liệu trên các tập tin thuộc file group này đều không thể thực hiện được. Không
được phép áp dụng thuộc tính này cho Primary Group.



READWRITE: Ngược lại với READONLY



DEFAULT: Đánh dấu file group như là file group mặc định của database hiện thời.


15
Ví dụ:
ALTER DATABASE QLBH
ADD FILE
(NAME = QLBHN4, FILENAME = „C:\DB\QLBH4.NDF‟,
SIZE = 2MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
TO FILEGROUP FG
ADD FILEGROUP FG1
2.3.2. Sửa đổi cơ sở dữ liệu bằng Management Tool

2.4. Xóa cơ sở dữ liệu
2.4.1. Sử dụng lệnh DROP DATABASE trên Query Analyzer

DROP DATABASE <tên CSDL>
Ví dụ: DROP DATABASE QLBH


16
2.4.2. Xóa CSDL sử dụng Management Tool:

2.5. Các system database đặc biệt
 Ngay sau khi SQL Server mới được cài đặt xong, có 6 database tự động được cung
cấp. Người ta gọi những database này là các system database để phân biệt với các
database do người dùng tự tạo ra sau này (user database). Các system database bao
gồm:


Model database



Master database



Msdb database



Tempdb database




Pubs database



Northwind database

Master database
 Bao gồm tất cả các system table lưu trữ dữ liệu theo dõi việc cài đặt Server về mặt
tổng thể cũng như theo dõi tất cả các user database được tạo ra về sau. Cụ thể hơn,
Master database có chứa những system catalog lưu trữ thông tin liên quan đến:


Khoảng trống đĩa (space disk).



Cấp phát tập tin.



Cài đặt để cấu hình toàn hệ thống.



Tài khoản đăng nhập.


17



Sự hiện hữu của các database khác.



Sự hiện hữu của các SQL Server khác (trong các giao dịch phân tán).

 Mỗi khi tạo một database mới, thay đổi cấu hình, tài khoản đăng nhập,… tất cả thông
tin đều được cập nhật vào Master database.
Model database
 Đóng vai trò như một khuôn mẫu (template). Mỗi lần người dùng tạo mới một user
database thì SQL Server sẽ dùng Model database làm “khuôn mẫu” cho việc tạo mới
user database. Mỗi user database lúc mới tạo sẽ kế thừa các thuộc tính và có cấu trúc
giống như Model database. Nếu ta muốn mỗi user database lúc mới tạo ra đã có sẵn
một số đặc điểm nào đấy, ta có thể thiết lập các đặc điểm đó trên Model database.
Các user database được tạo ra sau này sẽ tự động được kế thừa các đặc điểm đó.
Tempdb database
 Là một database để lưu trữ dữ liệu tạm thời (tempotary). Nó được dùng để lưu trữ:
 Những dữ liệu tam thời (bảng tạm) do người dùng tạo ra
 Những kết quả trung gian phục vụ cho quá trình xử lý của nội bộ SQL Server: xử lý
các câu truy vấn (Query), sắp xếp (Sorting),…
 Mặc định mỗi khi SQL Server được khởi động thì Tempdb database được tái tạo lại,
mới hoàn toàn, mọi dữ liệu (bảng tạm) do người dùng lưu trữ lên Tempdb database
trước đó sẽ biến mất
Msdb Database
 Là một database phục vụ cho hoạt động SQL Server Agent service. Nó lưu trữ thông
tin liên quan đến việc hoạch định tác vụ (Task Shedule) cho các hoạt động như:
backup dữ liệu, tạo thứ bản (replication),…
Bài tập:
Câu 1: Trình bày về tổ chức tập tin trong cơ sở dữ liệu SQL Server. Phân loại tập tin trong
SQL Server. Cách khai báo đặc tả tập tin trong SQL Server (5 thuộc tính).

Câu 2: Nêu chức năng các cơ sở dữ liệu hệ thống trong SQL Server.
Câu 3: Trình bày cú pháp đầy đủ của lệnh CREATE DATABASE và giải thích ý nghĩa các
tham số.


18
Chƣơng III. Tạo và quản lý các bảng
3.1. Tạo bảng (CREATE TABLE)
3.1.1. Sử dụng lệnh CREATE TABLE
CREATE TABLE <Tên bảng>
(
[<Khai báo cột>,]…]
[<Khai báo rằng buộc>,]…]
)
[ON <tên filegroup> | DEFAULT]
 Đối với các cột cần khai báo các thuộc tính chính sau:


Kiểu dữ liệu: Kiểu dữ liệu của các giá trị trong cột.



Tên cột dữ liệu.



Thuộc tính (nếu có): Các thuộc tính được định nghĩa trên cột.




Một số kiểu dữ liệu thường gặp:



Kiểu dữ liệu xâu chuỗi văn bản: char, varchar, text, nchar, nvarchar, ntext.



Dữ liệu kiểu số: tinyint, smallint, int, bigint, decimal, numeric, smallmoney, money,
real, bit, binary.



Dữ liệu kiểu thời gian: datetime, smalldatetime.



Dữ liệu kiểu đặc biệt: image, Uniqueidentifier.

 Một số kiểu thuộc tính thường gặp
 Thuộc tính cho phép trống dữ liệu: Null, Not null.
 Thuộc tính tự tăng: Identity.
 Thuộc tính duy nhất toàn cục: UniqueIdentifier.


19
3.1.2. Sử dụng Management Tool:

3.2. Định nghĩa các cột (Columns)
3.2.1. Định nghĩa cột bằng lệnh

<Tên cột> <Kiểu dữ liệu> [Các thuộc tính]
Ví dụ:
CREATE TABLE NhaCungCap
(


20
MaNhaCungCap INT IDENTITY(1,1),
TenNhaCungCap NVARCHAR(50) Not Null,
TenNguoiLienHe NVARCHAR(50) Not Null,
DiaChi NVARCHAR(100) Not Null,
DienThoai VARCHAR(15) Not Null,
Fax VARCHAR(15) Null,
Website VARCHAR(100) Null,
CONSTRAINT PK_NhaCungCap PRIMARY KEY(MaNhaCungCap)
)
3.3. Định nghĩa các ràng buộc (Constrains)
3.3.1. Định nghĩa rằng buộc bằng câu lệnh:
CONSTRAINT <Tên rằng buộc> <Kiểu rằng buộc> [Thông tin rằng buộc]
Ví dụ:
CREATE TABLE HangHoa
(
MaHangHoa INT IDENTITY(1,1),
TenHangHoa NVARCHAR(50) Not Null,
MaNhaCungCap INT Not Null,
MaLoaiHang INT Not Null,
CONSTRAINT PK_HangHoa PRIMARY KEY(MaHangHoa),
CONSTRAINT FK_HHLH FOREIGN KEY(MaLoaiHang) REFERENCES
LoaiHang(MaLoaiHang),
CONSTRAINT FK_HHNCC FOREIGN KEY(MaNhaCungCap) REFERENCES

NhaCungCap(MaNhaCungCap)
)
 Một số kiểu rằng buộc thường gặp


Kiểu rằng buộc khóa: Primary Key, Foreign Key.



Kiểu rằng buộc giá trị: Check, Default.

3.3.2. Định nghĩa rằng buộc bằng Management Tool:


21

3.4. Sửa bảng (ALTER TABLE)
3.4.1. Dùng lệnh ALTER TABLE
ALTER TABLE <Tên bảng>
ADD <Định nghĩa cột>
| ALTER COLUMN <Tên cột> <Kiểu dữ liệu> [<Các thuộc tính khác>]
| DROP COLUMN <Tên cột>
| ADD CONSTRAINT <Tên ràng buộc> <Định nghĩa ràng buộc>
| DROP CONSTRAINT <Tên ràng buộc>
Ví dụ:
ALTER TABLE HangHoa ADD COLUMN SoLuong INT;
ALTER TABLE HangHoa DROP COLUMN SoLuong;
3.4.2. Sửa đổi bảng dữ liệu sử dụng Management Tool



22

3.5. Xóa bảng (DROP TABLE)
3.5.1. Sử dụng lệnh DROP TABLE
DROP TABLE <Tên bảng dữ liệu>
Ví dụ:
DROP TABLE HangHoa;
DROP TABLE LoaiHang;
DROP TABLE NhaCungCap;


23
3.5.2. Sử dụng Management Tool

3.6. Thêm bản ghi mới (INSERT)
Dữ liệu trong các bảng được thể hiện dưới dạng các dòng (bản ghi). Để bổ sung thêm các
dòng dữ liệu vào một bảng, ta sử dụng câu lệnh INSERT. Hầu hết các hệ quản trị CSDL dựa
trên SQL cung cấp các cách dưới đây để thực hiện thao tác bổ sung dữ liệu cho bảng:
• Bổ sung từng dòng dữ liệu với mỗi câu lệnh INSERT. Đây là các sử dụng thường gặp nhất
trong giao tác SQL.
• Bổ sung nhiều dòng dữ liệu bằng cách truy xuất dữ liệu từ các bảng dữ liệu khác.
3.6.1. Bổ sung dữ liệu với lệnh INSERT
Để bổ sung một dòng dữ liệu mới vào bảng, ta sử dụng câu lệnh INSERT với cú pháp như
sau:
INSERT <Tên bảng>[(<Danh sách cột>)] VALUES(<danh sách giá trị>)
Ví dụ:
INSERT LoaiHang (TenLoaiHang,MoTa) VALUES (N„Bánh kem‟,N‟Hộp‟);
INSERT NhaCungCap (TenNhaCungCap,TenNguoiLienLac,DiaChi,DienThoai)
VALUES (N„Hải Châu‟,N‟Vũ Hải Châu‟,N‟Trần Phú – Hải Phòng‟,‟123456‟);
INSERT HangHoa (TenHangHoa,MaNhaCungCap,MaLoaiHang) VALUES (N„Bánh kem

Hải Châu‟,1,1);
Lƣu ý:
 Khi Insert tất cả các trường đều có giá trị vào thì không cần danh sách cột và các giá
trị sẽ được điền vào theo đúng thứ tự các cột trong CSDL.


24
 Ngược lại thì cần có danh sách cột và giá trị phải sắp xếp theo thứ tự danh sách cột
truyền vào.
Bổ sung nhiều dòng dữ liệu từ bảng khác
INSERT <Tên bảng>[(<Danh sách cột>)] <câu lệnh SELECT>
3.6.2. Bổ sung dữ liệu sử dụng Management Tool.


25
3.7. Cập nhật bản ghi (UPDATE)
Câu lệnh UPDATE trong SQL được sử dụng để cập nhật dữ liệu trong các bảng. Câu lệnh
này có cú pháp như sau:
UPDATE <Tên bảng>
SET <Tên cột>=<Giá trị> [,<Tên cột>=<Giá trị>]
[FROM <Danh sách bảng>][WHERE <Điều kiện>]
Ví dụ:
UPDATE LoaiHang SET TenLoaiHang=N‟Kem tươi‟ WHERE MaLoaiHang=1;
UPDATE HangHoa SET TenHangHoa=N‟Kem tươi Hải Châu‟
FROM HangHoa
INNER JOIN LoaiHang ON HangHoa.MaLoaiHang = LoaiHang.MaLoaiHang
WHERE LoaiHang.TenLoaiHang=N‟Kem tươi‟;
Lƣu ý:
 Khi không có điều kiện where thì câu lệnh sẽ thực hiện trên toàn bảng dữ liệu.
 Sử dụng from để thực hiện update với điều kiện mở rộng hơn.

3.8. Xóa bản ghi (DELETE)
Để xoá dữ liệu trong một bảng, ta sử dụng câu lệnh DELETE. Cú pháp của câu lệnh này
như sau:
DELETE <Tên bảng>
[FROM <Danh sách bảng>][WHERE <Điều kiện>]
Ví dụ:
DELETE HangHoa
FROM HangHoa
INNER JOIN LoaiHang ON HangHoa.MaLoaiHang = LoaiHang.MaLoaiHang
WHERE LoaiHang.TenLoaiHang=N‟Kem tươi‟;
DELETE LoaiHang WHERE MaLoaiHang=1;
Lƣu ý:
 Khi không có điều kiện where thì câu lệnh sẽ thực hiện trên toàn bảng dữ liệu.
 Sử dụng from để thực hiện update với điều kiện mở rộng hơn.
Xoá toàn bộ dữ liệu trong bảng


×