30 giao trinh QT CSDL NC

118 318 2
30 giao trinh QT CSDL NC

Đ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

BỘ LAO ĐỘNG - THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC DẠY NGHỀ GIÁO TRÌNH Mô đun: Quản trị sở liệu nâng cao NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG NGHỀ ( Ban hành kèm theo Quyết định số: 120/QĐ-TCDN ngày 25/02/2013 Tổng cục trưởng Tổng cục dạy nghề) Hà Nội, năm 2013 TUYÊN BỐ BẢN QUYỀN: Tài liệu thuộc loại sách giáo trình nên nguồn thông tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm MÃ TÀI LIỆU: MĐ30 LỜI GIỚI THIỆU Ngôn ngữ hỏi có cấu trúc (SQL) hệ quản trị sở liệu quan hệ tảng kỹ thuật quan trọng công nghiệp máy tính Cho đến nay, nói SQL xem ngôn ngữ chuẩn sở liệu Các hệ quản trị sở liệu quan hệ thương mại có Oracle, SQL Server, Informix, DB2, chọn SQL làm ngôn ngữ cho sản phẩm So với chuẩn SQL ANSI/ISO đề xuất, thân hệ quản trị sở liệu quan hệ thương mại lại có số thay đổi đó; Điều dẫn đến khác biệt, không đáng kể, SQL chuẩn SQL sử dụng hệ quản trị sở liệu cụ thể Trong giáo trình này, chọn hệ quản trị sở liệu SQL Server hãng Microsoft để sử dụng cho ví dụ minh hoạ lời giải tập Hà Nội, ngày 25 tháng năm 2013 Tham gia biên soạn Chủ biên Th.S Trương Văn Hòa Đặng Quý Linh MỤC LỤC BÀI GIỚI THIỆU LỊCH SỬ PHÁT TRIỂN .9 Giới thiệu .9 1.1 SQL ngôn ngữ sở liệu quan hệ 1.2 Vai trò SQL 10 1.3 Tổng quan sở liệu quan hệ 11 1.3.1 Mô hình liệu quan hệ .11 1.3.2 Bảng (Table) 11 1.3.3 Khoá bảng 12 1.3.4 Mối quan hệ khoá 12 1.4 Sơ lược SQL 13 1.4.1 Câu lệnh SQL .13 1.4.2 Qui tắc sử dụng tên SQL 15 1.4.3 Kiểu liệu 15 1.4.4 Giá trị NULL 17 BÀI CÁC THÀNH PHẦN CƠ BẢN CỦA SQL SERVER 18 2.1 Khái niệm mô hình quan hệ 18 2.2 Các thành phần cấu thành SQL Server 18 2.3 Đối tượng sở liệu .19 2.3.1 Cơ sở liệu Master 19 2.3.2 Cơ sở liệu model .19 2.3.3 Cơ sở liệu msdb .20 2.3.4 Cơ sở liệu Tempdb 20 2.3.5 Cơ sở liệu pubs 20 2.3.6 Cơ sở liệu Northwind 20 2.3.7 Tập tin chuyển tác log 20 2.4 Bài tập 20 BÀI GIỚI THIỆU MỘT SỐ CÔNG CỤ TRONG SQL SERVER 22 3.1 Các thành phần quan trọng SQL Server 22 3.1.1 Relational Database Engine - Cái lõi SQL Server 22 3.1.2 Replication - Cơ chế tạo 22 3.1.3 Data Transformation Service (DTS) 23 3.1.4 Analysis Service 23 3.1.5 English Query - Một dịch vụ truy vấn 23 3.1.6 Meta Data Service .23 3.1.7 SQL Server Books Online 23 3.2 Các công cụ QSL Server 23 3.2.1 SQL enterprise manager 24 3.2.2 SQL server services manager 24 3.2.3 Query analyzer 26 BÀI PHÁT BIỂU CƠ BẢN T-SQL .28 4.1 Truy xuất liệu với câu lệnh SELECT .28 4.1.1 Mệnh đề FROM 29 4.1.2 Danh sách chọn câu lệnh SELECT .30 4.1.3 Chỉ định điều kiện truy vấn liệu 34 4.1.4 Tạo bảng liệu từ kết câu lệnh SELECT 37 4.1.5 Sắp xếp kết truy vấn .37 4.1.6 Thống kê liệu với GROUP BY .38 4.1.7 Thống kê liệu với COMPUTE 41 4.2 Bổ sung, cập nhật xoá liệu .42 4.2.1 Bổ sung liệu .43 4.2.2 Cập nhật liệu 44 4.2.3 Xoá liệu 45 4.3 Bài tập 46 BÀI TẠO VÀ SỬA ĐỔI BẢNG DỮ LIỆU 59 5.1 Tạo bảng liệu 60 5.1.1 Ràng buộc CHECK 63 5.1.2 Ràng buộc PRIMARY KEY .65 5.1.3 Ràng buộc UNIQUE .66 5.1.4 Ràng buộc FOREIGN KEY 67 5.2 Sửa đổi định nghĩa bảng 70 5.3 Xoá bảng 72 5.4 Bài tập 73 BÀI KHÓA VÀ RÀNG BUỘC DỮ LIỆU .81 6.1 Các phương pháp đảm bảo Data Integrity 81 6.2 Các loại ràng buộc (Constraints) 82 6.2.1 Primary Key Constraint 82 6.2.2 Unique Constraint 83 6.2.3 Foreign Key Constraint 83 6.2.4 Check Constraint 84 6.3 Bài tập 85 BÀI CHUẨN HÓA QUAN HỆ 86 7.1 Khái niệm chuẩn hoá quan hệ 86 7.1.1 Sự dư thừa liệu .86 7.1.2 Các dị thường cập nhật liệu 86 7.2 Cấu trúc phụ thuộc liệu 87 7.2.1 Phụ thuộc hàm 88 7.2.2 Phụ thuộc đa trị .88 7.2.3 Phụ thuộc chiếu-nối .89 7.3 Chuẩn hoá lược đồ quan hệ 90 7.3.1 Dạng chuẩn thứ (1NF) 90 7.3.2 Dạng chuẩn thứ (2NF) .90 7.3.3 Dạng chuẩn thứ (3NF) .91 7.3.4 Dạng chuẩn Boyce-Codd (BCNF) .92 7.3.5 Dạng chuẩn thứ (4NF) .93 7.3.5 Dạng chuẩn thứ (5NF) 94 BÀI BẢNG ẢO - VIEW 95 8.1 Khái niệm View .95 8.2 Khung nhìn đơn giản 96 8.3 Tạo khung nhìn - Khung nhìn lọc 98 8.4 Cập nhật, bổ sung xoá liệu thông qua khung nhìn 99 8.5 Sửa đổi khung nhìn 102 8.6 Xoá khung nhìn 102 8.7 Bài tập .103 103 Bài THIẾT KẾ CƠ SỞ DỮ LIỆU 104 9.1 Cấu trúc SQL Server 104 9.2 Cấu trúc vật lý SQL Server Database 104 9.3 Nguyên tắc hoạt động transaction log SQL Server 105 9.4 Cấu trúc logic SQL Server Database 107 9.5 Tạo user database 107 9.6 Những điểm cần lưu ý thiết kế database .109 9.7 Bài tập 110 9.7.1 Nội dung toán 110 9.7.2 Yêu cầu toán 112 9.7.3 Truy vấn liệu bảng 114 MÔ ĐUN QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO Mã mô đun: MĐ 30 Vị trí, ý nghĩa, vai trò mô đun: - Môn học bố trí sau sinh viên học xong mô đun: Mạng máy tính Quản trị mạng Mục tiêu mô đun: - Mô tả thành phần hệ quản trị sở liệu, khái niệm sở liệu quan hệ hướng đối tượng sở liệu quan hệ, ngôn ngữ MS SQL - Trình bày kiến trúc hệ quản trị sở liệu MS SQL Server, cách làm việc tương tác thành phần kiến trúc hệ thống - Kết nối hệ thống mạng để sử dụng hệ thống sở liệu - Thực thành thạo thao tác quản trị tài khoản người dùng tài khoản nhóm hệ thống MS SQL Server - Thiết lập cấu hình giải vấn đề thường xảy mạng sử dụng truy cập sở liệu - Bảo vệ tài nguyên liệu hệ thống MS SQL Server - Bố trí làm việc khoa học đảm bảo an toàn cho người phương tiện học tập Mã Tên chương mục/bài Bài Tổng quan Bài Các thành phần SQL server Bài Giới thiệu số công cụ SQL server Bài Phát biểu T-SQL Bài Tạo sửa đổi bảng liệu Bài Khóa ràng buộc liệu Bài Chuẩn hóa quan hệ Bài Bảng ảo (view) Bài Thiết kế sở liệu Loại dạy Địa điểm Thời lượng Tổng Lý Thực Kiểm số thuyết hành tra LT Lớp học 2 LT+TH Lớp học 4 LT+TH Lớp học 10 LT+TH Lớp học LT+TH Lớp học 17 17 5 11 12 LT+TH Lớp học 11 LT+TH Lớp học LT+TH Lớp học LT+TH Lớp học 2 1 YÊU CẦU VỀ ĐÁNH GIÁ HOÀN THÀNH MÔN HỌC/MÔ ĐUN Phương pháp đánh giá + Hình thức kiểm tra hết môn chọn hình thức sau: - Đối với lý thuyết :Viết, vấn đáp, trắc nghiệm - Đối với thực hành : Bài tập thực hành máy tính + Thời gian kiểm tra: - Lý thuyết: Không 150 phút - Thực hành: Không + Thực theo qui chế thi, kiểm tra công nhận tốt nghiệp dạy nghề hệ qui định 14/2007/BLĐTB&XH ban hành ngày 24/05/2007 Bộ trưởng Bộ LĐ-TB&XH Nội dung đánh giá + Về kiến thức: Được đánh giá qua kiểm tra viết, trắc nghiệm đạt yêu cầu sau: - Hiểu kiểu liệu MS SQL Server - Sử dụng tiện ích MS SQL Server - Hiểu phát biểu T-SQL - Hiểu tạo khoá ràng buộc liệu - Chuẩn hóa loại quan hệ - Thiết kế CSDL - Thiết lập bảo mật CSDL +Về kỹ năng: Đánh giá kỹ thực hành sinh viên thực hành Tạo CSDL, truy vấn liệu, tạo quan hệ bảo mật liệu + Về thái độ: Cẩn thận, tự giác BÀI GIỚI THIỆU LỊCH SỬ PHÁT TRIỂN Mã bài: MĐ30-01 Mục tiêu: - Hiểu lịch sử phát triển cần thiết SQL SERVER thời đại ngày nay; - Xác định cấu trúc CSDL sở nhằm đảm bảo thao tác liệu hiệu - Thực thao tác an toàn với máy tính Nội dung chính: Giới thiệu Ngôn ngữ hỏi có cấu trúc (SQL), có tiền thân SEQUEL, ngôn ngữ IBM phát triển sử dụng hệ sở liệu thử nghiệm có tên System/R vào năm 1974, thức ANSI/ISO công nhận chuẩn ngôn ngữ sử dụng sở liệu quan hệ vào năm 1986 Cho đến nay, SQL sử dụng phổ biển hệ quản trị sở liệu thương mại có vai trò quan trọng hệ thống Vậy thực SQL gì? Tại lại quan trọng hệ quản trị sở liệu? SQL làm nào? Nó sử dụng hệ quản trị sở liệu quan hệ? Nội dung chương cung cấp cho nhìn tổng quan SQL số vấn đề liên quan 1.1 SQL ngôn ngữ sở liệu quan hệ Mục tiêu: Hiểu ngôn ngữ SQL SQL, viết tắt Structured Query Language (ngôn ngữ hỏi có cấu trúc), công cụ sử dụng để tổ chức, quản lý truy xuất liệu đuợc lưu trữ sở liệu SQL hệ thống ngôn ngữ bao gồm tập câu lệnh sử dụng để tương tác với sở liệu quan hệ Tên gọi ngôn ngữ hỏi có cấu trúc phần làm liên tưởng đến công cụ (ngôn ngữ) dùng để truy xuất liệu sở liệu Thực mà nói, khả SQL vượt xa so với công cụ truy xuất liệu, mục đích ban đầu SQL xây dựng nên truy xuất liệu chức quan trọng SQL sử dụng để điều khiển tất chức mà hệ quản trị sở liệu cung cấp cho người dùng bao gồm: • Định nghĩa liệu: SQL cung cấp khả định nghĩa sở liệu, cấu trúc lưu trữ tổ chức liệu mối quan hệ thành phần liệu 10 • Truy xuất thao tác liệu: Với SQL, người dùng dễ dàng thực thao tác truy xuất, bổ sung, cập nhật loại bỏ liệu sở liệu • Điều khiển truy cập: SQL sử dụng để cấp phát kiểm soát thao tác người sử dụng liệu, đảm bảo an toàn cho sở liệu • Đảm bảo toàn vẹn liệu: SQL định nghĩa ràng buộc toàn vẹn sở liệu nhờ đảm bảo tính hợp lệ xác liệu trước thao tác cập nhật lỗi hệ thống Như vậy, nói SQL ngôn ngữ hoàn thiện sử dụng hệ thống sở liệu thành phần thiếu hệ quản trị sở liệu Mặc dù SQL ngôn ngữ lập trình C, C++, Java, song câu lệnh mà SQL cung cấp nhúng vào ngôn ngữ lập trình nhằm xây dựng ứng dụng tương tác với sở liệu Khác với ngôn ngữ lập trình quen thuộc C, C++, Java, SQL ngôn ngữ có tính khai báo Với SQL, người dùng cần mô tả yêu cầu cần phải thực sở liệu mà không cần phải cách thức thực yêu cầu Chính vậy, SQL ngôn ngữ dễ tiếp cận dễ sử dụng 1.2 Vai trò SQL Mục tiêu: Nắm vai trò SQL Bản thân SQL hệ quản trị sở liệu, tồn độc lập SQL thực phần hệ quản trị sở liệu, xuất hệ quản trị sở liệu với vai trò ngôn ngữ công cụ giao tiếp người sử dụng hệ quản trị sở liệu Trong hầu hết hệ quản trị sở liệu quan hệ, SQL có vai trò sau: • SQL ngôn ngữ hỏi có tính tương tác: Người sử dụng dễ dàng thông qua trình tiện ích để gởi yêu cầu dạng câu lệnh SQL đến sở liệu nhận kết trả từ sở liệu • SQL ngôn ngữ lập trình sở liệu: Các lập trình viên nhúng câu lệnh SQL vào ngôn ngữ lập trình để xây dựng nên chương trình ứng dụng giao tiếp với sở liệu • SQL ngôn ngữ quản trị sở liệu: Thông qua SQL, người quản trị sở liệu quản lý sở liệu, định nghĩa cấu trúc lưu trữ liệu, điều khiển truy cập sở liệu, 104 Bài THIẾT KẾ CƠ SỞ DỮ LIỆU Mã bài: MĐ30-09 Mục tiêu: - Thiết tạo CSDL; - Xây dựng mô hình CSDL; - Backup restore CSDL - Thực thao tác an toàn với máy tính Nội dung chính: 9.1 Cấu trúc SQL Server Mục tiêu: Trình bày cấu trúc SQL server, ý nghĩa sở liệu có sẵn cài đặt SQL Server Multiple-Instance nên nói đến (SQL) Server ta nói đến Instance SQL Server, thông thường Default Instance Một Instance SQL Server có system databases hay nhiều user database Các system databases bao gồm: • Master : Chứa tất thông tin cấp hệ thống (system-level information) bao gồm thông tin database khác hệ thống vị trí data files, login account thiết đặt cấu hình hệ thống SQL Server (system configuration settings) • Tempdb : Chứa tất table hay stored procedure tạm thời tạo trình làm việc user hay thân SQL Server engine Các table hay stored procedure biến khởi động lại SQL Server hay ta disconnect • Model : Database đóng vai trò bảng kẻm (template) cho database khác Nghĩa user database tạo SQL Server copy toàn system objects (tables, stored procedures ) từ Model database sang database vừa tạo • Msdb : Database SQL Server Agent sử dụng để hoạch định báo động công việc cần làm (schedule alerts and jobs) 9.2 Cấu trúc vật lý SQL Server Database Mục tiêu: Trình bày cấu trúcvật lý SQL server Mỗi database SQL Server chứa data file (primary), có thêm hay nhiều data file phụ (Secondary) transaction log file • Primary data file (thường có phần mở rộng mdf) : file chứa data system tables 105 • Secondary data file (thường có phần mở rộng ndf) : file phụ thường sử dụng database phân chia để chứa nhiều dĩa • Transaction log file (thường có phần mở rộng ldf) : file ghi lại tất thay đổi diễn database chứa đầy đủ thông tin để roll back hay roll forward cần Data SQL Server chứa thành Page 8KB page liên tục tạo thành Extent Trước SQL Server muốn lưu data vào table cần phải dành riêng khoảng trống data file cho table Những khoảng trống extents Có loại Extents: Mixed Extents (loại hỗn hợp) dùng để chứa data nhiều tables Extent Uniform Extent (loại nhất) dùng để chứa data table Ðầu tiên SQL Server dành Page Mixed Extent để chứa data cho table sau data tăng trưởng SQL dành hẳn Uniform Extent cho table 9.3 Nguyên tắc hoạt động transaction log SQL Server Mục tiêu: Trình bày ý nghĩa nguyên tắc hoạt động tập tin giao tác Transaction log file SQL Server dùng để ghi lại thay đổi xảy database Quá trình diễn sau: có thay đổi data Insert, Update, Delete yêu cầu từ ứng dụng, SQL Server tải (load) data page tương ứng lên memory (vùng nhớ gọi data cache), sau data data cache thay đổi(những trang bị thay đổi gọi dirtypage) Tiếp theo thay đổi ghi vào transaction log file người ta gọi write-ahead log Cuối trình gọi Check Point Process kiểm tra viết tất transaction commited (hoàn tất) vào dĩa cứng (flushing the page) Ngoài Check Point Process dirty-page đưa vào dĩa Lazy writer Ðây anh chàng làm việc âm thầm thức giấc quét qua phần data cache theo chu kỳ định sau lại ngủ yên chờ lần quét tới Xin giải thích thêm chút khái niệm transaction database Một transaction hay giao dịch loạt hoạt động xảy xem công việc đơn (unit of work) nghĩa thành công toàn không làm (all or nothing) Sau ví dụ cổ điển transaction: Chúng ta muốn chuyển số tiền $500 từ account A sang account B công việc cần làm bước sau: Trừ $500 từ account A Cộng $500 vào account B 106 Tuy nhiên việc chuyển tiền phải thực dạng transaction nghĩa giao dịch xem hoàn tất (commited) hai bước thực thành công Nếu lý ta thực bước (chẳng hạn vừa xong bước điện cúp hay máy bị treo) xem giao dịch không hoàn tất cần phải phục hồi lại trạng thái ban đầu (roll back) Thế Check Point Process hoạt động để đảm bảo transaction thực thi mà không làm "dơ" database Trong hình vẽ trên, transaction biểu diễn mũi tên Trục nằm ngang trục thời gian Giả sử Check Point đánh dấu vào thời điểm transaction hình vẽ sau cố xãy trước gặp Check point Như SQL Server restart dựa ghi transaction log file để phục hồi data (xem hình vẽ) Ðiều có nghĩa SQL Server không cần làm transaction thời điểm Check point data lưu vào dĩa Trong transaction roll forward commited cố xảy trước thời điểm check point nên data chưa kịp lưu vào dĩa Tức dựa thông tin ghi log file SQL Server hoàn toàn 107 có đầy đủ sở để viết vào dĩa cứng Còn transaction chưa commited (do bị down bất ngờ) SQL Server roll back hai transaction dựa ghi log file 9.4 Cấu trúc logic SQL Server Database Mục tiêu: Phân tích cấu trúc logic database, vai trò, ý nghĩa số đối tượng hệ thống Hầu thứ SQL Server tổ chức thành objects ví dụ tables, views, stored procedures, indexes, constraints Những system objects SQL Server thường có bắt đầu chữ sys hay sp Các objects nghiên cứu sau phần bàn sơ qua số system object thông dụng SQL Server database mà Một số Sytem objects thường dùng: System Stored Procedure Ứng dụng Cung cấp thông tin database object (table, view ) Sp_help ['object'] hay data type Sp_helpdb ['database'] Cung cấp thông tin database cụ thể Sp_monitor Cho biết độ bận rộn SQL Server Sp_spaceused ['object', Cung cấp thông tin khoảng trống sử dụng 'updateusage' ] cho object Sp_who ['login'] Cho biết thông tin SQL Server user 9.5 Tạo user database Mục tiêu: Trình bày khái niệm, cách tạo quản lý user database từ trình quản lý từ cửa sổ lệnh Chúng ta tạo database dễ dàng dùng SQL Server Enterprise cách right-click lên "database" chọn "New Database" Ngoài dùng SQL script để tạo database Khi ta phải rõ vị trí primary data file transaction log file Ví dụ: USE master GO CREATE DATABASE Products ON ( NAME = prods_dat, 108 FILENAME server\mssql\data\prods.mdf', = 'c:\program files\microsoft SQL SIZE = 4, MAXSIZE = 10, FILEGROWTH = ) GO Trong ví dụ ta tạo database tên Products với logical file name prods_dat physical file name prods.mdf, kích thước ban đầu MB data file tự động tăng lên lần MB tối đa 10 MB Nếu ta không định transaction log file SQL tự động tạo log file với kích thước ban đầu MB Lưu Ý: Khi tạo database phải lưu ý số điểm sau: Ðối với hệ thống nhỏ mà vấn đề tốc độ server không thuộc loại nhạy cảm thường chọn giá trị mặc định (default) cho Initial size, Automatically growth file Nhưng số production server hệ thống lớn kích thước database phải người DBA ước lượng trước tùy theo tầm cỡ business, thông thường người ta không chọn Autogrowth(tự động tăng trưởng) Autoshrink(tự động nén) Câu hỏi đặt ta không để SQL Server chọn giá trị khởi đầu cho datafile sau cần tự động nới rộng mà lại phải ước lượng trước? Nguyên nhân chọn Autogrowth (hay Autoshrink) gặp vấn đề sau: • Performance hit: Ảnh hưởng đáng kể đến khả làm việc SQL Server Do phải thường xuyên kiểm tra xem có đủ khoảng trống cần thiết hay không không đủ phải mở rộng cách dành thêm khoảng trống từ dĩa cứng trình làm chậm hoạt động SQL Server • Disk fragmentation : Việc mở rộng làm cho data không liên tục mà chứa nhiều nơi khác dĩa cứng điều gây ảnh hưởng lên tốc độ làm việc SQL Server Trong hệ thống lớn người ta dự đoán trước kích thước database cách tính toán kích thước tables, kích thước ước đoán mà (xin xem "Estimating the size of a database" SQL Books Online để biết thêm cách tính) sau thường xuyên dùng số câu lệnh SQL (thường dùng câu lệnh bắt đầu DBCC Phần bàn qua sau) kiểm tra xem có đủ khoảng trống hay không không đủ ta chọn thời điểm mà SQL server bận rộn (như ban 109 đêm hay sau làm việc) để nới rộng data file không làm ảnh hưởng tới performance Server Chú ý giả sử ta dành sẵn GB cho datafile, dùng Window Explorer để xem ta thấy kích thước file GB data thực tế chiếm vài chục MB mà 9.6 Những điểm cần lưu ý thiết kế database Mục tiêu: Trình bày điểm quan trọng cần thiết bắt đầu thiết kế cài đặt sở liệu Trong phạm vi nói sâu lý thuyết thiết kế database mà đưa vài lời khuyên mà bạn nên tuân theo thiết kế Trước hết phải nắm vững loại data type Ví dụ khác biệt char(10), nchar(10) varchar(10), nvarchar(10) Loại liệu Char loại string có kích thước cố định nghĩa ví dụ data đưa vào "This is a really long character string" (lớn 10 ký tự) SQL Server tự động cắt phần đuôi ta "This is a" Tương tự string đưa vào nhỏ 10 SQL thêm khoảng trống vào phía sau cho đủ 10 ký tự Ngược lại loại varchar không thêm khoảng trống phía sau string đưa vào 10 Còn loại data bắt đầu chữ n chứa liệu dạng unicode Một lưu ý khác SQL Server ta có loại Integer : tinyint, smallint, int, bigint Trong kích thước loại tương ứng 1,2,4,8 bytes Nghĩa loại smallint tương đương với Integer loại int tương đương với Long VB Khi thiết kế table nên: • Có cột thuộc loại ID dùng để xác định record dễ dàng • Chỉ chứa data entity (một thực thể) Ngoài điều quan trọng phải biết rõ quan hệ (Relationship) table: • One-to-One Relationships : mối quan hệ hàng bên table A liên kết với hàng bên table B ngược lại • One-to-Many Relationships : mối quan hệ hàng bên table A liên kết với nhiều hàng bên table B • Many-to-Many Relationships : mối quan hệ hàng bên table A liên kết với nhiều hàng bên table B hàng bên table B liên kết với nhiều hàng bên table A Như ta thấy ví dụ sách viết nhiều tác giả tác giả viết nhiều sách Do mối quan hệ Books Authors quan hệ Many to Many Trong trường hợp người ta thường dùng table trung gian để giải vấn đề (table AuthorBook) 110 Ðể có database tương đối hoàn hảo nghĩa thiết kế cho data chứa database không thừa không thiếu bạn cần biết thêm thủ thuật Normalization Tuy nhiên phạm vi khóa học không muốn bàn sâu đề tài này, bạn xem thêm sách dạy lý thuyết sở liệu Tóm lại tìm hiểu cấu trúc SQL Server database số vấn đề cần biết thiết kế database 9.7 Bài tập Mục tiêu: - Phân tích tổng quát toán Hệ thống lại toàn kiến thức học hiểu sâu hơn, rõ nội trãi qua - Hình thành kỹ năng, kỹ xảo việc thao tác, thực lệnh 9.7.1 Nội dung toán •Xây dựng CSDL quản lý bán hàng diễn tả sơ đồ quan hệ thực thể tóm tắt mối quan hệ thực thể sau • Khách hàng thực nhiều đơn đặt hàng, đơn đặt hàng nhân viên bán hàng đảm nhận • Một đơn đặt hàng dành cho khách hàng khách hàng đặt nhiều loại hàng hoá khác nhau, với số lượng đơn giá tương ứng • Một mặt hàng thuộc chủng loại, lưu kho • Để diễn tả thuộc tính thực thể, xem bảng đặc tả thuộc tính thực thể sau: KHACHHANG STT Thuộc tính Kiểu Độ Giá trị liệu lớn mặc MaKhachHang int nhiên Ten varchar 60 TenCongTy varchar 60 DiaChi DT FAX MaThanhPho Mail Web varchar char char char varchar varchar NHANVIEN STT Thuộc tính MaNhanVien 120 10 10 120 120 Kiểu Độ liệ lớn int Giá trị Ghi IDENTITY Tên khách hàng, NOT NULL Tên công ty Khách hàng Địa Số điện thoại Số Fax Mã Thành Phố Địa EMail Địa trang Web Ghi IDENTITY Ten 111 varchar 16 10 11 Ho NgaySinh NgayLamViec DiaChi MaThanhPho DT Mobil Mail Web varchar datetime datetime varchar char char char varchar varchar NHACUNGCAP STT Thuộc tính 60 120 10 10 120 120 Kiểu Độ liệu lớn int varchar 60 MaNhaCC Ten TenCongTyCC varchar 60 DiaChi DT FAX MaThanhPho Mail Web varchar char char char varchar varchar Tên nhân viên, NOT NULL Họ nhân viên Ngày sinh Ngày bắt đầu làm Địa việc cho công ty Mã thành phố Điện thoại nhân Điện viên thoại di động Địa EMail Địa trang Web Giá trị 120 10 10 120 120 PHIEUDATHANG STT Thuộc tính Kiểu Độ Giá trị mặc liệ lớn nhiên MaPhieuDH int MaKhachHang int MaNhanVien int NgayDH datetime NgayGH datetime CHITIETDATHANG STT Thuộc tính Kiểu Độ Giá trị mặc liệ lớn nhiên MaDHCT int MaPhieuDH int MaSanPham int DonGia money SoLuong smallint GiamGia real SANPHAM STT Thuộc tính MaSanPham Kiểu Độ liệ lớn int Ghi IDENTITY Tên khách hàng, NOT NULL Tên công ty Khách hàng Địa Số điện thoại Số Fax Mã Thành Phố Địa EMail Địa trang Web Ghi IDENTITY Mã khách hàng Mã nhân viên Ngày đặt hàng Ngày giao hàng Ghi IDENTITY Mã phiếu đặt hàng Mã sản phẩm Đơn giá SL hàng hóa Phần trăm giảm giá Giá trị Ghi IDENTITY Ten 112 varchar 120 MaKho MaChungLoai MaNhaCC DonGia SoLuongTonKho int int int money smallint 0 SoLuongDH smallint CHUNGLOAI STT Thuộc tính MaChungLoai Ten Kiểu Độ liệ lớn int varchar 120 DacTa varchar KHO STT Thuộc tính MaKho Ten DC DT FAX DienTich varchar char char real 120 10 10 Kiểu liệ char varchar varchar Độ lớn 60 60 MaThanhPho Ten ViTri Giá trị Text Kiểu Độ liệ lớn int varchar 60 THANHPHO STT Thuộc tính Tên sản phẩm, NOT NULL Mã kho Mã chủng loại Mã nhà cung cấp Đơn giá Số lượng hàng hoá Số lượngkho có đặt hàng Giá trị 100 Giá trị Ghi IDENTITY Tên chủng loại sản Đặc tả NOT chủng loại phẩm, Ghi IDENTITY Tên kho, NOT NULL Địa kho Điện thoại Fax Diện tích kho Ghi Mã thành phố Tên thành phố Vị trí địa lý thành phố 9.7.2 Yêu cầu toán 1/ Tạo CSDL với tên QuanLyBanHang, với file data có độ lớn 10MB, kích thước tăng tự động 2MB kích thước tối đa 20MB File log có kích thước 3MB, kích thước tăng tự động 20% không giới hạn kích thước cho file log 2/ Lần lượt tạo bảng với khoá thuộc tính bảng 113 3/ Tạo ràng buộc khóa ngoại lai bảng: KhachHang-ThanhPho; NhanVienThanhPho; NhaCungCap-ThanhPho; PhieuDatHangChiTietDatHang; PhieuDaHang-KhachHang; PhieuDatHang-NhanVien; ChiTietDatHangSanPham; SanPham-Kho; SanPham-NhaCungCap; SanPham-ChungLoai 4/ Tạo sơ đồ quan hệ thực thể 5/ Lần lượt tạo index cột : Ten, TenCongTy bảng KhachHang; Ten, NgaySinh, NgayLamViec bảng NhanVien; Ten, TenCongTyCC bảng NhaCungCap; NgayDH, NgayGH bảng PhieuDatHang; Ten bảng SanPham; Ten bảng ChungLoai; Ten bảng Kho 6/ Lần lượt tạo ràng buộc liệu sau a/ Thành Phố Mã thành phố có dạng : 0XYZ với X ký tự chữ số từ 0-9; Y có không ký tự chữ số từ 0-9; Z có không ký tự chữ số từ 0-9 b/ Kho + DT FAX có dạng 0511XXXXXX với X ký tự số từ 0-9 + DienTich > 01/01/1900 + Nhân viên làm việc phải có tuổi lớn 15 d/ Khách hàng + DT có dạng 0XXCXXXXXX có dạng 091XXXXXXX có dạng 090XXXXXXX với X ký tự số từ 0-9, C có không ký tự số từ 0-9 + FAX có dạng 0XXCXXXXXX với X ký tự số từ 0-9, C có không ký tự số từ 0-9 e/ Nhà Cung cấp + DT có dạng 0XXCXXXXXX có dạng 091XXXXXXX có dạng 090XXXXXXX với X ký tự số từ 0-9, C có không ký tự số từ 0-9 114 + FAX có dạng 0XXCXXXXXX với X ký tự số từ 0-9, C có không ký tự số từ 0-9 f/ Sản phẩm + SoLuongTonKho > 0, SoLuongDH > + DonGia > g/ Phiếu đặt hàng + NgayDH > 01/01/1990 + NgayGH >= NgayDH h/ Chi tiết đặt hàng + SoLuong > + =< GiamGia = • Liệt kê thông tin sản phẩm: tên, đơn giá, số tượng tồn kho, số • lượng đặt hàng, tên chủng loại tên kho lưu giữ hàng hoá • Thống kê tổng số lượng hàng hoá tồn kho • Thống kê số lượng hàng hoá theo chủng loại tồn kho • Người quản lý gọi gấp nhà cung cấp để cung ứng kịp thời mặt hàng số lượng đặt hàng > số lượng tồn kho Vậy liệt kê danh sách • Các hàng hóa tình trạng với tên, địa số điện thoại nhà cung cấp tương ứng để giúp người quản lý có sở gọi hàng • Người quản lý hình thành danh sách hàng hoá để gọi nhà cung cấp để cung ứng số lượng tồn kho - số lượng đặt hàng < 10 hay số lượng tồn kho < • Vậy liệt kê danh sách hàng hóa tình trạng với tên, địa số điện thoại nhà cung cấp tương ứng để giúp người quản lý có sở gọi hàng 116 • Liệt kê thông tin tên, địa chỉ, điện thoại khách hàng; tên, đơn giá, số lượng, phần trăm giảm giá sản phẩm tất đơn đặt hàng đặt hàng vào ngày 30/09/2012 • Liệt kê thông tin tên, địa chỉ, điện thoại khách hàng; tên, đơn giá, số lượng, phần trăm giảm giá sản phẩm; tên, địa chỉ, điện thoại nhà cung cấp tương ứng với sản phẩm tất đơn đặt hàng đặt hàng vào ngày 30/09/2012 • Để đảm bảo an toàn liệu, Backup (sao lưu) liệu hàng ngày vào lúc 16h Tất liệu lưu vào ổ disk D thư mục Backup\QuanLyBanHang • Xuất liệu nằm bảng KhachHang dạng MSExcel • Chuyển liệu từ file Excel (Trong trường hợp liệu khách hàng) vào bảng CSDL 117 CÁC THUẬT NGỮ CHUYÊN MÔN Thuật ngữ Analysys Backup Check Colums Constrain Database Delete Foreign key Insert Instalation Join Key Master Online Primary key Query Quy tắc Relational Restore Rollback Row Select Subquery Table Transaction Union Update User Version View Giải thích Phân tích Sao lưu Kiểm tra Cột Ràng buộc Cơ sở liệu Xóa Khóa Chèn Cài đặt Nối Khóa Cơ sở liệu chủ Trực tuyến Khóa Truy vấn Role Quan hệ Phục hồi Quay lui Hàng Lựa chọn Truy vấn Bảng biểu Giao dịch Hợp lại Cập nhật Người dùng Phiên Khung nhìn 118 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Hữu Khang, Lập trình ứng dụng chuyên nghiệp SQL Server, Nhà xuất Lao động xã hội, 2003 [2] Microsoft SQL Server 2005 Book Online [3] Đỗ Phúc, Tài liệu môn học CSDL nâng cao , Đại học Công nghệ thông tin, Đại học Quốc gia Tp HCM, 2006 [4] Trần Đức Quang, Nguyên lý hệ sở liệu phân, Nhà xuất Thống kê, tập 2, 1999 [5] Phạm Thế Quế, Giáo trình sở liệu phân tán, Học viên công nghệ bưu viễn thông, 2010 [6] Nguyễn Bá Tường, Nhập môn sở liệu phân tán, Nhà xuất Khoa học Kỹ thuật, 2005 [7] Trần Quốc Chiến, Giáo trình sở liệu nâng cao, Đại học Đà Nẵng, 2007 Tiếng Anh [8] M.Tamer Ozsu and Patrick Vaduries, Principles of Distributed Database System, Frentice-Hall, 2006 Trang Web [9] http://www.lirc.udn.vn/ [10] http://msdn.microsoft.com ... (instance) SQL Server tên service cho instance SQL Server MSSQL$InstanceName, $InstanceName tên instance định lần cài đặt Ứng với SQL Server Agent service cho instance gọi SQLAGENT$InstanceName... xoá CSDL mẫu Khi CSDL tạo CSDL giống sở liệu model 20 Vì lý này, CSDL model có dung lượng 100MB CSDL SQL Server tạo phải có liệu lớn 100MB 2.3.3 Cơ sở liệu msdb Như nêu, chũng ta có hai CSDL. .. Thu hồi quyền từ người sử dụng Quản lý giao tác COMMIT Uỷ thác (kết thúc thành công) giao tác ROLLBACK Quay lui giao tác SAVE TRANSACTION Đánh dấu điểm giao tác Lập trình DECLARE Khai báo biến

Ngày đăng: 17/12/2016, 00:23

Tài liệu cùng người dùng

Tài liệu liên quan