kythuatvten Chuyên trang dành cho kỹ thuật viên tin học CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT Th iết kê' và thự c thi CSDL Sql Server. Như đã tr

Tài liệu tương tự
Cách tạo User và Thiết kế Database Cách tạo User và Thiết kế Database Bởi: Khoa CNTT ĐHSP KT Hưng Yên Cách tạo một User Database Chúng ta có thể tạo m

Stored Procedures Stored Procedures Bởi: Khoa CNTT ĐHSP KT Hưng Yên Trong những bài học trước đây khi dùng Query Analyzer chúng ta có thể đặt tên và s

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH ĐỀ CƯƠNG MÔN HỌC 1. THÔNG TIN VỀ MÔN HỌC 1.1. Tên môn học: QUẢN TRỊ HỆ CƠ SỞ DỮ LIỆU 1.

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập Tự do Hạnh phúc ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN CÔNG NGHỆ CLI

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

mySQL - Part 1 - Installation

View, Procedure, Function & Trigger

HƯỚNG DẪN SỬ DỤNG CÁC SẢN PHẨM CỦA OFFICE 365 Hợp đồng số: 25/KTQD-FPT Cung cấp hệ thống Office trực tuyến và thư điện tử Trường Đại Học Kinh Tế Quốc

Hướng dẫn KHG sử dụng dịch vụ BaaS do Mobifone Global cung cấp Tổng Công ty Viễn thông MOBIFONE là nhà cung cấp dịch vụ Viễn thông và CNTT hàng đầu tạ

Chương II - KIẾN TRÚC HỆ ĐIỀU HÀNH

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Microsoft Word - su_dung_sqlite_voi_php.docx

Một số thao tác trong windows XP Một số thao tác trong windows XP Bởi: Vien CNTT DHQG Hanoi MỘT SỐ THAO TÁC TRONG WINDOWS XP Tạo đĩa mềm khởi động DOS

Microsoft Word - Tailieu win2003.doc

Co s? d? li?u (Database)

PowerPoint Template

Microsoft Word - Cau hoi on tap.doc

HỌC VIỆN KỸ THUẬT QUÂN SỰ

Làm quen với chương trình Microsoft Excel Làm quen với chương trình Microsoft Excel Bởi: unknown Làm quen với chương trình Những thao tác đầu tiên với

TRƯỜNG Đ CK Joel Murach lay Harris TÜ SACH BẢN QUYỄN FPT Polytechnic P H P v ä MySQL Murach's PHP and MySQL Khởi động nhanh với PHP & MySQL

Mục lục 1. Chuẩn bị Hướng dẫn cài đặt Casini Web Pro Hướng dẫn cài đặt SQLEEXPRESS Hướng dẫn cài đặt Teamviewer Hướng

11 tính năng hay trong Windows 10 mà Windows 8 không có Windows 10 là một sự cải tiến đáng kể so với Windows 8. Ngoài giao diện được làm mới, hầu hết

1 Tạo slide trình diễn với Microsoft Powerpoint Tạo slide trình diễn với Microsoft Powerpoint Người thực hiện Hoàng Anh Tú Phạm Minh Tú Nội dung 1 Mục

Ch­ng I

ThemeGallery PowerTemplate

TRUNG TÂM KINH DOANH VNPT ĐỒNG THÁP o0o TÀI LIỆU HƯỚNG DẪN KHAI THÁC Website QUẢN LÝ CÔNG NỢ - HÓA ĐƠN ĐIỆN TỬ dongthap.vnpt.vn/tt

Backup Cloud Server

Microsoft Word - Phan 1 - Kien thuc co so IFS-HANU 2011.doc

MCSA 2012: Distributed File System (DFS) MCSA 2012: Distributed File System (DFS) Cuongquach.com Ở bài học hôm nay, mình xin trình bày về Distributed

000.FF50VI. Trang bia 1 - bia ngoai

