Professional Documents
Culture Documents
Nội dung
Chương 1 : Tổng quan các hệ thông tin và cơ sở dữ liệu
4
3. Cơ sở dữ liệu (1)
ðịnh nghĩa:
Cơ sở dữ liệu là một hệ thống các thông tin có cấu
trúc, ñược lưu trữ trên các thiết bị lưu trữ nhằm
thỏa mãn yêu cầu khai thác thông tin ñồng thời của
nhiều người sử dụng hay nhiều chương trình ứng
dụng với những mục ñích khác nhau
ðH Sư phạm TPHCM 5
5
3. Cơ sở dữ liệu (2)
Ưu ñiểm:
Giảm trùng lắp thông tin xuống mức thấp nhất,
ñảm bảo tính nhất quán và toàn vẹn dữ liệu.
ðảm bảo dữ liệu ñược truy xuất theo nhiều cách
khác nhau.
Khả năng chia sẽ thông tin cho nhiều người, nhiều
ứng dụng khác nhau.
ðH Sư phạm TPHCM 6
6
3. Cơ sở dữ liệu
Những vấn ñề cần giải quyết:
Tính chủ quyền dữ liệu.
Tính bảo mật và quyền khai thác thông tin của
người sử dụng
Tranh chấp dữ liệu
ðảm bảo dữ liệu khi có sự cố
ðH Sư phạm TPHCM 7
7
ðH Sư phạm TPHCM 8
8
5. Hệ quản trị cơ sở dữ liệu (2)
Mộ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
ðH Sư phạm TPHCM 9
9
ðH Sư phạm TPHCM 10
10
Các Thành Phần Liên Quan
Bộ phận quản lý tập tin
.mdf : meta data file
.ldf : log data file
.bak : bakup data file
Bộ phận quản lý ñĩa
Bộ phận quản lý dữ liệu vật lý
11
12
Kiến trúc của SQL Server
13
14
Kiến trúc của SQL Server
15
Hệ thống
16
Một tập hợp các thành phần liên kết với nhau, thể hiện qua
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
17
17
Hệ thống – Ví dụ
18
Xem cửa hàng bán nước giải khát như một hệ thống:
Ranh giới
18
Hệ thống thông tin
19 Thông tin: khái niệm phản ánh sự hiểu biết của con
người về một ñối tượng
Dữ
Dữ liệu
liệu Sản
Sản xuất
xuất thống
thống tin
tin Thông
Thông tin
tin
Dữ
Dữ liệu
liệu nhập
nhập
hàng
hàng
Báo
Báo cáo
cáo tồn
tồn
Lập
Lập báo
báo cáo
cáo tồn
tồn kho
kho kho
kho
Dữ
Dữ liệu
liệu xuất
xuất
hàng
hàng
19
Hệ thống và HTTT
20
20
Câu hỏi thảo luận
Hệ 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.
21
Tóm lại
22
Chương 2 : Hệ quản trị
cơ sở dữ liệu SQL Server
1 of 100
GIỚI THIỆU TỔNG QUAN VỀ SQL SERVER
I. Tổng quan :
1. SQL SerVer laø một hệ quản trị CSDL quan
hệ
A. Cơ Sở Dữ Liệu Quan Hệ :
2 of 100
Cột ::Duø
Cột Duøng ể lưu tr
ng ññể trữữ thu ộc ttính
thuộc ính ccủa
ủa ññối
ối tượng
tượng
M ột bbảng
Một ảng phải co
phải coùù to
toáái thi ểu m
thiểu ột ccột,Thứ
một ột,Thứ ttự
ự ccột
ột
không quan tr ọng
trọng
M ột co
Một coäät co
coùù ba thuộc ttính
thuộc ính cơ bbản
ản
Length ::chiều
chiều da
daøøi ccủa
ủa ddữ
ữ liliệu
ệu
3 of 100
Tổng Quan(tt)
4 of 100
Tổng Quan(tt)
Khoa
Khoaùù Chính (Primary Key) :
Chính
Tập hhợp
Tập ợp ccủa
ủa một hay nhi
một ều ccột
nhiều ột trong bbảng
ảng
Dữ liliệu
Dữ ệu ttại
ại ccột
ột na
naøøy kha
khaùùc rrỗng
ỗng
Dữ liliệu
Dữ ệu ttại
ại ccột
ột na
naøøy la
laøø duy nhất trong bbảng
nhất ảng
5 of 100
Tổng Quan (tt)
Khoa
Khoaùù ngoại (Foreign Key) :
ngoại
T ập hhợp
Tập ợp ccủa
ủa m ột hay nhi
một nhiềuều ccột
ột trong
bbảng,maø
ảng,maø cacaùùc co
coäät na
naøøy la
laøø khoa
khoaùù ch ính ccủa
chính ủa bbảng
ảng
kha
khaùùc
DDữữ liliệu
ệu ttại
ại ca
caùùc ccột
ột na
naøøy ho ặc rrỗng,hoặc
hoặc ỗng,hoặc phải
phải
llấy
ấy ttừừ bbảng
ảng mamaøø ccột
ột la
laøøm khoa
khoaùù ch ính
chính
6 of 100
Tổng Quan(tt)
B.Hệ Qu
B.Hệ ản Tr
Quản Trịị CSDL Quan Hệ:
Hệ
La
Laøø La
Laøø m ột hhệ
một ệ th ống ca
thống caùùc chương tr ình co
trình coùù
ca
caùùc ch
chứcức năng
Tạo va
Tạo vaøø qu
quảnản ly
lyùù một CSDL Quan hhệ
một ệ
khai tha
thaùùc M ột CSDL Quan hhệ
Một ệ
B ảo m
Bảo mậtật MMộtột CSDL Quan hhệ ệ
Tạo bbảng
Tạo ảng sao (Backup) M ột CSDL Quan hhệ
Một ệ
Ph ục hhồI(Restore)
Phục ồI(Restore) M ột CSDL Quan hhệ
Một ệ
SQL Server la
laøø m ột hhệ
một ệ qu ản tr
quản trịị CSDL
Quan hhệ
ệ
7 of 100
Caùc heä thoáng SQL Server
8 of 100
9 of 100
Caùc heä thoáng SQL Server
10 of 100
A.Yeâu ccầu
ầu phần ccứng
phần ứng :
11 of 100
Caøi ðặt SQL Server
A.Yeâu ccầu
ầu phần M
phần ềm:
Mềm:
12 of 100
1. ðưa ñó a CD ch
ñóa öông tr
chöông ình va
trình vaøøo ,,maø
maøn hhình
ình sau xua
xuaáát
hie
hieään
Choïn
13 of 100
Caøi ñaët Personal Edition SQL Server(tt)
2.Ma
2.Maøøn hhình
ình sau xua
xuaáát hie
hieään
Choïn
14 of 100
3.Ma
3.Maøøn hhình
ình sau xua
xuaáát hie
hieään
Choïn
15 of 100
Caøi ñaët Personal Edition SQL Server(tt)
4.Ma
4.Maøøn hhình
ình sau xua
xuaáát hie
hieään
Choïn
16 of 100
5.Ma
5.Maøøn hhình
ình sau xua
xuaáát hie
hieään
Choïn
17 of 100
Caøi ñaët Personal Edition SQL Server(tt)
6.Ma
6.Maøøn hhình
ình sau xua
xuaáát hie
hieään
Nhaäp vaøo
teân ngöôøi
duøng
18 of 100
7.Ma
7.Maøøn hhình
ình ca
caûûnh
nh ba
baùùo xua
xuaáát hie
hieään,cho
,choïïn yes
n,cho
19 of 100
Caøi ñaët Personal Edition SQL Server(tt)
8.Ma
8.Maøøn hhình
ình ññaê
aêng nha
nhaääp xua
xuaáát hie
hieään ,,nhaä
nhaäp va
vaøøo CD
Key
20 of 100
9.Cho
9.Choïïn kie
kieååu ca
caøøi ññaë
aët
Choïn
21 of 100
Caøi ñaët Personal Edition SQL Server(tt)
10.Cho
10.Choïïn Da
Daïïng
ng ca
caøøi ññaë
aët
22 of 100
11.Cho
11.Choïïn kie
kieååu ññaê
aêng nha
nhaääp va
vaøøo SQL Server
23 of 100
Caøi ñaët Personal Edition SQL Server(tt)
12.Cho
12.Choïïn kie
kieååu ññaê
aêng nha
nhaääp va
vaøøo SQL Server
24 of 100
Nha
Nhaááp Next ññeå
eå chöông tr
chöông ình ca
trình caøøi ññaë
aët va
vaøøo ma
maùùy
Sau khi cacaøøi ññaë
aët xong,khô
xong,khôûûi ññoä
oäng
ng la
laïïi ma
maùùy, sau
khi khô
khôûûi ññoä
oäng
ng xong,tha
xong,thaááy xua
xuaáát hie
hieään bie
bieååu ttöôï
öôïng
ng
Treân thanh Status cu cuûûa Windows
25 of 100
Caùc tieän ích cuûa SQL Server
1.Tie
1.Tieään íích
ch EnterPriseManager:Ma
EnterPriseManager:Maøøn hhình ình qua
quaûûn
ly
lyùù ca
caùùc ññoá
oái ttöôï
öôïng
ng co
coùù trong SQL Server
26 of 100
27 of 100
Caùc tieän ích cuûa SQL Server
Ma
Maøøn hhình
ình sau xua
xuaáát hie
hieään
Cho
Choïïn Top Level
Group : Ta Taïïo
mo
moäät nho
nhoùùm go
goáác
Cho
Choïïn Sub -group
Sub-group
of: ta
taïïo mo
moäät
nho
nhoùùm lalaøø con cu
cuûûa
mo
moäät nho
nhoùùm khakhaùùc
Name:teân nho
nhoùùm
28 of 100
B>Ñaêng ky
B>Ñaê kyùù mo
moäät Server va
vaøøo he
heää tho
thoááng
ng :Click
chuo
chuoäät pha
phaûûi va
vaøøo SQL Server Group,cho
Group,choïïn New
SQL Server Registration
29 of 100
Caùc tieän ích cuûa SQL Server
Ma
Maøøn hhình
ình sau xua
xuaáát hie
hieään : Nha
Nhaáán Next
30 of 100
Ma
Maøøn hhình
ình sau xua
xuaáát hie
hieään : cho
choïïn Server ca
caààn ññaê
aêng
ky
kyùù,nha
nhaáán Add,sau ññoù
,nha où nha
nhaáán next
31 of 100
.Caùc tieän ích cuûa SQL Server
Ma
Maøøn hhình
ình sau xua
xuaáát hie
hieään ::Maø
Maøn hhìnhình sau xua
xuaáát hie
hieään
cho
choïïn da
daïïng
ng ke
keáát no
noáái ,,choï
choïn llöï
öïa cho
choïïn 1:
32 of 100
Ma
Maøøn hhình
ình sau xua xuaáát hie
hieään ::Nhaä
Nhaäp Login
name,PassWord ññeå eå ññaê
aêng nha
nhaääp va
vaøøo SQL
Server
Chu
Chuùù yyùù : Neâuù qua
quaùù
tr ình ca
trình caøøi ññaë
aët ôôûû
bböôù
öôùc 11 va vaøø 12
cho
choïïn nh
nhö ö treân
th
thìì :
Login name :Sa
Password :
33 of 100
Caùc tieän ích cuûa SQL Server
C>DataBases:Chöùa ca
C>DataBases:Chöù caùùc CSDL Trong SQL
Server, co
coùù 7 CSDL co
coùù sa
saúún ,,chia
chia la
laøøm 2 loa
loaïïi
35 of 100
Caùc tieän ích cuûa SQL Server
36 of 100
Ca
Caùùch
ch ññaê
aêng ky
kyùù : cho
choïïn Tab Alias nha nhaáán nu
nuùùt
Add,ma
Add,maøøn hhình
ình sau xua
xuaáát hie
hieään
Cho
Choïïn TCP/IP
Server Alias
::nhaä
nhaäp va
vaøøo nhaõn
Server name :
nha
nhaääp va
vaøøo ññòa
òa ch
chææ
IP cu
cuûûa Server
Chu
Chuùù yyùù: Tie
Tieään íích
ch na
naøøy ch
chææ ssöû
öû du
duïïng
ng trong he
heää
tho
thoááng ng ma
maïïng
ng
37 of 100
Caùc tieän ích cuûa SQL Server
Tiện íích
Tiện ch Query Enalyzer ::laø
laø ma
maøøn hhình
ình viết llệnh
viết ệnh
ccủa
ủa SQL Server
38 of 100
Tiện íích
Tiện ch Book Online ::Taø
Taøi lie
lieääu hhöôù
öôùng
ng daãn ca
caùùch
ch
ssöû
öû du
duïïng
ng SQL Server
39 of 100
Caùc tieän ích cuûa SQL Server
Tiện íích
Tiện ch Service Manager ::quaû
quaûn ly
lyùù ca
caùùc dòch vu
vuïï
lieân quan ññeá
eán SQL Server
Muo
Muoáán ssöû
öû du
duïïng
ng SQL Server pha
phaûûi khô
khôûûi ññoä
oäng
ng dòch
vu
vuïï na
naøøy
Caùc dòch vuï naøy khôûi
ñoäng baèng caùch : Start
-> Programs-
>Mcrosoft SQL
Server->Dòch vuï
40 of 100
41 of 100
Caùc tieän ích cuûa SQL Server
43 of 100
Caùc tieän ích cuûa SQL Server
M ột (CSDL) ccủa
Một ủa SQL Server llà ập
à ttập
ợp ccác
hhợp ác ññối
ối tượng
tượng
bbảng
ảng ((Table):Chứa
Table):Chứa ddữ
ữ liliệu
ệu
bbảng
ảng ảảo View):chứa ddữ
o ((View):chứa ữ liliệu
ệu llấy
ấy ttừ
ừ
B ảng
Bảng
thủ ttục
thủ ục nnội
ội ttại
ại (Stored Procedure):
Ch
Chứaứa ccác ệnh thao ttác
ác llệnh ới D
ác vvới ữ liliệu
Dữ ệu
45 of 100
Xaây döïng moät CSDL trong SQL Server
Triger Chứa ccác
Triger ::Chứa ệnh thao ttác
ác llệnh ới D
ác vvới ữ
Dữ
ệu,kiểm tra rràng
liliệu,kiểm àng bu ộc ttự
buộc ự ññộng
ộng
Constraint Chứa ccác
Constraint ::Chứa ác rràng
àng buộc ddữ
buộc ữ
ệu
liliệu
M ột CSDL do m
Một ột ho
một ặc nhi
hoặc ều ngư
nhiều ngườiời ttạo
ạo
nhưng ccó
ó th
thểể ñược nhi
ñược ều ngư
nhiều ời truy ccập
người ập
Trong SQL Server ccó
ó thể ttạo
thể ạo ñươc
32767 CSDL khác nhau
46 of 100
C ấu tr
Cấu úc lưu tr
trúc trữữ ccủa
ủa m ột CSDL :
một
M
Một ột CSDL trong SQL Server ttối ối
thi ểu ssẽẽ ddùng
thiểu ập tin vvật
ùng hai ttập ật lý ñ ể
ñể
lưu tr
trữữd dữ ữ liệu :
liệu:
M
Một ột ddùng
ùng lưu tr ữ ddữ
trữ ữ liliệu
ệu
(Data file)
M
Một ột ddùng
ùng ññểể lưu tr
trữữ ccác ết
ác vvết
giao ttác
ác (Transaction log file)
47 of 100
Xaây döïng moät CSDL trong SQL Server
48 of 100
Nhập tên
CSDL
50 of 100
52 of 100
DateTime 8 từ01/01/1753ñến31/12/99
bytes 99
SmallDateTime 4 từ01/01/1900ñến06/06/20
bytes 79
> Các kiểu dữ liệu dạng chuỗi nhị phân (Binary String)
60 of 100
61 of 100
Chöông II: Xaây döïng moät CSDL trong SQL Server
62 of 100
Cú pháp:
Tạo cấu trúc bảng có cột ñịnh danh
CREATE TABLE Tên_bảng
(
Tên_cột_1 Kiểu_dữ_liệu_số IDENTITY [(Số_bắt_ñầu,
Chỉ_số_tăng)] ,
Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] [ ,...]
)
•Trong một bảng chỉ có tối ña một cột ñược chỉ ñịnh làm
cột ñịnh danh.
•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.
65 of 100
Chöông II: Xaây döïng moät CSDL trong SQL Server
Tính toà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
66 of 100
67 of 100
Chöông II: Xaây döïng moät CSDL trong SQL Server
ðịnh nghĩa ràng buộc khoá chính :
CREATE TABLE Tên_bảng
(
Tên_cột_1 Kiểu_dữ_liệu DEFAULT Giá_trị|Hàm
,
Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] [ ,...]
[CONSTRAINT PK_Tên_bảng_TenCot
] PRIMARY
KEY (Danh_sách_cột_khóa_chính)
)
68 of 100
69 of 100
Xaây döïng moät CSDL trong SQL Server
Ví dụ :
75 of 100
Xaây döïng moät CSDL trong SQL Server
76 of 100
UNIQUE
ALTER TABLE Tên_bảng ADD [ CONSTRAINT
UQ_Tên_bảng_Tên_cột ]
UNIQUE (Danh_sách_các_cột)
77 of 100
Xaây döïng moät CSDL trong SQL Server
FOREIGN KEY
ALTER TABLE Tên_bảng
ADD [ CONSTRAINT FK_Tên_bảng_Tên_cột ]
FOREIGN KEY (Danh_sách_cột_khóa_ngoại)
REFERENCES Tên_Bảng
(Danh_sách_cột_tham_chiếu)
78 of 100
79 of 100
Xaây döïng moät CSDL trong SQL Server
80 of 100
EXEC SP_Rename
“Tên_bảng.Tên_cột”,”Tên_mới”,”COLUMN”
ðổi tên bảng
EXEC sp_rename “Tên_bảng”,”Tên_mới”
Chú ý :Muốn thay ñổi cấu trúc của cột phải xoá tất cả các Constraint liên
quan
83 of 100
BÀI 3: BÀNG Ảo(view)
1>ðịnh Nghĩa :
Bàng ào là một ñối tượng chứa câu lệnh Select lấy
dữ liệu
Từ các bảng trong csdl
Khi truy cập vào CSLD ,người sử dụng không phân
biệt ñược Bảng ảo và Bảng Thật
2> Tạo View
Create view Ten_view
As
Câu lệnh Select
84 of 100
85 of 100
Cấu trúc câu lệnh Select
Mệnh ñề Select :chứa các cột,các hàm muốn hiển thị
Nếu cột tồn tại trong hai bảng trong mệnh ñề From ta phải ghi rõ
:Tên_Bảng.Tên_Cột
Trong mệnh ñề Select ta có thể dùng cấu trúc lệnh
Case
When ñiều kiện 1 Then Giá trị 1
When ðiều kiện 2 then Giá trị 2
…
Else
Giá tri n
End
ðể hiển thị dữ liệu
Mệnh ñề from : cho biết dữ liệu trên câu truy vấn ñược lấy từ các bảng
nào
nếu dữ liệu lấy từ nhiều bảng thì các bảng này phải có quan hệ với
nhau: 86 of 100
Cú pháp :
90 of 100
92 of 100
93 of 100
Cấu trúc câu lệnh Select .. into
Select .. into : dùng tạo một bảng có cấu trúc và
dữ liệu lấy từ các bảng có trong CSDL
Cú pháp :
Select [Ten_Bang.]tenCot [,…]
From ..
94 of 100
95 of 100
Bài 4: Lập trình với SQL SerVer
I>Biến và các cấu trúc lệnh trong SQL Server
A>Biến :
1> Biến cục bộ : là biến do người lập trình khai báo,Biến có
thể ñược khai báo trong thủ tục nội tại,hàm, trong một lô
lệnh
Lô Lệnh : là tập hợp các lệnh ñược kết thúc bằng từ Go
Cú pháp khai báo biến : Declare @Tên_Biên
Kiểu_Dữ_Liệu
Tên Biến :Luôn bắt ñầu bằng ký tự @,không có khoảng trắng,ký tự
ñặt biệt,ký tự số ñứng ñầu
Gán giá trị cho biến:
Gán bằng 1 giá trị :
Set @tên_biến=giátrị/hàm
hoặc Select @tên_biến=Giátrị/hàm
Gán bằng kết quả trả về của câu truy vấn
96 of 100
99 of 100
Bài 4: Lập trình với SQL SerVer
Ví dụ : Convert(char(10),Getdate(),105)
1
Giới Thiệu
3
Chu kỳ phát triển một CSDL
5
Giai ñoạn phân tích yêu cầu của NSD
9
Mức quan niệm
10
11
Mức logic
12
Giới Thiệu
13
Mức vật lý
14
Chương 4: Lý thuyết mô
hình CSDL quan hệ
1. Giới thiệu
• Mô hình Dữ liệu Quan hệ (Relational Data
Model) dựa trên khái niệm quan hệ.
• Quan hệ là khái niệm toán học dựa trên nền
tảng hình thức về lý thuyết tập hợp.
• Mô hình này do TS. E. F. Codd ñưa ra năm
1970.
ðH Sư phạm TPHCM 2
2
2.1 Thuộc tính (attribute)
• Thuộc tính:
• Tên gi: dãy ký tự (gợi nhớ)
• Kiu d liu: Số, Chuỗi, Thời gian, Luận lý, OLE.
• Min giá tr: tập giá trị mà thuộc tính có thể nhận. Ký
hiệu miền giá trị của thuộc tính A là Dom(A).
• Ví dụ:GIOITINH kiểu dữ liệu là Chuỗi,miền giá trị
Dom(GIOITINH)=(‘Nam’,’Nu’)
Tại một thời ñiểm, một thuộc tính không có giá trị
hoặc chưa xác ñịnh ñược giá trị => giá trị Null
ðH Sư phạm TPHCM 3
3
ðH Sư phạm TPHCM 4
4
2.3 Bộ (tuple)
• ðịnh nghĩĩa: Bộ là các thông tin của một ñối
tượng thuộc quan hệ, ñược gọi là mẫu tin
(record), dòng.
• Quan hệ là một bảng (table) với các cột là các
thuộc tính và mỗi dòng ñược gọi là bộ.
• Một bộ của quan hệ Q ( A1 , A 2 ,..., A n ) là q = ( a1 , a 2 ,..., a n )
với ∀ a i ∈ Dom ( Ai )
• ðịnh nghĩĩa: thể hiện của một quan hệ là tập hợp các
bộ giá trị của quan hệ tại một thời ñiểm.
• Ký hiệu: thể hiện của quan hệ Q là TQ
• Ví dụ: THOCVIEN là thể hiện của quan hệ HOCVIEN
tại thời ñiểm hiện tại gồm có các bộ như sau:
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
ðH Sư phạm TPHCM 6
6
2.5 Tân từ
• ðịnh nghĩĩa: tân từ là một quy tắc dùng ñể mô
tả một quan hệ.
• Ký hiệu: ||Q||
• Ví dụ: THI (Mahv, Mamh, Lanthi, Diem)
• ||THI||: mỗi học viên ñược phép thi một môn
học nhiều lần, mỗi lần thi lưu trữ học viên
nào thi môn gì? lần thi thứ mấy? và ñiểm là
bao nhiêu?
ðH Sư phạm TPHCM 7
7
HOCVIEN
10
10
2.6 Phép chiếu (4)
HOCVIEN
ðH Sư12
phạm TPHCM 12
2.6 Phép chiếu (6)
• Phép chiếu 1 bộ lên 1 tập thuộc tính
• tập thuộc tính X={Hoten, Gioitinh}
• hv2[X] = (‘Tran Ngoc Han’,’Nu’)
HOCVIEN
14
2.7 Khóa
2.7.1 Siêu khóa (super key)
2.7.2 Khóa (key)
2.7.3 Khóa chính (primary key)
2.7.4 Khóa tương ñương
2.7.5 Khóa ngoại (foreign key)
ðH Sư phạm TPHCM 15
15
ðH Sư phạm TPHCM 16
16
2.7.1 Siêu khóa (super key) (2)
• Ví dụ: các siêu khóa của quan hệ HOCVIEN là:
{Mahv};{Mahv,Hoten};{Hoten};{Noisinh,Hoten}
…
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
K1105 Tran Minh Long Nam TpHCM K11
K1106 Le Nhat Minh Nam TpHCM K11
ðH Sư phạm TPHCM 17
17
ðH Sư phạm TPHCM 18
18
2.7.2 Khóa (key) (2)
ðH Sư phạm TPHCM 20
20
2.7.4 Khóa tương đương
• Các khóa còn lại (không ñược chọn làm khóa
chính) gọi là khóa tương ñương.
• Ví dụ: trong hai khóa {Mahv},{Hoten} thì
khóa chính là {Mahv}, khóa tương ñương là
{Hoten}
ðH Sư phạm TPHCM 21
21
HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop)
ðH Sư phạm TPHCM 23
23
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
LOP
Malop Tenlop Trglop Siso Magvcn
GIANGDAY(MALOP,MAMH,MAGV,HOCKY, NAM,TUNGAY,DENNGAY)
Tân từ: mỗi học kỳ của năm học sẽ phân công giảng dạy: lớp nào học môn gì do
giáo viên nào phụ trách.
ðH Sư phạm TPHCM 26
26
Câu hỏi và Ôn tập
Kết quả khảo sát hiện trạng hệ thống quản lý nhân sự tiền lương tại
một doanh nghiệp thu thập ñược các thông tin sau:
• Mỗi nhân viên có một mã nhân viên duy nhất, và có họ tên, ngày tháng
năm sinh và ñược lãnh lương theo hệ bậc lương của mình. ðồng thời
một nhân viên thì chỉ thuộc biên chế của một và chỉ một phòng ban. Ví
dụ: Nhân viên tên A có mã số NV1 thuộc biên chế phòng Tổng Hợp
(với mã phòng TH) sinh năm 1986 lãnh lương chuyên viên chính.
• Thông tin cần quản lý về phòng ban bao gồm: tên phòng ban, mã
phòng ban và số lương nhân viên và người trưởng phòng.Ví dụ: phòng
Tổng Hợp có mã TH, số lượng nhân viên là 5 có trưởng phòng là Nhân
Viên A.
• Mức lương gồm tên, số tiền và mô tả yêu câu công việc. Ví dụ: Mức
lương chuyên viên chính là 2,5 triệu VNð, cần tối thiểu 5 năm kinh
nghiệm.
롈 Vẽ Lược ñồ CSDL Nhân Sự Tiền Lương nói trên
27
28
Phụ thuộc hàm
29
30
Phụ thuộc hàm
31
32
Phụ thuộc hàm
33
34
Phụ thuộc hàm
35
36
Phụ thuộc hàm
37
38
Phụ thuộc hàm
39
BD ???
EG {B D E G}
Theo luat D
Theo luat BE C {B D E G C}
Theo luat BC D, CG
BD, CE
AG {B D E G C A G}
40
Phụ thuộc hàm
41
42
Phụ thuộc hàm
43
44
Phụ thuộc hàm
45
46
Phụ thuộc hàm
47
48
Phụ thuộc hàm
49
50
Phụ thuộc hàm
51
52
Phụ thuộc hàm
53
54
Phụ thuộc hàm
55
56
Phụ thuộc hàm
57
58
Phụ thuộc hàm
59
60
Phụ thuộc hàm
61
62
Phụ thuộc hàm
63
64
Phụ thuộc hàm
65
66
Phụ thuộc hàm
67
68
Phụ thuộc hàm
69
70
Phụ thuộc hàm
71
Lược ñồ cơ sở dữ liệu:
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)
Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City)
Supply (Snum, Pnum, Deptnum, Quan)
CUSTOMER relation
Multivalued attribute
becomes a separate
relation with foreign key
Biến ñổi mối liên kết một ngôi có lượng số một - một
Biến ñổi ERD thành các quan hệ
Biến ñổi mối liên kết hai ngôi có lượng số một - một
Biến ñổi mối liên kết một ngôi có lượng số một - nhiều
Biến ñổi mối liên kết hai ngôi có lượng số một - nhiều
Biến ñổi ERD thành các quan hệ
Qui tắc 5: Biến ñổi mối liên kết 1-ngôi hoặc 2-ngôi có
lượng số nhiều-nhiều thành một quan hệ.
Quan hệ chứa các khóa của các kiểu thực thể tham
gia vào mối liên kết.
Khóa của quan hệ gồm cả hai khóa của hai kiểu
thực thể.
Thuộc tính của quan hệ là thuộc tính của mối liên
kết.
Bill-of-materials
relationships
(M:N)
Biến ñổi mối liên kết một ngôi có lượng số nhiều - nhiều
Biến ñổi ERD thành các quan hệ
The Supplies
relationship will need
to become a separate
Composite primary key relation
New intersection
Foreign key relation
Foreign key
Biến ñổi mối liên kết hai ngôi có lượng số nhiều - nhiều
Dạng chuẩn 1
ðịnh nghĩa
Quan hệ R ở dạng chuẩn 1 (1NF - First Normal
Form) nếu mọi thuộc tính của R ñều chứa các giá trị
nguyên tố (atomic value), giá trị này không là một
danh sách các giá trị hoặc các giá trị phức hợp
(composite value).
Các thuộc tính của quan hệ R
Không là thuộc tính ña trị (multivalued attribute).
Không là thuộc tính phức hợp (composite attribute).
Dạng chuẩn 1
R
Mãsv Họtên Mãlớp Tênlớp ðiểmthi
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Dạng chuẩn 1
R
Mãsv Họtên Mãlớp Tênlớp Mônhọc ðiểm
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Quan hệ R ở 1NF vì các thuộc tính của R không là thuộc tính ña trị,
không là thuộc tính phức hợp.
Dạng chuẩn 1
Các bất thường của quan hệ ở 1NF
Thêm vào
Không thể thêm thông tin của sinh viên mới có mã là S4,
tên là Thành, thuộc lớp có mã là L1 nếu sinh viên này
chưa ñăng ký học môn học nào cả.
Cập nhật
Sửa tên của sinh viên có tên là Tiến với tên mới là
Thành sẽ phải sửa tất cả các hàng của sinh viên này.
Xóa bỏ
Xóa thông tin sinh viên S3 ñăng ký môn học M1 sẽ làm
mất thông tin của sinh viên này.
Nguyên nhân
Tồn tại thuộc tính không khóa phụ thuộc hàm riêng
phần vào khóa.
Dạng chuẩn 2
ðịnh nghĩa
Quan hệ R ở dạng chuẩn 2 (2NF - Second Normal
Form) nếu R ở dạng chuẩn 1 và mọi thuộc tính
không khóa ñều phụ thuộc hàm ñầy ñủ vào mọi
khóa của R.
Dạng chuẩn 2
R
Mãsv Họtên Mãlớp Tênlớp Mônhọc ðiểm
S1 Tiến L1 MT01 M1 9
S1 Tiến L1 MT01 M2 7
S1 Tiến L1 MT01 M3 8
S2 Trúc L1 MT01 M1 9
S2 Trúc L1 MT01 M2 8
S3 Hiền L2 MT02 M1 5
Dạng chuẩn 2
R1 R2
Dạng chuẩn 3
ðịnh nghĩa
Quan hệ R ở dạng chuẩn 3 (3NF- Third Normal
Form) nếu R ở dạng chuẩn 1 và mọi thuộc tính
không khóa ñều không phụ thuộc bắc cầu vào một
khóa của R.
Dạng chuẩn 3
R1
Dạng chuẩn 3
R11 R12
Lược ñồ quan hệ R11 và R12 ñều ở 3NF vì các thuộc tính không
khóa ñều không phụ thuộc bắc cầu vào khóa.
Ngôn ngữ SQL
Ngôn ng truy v
n có c
u trúc (SQL -Structured Query
Language) là một ngôn ngữ chuẩn ñược dùng ñể tạo
lập và truy vấn các cơ sở dữ liệu quan hệ.
SQL là một ngôn ngữ chuẩn cho các hệ quản trị CSDL
quan hệ (RDBMS - Relational DBMS).
Chương 5: Thiết Kế
CSDL Mức Quan Niệm
1
Nội Dung Chính
2
2
3
3
Quan hệ phổ quát
• Quan hệ phổ quát: nền tảng của nghiên cứu mô hình
quan hệ và phụ thuộc dữ liệu vào thiết kế CSDL
• Khái niệm:
• Mỗi CSDL ứng dụng ñều có thể mô hình bằng
một quan hệ duy nhất, gọi là quan hệ phổ quát ký
hiệu U.
• Quan hệ phổ quát chứa tất cả thuộc tính của các
quan hệ trong csdl ứng dụng.
• Nếu csdl có Qi quan hệ với i=1..n thì
• U+ = Q1+ U Q2+ .. U Qn+
• Qi = U[Qi+]
4
4
5
5
Ví dụ Quan hệ phổ quát
6
6
U(Ma_DH,Ngay_DH,Ngay_TK,Luong_Dat,Luong_Gia
o,Ma_HG)
7
7
Ví dụ Quan hệ phổ quát
8
8
9
9
Cơ chế khóa
kiểm tra phụ thuộc hàm
10
10
11
11
Cơ chế kiểm tra phụ thuộc hàm
12
12
13
13
Mục tiêu của Thiết Kế CSDL
14
14
15
15
Các dạng chuẩn
16
16
17
17
Các dạng chuẩn
Quan hệ CHUAN1
Nhân xét sự trùng lắp thông tin và khó khăn khi cập nhật dữ liệu.
18
18
19
19
Các dạng chuẩn
• Dạng chuẩn 2: một quan hệ ở dạng chuẩn 2 khi các
thuộc tính không khóa phụ thuộc hoàn toàn (ñầy ñủ)
vào khóa.
• Xét quan hệ CHUAN1 ở slide trước:
Khóa: Emp_ID và Prj_ID
Thuộc tính không khóa: Emp_Name, Post_Code,
Post_Name, Prj_Name, Time, Prj_Type
Prj_ID Prj_Name. Vậy Prj_Name chỉ phụ
thuộc một phần vào khóa.
Vì vậy quan hệ này chưa ñạt chuẩn 2
20
20
E2 B 058 NT E2 P1
E3 C 08 HCM E1 P2
E3 P3
Prj_ID Prj_name Time Prj_Type
P1 P_A 2008 IT
P1 P_A 2008 IT
P2 P_B 2009 FA
P3 P_C 2009 HR
21
21
Các dạng chuẩn
• Dạng chuẩn 3: một quan hệ ở dạng chuẩn 3 khi các
thuộc tính không khóa phụ thuộc hoàn toàn (ñầy ñủ)
và không phụ thuộc bắc cầu vào khóa.
• Xét quan hệ CHUAN2 ở slide trước:
Thuộc tính không khóa Post_Name phụ thuộc bắc
cầu vào khóa Emp_ID:
Emp_ID Post_Code
Post_Code Post_Name
Vậy chưa ñạt chuẩn 3, phải tiếp tục tách bảng ñể
giảm trùng lắp thông tin.
22
22
E2 B 058 E2 P1
E3 C 08 E1 P2
E3 P3
Prj_ID Prj_name Time Prj_Type
P1 P_A 2008 IT
Post_Code Post_Name
058 NT
P1 P_A 2008 IT
08 HCM
P2 P_B 2009 FA
P3 P_C 2009 HR
23
23
Thiết kế ở mức logic
CAÂU 1
Cho bieát ñoái töôïng
ng user naøo thöïc hieän caùc
chöùc naêng sau trong Heä thoáng ng chi traû
cuûa 1 coâng ty:
a) Vieát 1 chöông trình ñeå taïo vaø in caùc
hoùa ñôn
b) Thay ñoåi ñòa chæ trong CSDL
1
CAÂU 2
Moät coâng ty, trong ñoù Teân vaø Ñòa chæ
khaùch
ch haøng
ng ñöôïc löu trong 1 CSDL cuûa
Boä phaän baùn haøng
ng vaø 1 CSDL khaùc cuûa
Boä phaän hoùa ñôn. Hoûi söï dö thöøa döõ
lieäu naøy vaãn ñeán vaán ñeà thieáu nhaát
quaùn nhö theá naøo?
o?
CAÂU 3
User seõ duøng
ng ngoân ngöõ naøo (moâ taû, thao
taùc,
c, truy vaán,
n, quaûn lyù) ñeå thöïc hieän:
n:
a) Ñieàu chænh ñòa chæ khaùch ch haøng
ng
b) Ñònh nghóa Baûng ng Haøng
ng toàn kho
c) Nhaäp thoâng tin cho nhaân vieân môùi
3
CAÂU 4
User seõ duøng
ng ngoân ngöõ naøo (moâ taû, thao
taùc,
c, truy vaán,
n, quaûn lyù) ñeå thöïc hieän:
n:
a) Caäp nhaät ñieåm trung bình cho sinh vieân
CAÂU 1
Cho quan heä Q (ABC)
A B C
1 4 2
3 5 6
3 4 6
7 3 8
9 1 0
CAÂU 3
Cho quan heä Q (ABCD) vôùi taäp phuï
thuoäc haøm F = { A → B, BC → D }
Hoûi caùc phuï thuoäc haøm sau coù ñöôïc
suy dieãn töø F khoâng (chöùng
ng minh):
a) AC → D
b) B→D
c) AD → B
3
CAÂU 4
Cho quan heä Q (ABC)
A B C
f e e
d e e
b c e
a c d
a b c
CAÂU 5
Cho quan heä Q(ABCDEGH)
Cho F = { AB → D, B → C, DC → E,
DE → GH, G → A }
CMR: AB → Q+ ∈ F+
5
CAÂU 6
Cho quan heä Q(ABCD)
Cho F = { AB → C, C → D, D → A }
Tìm khoùa
CAÂU 7
Cho quan heä Q(ABC)
Cho F = { AB → C, B → D, D → B }
Tìm khoùa
7
CAÂU 8
Cho quan heä Q(XYZWP)
Cho F = { Y → Z, Z → Y, Z → W, Y → P }
Tìm khoùa
CAÂU 9
Cho quan heä Q(ABCDEG)
Cho F = { EC → B, AB → C, EB → D,
BG → A, AE → G }
Tìm khoùa
9
CAÂU 10
Cho quan heä Q(ABCDEH)
Cho F = { AB → C, CD → E, EC → A,
CD → H, H → B }
Tìm khoùa
10
CAÂU 11
Cho taäp phuï thuoäc haøm
F = { X → YZ, ZW → P, P → Z, W → XPQ,
XYQ → YW, WQ → YZ }
Tìm phuû toái thieåu
11
CAÂU 12
Cho taäp phuï thuoäc haøm
F = { X → Y, Y → X, Y → Z,
Z → Y, X → Z, Z → X }
Tìm phuû toái thieåu
12
CAÂU 13
Cho taäp phuï thuoäc haøm
F = { X → YW, XW → Z, Z → Y, XY → Z }
Tìm phuû toái thieåu
13
CAÂU 14
Cho quan heä
GIAÛNG_DA
NG_DAÏY ( MS_CBGD, MS_MOÂNHOÏC, C,
TEÂN_CBGD, HOÏCHA
CHAØM,
M, MAÕLÔÙP,
P, SOÁSV
SV )
F = { MS_CBGD → TEÂN_CBGD,
MS_CBGD → HOÏCHA
CHAØM,
M,
MS_CBGD, MS_MOÂNHOÏC → SOÁSV,
SV,
MS_MOÂNHOÏC → HOÏCHA
CHAØM,
M, MAÕLÔÙP }
Tìm khoùa
14