1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo đồ án Stored Procedure trong SQL Server

27 956 6

Đ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 27
Dung lượng 873,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đồ án học phần Stored Procedure trong SQL Server Các thủ tục trong hệ quản trị cơ sở dữ liệu.Báo cáo đồ án học phần Chuyên ngành Công Nghệ Thông Tin.Chương trình Quản lý sinh viên được xây dựng trên phần mềm SQL Server bằng nhưng ngôn ngữ mô tả dữ liệu, thao tác dữ liệu, truy vấn dữ liệu, hay ngôn ngữ hỏi đáp có cấu trúc và ngôn ngữ quản lý dữ liệu. Để đơn giản hơn cho các câu lệnh thực hiện người ta đã sử dụng Stored Procedure – Thủ tục trong SQL Server để gọi dữ liệu nhanh hơn và ngắn gọn các câu lệnh thực thi hơn.

Trang 1

TRƯỜNG ĐHCN XKHOA: ĐI NĐI N T - CÔNG NGHỆ Ệ Ử Ệ

H tên sinh viên: ọ X

Tên đ tài: ề Stored Procedure trong SQL

Trang 3

L I C M N Ờ Ả Ơ

Đ hoàn thành để ược đ án này em xin đồ ượ ử ờ ả ơc g i l i c m n chân thành đ nế

Các th y cô trong trầ ường Đ i H c Công Nghi p X nói chung và các th y cô trongạ ọ ệ ầKhoa Đi n Đi n T - Công Ngh Thông Tin nói riêng, đã giúp em h c t p trongệ ệ ử ệ ọ ậ

su t quá trình h c t p t i trố ọ ậ ạ ường trong 2 năm qua

Cô giáo hướng d n đ tài – ẫ ề XX, Gi ng viên Khoa Đi n - Đi n T - Công Nghả ệ ệ ử ệThông Tin, Trường Đ i H c Công Nghi p ạ ọ ệ X Đã h t lòng giúp đ , hế ỡ ướng d n, chẫ ỉ

d n t n tình đ em có th hoàn thành đẫ ậ ể ể ược đ tài này.ề

Các b n trong l p ạ ớ CNTT1 và các anh ch khóa trên đã góp ý trong quá trình làm

đ tài đ đề ể ược hoàn ch nh h n.ỉ ơ

Trang 4

L I NÓI Đ U Ờ Ầ

Gi i thi u chung: ớ ệ

V i s phát tri n m nh c a khoa h c kĩ thu t trong cu c s ng ngày nayớ ự ể ạ ủ ọ ậ ộ ốthì công ngh thông tin là m t trong nh ng ngành khoa h c ngày càng đệ ộ ữ ọ ược quantâm và s d ng r ng rãi trong m i lĩnh v c c a cu c s ng V i nh ng u đi mử ụ ộ ọ ự ủ ộ ố ớ ữ ư ể

m nh có th ng d ng đạ ể ứ ụ ược nhi u trong cu c s ng công ngh thông tin đã giúpề ộ ố ệcho công vi c qu n lý đệ ả ược d dàng h n Đ qu n lý m t công vi c c th c aễ ơ ể ả ộ ệ ụ ể ủ

m t c quan nào đó thì ngộ ơ ười qu n lý th c hi n r t nhi u đ ng tác Nh có cácả ự ệ ấ ề ộ ờ

ph n m m thì công vi c đó tr nên đ n gi n h n r t nhi u.ầ ề ệ ở ơ ả ơ ấ ề

Ví d nh qu n lý sinh viên c a m t trụ ư ả ủ ộ ường , ta ph i xây d ng m t hả ự ộ ệ

th ng qu n lý c s d li u v sinh viên Do đó yêu c u tin h c hóa các quy trìnhố ả ơ ở ữ ệ ề ầ ọ

th c hi n trong qu n lý là t t y u, ph c v vi c ki m tra thông tin sinh viên m tự ệ ả ấ ế ụ ụ ệ ể ộcách nhanh chóng

Gi i thi u đ tài: ớ ệ ề

Chương trình Qu n lý sinh viên đả ược xây d ng trên ph n m m SQL Serverự ầ ề

