Bài giảng Các hệ cơ sở dữ liệu - 1. Giới thiệu và kiến trúc của hệ quản trị cơ sở dữ liệu

Một số hàm toán học ABS(N) CEILING(N) EXP(N) FLOOR(N) POWER(B, E) SQRT(N) ROUND(N) SQUARE(N)

pdf22 trang | Chia sẻ: vutrong32 | Lượt xem: 1200 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Các hệ cơ sở dữ liệu - 1. Giới thiệu và kiến trúc của hệ quản trị cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Giới thiệu HQTCSDL & mô hình dữ liệu  Nhắc lại các kiến thức về cơ sở dữ liệu (CSDL).  ðịnh nghĩa hệ quản trị CSDL  Người dùng của hệ quản trị cơ sở dữ liệu.  Mô tả sự cần thiết của cơ sở dữ liệu.  Các thành phần trong CSDL. Xác ñịnh sự cần thiết của việc lên kế hoạch phát triển CSDL. DBMS01 – Slides 2   Xác ñịnh các giai ñoạn phát triển cơ sở dữ liệu.  Xác ñịnh hậu quả của việc phân tích thiết kế CSDL nếu thực hiện không tốt.  Mô hình dữ liệu.  Sơ ñồ ERD. Khái niệm cơ sở dữ liệu  Cơ sở dữ liệu - CSDL (Database)  Là một hệ thống các thông tin có cấu trúc ñược lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp (như băng từ, ñĩa từ ...) DBMS01 – Slides 3  Có thể thỏa mãn yêu cầu khai thác thông tin ñồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục ñích khác nhau. Khái niệm cơ sở dữ liệu DBMS01 – Slides 4 Khái niệm cơ sở dữ liệu  Giảm sự trùng lặp thông tin xuống mức thấp nhất và do ñó bảo ñảm ñược tính nhất quán Ưu ñiểm nổi bậc của CSDL DBMS01 – Slides 5 và toàn vẹn dữ liệu  ðảm bảo dữ liệu có thể ñược truy xuất theo nhiều cách khác nhau  Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau Khái niệm cơ sở dữ liệu 1. Tính chủ quyền của dữ liệu  Dữ liệu chia sẽ  người có chức năng thay ñổi thường xuyên  ðể có dữ liệu mới nhất phải cập nhật thường xuyên 2. Tính bảo mật và quyền khai thác thông tin của người dùng Vấn ñề cần giải quyết DBMS01 – Slides 6  Dữ liệu ñược bảo vệ  Người dùng chỉ truy xuất thông tin mình có quyền 3. Tranh chấp dữ liệu  Dữ liệu ñược thêm vào ñồng thời  Dữ liệu ñược sửa ñồng thời 4. ðảm bảo dữ liệu khi có sự cố  ðang thực hiện thao tác thì mất ñiện  Khái niệm cơ sở dữ liệu Liên hệ với việc Xây dựng một ứng dụng quản lý DBMS01 – Slides 7 Giới thiệu về HQTCSDL  Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) ñược thiết kế ñể quản lý khối lượng dữ liệu rất lớn. Mục ñích chính của hệ quản trị CSDL là:  Cung cấp môi trường và công cụ ñể lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu một DBMS01 – Slides 8 cách hiệu quả.  Lưu giữ thông tin về người dùng của hệ quản trị cơ sở dữ liệu và những tác vụ mà người dùng này có thể tương tác với dữ liệu ñược lưu trữ.  Một số hệ quản trị CSDL thường gặp  MS Access, MS SQL Server 200X, MySQL, Oracle, LDAP, DB2, Hệ quản trị CSDL 1. Ngôn ngữ giao tiếp giữa người sử dụng (NSD) và CSDL a. Ngôn ngữ mô tả dữ liệu (Data Definition Language - DDL) b. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML) c. Ngôn ngữ truy vấn dữ liệu, hay ngôn ngữ hỏi ñáp có cấu Các thành phần của hệ quản trị CSDL DBMS01 – Slides 9 trúc (Structured Query Language - SQL) d. Ngôn ngữ ñiều khiển dữ liệu (Data Control Language - DCL) 2. Từ ñiển dữ liệu (Data Dictionary)  Dùng ñể mô tả các ánh xạ liên kết  Ghi nhận các thành phần cấu trúc của CSDL, các chương trình ứng dụng, mật mã, quyền hạn sử dụng v.v... 3. Có biện pháp bảo mật tốt khi có yêu cầu bảo mật Hệ quản trị CSDL 4. Cơ chế giải quyết vấn ñề tranh chấp dữ liệu  Cấp quyền ưu tiên cho từng người sử dụng (người quản trị CSDL thực hiện)  ðánh dấu yêu cầu truy xuất dữ liệu, phân chia thời gian, người nào có yêu cầu trước thì có quyền truy xuất dữ liệu trước Các thành phần của hệ quản trị CSDL DBMS01 – Slides 10 5. Cơ chế sao lưu (Backup) và phục hồi (Restore) dữ liệu khi có sự cố xảy ra.  ðịnh kỳ kiểm tra CSDL, sau một thời gian nhất ñịnh hệ quản trị CSDL sẽ tự ñộng tạo ra một bản sao CSDL. Cách này hơi tốn kém, nhất là ñối với các CSDL lớn  Tạo nhật ký (LOG) thao tác CSDL. Mỗi thao tác trên CSDL ñều ñược hệ thống ghi lại, khi có sự cố xảy ra thì tự ñộng lần ngược lại (RollBack) ñể phục hồi CSDL. Hệ quản trị CSDL 6. Hệ quản trị CSDL phải cung cấp một giao diện (Interface) tốt, dễ sử dụng, dễ hiểu cho những người sử dụng không chuyên 7. Bảo ñảm tính ñộc lập giữa dữ liệu và chương Các thành phần của hệ quản trị CSDL DBMS01 – Slides 11 trình  Khi có sự thay ñổi dữ liệu (như sửa ñổi cấu lưu trữ các bảng dữ liệu, thêm các chỉ mục (Index) ...) thì các chương trình ứng dụng (Application) ñang chạy trên CSDL ñó vẫn không cần phải ñược viết lại, hay cũng không làm ảnh hưởng ñến những NSD khác. Hệ quản trị CSDL Kiến trúc của hệ quản trị CSDL DBMS01 – Slides 12 Hệ quản trị CSDL DBMS01 – Slides 13 Khái niệm cơ sở dữ liệu 1. Người dùng cuối (End User)  Sử dụng những công cụ hỗ trợ ñể khai thác  Ứng dụng này do chuyên viên tin học tạo ra 2. Người lập trình ứng dụng (Application Programmer) Các ñối tượng sử dụng CSDL DBMS01 – Slides 14  Xây dựng ứng dụng kết nối CSDL 3. Người quản trị CSDL (DBA – Database Administrator)  Tạo lập CSDL  Phục hồi hệ thống khi có sự cố xảy ra  Cấp phát quyền hạn khai thác CSDL Application Programs/ Interactive Queries Database System Database Description DBA Users/Programmers DBMS01 – Slides 15 Catalog Database Query ProcessorData Access DBMS DDL Compiler Lý do dùng hệ quản trị CSDL ñể lưu trữ?  ðầu tiên ñể lưu trữ dữ liệu người ta dùng hệ thống tập tin ñể lưu trữ. Cách lưu trữ này thể hiện một số nhược ñiểm sau: DBMS01 – Slides 16  Dữ liệu lưu trữ bị dư thừa: Cùng một dữ liệu lưu ở nhiều hơn 1 nơi không cần thiết.  Dữ liệu không nhất quán: Do dữ liệu ñược lưu ở nhiều nơi nên khi cập nhật nếu không cập nhật toàn bộ sẽ dẫn ñến tình trạng không nhất quán của dữ liệu. Ví dụ về lưu trữ theo hệ thống file DBMS01 – Slides 17  Dùng hệ quản trị CSDL ñể lưu trữ có các ưu ñiểm như sau:  Giảm thiểu sự dư thừa dữ liệu  Tránh ñược sự không ñồng nhất về dữ liệu DBMS01 – Slides 18  Dữ liệu ñược chia sẻ.  Dữ liệu sẽ ñược bảo mật an toàn hơn.  Tính nhất quán của dữ liệu sẽ ñược ñảm bảo. Các thành phần chức năng của hệ quản trị CSDL  Hệ quản trị cơ sở dữ liệu có các thành phần chức năng như sau:  Database manager: ñây là thành phần chính của hệ quản trị cơ sở dữ liệu. Thành phần này có nhiệm vụ ñáp ứng các lệnh truy vấn dữ liệu từ người dùng và ñảm bảo tính nhất quán của cơ sở DBMS01 – Slides 19 dữ liệu.  File Manager: Thành phần này sẽ chịu trách nhiệm phục vụ tất cả các yêu cầu về dữ liệu. Nó sẽ liên hệ với disk manager ñể lấy các khối dữ liệu từ ñĩa.  Disk Manager: ñây là phần thực hiện việc quản lý dữ liệu ở cấp ñộ vật lý. Ví dụ về dùng hệ quản trị CSDL ñể lưu trữ DBMS01 – Slides 20 Lên kế hoạch phát triển cơ sở dữ liệu  Lên kế hoạch phát triển cho hệ quản trị cơ sở dữ liệu là quá trình chiến lược ñể tìm xem những thông tin nào mà tổ chức sẽ cần thiết cho thời gian tới.  Lợi ích của việc lên kế hoạch phát triển database: Cho thấy rõ ñược tình trạng hiện tại của thông tin DBMS01 – Slides 21  ñược lưu trong tổ chức.  Tìm và ñiều chỉnh lại các yêu cầu về tài nguyên cho tổ chức.  Giúp cho phát triển ñược hệ quản trị CSDL ñáp ứng ñược các yêu cầu của tổ chức.  Giúp cho việc lên kế hoạch hành ñộng ñể ñạt ñược các mục tiêu của tổ chức. Quy trình phát triển cơ sở dữ liệu bao gồm 6 giai ñoạn:  Lên kế hoạch ban ñầu: Trong giai ñoạn này, công ty sẽ thu thập thông tin về các ứng dụng ñang dùng.  Nghiên cứu về tính khả thi: Trong giai ñoạn này sẽ nghiên cứu về tính khả thi của kỹ DBMS01 – Slides 22 thuật, kinh tế và cách vận hành CSDL.  ðịnh nghĩa các yêu cầu về CSDL: Giai ñoạn này xác ñịnh tầm vực của CSDL, các yêu cầu về thông tin ñể quản lý, các yêu cầu về phần cứng, các yêu cầu về phần mềm.  Thiết kế ở mức luận lý: Trong giai ñoạn này sẽ thiết kế lược ñồ CSDL ở mức luận lý.  Hiện thực: Trong giai ñoạn này ta sẽ chọ hệ quản trị CSDL và chuyển thiết kế từ mức luận DBMS01 – Slides 23 lý sang hiện thực trên hệ quản trị CSDL vừa chọn.  ðánh giá và bảo trì cơ sở dữ liệu: sau khi thiết kế và hiện thực ta ñưa CSDL và dùng, ñánh giá lại hiệu quả của CSDL và ñồng thời phải bảo trì nâng cấp CSDL ñã hiện thực.  Nếu ta phân tích, thiết kế và hiện thực CSDL không tốt, cơ sở dữ liệu sẽ không hoạt ñộng giống như ta mong ñợi. Một số nguyên nhân thường dẫn ñến CSDL hoạt ñộng sai như: Người dùng trực tiếp của CSDL không ñược DBMS01 – Slides 24  xác ñịnh ñầy ñủ khi phân tích và thiết kế.  Dữ liệu ñược thu thập quá ít.  Cơ sở dữ liệu không dễ dàng thay ñổi ñể ñáp ứng với sự thay ñổi về nghiệp vụ của tổ chức Mô hình dữ liệu  Mô hình dữ liệu mô tả cách tổ chức dữ liệu bên trong CSDL.  Mô hình dữ liệu còn mô tả mối quan hệ dữ liệu và các ràng buộc ñược ñịnh nghĩa trên DBMS01 – Slides 25 dữ liệu ñó.  Mô hình dữ liệu ñược dùng rộng rãi nhất là mô hình thực thể - kết hợp (Entity Relationship Model) Ví dụ mô hình ER hoc HPhan mo MaSV Diem (1,n) (0,n) Ten (1,1) mhoctruoc MaMH TenMH (0,n) Hocky GvienNam MaHP DBMS01 – Slides 26 SVien MHoc dieukien Nganh Lop mhocsau (0,n) (0,n) Tinchi Khoa Ví dụ mô hình ñối tượng SVien Ten Lop Nganh LapTKB() InBangDiem() Diem HPhan Ten SLuong 0..*1..* hoc 1 mo DBMS01 – Slides 27 DiemTH DiemLT DiemPrj SuaDiem() MHoc Ten Khoa SoTinChi CapNhatSTC() 0..* 0..* 0..* Dieu kien +MHoc truoc +MHoc sau Ví dụ mô hình quan hệ SVien MaSV Ten Lop Nganh Hoc MaSV MaHP DiemLT DiemTH HPhan MaHP SLuong MaMH DBMS01 – Slides 28 MHoc MaMH TenMH Khoa TinChi DKien MaMH MaMHTruoc Ví dụ mô hình mạng SVien MHoc MHOC_MO MHOC_SAU MHOC_TRUOC DBMS01 – Slides 29 HPhan KQua DKien SVIEN_DIEM KQUA_HPHAN Ví dụ mô hình phân cấp SVienHPhan Mức 1: KQua DiemTH DiemLT DBMS01 – Slides 30 TenSV Lop NganhTenHP SLuong MHoc TenMH Khoa TinChi Mức 2: Mức 3: Mô hình thực thể - kết hợp  Mô hình thực thể - kết hợp dựa trên sự mô tả các ñối tượng trong thế giới thực gọi là các thực thể và các mối liên kết giữa chúng.  Sơ ñồ dùng ñể hiện thực mô hình thực thể mối liên kết gọi là sơ ñồ thực thể - kết hợp DBMS01 – Slides 31 ERD (Entity Relationship Diagram).  Các thành phần của sơ ñồ ERD:  Thực thể (Entity)  Mối quan hệ (Relationship)  Thuộc tính (Attribute) Ví dụ về sơ ñồ E/R Lam_viecNHANVIENTENNV NGSINH DCHI PHAI LUONG HONV PHONGBAN TENPB MANV MAPHG DBMS01 – Slides 32 La_truong_phong Phan_cong Phu_trach DEAN TENDA DDIEM_DA MADA Thực thể (Entity)  Thực thể là các ñối tượng, nơi chốn, con người mà cần lưu giữ thông tin.  Thực thể ñược ñặt tên và ñược vẽ trong hình chữ nhật.  Thực thể có 2 loại là thực thể ñộc lập và thực thể phụ thuộc. DBMS01 – Slides 33  Thực thể phụ thuộc còn ñược gọi là thực thể yếu là thực thể mà sự tồn tại của nó phụ thuộc vào một thực thể khác.  Thực thể yếu ñược mô tả bằng hình chữ nhật có các cạnh bên ngoài là cạnh kép. Ví dụ về thực thể DBMS01 – Slides 34 Ví dụ về thực thể (tt) DBMS01 – Slides 35 Mối quan hệ  Mối quan hệ thể hiện sự cộng tác giữa 2 thực thể.  Mối quan hệ ñược thể hiện bằng hình thoi chính giữa có tên quan hệ ñó.  Mối quan hệ có thể ñược tồn tại trên 2 thực thể hoặc trên cùng 1 thực thể. Giữa hai thực DBMS01 – Slides 36 thể có thể có nhiều mối quan hệ.  Mối quan hệ có 3 dạng:  Quan hệ 1 – 1  Quan hệ 1 – n  Quan hệ n - n Ví dụ về các mối quan hệ: DBMS01 – Slides 37 Ví dụ về các mối quan hệ: DBMS01 – Slides 38 Ví dụ về các mối quan hệ: DBMS01 – Slides 39 Ví dụ về các mối quan hệ: DBMS01 – Slides 40 Ví dụ về các mối quan hệ: DBMS01 – Slides 41 Ví dụ về các mối quan hệ: DBMS01 – Slides 42 Thuộc tính  Thuộc tính thể hiện ñặc ñiểm của thực thể.  Thuộc tính ñược thể hiện bằng hình elipse, với tên thuộc tính ñược vẽ bên trong hình. Thuộc tính khóa ñược gạch dưới.  Các quan hệ cũng có thể có các thuộc tính. DBMS01 – Slides 43 DBMS01 – Slides 44 Tóm tắt  Trong bài này bạn ñã ñược học:  ðịnh nghĩa hệ quản trị cơ sở dữ liệu (CSDL).  Người dùng của hệ quản trị cơ sở dữ liệu.  Mô tả sự cần thiết của cơ sở dữ liệu.  Các thành phần trong CSDL. DBMS01 – Slides 45  Xác ñịnh sự cần thiết của việc lên kế hoạch phát triển CSDL.  Xác ñịnh các giai ñoạn phát triển cơ sở dữ liệu.  Xác ñịnh hậu quả của việc phân tích thiết kế CSDL nếu thực hiện không tốt.  Mô hình dữ liệu.  Sơ ñồ ERD  Thực thể, mối liên kết, thuộc tính Kiến trúc của HQTCSDL Tổ chức file trong SQL Server  Một CSDL ñược lưu trữ trong các tập tin vật lý trên ñĩa cứng: Có 3 loại tập tin dùng ñể lưu trữ CSDL:  Một tập tin dữ liệu cơ sở (Primary Data files): dùng lưu trữ dữ liệu và các thông tin khởi ñộng Database (.mdf) DBMS01 – Slides 47  Các tập tin dữ liệu phụ (Secondary data files): chứa tất cả dữ liệu liên quan nhưng không ñặt trong Primary Data files (.ndf)  Log files: dùng chứa các thông tin cần thiết cho việc phục hồi các giao tác trong CSDL (.ldf) Database Files DBMS01 – Slides 48  Một tập tin CSDL có 5 thuộc tính : Tên tập tin logic Database Data (file) .mdf or .ndf Log (file) .Idf DBMS01 – Slides 49 – – Tên tập tin vật lý – Một kích thước (size) ban ñầu – Một kích thước tối ña (maximum size) – Gia số tăng kích thước (growth increment) Các thuộc tính và các thông tin khác ñược lưu trong bảng hệ thống sysfiles  Cách cấp phát không gian lưu trữ: – Dữ liệu ñược lưu trong các khối 8kb liền nhau của không gian ñĩa gọi là trang (page), một CSDL (1MB) lưu trên 128 page – Các bảng, chỉ mục ñược lưu trong các extent (bộ nhớ mở rộng), mỗi extent có 8 trang kề nhau, một CSDL có 16 extent  Hoạt ñộng của transaction log: DBMS01 – Slides 50 – Transaction log ghi nhận sự hiệu chỉnh dữ liệu (bởi các lệnh: Insert, update, Delete) – Trước hết SQL server chép các trang của Database có sự thay ñổi vào 1 vùng RAM gọi là buffer cache – Mỗi câu lệnh hiệu chỉnh dữ liệu ñược ghi nhận lại thành vết và lưu vào tập tin log trước khi thay ñổi ñó ñược tác ñộng vào CSDL (write –ahead log) Database Object Object Mô tả Table Bảng quan hệ chứa dữ liệu Data type Kiễu dữ liệu DBMS01 – Slides 51 Constraint Các quy tắc kiểm tra ràng buộc dữ liệu Default Các giá trị mặc ñịnh nếu giá trị 1 field không ñược nhập Rule Các thông tin về giá trị hợp lệ trong 1 field Index Là cấu trúc lưu trữ nhằm truy xuất nhanh dữ liệu Database Object Object Mô tả View Bảng ảo, là 1 cách lấy dữ liệu từ table hay từ các View khác User-defined Là các function do programmer ñịnh nghĩa DBMS01 – Slides 52 function Stored procedure Là các thủ tục do programmer ñịnh nghĩa Trigger Là một dạng ñặc biệt của Procedure nhưng ñược thực hiện tự ñộng khi user thao tác dữ liệu lên bảng/view Chức năng của Hệ QTCSDL  Quản Lý Dữ Liệu  Quản Lý File  Quản Lý ðĩa DBMS01 – Slides 53 Ứng dụng của Hệ QTCSDL  Hàng không  Ngân hàng  Sản xuất  Quản lý ñơn ñặt hàng DBMS01 – Slides 54  Quản lý bệnh viện  Thư viện  Khách sạn  v.v Một số Hệ QTCSDL  Sysbase  Oracle  Microsoft SQL Server MySQL Server DBMS01 – Slides 55   Ingress  DB2 Mô hình thực thể  Thực thể (Entity)  Bảng (Table)  Thuộc tính (Attribute)  Cột (column)  Record  Dòng (row) DBMS01 – Slides 56 Mô hình thực thể  Thực thể (Entity)  Bảng (Table)  ðược biểu diễn bởi hình gì?  Hình chữ nhật  Thuộc tính (Attribute)  Cột (column)  ðược biểu diễn bởi hình gì? DBMS01 – Slides 57  Hình elip hay chấm ñen  Record  Dòng (row)  Mối kết hợp(1-1, 1-n, n-n)  Relationship  ðược biểu diễn bởi hình gì?  Hình thoi hay elip Bài tập tình huống Kết quả khảo sát hệ thống quản lý nhân sự tiền lương tại một công ty thu ñược kết quả như sau:  Mỗi nhân viên có một mã nhân viên duy nhất, có họ tên, ngày tháng năm sinh và ñược lãnh lương theo hệ bậc lương của mình. ðồng thời một nhân viên chỉ thuộc biên chế của một và chỉ một phòng ban. VD: NV tên A có mã NV1 thuộc biên chế phòng kỹ thuật (mã phòng KT) sinh 1984 lãnh DBMS01 – Slides 58 lương chuyên viên chính.  Thông tin cần quản lý về phòng ban bao gồm: tên phòng ban, mã phòng, số lượng nhân viên và người trưởng phòng. VD: Phòng kỹ thuật có mã phòng KT có 5 nhân viên, trưởng phòng là nhân viên A.  Mức lương gồm tên, số tiền, mô tả yêu cầu công việc. VD: Chuyên viên chính lương 2,5 triệu tối thiểu 5 năm kinh nghiệm. Yêu cầu: Vẽ mô hình ERD cho hệ thống quản lý tiền lương nói trên. DBMS01 – Slides 59 Nội dung  Giới thiệu SQL  Làm việc với CSDL  Làm việc với bảng  Các truy vấn ñơn giản Một số hàm: DBMS01 – Slides 60   xử lý chuỗi, thời gian, toán học,  hàm toán học.  Truy vấn nhóm (Group by)  Truy vấn trên nhiều quan hệ, truy vấn con Giới thiệu SQL  SQL – Structured Query Language  Thao tác trên dữ liệu (thêm, lấy, xóa, sửa), tạo CSDL.  ðược ANSI và ISO chuẩn hóa DBMS01 – Slides 61  Ngôn ngữ SQL chia làm 3 nhóm:  Ngôn ngữ ñịnh nghĩa dữ liệu (DDL)  Ngôn ngữ thao tác dữ liệu (DML)  Ngôn ngữ kiểm soát dữ liệu (DCL) Lịch sử SQL  Thập kỉ 70, IBM phát triển SEQUEL cho System R.  1978, SQL ñi vào sản phẩm thương mại  1986, ANSI công bố chuẩn SQL-86  1987, ANSI phê chuẩn SQL-87 DBMS01 – Slides 62  1992, SQL-2 hay còn gọi là SQL-92  1999, SQL-3 hay còn gọi là SQL-99  2003: SQL-2003: không miễn phí  2006: SQL-2006: không miễn phí Một số chú ý  SQL không phân biệt chữ hoa, chữ thường.  Câu lệnh SQL thường kết thúc bằng dấu “;”  MS SQL Server dùng GO ñể ñánh dấu kết thúc một lệnh. CREATE DATABASE QLSV; GO DBMS01 – Slides 63 USE QLSV; GO  Viết chú thích trong MS SQL Server:  Một dòng: --  Nhiều dòng: /* ... */ Làm việc với CSDL  ðặt tên: Dùng chữ cái (A-Z, a-z), số (0- 9), gạch dưới (_). Nếu muốn dùng khoảng trắng thì bọc trong cặp []. DBMS01 – Slides 64 Tạo CSDL Tạo một CSDL có tên QuanLyDiemHocVien với kích thước ban ñầu lúc khởi tạo là 50MB, tự ñộng tăng kích thước lên 10% khi bị ñầy, kích thước tăng trưởng tập tin tối ña không quá 200MB. Tập tin lưu vết lúc ban ñầu lúc khởi tạo là 10MB, tự ñộng tăng kích thước lên 5MB khi dữ liệu bị ñầy, kích thước tăng trưởng tập tin không giới hạn. DBMS01 – Slides 65 CREATE DATABASE QuanLyDiemHocVien ON PRIMARY (NAME = QuanLyDiemHocVien, FILENAME='c:\QuanLyDiemHocVien.mdf', SIZE = 50MB, MAXSIZE = 200MB, FILEGROWTH = 10%) LOG ON (NAME = QuanLyDiemHocVien_Log, FILENAME='c:\QuanLyDiemHocVien.ldf', SIZE = 10MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB) Tạo CSDL  Mặc ñịnh CSDL lưu ở: C:\Program Files\Microsoft SQL Server\MSSQL\Data  Lưu ý: Không ñược xóa CSDL bằng cách mở DBMS01 – Slides 66 Windows Explorer ñể xóa các tập tin dữ liệu trong C:\Program Files\Microsoft SQL Server\MSSQL\Data vì làm ảnh hưởng ñến hệ thống CSDL trong MS SQL Server. QUẢN TRỊ CSDL 1. Thay ñổi kích thuớc của CSDL: có 2 cách  Hiệu chỉnh kích thước của file: ALTER DATABASE database_name MODIFY FILE DBMS01 – Slides 67 (NAME = logic_name, FILE NAME =‘ path/file_name’, SIZE = size, MAXSIZE = maxsize, FILEGROWTH = filegrowth_increament) QUẢN TRỊ CSDL  Thêm file mới: ALTER DATABASE Logical_database_name ADD FILE ( NAME = logical_file_name, FILENAME = ‘path\filename.ndf', DBMS01 – Slides 68 SIZE = size, MAXSIZE = maxsize, FILEGROWTH = filegrowth_increment ) [TO FILEGROUP filegroup_name] QUẢN TRỊ CSDL 2. Thu nhỏ (Shrinking) Databases or Files  Thu nhỏ một CSDL tự ñộng: ALTER DATABASE database_name SET AUTO_SHRINK DBMS01 – Slides 69  Thu nhỏ một CSDL bằng tay: DBCC SHRINKDATABASE (database_name, targer_percent) DBCC SHRINKFILE (file_name, targer_percent) QUẢN TRỊ CSDL 3. ðổi tên CSDL: Dùng hàm sp_renamedb ‘old_name’, ‘new_name’ 4. Tạo script cho CSDL và các ñối tượng của CSDL: DBMS01 – Slides 70  Chọn CSDL cần tạo script Click phải  All Tasks  Trang General: Chọn ñối tựơng cần tạo script  Trang formating: ðịnh dạng script Làm việc với bảng  Dùng T-SQL: CREATE TABLE table_name (column_name datatype [NULL | NOT NULL] [IDENTITY (SEED,INCREMENT)], column_name datatype ) [ON {filegroup} | DEFAULT] DBMS01 – Slides 71 Ví dụ: CREATE TABLE Sinhvien (Masv char(5) NOT NULL, Hoten nchar(40) NOT NULL, Diachi nchar(50) NOT NULL) Một số kiểu dữ liệu DBMS01 – Slides 72  Liệt kê các bảng trong CSDL hiện tại:  sp_help;  Thay ñổi tên bảng:  sp_rename ‘tên cũ’, ‘tên mới’ DBMS01 – Slides 73  Xóa bảng: DROP TABLE tên_bảng;  Liệt kê các cột của một bảng:  sp_columns tên_bảng;  Thêm một trường (cột): ALTER TABLE table_name ADD COLUMN column_name data_type; ALTER TABLE SinhVien ADD COLUMN DiaChi varchar(100) NULL ; DBMS01 – Slides 74  Xoá một trường (cột): ALTER TABLE table_name DROP COLUMN column_name;  Sửa tên cột: sp_rename 'TableName.ColumnName', 'NewColumnName', ‘COLUMN' Các giá trị mặc ñịnh  Giá trị nào sẽ ñược ñiền vào các cột mới ñược bổ sung?  NULL  Tự ñịnh nghĩa DBMS01 – Slides 75  ðịnh nghĩa giá trị mặc ñịnh: column_name data_type DEFAULT default_value  Sử dụng ở bất kỳ chỗ nào có khai báo thêm cột và kiểu dữ liệu tương ứng. Giá trị NULL  Giá trị ñặc biệt trong SQL  ðược dùng khi không xác ñịnh ñược giá trị của một thuộc tính của một bản ghi.  Ví dụ: Tên ñệm có thể có hoặc không. DBMS01 – Slides 76 CREATE TABLE SinhVien ( sid int Primary Key, name varchar(50) NOT NULL, class varchar(10) NOT NULL, address varchar(100));  Chèn dữ liệu: INSERT [INTO] TableName VALUES (val1, val2,) INSERT [INTO] DBMS01 – Slides 77 TableName(column1,,columnN) VALUES (val1,, valN) Insert into SinhVien(sid,class,name) VALUES (112,’k51c’,’Nguyen Van A’);  Cập nhật dữ liệu: UPDATE TableName SET columnN= valN [WHERE condition]; VD: UPDATE SinhVien SET class=‘CNTT06CM’ WHERE class=‘CNTT06CaMau’;  Xóa dữ liệu: DELETE FROM TableName DBMS01 – Slides 78 [WHERE condition]; VD: DELETE FROM SinhVien WHERE name=‘Nguyen Van A’;  Xóa toàn bộ nội dung bảng: DELETE FROM TableName; Một số câu lệnh  In ra màn hình: PRINT content; PRINT 123; PRINT ‘Cau truy van’;  In ra màn hình bằng Select: DBMS01 – Slides 79 SELECT ‘Xin chao’; SELECT 12, 34; --In giá trị 12, 34 thành 2 cột SELECT 12 AS ‘Tuổi’ --ðặt tên cho cột  Print và các phép toán: PRINT 125 + 4088 PRINT 128 % 42 PRINT 154 - (12 + 8) Các câu truy vấn ñơn giản  Cú pháp: SELECT [DISTINCT] FROM [WHERE ] [ORDER BY ]  Chọn tất cả các cột: DBMS01 – Slides 81 SELECT * FROM  Chọn một số cột: SELECT , ,... FROM  ðịnh tên cột tập kết quả: SELECT MaSV AS ‘Mã Sinh Viên’ FROM SinhVien  Hằng trong tập kết quả: SELECT TenNV + ‘là nhân viên của phòng’ + TenPB FROM NhanVien A JOIN PhongBan B ON A.MaPB = B.MaPB  Giá trị ñược tính toán: SELECT TenNV, Luong * 0.02 AS ‘Bảo Hiểm’ FROM NhanVien  Loại trừ sự trùng lắp (lặp lại) với DISTINCT: SELECT DISTINCT MaNV FROM PhanCong;  Hạn chế tập kết quả với TOP, PERCENT: SELECT TOP n FROM ; DBMS01 – Slides 82 SELECT TOP 10 * FROM MatHang; SELECT TOP 40 PERCENT * FROM NhanVien;  Lựa chọn tập kết quả với IN, NOT IN: SELECT TenDV FROM DonVi WHERE MaDV IN (113, 115)  So sánh với NULL: SELECT * FROM SinhVien WHERE DienThoai IS NOT NULL; Các phép toán so sánh = So sánh bằng Hoặc != So sánh khác > So sánh lớn hơn DBMS01 – Slides 83 < So sánh nhỏ hơn >= So sánh lớn hơn hay bằng <= So sánh nhỏ hơn hay bằng BETWEEN...AND... So sánh nằm trong khoảng LIKE So sánh mẫu, cho phép sử dụng kí tự ñại diện % và _ Một số hàm toán học  ABS(N)  CEILING(N)  EXP(N)  FLOOR(N) DBMS01 – Slides 84  POWER(B, E)  SQRT(N)  ROUND(N)  SQUARE(N) Một số hàm chuyển ñổi  CAST (expression AS data_type )  SELECT cast(getdate() AS varchar);  CONVERT (data_type [ ( length ) ] , expression [ , style ] ) DBMS01 – Slides 85  SELECT convert(datetime,'08-12-2008')  ðổi tên cột với SELECT:  SELECT ChucDanh=Title;  SELECT FullName=LastName+‘'+FirstName FROM Employees; So sánh chuỗi có ký tự ñặc biệt  Vd : Tên có ký tự % xuất hiện SELECT * FROM sinhvien WHERE ten LIKE '%[%]%' ; Hoặc DBMS01 – Slides 86  SELECT * FROM nhanvien WHERE ten LIKE '%\%%' ESCAPE '\'; Bài tập  Lý thuyết:  Assginment01  Thực hành:  Quản lý Bóng ñá DBMS01 – Slides 87  Quản lý Thư viện

Các file đính kèm theo tài liệu này:

  • pdfdbms01_5586.pdf