SlideShare a Scribd company logo
1 of 52
Download to read offline
HỆ QUẢN TRỊ CSDL
SQL SERVER
nn.D.Son
Hình thức đánh giá
 i m thành ph n:
Đ ể ầ
- 30%: Chuyên c n
ầ
- 70%: i m gi a k
Đ ể ữ ỳ
Thi:
- Th c hành t i PM
ự ạ
02/13/19 2
Mục đích
 Cung cấp khái niệm về Hệ quản trị CSDL
 Khái niệm về HQT SQL Server.
 Giới thiệu về ngôn ngữ truy vấn SQL
- DDL, Data Definition Language
- DML, Data Manipulation Language
- DCL, Data Control Language
 Thiết lập các lệnh truy vấn từ đơn giản đến phức tạp
 Áp dụng trên bài toán cụ thể.
02/13/19 3
Nội dung
Chương 1: Tổng quan về HQT CSDL
Chương 2: Giới thiệu ngôn ngữ truy vấn SQL
Chương 3: Làm việc với các đối tượng trong
SQL
Chương 4: Lập trình trên SQL Server
Chương 5: An toàn dữ liệu trong SQL Server
02/13/19 4
Tài liệu tham khảo
 Giáo trình HQT SQL Server
 Database System Concepts 6th edition
 Book Online SQL Server 2008
02/13/19 5
Phần mềm sử dụng
SQL Server 2012.
02/13/19 08:44 6
02/13/19 7
CHƯƠNG 1:
TỔNG QUAN VỀ
HQT CSDL
I. Một số khái niệm cơ bản
1. Cơ sở dữ liệu (Database): Là tập hợp
các dữ liệu được tổ chức với cấu trúc liên
quan với nhau và được lưu trữ trong máy
tính. Cơ sở dữ liệu được thiết kế cho phép
người dùng có thể dễ dàng truy xuất, quản
lý và cập nhật dữ liệu.
02/13/19 08:44 8
02/13/19 08:44 9
2. Hệ quản trị CSDL
 Hệ quản trị cơ sở dữ liệu (Database Management
System - DBMS), là phần mềm hay hệ thống được
thiết kế để quản trị một cơ sở dữ liệu. Cụ thể, các
chương trình thuộc loại này hỗ trợ khả năng lưu trữ,
sửa chữa, xóa và tìm kiếm thông tin trong một cơ sở
dữ liệu (CSDL).
 Đặc điểm chung của các HQT là sử dụng ngôn ngữ
truy vấn theo cấu trúc (Structured Query Language -
SQL).
 Một số hệ quản trị CSDL phổ biến
MySQL, Oracle, PostgreSQL, SQL
Server, DB2, Infomix...
02/13/19 08:44 10
 Ưu điểm của HQT CSDL:
- Quản lý được dữ liệu dư thừa.
- Đảm báo tính nhất quán cho dữ liệu.
- Tạo khả năng chia sẻ dữ liệu nhiều hơn.
- Cải tiến tính toàn vẹn cho dữ liệu.
 Nhược điểm:
- HQTCSDL tốt thì khá phức tạp.
- HQTCSDL tốt thường rất lớn chiếm nhiều dung lượng bộ
nhớ.
- Giá cả khác nhau tùy theo môi trường và chức năng.
- HQTCSDL được viết tổng quát cho nhiều người dùng thì
thường chậm.
02/13/19 08:44 11
Các chức năng chính của một HQT CSDL
 Định nghĩa dữ liệu: cung cấp các khả năng định nghĩa dữ
liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối
quan hệ giữa các thành phần dữ liệu.
 Truy xuất và thao tác dữ liệu: Cho phép thực hiện các
thao tác truy xuất, bổ sung, cập nhật và đảm bảo an toàn
cho CSDL
 Điều khiển truy cập: cấp phát và kiểm soát các thao tác
của người sử dụng trên dữ liệu, đảm bảo an toàn cho
CSDL
 Đảm bảo toàn vẹn dữ liệu: Có các công cụ để đảm bảo
tính hợp lệ và chính xác của dữ liệu trước thao tác cập nhật
cũng như các lỗi của hệ thống.
02/13/19 08:44 12
3. Cấu trúc tổng thể
02/13/19 08:44 13
4. Mô hình dữ liệu
 Là một bộ các công cụ quan niệm để mô tả dữ liệu,
quan hệ dữ liệu, ngữ nghĩa dữ liệu và các ràng buộc
nhất quán.
 Có ba nhóm mô hình: Các mô hình logic dựa trên đối
tượng (Object-based logical models), các mô hình
logic dựa trên mẫu tin (record-based logical models),
các mô hình vật lý (physical models)
 Một số mô hình phổ biến: Mô hình thực thể - quan
hệ (entity-relationship model), mô hình hướng đối
tượng ( object-oriented model ), mô hình dữ liệu ngữ
nghĩa ( semantic data model ), mô hình dữ liệu hàm (
function data model ).
02/13/19 08:44 14
5. Ngôn ngữ cơ sở dữ liệu
 Một hệ cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ
khác nhau:
- Xác định sơ đồ cơ sở dữ liệu
- Biểu diễn các truy vấn cơ sở dữ liệu và cập nhật.
 Ngôn ngữ định nghĩa dữ liệu (Data Definition
Language: DDL) cho phép định nghĩa sơ đồ cơ sở
dữ liệu. Kết quả biên dịch các lệnh của DDL là tập
hợp các bảng được lưu trữ trong một file đặc biệt
được gọi là từ điển dữ liệu (data dictionary) hay thư
mục dữ liệu (data directory)
02/13/19 08:44 15
5. Ngôn ngữ cơ sở dữ liệu
 Ngôn ngữ thao tác dữ liệu (Data manipulation
language: DML) là ngôn ngữ cho phép người sử
dụng truy xuất hoặc thao tác dữ liệu.
 Có hai kiểu ngôn ngữ thao tác dữ liệu:
- DML thủ tục (procedural DML) yêu cầu người sử dụng
đặc tả dữ liệu nào cần và làm thế nào để nhận được nó.
DML liên quan đến sự tìm lại thông tin được gọi là ngôn
ngữ truy vấn (query language)
- Một tin vấn (query) là một lệnh yêu cầu lấy dữ liệu
(information retrieval)
02/13/19 08:44 16
II. GIỚI THIỆU VỀ SQL SERVER
1. Mô hình client/server:
Một ứng dụng kiểu Client/Server bao gồm hai phần:
- Một phần chạy trên Server (máy chủ)
- Một phần chạy trên các WorkStations( máy trạm)
Phần Server: chứa các CSDL, cung cấp các chức
năng phục vụ cho việc tổ chức và quản lý CSDL, cho
phép nhiều người sử dụng cùng truy cập dữ liệu.
Phần Client: Là các phần mềm chạy trên máy trạm
cho phép người sử dụng giao tiếp CSDL trên Server.
02/13/19 08:44 17
2. SQL Server
 SQL Server là hệ thống quản trị cơ sở dữ liệu quan
hệ (Relational DataBase Management System-
RDBMS) sử dụng các lệnh chuyển Transaction-SQL
để trao đổi dữ liệu giữa Client Computer và Server
Computer.
02/13/19 08:44 18
Các đặc điểm của SQL Server
 Cho phép quản trị một hệ CSDL lớn (lên đến vài tega
byte), có tốc độ xử lý dữ liệu đáp ứng yêu cầu về
thời gian.
 Cho phép nhiều người cùng khai thác trong một thời
điểm đối với một CSDL và toàn bộ quản trị CSDL
(lên đến vài chục ngàn user).
 Có hệ thống phân quyền bảo mật tương thích với hệ