b ng nh ng ngôn ng mô t d li u, thao tác d li u, truy v n d li u, hay ngônằ ư ữ ả ữ ệ ữ ệ ấ ữ ệ

ng h i đáp có c u trúc và ngôn ng qu n lý d li u Đ đ n gi n h n cho cácữ ỏ ấ ữ ả ữ ệ ể ơ ả ơcâu l nh th c hi n ngệ ự ệ ười ta đã s d ng ử ụ Stored Procedure – Th t c trong SQLủ ụServer đ g i d li u nhanh h n và ng n g n các câu l nh th c thi h n.ể ọ ữ ệ ơ ắ ọ ệ ự ơ

V y đ tài c a em là ậ ề ủ “ Stored Procedure trong SQL Server ” tìm hi u vể ề

Trang 5

NH T KÝ TH C HI N Đ TÀI Ậ Ự Ệ Ề

Th i gian ờ Công vi c ệ Ghi chú

14/10/2018 Nh n đ tài và giáo viên hậ ề ướng d nẫ

16/10-20/10 Nghiên c u tài li u tham kh o v đ tài ứ ệ ả ề ề

21/10 G p giáo viên hặ ướng d nẫ

22/10 Tìm hi u đ tàiể ề

23/10-28/10 Th c hi n demo chự ệ ương trình

28/10 G p giáo viên hặ ướng d nẫ

29/10-15/11 Làm báo cáo đ ánồ

5/11 G p giáo viên hặ ướng d nẫ

16/11-22/11 Ch nh s a và hoàn thi n báo cáoỉ ử ệ

23/11 G p giáo viên hặ ướng d nẫ

24/11 N p báo cáo và đĩa CD cho giáo viên hướộ ng d nẫ

Trang 6

M C L C Ụ Ụ

Trang 7

DANH M C VI T T T Ụ Ế Ắ

Trang 8

M Đ U Ở Ầ

1. Đ t v n đ : ặ ấ ề

Khi ta duy t hay x lý d li u trong c s d li u SQL Server, ngôn ngệ ử ữ ệ ơ ở ữ ệ ữ(Structured Query Language ) là ngôn ng th c thi hi u qu nh t Do đó, khiữ ự ệ ả ấtính toán v i lớ ượng l n d li u trong SQL Server, ta nên s d ng đ i tớ ữ ệ ử ụ ố ượng

SP đ xây d ng đo n chể ự ạ ương trình và gi i quy t v n đ n u c n thi t.ả ế ấ ề ế ầ ế

2. M c tiêu c a đ tài : ụ ủ ề

Căn b n hi u đả ể ược Stored Procedure trong SQL Server T ng quan v th t cổ ề ủ ụ

và phân lo i đạ ược các lo i th t c trong SQL.ạ ủ ụ

Đ tài g m 3 chề ồ ương nh sau:ư

Ch ươ ng 1 T ng quan v Stored Procedureổ ề

Ch ươ ng 2 Phân lo i các Stored Procedureạ

Ch ươ ng 3 Ví d minh h a c b nụ ọ ơ ả

Trang 9

Ch ươ ng 1 T ng quan v Stored Procedure ổ ề

1.1 Đ nh nghĩa SP ị

SP là gì ?

Stored Procedure : “A precomplied collection of Transact-SQL statements stored under a name and processed as unit SQL Server supplies stored procedures for managing SQL Server anh displaying information about database and users”.

L u ý : SP khác v i Funcions : chúng ư ớ không th tr v giá tr tr c ti p ể ả ề ị ự ế trong Bi u Th c ể ứ

1.3 L i ích c a SP ợ ủ

Tăng t c đ th c hi n: ố ộ ự ệ Đây là l i ích l n nh t khi s d ng Store Procedure.ợ ớ ấ ử ụStore Procedure có kh năng phân tích cú pháp và t i u hóa trong l n th cả ố ư ầ ựthi đ u tiên và m t phiên b n d ch c a chúng trong đó sẽ đầ ộ ả ị ủ ượ ưc l u trong bộ

