Quản trị xuất, nhập, sao lưu, phục hồi dữ liệu

Một phần của tài liệu Tài liệu học tập cơ sở dữ liệu (Trang 53)

a. Import –Nhập dữ liệu.

Dựng nhập dữ liệu từ ngoài vaof CSDL từ hệ quản trị CSDL khỏc hoặc CSDL khỏc của SQL Server.

- Chọn Databases -> All tasks -> Import Data...

- Next -> Chọn Data Source (Cú thể là SQL Server, Oracle, Access,...), trong vớ dụ minh họa chọn Access.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

- Chọn tập tin (file name) -> Next

- Chọn Instance cần chuyển dữ liệu vào, user name., tờn CSDL (cú trước hoặc

tạo tại thời điểm này bằng cỏch chọn New) -> Next

- Chọn cỏch chuyển toàn bộ bảng dữ liệu hay thụng qua cõu lệnh truyờn vấn

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

- Chọn cỏc bảng, khung nhỡncần Import (cú thể lựa chọn một số chức năng khỏc

cụ thể hơn, bạn đọc tự tỡm hiểu), tờn cỏc bảng, khung nhỡn của SQL Server nhận dữ liệu -> Next.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

- Xem thụng bỏo sau khi chuyển -> Done

b. Export –Xuất dữ liệu.

Phần này giới thiệu kỹ thuật xuất dữ liệu từ một CSDL của SQL Server ra một hệ quản trị CSDL khỏc hoặc một CSDL khỏc của SQL Server. Tương tự như Import nhưng Export thực hiện Data Source là SQL Server, cũn Destination là hệ quản trị CSDL khỏc hoặc CSDL khỏc của SQL Server (phần này bạn đọc tự xem xột).

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP c. Cỏc mụ hỡnh phục hồi dữ liệu

+ Full Recovery model: Là mụ hỡnh phục hồi toàn bộ hoạt động giao dịch của dữ

liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).Với mụ hỡnh này ta cú

thể phục hồi dữ liệu tại một thời điểm trong quỏ khứ đó được lưu trong transaction log file.

+ Bulk-Logged Recovery Model: Mụ hỡnh này được thực thi cho cỏc thao tỏc bcp, bulk insert, create index, writetext, updatetext, cỏc hoạt động này chỉ nhật ký sự kiện vào log để biết mà khụng sao lưu toàn bộ dữ liệu, chi tiết như trong full recover. Cỏc sự kiện Insert, Update, Delete vẫn được nhật ký và khụi phục bỡnh thường.

+ Simple Recovery Model: Với mụ hỡnh này bạn chỉ phục hồi lại thời điểm backup gần nhất mà khụng theo thời điểm khỏc trong quỏ khứ.

Cỏch đặt mụ hỡnh khụi phục:

- Chọn CSDL.

- Nhấn nỳt phải chuột -> Properties -> Options -> Recovery

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Xột vớ dụ sau:Giả sử ta cú một CSDL được backup theo chiến lược như hỡnh vẽ:

Nhỡn hỡnh trờn ta thấy CSDL được lập lịch Full Database Backup vào ngày chủ nhật, Differential Database Backup vào ngày thứ ba và thứ năm, cũn Log Database Backup vào 5 ngày trong tuần, ngày thứ sỏu cú sự cố với CSDL data file bị hỏng, vấn đề đặt ra là phải phục hồi dữ liệu và CSDL hoạt động bỡnh thường. Ta phải làm cỏc bước sau:

+ Thực hiện Backup log file (giả sử log file khụng bị hỏng). + Khụi phục Full Database của ngày chủ nhật.

+ Phục hồi Differential Database của ngày thứ năm.

+ Khụi phục Transaction log backup ngày thứ năm.

d. Sao lưu cơ sở dữ liệu

Trước khi xem xột kỹ thuật sao lưu CSDL, ta thống nhất một số thuật ngữ bằng tiếng Anh như sau:

+ Backup: Là quỏ trỡnh copy toàn bộ hoặc một phần database, transaction log, file, file group thành lập một backup set được chứa trong backup media (disk hoặc tape) bằng cỏch sử dụng một backup device (tape drive name hoặc physical filename).

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

+ Backup file: Một file chứa Backup set.

+ Backup media: LÀ Disk hoặc tape.

