1. Trang chủ
  2. » Luận Văn - Báo Cáo

Quản lý đăng ký môn học của sinh viên

75 1,5K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 549,04 KB

Nội dung

Vì thế đề tài “Quản lý đăng ký môn học của sinh viên” sử dụng hệ quản trị cơ sở dữ liệu SQL Server trên môi trường đa người dùng là hy vọng có thể giúp cho sinh viên tự đăng ký môn học

Trang 1

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

MỤC LỤC

GIỚI THIỆU ĐỀ TÀI 6

Phần I : CƠ SỞ LÝ THUYẾT .10

Chương 1: Giới thiệu mô hình Client/ Server và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 10

I Mô hình Client/Server 10

1 Khái niệm về phần cứng 10

2 Khái niệm về xử lý 10

II Cơ sở dữ liệu phân tán 12

1 Hệ thống phân tán .12

2 Giới thiệu MS DTC 13

3 Các giao dịch phân tán(Distributed Transactions) 14

4 Một số lệnh được sử dụng trong giao dịch 15

III Giới thiệu Microsoft SQL Server 18

A Giới thiệu 18

B SQL Server và mô hình Client/Server 19

C Các kiểu đối tượng 19

1 Bảng (table) 20

2 Khung nhìn (View) 20

3 Chỉ mục (index) 20

4 Kiểu dữ liệu (Data type) 21

5 Trị ngầm định ( Default value) 22

6 Qui tắc (Rule) 22

7 Thủ tục trữ sẵn (Stored Procedures) 22

Trang 2

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

8 Bộ trích khởi (Trigger) 23

9 Ràng buộc (Contraint) 23

D Kiến trúc kho lưu trữ dữ liệu 23

1 Trang (Page) 23

2 Liên trang (Extend page) 24

3 Đơn vị phân bổ 24

4 Các sổ theo dõi giao dịch 24

E Cách tạo các cơ sở dữ liệu 24

1 Tạo cơ sở dữ liệu bằng SQL Enterprice Manager 24

2 Tạo cơ sở dữ liệu bằng Transact_SQL 25

3 Ấn định các tuỳ chọn cho cơ sở dữ liệu 26

F Cách tạo các đối tượng cơ sở dữ liệu 28

1 Tạo bảng 28

2 Tạo khung nhìn 29

3 Tạo chỉ mục .30

G Quản trị tài khoản người dùng 30

1 Đăng nhập và các tài khoản người dùng 31

2 Tạo nhóm người dùng 34

H Quản trị dữ liệu 36

1 Lưu dự phòng cơ sở dữ liệu 36

2 Phục hồi cơ sở dữ liệu 37

Cấp phát và thu hồi các quyền cho người dung 38

Chương 2 : Trình điều khiển ODBC và những cải tiến tốc độ trong mô hình Client/Server 40

I Trình điều khiển ODBC 40

Trang 3

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

A Kiến trúc ODBC 40

1 Lớp ứng dụng 40

2.Bộ quản lý điều khiển 40

3 Trinh điều khiển ODBC 41

4 Nguồn dữ liệu 41

B Cách hoạt động của các trình điều khiển ODBC 41

1 Trình điều khiển đơn tầng 41

2 Trình điều khiển đa tầng 42

II Những vấn đề trong môi trường đa người dùng 43

1 Khoá chặt 43

2 Nghẽn 43

3 Khoá chết 44

III Những cải tiến nhằm giảm thiểu việc truyền dữ liệu trên mạng 44

1 Chọn những hàng cần thiết 44

2 Chọn những cột cần thiết 44

3 Chỉ cập nhật những cột đã thay đổi 45

4 Sử dụng thủ tục có sẵn 45

IV Hỗ trợ của Visual Foxpro cho mô hình client/server 45

1 Mục đích của nguyên mẫu 45

2 Xây dựng một nguyên mẫu cục bộ cho ứng dụng 46

3 Sự tiện dụng tiện ích Upsizing Wizard để đưa các bảng dữ liệu lên server 47

4 Một số lệnh_hàm cơ bản của Visual Foxpro hỗ trợ cho việc lập trình Client/server 47

Phần II :XÂY DỰNG ỨNG DỤNG 49

Chương 3 : Thu thập thông tin và tổ chức dữ liệu 49

Trang 4

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

I Quá trình tìm kiếm thông tin 49

1 Thông tin về sinh viên 49

2 Thông tin về khoa 49

3 Thông tin về ngành học trong khoa 49

4 Thông tin về đối tượng 49

5 Thông tin về môn học 49

6 Thông tin về học kỳ niên khoá 49

7 Thông tin về lớp học 50

8 Thông tin về nhóm học lịch học 50

9 Thông tin về phòng học 50

10 Việc đăng ký môn học 50

11 Việc mở môn học 50

12 Thông tin về phiếu thu 50

II Xây dựng các thực thể 53

III Các phụ thuộc hàm 55

IV Các liên kết 56

V Mô hình quan niêm cho dữ liệu (MCD) 58

VI Mô hình luận lý cho dữ liệu (MLD) 61

VII Mô hình vật lý cho dữ liệu (MPD) và các ràng buộc toàn vẹn 61

VIII Lưu đồ dòng dữ liệu 65

IX Mô hình quan niệm cho xử lý 66

X Thiết kế các mẫu from 67

Chương 4 : Giới thiệu chương trình 71

I Giới thiệu chung 71

1 Mục đích của chương trình 71

Trang 5

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

2 Yêu cầu của chương trình 71

3 Ngôn ngữ cài đặt 71

II Giới thiệu hệ thông menu 72

Phần III : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 74

I Kết luận 74

II Hướng phát triển 74

Trang 6

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

GIỚI THIỆU ĐỀ TÀI

I Giới thiệu:

Hiện nay, chúng ta đang sống trong kỷ nguyên của Công Nghệ Thông Tin (CNTT) Không ai có thể nghi ngờ gì về vai trò của CNTT trong đời sống,

trong hoạt động kinh doanh, thương mại …từ doanh nghiệp, xí nghiệp, công ty,

đến quốc gia, quốc tế Đặc biệt từ khi mạng máy tính ra đời, việc nắm bắt thông

tin lại trở nên nhanh chóng, dễ dàng, chính xác và kịp thời hơn…

Càng ngày yêu cầu của người dùng càng cao, khối lượng dữ liệu cần xử

lý ngày càng nhiều Hệ thống Client_Server và sự hỗ trợ về CSDL phân tán đã

giúp cho việc lưu trữ các dữ liệu lớn trên một hay nhiều nơi khác nhau tuỳ theo

nhu cầu và chức năng của chương trình nhưng vẫn đảm bảo được tính nhất

quán, chính xác và an toàn Rất tiện dụng trong việc truy xuất dữ liệu vì ở bất

kỳ trạm làm việc nào cũng cảm thấy dữ liệu đang ở tại máy tính của mình

Cùng với sự phát triển của CNTT, từng bước các ban ngành, tổ chức, cơ quan…đã ứng dụng vào công tác quản lý với mong mỏi đạt được sự nhanh

chóng, chính xác, an toàn…Cũng như đối với trường học: Giáo dục hay Đào

tạo cũng rất cần việc quản lý học sinh, sinh viên trong học tập Có nhiều công

cụ với nhiều tính năng mới cho phép triển khai các ứng dụng trong việc quản lý

tốt hơn như SQL Server, Oracle, Access…

Thực trạng đăng ký môn học tại phòng Giáo vụ trường Đại học Cần Thơ

hiện nay là quá tải Vì thế đề tài “Quản lý đăng ký môn học của sinh viên” sử

dụng hệ quản trị cơ sở dữ liệu SQL Server trên môi trường đa người dùng là hy

vọng có thể giúp cho sinh viên tự đăng ký môn học tại mỗi khoa làm giảm sự

trì trệ trong việc đăng ký ở phòng Giáo vụ

II Mô tả hệ thống:

Một sinh viên sau khi hoàn thành thủ tục nhập học phải cho biết họ và tên, ngày sinh, giới tính, quê quán gồm tên huyện và tên tỉnh Nếu sinh viên

thuộc đối tượng (con liệt sĩ, con thương binh, con gia đình có công với nước,

vùng sâu, vùng xa…) thì có một tỷ lệ tương ứng giảm học phí Mỗi sinh viên

có một mã số gọi là mã số sinh viên, mã số này là duy nhất, không thay đổi

trong suốt quá trình sinh viên học tại trường Căn cứ ngành học sinh viên thi

đậu vào mà sinh viên đó sẽ thuộc sự quản lý của một khoa nào đó: nghĩa là mỗi

sinh viên thuộc một ngành, một khoa có thể gồm nhiều ngành học khác nhau

Vào đầu học kỳ mới sinh viên đến phòng Giáo vụ đăng ký các môn học

Việc đăng ký môn học được thể hiện qua một phiếu đăng ký Trên phiếu đăng

ký có thông tin về sinh viên (mã sinh viên, họ tên), ngày đăng ký, học kỳ và

niên khoá đăng ký Một phiếu đăng ký có thể có nhiều môn học (mã môn, tên

môn và số đơn vị học trình tương ứng với môn đó) Các môn học mà sinh viên

đăng ký phải được dạy trong học kỳ mà phòng Giáo vụ đã có kế hoạch trong

thời khoá biểu và được thông báo cho sinh viên biết trước khi đăng ký

Trang 7

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Mỗi môn học ngoài việc định danh bằng tên còn kèm theo số tín chỉ học trình và được gán cho một mã số môn học Môn học được chia làm hai loại:

môn lý thuyết và môn thực hành Nếu đăng ký môn lý thuyết sinh viên phải trả

27000 đồng/tín chỉ, còn với môn thực hành là 37000 đồng/tín chỉ Mỗi ngành

học bao gồm một hệ thống nhiều môn mà sinh viên thuộc ngành đó phải theo

học nằm trong nội dung chương trình giảng dạy của ngành đó; có thể có nhiều

môn thuộc chương trình giảng dạy của nhiều ngành học khác nhau Mỗi học

kỳ, căn cứ vào việc đăng ký các môn học và đối tượng của sinh viên mà người

ta xác định được số tiền học phí mà mỗi sinh viên sẽ phải đóng

Sau khi đăng ký môn học xong, sinh viên phải đến phòng Tài vụ của trường để đóng học phí Mỗi lần khi một sinh viên đến nộp học phí, một phiếu

thu được lập, trên đó ghi nhận mã số sinh viên, ngày lập, số tiền mà sinh viên

đóng và được đánh số thứ tự để tiện việc theo dõi Mỗi phiếu thu chỉ thu tiền

học phí của một sinh viên tại một học kỳ Mỗi học kỳ, sau khi cho sinh viên

đăng ký môn học, để khuyến khích sinh viên đóng học phí sớm nhà trường

cũng qui định một ngày mà sinh viên đóng trước ngày đó sẽ được giảm một tỷ

lệ là 5% Sinh viên có thể đóng học phí nhiều lần trong cùng học kỳ nhưng phải

trước ngày hết hạn đóng học phí

Khi hết hạn đóng học phí phòng Tài vụ sẽ thống kê xác định danh sách những sinh viên còn nợ học phí trong học kỳ đó để gửi cho bộ phận quản lý của

phòng Giáo vụ loại bỏ những sinh viên đó ra khỏi danh sánh dự thi

III Yêu cầu đối với hệ thống:

Để quản lý việc đăng ký môn học cho sinh viên, thực hiện xây dựng hệ thống thông tin quản lý trên mạng cục bộ đáp ứng được các nhu cầu về quá

trình quản lý, thống kê, truy vấn và in ấn…Với các mục tiêu cần đạt được:

v Dựa vào dữ liệu về hồ sơ sinh viên, môn học, dự kiến kế hoạch giảng dạy ở mỗi học kỳ

v Thiết kế quá trình đăng ký môn học trên nhiều máy cùng một lúc, để sinh viên có thể đăng ký ở nhiều nơi

v In các báo biểu phục vụ trong việc đăng ký môn học và xếp lịch học cụ thể cho từng sinh viên

v Thống kê các báo biểu cần thiết cho việc quản lý học tập của sinh viên

v Thống kê kết quả thu học phí theo từng khoa, ngành và in danh sách sinh viên nợ học phí

IV Hướng giải quyết:

Với mục tiêu đề ra, phương pháp giải quyết được thực hiện như sau :

Trang 8

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

♦ Cơ sở dữ liệu được tổ chức trên Microsoft SQL Server, từ đó các trạm làm việc có thể dùng chung cơ sở dữ liệu này mà vẫn bảo đảm được

tính nhất quán, chính xác và an toàn

♦ Do hệ thống sử dụng trên mạng cục bộ nên ứng dụng được viết bằng Microsoft Visual Foxpro 7.0 thông qua ODBC (Open Database

Connectivity) để truy xuất cơ sở dữ liệu

Nội dung của đề tài bao gồm :

Phần I: GIỚI THIỆU ĐỀ TÀI

• Giới thiệu

• Mô tả hệ thống

• Yêu cầu đối với hệ thống

• Hướng giải quyết

Phần II: CƠ SỞ LÝ THUYẾT

Chương 1 : Giới thiệu mô hình Client_Server và hệ quản trị cơ sở dữ liệu

Microsoft SQL Server

Chương này nhằm giới thiệu mô hình Client_Server, cách thức hoạt động, các đặc điểm để nó tồn tại một cách vững mạnh trên hệ thống cơ sở dữ

liệu quan hệ và giới thiệu sơ lược về hệ quản trị cơ sở dữ liệu Microsoft SQL

Server, cách tạo các đối tượng cơ sở dữ liệu, cấp quyền cho người dùng và

các thành phần chính yếu để xây dựng một cơ sở dữ liệu cho chương trình

Chương 2 : Trình điều khiển ODBC và những cải tiến tốc độ trong mô hình

Client_Server

Chương này nhằm giới thiệu trình điều khiển ODBC, cách thức hoạt động của nó, những vấn đề cần quan tâm trong môi trường đa người dùng,

những cải tiến nhằm giảm thiểu việc truyền dữ liệu trên mạng và những hỗ trợ

của Visual Foxpro cho mô hình Client_Server

Phần III: ỨNG DỤNG TRONG CÔNG TÁC QUẢN LÝ

Chương 3: Thu thập thông tin và tổ chức dữ liệu

Chương này giới thiệu sơ lược về quá trình thu thập các thông tin cần thiết để xây dựng, tổ chức các mô hình MCD, MLD, MCT cho hệ thống quản

lý đăng ký môn học của sinh viên trường Đại học Cần Thơ

Chương 4: Giới thiệu chương trình

Chương này giới thiệu chung về mục đích, yêu cầu, ngôn ngữ cài đặt cho chương trình Giới thiệu hệ thống menu được xây dựng trên máy khách

Phần IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trang 9

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Khái quát lại các vấn đề đã thực hiện được cũng như những vấn đề chưa thực hiện được hoàn chỉnh và đưa ra hướng giải quyết, phát triển thêm cho sau

này

Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin đã tạo điều kiện

cho em làm đề tài luận văn này Đặc biệt em xin cảm ơn Thầy Đinh Khắc

Quyền và Thầy Nguyễn Thái Nghe đã hướng dẫn tận tình giúp em hoàn thành

luận văn này Dù đã có rất nhiều cố gắng, tuy nhiên do thời gian tương đối hạn

hẹp và kiến thức còn giới hạn, kinh nghiệm thực tế ít nên chắc rằng chương

trình không tránh khỏi những thiếu sót, rất mong nhận được sự chỉ dạy, góp ý

của các thầy cô và các bạn đọc để chương trình được hoàn thiện hơn