nh đ s d ng cho l n sau Nghĩa là trong nh ng l n th c hi n sau chúngớ ể ử ụ ầ ữ ầ ự ệkhông c n ph i phân tích cú pháp và t i u l i, mà chúng sẽ s d ng k t quầ ả ố ư ạ ử ụ ế ả

Trang 10

được biên d ch trong l n đàu tiên Do đó Store Procedure có kh năng th cị ầ ả ựthi nhanh h n là vi c x lý m t đo n l nh Transact-SQL l n,l p.ơ ệ ử ộ ạ ệ ớ ặ

T c đ truy c p d li u nhanh h n: ố ộ ậ ữ ệ ơ SQL sẽ làm vi c hi u qu h n n u dùngệ ệ ả ơ ếStore Procedure vì ngườ ửi g i ch g i m t câu l nh đ n và SQL Sever ch ki mỉ ử ộ ệ ơ ỉ ểtra m t l n sau đó t o ra m t execute plan và th c thi N u Store Procedureộ ầ ạ ộ ự ế

đượ ọc g i nhi u l n thì execute plan có th s d ng l i nên sẽ làm vi c nhanhề ầ ể ử ụ ạ ệ

h n.ơ

Ch ươ ng trình đ ượ c modul hóa: M t khi Store Procedure độ ượ ạc t o ra nó có

th s d ng l i Đi u này sẽ làm cho vi c b o trì d dang h n do vi c táchể ử ụ ạ ề ệ ả ễ ơ ệ

r i gi a nh ng logic bên trong Store Procedure và c s d li u.ờ ữ ữ ơ ở ữ ệ

Tính nh t quán: ấ L i ích n a c a Store Procedure là thi t đ t đợ ữ ủ ế ặ ược ràng bu cộ

d li u đ đ m b o tính nh t quán Ngữ ệ ể ả ả ấ ườ ử ụi s d ng không th th c hi n tùyể ự ệ

ti n d li u đ làm m t tính đúng đ n c a d li u.ệ ữ ệ ể ấ ắ ủ ữ ệ

Nâng cao kh năng b o m t d li u: ả ả ậ ữ ệ Gi s chúng ta mu n gi i h n vi c truyả ử ố ớ ạ ệ

xu t d li u tr c ti p c a m t user nào đó vào m t s b ng, ta có th vi tấ ữ ệ ự ế ủ ộ ộ ố ả ể ế

m t Store Procedure đ truy xu t d li u và ch cho phép user đó độ ể ấ ữ ệ ỉ ược sử

d ng Store Procedure đã vi t s n mà thôi ch không th thao tác tr c ti nụ ế ẵ ứ ể ự ếtrên các b ng đó Ví d , ta có th t o ra Store Procedure đ ta làm ch và chả ụ ể ạ ể ủ ỉcung c p quy n EXCUTE cho nh ng Store Procedure này, vì th nh ng ngấ ề ữ ế ữ ười

s d ng khác không đử ụ ược phép tr c ti p làm vi c v i d li u Ngoài ra Storeự ế ệ ớ ữ ệProcedure có th để ược mã hóa đ tăng cể ường tính b o m t.ả ậ

Trang 11

Ch ươ ng 2 Phân lo i các Stored Procedure ạ

2.1 Các lo i Stored Procedure ạ

SP trong SQL được chia làm 5 lo i nh sauạ ư

2.1.1 System stored procedure

Có trong master database và thường b t đ u b ng “sp_ “, đắ ầ ằ ược truy xu t tấ ừ

b t kì m t database nào, nh m cung c p các thông tin system catalog ho cấ ộ ằ ấ ặ

th c hi n các nhi m v c a administration.ự ệ ệ ụ ủ

2.1.2 Local stored procedure

Hay g i là ọ User-defined Store Procedure ( th t c do ngủ ụ ười dung t o ra).ạ

Đượ ưc l u tr trong các CSDL ngữ ười dùng, nó th c thi các tác v trong CSDLự ụ

ch a nó và đứ ược ngườ ử ụi s d ng t o ra hay t h th ng.ạ ừ ệ ố

2.1.3 Temporary store procedure

Gi ng local Store Procedure nh ng nó ch hi n h u cho đ n khi k t n i t oố ư ỉ ệ ữ ế ế ố ạ