+ Backup set: Một bộ backup một lần backup đơn chứa trờn backup media. Cỏc bước thực hiện backup như sau:

- Chọn CSDL cần backup.

- Nhấn phải chuột -> All Tasks -> Backup Database…

- Nhập cỏc tham số, lựa chọn kiểu.

e. Phục hồi cơ sở dữ liệu

Là chức năng thực hiện khụi phục dữ liệu đó sao lưu, tựy theo chiến lược backup mà bạn cú thể phục hồi đến thời điểm nào, thu được bộ dữ liệu trong quỏ khứ như thế nào. Khụi phục dữ liệu được thực hiện theo thứ tự backup, thụng tin này được lưu trữ trong msdb.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Cỏc bướcthực hiện như sau:

- Chọn mục Databases -> Nhấn nỳt phải chuột -> All Tasks -> Restore

Database… - Nhập tham số, chọn mụ hỡnh khụi phục. 2.2.6 Ngụn ngữ SQL 2.2.6.1 Cỏc phộp toỏn định nghĩa CSDL o Lệnh tạo và xúa CSDL: - Tạo CSDL: Create Database <tờn CSDL> - Xúa CSDL Drop Database <tờn CSDL> - Vớ dụ:Tạo CSDL QuanLyNhanSu

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

o Lệnh tạo bảng: CREATE TABLE

o Để định nghĩa một bảng

- Tờn bảng

- Cỏc thuộc tớnh

• Tờn thuộc tớnh

• Kiểu dữ liệu

• Cỏc ràng buộc toàn vẹn trờn thuộc tớnh (RBTV)

o Cỳ phỏp CREATE TABLE <Tờn_bảng> ( <Tờn_cột> <Kiểu_dữ_liệu1>, <Tờn_cột> <Kiểu_dữ_liệu2>, ) o Kiểu dữ liệu

Char(w): Kiểu dữ liệu ký tự cú kớch thước cố định.

Varchar(w): Kiểu dữ liệu ký tự cú thay đổi từ 0 đến giỏ trị max là 2000 Number: Kiểu dữ liệu số

Int: Kiểu số nguyờn

Datetime: Kiểu dữ liệu ngày thỏng Logical: Kiểu dữ liệu logic (True/Flase) …

o Vớ dụ:Tạo bảng Nhõn Viờn với cỏc thuộc tớnh: Mó nhõn viờn, tờn nhõn viờn, Ngày sinh, địa chỉ, giới tớnh, lương, mó người quản lý, phũng ban.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

CREATE TABLE NHANVIEN ( MANV CHAR(9), TENNV VARCHAR(50), NS DATETIME, DCHI VARCHAR(50), GT CHAR(3), LUONG INT, MA_NQL CHAR(9), PHG INT )

o Lệnh sửa bảng (ALTER TABLE ): Được dựng để thay đổi cấu trỳc bảng hoặc

thay đổi RBTV.

- Thờm cột

ALTER TABLE <Tờn_bảng>

ADD COLUMN <Tờn_cột> <Kiểu_dữ_liệu> [<RBTV>]

Vớ dụ: ALTER TABLE NHANVIEN

ADD COLUMN NGHENGHIEP CHAR(20)

- Xúa cột

ALTER TABLE <Tờn_bảng> DROP COLUMN <Tờn_cột>

Vớ dụ: ALTER TABLE NHANVIEN DROP COLUMN NGHENGHIEP

- Mở rộng cột

ALTER TABLE <Tờn_bảng> ALTER COLUMN

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Vớ dụ: ALTER TABLE NHANVIEN ALTER COLUMN

NGHENGHIEP CHAR(50)

o Lệnh xúa bảng (DROP TABLE): Được dựng để xúa cấu trỳc bảng (Tất cả dữ

liệu của bảng cũng bị xúa)

Cỳ phỏp: DROPTABLE <Tờn_bảng>

Vớ dụ: DROP TABLE NHANVIEN

o Thờm một bộ (Insert Into)

Cõu lệnh INSERT INTO nhằm mục đớch chốn một bản ghi vào một bảng theo yờu cầu của người dựng.

Cỳ phỏp:

INSERT INTO tờn_bảng(Danh_sỏch_tờn_cột) VALUES (cỏc_giỏ_trị)[cõu_hỏi_con] Vớ dụ:

