Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
2,27 MB
Nội dung
Chương 2: Xây dựng, quản lý khai thác Cơ sở liệu Phạm Nguyên Thảo pnthao@fit.hcmuns.edu.vn Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin Bộ mơn Hệ thống Thơng tin Nội dung • Khái niệm Database • Tạo quản lý Database • Các kiểu liệu • Tạo quản lý bảng • Ràng buộc tồn vẹn đơn giản • Các thao tác liệu CSDL - Logic • Một database tập hợp chứa: – Các bảng (tables) chứa liệu có cấu trúc ràng buộc(constraint) định nghĩa bảng – Các khung nhìn (view) – Các thủ tục/ hàm – Các vai trò (role) người dùng (user) –… • Trên server có tối đa 32.767 CSDL CSDL – lưu trữ vật lý • Một database SQL Server lưu trữ loại tập tin: – Tập tin liệu (data file) tập tin liệu (primary data file), thường có “mdf” – Chứa liệu khởi đầu database 0-n tập tin liệu thứ cấp (secondary data file), thường có “ndf” – Chứa liệu không lưu trữ hết tập tin liệu CSDL – lưu trữ vật lý – Tập tin nhật ký giao tác (transaction log file) 1-n tập tin nhật ký, thường có đuôi “ldf” – Chứa thông tin nhật ký giao tác, dùng để phục hồi database sau xảy cố Nội dung • Khái niệm Database • Tạo quản lý Database • Kiểu liệu • Tạo quản lý bảng • Ràng buộc toàn vẹn đơn giản • Các thao tác liệu Tạo Database • Cú pháp lệnh tạo Database Create Database database_name [ On [Primary] { file_spec [,…n] } ] [ Log on { file_spec [,…n] } ] • Lưu ý: Cú pháp đầy đủ lệnh nên xem thêm Book Online, vào phần index, gõ câu lệnh cần tra cứu Tạo Database (tt) Với file_spec :: = ( Name = logical_file_name , Filename = 'os_file_name ' [ , Size = size [ KB | MB | GB | TB ] ] [ , Maxsize = { max_size | Unlimited } ] [ , Filegrowth = growth_increment ] ) • Mặc định, tập tin liệu log lưu thư mục MSSQL\ Data thư mục cài đặt SQL Server Tạo Database – ví dụ • Ví dụ 1: Create Database QLSinhVien • Ví dụ 2: Create Database QLSinhVien On ( Name = QLSV_Data Filename = „C:\ \ QLSV_Data.mdf ‟, Size = 1, Filegrowth = 10% ) Tạo Database – ví dụ (tt) • Ví dụ Create Database QLSinhVien On ( Name = QLSV_Data1, Filename = „C:\ \ QLSV_Data.mdf ‟, Size = 1, Maxsize = 10 MB, Filegrowth = MB ) , ( Name = QLSV_Data2 , Filename = „C:\ \QLSV_Data1.ndf‟ ) Log on ( Name = QLSV_Log, Filename = „D:\ \QLSV_Log.ldf‟ ) 10 Ràng buộc toàn vẹn đơn giản • SQL cung cấp sẵn chế để kiểm tra • Bao gồm: – Có thể chứa giá trị rỗng hay không: null/not null Giá trị mặc định: default(value) Các RB khai báo tạo bảng khai báo cho cột – Khóa (primary key constraint) – Khoá ngoại (foreign key constraint) – Giá trị (unique constraint) Hữu dụng cài đặt thêm khóa ứng viên khác ngồi khóa – Check constraint ( Kiểm tra ràng buộc miền giá trị ràng buộc liên thuộc tính quan hệ) • Có thể khai báo ràng buộc lúc tạo bảng sau bảng tồn 25 Khai báo ràng buộc lúc tạo bảng • Cú pháp: Create table Table_name ( … [, [constraint Constraint_name ] { primary key (Column_name [,…n]) | unique ( Column_name [,…n]) | check ( logical_expression ) } | foreign key ( Column_name [,…n]) references Table ( Column_name [,…n]) on_delete_update_handling ] […n] ) 26 Khai báo ràng buộc lúc tạo bảng – Ví dụ Create table SinhVien ( MaSV char(10) not null, HoTen nvarchar(30) not null, Nam tinyint, CMND char(10), Khoa char(5), constraint pk_SV primary key (MaSV), constraint u_CMND unique (CMND), constraint chk_Nam check (Nam > and Nam 0 33 Kết buộc/ gỡ kết buộc rule • Kết buộc rule sp_bindrule „rule_name‟, „object‟, [ „futureonly‟ ] Tùy chọn futureonly dùng kết buộc rule với kiểu liệu người dùng định nghĩa, có nghĩa cột thuộc kiểu liệu trước khơng bị ảnh hưởng rule Ví dụ: sp_bindrule „r_SoDuong‟, „SinhVien.Nam‟ Rule kết buộc ngầm gỡ rule cũ đối tượng • Gỡ kết buộc sp_unbindrule „object‟, [ „futureonly‟ ] Ví dụ: sp_unbindrule „SinhVien.Nam‟ 34 Xố rule • Cú pháp Drop rule {rule_name} [,…n] • Chỉ xóa rule khơng kết buộc với đối tượng • Nếu ngược lại, kết buộc xóa đi, phải gỡ hết kết buộc xóa 35 Nội dung • Khái niệm database • Tạo quản lý database • Kiểu liệu • Tạo quản lý bảng • Ràng buộc tồn vẹn đơn giản • Các thao tác liệu 36 Thêm/ xố/ cập nhật liệu • Chú ý thêm/ xóa / cập nhật – Dữ liệu nhập phải phù hợp với kiểu liệu – Đảm bảo ràng buộc toàn vẹn – Chú ý định dạng giá trị: kiểu chuỗi unicode N‟giá trị chuỗi Tiếng Việt có dấu Unicode‟ kiểu datetime „13 Jan 09‟ hay ‟13/01/09‟ hay „01/13/09‟ biểu thức đúng? Nên dùng set dateformat dmy; để định dạng kiểu ngày tháng dùng Việt Nam – Nhập giá trị rỗng dùng từ khóa null (khơng phải chuỗi „null‟) 37 Các dạng lệnh insert • Thêm dòng liệu vào bảng Insert [into] Table_name[ (column_name[,…n] )] values ( value [,…n] ) [, values (value [,…n] ), [,…n] ] • Thêm dòng liệu từ bảng khác Insert [into] Table_name Select_statement • Lưu ý: câu select, ta đọc liệu từ bảng database khác Khi đó, tên bảng viết đầy đủ sau: Database_name.Owner.Table_name – Ví dụ: select * from QLSinhVien.dbo.SinhVien 38 Truy vấn 39