Hướng dẫn cài đặt và Tạo bản quyền Sản phẩm SAS INNOVA 2012 OPEN Phần 01 - Cài đặt SAS INNOVA 2012 OPEN Để cài đặt SAS INNOVA 2012 OPEN bạn cần phải c

Exchange Server - Recipient Configuration - Create Mailbox Exchange Server - Recipient Configuration - Create Mailbox Bởi: Phạm Nguyễn Bảo Nguyên Chún

Bài 4 Tựa bài

Truy vấn, Ràng buộc, Trigger Truy vấn, Ràng buộc, Trigger Bởi: Ths. Phạm Hoàng Nhung SQL (Structured Query Language) là ngôn ngữ truy vấn cấu trúc đượ

Hướng dẫn sử dụng dịch vụ FTP

Microsoft Word - Huong dan su dung Mailchimp.docx

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN XÂY DỰNG WEBSITE QUẢN LÝ RẠP CHIẾU PHIM TRÊN CƠ SỞ YII FRAMEWORK Hà Nội 2016

10 Vạn Câu Hỏi Vì Sao - Tin Học

Modbus RTU - Modbus TCP/IP Converter

NẮM BẮT XU HƯỚNG BỨT PHÁ THÀNH CÔNG 1

Những khái niệm cơ bản của hệ điều hành mạng Windows Những khái niệm cơ bản của hệ điều hành mạng Windows Bởi: unknown Giới thiệu tổng quan về Windows

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG E-LEARNING Version 1.2 Công Ty TNHH Uratek Website: TP.HCM, 11/2017

Giới thiệu về ADO.NET Giới thiệu về ADO.NET Bởi: phamvanviet truonglapvy Trong thực tế, có rất nhiều ứng dụng cần tương tác với cơ sở dữ liệu..net Fra

27_7193.pdf

Giới thiệu

Máy tính cá nhân Máy tính cá nhân Bởi: Wiki Pedia Định nghĩa Máy tính cá nhân (tiếng Anh: personal computer, viết tắt PC) là một máy điện toán siêu nh

BÀI TẬP THỰC HÀNH

Slide 1

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG E-LEARNING Version 2.9 Công Ty TNHH Uratek Website: TP.HCM, 7/2018

Công ty TNHH Cảng Quốc tế Tân Cảng Cái Mép HƯỚNG DẪN SỬ DỤNG ĐĂNG KY GIAO NHÂ N CONTAINER & THANH TOÁN QUA NGÂN HA NG Tha ng 04/2019 (Phiên bản 1.0)

Bài thực hành 6 trang 106 SGK Tin học 10

Hướng dẫn sử dụng Virtualmin

Microsoft Word - TNC VIETNAM - Huong dan tong quat PM.doc

IPSec IPSec Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã biết khi ta sao chép dữ liệu giữa 2 máy hoặc thông qua mạng VPN để nâng cao chế độ bảo mật người q

Moduel 7:Trinh chiếu bài thuyết trình 163 Moduel 7: rình chiếu bài thuyết trình 7.1. rình chiếu bài thuyết trình Thiết lập các tùy ch n cho chế độ Sli

Bài 3 Tựa bài

CÔNG TY TNHH GIẢI PHÁP TRỰC TUYẾN TOTAL 60 Đường 18, Phường Hiệp Bình Chánh, Quận Thủ Đức, TP.HCM MST:

Chương 1:

Document

ĐÁP ÁN 150 CÂU HỎI TIN HỌC KỲ THI NÂNG HẠNG GIÁO VIÊN TỈNH QUẢNG NAM 2018 Tác giả: Lê Quang Lưu HĐH là tập hợp các chương trình được tổ

TÀI LIỆU HƯỚNG DẪN CÀI ĐẶT CÁC SẢN PHẨM CỦA OFFICE 365

PHẦN LÝ THUYẾT Câu 1 : Trong Windows Explorer để đánh dấu chọn tất cả các đối tượng ta sử dụng? a. ấn Alt + Click chuột c. Tổ hợp phím Ctrl + A b. Ấn