Lưu ý:Khi thờm cỏc bộ vào tất cả cỏc thuộc tớnh trong bảng, ta cú thể bỏ qua việc liệt kờ danh sỏch tờn cột (xem vớ dụ dưới).

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

o Xúa bản ghi ( Delete)

Mệnh đề xúa bản ghi cú thể được thực hiện cho một hoặc nhiều bản ghi thỏa món một điều kiện nào đú.

Cỳ phỏp:

DELETE tờn_bảng [FROM {tờn_bảng| view}] [WHERE biểu_thức_điều_kiện]

Vớ dụ:

o Sửa đổi dữ liệu ( Update)

Mệnh đề Update dựng để cập nhật (sửa đổi) lại dữ liệu đó tồn tại trong bảng. Khi UPDATE được sử dụng, nú thường đi với mệnh về Where.

Cỳ phỏp:

UPDATE tờn_bảng SET tờn_cột = biểu_thức [FROM tờn_bảng] [WHERE biểu_thức_điều_kiện]

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Vớ dụ:

Lưu ý:Khi sử dụng lệnh Update mà khụng cú mệnh đề Where đi kốm thỡ mệnh đề Update sẽ ảnh hưởng đến toàn bộ cỏc thuộc tớnh nằm sau mệnh đề SET trờn tất cả cỏc bản ghi.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

2.2.6.2 Truy vấn đơn giảna. Khối lệnh SELECT a. Khối lệnh SELECT

Cấutrỳc đơn giản nhất trong SQL là khối SELECT, được miờu tả về cỳ phỏp

nhưlà một khối select – from- where.

Một cỏch tổng quỏt khối select gồm ba mệnh đề chớnh:

- Select : Xỏc định nội dung cỏc cột cần đưa ra kết quả - From : Xỏc định cỏc bảng ( quan hệ) cần lấy thụng tin ra - Where : Xỏc định điều kiện cỏc bản ghi được chọn để đưa ra.

Ngoài ra, để mở rộng khả năng của ngụn ngữ, khối select- from- where cũn

được bổ sung thờm cỏc mệnh đề group by, order by, having, cỏc hàm mẫu và một số phần mềm cũn cú thờm cả mệnh đề compute, for browse. Trong cỏc phần sau sẽ trỡnh bày chi tiết từng mệnh đề.

Dạng tổng quỏt của khối select được biểu diễn như sau :

SELECT [*| DISTINCT] danh_sỏch_chiếu

FROM danh_sỏch_tờn_bảng| tờn_cỏc_view

[WHERE biểu_thức_điều_kiện]

[GROUP BY danh_sỏch_tờn_cột] [HAVING biểu_thức_điều_kiện]

[ORDER BY danh_sỏch_cụt [ASC|DESC]] Vớ dụ:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

b. Tỡm kiếm khụng điều kiện

Trước hết làm quen với cỏc cõu hỏi chỉ liờn quan đến một bảng. Trong mệnh đề select cú danh sỏch chiếu. Danh sỏch này xỏc định tờn cỏc cột cần cú trong bảng kết

quả. Nếu xuất hiện giỏ trị ’*‘ (Select * from….) cú nghĩa là chọn toàn bộ cỏc cột của

bảng.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

* Lưu ý:Sau khi thực hiện cõu lệnh SQL, để bảng đỳng là một quan hệ (cú nghĩa là khụng cú bộ giỏ trị nào trựng nhau) thỡ trong mệnh đề select ta dựng từ khúa

DISTINCT.

Vớ dụ:Cho bảng Nhanvien (MaNV, TenNV, Ngaysinh, Dchi, Luong, GT, MaPB)

Hiển thị bảng lương của nhõn viờn trong cụng ty? SELECT LUONG

FROM NHANVIEN

c. Tỡm kiếm với điều kiện đơn giản

Thụng thường, việc tỡm kiếm đoan giản chỉ cần thờm điều kiện vào sau từ khúa

where.

Trong SQL, cỏc phộp so sỏnh được sử dụng bao gồm >, < , >=, <=,<>.

Cỏc phộp toỏn logic: AND, OR, và NOT Cỏc từ khúa: BETWEEN … AND, IN,… Vớ dụ :

Tỡm kiếm trong bảng Employees những người cú lương (salary) lơn hơn 10000.

