1. Trang chủ
  2. » Công Nghệ Thông Tin

toàn tập bài giảng môn cơ sở dữ liệu full

159 544 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 159
Dung lượng 2,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hệ quản trị cơ sở dữ liệuMột hệ quản trị cơ sở dữ liệu Database Management System, viết tắt là DBMS là một tập hợp các chương trình cho phép người dùng định nghĩa, tạo lập, bảo trì các

Trang 1

Cơ sở dữ liệu

Cung cấp những kiến thức cơ bản về nguyên lý tổ chức và khai

Cung cấp và rèn cho sinh viên khả năng thiết kế (logic) một hệ

Thực hành cài đặt các ràng buộc toàn vẹn và tối −u hóa biểu thức

tìm kiếm trên SQL Server

Trang 2

Tµi liÖu tham kh¶o

Trang 3

4 §ç Trung TuÊn, C¬ së d÷ liÖu quan hÖ, NXB Gi¸o dôc,

1998

Tµi liÖu tham kh¶o

5 Date C.J.,An introduction to database systems, seventh editi on,

Trang 4

Management ", Second Edition, Addison Wesley Longman Lim ited

Trang 5

(operational data) của một tổ chức

nhiều người dùng với các mục đích khác nhau

Tại sao cần đến các hệ CSDL

HÖ qu¶n trÞ c¬ së d÷ liÖu lµ g×?

Trang 6

Phần mềm cho phép người dùng giao

tiếp với CSDL, cung cấp môi trường

thuận lợi và hiệu quả để tìm kiếm

lưu trữ thông tin của CSDL

Mục đích : sự tách biệt quan niệm về

CSDL của nhiều người sử dụng với

những chi tiết biểu diễn về vật lý của

Trang 8

Độc lập dữ liệu mức vật lý

Lược đồ trong

Trang 10

Enterprise Database – wide-area

