Hiện nay, SQL đã được sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu thương mại và có vai trò quan trọng trong những hệ thống này.. Bài giảng cung cấp các kiến thức cơ bản và tương
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
KHOA HỆ THỐNG THÔNG TIN KINH TẾ
Trang 2MỤC LỤC
MỤC LỤC 1
DANH MỤC HÌNH VẼ, BẢNG BIỂU 4
LỜI MỞ ĐẦU 5
Chương 1 6
DOANH NGHIỆP VÀ CƠ SỞ DỮ LIỆU TRONG DOANH NGHIỆP 6
1.1 Tổng quan về doanh nghiệp 6
1.1.1 Khái niệm 6
1.1.2 Mục đích và mục tiêu của doanh nghiệp 7
1.2 Cơ sở dữ liệu trong doanh nghiệp 8
1.3 Quản trị cơ sở dữ liệu doanh nghiệp 11
Chương 2 13
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 13
2.1 Tổng quan về cơ sở dữ liệu và Hệ quản trị cơ sở dữ liệu 13
2.1.1 Khái niệm CSDL 13
2.1.2 Khái niệm hệ quản trị cơ sở dữ liệu 13
2.1.3 Các hệ quản trị cơ sở dữ liệu thông dụng 14
2.2 Tổng quan về SQL server 2005 16
2.2.1 Cài đặt SQL Server 2005 Express Edition 18
2.2.2 SQL là ngôn ngữ của cơ sở dữ liệu quan hệ 25
2.2.3 Vai trò của SQL 25
2.2.4 Giới thiệu sơ lược về Transact SQL (T-SQL) 26
2.3 Tạo lập cơ sở dữ liệu trên SQL server 35
2.3.1 Một số thao tác cơ bản trên SQL Server 2005 Express Edition 35
2.3.2 Mở một query editor để viết câu lệnh SQL 38
2.3.3 Các hàm quan trọng trong T- SQL 48
2.4 Ngôn ngữ thao tác dữ liệu – DML 55
2.4.1 Câu lệnh SELECT 56
2.4.2 Thêm, cập nhật và xóa dữ liệu 82
2.5 View 87
2.5.1 Khái niệm 87
2.5.2 Thêm, cập nhật, xóa dữ liệu trong VIEW 89
2.5.3 Thay đổi định nghĩa khung nhìn 89
2.5.4 Xóa khung nhìn 89
2.6 Thủ tục lưu trữ (Stored procedure) 90
2.6.1 Tạo thủ tục lưu trữ 91
2.6.2 Lời gọi thủ tục 92
2.6.3 Biến trong thủ tục lưu trữ 93
Trang 32.6.4 Giá trị trả về trong thủ tục lưu trữ 93
2.6.5 Tham số với giá trị mặc định 95
2.6.6 Sửa đổi thủ tục 96
2.6.7 Xóa thủ tục 96
2.7 Hàm (Function) 96
2.7.1 Khái niệm 96
2.7.2 Hàm vô hướng 97
2.7.3 Hàm nội tuyến 98
2.7.4 Hàm bao gồm nhiều câu lệnh bên trong 99
2.7.5 Thay đổi hàm 101
2.7.6 Xóa hàm 101
2.8 Trigger 101
2.8.1 Khái niệm 101
2.8.2 Các đặc điểm của trigger 102
2.8.3 Các trường hợp sử dụng trigger 102
2.8.4 Khả năng sau của trigger 102
2.8.5 Định nghĩa trigger 103
2.8.6 Kích hoạt trigger dựa trên sự thay đổi dữ liệu trên cột 107
2.8.7 Sử dụng trigger và Giao tác 108
2.8.8 DDL TRIGGER 109
2.8.9 Enable/ Disable TRIGGER 111
2.9 Cursor 112
2.9.1 Khái niệm 112
2.9.2 Các thao tác chung trên Cursor 112
2.9.3 Truy xuất dữ liệu trên Cursor 115
2.10 Sao lưu và phục hồi dữ liệu 117
2.10.1 Các lý do phải thực hiện Backup 117
2.10.2 Các loại Backup 117
2.10.3 Các thao tác thực hiện quá trình Backup và Restore trong SQL Server 2005 Express Edition 119
2.11 Kết nối Sql server 2005 từ các ngôn ngữ lập trình để xây dựng các ứng dụng 121
2.11.1 Cấu hình Microsoft SQL Server 2005 122
2.11.2 Kết nối vào SQL Server trong các ngôn ngữ lập trình 125
Chương 3 130
ỨNG DỤNG QUẢN TRỊ CƠ SỞ DỮ LIỆU CHO DOANH NGHIỆP 130
3.1 Nhiệm vụ quản trị CSDL của doanh nghiệp 130
3.2 Quản trị sản xuất và tác nghiệp trong doanh nghiệp 130
3.3 Quản trị hoạt động dịch vụ 131
3.4 Quản trị hoạt động marketing 132
Trang 43.5 Quản trị nhân lực 133
3.6 Quản trị CSDL tài chính 134
3.7 Quản trị hoạt động tiêu thụ 135
3.8 Bảo vệ và quản lý csdl dữ liệu thông tin khách hàng 137
3.9 Đánh giá hiệu quả sản xuất kinh doanh của doanh nghiệp 138
TÀI LIỆU THAM KHẢO 140
Trang 5DANH MỤC HÌNH VẼ, BẢNG BIỂU
Hình 2.1: Sự tương tác của hệ QTCSDL với người dùng và với CSDL 16
Hình 2.2: Các yêu cầu cho hệ thống 32bit 18
Hình 2.3: Các bước cài đặt Sql server 2005 22
Hình 2.4: Thiết lập Sql server 2005 23
Hình 2.5: Cài đặt SQL Server Management Studio Express 24
Hình 2.6: Giao diện sau khi đăng nhập thành công 24
Hình 2.7: Cơ sở dữ liệu quản lý bán hàng 31
Hình 2.8: Tạo một CSDL mới 36
Hình 2.9: Đặt tên Database 36
Hình 2.10: Tạo bảng mới 37
Hình 2.11: Đặt tên bảng 38
Hình 2.12: Mở query editor để viết câu lệnh SQL 38
Hình 2.13: Cơ sở dữ liệu quản lý ngân hàng 57
Hình 2.14: Quá trình Backup 121
Hình 2.15: Quá trình phục hồi 121
Hình 3.1: Cơ sở dữ liệu quản lý kho vật tư 129
Hình 3.2: Cơ sở dữ liệu về việc cung cấp các mặt hàng 130
Hình 3.3: Cơ sở dữ liệu về khách hàng 131
Hình 3.4: Dữ liệu về hồ sơ nhân viên của 1 doanh nghiệp 132
Hình 3.5: Dữ liệu về quản lý lương nhân viên 133
Hình 3.6: Dữ liệu về quản lý bán hàng 135
Bảng 2.1: Một số kiểu dữ liệu thông dụng trong SQL 32
Bảng 2.2: Các toán tử và mức độ ưu tiên 34
Trang 6LỜI MỞ ĐẦU
Hệ quản trị cơ sở dữ liệu là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu Có rất nhiều hệ quản trị CSDL khác nhau: từ phần mềm nhỏ chạy trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính Đa số hệ quản trị CSDL trên thị trường đều có một đặc điểm chung
là sử dụng ngôn ngữ truy vấn theo cấu trúc(SQL) Ngôn ngữ SQL (Structured Query Language) được sử dụng trong hầu hết các hệ quản trị cơ sở dữ liệu để truy vấn và sửa đổi cơ sở dữ liệu Ngôn ngữ SQL hỗ trợ các truy vấn dựa trên các phép toán đại số quan hệ, đồng thời cũng chứa các lệnh sửa đổi cơ sở dữ liệu và mô tả lược đồ cơ sở dữ liệu Như vậy, SQL vừa là một ngôn ngữ thao tác dữ liệu, vừa là một ngôn ngữ định nghĩa dữ liệu Ngoài ra SQL cũng tiêu chuẩn hoá nhiều lệnh cơ
sở dữ liệu khác Hiện nay, SQL đã được sử dụng phổ biến trong các hệ quản trị cơ
sở dữ liệu thương mại và có vai trò quan trọng trong những hệ thống này
Bài giảng cung cấp các kiến thức cơ bản và tương đối đầy đủ về các câu lệnh thường được sử dụng trong SQL và các ứng dụng quan trọng của hệ quản trị cơ sở
dữ liệu Sql server của Microfoft Bài giảng được chia thành 3 chương với nội dung chính như sau:
Chương 1 Doanh nghiệp và cơ sở dữ liệu trong doanh nghiệp
Chương 2 Hệ quản trị cơ sở dữ liệu
Chương 3 Ứng dụng quản trị CSDL cho các doanh nghiệp
Do hạn chế về thời gian và kinh nghiệm, chắc chắn bài giảng còn nhiều thiếu sót Mong các bạn góp ý và phê bình Chúng tôi sẽ tiếp thu ý kiến để bài giảng ngày càng hoàn thiện hơn Xin chân thành cảm ơn!
Trang 7Chương 1 DOANH NGHIỆP VÀ CƠ SỞ DỮ LIỆU TRONG DOANH
xí nghiệp, hãng,
Theo định nghĩa của luật doanh nghiệp[1], ban hành ngày 29 tháng 11 năm
2005 của Việt Nam, doanh nghiệp là tổ chức kinh tế riêng, có tài sản, có trụ sở giao dịch ổn định, được đăng ký kinh doanh theo quy định của pháp luật nhằm mục đích thực hiện các hoạt động kinh doanh
Cũng theo quy luật trên, ta có thể phân loại các doanh nghiệp thành:
- Công ty trách nhiệm hữu hạn là doanh nghiệp mà các thành viên trong công
ty (có thể là một tổ chức hay một cá nhân đối với công ty trách nhiệm hữu hạn một thành viên) chịu trách nhiệm về các khoản nợ và nghĩa vụ tài sản khác của công ty trong phạm vi số vốn điều lệ của công ty
Công ty cổ phần là doanh nghiệp mà vốn điều lệ của công ty được chia thành nhiều phần bằng nhau gọi là cổ phần Cá nhân hay tổ chức sở hữu cổ phần của doanh nghiệp được gọi là cổ đông và chịu trách nhiệm về các khoản nợ và các nghĩa
vụ tài sản khác trong phạm vi số vốn đã góp vào doanh nghiệp
Công ty hợp danh là doanh nghiệp trong đó có ít nhất hai thành viên là chủ sở hữu của công ty, cùng kinh doanh dưới một cái tên chung (gọi là thành viên hợp danh) Thành viên hợp doanh phải là cá nhân và chịu trách nhiệm bằng toàn bộ tài sản của mình về các nghĩa vụ của công ty Ngoài ra trong công ty hợp danh còn có các thành viên góp vốn
Doanh nghiệp tư nhân: doanh nghiệp do một cá nhân làm chủ và tự chịu trách nhiệm bằng toàn bộ tài sản của mình về mọi hoạt động của doanh nghiệp Mỗi cá nhân chỉ được quyền thành lập một doanh nghiệp tư nhân
Trang 8Ngoài ra còn có các thuật ngữ sau:
• Nhóm công ty là tập hợp các công ty có mối quan hệ gắn bó lâu dài với nhau
về lợi ích kinh tế, công nghệ, thị trường và các dịch vụ kinh doanh khác Nó gồm có các hình thức sau: công ty mẹ - công ty con, tập đoàn kinh tế
• Doanh nghiệp nhà nước là doanh nghiệp trong đó nhà nước sở hữu trên 50% vốn điều lệ
• Doanh nghiệp có vốn đầu tư nước ngoài là doanh nghiệp do nhà đầu tư nước ngoài thành lập để thực hiện hoạt động đầu tư tại Việt Nam hoặc doanh nghiệp Việt Nam do nhà đầu tư nước ngoài mua cổ phần, sát nhập, mua lại
1.1.2 Mục đích và mục tiêu của doanh nghiệp
Doanh nghiệp cần tồn tại, phát triển và đảm bảo tính bền vững, điều đơn giản
là không có một doanh nghiệp nào tồn tại vĩnh cửu nến doanh nghiệp đó không xác định được mục đích và mục tiêu hoạt động của chính nó Hoạt động của doanh nghiệp chỉ có thể hiệu quả một khi kế hoạch của nó gắn bó chặt chẽ với mục tiêu để cho phép đạt được những mục đích Kế hoạch đó đòi hỏi phải được điều chỉnh kịp thời theo những biến động của môi trường, đồng thời gắn bó với những khả năng cho phép của doanh nghiệp như: vốn, lao động, công nghệ Từ những kế hoạch đó đòi hỏi doanh nghiệp phải có cơ cấu tổ chức hợp lý, xác định cụ thể nhiệm vụ cho từng bộ phận, cá nhân, đồng thời phối hợp hoạt động nhằm đạt được mục đích của doanh nghiệp
1.1.2.1 Mục đích của doanh nghiệp
Mục đích của doanh nghiệp là thể hiện khuynh hướng tồn tại và phát triển, doanh nghiệp có 3 mục đích cơ bản:
- Mục đích kinh tế: Thu lợi nhuận, đây là mục đích quan trọng hàng đầu của các doanh nghiệp hoạt động sản xuất kinh doanh
- Mục đích xã hội: Cung cấp hàng hòa và dịch vụ đáp ứng nhu cầu xã hội Đây
là mục đích quan trọng hàng đầu của các doanh nghiệp hoạt động công ích
- Mục đích thỏa mãn các nhu cầu cụ thể và đa dạng của mọi người tham gia vào hoạt động của doanh nghiệp
1.1.2.2 Mục tiêu của doanh nghiệp
Mục tiêu là biểu hiện mục đích của doanh nghiệp, là những mốc cụ thể được phát triển từng bước Một mục tiêu là một câu hỏi cần có lời giải đáp trong một
Trang 9khoảng thời gian nhất định Yêu cầu đặt ra với mục tiêu là: Mục tiêu đạt được cần thỏa mãn cả về số lượng và chất lượng, đồng thời với việc xác định được các phương tiện thực hiện Mục tiêu của doanh nghiệp phải luôn bám sát từng giai đoạn phát triển của nó
1.2 Cơ sở dữ liệu trong doanh nghiệp
Cơ sở dữ liệu trong doanh nghiệp là tập hợp các thông tin cần quản lý liên quan đến doanh nghiệp đó như: các thông tin về khách hàng, nhà cung cấp, tài chánh, sản xuất, kinh doanh, nhân viên… Đó là các thuộc tính phản ánh nội dung
mà doanh nghiệp cần quản lý Các thuộc tính đó thường được biểu diễn dưới dạng các kiểu dữ liệu khác nhau (dạng chuỗi, số, ngày tháng,…) và được hợp nhất thành một đơn vị thông tin duy nhất gọi là bản ghi (record) Các bản ghi cùng cấu trúc hợp lại thành một cơ sở dữ liệu của doanh nghiệp
Thông tin luôn là một tài sản vô giá của doanh nghiệp và cần được bảo vệ bằng mọi giá Tuy nhiên, với những đòi hỏi ngày càng ngắt gao của môi trường kinh doanh yêu cầu doanh nghiệp phải năng động chia sẻ thông tin của mình cho nhiều đối tượng khác nhau qua Internet hay Intranet (mạng “Internet” trong nội bộ doanh nghiệp), việc bảo vệ thông tin trở nên ngày càng quan trọng và khó khăn hơn bao giờ hết
Hầu hết các doanh nghiệp ngày nay đều sử dụng các hệ quản trị cơ sở dữ liệu (CSDL) để lưu trữ tập trung tất cả các thông tin quý giá của mình Hiển nhiên hệ thống này sẽ là tiêu điểm tấn công của những kẻ xấu Ở mức độ nhẹ, các tấn công sẽ làm hệ thống CSDL bị hỏng hóc, hoạt động không ổn định, mất mát dữ liệu làm cho các giao dịch hàng ngày của doanh nghiệp bị đình trệ Nghiêm trọng hơn, các thông tin sống còn của doanh nghiệp bị tiết lộ (như chiến lược kinh doanh, các thông tin
về khách hàng, nhà cung cấp, tài chánh, mức lương nhân viên,…) và được đem bán cho các doanh nghiệp đối thủ Có thể nói là thiệt hại của việc thông tin bị rò rỉ là vô cùng kinh khủng Đó sẽ là một đòn chí mạng đối với uy tín của doanh nghiệp đối với khách hàng và các đối tác
Các hệ CSDL ngày nay đều có sẵn các công cụ bảo vệ tiêu chuẩn như hệ thống định danh (authentication - yêu cầu người dùng phải xác nhận danh tính của mình bằng tên và mật khẩu) và kiểm soát truy xuất (access control - giới hạn các thao tác của người dùng trên một tập dữ liệu xác định)
Quản lý cơ sở dữ liệu trong doanh nghiệp tức là quản lý các thông tin như: các thông tin về khách hàng, nhà cung cấp, tài chánh, mức lương nhân viên,…Đây là
Trang 10những thông tin mang ý nghĩa vô cùng quan trọng, góp phần thúc đẩy sự phát triển của một doanh nghiệp
Ví Dụ: Xây dựng cơ sở dữ liệu thông tin khách hàng
Có thể nói khách hàng là thượng đế, là người mẹ nuôi dưỡng doanh nghiệp, vì thế phải làm tốt công tác phục vụ khách hàng Doanh nghiệp thường có 2 loại khách hàng, một là khách hàng cá nhân, hai là khách hàng doanh nghiệp Trước khi thu thập thông tin khách hàng, cần phải nắm rõ một số nguyên tắc và yêu cầu thu nhập thông tin khách hàng, cụ thể như sau:
Thông tin của khách hàng chính là nguồn tài sản quan trọng của doanh nghiệp Doanh nghiệp sau khi thu được hệ thống thông tin khách hàng bằng nhiều cách khác nhau thì phải tiến hành chỉnh lý và phân loại các thông tin đó Mục đích của việc thu thập thông tin khách hàng, xây dựng hồ sơ khách hàng là để sử dụng những thông tin này một cách có hiệu quả
Quản lý hồ sơ bao gồm quản lý thông tin về tài sản trong hoạt động khách hàng và những thông tin cơ bản nhất của khách hàng Sau khi chỉnh lý thông tin khách hàng, bạn có thể tham khảo giải pháp mô tả chi tiết dưới đây để biết cách làm thế nào sử dụng tốt hơn những thông tin này
Cơ sở dữ liệu thông tin khách hàng là thông tin dữ liệu tổng hợp về một tổ chức khách hàng hay các khách hàng tiềm năng hoặc khách hàng có thể là người mua
Sau khi hoàn thành việc xây dựng kho tập hợp dữ liệu khách hàng bước tiếp theo sẽ là tiến hành ghi chép thông tin khách hàng đã thu được và hoàn thiện trong
cơ sở dữ liệu đó Bạn có thể tham khảo giải pháp mô tả chi tiết dưới đây để biết được khi tiến hành xây dựng một cơ sở lưu trữ dữ liệu thông tin khách hàng cần chú
ý đến những vấn đề gì:
* Khi xây dựng cơ sở dữ liệu thông tin khách hàng cần chú ý những chi tiết sau:
Phải bảo tồn thông tin ban đầu của khách hàng Cơ sở dữ liệu hiện tại có khả năng xử lý rất lớn, nhưng cho dù xử lý như thế nào thì tổng dữ liệu ban đầu vẫn là quan trọng nhất, nếu số liệu thông tin ban đầu mà hoàn chỉnh và kịp thời xử lý sẽ có kết quả như ý muốn
Phải đảm bảo tính an toàn của csdl Thứ nhất phải đảm bảo tính an toàn, đáng tin của csdl, ngoài ra, phải làm tốt công tác bảo mật đối với thông tin của khách
Trang 11hàng Vì thế, cần phải tăng cường quản lý an toàn một cách nghiêm túc, xây dựng
cơ chế bảo vệ và người quản lý cơ sở dữ liệu chuyên nghiệp
Tính thức thời của cơ sở dữ liệu: Số liệu trong cơ sở dữ liệu là chết, chỉ có động thái của khách hàng là hoạt động, doanh nghiệp phải tận dụng tối đa lợi ích mà
dữ liệu mang lại và kịp thời đổi mới thông tin khách hàng
Tính thao tác: Mục đích của việc thu thập và lưu trữ thông tin của khách hàng
là để sử dụng những thông tin đó, muốn vậy đòi hỏi thông tin khách hàng phải vận hành tốt Sự vận hành của cơ sở dữ liệu thông tin khách hàng bao gồm: kiểm tra, tìm kiếm, sắp xếp trình tự, phân loại khách hàng v.v…
Thông tin ban đầu của khách hàng nhất định phải được bảo quản, chúng ta có
thể xếp loại khách hàng, sau đó tiến hành phân loại quản lý
Làm cho càng nhiều bộ phận và cá nhân tham gia việc xây dựng cơ sở dữ liệu thông tin khách hàng càng tốt Do trình độ thông tin của doanh nghiệp không ngừng nâng cao nên việc sử dụng thông tin khách hàng không chỉ giới hạn ở bộ phận phục
vụ khách hàng mà các bộ phận khác cũng cần phải sử dụng đến cơ sở dữ liệu này
Sự tham gia tích cực của họ sẽ phát huy tác dụng tối đa của cơ sở dữ liệu thông tin khách hàng
*Ghi chép và xử lý thông tin khách hàng
Xử lý thông tin khách hàng
Nguồn gốc của dữ liệu khách hàng thu được chủ yếu do hai cách sau:
Dữ liệu khách hàng mà doanh nghiệp có được trong kinh doanh là dữ liệu quan trọng nhất, chân thực nhất, đồng thời để có những thông tin dữ liệu này, doanh nghiệp đã phải đầu tư nhiều chi phí Phương thức để giành được những dữ liệu này
là bán hàng qua điện thoại, ghi chép việc bán hàng, xúc tiến việc bán hàng, điều tra thị trường, v.v… Những thông tin này thường được ghi chép tỉ mỉ, chính xác, chi tiết cao, việc xử lý những thông tin này chủ yếu là tiến hành đối chiếu số liệu, đồng thời thống nhất phương pháp xử lý các số liệu
Thông qua bên thứ ba để thu được dữ liệu khách hàng, ví dụ: dữ liệu điều tra thu được từ hiệp hội ngành nghề, số liệu từ các công ty điều tra chuyên nghiệp Hầu hết những dữ liệu này là của khách hàng tiềm năng, tính chân thực của nó không được đảm bảo vì thế việc quan trọng nhất là xác định tính chân thực của nó
Nhập thông tin: Sau khi xử lý thông tin cần phải tiến hành nhập thông tin Bước đầu xây dựng cơ sở dữ liệu, việc nhập thông tin là nhiệm vụ rất nặng nề, đặc
Trang 12biệt đối với những doanh nghiệp có số lượng khách hàng lớn Điều này đòi hỏi nhân viên phục vụ khách hàng phải làm việc chăm chỉ, cẩn thận, đảm bảo tính chuẩn xác của dữ liệu thông tin
Nhân viên phục vụ khách hàng nên căn cứ vào thông tin ban đầu để ghi chép một cách nghiêm túc dữ liệu, nếu gặp phải thông tin nào còn mơ hồ hoặc nghi ngờ thì cần xác định tính chân thực của nó, khi cần có thể tìm bộ phận có liên quan để xác nhận hoặc xin chỉ thị của lãnh đạo cấp trên, những dữ liệu không có cách nào để xác minh thì phải chú thích vào trong cơ sở dữ liệu
*Xây dựng cơ sở dữ liệu thông tin khách hàng phải chú ý vấn đề gì?
Phải bảo tồn thông tin ban đầu của khách hàng
Phải đảm bảo tính an toàn của cơ sở dữ liệu
Tính thức thời của cơ sở dữ liệu
Quản trị cơ sở dữ liệu doanh nghiệp là phần mềm hay hệ thống được thiết kế
để quản trị một cơ sở dữ liệu trong doanh nghiệp đó, hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm kiếm thông tin cho cơ sở dữ liệu của doanh nghiệp đó
Hệ thống các cách thức tác động nhằm duy trì và phát triển doanh nghiệp, xử
lý mối quan hệ với môi trường kinh doanh để đạt được mục tiêu của doanh nghiệp Quản trị cơ sở dữ liệu trong doanh nghiệp vừa là khoa học vừa là nghệ thuật,
là quá trình hoạch định, tổ chức, lãnh đạo điều khiển và kiểm tra, kiểm soát trong doanh nghiệp, nhằm đạt được mục tiêu kinh tế của doanh nghiệp
*) Vai trò của quản lý(quản trị)
• Quản lý là yếu tố quan trọng nhất trong sáu yếu tố cơ bản trong hoạt động sản xuất kinh doanh của doanh nghiệp (6 chữ M :Tiền; Máy móc thiết bị; Nguyên vật liệu; Nhân lực; Marketing; Quản lý)
Trang 13• Một doanh nghiệp sẽ thất bại trong kinh doanh nếu công tác quản lý tồi
và ngược lại Để củng cố hoặc tổ chức lại một doanh nghiệp làm ăn thua lỗ thì điều trước tiên là phải thay thế người quản lý thiếu năng lực
*) Nội dung của quản trị cơ sở dữ liệu trong doanh nghiệp:
- Xác định cơ cấu tổ chức quản lý doanh nghiệp (bộ máy, chức năng, nguyên tắc, phương pháp quản lý doanh nghiệp )
- Xác định các loại dữ liệu thông tin cần quản lý trong doanh nghiệp
- Xây dựng cơ sở dữ liệu của các thông tin cần quản lý
- Quản trị cơ sở dữ liệu (lưu trữ, sửa chữa, xóa và tìm kiếm) thông tin cho cơ
sở dữ liệu của doanh nghiệp đó
*) Các lĩnh vực quản trị cơ sở dữ liệu doanh nghiệp
- Sản xuất (nguyên liệu, kỹ thuật, công nghệ, mặt bằng, nhà xưởng )
- Tài chính (nguồn vốn, sử dụng vốn, hiệu quả sử dụng vốn, phân tích các quyết định đầu tư )
- Nhân sự (xác định nhu cầu lao động, tuyển dụng, bố trí sử dụng, đào tạo, đánh giá, đãi ngộ, các quyền lợi của lao động )
- Marketing (tìm hiểu thị trường đầu vào và đầu ra, ký kết các hợp đồng kinh
tế, xúc tiến quảng cáo, xây dựng thương hiệu )
…
Trang 14Chương 2
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
2.1 Tổng quan về cơ sở dữ liệu và Hệ quản trị cơ sở dữ liệu
Bài toán quản lý là bài toán phổ biến trong mọi hoạt động kinh tế xã hội Việc lưu trữ và xử lý thông tin một cách chính xác và kịp thời chiếm một vị trí quan trọng trong quản lý, điều hành của mọi tổ chức
Máy tính điện tử ra đời và phát triển đã trở thành một công cụ lưu trữ dữ liệu khổng lồ, tốc độ truy xuất và xử lý dữ liệu nhanh Do vậy cần phải tạo lập được các phương thức mô tả các cấu trúc dữ liệu để có thể sử dụng máy tính trợ giúp đắc lực cho con người trong việc lưu trữ và khai thác thông tin Cơ sở dữ liệu(CSDL) và hệ quản trị cơ sở dữ liệu(HQTCSDL) ra đời và phát triển để đáp ứng nhu cầu đó
2.1.1 Khái niệm CSDL
Một cơ sở dữ liệu(database) là một tập hợp các dữ liệu có liên quan với nhau, chứa thông tin của một tổ chức nào đó(như trường học, bệnh viện, công ty…) được lưu trữ trên các thiết bị nhớ để đáp ứng nhu cầu khai thác thông tin của nhiều người dùng với nhiều mục đích khác nhau
Ví dụ như hồ sơ của sinh viên được lưu trữ ở bộ nhớ ngoài của máy tính có thể xem như là một scdl
Hiện nay thì việc ứng dụng cơ sở dữ liệu trong hầu hết các hoạt động xã hội trở nên phổ biến và quen thuộc Như cơ sở dữ liệu quản lý thư viện, cơ sở dữ liệu quản lý hàng không…
Để có thể tạo lập, lưu trữ và cho phép nhiều người có thể khai thác được cơ sở
dữ liệu thì cần có hệ thống các chương trình cho phép người dùng giao tiếp với cơ
sở dữ liệu Hệ thống các chương trình này đã làm ẩn đi những chi tiết kỹ thuật phức tạp và làm đơn giản những tương tác của những người dùng với máy tính
2.1.2 Khái niệm hệ quản trị cơ sở dữ liệu
Phần mềm cung cấp một môi trường thuận lợi và hiệu quả để tạo lập, lưu trữ
và khai thác thông tin của cơ sở dữ liệu được gọi là hệ quản trị cơ sở dữ liệu(database management system)
Người ta thường dùng thuật ngữ hệ cơ sở dữ liệu để chỉ một cơ sở dữ liệu cùng với HQTCSDL
Trang 15Ngoài ra còn có các phần mềm ứng dụng được xây dựng dựa trên HQTCSDL
để việc khai thác CSDL trở nên thuận lợi hơn, đáp ứng nhu cầu đa dạng của người dùng
Để lưu trữ và khai thác thông tin bằng máy tính cần phải có:
CSDL
HQTCSDL
Các thiết bị vật lý(máy tính, đĩa cứng, mạng…)
2.1.3 Các hệ quản trị cơ sở dữ liệu thông dụng
Có rất nhiều loại hệ quản trị CSDL khác nhau: từ phần mềm nhỏ chạy trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính Các hệ quản trị CSDL phổ biến được nhiều người biết đến là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix, v.v Phần lớn các hệ quản trị CSDL kể trên hoạt động tốt trên nhiều hệ điều hành khác nhau như Linux, Unix và MacOS ngoại trừ SQL Server của Microsoft chỉ chạy trên hệ điều hành Windows,
đa số các hệ quản trị CSDL trên thị trường đều có một đặc điểm chung là sử dụng
ngôn ngữ truy vấn theo cấu trúc mà tiếng Anh gọi là Structured Query Language
(SQL)
SQL Server: SQL Server là một hệ thống quản lý cơ sở dữ liệu
(Relational DatabaseManagement System (RDBMS) ) sử dụng Transact-SQL
để trao đổi dữ liệu giữa Clientcomputer và SQL Server computer Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các
bộ phận khác nhau trong RDBMS Đây là một hệ quản trị cơ sở dữ liệu rất phổ biến Nó là một hệ quản trị CSDL SQL mạnh và đầy đủ các tính năng, có thể chạy trên môi trường cơ sở dữ liệu rất lớn
Oracle: Oracle bao gồm một tập hợp hoàn thiện các sản phẩm xây dựng ứng
dụng và người dùng cuối được trang bị các giải pháp kỹ thuật thông tin hoàn hảo Các ứng dụng Oracle tương thích với hầu hết các hệ điều hành từ các máy tính cá nhân đến các hệ thống xử lý song song lớn.Oracle cung cấp một hệ quản trị cơ sở
dữ liệu (Database Management System - DBMS) uyển chuyển: Oracle Server để lưu giữ và quản lý các thông tin dùng trong các ứng dụng Phiên bản Oracle 7 quản
lý cơ sở dữ liệu với tất cả các ưu điểm của cấu trúc CSDL quan hệ cộng thêm khả năng lưu giữ và thực thi các đối tượng CSDL như các procedure và các trigger
Trang 16MySQL: là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS, .MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Access:Microsoft Access là một hệ quản trị cơ sở dữ liệu quan hệ (Relational
Database Management System) trợ giúp cho người sử dụng lưu trữ thông tin dữ liệu bên ngoài vào máy tính dưới dạng các bảng và có thể tính toán, xử lý trên dữ liệu trong các bảng đã lưu trữ Microsoft Access là 1 trong 4 phần mềm ứng dụng của bộ Microsoft Office (Microsoft Word, Microsoft Excel, Microsoft Access, Microsoft PowerPoint)
…
*Ưu điểm của HQTCSDL:
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
Giá cả khác nhau tùy theo môi trường và chức năng
*)Hoạt động của một hệ QTCSDL
Trang 17Mỗi hệ QTCSDL là một phần mềm phức tạp gồm nhiều thành phần (môđun), mỗi thành phần có chức năng cụ thể, trong đó hai thành phần chính là bộ xử lí truy vấn (bộ xử lí yêu cầu) và bộ quản lí dữ liệu Một số chức năng của hệ QTCSDL được hỗ trợ bởi hệ điều hành nên mỗi hệ QTCSDL phải có các giao diện cần thiết với hệ điều hành
Hình dưới là sơ đồ đơn giản cho ta biết sự tương tác của hệ QTCSDL với người dùng và với CSDL
Hình 2.1: Sự tương tác của hệ QTCSDL với người dùng và với CSDL
*) Sự tương tác của hệ QTCSDL
Khi có yêu cầu của người dùng, hệ QTCSDL sẽ gửi yêu cầu đó đến thành phần
có nhiệm vụ thực hiện và yêu cầu hệ điều hành tìm một số tệp chứa dữ liệu cần thiết Các tệp tìm thấy được chuyển về cho hệ QTCSDL xử lí và kết quả được trả ra cho người dùng
và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server 2005 có thể kết hợp
"ăn ý" với các server khác như Microsoft Internet Information Server (IIS),
Trang 18E-Commerce Server, Proxy Server
Các phiên bản của SQL Server 2005:
Enterprise: Hỗ trợ không giới hạn số lượng CPU và kích thước Database Hỗ trợ không giới hạn RAM (nhưng tùy thuộc vào kích thước RAM tối đa mà HĐH hỗ trợ) và các hệ thống 64bit
Standard: Tương tự như bản Enterprise nhưng chỉ hỗ trợ 4 CPU Ngoài ra phiên bản này cũng không được trang bị một số tính năng cao cấp khác
Workgroup: Tương tự bản Standard nhưng chỉ hỗ trợ 2 CPU và tối đa 3GB RAM
Express: Bản miễn phí, hỗ trợ tối đa 1CPU, 1GB RAM và kích thước Database giới hạn trong 4GB
Chi tiết có thể tham khảo tại địa chỉ:
http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx
Trang 192.2.1 Cài đặt SQL Server 2005 Express Edition
a Các yêu cầu cho hệ thống 32bit
Hình 2.2: Các yêu cầu cho hệ thống 32bit
Chi tiết yêu cầu hệ thống cho các phiên bản Microsoft SQL Server 2005 có thể tham khảo tại địa chỉ:
http://www.microsoft.com/sql/prodinfo/sysreqs/default.mspx
Download và cài đặt Microsoft NET Framework 2.0: Để cài đặt thành công SQL Server Express Edition hay các phiên bản SQL Server 2005 khác, Microsoft NET Framework 2.0 phải được cài đặt trước
Trang 20Gỡ bỏ các phiên bản Beta, CTP hoặc Tech Preview của SQL Server 2005, Visual Studio 2005 và Microsoft NET Framework 2.0
Download và cài đặt
Cài đặt SQL Server 2005 Express Edition: Microsoft SQL Server 2005 Express Edition là phiên bản miễn phí, dễ sử dụng và “nhẹ” của Microsoft SQL Server 2005 Microsoft SQL Server 2005 Express Edition được tích hợp trong Visual Studio 2005 tạo ra sự dễ dàng trong việc phát triển các ứng dụng hướng CSDL SQL Server 2005 Express Edition được tự do sử dụng trong các ứng dụng thương mại và dễ dàng cập nhật lên các phiên bản cao hơn khi cần thiết
Cài đặt SQL Server Management Studio Express: SQL Server Management Studio Express cung cấp giao diện để người dùng dễ dàng tương tác với các thành phần của Microsoft SQL Server 2005 Express Edition Trước khi cài đặt SQL Server Management Studio Express, MSXML 6.0 phải được cài đặt
Download tại địa chỉ:
http://www.microsoft.com/express/sql/download/default.aspx
b Các bước cài đặt SQL Server 2005 Express Edition
Double click vào file cài đặt Microsoft SQL Server Express Edition
Trang 23Hình 2.3: Các bước cài đặt Sql server 2005
Lưu ý: SQL Server 2005 có hai kiểu authentication (kiểm tra người dùng)
Windows authentication mode: Việc kiểm tra người dùng của SQL Server
2005 sẽ phụ thuộc vào việc kiểm tra người dùng của Windows Khi người dùng có quyền đăng nhập vào Windows, người dùng đó sẽ có quyền đăng nhập vào SQL Server Kiểu kiểm tra người dùng này thường được sử dụng khi ứng dụng khai thác
dữ liệu và SQL Server được cài trên cùng một máy tính
SQL Server authentication mode: Việc kiểm tra người dùng của SQL Server 2005 sẽ không phụ thuộc vào việc kiểm tra người dùng của Windows Khi người dùng có quyền đăng nhập vào Windows, người dùng đó chưa chắc sẽ có quyền đăng nhập vào SQL Server Để đăng nhập vào SQL Server, người dùng này phải có một bộ username và password do SQL Server quản lý Kiểu kiểm tra người dùng này thường được sử dụng khi ứng dụng khai thác dữ liệu và SQL Server không được cài trên cùng một máy tính
Khi chọn Mixed mode, SQL Server có thể dùng bất kỳ kiểu kiểm tra người dùng nào khi cần thiết Đây là một thiết lập thực sự rất hữu ích khi xây dựng các ứng dụng CSDL Ngoài ra, ta cũng phải đánh password vào hai ô bên dưới để có thể đăng nhập vào SQL Server khi ta xây dựng một ứng dụng truy xuất vào CSDL ở máy này khi ta đang ở máy khác
Click Next ba lần:
Trang 24Hình 2.4: Thiết lập Sql server 2005
Cài đặt SQL Server Management Studio Express Sau khi cài đặt, đăng nhập vào SQL Server 2005 Express Edition như sau:
Trang 25Hình 2.5: Cài đặt SQL Server Management Studio Express
Khi đăng nhập có thể chọn Windows Authentication hoặc SQL Server Authentication
Nếu chọn SQL Server Authentication thì phải nhập password Password này được thiết lập trong quá trình cài đặt SQL Server 2005 Express Edition Nếu trong quá trình cài đặt SQL Server 2005 Express Edition chúng ta không cho phép SQL Server kích hoạt ngay khi khởi động máy, bấm nút Connect sẽ gây ra lỗi Để khắc phục vào Start->Run đánh services.msc->Enter
Tìm service SQL Server (SQLExpress), double click và trong comboxbox Startup type chọn Automatic -> Apply - >Start -> OK
Giao diện sau khi đăng nhập thành công
Hình 2.6: Giao diện sau khi đăng nhập thành công
Trang 262.2.2 SQL là ngôn ngữ của cơ sở dữ liệu quan hệ
SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữ trong các cơ sở dữ liệu SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng
để tương tác với cơ sở dữ liệu quan hệ
Khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc dù đây
là mục đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là một trong những chức năng quan trọng của nó SQL được sử dụng để điều khiển tất
cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:
Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở 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: Với SQL, người dùng có thể dễ dàng thực hiện
các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu
Điều khiển truy cập: SQL có thể được sử dụng để 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 sự an toàn cho cơ sở dữ liệu
Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ
sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập nhật cũng như các lỗi của hệ thống
Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ liệu
Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java, song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lập trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu
Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java, SQL là ngôn ngữ có tính khai báo Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải thực hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu như thế nào Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng
2.2.3 Vai trò của SQL
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tại
Trang 27độc lập SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người
sử dụng và hệ quản trị cơ sở dữ liệu
Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL có những vai trò như sau:
SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng
thông qua các trình tiện ích để gởi các yêu cầu dưới dạng các câu lệnh SQL đến cơ
sở dữ liệu và nhận kết quả trả về từ cơ sở dữ liệu
SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng các
câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương trình ứng dụng giao tiếp với cơ sở dữ liệu
SQL là ngôn ngữ quản trị cơ sở dữ liệu: Thông qua SQL, người quản trị cơ
sở dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữ liệu, điều khiển truy cập cơ sở dữ liệu,
SQL là ngôn ngữ cho các hệ thống khách/chủ (client/server): Trong các hệ
thống cơ sở dữ liệu khách/chủ, 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ủ cơ sở dữ liệu
SQL là ngôn ngữ truy cập dữ liệu trên Internet: Cho đến nay, hầu hết các
máy chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trò là ngôn ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu
SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ
liệu 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
SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: Trong một
hệ thống mạng máy tính với nhiều hệ quản trị cơ sở dữ liệu 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 hệ quản trị cơ sở dữ liệu
2.2.4 Giới thiệu sơ lược về Transact SQL (T-SQL)
Transact-SQL là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for Standardization) và ANSI (American National Standards Institute) được sử dụng trong SQL Server khác với P-SQL (Procedural-SQL) dùng trong Oracle
Trang 28SQL chuẩn bao gồm khoảng 40 câu lệnh Trong các hệ quản trị cơ sở dữ liệu khác nhau, mặc dù các câu lệnh đều có cùng dạng và cùng mục đích sử dụng song mỗi một hệ quản trị cơ sở dữ liệu có thể có một số thay đổi nào đó Điều này đôi khi dẫn đến cú pháp chi tiết của các câu lệnh có thể sẽ khác nhau trong các hệ quản trị
cơ sở dữ liệu khác nhau
T-SQL được chia làm 3 nhóm:
2.2.4.1. Ngôn ngữ định nghĩa dữ liệu ( Data Definition Language – DDL)
Đây là những lệnh dùng để tạo (create), thay đổi (alter) hay xóa (drop) các đối tượng trong CSDL Các câu lệnh DDL thường có dạng:
Create object
Alter object
Drop object
Trong đó object có thể là: table, view, storedprocedure, function, trigger…
Ví dụ: Câu lệnh Create sau sẽ tạo một bảng mới có tên là Nhanvien trong CSDL Test
Bảng Nhanvien này gồm có ba cột: manv, tennv, diachi
Lưu ý: Nếu trong SQL Server 2005 Express Edition chưa có CSDL Test, hãy tạo một CSDL có tên Test theo hướng dẫn trong Chương 1
create table Nhanvien
(
manv int primary key,
tennv nvarchar(50) not null,
diachi nvarchar(50) not null
alter table Nhanvien
add ghichu nvarchar(50) not null
Trang 29Cuối cùng, dùng lệnh drop để xóa hoàn toàn bảng Nhanvien ra khỏi CSDL, nghĩa là toàn bộ định nghĩa bảng và các dữ liệu bên trong đều bị xóa
drop table Nhanvien
Lưu ý: Lệnh drop khác với lệnh delete Lệnh delete chỉ xóa các dòng dữ liệu
có trong bảng
2.2.4.2. Ngôn ngữ điều khiển dữ liệu (Data control language – DCL)
Đây là các lệnh quản lý quyền truy cập lên các object (table, view, storedprocedure…)
Trang 30to public
Sau khi thực hiện lệnh này, các quyền được gán hay từ chối của Users trong Role public trên bảng Nhanvien trong CSDL Test sẽ được “xóa” hoàn toàn
2.2.4.3. Ngôn ngữ thao tác dữ liệu
Đây là các lệnh phổ biến dùng để xử lý dữ liệu Bao gồm:
where nv.tennv like 'A%'
Dấu * hàm ý là lựa chọn tất cả các cột của bảng Nhanvien Toán tử like và ký
tự đại diện sẽ được nói trong phần sau
Câu lệnh sau sẽ thêm dữ liệu về một nhân viên mới vào trong bảng Nhanvien
insert into Nhanvien
values(1, N'Nguyễn Văn An', N'22 Nguyễn Thiện Thuật')
Câu lệnh sau sẽ cập nhật lai địa chỉ của nhân viên có manv là 1
Trang 31storedprocedure…) được xác định thông qua tên của đối tượng (hay còn gọi là identifier) Tên của các đối tượng là duy nhất trong mỗi cơ sở dữ liệu Tên được sử dụng nhiều nhất trong các truy vấn SQL và được xem là nền tảng trong cơ sở dữ liệu quan hệ là tên bảng và tên cột
Có hai loại Identifiers một loại thông thường (Regular Identifier) và một loại gọi là Delimited Identifier, loại này cần có dấu "" hay dấu [] để ngăn cách Loại Delimited được dùng đối với các chữ trùng với từ khóa của SQL Server (reserved keyword) hay các chữ có khoảng trống
sở dữ liệu này cho phép những người dùng khác nhau tạo ra những bảng trùng tên với nhau mà không gây ra xung đột về tên Nếu trong một câu lệnh SQL ta cần chỉ đến một bảng do một người dùng khác sở hữu (hiển nhiên là phải được phép) thì tên của bảng phải được viết sau tên của người sở hữu và phân cách với tên người sở hữu bởi dấu chấm:
Ví dụ: Giả sử chúng ta có CSDL như sau:
Trang 32Hình 2.7: Cơ sở dữ liệu quản lý bán hàng
Để tìm ra khách hàng có tên Nguyễn Văn An đã đặt hàng vào ngày nào, câu truy vấn như sau:
Select SOHD, NGAYHD
from HDBAN, DMKHACH
where HDBAN.MAK = DMKHACH.MAK
and TENK = N'Nguyễn Văn An'
2.2.4.5. Các kiểu dữ liệu
Bảng dưới đây liệt kê một số kiểu dữ liệu thông dụng được sử dụng trong SQL
Bảng 2.1: Một số kiểu dữ liệu thông dụng trong SQL
Trang 33Numeric Kiểu số với độ chính xác cố định
Ví dụ: Mỗi cột trong bảng sẽ chứa những dữ liệu thuộc về duy nhất một kiểu
dữ liệu trong SQL Server Cột nào chứa những dữ liệu thuộc kiểu nào sẽ được quy định lúc định nghĩa bảng
Create table Nhanvien
(
MANV NVARCHAR(10) NOT NULL,
HOTENNVARCHAR(30) NOT NULL,
GIOITINH BIT,
Trang 34Ví dụ: Ví dụ dưới đây khai báo một biến có tên @numberOfCustomers thông qua từ khóa declare Biến này lưu số khách hàng đếm được thông qua hàm count Sau đó in ra giá trị của biến
declare @numberOfCustomers int
select @numberOfCustomers = count(*)
Rowset Functions : Loại này thường trả về một object và được đối xử như một table Ví dụ như hàm OPENQUERY sẽ trả về một recordset và có thể đứng vị trí của một table trong câu lệnh Select
Aggregate Functions : Loại này làm việc trên một số giá trị và trả về một giá trị đơn hay là các giá trị tổng Ví dụ như hàm AVG sẽ trả về giá trị trung bình của một cột
Scalar Functions : Loại này làm việc trên một giá trị đơn và trả về một giá trị đơn Trong loại này lại chia làm nhiều loại nhỏ như các hàm về toán học, về thời gian, xử lý kiểu dữ liệu String Ví dụ như hàm MONTH('2002-09-30') sẽ trả về tháng 9
Trang 35Các hàm User-Defined (được tạo ra bởi câu lệnh CREATE FUNCTION và phần body thường được gói trong cặp lệnh BEGIN END) cũng được chia làm các nhóm như sau:
Scalar Functions : Loại này cũng trả về một giá trị đơn bằng câu lệnh RETURNS
Table Functions : Loại này trả về một table
2.2.4.8. Các toán tử
Trong SQL Server các biểu diễn (expression) có thể xuất hiện nhiều toán tử
Độ ưu tiên của toán tử sẽ quyết định thứ tự thực hiện của các phép tính Thứ tự thực hiện ảnh hưởng rất lớn đến kết quả
Bảng dưới đây mô tả các toán tử trong SQL Server 2005 Express Edititon và mức độ ưu tiên của các toán tử đó
Bảng 2.2: Các toán tử và mức độ ưu tiên
2 + (Positive), - (Negative), + (Add), (+ Concatenate), - (Subtract),
Trang 36Giá trị đó có tồn tại nhưng không biết
Không xác định được giá trị đó có tồn tại hay không
Tại một thời điểm nào đó giá trị chưa có nhưng rồi có thể sẽ có
Giá trị bị lỗi do tính toán (tràn số, chia cho không, )
Những giá trị không xác định được biểu diễn trong cơ sở dữ liệu quan hệ bởi các giá trị NULL Đây là giá trị đặc biệt và không nên nhầm lẫn với chuỗi rỗng (đối với dữ liệu kiểu chuỗi) hay giá trị không (đối với giá trị kiểu số) Giá trị NULL đóng một vai trò quan trọng trong các cơ sở dữ liệu và hầu hết các hệ quản trị cơ sở
dữ liệu quan hệ hiện nay đều hỗ trợ việc sử dụng giá trị này
2.3 Tạo lập cơ sở dữ liệu trên SQL server
2.3.1 Một số thao tác cơ bản trên SQL Server 2005 Express Edition
Microsoft SQL Server Management Studio cung cấp một giao diện thân thiện giúp cho người dùng thực hiện các thao tác một cách dễ dàng Một số các thao tác cơ bản bao gồm: tạo CSDL mới, xóa CSDL, tạo bảng, xóa bảng…Cũng cần lưu
ý rằng các thao tác thực hiện thông qua giao diện thì đều có thể được thực hiện được bằng các câu lệnh SQL
Trang 38Hình 2.10: Tạo bảng mới
Bảng gồm các các cột Mỗi cột gồm tên cột (Column Name), kiểu dữ liệu (Data Type) và một giá trị cho biết cột đó có thể chứa giá trị NULL hay không Trong bảng sẽ có ít nhất một cột làm khóa chính (primary key) Cột làm khóa chính
sẽ có biểu tượng chìa khóa trước tên cột
Sau khi tạo xong tất cả các cột của bảng, tiến hành Save -> OK
Trang 39Hình 2.11: Đặt tên bảng
*) Xóa bảng, xóa CSDL
Click chuột phải lên bảng hay CSDL muốn xóa -> Delete - >OK Trong trường hợp xóa một CSDL, nên chọn dấu tích vào Close existing connections Khi đó SQL Server 2005 sẽ ngắt tất cả các kết nối vào CSDL này và việc xóa sẽ không gây báo
lỗi
2.3.2 Mở một query editor để viết câu lệnh SQL
Hình 2.12: Mở query editor để viết câu lệnh SQL
Cần chú ý là câu lệnh SQL sẽ có tác dụng trên CSDL đang được chọn trong ComboBox
Do đó cần chú ý lựa chọn đúng CSDL cần tương tác
a Tạo bảng
Trang 40Câu lệnh CREATE TABLE được sử dụng để định nghĩa một bảng dữ liệu mới trong CSDL Khi định nghĩa một bảng dữ liệu mới, ta cần phải xác định được các yêu cầu sau đây:
Bảng mới được tạo ra sử dụng với mục đích gì và có vai trò như thế nào trong cơ sở dữ liệu
Cấu trúc của bảng bao gồm những trường (cột) nào, mỗi một trường có
ý nghĩa như thế nào trong việc biểu diễn dữ liệu, kiểu dữ liệu của mỗi trường là gì
và trường đó có cho phép nhận giá trị NULL hay không
Những trường nào sẽ tham gia vào khóa chính của bảng Bảng có quan hệ với những bảng khác hay không và nếu có thì quan hệ như thế nào
Trên các trường của bảng có tồn tại những ràng buộc về khuôn dạng, điều kiện hợp lệ của dữ liệu hay không; nếu có thì sử dụng ở đâu và như thế nào
Câu lệnh CREATE TABLE có cú pháp như sau
CREATE TABLE tên_bảng
Tên_bảng: tuân theo quy tắc định danh, không vượt quá 128 ký tự
Tên_cột: các cột trong bảng, mỗi bảng có ít nhất một cột
Thuộc_tính_cột: bao gồm kiểu dữ liệu của cột, giá trị mặc định của cột, cột có được thiết lập thuộc tính identity, cột có chấp nhận giá trị NULL hay không Trong đó kiểu dữ liệu là thuộc tính bắt buộc
Các_ràng_buộc: gồm các ràng buộc về khuôn dạng dữ liệu ( ràng buộc
CHECK) hay các ràng buộc về bào toàn dữ liệu (PRIMARY KEY, FOREIGN KEY, UNIQUE)
Ví dụ: Ví dụ dưới đây tạo một bảng có tên KhachHang
create table KhachHang