ra nó b đóng Nó đị ược n m trong CSDL TempDB Có 3 lo i tempory Storeằ ạProcedure: local (private), Global, Store Procedure t o tr c ti p trongạ ự ếTemDB Không còn t n t i sau khi SQL Server shutdown.ồ ạ

2.1.4 Extended stored procedure

Là m t th t c độ ủ ụ ượ ạc t o t các ngôn ng l p trình khác ( không ph i SQLừ ữ ậ ảserver) và nó được tri n khai tính năng c a m t th t c trong SQL Server.ể ủ ộ ủ ụCác th t c này có tên b t đ u là xp_.ủ ụ ắ ầ

2.1.5 Remote strored procedure

Là m t th t c độ ủ ụ ượ ọc g i th c thi t m t server t xa.ự ừ ộ ừ

Sau đây chúng ta đi nghiên c u ch y u v 2 lo i c th thứ ủ ế ề ạ ụ ể ường hay s d ngử ụ

là: System Store Procedure ( th t c h th ng ) và ủ ụ ệ ố User-defined Store Procedure ( th t c do ngủ ụ ười dung t o ra ).ạ

Trang 12

2.2 System Stored Procedure:

“A set of SQL Server-supplied stored procedures that can be used for actions such as retrieving information from the system catalog or performing adminstration task”.

Là nh ng SP ch a trong Master Database và thữ ư ường b t đ u b ng ti p đ uắ ầ ằ ế ầ

sp_Databases Danh sách nh ng Database có th (avaible) trênữ ể

Server (Danh sách này sẽ là khác nhau tùy thu c vàoộquy n c a ngề ủ ườ ử ụi s d ng)

sp_server_info Chi ti t thông tin v Server, ví d nh t p các đ cế ề ụ ư ậ ặ

sp_password Thay đ i password cho login accountổ

Trang 13

sp_configure Thay đ i l a ch n c u hình chung c a SQL Sever Khiổ ự ọ ấ ủ

ngườ ử ụi s d ng không l a ch n thì h th ng sẽ hi nự ọ ệ ố ể

th c u hình m c đ nhị ấ ặ ị

sp_help Hi n th thông tin v b t kỳ đ i tể ị ề ấ ố ượng nào trong

Databasesp_helptext Hi n th n i dung (text) c a các đ i tể ị ộ ủ ố ượng

Các tác v Qu n tr (administration tasks) bao g m : Li t kê, Thêm, C pụ ả ị ồ ệ ậ

nh t, Xóa đ i tậ ố ượng C S D Li u.ở ở ữ ệ

Đ th c thi m t SP, ta s d ng l nh EXEC.ể ự ộ ử ụ ệ

Dưới đây là danh sách các th t c h th ng khi m ra trong m t Database vàủ ụ ệ ố ở ộcác th t c này n m trong th m c Programmability.ủ ụ ằ ư ụ

Trang 14

Ngoài ra, SQL server còn cung c p m t s Th t c H Th ng m r ng, v iấ ộ ố ủ ụ ệ ố ở ộ ớtên ti n t là xp_ ề ố

Ví d : xp_smdshell ( Li t kê danh sach Th M c và T p tin )ụ ệ ư ụ ậ

2.3 User-Defined Stored Proceudre:

Là các SP do ngườ ử ụi s d ng xây d ng.ự

Khi m t th t c độ ủ ụ ược t o ra, tên th t c đạ ủ ụ ược vi t vào b ng h th ngế ả ệ ốsysobjects, n i dung c a th t c thì độ ủ ủ ụ ược l u trong b ng h th ngư ả ệ ốsyscomments

Th t c khi ch y l n đ u hay đủ ụ ạ ầ ầ ược biên d ch l i sẽ theo 3 bị ạ ước sau:

Relution – Công c x lý truy v n (query processor) đ c và ki m traụ ử ấ ọ ể

M t s quy t c khi t o SP :ộ ố ắ ạ

M i th t c ch nên hoàn thành 1 nhi m v ỗ ủ ụ ỉ ệ ụ