SELECT DISTINCT LUONG

FROM NHANVIEN LUONG 3.000.000 4.000.000 2.500.000 Kết quả:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

d. Tỡm kiếm cú xử lý xõu ký tự

Xử lý xõu ký tự gần đỳng cũn được gọi là phộp tớnh ‘thụng minh’. Trong trường hợp người sử dụng khụng nhớ rừ tờn người hoặc địa danh… thỡ việc tỡm kiếm gần đỳng này mang lại rất nhiều lợi ớch.

Để thực hiện việc tỡm kiếm dần đỳng xõu ký tự, SQL sử dụng toỏn tử LIKE.

Cỳ phỏp:

Select …..From….Where …..LIKE ‘[ _ ][%]Xõu_ký_tự[%][ _ ]’

Khi sử dụng ký hiệu phần trăm (%) vớ dụ như: ‘Alex%’ thỡ điều này cú nghĩa là

chỳng ta đang thực hiện việc tỡm kiếm với điều kiện xõu ký tự bao gồm {Alex[xõu ký

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

theo sau nú là bất kỳ ký tự nào. Tương tự như % , khi sử dụng ký hiệu dấu gạch dưới

( _ ) thỡ mỗi dấu gạch này thể hiện cho mộtký tự.

Vớ dụ 1:

Vớ dụ 2:

SELECT MANV, TENNV FROM NHANVIEN

WHERE TenNV LIKE ‘Nguyen _ _ _ _’ Vớ dụ 3:

SELECT MANV, TENNV FROM NHANVIEN

WHERE TenNV LIKE ‘Nguyen %’

e. Tỡm kiếm nhờ sử dụng IN và BETWEEN

Ngoài việc sử dụng cỏc con số, xõu ký tự cụthể thỡ SQL cung cấp một số toỏn

tử giỳp việc diễn giải điều kiện đơn giản và ngắn gọn hơn cho người dựng, ở đõy sử

dụng toỏn tử IN và BETWEEN.

Toỏn tử In và Between cú cỳ phỏp như sau:

Select…..From….Where …. IN (Tập hợp)

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Vớ dụ 1: Cho bảng Nhanvien (MaNV, TenNV, Ngaysinh, GT, Luong, MaPB)

Tỡm những nhõn viờn nào cú lương từ 2 triệu đến 3 triệu đồng?

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong> 2.000.000 AND Luong< 3.000.000

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong BETWEEN 2.000.000 AND 3.000.000

Vớ dụ 2: Tỡm những nhõn viờn nào cú lương một trong 3 mức sau: 2 triệu, 3 triệu, 4 triệu đồng.

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong= 2.000.000 OR Luong= 3.000.000 OR Luong=4.000.000 

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong IN ( 2.000.000 , 3.000.000, 4.000.000) Vớ dụ 3:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP f. Tỡm kiếm cú sắp xếp

Vấn đề đặt ra khi chỳng ta cần sắp xếp dữ liệu truy vấn theo một cỏch nào đú.

SQL cung cấp mệnh đề ORDER BY giỳp chỳng ta thực hiờn việc này.

Từ khoỏORDER BYđược sử dụng để sắp xếp kết quả trả về. Mệnh đề

ORDER BY được dựng để sắp xếp cỏc dũng.

Cỳ phỏp:

Select …..From….Where…..ORDER BY (Danh_sỏch_cột) [ASC|DESC]

Trong đú:

- ASC: Sắp xếp tăng dần (Mặc định khi khụng cú chỉ thị)

- DESC: Sắp xếp giảm dần Vớ dụ: BảngOrders: Company OrderNumber Sega 3412 ABC Shop 5678 W3Schools 2312 W3Schools 6798

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

 Để lấy danh sỏch cỏc cụng ty theo thứ tự chữ cỏi (tăng dần): SELECT Company, OrderNumber FROM Orders

ORDER BY Company Kết quả trả về: Company OrderNumber ABC Shop 5678 Sega 3412 W3Schools 6798 W3Schools 2312

 Lấy danh sỏch cỏc cụng ty theo thứ tự chữ cỏi (tăng dần) và hoỏ đơn đặt hàng theo thứ tự số tăng dần:

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

Kết quả trả về: Company OrderNumber ABC Shop 5678 Sega 3412 W3Schools 2312 W3Schools 6798

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

 Lấy danh sỏch cỏc cụng ty theo thứ tự giảm dần: SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

Kết quả trả về: Company OrderNumber W3Schools 6798 W3Schools 2312 Sega 3412 g. Tỡm kiếm cú chứa phộp tớnh tập hợp

Trong khi truy vấn dữ liệu, việc truy vấn cú thể thực hiện cỏc phộp tớnh trờn tập hợp bao gồm cả việc tỡm kiếm. SQL cung cấp toỏn tử MINUS nhằm phục vụ truy vấn, tỡm kiếm cú chưa cỏc tập hợp.

Toỏn tử MINUS cú tỏc dụng gần giống như một toỏn tử trừ ‘-‘ hai tập hợp.

Vớ dụ:

Bảng Jobs cú trường Job_ID chứa tất cả cỏc mó cụng việc (Job) của một cụng ty A. Bảng Job_history cú trường Job_ID chứa cỏc mó cụng việc mó nhõn viờn đú đó làm trong thỏng. Để tỡm ra mó cụng việc chưa được làm trong thỏng ta sử dụng cõu lệnh truy vấn SQL như sau:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Ngoài ra, cõu lệnh dưới đõy cũng là tương đương

2.2.6.3 Truy vấn lồng nhau

Trong phần này trỡnh bày việc tỡm kiếm với nhiều bảng qua việc sử dụng ỏnh xạ lồng nhau hoặc qua phộp kết nối.

Phộp kết nối

Trong phộp kết nối, cỏc cột tham gia kết nối phải cú miền giỏ trị cú thể so sỏnh được với nhau. Tờn cột của cỏc bảng khỏc nhau cú thể được viết tường minh qua tờn

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Cỳ phỏp: Select ….

From Table1, Table2

Where Table1.ColName = Table2.ColName

Vớ dụ 1: Cho cơ sở dữ liệu quản lý thụng tin bỏn hàng của cỏc đại lý gồm cỏc

quan hệ sau:

 S(S#, Sname, City, Status)

 P(P#, Pname, Color, Weight, Price)  SP(S#, P#, Sdate, QTY) Tỡm tờn cỏc đại lý đó cung cấp ớt nhất một mặt hàng? Select S.SName From S, SP Where S.S# = SP.S# Vớ dụ 2:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Ánh xạ lồng

Ngoài cỏch sử dụng phộp nối ta cú thể sử dụng ỏnh xạ lồng để thực hiện cụng việc tương tự. Phộp lồng nhau cú thể được lồng nhiều mức hoặc sử dụng ỏnh xạ lồng với sự dẫn trỏ giữa cỏc khối tới cỏc bảng khỏc nhau.

Về mặt cỳ phỏp cũng tương tự như khi sử dụng phộp nối, tuy nhiờn thay

vỡ sử dụng nhiều bảng trong mỗi mệnh đề select- from- where thỡ ỏnh xạ chỉ dựng

một bảng.

Vớ dụ 1: Cho cơ sở dữ liệu quản lý thụng tin bỏn hàng của cỏc đại lý gồm cỏc

quan hệ sau:

 S(S#, Sname, City, Status)

 P(P#, Pname, Color, Weight, Price)

 SP(S#, P#, Sdate, QTY)

Tỡm tờn cỏc đại lý đó cung cấp ớt nhất một mặt hàng?

Select SName From S

Where S# IN (Select S# from SP)

Vớ dụ 2: Cho cơ sở dữ liệu gồm cỏcbảng:

Job (Job_id, Job_title, Min_Salary, Max_Salary)

Employees (Employee_id, First_name, Last_name, email, phone_number, hire_date, Job_id, salary)

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

2.2.6.4 Truy vấn sử dụng hàm tớnh toỏn và gom nhúma. Tỡm kiếm nhờ mệnh đề GROUP BY a. Tỡm kiếm nhờ mệnh đề GROUP BY

Khi truy vấn mẩu tin trờn một hay nhiều bảng dữ liệu, thụng thường cú những bản ghi nào đú cựng giỏ trị.

Mệnh đề GROUP BY…được thờm vào SQL bởi vỡ cỏc hàm tập hợp (như

Một phần của tài liệu Tài liệu học tập cơ sở dữ liệu (Trang 53)