100 CÂU TRẮC NGHIỆM TIN HỌC 6 I. CÂU HỎI TRẮC NGHIỆM Câu 1: Để viết đơn đăng kí tham gia câu lạc bộ, em nên sử dụng phần mềm nào dưới đây? A. Chương t

Microsoft Word - SGV-Q4.doc

BƯỚC 1 CÀI LẮP SIM BƯỚC 2 APN BƯỚC 3 ĐĂNG KÝ HOÀN THÀNH Bỏ SIM vào máy di động. Cài đặt APN. Vui lòng khởi động lại thiết bị. Vui lòng mở trình duyệt

HƯỚNG DẪN SỬ DỤNG CLOUD STORAGE Trân trọng cám ơn các bạn đã sử dụng dịch vụ Cloud Storage của Viettel IDC. Tài liệu hướng dẫn sử dụng nhanh được biên

(Tái bản lần thứ hai)

Cách thức sử dụng phần mềm MT4 của FxPro

Hướng dẫn sử dụng

OpenStax-CNX module: m Giới thiệu về ngôn ngữ C và môi trường turbo C 3.0 ThS. Nguyễn Văn Linh This work is produced by OpenStax-CNX and licens

Chöông 1 (tt.)

BỘ GIÁO DỤC VÀ ĐÀO TẠO

(Tái bản lần thứ hai)

HƯỚNG DẪN SỬ DỤNG PHÍM TẮT TRONG PHẦN MỀM GÕ CÔNG THỨC MATHTYPE I. Cài đặt phần mềm a) File cài đặt phần mềm Mathtype 6.9 các quý thầy cô có thể tìm k

Hướng dẫn bắt đầu sử dụng mozabook mozabook 2 Cài đặt, bắt đầu, Bản đồ màn hình Mở ấn phẩm, Nhập PDF và PPT Dẫn đường, Cập nhật ấn phẩm Ấn phẩm mới Nộ

NGÔN NGỮ THỐNG KÊ R