network (hundreds or thousands of

Trang 12

Hồ Cẩm Hà - ĐH Sư phạm Hà nội 12

Workgroup database with local area network

Trang 13

Hồ Cẩm Hà - ĐH Sư phạm Hà nội 13

An enterprise

data

warehouse

Trang 14

Hồ Cẩm Hà - ĐH Sư phạm Hà nội 14

CASE Tools – computer-aided software engineering

Repository – centralized storehouse of metadata

Database Management System (DBMS) – software

for managing the database

Database – storehouse of the data

Application Programs – software using the data

User Interface – text and graphical displays to users

Data Administrators – personnel responsible for

maintaining the database

System Developers – personnel responsible for

designing databases and software

Trang 15

End Users – people whoẩuse - theưapplications 15databases

Trang 20

6 Hệ quản trị cơ sở dữ liệu

Một hệ quản trị cơ sở dữ liệu ( Database Management System, viết tắt là DBMS) là một tập hợp các chương trình cho phép

người dùng định nghĩa, tạo lập, bảo trì các CSDL và cung cấp

các truy cập có điều khiển đến các CSDL này

(c)Các kiểm soát, các điều khiển đối với việc truy cập vào CSDL

Trang 21

6.Database Management System

resources like an operating system manages hardware resources

Trang 22

Ngôn ngữ định nghĩa dữ liệu (DDL):

Cho phép người dùng định nghĩa CSDL: cho phép

người dùng đặc tả các kiểu và các cấu trúc dữ liệu,

đặc tả các ràng buộc trên các dữ liệu lưu trữ trong CSDL.

Cấu trúc lưu trữ và các phương pháp truy cập của hệ CSDL

xác định

Trang 23

Ngôn ngữ thao tác dữ liệu (DML)

Tìm kiếm thông tin lưu trữ trong CSDL;

Chèn thêm thông tin mới vào CSDL;

Xoá bỏ thông tin khỏi CSDL;

Sửa đổi thông tin được lưu trữ trong CSDL.

Tính thủ tục/phi thủ tục (procedure/nonprocedure)

Trang 24

Các kiểm soát, các điều khiển đối với việc

liệu

Trang 25

ChÊt l−îng DBMS

VÒ c¬ b¶n hÖ qu¶n trÞ CSDL cung cÊp c¸c ph−¬ng tiÖn nªu

Trang 26

Vài nét về quá trình phát triển DBMSs

1960: Một trong những hệ quản trị đầu tiên là IMS (Information

Management System) của hãng IBM (mô hình dữ liệu phân cấp)

đời đánh dấu sự xuất hiện đầu tiên của một hệ quản trị CSDL dựa

của hãng IBM mang tên System-R ra đời Từ những năm 1980

Từ những năm 1990, bắt đầu xây dựng DBMS kiểu hướng đối

Trang 27

Evolution of DB Systems

Flat files - 1960s - 1980s Hierarchical – 1970s - 1990s Network – 1970s - 1990s

Relational – 1980s - present Object-oriented – 1990s - present Object-relational – 1990s - present Data warehousing – 1980s -

present Web-enabled C–m 1990s phạ present 28

ồ ẩ Hà - ĐH Sư - m Hà ộiH

Trang 28

(6) Cung cÊp c¸c dÞch vô b¶n quyÒn

ẩ Hà - ạ Hà iHồ m

ĐH ư ph

Trang 29

C¸c chøc n¨ng cña mét hÖ qu¶n trÞ

CSDL ( tiÕp )

Trang 30

KiÕn tróc cña mét hÖ qu¶n trÞ CSDL

Trình ứng dụng Truy vấn Lược đồ cơ sở

dữ liệu

DBMS

Bộ tiền xử lí ngôn ngữ thao tác dữ liệu

Bộ xử lí truy vấn Chương trình

dịch ngôn ngữ khai báo dữ liệu

Mã chương trình Bộ quản lí cơ sở

dữ liệu

Bộ quản lí từ điển

Phương thức truy cập

Bộ đệm của hệ thống

Trang 31

Trình kiểm tra

tính toàn vẹn

Trình quản lý quyền truy cập

Trình xử lý câu lệnh

Trình quản lý các giao tác

Trình tối ưu hóa câu hỏi

Trang 32

Hoạt động của một chương trình ứng dụng

thông qua các thành phần của DBMS

Vựng đệm 1àm việc của chương trỡnh ứng dụng A

10 Chươngứng dụng A trỡnh a Lược(External đồ ngoài

việc của hệ quản trị cơ sơ

Trang 33

S¬ l−îc vÒ c¸c kiÕn tróc hÖ qu¶n trÞ

CSDL ®a ng−êi dïng

H×nh 1.11 KiÕn tróc hÖ xö lý tõ xa (teleprocessing)

Trang 34

LAN Trạm làm việc 3 Cỏc tệp được gửi về trạm làm việc

File-server Cơ sở dữ liệu

Hình 1.12 Kiến trúc tệp-máy chủ (file - server)

QTCSDL cần đến Tuy nhiên các ứng dụng và hệ QTCSDLchạy trên mỗi trạm làm việc (workstation) và yêu cầu các

ồ Cẩm Hà - H S phạHàĐ

ư m

Trang 35

Dữ liệu được chọn gửi về mỏy khỏch

Máy chủ Cơ sở dữ liệu(với DBMS)

C ác tiến trình tương tác với nhau tạo nên hệ thống: tiến trình máy khách yêu cầu cung

cấp tài nguyên nào đó và tiến trình máy chủ cung cấp tài nguyên đó Hai tiến trình này

không nhất thiết phải nằm trên cùng một máy tính.

Trang 36

Kiến trúc máy khách-máy chủ (client - server)

Khả năng truy cập rộng rãi đến các CSDL.

Nâng cao khả năng thực hiện: nếu tiến trình server và các tiến trình client ở trên các máy tính khác nhau thì các CPU khác nhau có thể cùng chạy song song, mỗi CPU thực hiện tiến trình của nó.

Chi phí cho phần cứng có thể được giảm do chỉ cần server có cấu hình đủ mạnh để

lưu trữ và quản trị cơ sở dữ liệu.

Chi phí cho truyền thông được giảm do một phần trong các thao tác của ứng dụng

được giải quyết trên client, truyền thông trên mạng chỉ gồm: yêu cầu về truy cập cơ

sở dữ liệu của client gửi đến server và dữ liệu kết quả từ server gửi cho client.

Nâng cao được khả năng đảm bảo tính nhất quán của dữ liệu Server có thể kiểm

soát được tính toàn vẹn bởi các ràng buộc này được định nghĩa và kiểm tra chỉ tại

đó.

Kiến trúc này phù hợp với việc xây dựng các hệ thống có tính mở.

Trang 37

Vai trß cña con ng−êi trong hÖ CSDL

Trang 38

Tãm t¾t ch−¬ng 1

Kh¸i niÖm CSDL, hÖ qu¶n trÞ CSDL

Trang 39

Xin cảm ơn !

CƠ SỞ DỮ LIỆU QUAN HỆ

Trang 41

Như vậy quan hệ r là một tập hợp các n_bộ có dạng

Trang 42

Hồ Cẩm Hà Chương 2

Ví dụ

Trang 43

Hồ Cẩm Hà Chương 2

Lược đồ quan hệ (Relation scheme)

R = <Ω , F >

F là tập các điều kiện giữa các thuộc tính(ràng buộc toàn vẹn)

Trang 44

Hồ Cẩm Hà Chương 2

Với lược đồ quan hệ R, theo thời gian, nhiều quan hệ có cấu trúc và ràng buộc toàn vẹn được mô tả bởi lược đồ này Mỗi quan hệ như vậy còn được gọi là một thể hiện của lược đồ R.

ký hiệu r(R)

ký hiệu t[X], t[Ai] với X ⊆ Ω

Trang 45

Hồ Cẩm Hà Chương 2

Các tính chất đặc trưng của một quan hệ

Một quan hệ có một tên phân biệt với tên các quan hệ khácMỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố

Mỗi thuộc tính trong quan hệ có một tên phân biệt

Các giá trị của một thuộc tính thuộc cùng một miền

Trang 46

Các bộ trong quan hệ là phân biệt, nghĩa là không có hai

bộ giống hệt nhau trong một quan hệ

Thứ tự các bộ không quan trọng về mặt lý thuyết

Trang 47

Hồ Cẩm Hà Chương 2

Ví dụ

Trang 49

Hồ Cẩm Hà Chương 2

Khóa của quan hệ

h

này sao cho mọi tập con thực sự của nó không là siêu khóa

Trang 50

Hồ Cẩm Hà Chương 2

Khóa dự tuyển (candidate key)

Khóa chính (primary key)

thuộc tính khóa, thuộc tính không khóa

Khóa ngoài của một lược đồ quan hệ là một tập hợp gồm một hay nhiều thuộc tính là khóa của một lược đồ quan hệ khác

Trang 51

Hồ Cẩm Hà Chương 2

Trang 53

Các thao tác cập nhật dữ liệu trên

Phép thêm bộ (Insert)

INSERT <NHAN-VIEN; “Nguyễn Hương”, ”Lan”, “943775”,

INSERT <NHAN-VIEN; “Nguyễn Hương”, ”Lan”, “943775”,

Trang 54

Các thao tác cập nhật dữ liệu trên

Trang 55

Các thao tác cập nhật dữ liệu trên

Phép sửa đổi (Update)

MODIFY <NHAN-VIEN; MSNV=”123456”; LUONG = 4000>

Trang 56

Tãm t¾t ch−¬ng 2

lược đồ quan hệ (cấu trúc của quan hệ và các ràng buộc)

quan hệ là một bảng với tất cả các bộ đang tồn tại trong đó, bảng này là một thể hiện của lược đồ quan hệ.

siêu khóa là một tập thuộc tính xác định các bộ một cách duy nhất trong quan hệ.

khóa dự tuyển là các siêu khóa nhỏ nhất.

bộ.

hệ có vai trò làm khóa dự tuyển trong một quan hệ khác.

Ràng buộc toàn vẹn: thực thể, tham chiếu, ngữ nghĩa

Trang 57

Xin cảm ơn !

Trang 58

C h−¬ng 3

Ngôn ngữ thao tác dữ liệu

Trang 59

ngữ bậc cao được sử dụng để thao tác trên các quan hệ.

hợp và đặc trưng)

Phép hợp: r ∪s = {t t∈r hoặc t∈s}

Trang 65

Khái niệm ” xếp cạnh nhau ”:

Cho bộ p =( p1, p2 , , pn ) và bộ q =( q1, q2 , , qm ) Xếp cạnh nhau của p và q :

Trang 66

r Ai θ Bj s = {(t, u)/ t r, u s và t[Ai] θ u[Bj]}

Trường hợp θ là “=” gọi là kết nối bằng

kết nối tự nhiên sử dụng kí hiệu r * s (hoặc r ⋈ s )

Trang 67

kết nối tự nhiên sử dụng kí hiệu r * s (hoặc r ⋈ s )

Ví dụ

NHA_CUNG_CAP * CUNG_UNG

Các phép toán đặc biệt trên quan hệ

Phép kết nối nửa (semi join)

Trang 68

r ⊲F s = ΠA(r ⋈ F s )

Ví du

CUNG_UNG ⊲ F SAN_PHAM

với F là điều kiện:

(CUNG_UNG.MA_SP = SAN_PHAM.MA_SP) AND (SOLUONG>1500).

Các phép toán đặc biệt trên quan hệ

Phép kết nối ngoài trái (left outer join)

Trang 69

kết nối ngoài phải (right outer join)

(Đọc tài liệu)

Trang 71

< các thuộc tính cơ sở để gộp nhóm> f <danh sách hàm kết tập> ( r)

Trang 72

không phải là một đại lượng vô hướng kể cả khi nó chỉ gồm

bỏ khỏi nhóm khi thực hiện một hàm kết tập

khác

Dùng các biểu thức đại số quan hệ

biểu diễn câu hỏi

Câu

hỏi 1

Tìm tên của dự án có mã số D4

Trang 73

hỏi 2 ΠTEN_DA(σ(MA_DA=”D4” )(DU_AN))

Cho biết họ tên và lương của những nhân viên làm việc ở phòng “Nghiên cứu và phát triển”.

ΠHOTEN, LUONG (NHAN_VIEN*

(ΠMA-DV (σ(TEN-PHONG=”Nghiên cứu và phát triển ) (PHONG))))

Dùng các biểu thức đại số quan hệ

biểu diễn câu hỏi

Câu

hỏi 3

Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy cho biết mã

số dự án, đồng thời cho biết họ tên, ngày sinh của trưởng phòng quản lý

Trang 74

dự án này.

KQTG ← ( ΠMA-DA, MA-DV( σ (DIA-DIEM-DA=”TT Khí tượng thủy văn HN’ )(DU_AN))

KETQUA ← ΠMA-DA,HO-TEN, NG-SINH(NHAN_VIEN⋈ MA-NV=MA-TP (PHONG*KQTG))

Dùng các biểu thức đại số quan hệ

biểu diễn câu hỏi

Câu

hỏi 4

Tìm tên những nhân viên làm việc cho tất cả các dự án do phòng có mã

Trang 75

số P4 quản lý.

ΠHO-TEN(( ΠMANV,MA-DA(CHAM_CONG)÷

Π MA-DA ( σ (MA-DV=P4) (DU_AN)))*NHAN_VIEN).

Dùng các biểu thức đại số quan hệ

biểu diễn câu hỏi

Câu

hỏi 5

Tìm mã số những dự án có sự tham gia của một người là lãnh đạo phòng trực tiếp quản lý dự án này.

Trang 76

KQTG ← ΠMA-DA,MA-DV(DU_AN) * ΠMA-DV, MA-TP(PHONG)

KETQUA ← KQTG ⋈ ((KQTG.MA-DA=CHAM_CONG.MA-DA) AND (KQTG.MA-TP=CHAM_CONG.MA-NV))

Trang 77

liệu quan hệ.

Cơ sở toán học của phép tính quan hệ là logic tân từ cấp một

Có hai loại: ngôn ngữ tân từ biến bộ và ngôn ngữ tân từ biếnmiền

(Tuple relational calculus)

Một câu hỏi đơn giản trong ngôn ngữ tân từ

Trang 78

biến bộ có dạng

{ t  ĐK( t ) }

(Tuple relational calculus)

{ t  NHÂN_VIÊN ( t ) AND t LUONG > 1700 000}

Trang 79

{t.HO_TEN, t.MA_DANHÂN_VIÊN(t) AND t.LUONG > 1700 000}

Một cách tổng quát, một biểu thức của phép tính biến bộ có

Trang 80

{ti.A1, tj.A2,…, tk.An ĐK (t1, t2,…, tn, tn+1, tn+2, …, tn+m)}

Công thức của phép tính biến bộ được tạo nên từ các công thức nguyên

tố Một công thức nguyên tố thuộc một trong những dạng sau:

Trang 81

(1) r(t) nói một cách khác đó là phát biểu (t ∈ r).

(2) ti.A θ tj.B

(3) ti.A θ c

Mỗi công thức nguyên tố sẽ nhận một trong hai giá trị TRUE

và FALSE đối với một tổ hợp các bộ (giá trị chân lý)

Các công thức nguyên tố tạo nên công thức của phép tính bộtheo các luật:

Trang 82

(L1) Mỗi công thức nguyên tố là một công thức

(L2) F, F1, F2 là công thức thì (F1 AND F2), (F1 OR F2), NOT(F) là công thức (L3) F là một công thức thì ( ∃ t )(F) với t là một biến bộ cũng là một công thức (L4) F là một công thức thì ( ∀ t)(F) với t là một biến bộ cũng là một công thức

Ví dụ Câu

hỏi 1

Trang 84

{t.HO_TEN, t.LUONG ∃u

Ví dụ Câu

hỏi 3

Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy

Trang 85

cho biết mã số dự án, đồng thời cho biết họ tên trưởng phòn g

quản lý dự án này

Ví dụ Câu

hỏi 4

Trang 86

Tìm tên những nhân viên làm việc cho tất cả các dự

án do phòng có mã số P4 quản lý

Trang 87

Tìm mã số của những dự án có sự tham gia của một người làlãnh đạo của phòng trực tiếp quản lý dự án này.

Luật chuyển đổi công thức tương đương

liên quan đến các lượng từ

Trang 88

(∀x) (P(x) AND Q(x)) ≡ (∃ x))(NOT(P(x)) OR NOT(Q(x)))

Trang 89

Tìm tên của dự án có mã số D4

{tenX  ∃ diadiemX ∃ ma_dvX

(DU_AN(“D4”,tenX, diadiemX, ma_dvX))}

Trang 90

Cho biết họ tên và lương của những nhân viên thuộc phòng

“Nghiên cứu và phát triển”

(PHONG (ma_dvX, “Nghiên cứu và phát triển”, ma_tpX) ANDNHAN_VIEN(ma_nvX,ho_tenX,ngay_sinhX,gioi_tinhX,ma_dvX,luongX))}

Trang 91

Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy cho biết

mã số dự án, đồng thời cho biết họ tên trưởng phòng quản lý dự án

này

{ma_daX, ho_tenX 

∃ ten_daX ∃ ma_dvX ∃ ten_phongX ∃ ma_tpX ∃ ngay_sinhX ∃ gioi_tinhX ∃ luongX ( DU_AN (ma_daX, ten_daX, “TT khí tượng thủy văn HN”, ma_dvX) AND

PHONG (ma_dvX, ten_phongX, ma_tpX) AND

NHAN_VIEN (ma_tpX, ho_tenX, ngay_sinhX, gioi_tinhX, ma_dvX, luongX)) }

Trang 92

Khả năng biểu thị câu hỏi của đại số quan hệ và ngôn ngữ

Một ngôn ngữ hỏi L (của mô hình quan hệ) được gọi là đầy

đủ nếu với L, chúng ta có thể biểu diễn được bất cứ một câu

Tính đầy đủ trở thành một tiêu chuẩn quyết định để so sánhkhả năng biểu diễn câu hỏi của các ngôn ngữ hỏi bậc cao

Trang 93

SQL đang được xem là ngôn ngữ chuẩn của các hệ cơ sở

dữ liệu quan hệ

Ngôn ngữ SQL gồm nhiều phần Nó cho phép định nghĩa dữliệu (gồm DDL), cho phép cập nhật và tìm kiếm dữ liệu

(gồm DML)

cung cấp các khả năng khác như: định nghĩa khung nhìn

(view), kiểm soát tính toàn vẹn dữ liệu, cấp phát quyền truycập, điều khiển các giao tác, thao tác dữ liệu nhúng

SQL

Trang 94

Phần thao tác dữ liệu sẽ có đông đảo người dùng hơn, do chúng ta xem xét phần này trước phần định nghĩa dữ liệu của SQL.

SELECT

Trang 97

NGÔN NGỮ SQL

Cho biết họ tên của mỗi nhân viên và lương mới của mỗi

người nếu lương họ được tăng 10%

FROM nhan_vien

Trong bảng kết quả, nếu muốn có thể đặt tên cho cột thứ

ba, chẳng hạn cột thứ ba được đặt tên là luong_moi, với câu lệnh sau

Trang 98

NGÔN NGỮ SQL

Cho biết danh sách nhân viên có lương trên 2 300 000,

với mỗi nhân viên như vậy các thông tin đưa ra gồm: mã nhân viên, họ tên, mã đơn vị và lương.

SELECT manv, ho_ten, ma_dv, luong

WHERE luong > 2 300 000

41

Trang 100

NGÔN NGỮ SQL

Có thể tìm biết tên và mã các dự án mà địa điểm có chứa từ

‘UBND’ bằng câu sau:

SELECT ma_da, ten_da, dia_diem_da

WHERE dia_diem_da LIKE ‘%UBND%’

43

Trang 103

NGÔN NGỮ SQL

Câu hỏi: “Có bao nhiêu nhân viên lương cao hơn 3 000 000 ?”

có thể viết như sau:

SELECT COUNT(*) AS vip

WHERE luong > 3000 000

46

Trang 108

NGÔN NGỮ SQL

Xét câu hỏi: ‘Tìm tên của những nhân viên có lương đạt trên mức lương trung bình của tất cả các nhân viên, đồng thời cho biết luôn mức chênh lệch này’ Chúng ta có thể dùng truy vấn sau:

nhan_vien) AS hieuFROM nhan_vien