thống bảo mật của công nghệ NT (Network
Technology), tích hợp với hệ thống bảo mật của
Windows NT hoặc sử dụng hệ thống bảo vệ độc lập
của SQL Server.
02/13/19 08:44 19
Các đặc điểm của SQL Server
 Hỗ trợ trong việc triển khai CSDL phân tán và phát
triển ứng dụng trên Internet
 Cho phép lập trình kết nối với nhiều ngôn ngữ lập
trình khác dùng xây dựng các ứng dụng đặc thù
(Visual Basic, C, C++, ASP, ASP.NET, XML,...).
 Sử dụng câu lệnh truy vấn dữ liệu Transaction-SQL
(Access là SQL, Oracle là PL/SQL).
02/13/19 08:44 20
Các thành phần cơ bản của SQL Server
 SQL Server được cấu tạo bởi nhiều thành phần:
- DataBase Engine. Đây là một engine có khả năng chứa
dữ liệu dưới nhiều quy mô khác nhau, theo dạng bảng,
hỗ trợ nhiều phương thức kết nối ADO, OLE DB, ODBC.
- Replication. Là công cụ dùng nhân bản dữ liệu, có thể
sử dụng để tạo một Server khác với bộ dữ liệu giống bộ
dữ liệu trên Server chính. Công cụ tạo cơ chế tự đồng bộ
dữ liệu giữa Server chính và Server nhân bản. Mục đích
của việc tạo Server nhân bản là giảm tải cho Server
chính, nâng cao hiệu quả phục vụ với số lượng người
dùng, phiên giao dịch lớn.
02/13/19 08:44 21
Các thành phần cơ bản của SQL Server
- Data Transformation Service –DTS. Là công cụ giúp
chuyển dữ liệu giữa các Server quản trị CSDL khác nhau,
chẳng hạn chuyển dữ liệu từ SQL Server sang
Oracle,Access, DB,…
- Analysis service. Là công cụ giúp khai thác phân tích dữ
liệu, hay khai phá dữ liệu theo phương thức đa chiều. Từ
một tập dữ liệu sẵn có, có thể khai phá để từ đó đưa ra
những nhận định, phân tích, đánh giá và dự đoán theo
lĩnh vực nào đó, mỗi chiều trong ngữ cảnh này được coi
là một tiêu chí xem xét của dữ liệu.
- English query. Đây là công cụ tra cứu dữ liệu bằng tiếng
Anh, cú pháp có thể sử dụng theo văn phạm tiếng Anh
thông thường.
02/13/19 08:44 22
Các thành phần cơ bản của SQL Server
Ngoài ra còn có các thành phần khác như: Intergration
Services (DTS), Notication Services, Report Services, Full
Text Search Service vv…
02/13/19 08:44 23
Các CSDL hệ thống của SQL Server
 Master: Ghi nhận thông tin cấp hệ thống, thông tin khởi
tạo SQL Server và các thiết lập cấu hình SQL Server,
đồng thời cũng ghi nhận tất cả tài khoản đăng nhập, sự
tồn tại của các CSDL khác, vị trí của tập tin chính cho tất
cả các CSDL người dùng.
 Tempdb: Lưu trữ tạm thời tất cả các bảng và thủ tục do
người dùng tạo ra. CSDL này cũng được dùng cho
những nhu cầu lưu trữ tạm khác của SQL Server như
sắp xếp dữ liệu. CSDL tempdb được tạo lại với kích
thước mặc định của nó mỗi khi SQL được khởi động, sau
đó sẽ tự động gia tang kích thước khi cần.
02/13/19 08:44 24
Các CSDL hệ thống của SQL Server
 Model: Là khuôn mẫu cho tất cả các CSDL khác được
tạo trên hệ thống, kể cả tempdb. CSDL model được dùng
để tạo lại tempdb mỗi khi SQL server khởi động.
 Msdb: Lưu giữ các bảng mà SQL Server Agent dùng để
tạo lập thời gian biểu thực thi các công việc, các cảnh
báo và các operator – là những người chịu trách nhiệm
cho cảnh báo và công việc.
02/13/19 08:44 25
Cấu trúc lưu trữ vật lý của CSDL SQL Server
 Một database được tạo nên từ các loại file nhị phân như
sau:
- Primary data file: dùng để lưu trữ các meta data của CSDL
như định nghĩa các objects, thông số cấu hình CSDL và thông
tin của các data file khác. Ngoài ra nó cũng được dùng để lưu
user data, mỗi database có duy nhất một primary file với đuôi
là .mdf
- Secondary data file: bao gồm tất cả các file dữ liệu khác với
primary file. Một CSDL có thể không có hoặc có nhiều
secondary data file. Các file này có thể nằm trên nhiều ổ đĩa
khác nhau để tăng cường hiệu suất truy xuất và có đuôi là .ndf
- Log File: mỗi database cần có ít nhất một log file để chứa
thông tin cần thiết dùng cho việc khôi phục lại các transaction
đã thực hiện trong database, log file có đuôi là .ndf
02/13/19 08:44 26
Cấu trúc lưu trữ vật lý của CSDL SQL Server
 Chú ý: Từ SQL Server 2008 trở đi, SQL Server còn có
filestream data files và full-text data files. Hai loại này
phải chỉ định cụ thể và dùng cho các tình huống nhất
định nên mặc định khi tạo mới một CSDL sẽ không có hai
loại file này.
02/13/19 08:44 27
3/ Instance trong SQL Server
 Instance là một tập hợp các tiến trình của hệ thống chạy
background (background processes) cùng với thành
phần bộ nhớ có cấu trúc nhất định (memory structures)
để thao tác với CSDL. Có thể hiểu đơn giản instance là
một ‘thực thể’ SQL Server.
 Có thể cài nhiều instance trên một server (SQL Server
2000 trở đi). Default Instance là instance được cài đặt
đầu tiên.
02/13/19 08:44 28
III/ Ngôn ngữ truy vấn cấu trúc SQL
29
 SQL là m t ngôn ng truy v n c u trúc, là m t công c
ộ ữ ấ ấ ộ ụ
dùng t ch c, qu n lý và truy xu t d li u c l u tr
để ổ ứ ả ấ ữ ệ đượ ư ữ
trong các CSDL.
 SQL không ph i là h qu n tr CSDL, ch là m t ph n c a
ả ệ ả ị ỉ ộ ầ ủ
h qu n tr CSDL.
ệ ả ị
 Vai trò c a SQL trong các h QT CSDL:
ủ ệ
- Là ngôn ng truy v n có tính t ng tác: ng i dùng thông qua các
ữ ấ ươ ườ
trình ti n ích g i yêu c u n CSDL và nh n k t qu tr v t
ệ để ử ầ đế ậ ế ả ả ề ừ
CSDL.
- Là ngôn ng l p trình CSDL: có th nhúng các l nh SQL vào trong
ữ ậ ể ệ
các ngôn ng l p trình xây d ng các ch ng trình ng d ng giao
ữ ậ để ự ươ ứ ụ
ti p v i SCDL.
ế ớ
30
- Là ngôn ng qu n tr CSDL: Thông qua SQL, ng i qu n tr CSDL
ữ ả ị ườ ả ị
có th qu n lý c CSDL, nh ngh a các c u trúc l u tr d li u,
ể ả đượ đị ĩ ấ ư ữ ứ ệ
i u khi n truy c p CSDL.
đ ề ể ậ
- Là ngôn ng cho các h th ng khách/ch (client/server): Trong h
ữ ệ ố ủ ệ
th ng CSDL Client/Server, SQL c s d ng nh là công c
ố đượ ử ụ ư ụ để
giao ti p gi a các trình ng d ng phía máy khách v i máy ch
ế ữ ứ ụ ớ ủ
CSDL.
- Là ngôn ng truy c p d li u Internet: H u h t các máy ch Web
ữ ậ ữ ệ ầ ế ủ
c ng nh các máy ch trên Internet u d d ng SQL v i vai trò là
ũ ư ủ đề ử ụ ớ
ngôn ng t ng tác v i d li u trong các CSDL.
ữ để ươ ớ ữ ệ
31
- Là ngôn ng CSDL phân tán: i v i các HQT CSDL phân tán, m i
ữ đố ớ ỗ
m t h th ng s d ng SQL giao ti p v i các h th ng khác trên
ộ ệ ố ử ụ để ế ớ ệ ố
m ng, g i và nh n các yêu c u truy xu t d li u v i nhau.
ạ ử ậ ầ ấ ữ ệ ớ
- Là ngôn ng s d ng cho các c ng giao ti p CSDL: trong h th ng
ữ ử ụ ổ ế ệ ố
m ng máy tính v i nhi u HQT CSDL khác nhau, SQL th ng c
ạ ớ ề ườ đượ
s d ng nh là m t chu n ngôn ng giao ti p gi a các HQT
ử ụ ư ộ ẩ ữ để ế ữ
CSDL.
Câu lệnh SQL
32
 Trong SQL chu n bao g m kho ng 40 câu l nh, tuy nhiên tùy
ẩ ồ ả ệ
thu c vào HQT CSDL mà cú pháp s có thay i nh ng h u
ộ ẽ đổ ư ầ
h t các l nh u có cùng d ng và cùng m c ích s d ng.
ế ệ đề ạ ụ đ ử ụ
Câu lệnh Chức năng
Thao tác dữ liệu
SELECT Truy xuất dữ liệu
INSERT Bổ sung dữ liệu
UPDATE Cập nhật dữ liệu
DELETE Xóa dữ liệu
TRUNCATE Xóa toàn bộ dữ liệu trong bảng
Câu lệnh SQL
33
Câu lệnh Chức năng
Định nghĩa dữ liệu
CREATE TABLE Tạo bảng
DROP TABLE Xóa bảng
ALTER TABLE Sửa bàng
CREATE VIEW Tạo khung nhìn
ALTER VIEW Sửa đổi khung nhìn
DROP VIEW Xóa khung nhìn
CREATE INDEX Tạo chỉ mục
DROP INDEX Xóa chỉ mục
Câu lệnh SQL
34
Câu lệnh Chức năng
Định nghĩa dữ liệu
CREATE PROCECURE Tạo thủ tục lưu trữ
ALTER PROCECURE Sửa đổi thủ tục lưu trữ
DROP PROCECURE Xóa thủ tục lưu trữ
CREATE FUNCTION Tạo hàm
ALTER FUNCTION Sửa đổi hàm
DROP FUNCTION Xóa hàm
…
Câu lệnh SQL
35
Câu lệnh Chức năng
Điều khiển truy cập
GRANT Cấp phát quyền cho người sử dụng
REVOKE Thu hồi quyền từ người sử dụng
Quản lý giao tác
COMMIT Ủy thác (kết thúc thành công) giao tác
ROLLBACK Quay lui giao tác
SAVE TRANSACTION Đánh dấu một điểm trong giao tác
Lập trình
DECLARE Khai báo biến hoặc định nghĩa con trỏ
OPEN Mở một con trỏ để truy xuất kết quả truy vấn
FETCH Đọc một dòng trong kết quả truy vấn
CLOSE Đóng một con trỏ
EXECUTE Thực thi một câu lệnh SQL
 Các câu lệnh trong SQL đều được bắt đầu bởi các từ
lệnh, là từ cho biết chức năng của câu lệnh (ví dụ:
SELECT, DELETE,…). Sau từ lệnh là các mệnh đề
của câu lệnh.
 Ví dụ: câu lệnh SELECT
- SELECT masv, hodem, ten
- FROM sinhvien
- WHERE malop=‘AT13H’
36
02/13/19
37
IV/ Gi i thi u Management Studio
ớ ệ
1. Khởi động và các tùy chọn
Khởi động:
- Start/Program (All program)/SQL Server 2008/ SQL
Server Management Studio
 Các tùy chọn trên hộp thoại:
- Server Type: chọn kiểu dữ liệu của server khi hiển
thị kết nối (chọn Database Engine)
- Server Name: chọn danh sách tên máy tính được
cài đặt trên local của SQL Server.
- Authentication: Chọn loại hình kết nối muốn sử
dụng. (mặc định Windows Authentication)
38
Chú ý:
 SQL có hai cơ chế xác thực khi đăng nhập:
- Windows Authentication, người dùng cần cung cấp một
tài khoản Windows và SQL chỉ lưu tên của tài khoản đó
trong danh sách login. Khi đăng nhập SQL Server, chính
tài khoản hiện đang đăng nhập vào Windows sẽ được
dùng. Cơ chế này không đòi hỏi phải có tài khoản SQL
Server.
- Mixed (Windows Authentication và SQL Server
Authentication), người dùng cần cung cấp login ID và
password của tài khoản SQL Server, cả hai đều được lưu
trong danh sách login. Cơ chế này phù hợp với hệ thống
mà một số máy trạm không sử dụng hệ điều hành
windows.
39
2. Cửa sổ Object Explorer
 Cung cấp góc nhìn dạng cây chứa danh sách các đối
tượng của SQL đã kết nối.
 Gồm các thành phần:
- Databases: danh sách CSDL
- Sercurity: Bảo mật dữ liệu
- Server Objects: Các đối tượng
- Replication: Bản sao CSDL
- Management: Chức năng khai báo tác vụ thực thi tự
động.
40
3. Quản lý dự án, tập tin trong MS
 MS cho phép tạo project để quản lý các kịch bản
T_SQL theo nhóm.
 Đối với CSDL lớn: chia ứng dụng thành các project
và sử dụng Solution để quản lý các Project này.
 Tạo project: File/new/project
 Trong mỗi Project, có thể tạo các truy vấn bằng công
cụ (new query)
 Chú ý: Đọc và thực hành thêm các nội dung trong tài