Trang 1 USE QLDA -- Create table TAODB create table TAODB(name varchar(20),logic_file varchar(20),os_file varchar(100),db_size smallint,db_maxsize sma

WICELL User Guide Smart Cloud Wicell Controller Standard Version Manual version

TRƯỜNG ĐH KH XH& NV TRUNG TÂM TIN HỌC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập Tự do Hạnh phúc TP.Hồ Chí Minh, ngày 23 tháng 02 năm 2013 ĐỀ CƯƠNG CH

Microsoft Word - emulator_trong_android.docx

BẢO MẬT HỆ THỐNG THÔNG TIN

PHẦN II

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

Mau ban thao TCKHDHDL

Tài liệu Hướng dẫn sử dụng

CHỮ NGƯỜI TỬ TÙ (NGUYỄN TUÂN) I. Kiến thức cơ bản: 1. Tác giả: ( Kết hợp với đề: Anh ( chị) hãy nêu những nét chính trong sự nghiệp sáng tác của Nguyễ

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Các câu hỏi nhỏ về visual basic Các câu hỏi nhỏ về visual basic Bởi: Khoa CNTT ĐHSP KT Hưng Yên Các câu hỏi nhỏ về visual basic Sau đây là một số câu

Hướng dẫn Cài đặt NOTEBOOK Hướng dẫn Cài đặt Windows Đọc kỹ tài liệu này trước khi cài đặt. Sau khi đọc Hướng dẫn Cài đặt này, cất ở nơi dễ lấy để tất

techz-baogia

tài liệu hướng dẫn sử dụng dành cho người dùng cuối

Microsoft Word - thuat-ngu-thuong-mai-dien-tu.docx

Slide 1

MÁY TOÀN ĐẠC ĐIỆN TỬ LEICA TCR1101

000.Bia

Nhúng mã-cách khai báo biến Nhúng mã-cách khai báo biến Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhúng mã javascript trong trang HTML Bạn có thể nhúng JavaScri

Công cụ trong VB6 Công cụ trong VB6 Bởi: FPT Software Để tìm hiểu về các công cụ trong VB chúng ta sẽ đề cập tới Add-in Các công cụ trong add-in Trình

Microsoft Word - jsp_client_request.docx

Bản ghi:

kythuatvten Chuyên trang dành cho kỹ thuật viên tin học CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT Th iết kê' và thự c thi CSDL Sql Server. Như đã trình bày ở các bài trước một trong những đặc điểm của SQL Server 2000 là Muitiple-lnstance nên khi nói đến một (SQL) Server nào đó là ta nói đến một Instance của SQL Server 2000, thông thường đó là Default Instance. Một Instance của SQL Server 2000 có 4 system databases và một hay nhiều user database. Các system databases bao gồm: Cấu Trúc Của SQL Server Như đã trình bày ở các bài trước một trong những đặc điểm của SQL Server 2000 là Multiple-I nstance nên khi nói đến một (SQL) Server nào đó là ta nói đến một Instance của SQL Server 2000, thông thường đó là Default Instance. Một Instance của SQL Server 2000 có 4 system databases và một hay nhiều user database. Các system databases bao gồm: Master : Chứa tất cả những thông tin cấp hệ thống (system-level information) bao gôm thông tin về các database khác trong hệ thống như vị trí của các data files, các login account và các thiết đặt cấu hình hệ thõng của SQL Server (system configuration settings). Tempdb : Chứa tất cả những table hay stored procedure được tạm thời tạo ra trong quá trình làm việc bởi user hay do bản thân SQL Server engine. Các table hay stored procedure này sẽ biến mất khi khởi động lại SQL Server hay khi ta disconnect. Model : Database này đóng vai trò như một bảng kẻm (template) cho các database khác. Nghĩa là khi một user database được tạo ra thì SQL Server sẽ copy toàn bộ các system objects (tables, stored procedures...) từ Model database sang database mới vừa tạo. Msdb : Database này được SQL Server Agent sử dụng đê hoạch định các báo động và các công việc cần làm (schedule alerts and jobs). Cấu Trúc Vật Lý của Một SQL Server Database Mỗi một database trong SQL Server đều chứa ít nhất một data file chính (prim ary), có thể có thêm một hay nhiều data file phụ (Secondary) và một transaction log file. Primary data file (thường có phần mở rộng.mdf) : đây là file chính chứa data và những system tables. Secondary data file (thường có phần mở rộng.ndf) : đây là file phụ thường chỉ sử dụng khi database được phân chia để chứa trên nhiều dĩa. Transaction log file (thường có phần mở rộng.ldf) : đây là file ghi lại tất cả những thay đổi diễn ra trong một database và chứa đầy đủ thông tin để có thể roll back hay roll forward khi cần. Data trong SQL Server được chứa thành từng Page 8KB và 8 page liên tục tạo thành một Extent như hình vẽ dưới đây: 1 of 7

Database Data (file).mdf or.nd( Log (file) ldi Tables. Indexes É n r r i r h ü Page (B KB) Extort (S conlatguous 8-KB pagaa) Max rov* S-2C - 8060 bytes Trước khi SQL Server muon Ill'll data vào một table nó cần phải dành riêng một khoảng trống trong data file cho table đó. Những khoảng trống đó chính là các extents. Có 2 loại Extents: Mixed Extents (loại hỗn hợp) dùng để chứa data của nhiều tables trong cùng một Extent và Uniform Extent (loại thuần nhất) dùng để chứa data của một table. Đầu tiên SQL Server dành các Page trong Mixed Extent để chứa data cho một table sau đó khi data tăng trưởng thì SQL dành hẳn một Uniform Extent cho table đó. Nguyên Tắc Hoạt Động của Transaction Log Trong SQL Server Transaction log file trong SQL Server dùng đê ghi lại các thay đổi xảy ra trong database. Quá trình này diễn ra như sau : đầu tiên khi có một sự thay đổi data như Insert, Update, Delete được yêu cầu từ các ứng dụng, SQL Server sẽ tải (load) data page tương ứng lên memory (vùng bộ nhớ này gọi là data cache), sau đó data trong data cache được thay đổi(những trang bị thay đối còn gọi là dirty-page). Tiếp theo mọi sự thay đối đều được ghi vào transaction log file cho nên người ta gọi là write-ahead log. Cuối cùng thì một quá trình gọi là Check Point Pro cess sẽ kiểm tra và viết tất cả những transaction đã được commited (hoàn tất) vào đĩa cứhg (flushing the page). rl)atonc4ocoỉ<r>ii»«ri O/ a p jtk ttir n.u 0ủ «1 J ua MvTfviTliv irmvlrfln icir&ỉcío" tes m<jy* t ỉ D M i ì*** n 0' tõí inh. «Otacas*»»ncincđnrt ^ 1 cu Cr*A>ặjú«( «Mtc* «..» «Irtxd tii'm.k r? T Li i V U Iuom Ngoài Check Point Process những dirty-page còn được đưa vào dĩa bởi một Lazy writer. Đây là một anh chàng làm việc âm thãm chỉ thức giấc và quét qua phần data cache theo một chu kỳ nhất định sau đó lại ngủ yên chờ lần quét tới. Xin giải thích thêm một chút về khái niệm transaction trong database. Một transaction hay một giao dịch là một loạt các hoạt động xảy ra được xem như một công việc đơn (unit of work) nghĩa là hoặc thành công toàn bộ hoặc không làm gì cả (all or nothing). Sau đây là một ví dụ cổ điển vẽ transaction: Chúng ta muốn chuyển một số tiền $500 từ account A sang account B như vậy công việc này cần làm các bước sau: 1. Trừ $500 từ account A 2 of 7

2. Cộng $500 vào account B Tuy nhiên việc chuyển tiền trên phải được thực hiện dưới dạng một transaction nghĩa là giao dịch chỉ được xem là hoàn tất (commlteđ) khl cả hal bước trên đều thực hiện thành công. Nếu vl một lý đo nào đó ta chỉ có thể thực hiện được bước 1 (chẳng hạn như vừa xong bước 1 thì điện cúp hay máy bị treo) thì xem như giao dịch không hoàn tất và cần phải được phục hồi lại trạng thái ban đầu (roll back). Thế thì Check Point Process hoạt động như thế nào đế có thế đảm bảo một transaction được thực thi mà không làm "dơ" database. Transaction Recovery None 2 Ron k m t í a M l Bade 4 RƠI lewae 5 Roi Bac* 1 Checkpoht System Failure Trong hình vẽ trên, một transaction được biểu diễn bằng một mũi tên. Trục nằm ngang là trục thời gian. Giả sử một Check Point được đánh dấu vào thời điểm giữa transaction 2 và 3 như hình vẽ và sau đó sự cố xãy ra trước khi gặp một Check point kế tiếp. Như vậy khi SQL Server được restart nó sẽ dựa trên những gì ghi trong transaction log file để phục hồi data (xem hình vẽ). Điều đó có nghĩa là SQL Server sẽ không cần làm gì cả đối với transaction 1 vì tại thời điểm Check point data đã được lưu vào dĩa rồi. Trong khi đó transaction 2 và 4 sẽ được roll forward vì tuy đã được commited nhưng do sự cố xảy ro trưởc thời điểm check point kẽ tiẽp nên data chưa kịp lưu vào dĩa. Tức là dựa trên những thông tin được ghi trên log file SQL Server hoàn toàn có đầy đủ cơ sở đê viết vào dĩa cứng. Còn transaction 3 và 5 thì chưa được commited (do bị down bất ngờ) cho nên SQL Server sẽ roll back hai transaction này dựa trên những gì được ghi trên log fils. Cấu Trúc Logic Của Một SQL Server Database Hầu như mọi thứ trong SQL Server được tổ chức thành những objects ví dụ như tables, views, stored procedures, indexes, constraints... Những system objects trong SQL Server thường có bắt đầu bằng chữ sys hay sp. Các objects trên sẽ được nghiên cứu lần lượt trong các bài sau do đó trong phần này chúng ta chỉ bàn sơ qua một số system object thông dụng trong SQL Server database mà thôi. Một sổ Sytem objects thường dùng: System Stored Procedure ứng dụng Sp_help ['object'] Cung cấp thông tin về một database object (table, view...) hay một data type. Sp_helpdb ['database'] Cung cấp thông tin về một database cụ thể nào đó. Sp_monitor Cho biết độ bận rộn của SQL Server Sp_spaceised ['object', 'updateusage'] Cung cấp thông tin về các khoảng trống đã được sử dụng cho một object nào đó Sp_who ['login] Cho biết thông tin về một SQL Server user Ví dụ: 3 of 7

sp_helpdb 'Northwind' sẽ cho kết quả có dạng như bảng dưới đây name db_size owner dbid created sta tu s... Northwind 3.94 MB sa 6 Aug 6 2000 Status=ONLINE, Updateabilily= READ_WRITE, stored procedure sp_spaceused như ví dụ sau USE Northwind Go sp_spaceused 'Customers' sẽ cho biết thông tin về table Customer: name rows reserved data index_size unused Customers 91 104 KB 24 KB 80 KB 0 KB Tạo Một User Database Chúng ta có thể tạo một database dễ dàng dùng SQL Server Enterprise bằng cách right-click lên trên "database" và chọn "Mew Database" như hình vẽ sau: Tr«ị _ J Cửrốcte p<wt I- M icrw cft SQL Server? T f3 SQt 5*rvt» Group»ì ỉ ) 10. W. :. 8eC5Q L5orv<r6.5/ìMnd>r ỵ 2 ) iuwmserve* (Wfedun MT) 3 CGM05T1 (WIiiOy* KT) l í 7 ; ONOC6SVH.APMSCWndw-.5N I) 5 3 5 iaocponmssqliocov'w niwx» NT) f ) PROOUCTKfcHOST (MftodOMI MT) 2? ) SAteOh <VMnclo*«NT) ế 2J SOLSEPVEP (sa S*V T &S/«*ldOW (IVcdcm Nì) ạ-ậ IU C J OKI li) C J M»n M Taskj r<l l_l toít LÚCJ >«: Vew Cl ^e** Wjidw* ínsmh«re m LJM0G.. Refretf) Export li sr... D o U ta m Ị«Ueroí ti u li CM 5Hwt C M S H a lk t lĩ ícrf> ib u Sau đó chúng ta chỉ việc đánh tên của database và click OK. Ngoài ra đôi khi chúng ta cũng dùng SQL script để tạo một database. Khi đó ta phải chỉ rõ vị trí của primary data file và transaction log file. Ví dụ: USE master GO CREATE DATABASE Products ON ( NAME = prods_dat, FILENAME = 'c:\program files\microsoft SQL server\mssql\data\prods.mdf, SIZE = 4, MAXSIZE = 10, 4 of 7

FILEGROWTH = 1 ) Trong ví dụ trên ta tạo một database tên là Products với logical file name là prods_dat và physical file name là prods.mdf, kích thước ban đầu là 4 MB và data file sẽ tự động tăng lên mỗi lần 1 MB cho tới tối đa là 10 MB. Nếu ta không chỉ định một transaction log file thì SQL sẽ tự động tạo ra 1 log file với kích thước ban đầu là 1 MB. LƯU Ý : Khi tạo ra một database chúng ta cũng phải lưu ý một số điểm sau: Đối với các hệ thống nhỏ mà ở đó vấn đề tốc độ của server không thuộc loại nhạy cảm thi chúng ta thường chọn các giá trị mặc định (default) cho Initial size, Automatically growth file. Nhưng trên một số production server của các hệ thống lớn kích thước của database phải được người DBA ước IƯỢng trước tùy theo tầm cỡ của business, và thông thường người ta không chọn Autogrowth(tự động tăng trưởng) và Autoshrink(tự động nén). Câu hỏi được đặt ra ở đây là vì sao ta không để SQL Server chọn một giá trị khởi đầu cho datafile và sau đó khi cần thì nó sẽ tự động nới rộng ra mà lại phải ước lượng trước? Nguyên nhân là nếu chọn Autogrowth (hay Autoshrink) thì chúng ta có thể sẽ gặp 2 vãn đề sau: Performance hit: Ảnh hưởng đáng kể đến khả năng làm việc của SQL Server. Do nó phải thường xuyên kiểm tra xem có đủ khoảng trống cần thiết hay không và nếu không đủ nó sẽ phải mở rộng bằng cách dành thêm khoảng trống từ dĩa cứng và chính quá trình này sẽ làm chậm đi hoạt động của SQL Server. Disk fragmentation : Việc mở rộng trên cũng sẽ làm cho data không được Mên tục mà chứa ở nhiều nơi khác nhau trong dĩa cứng điều này cũng gây ảnh hưởng lên tốc độ làm việc của SQL Server. Trong các hệ thống lớn người ta có thể dự đoán trước kích thước của database bằng cách tính toán kích thước của các tables, đây cũng chỉ là kích thước ước đoán mà thôi (xin xem "Estimating the size of a database" trong SQL Online đê biết thêm về cách tính) và sau đó thường xuyên dùng một số câu lệnh SQL (thường dùng các câu lệnh bắt đầu bằng DBCC.Phần này sẽ được bàn qua trong các bài sau) kiểm tra xem có đủ khoảng trống hay không nếu không đủ ta có thể chọn một thời điển mà SQL server ít bận rộn nhất (như ban đêm hay sau giờ làm việc) để nới rộng data file như thế sẽ không làm ảnh hưởng tới performance của Server. Chú ý giả sử ta dành sẵn 2 GB cho datafile, khi dùng Window Explorer để xem ta sẽ thây kích thước của file là 2 GB nhưng data thực tế có thể chi chiếm vài chục MB mà thôi. Những Điểm Cần Lưu Ý Khi Thiết Kế Một Database Trong phạm vi bài này chúng ta không thề nói sâu về lý thuyết thiết kẽ database mà chỉ đưa ra một vài lời khuyên mà bạn nên tuân theo khi thiết kể. Trước hết bạn phải nắm vững về các loại data type. Ví dụ bạn phải biết rõ sự khác biệt giữa ch a r(lũ ), nchar(lo) varchar(lo ), nvarchar(lo ). Loại dữ liệu Char là một loại string có kích thước cố định nghĩa là trong ví dụ trên nếu data đưa vào "This is a really long character string" (lớn hơn 10 ký tự) thì SQL Server sẽ tự động cắt phần đuôi và ta chỉ còn "This is a". Tương tự nếu string đưa vào nhỏ hơn 10 thì SQL sẽ thêm khoảng trống vào phía sau cho đủ 10 ký tự. NgƯỢc lại loại varchar sẽ không thêm các khoảng trống phía sau khi string đưa vào ít hơn 10. Còn loại data bắt đầu bằng chữ n chứa dữ liệu dạng Unicode. Một lưu ý khác là trong SQL Server ta có các loại Integer như : tinyint, smallint, int, bigint. Trong đó kích thước từng loại tương ứng là 1,2,4,8 bytes. Nghĩa là loại smallint tương đương với Integer và loại int tương đương với Long tro ng V B. Khi thiết kế table nên: Có ít nhất một cột thuộc loại ID dùng để xác định một record dễ dàng. Chỉ chứa data của một entity (một thực thể) Trong ví dụ sau thông tin về Sách và Nhà Xuất Bản được chứa trong cùng một table 5 of 7

BooklD Title Publisher PubState PubCity PubCountry 1 Inside SQL Server 2000 Microsoft Press CA Berkely USA 2 Windows 2000 Server New Rders MA Boston USA 3 Beginning Visual Basic 6.0 Wrox CA Berkely USA Ta nên tách ra thành table và table Publisher như sau: và BookID Title PublisherlD 1 Inside SQL Server 2000 PI 2 Windows 2000 Server P2 3 Beginning Visual Basic 6.0 P3 Publishers PublisherlD Publisher PubState PubQty PubCountry PI Microsoft Press CA Berkely USA P2 New Riders MA Boston USA P3 Wrox CA Berkely USA Tránh dùng cột có chứa NULL và nên luôn có giá trị Default cho các cột Tránh lập lại một giá trị hay cột nào đó Ví dụ một cuốn sách có thê được viết bởi hơn một tác giả và như thế ta có thể dùng một trong 2 cách sau để chứa data: hay BookID Title Authors 1 Inside SQL Server 2000 John Brown 2 Windows 2000 Server Matthew Bortniker, Rick Johnson 3 Beginning Visual Basic 6.0 Peter Wright, James Moon, John Brown BookID Title Authorl Author2 Author3 1 Inside SQL Server 2000 John Brown Null Null 2 Windows 2000 Server Matthew Bortniker Rick Johnson Null 3 Beginning Visual Basic 6.0 Peter Wright James Moon John Brown Tuy nhiên việc lập đi lập lại cột Author sẽ tạo nhiều vấn đề sau này. Chẳng hạn như nếu cuốn sách có nhiều hơn 3 tác giả thì chúng ta sẽ gặp phiền phức ngay...trong ví dụ này ta nên chặt ra thành 3 table như sau: BookID Title 1 Inside SQL Server 2000 2 Windows 2000 Server 6 of 7

Beginning Visual Basic 6.0 Authors AuthlD Rrst Name Last Name A1 John Brown A2 Matthew Bortniker A3 Rck Johnson A4 Peter Wright A5 James Moon BookID 1 A1 2 A2 2 A3 3 A4 3 A5 3 A1 AuthID AuthorBook Ngoài ra một trong những điều quan trọng là phải biết rõ quan hệ (Relationship) giữa các table: One-to-One Relationships : trong mối quan hệ này thì một hàng bên table A không thể liên kết với hơn 1 hàng bên table B và ngược lại. One-to-Many Relationships : trong mối quan hệ này thì một hàng bên table A có thê Nên kết với nhiều hàng bên table B. Many-to-Many Relationships : trong mõi quan hệ này thì một hàng bên table A có thể liên kết với nhiều hàng bên table B và một hàng bên table B cũng có thể liên kết với nhiều hàng bên table A. Như ta thấy trong ví dụ trên một cuốn sách có thể được viết bởi nhiều tác giả và một tác giả cũng có thể viết nhiều cuốn sách. Do đó mối quan hệ giữa và Authors là quan hệ Many to Many. Trong trường hợp này người ta thường dùng một table trung gian để giải quyết vấn đề (table AuthorBook). Để có một database tương đối hoàn hảo nghĩa là thiết kế sao cho data chứa trong database không thừa không thiếu bạn cần biết thêm về các thủ thuật Normalization. Tuy nhiên trong phạm vi khóa học này chúng tôi không muốn bàn sâu hơn về đề tài này, bạn có thể xem thêm trong các sách dạy lý thuyết cơ sở dữ liệu. Tóm lại trong bài này chúng ta đã tìm hiểu về cấu trúc của một SQL Server database và một số vấn đề cần biết khi thiết kế một database. Trong bài sau chúng ta sẽ bàn về Backup và Restore database như thế nào. công ty TNHH đâu tư phát triển tin học GC Com Chuyên trang kỹ thuật máy vl tính cho kỹ thuật viên tin học Điện thoại: (073) - 3.511.373-6.274.294 Website: http://www.gccom.net 7 of 7