Cần Thơ, ngày 10/02/2003 Nguyễn Thuý Hạnh

Trang 10

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Chương 1 : MÔ HÌNH CLIENT-SERVER và HỆ QUẢN TRỊ CƠ SỞ

DỮ LIỆU MICROSOFT SQL SERVER

mạng Việc xây dựng và khai thác ứng dụng trên mạng sẽ dễ dàng hơn nếu có

một hệ thống mạng ổn định, thực thi nhanh và đáng tin cậy Tuy nhiên, đối với

bất kỳ hệ thống mạng nào, khi xây dựng các ứng dụng trên nó ta cũng phải cần

tính toán sao cho việc truyền dữ liệu là tốt nhất ( giảm lượng lưu thông dữ liệu

trên đường truyền mà vẫn đáp ứng yêu cầu về dữ liệu ) và an toàn nhất Mô

hình tính toán client/server nhằm giải quyết vấn đề này

Trong mô hình tính toán Client/Server, các việc xử lý dữ liệu, xử lý logic và giao diện người dùng được phân chia ra và được thực hiện tại nhiều

điểm khác nhau trong mạng Máy Client gởi tới máy chủ các yêu cầu truy vấn

dữ liệu hoặc cập nhật dữ liệu ( Thêm, xoá, sửa các mẫu tin ) Máy server khi

nhận được yêu cầu truy vấn, sau khi kiểm tra quyền truy cập của người sử

dụng, sẽ tiến hành chọn lọc, tính toán, tổng hợp thông tin trong cơ sở dữ liệu

để gửi trả về kết quả truy vấn theo yêu cầu của máy client Khi nhận được yêu

cầu truy cập dữ liệu ( thêm, xoá, sửa ) máy chủ ngoài việc kiểm tra quyền truy

cập của người yêu cầu còn phải bảo đảm việc cập nhật không phá vỡ tính toàn

vẹn của dữ liệu Database Server còn có nhiệm vụ liên lạc với các cơ sở dữ liệu

khác để lấy được các thông tin cần một cách thông suốt cho dù dữ liệu thực sự

nằm phân tán trên nhiều máy chủ khác nhau hay cơ sở dữ liệu phân tán trên

những ứng dụng của khách hàng Những yêu cầu này sẽ được diễn dịch bởi

ứng dụng Server, Server tiến hành thực hiện yêu cầu và gởi trả kết quả thực

hiện (nếu thành công) hoặc thông báo lỗi về cho khách hàng

Trong hệ thống quản trị cơ sở dữ liệu mạng, khái niệm Client_Server được hiểu như sau: một ứng dụng khách hàng (Client) sẽ yêu cầu cung cấp dữ

liệu trích từ một hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS: Relational

Database Management Sysrem) Hệ thống RDBMS (Server) sẽ xử lý yêu cầu

và gởi trả kết quả thực hiện cho khách hàng

Trang 11

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Mô hình truy xuất giữa Client/Server Kiến trúc Client_Server là một phương pháp lý tưởng để tập trung quản

lý các tập tin cơ sở dữ liệu khi kích thước các tập tin này là khá lớn và được

sử dụng bởi nhiều người ở nhiều nơi khác nhau Người sử dụng không trực

tiếp thao tác trên các tập tin cơ sở dữ liệu đặt trên Server mà chỉ thông qua

các câu truy vấn SQL để yêu cầu Sever thực hiện và trả về kết quả thực hiện

cho mình

Như vậy ứng dụng Client_Server cho phép chuyển việc xử lý dữ liệu từ trạm làm việc tới Server giảm đi việc dữ liệu phải chuyển đi chuyển về giữa

Client_Server tránh được tình trạng quá tải trên mạng và sự đòi hỏi về nguồn

lực của mạng, đảm bảo yêu cầu máy chủ có thể phục vụ tốt cho nhiều máy

khách, thời gian thực thi cũng nhanh hơn so với khi trạm làm việc

(workstation) thực hiện truy tìm dữ liệu Chỉ cần Server là một máy đủ mạnh,

máy khách cũng trở nên thông minh và năng động hơn

Mô hình Client_Server tồn tại và phát triển mạnh hơn trong giai đoạn hiện nay trên cơ sở dữ liệu quan hệ là nhờ vào những ưu điểm sau:

♦ Đảm bảo tính toàn vẹn dữ liệu: bảo đảm việc ngăn chặn các lỗi và những bấc hợp lệ trong việc lưu trữ dữ liệu Trong hệ thống cơ sở dữ liệu

quan hệ, tính toàn vẹn dữ liệu có thể được cài đặt ở cấp Server Khi dữ liệu

thay đổi ở hệ thống cơ sở dữ liệu quan hệ, nó sẽ tự động hiển thị giống như

Yêu cầu

Trả lời Yêu cầu

Yêu cầu

Client 1

Client 2

Client n

Trang 12

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

được tạo trên Server hoặc một bảng đã tồn tại có thay đổi thì cũng không ảnh

hưởng đến hoạt động của hệ thống

♦ Lưu trữ dữ liệu hiệu quả, bảo đảm tính nhất quán

qua nhiều dạng phương tiện liên lạc khác nhau: mạng tốc độ cao, đường điện

thoại…Chúng không chia sẻ bộ nhớ cũng như đĩa Các máy tính trong một hệ

thống phân tán có thể rất đa dạng về kích cỡ cũng như chức năng từ các

workstation đến các mainrame Các máy tính trong hệ thống phân tán được

tham chiếu bởi một số các tên khác nhau site, note phụ thuộc vào ngữ cảnh

mà máy được đề cập

Hệ thống phân tán là CSDL phân tán được tách biệt về mặt địa lý, được quản lý tách biệt và có một sự hợp nhất chậm Và có sự phân biệt giữa các giao

dịch cục bộ (local) và toàn thể (global) Giao dịch cục bộ là một giao dịch truy

xuất dữ liệu trong một site tại đó giao dịch đã được khởi xướng Giao dịch toàn

thể là một giao dịch mà nó truy xuất dữ liệu trong một site từ một site khác tại

đó nó được khởi xướng hoặc truy xuất dữ liệu trong một vài site khác nhau

2 Giới thiệu MS DTC :

Microsoft Distributed Transaction Coordinator (MS DTC) là một nhà quản

lý giao dịch cho phép các client ứng dụng trên một vài nguồn dữ liệu khác nhau

Site C Site A

Mạng

Site B Liên lạc thông

qua mạng

Trang 13

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

trong một giao dịch MS DTC liên kết đến các giao dịch phân tán đến tất cả các

server trong giao dịch

SQL server có thể tham gia vào một giao dịch bằng cách:

ü Gọi thủ tục lưu trữ trên các server từ xa đang chạy SQL server

ü Giao dịch cục bộ được cải tiến một cách tự động hoặc tường minh đến một giao dịch phân tán và thêm vào những server từ xa trong giao dịch

ü Cập nhật dữ liệu trên nhiều dữ liệu nguồn OLE DB Nếu dữ liệu nguồn OLE DB này chứa giao diện của giao dịch phân tán OLE

DB thì SQL server cũng có thể thêm chúng vào giao dịch phân tán

Dịch vụ MS DTC liên kết đến giao dịch phân tán để chắc chắn rằng hoặc tất cả

mọi sự cập nhật trên tất cả server được lâu dài hoặc tất cả được xoá bỏ trong

trường hợp lỗi

Trang 14

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Các ứng dụng SQL server cũng có thể gọi MS DTC một cách trực tiếp để bắt

đầu một giao dịch phân tán một cách tường minh Một hoặc nhiều server đang

chạy SQL server có thể được cung cấp thông tin để thêm vào giao dịch phân

tán và liên kết đến giao dịch bằng MS DTC

3 Các giao dịch phân tán (Distributed Transactions)

Các giao dịch phân tán liên kết hai hay nhiều server được xem như là những nhà quản lý tài nguyên Việc quản lý các giao dịch phải được liên kết