L nh t o th t c không th ch a các l nh CREATE VIEW, CREATE DEFAULT, ệ ạ ủ ụ ể ứ ệ CREATE RULE hay CREATE TRIGGER.

M t th t c không th t o/ xóa 1 đ i t ộ ủ ụ ể ạ ố ượ ng r i l i tham chi u đ n đ i ồ ạ ế ế ố

t ượ ng đó.

Các th t c có th tham chi u đ n các b ng t m th i ủ ụ ể ế ế ả ạ ờ

Có th tham chi u đ n các đ i t ể ế ế ố ượ ng t các CSDL khác và server t xa ừ ừ

Cho phép các th t c đ quy – th t c có th g i chính nó ủ ụ ệ ủ ụ ể ọ

Nhi u nh t là 2100 Parameters trong Store procedure ề ấ

Các th th c có th đ ủ ụ ể ượ c g i l ng nhau t i đa t i 32 m c ọ ồ ố ớ ứ

Kích c c c đ i c a m t th t c là 128 MB, và còn tùy thu c vào b nh ỡ ự ạ ủ ộ ủ ụ ộ ộ ớ

T o b ng SQL Server Management Studio (SSMS) các bạ ằ ước đ t o nh hìnhể ạ ưsau

Trang 15

T o b ng script :ạ ằ

Cú pháp t o nh sau.ạ ư

CREATE { PROC | PROCEDURE} < tên th t c > ủ ụ

[ < Danh sách tham s > ] ố

[VARYING] [= default] [OUTPUT]

[ WITH [ RECOMPLILE ] [, ENCRYPTION ] [, m nh đ EXCECUTE AS> ] ] ệ ề [ FOR REPLICATION ]

Có hai lo i tham s đó là tham s đ u vào và tham s đ u ra Tham s đ uạ ố ố ầ ố ầ ố ầvào thì được chia thành tham s b t bu c (B t bu c ph i truy n gía tr choố ắ ộ ắ ộ ả ề ịtham s này, tham s tùy ch n.Đã đố ố ọ ược gán giá tr m c đ nh, n u khôngị ặ ị ế

Trang 16

truy n gái tr trong l i g i th t c tham s sẽ nh n giá tr m c đ nh) Thamề ị ờ ọ ủ ụ ố ậ ị ặ ị

s đ u ra ( S d ng đ l y k t qu tr v t th t c, khai báo b ng t khóaố ầ ử ụ ề ấ ế ả ả ề ừ ủ ụ ằ ừOUTPUT)

Cú pháp :“@<tham s 1> <ki u d li u> [=<m c đ nh>][OUTPUT | OUT] ố ể ữ ệ ặ ị L@<tham s 2> <ki u d li u> [=<m c đ nh>][OUTPUT | OUT]]…” ố ể ữ ệ ặ ị OUTPUT:

n u parameter nào đó đế ược khai báo là Output, thì Parameter đó là 1 “return parameter” Dùng Output Parameter đ tr v thông tin khi g i SP.ể ả ề ọ

Recompile:

SP sẽ được biên d ch l i trong lúc th c thi (run time) Dùng tùy ch nị ạ ự ọ

“recompile” khi ta dùng các giá tr t mị ạ ho c các ặ giá tr không đi n hình ị ể (atypical values) mà không mu n ố ghi đè (override) lên execution plan

(b ng th c thi) ả ự được tr s n trong b nh ữ ẵ ộ ớ

Encryption:

SQL_Server sẽ mã hóa (Encrypt) Danh m c ụ ( trong table syscomments) có

ch a n i dung c a các câu l nh Create Proc Dùng đ ngăn không cho Thứ ộ ủ ệ ể ủ

t c b xu t (published) thành 1 ph n b n sao c a SQL Server.ụ ị ấ ầ ả ủ

For Replication:

m t SP độ ượ ạc t o kèm theo tùy ch n “ For Replication”, sẽ đọ ược dùng nh 1ư

b l c SP ộ ọ và ch th c thi trong quá trình Replicationỉ ự Không s d ng cùng v iử ụ ớtùy chon “ WITH RECOMPILE”

“DROP {PROC | PROCEDURE}<tên th t c>[,…]” ủ ụ