liệu từ trang 77-104.
41
02/13/19
42
V/ Các i t ngtrong SQL Server
đố ượ
1/ Các kiểu kiểu DL
Kiểu dữ liệu Mô tả Kích thước
Char Kiểu kí tự với độ dài không thay đổi Lưu trữ tối đa 8000 kí tự
Nchar Giống Char nhưng hỗ trợ Unicode Tối đa 4000 kí tự
Varchar Dạng kí tự với độ dài thay đổi tùy theo độ dài
thực của dữ liệu
Tối đa 4000 kí tự
Nvarchar Giống Varchar nhưng hỗ trợ Unicode Tối đa 4000 kí tự
Text Kiểu văn bản gồm cả ký tự xuống dòng Cỡ GB tùy dung lượng máy
Ntext Giống Text hỗ trợ Unicode Cỡ GB tùy dung lượng máy
Date/Time Dữ liệu ngày giờ chia 2 dạng: Date/Time đầy
đủ ngày và thời gian . SmallDateTime chỉ
ngày hoặc thời gian
8 byte
Numeric Dữ liệu dạng số nguyên: int, smallint, bigint,
số thực: float, real, decimal, numeric
2 – 4 – 8 - 12 byte tùy theo kiểu
số được chọn
Monetary Kiểu tiền tệ: Money và SmallMoney 8 byte
43
2/ Bảng - Table
44
B ng là i t ng dùng t ch c và l u tr d
ả đố ượ để ổ ứ ư ữ ữ
li u. M t CSDL bao g m nhi u b ng và m i b ng
ệ ộ ồ ề ả ỗ ả
c xác nh duy nh t b i tên b ng
đượ đị ấ ở ả
- C t thu c tính (tính ch t c a th c th )
ộ ≈ ộ ấ ủ ự ể
- Dòng B d li u (b th c th )
≈ ộ ữ ệ ộ ự ể
M i b ng bao g m các y u t :
ỗ ả ồ ế ố
- Tên b ng: xác nh duy nh t m i b ng trong CSDL
ả đị ấ ỗ ả
- C u trúc b ng: t p các c t, m i c t ph i có tên và ki u d
ấ ả ậ ộ ỗ ộ ả ể ữ
li u
ệ
- D li u c a b ng: T p các dòng hi n có trong b ng.
ữ ệ ủ ả ậ ệ ả
Khóa của bảng
45
Khóa là t p các c t mà giá tr c a nó là duy nh t
ậ ộ ị ủ ấ
trong b ng.
ả
- Ví d : MaSV, MaMH, vv…
ụ
 M t b ng có th có nhi u khóa, khóa c ch n cài t g i
ộ ả ể ề đượ ọ đặ ọ
là khóa chính các khóa còn l i g i là khóa ph
ạ ọ ụ
 Khóa ngo i: là t p thu c tính c a b ng này nh ng l i là khóa
ạ ậ ộ ủ ả ư ạ
chính c a b ng khác.
ủ ả
- M c ích c a khóa ngo i là tham chi u n giá tr c a b ng
ụ đ ủ ạ để ế đế ị ủ ả
khác và m b o tính úng n, h p l c a d li u trong
để đả ả đ đắ ợ ệ ủ ữ ệ
CSDL.
- Ví d :
ụ
Ví dụ khóa ngoại
46
 Trong b ng LOP, MaKhoa chính là khóa ngo i
ả ạ
3/ View
47
 View là i t ng CSDL cho phép k t h p, s p x p, tính
đố ượ ế ợ ắ ế
toán, trích l c d li u b ng cách s d ng T-SQL d ng
ọ ữ ệ ằ ử ụ ạ
Select.
 View c xem nh là m t b ng o.
đượ ư ộ ả ả
4/ Chỉ mục
48
 Index trong SQL Server là một cấu trúc dữ liệu được
lưu trữ trên ổ cứng tương ứng với một table hoặc view
nhằm mục đích tăng tốc độ việc truy xuất dữ liệu từ
table hoặc view đó.
 Một index chứa các khóa được xây dựng từ một hoặc
nhiều trường (cột) trong table hoặc view. Các khóa này
được lưu trong một cấu trúc dạng B-Tree và cho
phép SQL Server tìm bản ghi hoặc các tập hợp bản ghi
tương ứng với những khóa này một cách nhanh chóng.
 Một Table hoặc một view có thể chứa hai loại chỉ mục
sau:
- Clustered
- Non-Clustered
Clustered Index
49
 L u tr và s p x p d li u v t lý
ư ữ ắ ế ữ ệ ậ trong table hoặc view
dựa trên các giá trị khóa của chúng. Các cột khóa
này được chỉ định trong định nghĩa Index. Mỗi table
hoặc view ch có duy nh t
ỉ ấ một Clusterd Index vì bản
thân các dòng dữ liệu được lưu trữ và sắp xếp theo
thứ tự vật lý dựa trên các cột trong loại Index này.
Non-Clustered Index
50
 Là một cấu trúc tách biệt với các bản ghi (hàng) trong
bảng hoặc view. Mỗi một chỉ mục loại này chứa các giá
trị của các cột khóa trong khai báo chỉ mục, ở mỗi một
bản ghi giá trị của khóa trong chỉ mục này chứa một con
trỏ tới bản ghi tương ứng với nó trong bảng. Một bảng có
thể có đến 249 non-clustered index.
Chú ý: Quy tắc viết lệnh
 Không phân biệt chữ hoa, chữ thường
 Nội dung 1 lệnh SQL có thể viết trên nhiều dòng.
 Từ khoá không viết tắt hay phân cách trên nhiều
dòng
 Các mệnh đề thường được đặt trên nhiều dòng khác
nhau
 Ta có thể sử dụng các ký tự đặc biệt như: +, -, /, *,...
để biểu diễn giá trị trong câu lệnh.
51
Chú thích và tiếng việt
 Dòng đơn  --
 Nhóm dòng  /* … */
 Sử dụng tiếng việt trong truy vấn
- Chọn kiểu dữ liệu hỗ trợ Unicode (nchar, nvarchar, ntext)
- Thêm tiền tố N (National Characters) vào trước chuỗi cần nhập để
báo cho SQL Server đây là chuỗi Unicode
 VD:
- Insert into PHONGBAN( MAPHG, TENPHG )
values('QL', N'Quản lý‘)
02/13/19 08:44
52

More Related Content

Similar to b1-gioithieu-190213084421.pdf

Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.commai_non
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfCriz20
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Designyht4ever
 
Chuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlChuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlHuy Feng
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTMasterCode.vn
 
Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Phương Nhung
 
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]bookbooming1
 
Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2NguynMinh294
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000Trần Đức Anh
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTonhaco Bestco
 
01-Gioithieu.pdf
01-Gioithieu.pdf01-Gioithieu.pdf
01-Gioithieu.pdfDngKen1
 
Cơ sở dữ liệu
Cơ sở dữ liệuCơ sở dữ liệu
Cơ sở dữ liệuThành Luân
 

Similar to b1-gioithieu-190213084421.pdf (20)

Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdf
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
 
C1
C1C1
C1
 
51645016 csdl
51645016 csdl51645016 csdl
51645016 csdl
 
Chuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlChuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdl
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
 
Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008
 
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]
 
01 gioithieu
01 gioithieu01 gioithieu
01 gioithieu
 
Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
 
ôn tập dbms
ôn tập dbmsôn tập dbms
ôn tập dbms
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệu
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
3250
32503250
3250
 
Qt he co so du lieu
Qt he co so du lieuQt he co so du lieu
Qt he co so du lieu
 
01-Gioithieu.pdf
01-Gioithieu.pdf01-Gioithieu.pdf
01-Gioithieu.pdf
 
Cơ sở dữ liệu
Cơ sở dữ liệuCơ sở dữ liệu
Cơ sở dữ liệu
 
Tu hoc SQL 2000
Tu hoc SQL 2000Tu hoc SQL 2000
Tu hoc SQL 2000
 

More from QuyVo27

PHP-Basic
PHP-BasicPHP-Basic
PHP-BasicQuyVo27
 
Tong quan benh xuong khop
Tong quan benh xuong khopTong quan benh xuong khop
Tong quan benh xuong khopQuyVo27
 
Medical image procesing
Medical image procesingMedical image procesing
Medical image procesingQuyVo27
 
b6-190213084710.pdf
b6-190213084710.pdfb6-190213084710.pdf
b6-190213084710.pdfQuyVo27
 
b5-viewproc-190213084706.pdf
b5-viewproc-190213084706.pdfb5-viewproc-190213084706.pdf
b5-viewproc-190213084706.pdfQuyVo27
 
b34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdfb34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdfQuyVo27
 
b2-ddl-create-190213085738.pdf
b2-ddl-create-190213085738.pdfb2-ddl-create-190213085738.pdf
b2-ddl-create-190213085738.pdfQuyVo27
 