với những nhà quản lý tài nguyên bởi một bộ phận server được gọi là nhà quản

lý giao dịch Microsoft SQL server có thể thao tác như là một nhà quản lý tài

nguyên trong các giao dịch phân tán Các giao dịch phân tán được liên kết bởi

nhiều nhà quản lý giao dịch như MS DTC, hay những nhà quản lý giao dịch

khác có chứa X/Open XA cho tiến trình giao dịch phân tán

Một giao dịch trong một SQL server riêng lẻ liên kết đến hai hay nhiều

cơ sở dữ liệu thật ra chỉ là một giao dịch phân tán Tuy nhiên SQL quản lý giao

dịch phân tán cho phép người sử dụng thao tác như là một giao dịch cục bộ

Trong một ứng dụng, một giao dịch phân tán được quản lý bởi một giao dịch cục bộ Khi kết thúc một giao dịch, chương trình ứng dụng yêu cầu hoặc là

giao dịch được bàn giao (committed) hoặc bị cuộn lại (rollback), một giao dịch

phải được quản lý bởi những nhà quản lý giao dịch để làm tối thiểu hoá sự rủi

ro của việc thất bại trên mạng, điều này có thể dẫn đến một số nhà quản lý tài

nguyên cho các giao dịch được bàn giao thành công trong khi những nhà quản

lý tài nguyên khác thì cuộn lại các giao dịch Việc quản lý các tiến trình của

Trang 15

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

giao dịch thành công gồm hai giai đoạn: giai đoạn chuẩn bị và giai đoạn bàn

giao

ü Giai đoạn chuẩn bị:

Khi nhà quản lý giao dịch nhận một yêu cầu commit, nó sẽ gởi một lệnh chuẩn bị đến tất cả các nhà quản lý tài nguyên được lên kết trong giao dịch Khi

đó, mỗi nhà quản lý tài nguyên sẽ thực thi mọi yêu cầu để cho các giao dịch tồn

tại bền lâu và tất cả các buffer sẽ lưu trữ một sổ ghi lộ trình (log) để ghi lại

những hình ảnh thay đổi của giao dịch, sau đó sẽ được ghi lên đĩa Sau khi mọi

nhà quản lý tài nguyên hoàn thành giai đoạn chuẩn bị nó sẽ gởi trả về kết quả

thành công hay thất bại của giai đoạn chuẩn bị đến nhà quản lý giao dịch

ü Giai đoạn bàn giao (commit):

Nếu nhà quản lý giao dịch nhận được kết quả trả về là thành công từ tất

cả các nhà quản lý tài nguyên, nó sẽ gởi lệnh commit đến mọi nhà quản lý tài

nguyên Những nhà quản lý tài nguyên có thể hoàn thành thành công giao dịch

Nếu tất cả các nhà quản lý tài nguyên thông báo một giao dịch thành công hoàn

toàn thì nhà quản lý giao dịch sẽ gởi thông báo thành công đến ứng dụng Nếu

có bất cứ nhà quản lý tài nguyên nào trả về kết quả thất bại của giai đoạn chuẩn

bị thì nhà quản lý tài nguyên sẽ gởi một lệnh cuộn lại (rollback) đến mỗi nhà

quản lý tài nguyên và trả về thông báo thất bại của ứng dụng

Ứng dụng SQL server có thể quản lý giao dịch phân tán hoặc bằng lệnh Transact_SQL hoặc bằng cơ sở dữ liệu API

4 Một số lệnh được sử dụng trong giao dịch

Để bắt đầu của một giao dịch phân tán được quản lý bởi MS DTC theo cú pháp sau:

[transaction_name | @tran_name_variable]

Trong đó:

Transaction_name: tên giao dịch do người dùng định nghĩa để theo dõi giao

dịch, gồm 32 ký tự và theo qui tắc đặt tên

@Tran_name_variable: tên biến do người dùng định nghĩa có kiểu dữ liệu

gồm: char, nchar, varchar, nvarchar

Khi SQL thực thi câu lệnh BEGIN DISTRIBUTED TRANSACTION là lệnh khởi đầu một giao dịch và được điều khiển cho đến khi hoàn tất giao dịch

Khi có một lệnh COMMIT TRANSACTION hay ROLLBACK

TRANSACTION theo sau được phát ra thì việc điều khiển server yêu cầu MS

DTC phải tổ chức lại việc phân tán các giao dịch đến những server có liên

quan Các SQL server từ xa được thêm vào trong một giao dịch phân tán bằng

hai phương pháp:

Trang 16

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

ü Một nối kết sẵn có để thêm vào một giao dịch phân tán thực hiện một lời gọi thủ tục từ xa tham chiếu đến một server từ xa

ü Một nối kết sẵn có để thêm vào một giao dịch phân tán thực thi một câu lệnh truy vấn phân tán tham chiếu đến một server từ xa

Ví dụ : nếu lệnh BEGIN DISTRIBUTED TRANSACTION được phát ra trên

Server A, nối kết gọi một thủ tục lưu trữ trên Server B và một thủ tục lưu trữ

khác trên Server C, và một thủ tục lưu trữ trên Server C thực thi một truy vấn

phân tán đối với Server D, khi đó tất cả bốn server được liên quan với nhau

trong một giao dịch phân tán Server A là khởi đầu, điều khiển giao dịch server

trong giao dịch

Những nối kết liên quan trong giao dịch phân tán Transact_SQL không nhận một đối tượng giao dịch, chúng có thể đến nối kết khác để thêm vào trong

giao dịch phân tán Phương pháp duy nhất để một server từ xa thêm vào một

giao dịch là ở sau cùng của một lời gọi thủ tục từ xa hay một câu truy vấn phân

tán

Ví dụ sau là cập nhật trường class_name của bảng Author trên dữ liệu cục bộ

và từ xa Dữ liệu cục bộ và từ xa có thể thực thi hoặc lệnh commit hoặc

rollback

USE pubsGO

SET au_lname = 'McDonald' WHERE au_id = 7008'

'409-56-EXECUTE remote.pubs.dbo.changeauth_lname 56-7008','McDonald'

Tran_name_variable: tên biến do người dùng định nghĩa, nó phải có

kiểu dữ liệu là char, nchar, varchar, ncharvar

Trang 17

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Công việc của lập trình viên là phát ra lệnh COMMIT TRANSACTION tại thời điểm ngay khi các giao dịch tham chiếu đến tất cả các dữ liệu là hợp lý

Nếu giao dịch được bàn giao là một giao dịch phân tán, COMMIT TRANSACTION gởi lệnh ứng tác đến MS DTC để thực hiện hai giai đoạn của

giao thức để hoàn thành giao dịch và bàn giao đến tất cả các server có liên quan

trong giao dịch Nếu một giao dịch cục bộ liên kết hai hay nhiều cơ sở dữ liệu

trên cùng server, SQL server thực hiện hai giai đoạn hoàn thành giao dịch để

bàn giao đến tất cả cơ sở dữ liệu liên quan trong giao dịch

Việc bàn giao các giao dịch bên trong không có tài nguyên giải phóng hoặc sự thay đổi lâu dài Việc thay đổi dữ liệu lâu dài và tài nguyên được giải

phóng chỉ khi các giao dịch phía ngoài được bàn giao Mỗi lệnh COMMIT

TRANSACTION phát ra khi @@trancount >1, một cách đơn giản là giảm

@@trancount xuống 1 Khi @@trancount giảm đến 0, thì các giao dịch bên

trong được bàn giao hoàn toàn Lệnh COMMIT TRANSACTION được phát ra

sẽ tham chiếu đến tên của giao dịch bên ngoài khi còn tồn tại những giao dịch

bên trong giảm @@trancount xuống 1

Ví dụ:

BEGIN TRANSACTIONUSE pubs

ROLLBACK [TRAN[SACTION] [transaction_name |

@tran_name_variable | savepoint_name | @savepoint_variable] ]

