Bài giảng quản tri Database
Trang 1Hà Thị Kim Dung
dunghtk.mcs07@coltech.vnu.vn
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
Microsoft SQL Server 2000
Bài 4: Quản trị Cơ Sở Dữ Liệu
Trang 3Các cơ sở dữ liệu hệ thống và cơ sở dữ liệu mẫu
Database = system DB +
Template Application
Tempdb : Chứa tất cả những table
hay stored procedure 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 mẫu
(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
Trang 4Các cơ sở dữ liệu hệ thống và cơ sở dữ liệu mẫu (tiếp)
Trang 5Các cơ sở dữ liệu hệ thống và cơ sở dữ liệu mẫu (tiếp)
Trang 6 Create/ Delete, Attach/ Detach:
• Đã tìm hiểu trong phần tìm hiểu về Enterprise
• Tạo mới DB Quan Ly Sinh Vien
• Tạo mới bảng SINHVIEN
• Thiết lập thuộc tính cho Table SINHVIEN
Các thao tác với cơ sở dữ liệu
Trang 7Các thao tác với cơ sở dữ liệu (tiếp)
Table – Bảng:
Cấu trúc bảng:
i j record record
Mỗi 1 bản ghi có 1 thuộc tính khóa xác
định tính duy nhất của bản ghi đó
Đặc trưng: tên gọi, kiểu giá trị, miền giá trị
Trang 8 Column – Cột – Thuộc tính:
– Tập hợp các giá trị cùng kiểu dữ liệu ( Data Type).
– Có tên cột: Tên thuộc tính.
– Các giá trị có kiểu dữ liệu Data Type, miền dữ liệu DOM.
– Mỗi một bản ghi là thông tin của một đối tượng.
– Cùng một bảng, các bản ghi không được giống nhau về giá trị ở tất
cả các thuộc tính
– Vì thế, để đảm bảo tính xác định duy nhất, mỗi một bản ghi phải có
1 hoặc 1 vài giá trị thuộc tính xác định tính duy nhất này Khóa
Ví dụ: MaSV là thuộc tính Khóa
Các thao tác với cơ sở dữ liệu (tiếp)
Trang 9Các thao tác với cơ sở dữ liệu (tiếp)
Kiểu dữ liệu – Data Type:
• Integer – số nguyên:
• Bit: 2 giá trị 0 hoặc 1
• Decimal và Numeric – Số thập phân
Trang 10Các thao tác với cơ sở dữ liệu (tiếp)
Kiểu dữ liệu – Data Type:
• Tiền tệ
• Số thực xấp xỉ:
• Datetime, smalldatetime
Trang 11Các thao tác với cơ sở dữ liệu (tiếp)
Kiểu dữ liệu – Data Type:
• String – xâu kí tự
• Unicode string – xâu kí tự kiểu Unicode
Trang 12Các thao tác với cơ sở dữ liệu (tiếp)
Kiểu dữ liệu – Data Type:
• Binary string – Xâu kiểu nhị phân
• Ngoài ra còn một số kiểu Data Type khác nữa:
– Book online Index Data Types SQL Server
Trang 13Các thao tác với cơ sở dữ liệu (tiếp)
Nhiều column làm key:
Shift+Biểu tượng key
Trang 14Các thao tác với cơ sở dữ liệu (tiếp)
Lưu ý:
• Ngoài sử dụng Enterprise, có thể
dùng câu lệnh SQL trong Query
Analyzer tuy nhiên không nhanh
bằng
• Để sửa lại các bảng đã thao tác, chỉ
việc chọn lại tên bảng, chọn Design
Table là được
Trang 15Các thao tác với cơ sở dữ liệu (tiếp)
Thiết lập mối quan hệ giữa các bả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 Ví dụ: 1 Khoa thì có
1 Trưởng Khoa, 1 Trưởng Khoa chỉ làm trưởng khoa của 1 Khoa duy nhất
– One-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, 1 hàng bên B chỉ có thể liên kết với 1 hàng bên A Ví dụ: Một lớp có nhiều sinh viên, mỗi sinh viên chỉ thuộc biên chế của 1 lớp
– 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 Ví dụ: Một lớp có nhiều môn học, một môn học có thể học bởi nhiều lớp
Trang 16Các thao tác với cơ sở dữ liệu (tiếp)
Thiết lập mối quan hệ giữa các
bảng:
• Sử dụng Diagram của Enterprise
để tạo mối liện hệ (liên hệ khóa
Trang 17Các thao tác với cơ sở dữ liệu (tiếp)
Drag&Drop
Check existing data on
rồi hay chưa? Nếu data
không thích hợp thì quan hệ
sẽ không được tạo, cần phải
Enforce relationship for
quan hệ khi sao chép
Enforce relationship for INSERTs and
UPDATE: Đặt quan hệ cho các thao tác
chèn và cập nhật.
Cascade Update Related Fields :
Primary Key thay đổi Foreign Key tự
động cập nhật.
Trang 18Các thao tác với cơ sở dữ liệu (tiếp)
Cập nhật bản ghi vào bảng
Trang 19 Một số lưu ý:
– Các thao tác với CSDL đã làm với Enterprise như: tạo mới DB, tạo mới Table, thêm các bản ghi vào cho Table đều có thể được người dụng tự viết trong Query Analyzer sử dụng câu lệnh SQL
– Lưu ý về ràng buộc khóa ngoại: Các điều kiện Toàn vẹn tham chiếu Cascade
Update và Cascade Delete
– Đặt tên:
• SINH_VIEN
• MaSV
• Ho_Ten– Nắm vững DataType ( dành cho bài tập về nhà)
Có ít nhất một cột thuộc loại ID dùng để xác định một record dễ dàng.
– 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 đó
Các thao tác với cơ sở dữ liệu (tiếp)
Trang 20Câu hỏi cuối chương
Câu 1: Phân biệt sự khác nhau giữa các kiểu dữ liệu : char(5),
nchar(5) varchar(5), nvarchar(5)
Câu 2: Một trang web muốn xây dựng phần mềm quản lý thư viện trong đó có 3 Bảng books lưu tên các đầu sách, Authors lưu tên các tác giả viết sách và Pubs nêu tên các nhà xuất bản các cuốn sách đó Giữa sách và nhà xuất bản, sách và tác giả
họ xây dựng các mối quan hệ tương tự như 2 hình bên Trong
đó có các ràng buộc là: Một cuốn sách chỉ được xuất bản ở 1 nhà xuất bản, một nhà xuất bản có thể xuất bản nhiều đầu
sách (hình a) Một cuốn sách do 1 tác giả viết, 1 tác giả có thể viết nhiều cuốn sách (hình 2) Hãy xây dựng CSDL dựa vào hai hình đã cho
Trang 22• Câu 3: Để lấy cấu trúc của Database ta sử dụng chức năng
Generate SQL Script Hãy tìm hiểu chức năng này và lấy cấu trúc của CSDL tạo được từ câu 2
Trang 23• Nộp bài:
– Tất cả các sinh viên đều cùng làm 3 câu trên.
– Nộp file word + CSDL tạo được (file MDF +LDF)
– Thời gian nộp bài: Trước 0h00’ ngày 16/09/2009 (thứ 4 tuần sau)
• Nội dung nộp:
– Tất cả cho vào file rar được đặt tên có dạng là:Họ_va_ten_Lop_Bai so2.rar Ví dụ: Bạn tên là Nguyễn Văn A sẽ nộp file rar có tên là: Nguyen_Van_A_C07HTTT_Baiso2.
– Đầu đề email gửi: [C07HTTT] Em gui bai tap lon mon SQL Server – Tất cả các trường hợp làm sai quy định đều không nhận
• Nộp muộn sau 1 ngày trừ 1đ, 2 ngày trừ 2đ, 3 ngày không
Trang 24Q&A