Trần Sơn Hảihttp://fit.hcmup.edu.vn/~haits Email: transonhai@hcmup.edu.vn Nội dung Chương 4 : Lý thuyết mô hình CSDL quan hệ Chương 3 : Tổng quan quá trình thiết kế CSDL Chương 2 : Hệ q
Trang 1GVHD: ThS Trần Sơn Hải
http://fit.hcmup.edu.vn/~haits
Email: transonhai@hcmup.edu.vn
Nội dung
Chương 4 : Lý thuyết mô hình CSDL quan hệ
Chương 3 : Tổng quan quá trình thiết kế CSDL
Chương 2 : Hệ quản trị cơ sở dữ liệu SQL Server
Chương 1 : Tổng quan các hệ thông tin và cơ sở dữ liệu
Chương 6 : Thiết kế CSDL ở mức lô-gíc
Chương 5 : Thiết kế CSDL ở mức quan niệm
Chương 7 : Thiết kế CSDL ở mức vật lý
Báo Cáo và Ôn Tập
Trang 2Thomas M Connolly, Carolyn E Begg, A Practical
Approach to Design, Implementation, and
Management, Addion-Wesley, 1999
J Ullman, Database and knowledge base
systems,Vol 1 Computer Science Press, 1988
Ramez Elmasri, Shamkant B Navathe ,
Fundamentals of database systems, Addison Wesley
-4th edition, 2003
Joseph M Hellerstein, Michael Stonebraker,
Readings in Database Systems Fourth Edition, MIT
Press, 2005
hệ thông tin và cơ sở dữ liệu
Trang 3Cơ sở dữ liệu là một hệ thống các thông tin có cấutrúc, ñược lưu trữ trên các thiết bị lưu trữ nhằmthỏa mãn yêu cầu khai thác thông tin ñồng thời củanhiều người sử dụng hay nhiều chương trình ứngdụng với những mục ñích khác nhau
3 Cơ sở dữ liệu (2)
Giảm trùng lắp thông tin xuống mức thấp nhất,
khác nhau
Khả năng chia sẽ thông tin cho nhiều người, nhiều
ứng dụng khác nhau
Trang 45 Hệ quản trị cơ sở dữ liệu (1)
Hệ quản trị cơ sở dữ liệu (DBMS – DataBase Management System) là hệ thống các phần mềm hỗ trợ tích cực cho các nhà phân tích, thiết kế và khai thác CSDL.
Các DBMS thông dụng: Visual FoxPro, Microsoft Access, SQL Server, DB2, Oracle … hầu hết các DBMS hiện nay
ñều dựa trên mô hình quan hệ.
Trang 5Một DBMS phải có:
Ngôn ngữ giao tiếp giữa người sử dụng và CSDL
Từ ñiển dữ liệu (Data Dictionary)
Có biện pháp bảo mật khi có yêu cầu
Cơ chế giải quyết tranh chấp dữ liệu
Có cơ chế sao lưu (backup), phục hồi (restore)
ðảm bảo tính ñộc lập giữa dữ liệu và chương trình
5 Hệ quản trị cơ sở dữ liệu (3)
Ngôn ngữ giao tiếp:
Ngôn ngữ mô tả dữ liệu (DDL – Data Definition Language): cho
phép khai báo cấu trúc CSDL, các mối liên hệ của dữ liệu, các quy ñịnh, ràng buộc dữ liệu.
Ngôn ngữ thao tác dữ liệu (DML – Data Manipulation Language):
cho phép thực hiện thao tác thêm, xóa, sửa dữ liệu.
Ngôn ngữ truy vấn có cấu trúc ( SQL – Structured Query
Language): cho phép người khai thác sử dụng ñể truy vấn thông
tin cần thiết.
Ngôn ngữ quản lý dữ liệu ( DCL – Data Control Language) cho
phép thay ñổi cấu trúc bảng, khai báo bảo mật, cấp quyền cho người sử dụng.
Trang 6Bộ phận quản lý tập tin
mdf : meta data file
ldf : log data file
bak : bakup data file
Dữ liệu vật lý có thể lưu trên nhiều file hay thậm chí nhiều ổ ñĩa.
Người dùng (trừ các DBA) chỉ làm việc trên các thành phần logic của SQL Server.
Trang 7Kiến trúc của SQL Server
• Các database hệ thống của SQL Server– master Database chứa thông tin về cấu hình, phần quyền của hệ thống
– tempdb Database chứa dữ liệu tạm cần lưutrữ
– model Database chứa database mẫu ñể tạomột database mới
– msdb Database ñể hỗ trợ SQL Server Agent
Trang 8Hệ thống
một phạm vi (boundary) xác ñịnh, hoạt ñộng kết hợp với nhau nhằm ñạt ñến những mục ñích xác ñịnh.
ðầu vào
Thành phần Phạm vi
ðầu ra Giao diện Liên hệ giữa các
thành phần
16
Trang 9Thành phần Phạm vi
ðầu ra Giao
diện
Liên hệ giữa các thành phần
ti ề n m ặ t,
b ả ng giá, hóa ñơ n,
…
Xem cửa hàng bán nước giải khát như một hệ thống:
18
Trang 10L ậ p báo cáo t ồ n kho
L ậ p báo cáo t ồ n kho
Báo cáo t ồ n kho
Báo cáo t ồ n kho
Các cơ quan hành chính khác mà cơ quan cần làm việc chung hoặc hệ thống luật phải tuân theo
Tổ chức kinh tế: ngân hàng, khách hàng, nhà cung ứng, hệ thống luật kinh doanh,…
20
Trang 11Hệ thống thông tin là gì?
Vai trò của CSDL trong hệ thống thông tin.
Phân biệt dữ liệu, thông tin và tri thức?
ðề xuất một quy trình thiết kế cơ sở dữ liệu.
Tóm lại
Khái niệm cơ sở dữ liệu
Mục tiêu của các hệ CSDL
Kiến trúc và chức năng của một hệ CSDL
Vai trò cơ sở dữ liệu trong các hệ thống thông tin
Trang 12cơ sở dữ liệu SQL Server
Trang 132 of 100
I Tổng quan :
1 SQL SQL SerVer là một hệ quản trị CSDL quan hệ
A Cơ Sở Dữ Liệu Quan Hệ :
Một bảng dùng để lưu trữ thông tin của một đối tượng ngoài thế giới thực
Một bảng được tạo từ dòng và cột
Dữ liệu được tổ chức lưu trữ thành từng bảng
Tổng Quan : (tt)
khơng quan trọng
Cột :Dùng để lưu trữ thuộc tính của đối tượng
Một bảng phải có tối thiểu một cột,Thứ tự cột khơng quan trọng
Một cột có ba thuộc tính cơ bản
bảng không thể có hai cột trùng tên
Column Name :Tênn cột,trong một bảng không thể có hai cột trùng tên
Data Type :Kiểu dữ liệu
Length :chiều dài của dữ liệu
Trang 144 of 100
Dòng :tập hợp dữ liệu của nhiều cột
Trong một bảng không thể có hai dòng trùng thông tin
Một dòng cho biết thông tin cụ thể của một đối tượng lưu trữ trong bảng
Một bảng có thể không có dòng nào
Dòng :tập hợp dữ liệu của nhiều cột
Trong một bảng không thể có hai dòng trùng thông tin
Một dòng cho biết thông tin cụ thể của một đối tượng lưu trữ trong bảng
Một bảng có thể không có dòng nào
Tổng Quan(tt)
Khoá Chính (Primary Key) :
Tập hợp của một hay nhiều cột trong bảng
Dữ liệu tại cột này khác rỗng
Dữ liệu tại cột này là duy nhất trong bảng
Trang 156 of 100
Khoá ngoại (Foreign Key) :
Khoá ngoại (Foreign Key) :
Tập hợp của một hay nhiều cột trong bảng,mà các cột này là khoá chính của bảng khác
Dữ liệu tại các cột này hoặc rỗng,hoặc phải lấy từ bảng mà cột làm khoá chính
Tập hợp của một hay nhiều cột trong bảng,mà các cột này là khoá chính của bảng khác
Dữ liệu tại các cột này hoặc rỗng,hoặc phải lấy từ bảng mà cột làm khoá chính
Tạo và quản lý một CSDL Quan hệ
khai thác Một CSDL Quan hệ
Trang 168 of 100
Hệ Thống SQL Server có thể triển khai cho một hệ thống kiểu Client-Server hoặc triển khai cho một hệ thống máy đơn
Hệ thống được triển khai phụ thuộc vào số người truy cập đồng thời đến CSDL để thực hiện một công việc
Các hệ thống SQL Server
Client-Server ta có thể triển
khai theo mô hình 2 lớp
hoặc 3 lớp
Trang 17ðĩa cứng
Từ 64MB trở lên RAM
Từ Pentium 166 MHz trở lên
CPU
Yêu cầu
Phần cứng
Trang 1812 of 100
Có thể chạy trên tất
cả các hệ điều hành
Personal Edition
Microsoft Windows Server(nt,2000,Xp Server)
Cài đặt Personal Edition SQL Server
1 ðưa đĩa CD chương trình vào ,màn hình sau xuất hiện
1 ðưa đĩa CD chương trình vào ,màn hình sau xuất hiện
Chọn
Trang 1914 of 100
2.Màn hình sau xuất hiện
2.Màn hình sau xuất hiện
Chọn
Cài đặt Personal Edition SQL Server(tt)
3.Màn hình sau xuất hiện
3.Màn hình sau xuất hiện
Chọn
Trang 2016 of 100
4.Màn hình sau xuất hiện
4.Màn hình sau xuất hiện
Chọn
Cài đặt Personal Edition SQL Server(tt)
5.Màn hình sau xuất hiện
5.Màn hình sau xuất hiện
Chọn
Trang 2118 of 100
6.Màn hình sau xuất hiện
6.Màn hình sau xuất hiện
Nhập vào tên người dùng
Cài đặt Personal Edition SQL Server(tt)
7.Màn hình cảnh báo xuất hiện,chọn yes
7.Màn hình cảnh báo xuất hiện,chọn yes
Trang 22Cài đặt Personal Edition SQL Server(tt)
9.Chọn kiểu cài đặt
9.Chọn kiểu cài đặt
Chọn
Trang 2322 of 100
10.Chọn Dạng cài đặt
10.Chọn Dạng cài đặt
Cài đặt Personal Edition SQL Server(tt)
11.Chọn kiểu đăng nhập vào SQL Server
11.Chọn kiểu đăng nhập vào SQL Server
Trang 2424 of 100
12.Chọn kiểu đăng nhập vào SQL Server
12.Chọn kiểu đăng nhập vào SQL Server
Cài đặt Personal Edition SQL Server(tt)
Nhấp Next để chương trình cài đặt vào máy
Sau khi cài đặt xong,khởi động lại máy, sau khi khởi động xong,thấy xuất hiện biểu tượng Trên thanh Status của Windows
Nhấp Next để chương trình cài đặt vào máy
Sau khi cài đặt xong,khởi động lại máy, sau khi khởi động xong,thấy xuất hiện biểu tượng Trên thanh Status của Windows
Trang 25Các tiện ích của SQL Server
A> Microsoft SQL Server:Chứa các nhóm
Server
A> Microsoft SQL
A> Microsoft SQL Server:Chứa các nhóm
Server
Tạo mới một nhóm Server ta làm như sau :
Click chuột phải vào Microsoft SQL Server,chọn New SQL Server Group
Tạo mới một nhóm Server ta làm như sau :
Click chuột phải vào Microsoft SQL Server,chọn New SQL Server Group
Trang 2628 of 100
Màn hình sau xuất hiện
Màn hình sau xuất hiện
Chọn Top Level
Group : Tạo
một nhóm gốc
Chọn Sub-group
of: tạo một
nhóm là con của
một nhóm khác
of: tạo một
nhóm là con của
một nhóm khác
Name:tên nhóm
Các tiện ích của SQL Server
B>Đăng ký một Server vào hệ thống :Click
chuột phải vào SQL Server Group,chọn New SQL Server Registration
B>Đăng ký một Server vào hệ thống :Click
chuột phải vào SQL Server Group,chọn New SQL Server Registration
Trang 2730 of 100
Màn hình sau xuất hiện : Nhấn Next
Màn hình sau xuất hiện : Nhấn Next
Các tiện ích của SQL Server
Màn hình sau xuất hiện : chọn Server cần đăng ký,nhấn Add,sau đó nhấn next
Màn hình sau xuất hiện : chọn Server cần đăng ký,nhấn Add,sau đó nhấn next
Trang 28Các tiện ích của SQL Server
Màn hình sau xuất hiện :Nhập Login
name,PassWord để đăng nhập vào SQL
Server
Màn hình sau xuất hiện :Nhập Login
name,PassWord để đăng nhập vào SQL
Server
Chú ý : Nêú quá
trình cài đặt ở
Chú ý : Nêú quá
trình cài đặt ở
Trang 29Là CSDL mẩu Mode
Là CSDL quản lý thông tin của các CSDL còn lại Master
Ý nghĩa Tên CSDL
Các tiện ích của SQL Server
Là CSDL chứa các bảng tạm được phát sinh trong quá trình xữ lý
Trang 3036 of 100
C>Client Network Utility : dùng để
đăng ký một Server cho hệ thống
C>Client Network Utility : dùng để
đăng ký một Server cho hệ thống
Các tiện ích của SQL Server
Cách đăng ký : chọn Tab Alias nhấn nút Add,màn hình sau xuất hiện
Cách đăng ký : chọn Tab Alias nhấn nút Add,màn hình sau xuất hiện
Trang 31Các tiện ích của SQL Server
Tiện ích Book Online :Tài liệu hướng dẫn cách sử dụng SQL Server
Tiện ích Book Online :Tài liệu hướng dẫn cách sử dụng SQL Server
Trang 32Các dịch vụ này khởi
động bằng cách : Start
->
Programs->Mcrosoft SQL
Server->Dịch vụ
Các tiện ích của SQL Server
Tiện ích Import and Export
Data Tiện ích này cho phép
chuyển dữ liệu (Export) từ
Trang 3342 of 100
Tiện ích Import and Export Data
Màn hình sau xuất hiện
•Data Sourse :Chọn loại
Các tiện ích của SQL Server
Tiện ích Import and Export Data •Nếu dữ liệu nguồn là
Trang 3444 of 100
Tiện ích Import and Export
Data •Destination: chọn loạI dữ
thủ tục nội tại (Stored Procedure):
Chứa các lệnh thao tác với Dữ liệu
Trang 3546 of 100
Triger :Chứa các lệnh thao tác với Dữ
liệu,kiểm tra ràng buộc tự động
Constraint :Chứa các ràng buộc dữ
liệu
Một CSDL do một hoặc nhiều người tạo
nhưng cĩ thể được nhiều người truy cập
Trong SQL Server cĩ thể tạo đươc
Trong SQL Server cĩ th ể t ạ o đươc
32767
32767 CSDL khác nhau
Xây dựng một CSDL trong SQL Server
Cấu trúc lưu trữ của một CSDL :
Một CSDL trong SQL Server tối thiểu sẽ dùng hai tập tin vật lý để lưu trữ dữ liệu:
Một dùng lưu trữ dữ liệu
(Data file)
Một dùng để lưu trữ các vết giao tác (Transaction log file)
C ấ u trúc lưu tr ữ c ủ a m ộ t CSDL :
M ộ t CSDL trong SQL Server t ố i thi ể u s ẽ dùng hai t ậ p tin v ậ t lý để
Trang 36Log file (*.LDF)
Xây dựng một CSDL trong SQL Server
Tạo mới một CSDL
trong SQL Server
Cách 1: Sử dụng
tiện ích EnterPriseMana ger :Click chuộc phải vào đối
tượng Databases chọn New
tượng Databases chọn New
Database
Trang 3750 of 100
Xuất hiện hộp thoại :
Nhập tên CSDL
Xây dựng một CSDL trong SQL Server
Chọn Tab Data Files:
Filename :Tên tập tin Data Files
• By percent :Tăng theo phần trăm
Maximun file size : kích thước tối
Trang 38Chương II: Xây dựng một CSDL trong SQL Server
Các kiểu dữ liệu trong SQL Server
từ -3.40E+38 đến +3.40E+38
4 bytes Real
từ -1.79E+308 đến +1.79E+308
8 bytes Float
> Các kiểu dữ liệu dạng số thực
từ -10 ^38 đến +10 ^38
17byt es
từ 0 đến 255
1 byte TinyInt
từ -32768 đến +32767
2 bytes SmallInt
từ-2,147,483,648đến +2,147,483,647
4 bytes Int
> Các kiểu dữ liệu dạng số nguyên
Miền giá trị dữ liệu lưu trữ Kích
thước Kiểu dữ liệu
Trang 39từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes
2*N bytes
NVarCh
ar
từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes
2*N bytes NChar
> Các kiểu dữ liệu dạng chuỗi dùng font chữ Unicode
từ 1 đến 2,147,483,647 ký tự, mỗi ký tự là 1 byte
N bytes Text
từ 1 đến 8000 ký tự, mỗi ký tự là
1 byte
N bytes VarChar
> Các kiểu dữ liệu dạng chuỗi cĩ độ dài biến đổi
từ 1 đến 8000 ký tự, mỗi ký tự là một byte
N bytes Char
> Các kiểu dữ liệu dạng chuỗi cĩ độ dài cố định
55 of 100
Xây dựng một CSDL trong SQL Server
Các kiểu dữ liệu trong SQL Server
từ 1 đến 2,147,483,647 bytes
N bytes Image
từ 1 đến 8000 bytes
N bytes VarBinary
từ 1 đến 8000 bytes
N bytes Binary
> Các kiểu dữ liệu dạng chuỗi nhị phân (Binary String)
từ01/01/1900đến06/06/20 79
4 bytes SmallDateTime
từ01/01/1753đến31/12/99 99
8 bytes DateTime
> Các kiểu dữ liệu dạng ngày và giờ
từ -214,748.3648 đến + 214,748.3647
4 bytes SmallMoney
từ -922,337,203,685,477.5808 đến +922,337,203,685,477.5807
8 bytes Money
> Các kiểu dữ liệu dạng tiền tệ
Trang 4056 of 100
Các thuộc tính cơ bản của Một
Bảng
128 ký tự Tên bảng phải duy nhất
bên trong phạm vi của người đã
tạo ra nĩ trong một CSDL
của các cột bên trong bảng, tên của
các cột bên trong bảng phải duy
nhất.
57 of 100
Chương II: Xây dựng một CSDL trong SQL Server
định độ dài dữ liệu mà cột sẽ lưu trữ đối với
các kiểu dữ liệu dạng chuỗi, số
Số ký số lưu trữ (Precision): là số ký số tối
đa mà các kiểu dữ liệu dạng số cĩ thể lưu
trữ được
Số lẻ lưu trữ (Scale): là số lẻ tối đa mà các
kiểu dữ liệu dạng số thập phân dùng để lưu trữ
Trang 4158 of 100
Cột ñịnh danh (Identity): Giá trị
của cột ñịnh danh là số nguyên
không trùng lắp do hệ thớng
Microsoft SQL Server tự ñộng
cấp phát.
• Các kiểu dữ liệu của cột ñịnh
danh : Int, SmallInt, TinyInt, Decimal , Numeric
• Thuộc tính Identity Seed :Số
Value): là giá trị mặc nhiên sẽ
ñược gán vào cột dữ liệu khi
người sử dụng thêm mới một mẫu
tin nhưng lại ñể trống giá trị tại
cột dữ liệu ñó
Trang 42Chương II: Xây dựng một CSDL trong SQL Server
Màn hình sau xuất hiện :
Nhập tên bảng,nhấp OK
Màn hình thiết kế bảng xuất
hiện :nhập thơng tin và chọn cột
làm khố chính
Trang 4362 of 100
Tạo cấu trúc bảng đơn giản
+ Tên bảng, tên cột và kiểu dữ liệu đã được mơ tả ở trên + Từ khĩa NOT NULL chỉ định khơng cho phép dữ liệu tại cột đĩ được phép bỏ trống.
Chương II: Xây dựng một CSDL trong SQL Server
Tạo cấu trúc bảng cĩ giá trị mặc định
+ Giá trị: là giá trị cụ thể sẽ được gán vào cột.
+ Hàm: là tên hàm cùng với các tham số (nếu cĩ), tuy nhiên kiểu dữ liệu mà hàm trả về phải là cùng với kiểu dữ liệu mà cột sẽ lưu trữ.
Trang 44Ví dụ 2
CREATE TABLE DONDH
( SODH CHAR(4) NOT NULL, NGAYDH DATETIME DEFAULT GETDATE(), MANHACC CHAR(3) NOT NULL
)
Chương II: Xây dựng một CSDL trong SQL Server
Cú pháp: Tạo cấu trúc bảng cĩ cột định danh
CREATE TABLE Tên_bảng
•Số bắt đầu: là số mà SQL Server sử dụng để cấp phát cho
mẫu tin đầu tiên Mặc định là 1.
•Chỉ số tăng: là chỉ số mà SQL Server cộng lên để cấp phát
cho từng mẫu tin kết tiếp Mặc định là 1.
Trang 4566 of 100
Tính tồn vẹn dữ liệu trong cơ sở dữ liệu : các ràng buộc trong SQL Server được quản lý bởI hai đốI tượng :CONSTRAINT và TRIGGER
Constraint : quản lý các ràng buộc như :
Ràng buộc dữ liệu duy nhất
Ràng buộc dữ liệu tồn tại
Ràng buộc miền giá trị
Trigger :Quản lý các ràng buộc phức tạp,liên quan đến dữ liệu trên nhiều bảng
Chương II: Xây dựng một CSDL trong SQL Server
Xây dựng các Constraint
A> Kiểm tra duy nhất dữ liệu :cĩ hai loại
• Primary Key (khố chính ) :dữ liệu khác rỗng và duy nhất
• Unique : dữ liệu cĩ thể rỗng và dữ liệu tồn tại duy nhất