Trong đó:

Transact_name: là tên gán cho giao dịch được gán bởi lệnh BEGIN

TRANSACTION sau đó

@tran_name_variable: tên biến do người dùng định nghĩa, nó có kiểu dữ liệu

char, nchar, varchar, nvarchar

Trang 18

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Savepoint_name: là tên được chỉ định trong câu lệnh SAVE TRANSACTION

sử dụng savepoint_name khi điều kiện Rollback là nên ảnh hưởng chỉ một phần

của giao dịch

@savepoint_name: là tên biến do người dùng định nghĩa nó có kiểu dữ liệu là

char, nchar, varchar, ncharvar

Rollback Transaction: xoá tất cả những thay đổi trên dữ liệu từ khi bắt đầu giao dịch hoặc từ một điểm dừng (savepoint) Nó cũng giải phóng tài

nguyên mà giao dịch chiếm giữ

Câu lệnh Rollback Transaction chỉ rõ một tên điểm dừng thì sẽ không có bất cứ khoá nào giải phóng

Rollback Transaction: không thể tham chiếu đến một điểm dừng trong các giao dịch phân tán được bắt đầu hoặc giao dịch thực hiện một cách tường

minh bằng câu lệnh Begin Distributed Transaction hoặc nhảy từ một giao dịch

thực hiện đối với tên điểm dừng gần nhất

Nếu một lệnh Rollback Transaction được phát ra trong một lệnh ứng tác thì:

ü Tất cả những thay đổi trên dữ liệu trong giao dịch hiện hành được cuộn lại

ü Lệnh ứng tác tiếp tục thực thi bất cứ câu lệnh nào sau lệnh Rollback Nếu những câu lệnh này làm thay đổi dữ liệu thì những sửa đổi này không được cuộn lại

ü Một nhóm lệnh sau câu lệnh được kích động bởi lệnh ứng tác thì không được thực thi

III CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER :

A GIỚI THIỆU :

Hệ quản trị cơ sở dữ liệu SQL Server đầu tiên được Sysbase thiết kế trên nền OS/2 sau đó được Microsoft phát triển để chạy trên nền Windows NT

vào những năm đầu thập niên 90 SQL Server đã được nâng cấp qua nhiều

phiên bản và phiên bản mới nhất hiện nay là SQL Server 2000 Ngoài những

ưu điểm trong việc quản trị và sử dụng được dễ dàng hơn nhờ giao diện đồ

hoạ thân thiện với người dùng, SQL Server còn có các đặc điểm quan trọng

sau:

Trang 19

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

• Đa xử lý: có thể thực hiện cùng lúc nhiều tác vụ

• Không phụ thuộc vào mạng: hệ điều hành Windows NT hỗ trợ nhiều kiểu giao thức mạng khác nhau cho phép người dùng có thể lựa chọn giao

thức phù hợp với công việc

• Tính tương thích: SQL Server có thể chạy trên nhiều nền phần cứng khác nhau mà Windows NT đã hỗ trợ

• Độ tin cậy và tính an toàn cao: ngoài cấp độ bảo mật của Windows

NT, SQL Sever còn có thêm ba cấp độ bảo mật: cấp đăng nhập SQL Server,

cấp cơ sở dữ liệu và cấp đối tượng cơ sở dữ liệu

B SQL SERVER VÀ MÔ HÌNH CLIENT/SERVER :

Client /Server có thể được xác định như một ứng dụng được chia thành hai phần: một phần chạy trên Server (máy chủ), và phần khác chạy trên các

Workstations (máy trạm) Phía server của ứng dụng cung cấp độ bảo mật, tính

năng chịu lỗi, hiệu suất, chạy đồng thời, và sao lưu dự phòng tin cậy Phía

Client cung cấp giao diện với người sử dụng và có thể chứa các báo cáo, các

truy vấn và các forms SQL server là phần Server của chương trình, có nhiều

Client khác nhau có thể kết nối vào SQL server, trong đó có cả các tiện ích của

SQL Server, chẳng hạn như SQL Server query analyzer

Các lợi điểm của Server bao gồm :

ü Đáng tin cậy

ü Chạy đồng thời

ü Khoá tinh xảo

ü Chịu lỗi

ü Phần cứng có hiệu suất cao

ü Điều khiển tập trung

Các lợi điểm của Client bao gồm :

ü Dễ sử dụng

ü Hỗ trợ trên nhiều nền phần cứng

ü Hỗ trợ trên nhiều ứng dụng phần mềm

ü Quen thuộc với người dùng

C CÁC KIỂU ĐỐI TƯỢNG :

Các cơ sở dữ liệu trên SQL Server bao gồm cả dữ liệu lẫn đối tượng cơ

sở dữ liệu Đối tượng cơ sở dữ liệu (Database objects) được dùng để chứa dữ

liệu (là một đối tượng ví dụ như là một bảng) hoặc để tương tác với dữ liệu

Trang 20

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

(là một đối tượng ví dụ như là một thủ tục có sẵn) Về cốt lõi mọi thứ do SQL

Server quản lý đều là đối tượng bao gồm các cơ sở dữ liệu SQL và các thứ

mà từng cơ sở dữ liệu chứa đựng Một cơ sở dữ liệu có thể chứa các loại đối

tượng khác nhau như bảng, khung nhìn, chỉ mục, kiểu dữ liệu, trị ngầm định,

các quy tắc, thủ tục có sẵn, bộ trích khởi và các ràng buộc …

hoặc có sự kết nối của hai hay nhiều bảng Bản thân kiểu xem không thực sự

chứa dữ liệu mà chỉ trỏ tới dữ liệu đã được lựa chọn và thể hiện bằng hình

ảnh

Ví dụ : CREAT VIEW tenkhoa AS SELECT tenkhoa FROM khoa

Trang 21

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Chỉ mục là đối tượng cơ sở dữ liệu dùng để tăng tốc độ truy cập dữ liệu Chỉ mục chứa biến trỏ được sắp xếp theo thứ tự trỏ đến dữ liệu lưu trữ

trong các bảng, cho phép nhanh chóng định vị dữ liệu SQL Server có các

loại chỉ mục:

a Chỉ mục kết cụm (Clustered index ) :

Chỉ mục kết cụm buộc các hàng trong bảng lưu trữ theo thứ tự, dùng một cột của bảng để sắp xếp các hàng Một bảng chỉ có duy nhất một chỉ

mục kết cụm

b Chỉ mục phi cụm (Nonclustered index ) :

Chỉ mục phi cụm không dàn xếp dữ liệu mà chỉ trỏ đến dữ liệu trong bảng Chỉ mục phi cụm yêu cầu nhiều phạm vi lưu trữ hơn chỉ mục kết cụm

nhưng dùng ít phạm vi hơn khi tạo Truy xuất dữ liệu dùng chỉ mục kết cụm

thường nhanh hơn so với chỉ mục phi cụm

c Các chỉ mục duy nhất (Unique index) và không duy nhất unique index) :