b2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdfb2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdfQuyVo27
 
SQL Server 2014 – Features Drilldown.pptx
SQL Server 2014 – Features Drilldown.pptxSQL Server 2014 – Features Drilldown.pptx
SQL Server 2014 – Features Drilldown.pptxQuyVo27
 
SQL Server 2019 Modern Data Platform.pptx
SQL Server 2019 Modern Data Platform.pptxSQL Server 2019 Modern Data Platform.pptx
SQL Server 2019 Modern Data Platform.pptxQuyVo27
 
SQL_SERVER_BASIC_1_Training.pptx
SQL_SERVER_BASIC_1_Training.pptxSQL_SERVER_BASIC_1_Training.pptx
SQL_SERVER_BASIC_1_Training.pptxQuyVo27
 
SQL Server 2016 - Always On.pptx
SQL Server 2016 - Always On.pptxSQL Server 2016 - Always On.pptx
SQL Server 2016 - Always On.pptxQuyVo27
 
Querying_with_T-SQL_-_01.pptx
Querying_with_T-SQL_-_01.pptxQuerying_with_T-SQL_-_01.pptx
Querying_with_T-SQL_-_01.pptxQuyVo27
 
MS SQL Server.ppt
MS SQL Server.pptMS SQL Server.ppt
MS SQL Server.pptQuyVo27
 

More from QuyVo27 (14)

PHP-Basic
PHP-BasicPHP-Basic
PHP-Basic
 
Tong quan benh xuong khop
Tong quan benh xuong khopTong quan benh xuong khop
Tong quan benh xuong khop
 
Medical image procesing
Medical image procesingMedical image procesing
Medical image procesing
 
b6-190213084710.pdf
b6-190213084710.pdfb6-190213084710.pdf
b6-190213084710.pdf
 
b5-viewproc-190213084706.pdf
b5-viewproc-190213084706.pdfb5-viewproc-190213084706.pdf
b5-viewproc-190213084706.pdf
 
b34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdfb34-dml-sql-190213084703.pdf
b34-dml-sql-190213084703.pdf
 
b2-ddl-create-190213085738.pdf
b2-ddl-create-190213085738.pdfb2-ddl-create-190213085738.pdf
b2-ddl-create-190213085738.pdf
 
b2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdfb2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdf
 
SQL Server 2014 – Features Drilldown.pptx
SQL Server 2014 – Features Drilldown.pptxSQL Server 2014 – Features Drilldown.pptx
SQL Server 2014 – Features Drilldown.pptx
 
SQL Server 2019 Modern Data Platform.pptx
SQL Server 2019 Modern Data Platform.pptxSQL Server 2019 Modern Data Platform.pptx
SQL Server 2019 Modern Data Platform.pptx
 
SQL_SERVER_BASIC_1_Training.pptx
SQL_SERVER_BASIC_1_Training.pptxSQL_SERVER_BASIC_1_Training.pptx
SQL_SERVER_BASIC_1_Training.pptx
 
SQL Server 2016 - Always On.pptx
SQL Server 2016 - Always On.pptxSQL Server 2016 - Always On.pptx
SQL Server 2016 - Always On.pptx
 
Querying_with_T-SQL_-_01.pptx
Querying_with_T-SQL_-_01.pptxQuerying_with_T-SQL_-_01.pptx
Querying_with_T-SQL_-_01.pptx
 
MS SQL Server.ppt
MS SQL Server.pptMS SQL Server.ppt
MS SQL Server.ppt
 