FROM nhan_vien);

51

Trang 109

NGÔN NGỮ SQL

cùng

52

Trang 110

NGÔN NGỮ SQL

53

Trang 113

NGÔN NGỮ SQL

Điều kiện chọn (lọc) trong câu HAVING luôn

chứa ít nhất một hàm gộp, nếu không thì điều kiện này có thể chuyển vào câu WHERE.

Nên nhớ rằng hàm gộp không được dùng trong câu WHERE

56

Trang 114

NGÔN NGỮ SQL

Trường hợp câu truy vấn có cả câu WHERE và câu HAVING (dĩ nhiên có cả câu GROUP BY), thì trước tiên điều kiện chọn ở câu WHERE được áp

dụng các bộ thỏa điều kiện này được tạo thành các nhóm do câu GROUP

BY Tiếp theo, câu HAVING loại đi những nhóm không thỏa điều kiện đặt sau từ HAVING Các nhóm còn lại được câu SELECT sử dụng để tạo ra các bộ là kết quả của câu truy vấn.

Trang 116

Các truy vấn lồng nhau

Trang 117

Các truy vấn lồng nhau

cùng

60

NGÔN NGỮ SQL

Trang 118

Các truy vấn lồng nhau

61

NGÔN NGỮ SQL

Trang 119

Các truy vấn lồng nhau

Trang 120

Các truy vấn lồng nhau

Trang 121

Các truy vấn lồng nhau

SELECT ho_ten

FROM nhan_vien

WHERE luong > SOME

(SELECT luong FROM nhan_vien

WHERE ma_dv IN

(SELECT ma_dv FROM phong

WHERE ten_phong = ‘Kỹ thuật’) 64

);

Ngày đăng: 23/10/2014, 16:57

HÌNH ẢNH LIÊN QUAN

Hình 1.12 Kiến trúc tệp-máy chủ (file - server) - toàn tập bài giảng môn cơ sở dữ liệu full
Hình 1.12 Kiến trúc tệp-máy chủ (file - server) (Trang 34)

TỪ KHÓA LIÊN QUAN

w