(Non-Tính duy nhất xác định dữ liệu có được phép trùng lặp hay không trong chỉ mục Chẳng hạn, có một chỉ mục dựa vào mã số sinh viên, hai

sinh viên không thể có cùng một mã số nếu chỉ mục là duy nhất, mặc định

đối với chỉ mục trong SQL Server là không duy nhất, có nghĩa là cho phép

trùng lặp dữ liệu

Nếu dữ liệu thích hợp, việc tạo một chỉ mục duy nhất có thể nâng cao hiệu suất sử dụng chỉ mục, sẽ không cần tìm tiếp đến cuối sau khi đã

tìm thấy

Chỉ mục Clustered là ứng cử viên tốt cho chỉ mục duy nhất vì SQL Server luôn buộc các chỉ mục Clustered là duy nhất Nếu ta tạo một chỉ

mục Clustered không duy nhất, SQL Server sẽ ngầm tạo thêm một giá trị

khóa để thành chỉ mục duy nhất

d Chỉ mục một cột và chỉ mục nhiều cột :

Nhiều chỉ mục chỉ có một cột, ta cũng có thể tạo ra chỉ mục nhiều cột (chỉ mục hỗn hợp) Chỉ mục nhiều cột tương đối hữu ích vì SQL Server

có thể dùng một chỉ mục trên một bảng trong một truy vấn đơn giản Các

chỉ mục nhiều cột có thể là loại Clustered hay Non-clustered

4 Kiểu dữ liệu ( Datatype ) :

Kiểu dữ liệu định nghĩa hoặc mô tả kiểu của dữ liệu có thể đưa vào một cột và cách nó được lưu trữ trong cơ sở dữ liệu Kiểu dữ liệu phải được

chỉ định cho mọi cột trong bảng SQL Server có thể gộp nhiều kiểu dữ liệu

Trang 22

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

chuẩn, ngoài ra ta còn có thể tạo ra các kiểu dữ liệu tuỳ biến theo nhu cầu

của người sử dụng (kiểu dữ liệu do người dùng định nghĩa)

Các kiểu dữ liệu chuẩn

Kiểu dữ liệu Tên Transact-SQL Approximate Numbers

Binary Character Date & Time Dollars & Cents Exact Numbers Integers

Special Text & Images

Float(n), real Binary(n), varbinary(n) Char(n), varchar(n) Datetime, smalldatetime Money, smallmoney Dacimal, numeric Int, smallint, tinyint Bit, timestamp, user-defined Text, image

vào phải nằm trong miền giá trị chấp nhận được, nếu khơng sẽ nhận được

thơng báo dữ liệu bị sai và cần phải sửa lại dữ liệu đĩ

FROM khoa Thực thi thủ tục , ta được kết quả :

Trang 23

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Các trình trích khởi thường được các phát triển viên Transac-SQL tạo

ra để bảo đảm sự toàn vẹn dữ liệu bằng cách ngăn không cho những thay đổi

không nhất quán được thực hiện

9 Ràng buộc ( Constraint ) :

Các hạn chế dùng để củng cố tính nguyên vẹn dữ liệu Trong nhiều cách chúng cũng giống như kiểu dữ liệu, trị ngầm định, quy tắc hay bộ trích

khởi, đều dùng để bảo đảm tính nguyên vẹn cho dữ liệu

D KIẾN TRÚC KHO LƯU TRỮ DỮ LIỆU :

1 Trang ( Page ) :

Mọi thông tin trong SQL Server được lưu trữ trong một trang Trang là cấu trúc dữ liệu nhỏ nhất được dùng trong một cơ sở dữ liệu

Mỗi trang có thể lưu giữ được 2 KB ( 2,048 byte) thông tin Một trang gồm

phần đầu trang (header) với 32 bytes dùng để định danh duy nhất dữ liệu lưu

trữ trên trang, 2016 bytes còn lại dùng chứa dữ liệu Phần đầu được SQL

Server dùng để định danh duy nhất dữ liệu lưu trữ trên trang đó SQL Server

có năm kiểu trang khác nhau:

§ Trang phân bổ [allocation pages]: dùng để điều khiển việc phân

bổ các trang cho các bảng và các chỉ mục trong một cơ sở dữ liệu

§ Trang sổ theo dõi và dữ liệu [ data and log pages]: dùng để lưu trữ dữ liệu cơ sở dữ liệu và dữ liệu sổ theo dõi giao dịch

Trang 24

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

§ Trang chỉ mục [index pages]: dùng để lưu trữ thông tin lập chỉ mục

§ Trang phân phối [distributio pages]: dùng để lưu trữ thông tin

về các chỉ mục trong một cơ sở dữ liệu

§ Trang văn bản/hình ảnh [text/image pages]: dùng để lưu trữ các khối văn bản hay các đối tượng nhị phân lớn (BLOB)

2 Liên trang ( Extent page ) :

Liên trang là cấu trúc dữ liệu được hình thành bởi 8 trang liền kề nhau

SQL Server tự động phân bố một liên trang mỗi khi tạo một cơ sở dữ liệu mới

như một bảng chẳng hạn Một liên trang chỉ có thể gộp một đối tượng cơ sở

dữ liệu

3 Đơn vị phân bố ( Allocation unit ) :

Một cấu trúc dữ liệu được hình thành bởi 32 liên trang (256 trang) tương ứng với 512 KB Do đó mỗi khi một cơ sở dữ liệu mới được tạo, không

gian được phân bố từng 512 KB một

4 Các sổ theo dõi giao dịch ( Transaction log ) :

Khi một cơ sở dữ liệu được tạo ra bằng SQL Server, một sổ theo dõi giao dịch cũng được tạo ra cùng lúc Sổ theo dõi giao dịch là khu lưu trữ dành

riêng trên một thiết bị dùng để tự động ghi lại tất cả mọi thay đổi đã thực hiện

cho các đối tượng cơ sở dữ liệu, trước khi các thay đổi đó được thực hiện trên

cơ sở dữ liệu Đây là tính năng dùng lỗi quan trọng của SQL Server giúp

ngăn ngừa một cơ sở dữ liệu không bị phân huỷ

Khi một cơ sở dữ liệu được tạo, ta phải chỉ định vị trí của thiết bị được dùng để lưu trữ sổ theo dõi giao dịch

E CÁCH TẠO CÁC CƠ SỞ DỮ LIỆU :

Tạo một cơ sở dữ liệu , thực ra là ta phân bổ không gian trên một thiết bị

để lưu trữ dữ liệu và các đối tượng cơ sở dữ liệu đồng thời cũng đang tạo ra

các bảng hệ thống tồn tại trong một cơ sở dữ liệu SQL Server

Có được một cơ sở dữ liệu, ta có thể bổ sung các bảng, kiểu xem, chỉ mục

và các đối tượng cần thiết khác hình thành nên cơ sở dữ liệu hoàn chỉnh

Tương tự, ta cũng có hai cách được sử dụng để tạo một cơ sở dữ liệu mới:

1 Tạo một cơ sở dữ liệu bằng SQL Enterprises Manager :

Thực hiện theo các bước :

• Từ cửa sổ Server Manager của SQL Server Manager, mở thư liệu SQL Server

Trang 25

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

• Mở thư liệu Database, lựa New Database từ lệnh đơn (hoặc nhắp phải chuột, chọn New)

• Nhập tên cho cơ sở dữ liệu trong hộp thoại ‘Name’ của Tab

‘General’ , ví dụ là ‘QLDKMH ‘ Khung Database file bắt đầu thay đổi, một

file database có tên QLDKMH_Data với kích thước ban đầu là 1 MB trong

thư mục mặc định Mssql/data Nếu nhìn vào File Properties ở cuối hộp thọai,

nhận thấy tùy chọn Automatically Grow file được chọn với thuộc tính File

grow đã được thiết đặt mặc định , kích thước file tối đa được đặt mặc định là

Unrestricted filegrowth Ta có thể thay đổi hoặc giữ nguyên các thuộc tính

mặc định của cơ sở dữ liệu

• Nhắp chọn Tab Transaction Log, ta thấy có một tên mặc định là

‘QLDKMH_Log’ với kích thước 1 MB

• Nhắp Ok để hoàn thành việc tạo cơ sở dữ liệu mới

2 Tạo cơ sở dữ liệu bằng Transact-SQL :

Cú pháp của điều lệnh Transact-SQL dùng tạo cơ sở dữ liệu mới :

CREAT DATABASE database_name

[ON {[PRIMARY]

( NAME = logical_name, FILENAME=’physical_name’

[.SIZE = size ]

Trang 26

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

[.MAXSIZE = max_size : UNLIMITED ] [.FILEGROWTH = growth_increment ] ) }1 … n]]

[LOG ON

{( NAME = logical_name FILENAME=’physical_name’

[.SIZE = size : UNLIMITED ] [.MAXSIZE = max_size : UNLIMITED ] [.FILEGROWTH = growth_increment ] )}

[1 … n]]