b1-gioithieu-190213084421.pdf

  • 1. HỆ QUẢN TRỊ CSDL SQL SERVER nn.D.Son
  • 2. Hình thức đánh giá  i m thành ph n: Đ ể ầ - 30%: Chuyên c n ầ - 70%: i m gi a k Đ ể ữ ỳ Thi: - Th c hành t i PM ự ạ 02/13/19 2
  • 3. Mục đích  Cung cấp khái niệm về Hệ quản trị CSDL  Khái niệm về HQT SQL Server.  Giới thiệu về ngôn ngữ truy vấn SQL - DDL, Data Definition Language - DML, Data Manipulation Language - DCL, Data Control Language  Thiết lập các lệnh truy vấn từ đơn giản đến phức tạp  Áp dụng trên bài toán cụ thể. 02/13/19 3
  • 4. Nội dung Chương 1: Tổng quan về HQT CSDL Chương 2: Giới thiệu ngôn ngữ truy vấn SQL Chương 3: Làm việc với các đối tượng trong SQL Chương 4: Lập trình trên SQL Server Chương 5: An toàn dữ liệu trong SQL Server 02/13/19 4
  • 5. Tài liệu tham khảo  Giáo trình HQT SQL Server  Database System Concepts 6th edition  Book Online SQL Server 2008 02/13/19 5
  • 6. Phần mềm sử dụng SQL Server 2012. 02/13/19 08:44 6
  • 7. 02/13/19 7 CHƯƠNG 1: TỔNG QUAN VỀ HQT CSDL
  • 8. I. Một số khái niệm cơ bản 1. Cơ sở dữ liệu (Database): Là tập hợp các dữ liệu được tổ chức với cấu trúc liên quan với nhau và được lưu trữ trong máy tính. Cơ sở dữ liệu được thiết kế cho phép người dùng có thể dễ dàng truy xuất, quản lý và cập nhật dữ liệu. 02/13/19 08:44 8
  • 10. 2. Hệ quản trị CSDL  Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS), là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu. Cụ thể, các chương trình thuộc loại này hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm kiếm thông tin trong một cơ sở dữ liệu (CSDL).  Đặc điểm chung của các HQT là sử dụng ngôn ngữ truy vấn theo cấu trúc (Structured Query Language - SQL).  Một số hệ quản trị CSDL phổ biến MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix... 02/13/19 08:44 10
  • 11.  Ưu điểm của HQT CSDL: - Quản lý được dữ liệu dư thừa. - Đảm báo tính nhất quán cho dữ liệu. - Tạo khả năng chia sẻ dữ liệu nhiều hơn. - Cải tiến tính toàn vẹn cho dữ liệu.  Nhược điểm: - HQTCSDL tốt thì khá phức tạp. - HQTCSDL tốt thường rất lớn chiếm nhiều dung lượng bộ nhớ. - Giá cả khác nhau tùy theo môi trường và chức năng. - HQTCSDL được viết tổng quát cho nhiều người dùng thì thường chậm. 02/13/19 08:44 11
  • 12. Các chức năng chính của một HQT CSDL  Định nghĩa dữ liệu: cung cấp các khả năng định nghĩa dữ liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu.  Truy xuất và thao tác dữ liệu: Cho phép thực hiện các thao tác truy xuất, bổ sung, cập nhật và đảm bảo an toàn cho CSDL  Điều khiển truy cập: cấp phát và kiểm soát các thao tác của người sử dụng trên dữ liệu, đảm bảo an toàn cho CSDL  Đảm bảo toàn vẹn dữ liệu: Có các công cụ để đảm bảo tính hợp lệ và chính xác của dữ liệu trước thao tác cập nhật cũng như các lỗi của hệ thống. 02/13/19 08:44 12
  • 13. 3. Cấu trúc tổng thể 02/13/19 08:44 13
  • 14. 4. Mô hình dữ liệu  Là một bộ các công cụ quan niệm để mô tả dữ liệu, quan hệ dữ liệu, ngữ nghĩa dữ liệu và các ràng buộc nhất quán.  Có ba nhóm mô hình: Các mô hình logic dựa trên đối tượng (Object-based logical models), các mô hình logic dựa trên mẫu tin (record-based logical models), các mô hình vật lý (physical models)  Một số mô hình phổ biến: Mô hình thực thể - quan hệ (entity-relationship model), mô hình hướng đối tượng ( object-oriented model ), mô hình dữ liệu ngữ nghĩa ( semantic data model ), mô hình dữ liệu hàm ( function data model ). 02/13/19 08:44 14
  • 15. 5. Ngôn ngữ cơ sở dữ liệu  Một hệ cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ khác nhau: - Xác định sơ đồ cơ sở dữ liệu - Biểu diễn các truy vấn cơ sở dữ liệu và cập nhật.  Ngôn ngữ định nghĩa dữ liệu (Data Definition Language: DDL) cho phép định nghĩa sơ đồ cơ sở dữ liệu. Kết quả biên dịch các lệnh của DDL là tập hợp các bảng được lưu trữ trong một file đặc biệt được gọi là từ điển dữ liệu (data dictionary) hay thư mục dữ liệu (data directory) 02/13/19 08:44 15
  • 16. 5. Ngôn ngữ cơ sở dữ liệu  Ngôn ngữ thao tác dữ liệu (Data manipulation language: DML) là ngôn ngữ cho phép người sử dụng truy xuất hoặc thao tác dữ liệu.  Có hai kiểu ngôn ngữ thao tác dữ liệu: - DML thủ tục (procedural DML) yêu cầu người sử dụng đặc tả dữ liệu nào cần và làm thế nào để nhận được nó. DML liên quan đến sự tìm lại thông tin được gọi là ngôn ngữ truy vấn (query language) - Một tin vấn (query) là một lệnh yêu cầu lấy dữ liệu (information retrieval) 02/13/19 08:44 16
  • 17. II. GIỚI THIỆU VỀ SQL SERVER 1. Mô hình client/server: Một ứng dụng kiểu Client/Server bao gồm hai phần: - Một phần chạy trên Server (máy chủ) - Một phần chạy trên các WorkStations( máy trạm) Phần Server: chứa các CSDL, cung cấp các chức năng phục vụ cho việc tổ chức và quản lý CSDL, cho phép nhiều người sử dụng cùng truy cập dữ liệu. Phần Client: Là các phần mềm chạy trên máy trạm cho phép người sử dụng giao tiếp CSDL trên Server. 02/13/19 08:44 17
  • 18. 2. SQL Server  SQL Server là hệ thống quản trị cơ sở dữ liệu quan hệ (Relational DataBase Management System- RDBMS) sử dụng các lệnh chuyển Transaction-SQL để trao đổi dữ liệu giữa Client Computer và Server Computer. 02/13/19 08:44 18
  • 19. Các đặc điểm của SQL Server  Cho phép quản trị một hệ CSDL lớn (lên đến vài tega byte), có tốc độ xử lý dữ liệu đáp ứng yêu cầu về thời gian.  Cho phép nhiều người cùng khai thác trong một thời điểm đối với một CSDL và toàn bộ quản trị CSDL (lên đến vài chục ngàn user).  Có hệ thống phân quyền bảo mật tương thích với hệ thống bảo mật của công nghệ NT (Network Technology), tích hợp với hệ thống bảo mật của Windows NT hoặc sử dụng hệ thống bảo vệ độc lập của SQL Server. 02/13/19 08:44 19
  • 20. Các đặc điểm của SQL Server  Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên Internet  Cho phép lập trình kết nối với nhiều ngôn ngữ lập trình khác dùng xây dựng các ứng dụng đặc thù (Visual Basic, C, C++, ASP, ASP.NET, XML,...).  Sử dụng câu lệnh truy vấn dữ liệu Transaction-SQL (Access là SQL, Oracle là PL/SQL). 02/13/19 08:44 20
  • 21. Các thành phần cơ bản của SQL Server  SQL Server được cấu tạo bởi nhiều thành phần: - DataBase Engine. Đây là một engine có khả năng chứa dữ liệu dưới nhiều quy mô khác nhau, theo dạng bảng, hỗ trợ nhiều phương thức kết nối ADO, OLE DB, ODBC. - Replication. Là công cụ dùng nhân bản dữ liệu, có thể sử dụng để tạo một Server khác với bộ dữ liệu giống bộ dữ liệu trên Server chính. Công cụ tạo cơ chế tự đồng bộ dữ liệu giữa Server chính và Server nhân bản. Mục đích của việc tạo Server nhân bản là giảm tải cho Server chính, nâng cao hiệu quả phục vụ với số lượng người dùng, phiên giao dịch lớn. 02/13/19 08:44 21
  • 22. Các thành phần cơ bản của SQL Server - Data Transformation Service –DTS. Là công cụ giúp chuyển dữ liệu giữa các Server quản trị CSDL khác nhau, chẳng hạn chuyển dữ liệu từ SQL Server sang Oracle,Access, DB,… - Analysis service. Là công cụ giúp khai thác phân tích dữ liệu, hay khai phá dữ liệu theo phương thức đa chiều. Từ một tập dữ liệu sẵn có, có thể khai phá để từ đó đưa ra những nhận định, phân tích, đánh giá và dự đoán theo lĩnh vực nào đó, mỗi chiều trong ngữ cảnh này được coi là một tiêu chí xem xét của dữ liệu. - English query. Đây là công cụ tra cứu dữ liệu bằng tiếng Anh, cú pháp có thể sử dụng theo văn phạm tiếng Anh thông thường. 02/13/19 08:44 22
  • 23. Các thành phần cơ bản của SQL Server Ngoài ra còn có các thành phần khác như: Intergration Services (DTS), Notication Services, Report Services, Full Text Search Service vv… 02/13/19 08:44 23
  • 24. Các CSDL hệ thống của SQL Server  Master: Ghi nhận thông tin cấp hệ thống, thông tin khởi tạo SQL Server và các thiết lập cấu hình SQL Server, đồng thời cũng ghi nhận tất cả tài khoản đăng nhập, sự tồn tại của các CSDL khác, vị trí của tập tin chính cho tất cả các CSDL người dùng.  Tempdb: Lưu trữ tạm thời tất cả các bảng và thủ tục do người dùng tạo ra. CSDL này cũng được dùng cho những nhu cầu lưu trữ tạm khác của SQL Server như sắp xếp dữ liệu. CSDL tempdb được tạo lại với kích thước mặc định của nó mỗi khi SQL được khởi động, sau đó sẽ tự động gia tang kích thước khi cần. 02/13/19 08:44 24
  • 25. Các CSDL hệ thống của SQL Server  Model: Là khuôn mẫu cho tất cả các CSDL khác được tạo trên hệ thống, kể cả tempdb. CSDL model được dùng để tạo lại tempdb mỗi khi SQL server khởi động.  Msdb: Lưu giữ các bảng mà SQL Server Agent dùng để tạo lập thời gian biểu thực thi các công việc, các cảnh báo và các operator – là những người chịu trách nhiệm cho cảnh báo và công việc. 02/13/19 08:44 25
  • 26. Cấu trúc lưu trữ vật lý của CSDL SQL Server  Một database được tạo nên từ các loại file nhị phân như sau: - Primary data file: dùng để lưu trữ các meta data của CSDL như định nghĩa các objects, thông số cấu hình CSDL và thông tin của các data file khác. Ngoài ra nó cũng được dùng để lưu user data, mỗi database có duy nhất một primary file với đuôi là .mdf - Secondary data file: bao gồm tất cả các file dữ liệu khác với primary file. Một CSDL có thể không có hoặc có nhiều secondary data file. Các file này có thể nằm trên nhiều ổ đĩa khác nhau để tăng cường hiệu suất truy xuất và có đuôi là .ndf - Log File: mỗi database cần có ít nhất một log file để chứa thông tin cần thiết dùng cho việc khôi phục lại các transaction đã thực hiện trong database, log file có đuôi là .ndf 02/13/19 08:44 26
  • 27. Cấu trúc lưu trữ vật lý của CSDL SQL Server  Chú ý: Từ SQL Server 2008 trở đi, SQL Server còn có filestream data files và full-text data files. Hai loại này phải chỉ định cụ thể và dùng cho các tình huống nhất định nên mặc định khi tạo mới một CSDL sẽ không có hai loại file này. 02/13/19 08:44 27
  • 28. 3/ Instance trong SQL Server  Instance là một tập hợp các tiến trình của hệ thống chạy background (background processes) cùng với thành phần bộ nhớ có cấu trúc nhất định (memory structures) để thao tác với CSDL. Có thể hiểu đơn giản instance là một ‘thực thể’ SQL Server.  Có thể cài nhiều instance trên một server (SQL Server 2000 trở đi). Default Instance là instance được cài đặt đầu tiên. 02/13/19 08:44 28
  • 29. III/ Ngôn ngữ truy vấn cấu trúc SQL 29  SQL là m t ngôn ng truy v n c u trúc, là m t công c ộ ữ ấ ấ ộ ụ dùng t ch c, qu n lý và truy xu t d li u c l u tr để ổ ứ ả ấ ữ ệ đượ ư ữ trong các CSDL.  SQL không ph i là h qu n tr CSDL, ch là m t ph n c a ả ệ ả ị ỉ ộ ầ ủ h qu n tr CSDL. ệ ả ị  Vai trò c a SQL trong các h QT CSDL: ủ ệ - Là ngôn ng truy v n có tính t ng tác: ng i dùng thông qua các ữ ấ ươ ườ trình ti n ích g i yêu c u n CSDL và nh n k t qu tr v t ệ để ử ầ đế ậ ế ả ả ề ừ CSDL. - Là ngôn ng l p trình CSDL: có th nhúng các l nh SQL vào trong ữ ậ ể ệ các ngôn ng l p trình xây d ng các ch ng trình ng d ng giao ữ ậ để ự ươ ứ ụ ti p v i SCDL. ế ớ
  • 30. 30 - Là ngôn ng qu n tr CSDL: Thông qua SQL, ng i qu n tr CSDL ữ ả ị ườ ả ị có th qu n lý c CSDL, nh ngh a các c u trúc l u tr d li u, ể ả đượ đị ĩ ấ ư ữ ứ ệ i u khi n truy c p CSDL. đ ề ể ậ - Là ngôn ng cho các h th ng khách/ch (client/server): Trong h ữ ệ ố ủ ệ th ng CSDL Client/Server, SQL c s d ng nh là công c ố đượ ử ụ ư ụ để giao ti p gi a các trình ng d ng phía máy khách v i máy ch ế ữ ứ ụ ớ ủ CSDL. - Là ngôn ng truy c p d li u Internet: H u h t các máy ch Web ữ ậ ữ ệ ầ ế ủ c ng nh các máy ch trên Internet u d d ng SQL v i vai trò là ũ ư ủ đề ử ụ ớ ngôn ng t ng tác v i d li u trong các CSDL. ữ để ươ ớ ữ ệ
  • 31. 31 - Là ngôn ng CSDL phân tán: i v i các HQT CSDL phân tán, m i ữ đố ớ ỗ m t h th ng s d ng SQL giao ti p v i các h th ng khác trên ộ ệ ố ử ụ để ế ớ ệ ố m ng, g i và nh n các yêu c u truy xu t d li u v i nhau. ạ ử ậ ầ ấ ữ ệ ớ - Là ngôn ng s d ng cho các c ng giao ti p CSDL: trong h th ng ữ ử ụ ổ ế ệ ố m ng máy tính v i nhi u HQT CSDL khác nhau, SQL th ng c ạ ớ ề ườ đượ s d ng nh là m t chu n ngôn ng giao ti p gi a các HQT ử ụ ư ộ ẩ ữ để ế ữ CSDL.
  • 32. Câu lệnh SQL 32  Trong SQL chu n bao g m kho ng 40 câu l nh, tuy nhiên tùy ẩ ồ ả ệ thu c vào HQT CSDL mà cú pháp s có thay i nh ng h u ộ ẽ đổ ư ầ h t các l nh u có cùng d ng và cùng m c ích s d ng. ế ệ đề ạ ụ đ ử ụ Câu lệnh Chức năng Thao tác dữ liệu SELECT Truy xuất dữ liệu INSERT Bổ sung dữ liệu UPDATE Cập nhật dữ liệu DELETE Xóa dữ liệu TRUNCATE Xóa toàn bộ dữ liệu trong bảng
  • 33. Câu lệnh SQL 33 Câu lệnh Chức năng Định nghĩa dữ liệu CREATE TABLE Tạo bảng DROP TABLE Xóa bảng ALTER TABLE Sửa bàng CREATE VIEW Tạo khung nhìn ALTER VIEW Sửa đổi khung nhìn DROP VIEW Xóa khung nhìn CREATE INDEX Tạo chỉ mục DROP INDEX Xóa chỉ mục
  • 34. Câu lệnh SQL 34 Câu lệnh Chức năng Định nghĩa dữ liệu CREATE PROCECURE Tạo thủ tục lưu trữ ALTER PROCECURE Sửa đổi thủ tục lưu trữ DROP PROCECURE Xóa thủ tục lưu trữ CREATE FUNCTION Tạo hàm ALTER FUNCTION Sửa đổi hàm DROP FUNCTION Xóa hàm …
  • 35. Câu lệnh SQL 35 Câu lệnh Chức năng Điều khiển truy cập GRANT Cấp phát quyền cho người sử dụng REVOKE Thu hồi quyền từ người sử dụng Quản lý giao tác COMMIT Ủy thác (kết thúc thành công) giao tác ROLLBACK Quay lui giao tác SAVE TRANSACTION Đánh dấu một điểm trong giao tác Lập trình DECLARE Khai báo biến hoặc định nghĩa con trỏ OPEN Mở một con trỏ để truy xuất kết quả truy vấn FETCH Đọc một dòng trong kết quả truy vấn CLOSE Đóng một con trỏ EXECUTE Thực thi một câu lệnh SQL
  • 36.  Các câu lệnh trong SQL đều được bắt đầu bởi các từ lệnh, là từ cho biết chức năng của câu lệnh (ví dụ: SELECT, DELETE,…). Sau từ lệnh là các mệnh đề của câu lệnh.  Ví dụ: câu lệnh SELECT - SELECT masv, hodem, ten - FROM sinhvien - WHERE malop=‘AT13H’ 36
  • 37. 02/13/19 37 IV/ Gi i thi u Management Studio ớ ệ
  • 38. 1. Khởi động và các tùy chọn Khởi động: - Start/Program (All program)/SQL Server 2008/ SQL Server Management Studio  Các tùy chọn trên hộp thoại: - Server Type: chọn kiểu dữ liệu của server khi hiển thị kết nối (chọn Database Engine) - Server Name: chọn danh sách tên máy tính được cài đặt trên local của SQL Server. - Authentication: Chọn loại hình kết nối muốn sử dụng. (mặc định Windows Authentication) 38
  • 39. Chú ý:  SQL có hai cơ chế xác thực khi đăng nhập: - Windows Authentication, người dùng cần cung cấp một tài khoản Windows và SQL chỉ lưu tên của tài khoản đó trong danh sách login. Khi đăng nhập SQL Server, chính tài khoản hiện đang đăng nhập vào Windows sẽ được dùng. Cơ chế này không đòi hỏi phải có tài khoản SQL Server. - Mixed (Windows Authentication và SQL Server Authentication), người dùng cần cung cấp login ID và password của tài khoản SQL Server, cả hai đều được lưu trong danh sách login. Cơ chế này phù hợp với hệ thống mà một số máy trạm không sử dụng hệ điều hành windows. 39
  • 40. 2. Cửa sổ Object Explorer  Cung cấp góc nhìn dạng cây chứa danh sách các đối tượng của SQL đã kết nối.  Gồm các thành phần: - Databases: danh sách CSDL - Sercurity: Bảo mật dữ liệu - Server Objects: Các đối tượng - Replication: Bản sao CSDL - Management: Chức năng khai báo tác vụ thực thi tự động. 40
  • 41. 3. Quản lý dự án, tập tin trong MS  MS cho phép tạo project để quản lý các kịch bản T_SQL theo nhóm.  Đối với CSDL lớn: chia ứng dụng thành các project và sử dụng Solution để quản lý các Project này.  Tạo project: File/new/project  Trong mỗi Project, có thể tạo các truy vấn bằng công cụ (new query)  Chú ý: Đọc và thực hành thêm các nội dung trong tài liệu từ trang 77-104. 41
  • 42. 02/13/19 42 V/ Các i t ngtrong SQL Server đố ượ
  • 43. 1/ Các kiểu kiểu DL Kiểu dữ liệu Mô tả Kích thước Char Kiểu kí tự với độ dài không thay đổi Lưu trữ tối đa 8000 kí tự Nchar Giống Char nhưng hỗ trợ Unicode Tối đa 4000 kí tự Varchar Dạng kí tự với độ dài thay đổi tùy theo độ dài thực của dữ liệu Tối đa 4000 kí tự Nvarchar Giống Varchar nhưng hỗ trợ Unicode Tối đa 4000 kí tự Text Kiểu văn bản gồm cả ký tự xuống dòng Cỡ GB tùy dung lượng máy Ntext Giống Text hỗ trợ Unicode Cỡ GB tùy dung lượng máy Date/Time Dữ liệu ngày giờ chia 2 dạng: Date/Time đầy đủ ngày và thời gian . SmallDateTime chỉ ngày hoặc thời gian 8 byte Numeric Dữ liệu dạng số nguyên: int, smallint, bigint, số thực: float, real, decimal, numeric 2 – 4 – 8 - 12 byte tùy theo kiểu số được chọn Monetary Kiểu tiền tệ: Money và SmallMoney 8 byte 43
  • 44. 2/ Bảng - Table 44 B ng là i t ng dùng t ch c và l u tr d ả đố ượ để ổ ứ ư ữ ữ li u. M t CSDL bao g m nhi u b ng và m i b ng ệ ộ ồ ề ả ỗ ả c xác nh duy nh t b i tên b ng đượ đị ấ ở ả - C t thu c tính (tính ch t c a th c th ) ộ ≈ ộ ấ ủ ự ể - Dòng B d li u (b th c th ) ≈ ộ ữ ệ ộ ự ể M i b ng bao g m các y u t : ỗ ả ồ ế ố - Tên b ng: xác nh duy nh t m i b ng trong CSDL ả đị ấ ỗ ả - C u trúc b ng: t p các c t, m i c t ph i có tên và ki u d ấ ả ậ ộ ỗ ộ ả ể ữ li u ệ - D li u c a b ng: T p các dòng hi n có trong b ng. ữ ệ ủ ả ậ ệ ả
  • 45. Khóa của bảng 45 Khóa là t p các c t mà giá tr c a nó là duy nh t ậ ộ ị ủ ấ trong b ng. ả - Ví d : MaSV, MaMH, vv… ụ  M t b ng có th có nhi u khóa, khóa c ch n cài t g i ộ ả ể ề đượ ọ đặ ọ là khóa chính các khóa còn l i g i là khóa ph ạ ọ ụ  Khóa ngo i: là t p thu c tính c a b ng này nh ng l i là khóa ạ ậ ộ ủ ả ư ạ chính c a b ng khác. ủ ả - M c ích c a khóa ngo i là tham chi u n giá tr c a b ng ụ đ ủ ạ để ế đế ị ủ ả khác và m b o tính úng n, h p l c a d li u trong để đả ả đ đắ ợ ệ ủ ữ ệ CSDL. - Ví d : ụ
  • 46. Ví dụ khóa ngoại 46  Trong b ng LOP, MaKhoa chính là khóa ngo i ả ạ
  • 47. 3/ View 47  View là i t ng CSDL cho phép k t h p, s p x p, tính đố ượ ế ợ ắ ế toán, trích l c d li u b ng cách s d ng T-SQL d ng ọ ữ ệ ằ ử ụ ạ Select.  View c xem nh là m t b ng o. đượ ư ộ ả ả
  • 48. 4/ Chỉ mục 48  Index trong SQL Server là một cấu trúc dữ liệu được lưu trữ trên ổ cứng tương ứng với một table hoặc view nhằm mục đích tăng tốc độ việc truy xuất dữ liệu từ table hoặc view đó.  Một index chứa các khóa được xây dựng từ một hoặc nhiều trường (cột) trong table hoặc view. Các khóa này được lưu trong một cấu trúc dạng B-Tree và cho phép SQL Server tìm bản ghi hoặc các tập hợp bản ghi tương ứng với những khóa này một cách nhanh chóng.  Một Table hoặc một view có thể chứa hai loại chỉ mục sau: - Clustered - Non-Clustered
  • 49. Clustered Index 49  L u tr và s p x p d li u v t lý ư ữ ắ ế ữ ệ ậ trong table hoặc view dựa trên các giá trị khóa của chúng. Các cột khóa này được chỉ định trong định nghĩa Index. Mỗi table hoặc view ch có duy nh t ỉ ấ một Clusterd Index vì bản thân các dòng dữ liệu được lưu trữ và sắp xếp theo thứ tự vật lý dựa trên các cột trong loại Index này.
  • 50. Non-Clustered Index 50  Là một cấu trúc tách biệt với các bản ghi (hàng) trong bảng hoặc view. Mỗi một chỉ mục loại này chứa các giá trị của các cột khóa trong khai báo chỉ mục, ở mỗi một bản ghi giá trị của khóa trong chỉ mục này chứa một con trỏ tới bản ghi tương ứng với nó trong bảng. Một bảng có thể có đến 249 non-clustered index.
  • 51. Chú ý: Quy tắc viết lệnh  Không phân biệt chữ hoa, chữ thường  Nội dung 1 lệnh SQL có thể viết trên nhiều dòng.  Từ khoá không viết tắt hay phân cách trên nhiều dòng  Các mệnh đề thường được đặt trên nhiều dòng khác nhau  Ta có thể sử dụng các ký tự đặc biệt như: +, -, /, *,... để biểu diễn giá trị trong câu lệnh. 51
  • 52. Chú thích và tiếng việt  Dòng đơn  --  Nhóm dòng  /* … */  Sử dụng tiếng việt trong truy vấn - Chọn kiểu dữ liệu hỗ trợ Unicode (nchar, nvarchar, ntext) - Thêm tiền tố N (National Characters) vào trước chuỗi cần nhập để báo cho SQL Server đây là chuỗi Unicode  VD: - Insert into PHONGBAN( MAPHG, TENPHG ) values('QL', N'Quản lý‘) 02/13/19 08:44 52