“ALTER {PROC | PROCEDURE}<tên th t c> ủ ụ

[<Danh sách tham s >] ố

[WITH [RECOMPILE] [, ENCRYTION] [, <m nh đ EXECUTE AS>]] ệ ề

AS <Các câu l nh SQL>” ệ

Trang 20

3.1 Ví d v User-Define SP ụ ề

Trước khi xây d ng các th t c em đã t o m t database có tên là QLNV g m haiự ủ ụ ạ ộ ồ

b ng: nhanvien và sanphamả

B ng nhanvien có danh sách các nhân viên và thông tin c a t ng nhân viên.ả ủ ừ

Ti p theo là b ngế ả sanpham hi n thông tin c a t ng khoa nh mã mã hàng, tên ệ ủ ừ ư

m t hàng, s lặ ố ượng

Trang 21

Sau đó xây d ng các th t c v i ví d c th nh sau:ự ủ ụ ớ ụ ụ ể ư

Ví d 6:ụ Hi n thông tin b ng nhanvienệ ả

Trang 22

Exec Them_NV ‘NV11’,N’Vi t’,’1990/10/20’, N’Nam’, N’Hà N i’, ‘MH02’ệ ộ

Ví d 8 S a thông tin nhân viênụ ử

where manv=@manv

end

Th c thi th t c Sua_NVự ủ ụ

Trang 23

Exec Sua_NV ‘NV11’, N’Hòa’, ’1990/10/21’, N’N ’, N’Hà N i’, ‘MH03’ữ ộ

Ví d 9 Xóa thông tin m t nhân viênụ ộ

Trang 24

3.1 K t qu liên k t v i ngôn ng l p trình VB.NET ế ả ế ớ ữ ậ

Bước 1: T o ra m t đ i tạ ộ ố ượng SqlConnection đ k t n i t i c s d li u Sể ế ố ớ ơ ở ữ ệ ử

d ng đ i tụ ố ượng đó đ k t n i t i m t c s d li u máy ch ph c v SQL Lể ế ố ớ ộ ơ ở ữ ệ ủ ụ ụ ấytên đ i tố ượng đó là “conn”

SqlConnection conn = new SqlConnection(@"DataSource=CONGVIET;Initial Catalog=CSDLQu nLýSinhViên;IntegratedảSecurity=True");

Bước 2: M l p k t n i và t o ra m t đ i tở ớ ế ố ạ ộ ố ượng SqlCommand đ t tên là cmd vàặkhai báo ki u bi n cho đ i tể ế ố ượng đó :

Conn.Open();

SqlCommand cmd = new SqlCommand("—Tên th t c c n g i ủ ụ ầ ọ ", conn);cmd.CommandType = CommandType.StoredProcedure;

Trang 25

Bước 3: Vi t các câu l nh c n thi t, sau đó t o câu l nh th c hi n các câu l nhế ệ ầ ế ạ ệ ự ệ ệ

Trang 26

K T LU N Ế Ậ

Qua đ tài trên b n thân đã tích lũy đề ả ược thêm nhi u ki n th c m i v l p trình,ề ế ứ ớ ề ậ

b n thân đã đả ược trang b các ki n th c liên quan v thi t k ph n m m và đãị ế ứ ề ế ế ầ ề

t o đạ ược các th t c SP c b n và g i đủ ụ ơ ả ọ ược trên ngôn ng l p trình VisualBasic,ữ ậ

hi u rõ h n các th t c trong SQL Server.ể ơ ủ ụ

Do kinh nghi m làm bài ch a có nhi u nên bài demo trên cũng ch là nh ng ki nệ ư ề ỉ ữ ế

th c căn b n đ t o đứ ả ể ạ ược các th t c c b n.C n có th i gian h c t p thêmủ ụ ơ ả ầ ờ ọ ậnhi u ki n th c đ t o các th t c ph c t p h n đ càng ti n h n n a khi sề ế ứ ể ạ ủ ụ ứ ạ ơ ể ệ ơ ữ ử

d ng.ụ

Ngày đăng: 10/01/2018, 17:34

TỪ KHÓA LIÊN QUAN

w