FOR LOAD : FOR ATTACH ] Trong đó :

database_name : tên gán cho cơ sở dữ liệu mới

ON PRIMARY : đặc tả file cơ sở dữ liệu này là thành viên của nhóm file nào , nhóm file mặc định là PRIMARY

NAME : xác định tên file dùng trong SQL Server để gán cho file

cơ sở dữ liệu vật lý trên đĩa cứng

FILENAME : tên đường dẫn và tên file liên quan đến nơi lưu trữ

cơ sở dữ liệu trên đĩa cứng

SIZE : xác định kích thước của file cơ sở dữ liệu (tính theo MB hay KB)

MAXSIZE : xác định kích thước tối đa mà file cơ sở dữ liệu có thể đạt tới (tính theo MB hay KB)

FILEGROWTH : xác định gia lượng dùng để phát triển tự động file cơ sở dữ liệu có thể đạt tới (tính theo MB, KB hay phần trăm kích thước

của file khi phát triển, mặc định là 1 MB)

LOG ON : miêu tả nơi định vị các file nhật ký giao tác và kích thước của chúng

FOR LOAD : tham số này đánh dấu cơ sở dữ liệu chỉ dành cho dbo

FOR ATTACH : tham số này gắn lại một tập hợp các file hình thành nên cơ sở dữ liệu Các file cơ sở dữ liệu phải được tạo trước và sau đó

được tách khỏi SQL Server

3 Ấn định các tuỳ chọn cho cơ sở dữ liệu :

Trang 27

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Mỗi cơ sở dữ liệu đều có nhiều tuỳ chọn đa dạng mà ta cần thay đổi để

có thể thực hiện một số công việc cơ sở dữ liệu Các tuỳ chọn này có thể

được thay đổi từ SQL Enterprise Manager hoặc từ thủ tục trữ sẵn trong Query

Analyzer Ở đây ta sử dùng SQL Enterprise Manager để thực hiện

Từ SQL Enterprise Manager, nhắp phải vào cơ sở dữ liệu mà ta sẽ thực hiện thay đổi thuộc tính cho các tuỳ chọn, chọn Properties, hộp thoại

Properties xuất hiện với các mục :

a Mục chọn Option :

Gồm có các tuỳ chọn sau :

DBO use only : tuỳ chọn cấu hình cơ sở dữ liệu để chỉ mình DBO (Database Owner : sở hưũ chủ cơ sở dữ liệu) mới có quyền truy cập cơ

sở dữ liệu đó Ngầm định của tuỳ chọn này là trạng thái tắt

Single user : tuỳ chọn ấn định mỗi lần chỉ có một người dùng được quyền truy cập cơ sở dữ liệu Được sử dụng khi muốn ngăn không cho

người dùng truy cập một cơ sở dữ liệu nào đó Ngầm định của tuỳ chọn này là

trạng thái tắt

Read only : tuỳ chọn ấn định cơ sở dữ liệu ở tình trạng chỉ đọc,

không người dùng nào có thể thay đổi các khoản tin trong cơ sở dữ liệu

Ngầm định của tuỳ chọn này là trạng thái tắt

AN SI NULL Default : tuỳ chọn xác định các cột mới tạo trong một bảng sẽ được ấn định ngầm định là ' null ' hay ' not null '

Recursive Triggers : Trigger đệ quy xảy ra khi có sự kiện chỉnh sửa dữ liệu trên một bảng làm khởi động một Trgger trên một bảng khác và

bảng này lại khởi động Trigger của bảng ban đầu

Select into/Bulk copy : nếu ấn định tuỳ chọn này thì sẽ không thực hiện tác vụ theo dõi Tác vụ không ghi sổ theo dõi (Non Logged

Operation ) là tác vụ bỏ qua sổ theo dõi giao dịch nên ta phải sao lưu cơ sở dữ

liệu sau khi thực hiện các sửa đổi Ngầm định của tuỳ chọn này là trạng thái

tắt

Truncate log on checkpoint : các điểm kiểm tra được dùng để ghi chép các trang dữ liệu đã dùng và đưa các bản ghi từ RAM vào đĩa cứng

Khi hệ thống chạy một điểm kiểm tra, tuỳ chọn này sẽ xóa các giao tác được

chuyển giao từ nhật ký giao tác

Torn page detection : phát hiện khi nào phần trang ghi chép xuất

hiện trên đĩa ( một dạng dữ liệu hỏng ) Nên chọn tuỳ chọn này

Auto close : cơ sở dữ liệu sẽ tự động đóng lại khi người dùng

cuối cùng thoát khỏi nó

Shrink : dùng để giảm kích thước file cơ sở dữ liệu và file nhật

Trang 28

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Auto creat statistics : tự động tạo các thống kê trên phần trăm

phân phối giá trị trong cột dữ liệu

Auto update statistics : kết hợp với Auto creat statistics Theo

thời gian thông tin trong các cột sẽ thay đổi, tuy nhiên các thống kê trên các

cột này sẽ không thay đổi

Use quoted identifiers : cho phép sử dụng dấu ngoặc kép như

một phần của ký hiệu định danh SQL Server

được cấp quyền này

• Quyền dùng lệnh Backup DB và Backup Log: cho phép người dùng được phép sao lưu cơ sở dữ liệu và nhật ký giao tác

F CÁCH TẠO CÁC ĐỐI TƯỢNG CƠ SỞ DỮ LIỆU :

Hoàn thành việc tạo cơ sở dữ liệu , tiếp theo là việc bổ sung các đối tượng cơ cở dữ liệu cần thiết để lưu trữ dữ liệu của hệ thống

Ví dụ : CREAT TABLE khoa ( makhoa char(2)

tenkhoa char(40) )

Trang 29

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

v Sử dụng SQL Server Enterprise Manager ta có thể tạo bảng mới một cách nhanh chóng và thuận tiện hơn, các bước thực hiện tuần tự như sau:

• Từ SQL Server Enterprise Manager chọn Database, nhắp chọn

database cần tạo bảng

• Nhắp phải vào Table, chọn New Table

• Nhập tên bảng, tên các trường, kiểu dữ liệu, độ rộng các trường, quy định trường có thể có giá trị NULL hay không, và khóa cho bảng

2 Tạo khung nhìn ( View ) :

Có được một hay nhiều bảng trong cơ sở dữ liệu , ta có thể dùng điều lệnh Transact-SQL để tạo các kiểu xem với cú pháp như sau :

CREAT VIEW view_name

[WITH ENCRYPTION]

AS select_statement [WITH CHECK OPTION]

Trong đó : view_name : tên kiểu xem sẽ tạo

Ví dụ : tạo một View đơn giản như sau : CREAT VIEW tenkhoa

Trang 30

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

AS SELECT makhoa,tenkhoa FROM khoa

index_name : tên của chỉ mục sẽ tạo

column_name : cột được chọn làm chỉ mục table_name : tên bảng làm cơ sở cho chỉ mục

Properties trên thanh công cụ, chọn Tab Index/ Keys, tạo các chỉ mục, đặt

thuộc tính cho chỉ mục (Clustered/ NonClustered ), nhắp Close để thoát và lưu

lại những thay đổi

G QUẢN TRỊ TÀI KHOẢN NGƯỜI DÙNG :

Một trong các công việc quan trọng của nhà quản trị cơ sở dữ liệu (DBA: Database Administrator) là tạo và quản trị các ID đăng nhập, ID người

dùng cơ sở dữ liệu, các nhóm, bổ sung hoặc xóa các người dùng trong nhóm

Những công việc này được thực hiện thông qua SQL Enterprise Manager

hoặc bằng các thủ tục dự trữ sẵn

Trang 31

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

1 Đăng nhập và các tài khoản người dùng SQL Server :

SQL Server sử dụng hai kiểu tài khoản :

a ID đăng nhập ( Login Id ) :

Là tên mà SQL Server dùng để định danh người dùng khi đăng nhập Người dùng muốn truy cập dữ liệu trong một cơ sở dữ liệu trên SQL Server, trước hết họ phải đăng nhập SQL Server bằng một Id đăng nhập và

mật khẩu (Password) thích hợp Đăng nhập thành công vào SQL Server,

không đồng nghĩa với việc người dùng này có quyền truy cập mọi dữ liệu

trong một cơ sở dữ liệu do SQL Server quản trị Người dùng cần phải có một

Id người dùng cơ sở dữ liệu thích hợp

v Sử dụng Enterprise Manager để tạo Id đăng nhập ta thực hiện từng bước như sau :

Từ Enterprise Manager thực hiện chọn tuần tự Security \ Logins \ New Login

• Trong Tab General, nhập tên cho Id đăng nhập sẽ tạo trong hộp thoại ' Login name ' , mật khẩu, Database truy cập mặc định và ngôn ngữ sử

dụng cho Id này

• Trong Tab Server Roles, cấp quyền truy cập cho Id đăng nhập

• Trong Tab Database Access, chọn Database và các quyền mà Id đăng nhập này được truy cập trong từng Database (tương ứng là mỗi Id người

dùng cơ sở dữ liệu cho Database được chọn )

• Nhắp nút ‘Apply’ và ‘Ok’ hoàn thành việc tạo một Id mới Tiếp tục tạo các Id cho người dùng khác theo nhu cầu

Sau khi tạo, SQL Server 2000 kiểm tra tài khoản người dùng có hợp lệ hay

không, có tồn tại trên hệ điều hành NT/2000 hay không Nếu tất cả thông tin

đều hợp lệ, đăng ký thành công

Trang 32

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

Login User

Tạo tài khoản người dùng

Trang 33

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

v Sử dụng thủ tục trữ sẵn để tạo Id đăng nhập, trong cửa sổ của Query Analyzer (hoặc trong các đoạn chương trình ứng dụng ) ta sử dụng thủ

tục trữ sẵn sp_addlogin,dạng đơn giản như sau:

sp_addlogin [@loginname=] ’login’ [,@password=] ‘password’

Trong đó :

login : tên người sử dụng sẽ dùng khi đăng nhập

password : mật khẩu cho tài khoản đăng nhập này, mật khẩu là rỗng

nếu không chỉ ra

Ví dụ : sp_addlogin ’dinhdanh’ ‘matkhau’

b ID người dùng cơ sở dữ liệu (Database user Id ) :

Đây là tên mà SQL Server dùng để định danh người dùng khi sử dụng

cơ sở dữ liệu

Đăng nhập thành công vào SQL Server, muốn truy một cơ sở dữ liệu, người dùng cần phải có Id người dùng cơ sở dữ liệu thích hợp đối với mỗi cơ

sở dữ liệu riêng biệt

Khi tạo Id đăng nhập, Id này sẽ có trong Database mặc định và những

Database mà Id này được truy cập tới khi chọn trong Tab Database Access

v Sử dụng Enterprise Manager để tạo Id người dùng cơ sở dữ liệu

ta thực hiện từng bước như sau :

• Chọn Database muốn cho người dùng sử dụng

• Nhắp phải vào ‘Users ‘, chọn New Database User …

• Trong Tab General, chọn Id đăng nhập sẽ tạo trong hộp thoại '

Login name ' , nhập tên (Id người dùng cơ sở dữ liệu )

• Trong danh sách Database role membership, đặt cho người dùng này thuộc vào nhóm sử dụng nào

• Nhắp nút ‘Ok’ hoàn thành việc tạo một Id mới Tiếp tục tạo các

Id cho người dùng khác theo nhu cầu

Trang 34

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

v Sử dụng thủ tục trữ sẵn để tạo Id đăng nhập, trong cửa sổ của Query Analyzer (hoặc trong các đoạn chương trình ứng dụng ) ta sử dụng thủ

tục trữ sẵn sp_adduser, dạng đơn giản như sau:

sp_adduser [@loginname=] ’login’ [,@databasename=] ‘database’

Trong đó :

login : tên người sử dụng sẽ dùng khi đăng nhập

Database : cơ sở dữ liệu mà ID này được quyền đăng nhập

• Từ Enterprise Manager chọn thư liệu Database để mở các cơ sở

dữ liệu được quản lý trên hệ phục vụ

• Chọn cơ sở dữ liệu nơi ta muốn tạo nhóm mới

• Chọn Roles \ New Database Role…

Trang 35

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

• Nhập tên nhóm mới

• Nhắp nút Add nếu muốn thêm người dùng vào nhóm vừa tạo

• Nhắp ‘Ok’ hoàn thành việc tạo nhóm mới

• Muốn chỉnh sửa quyền truy cập cơ sở dữ liệu cho nhóm người dùng, nhắp đúp vào tên nhóm (hoặc nhắp phải chuột vào tên nhóm, chọn

Properties ), nhắp vào Pemissions để chỉnh sửa quyền truy cập cho nhóm

v Sử dụng thủ tục trữ sẵn để tạo nhóm người dùng mới, trong cửa

sổ của Query Analyzer (hoặc trong các đoạn chương trình ứng dụng ) ta sử

dụng thủ tục trữ sẵn sp_addrole, dạng đơn giản như sau:

sp_addrole [@rolename=] ‘role’

Trang 36

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

1 Lưu dự phòng cơ sở dữ liệu :

Lưu dự phòng cơ sở dữ liệu là tiến trình tạo ra các bản sao dữ liệu ngoài tuyến, được thực hiện nhằm tạo thuận lợi cho việc phục hồi thông tin

trong trường hợp bị hư hỏng, mất dữ liệu hay di dời từ hệ phục vụ này sang

hệ phục vụ khác

Để lưu dự phòng cơ sở dữ liệu ta phải tạo thiết bị lưu dự phòng và xổ các cơ sở dữ liệu vào các thiết bị này

a Tạo các thiết bị lưu dự phòng :

Muốn tạo một thiết bị lưu dự phòng mới, ta thực hiện tuần tự theo các bước :

• Từ Enterprise Manager chọn Management

• Nhắp chuột phải vào Backup, chọn New Backup Device

• Nhập tên và vị trí cho thiết bị sẽ tạo dự phòng

• Nhắp ‘Ok’ để hoàn thành việc tạo một thiết bị lưu dự phòng mới

b Xổ các cơ sở dữ liệu vào thiết bị (tạo tập tin Backup ) :

Muốn xổ các cơ sở dữ liệu vào thiết bị, ta thực hiện theo các bước sau:

• Từ Enterprise Manager chọn Management

• Nhắp chuột phải vào Backup, chọn Backup Database (hoặc nhắp phải vào Database, chọn All Tasks, chọn Backup Databasse )

• Chọn Database và thiết bị dùng trong đợt lưu dự phòng

• Chọn tên file Backup sẽ tạo ra sau khi hoàn thành

• Chọn ‘Ok’ để khởi động ngay đợt lưu dự phòng hoặc chọn Schedule để chạy vào lần sau

Trang 37

Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu

2 Phục hồi cơ sở dữ liệu :

Để phục hồi cơ sở dữ liệu , ta thực hiện theo các bước :

Từ Enterprise Manager tuần tự chọn menu Tools\ Database Backup\ Restore (hoặc nhắp phải vào Database, chọn All Tasks, chọn

Restore Database )

Chọn cơ sở dữ liệu (nguồn) muốn phục hồi (từ Database / Filegroups or Flies / From Device )

• Chọn (đặt ) tên cho cơ sở dữ liệu sau khi được phục hồi (đích)

• Nhắp ‘Ok’ để bắt đầu việc phục hồi cơ sở dữ liệu

• Tiếp tục thực hiện đối với các cơ sở dữ liệu khác nếu cần

Ngày đăng: 15/12/2015, 20:01

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w