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

LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU (PHẦN 2)

77 471 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 77
Dung lượng 13,4 MB

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

Nội dung

Báo cáo được xem như một phần không thể thiếu được trong các ứng dụng, với một lượng lớn báo cá thì việc cài đặt, quản trị sẽ khó khăn và tốn kém. Vào năm 2004 MS SQL Server 2000 đã giới thiệu SSRS như một công cụ trong việc xây dựng, quản trị và phát triển báo cáo cho doanh nghiệp

Trang 1

Câu lệnh :

CREATE TABLE SINH_VIEN

( ma_sv NUMBER(5) PRIMARY KEY,

ho_ten VARCHAR(25) NOT NULL, ng_sinh DATE,

gioi_tinh VARCHAR (3) DEFAULT ' Nam', ma_lop CHAR (3) ,

diem_tb DECIMAL (4,2), FOREIGN KEY ma_lop REFERENCES LOP

);

Trang 2

);

Trang 3

3 Bổ sung -xoá một cột trong bảng

a Bổ sung một cột :

ALTER TABLE < tên bảng>

ADD <tên cột> < kiểu dữ liệu > <

kích thước>;

VD : Thêm cột số điện thoại vào bảng

SINH_VIEN ở trên

ALTER TABLE SINH_VIEN

ADD dien_thoai NUMBER(10);

Trang 5

4 Xoá một bảng khỏi CSDLDROP TABLE < tên bảng>;

VD : Xoá bảng SINH_VIEN trong CSDL

DROP TABLE SINH_VIEN;

Khi đó toàn bộ thông tin về bảng SINH_VIEN( gồm cả lược đồ và các bản ghi ) đều bị xoá, khác với lệnh

DELETE FROM SINH_VIEN ; chỉ xoá các bản ghi trong bảng, vẫn giữ lại cấu trúc (lược đồ ) của bảng

Trang 6

III Các câu lệnh truy vấn

1 Truy vấn theo câu hỏi đơn giản

Cấu trúc cơ sở của một biểu thức hỏi ( còn gọi là biểu thức truy vấn) SQL gồm :

SELECT [ DISTINCT | ALL] {* | <cột> AS [<tên mới>], }

FROM < tên bảng> [ < bí danh >],

[WHERE < điều kiện chọn>]

[GROUP BY < ds tên cột>] [HAVING <điều kiện>]

[ORDER BY < ds cột> ];

Trang 7

Trong đó :

- Từ khoá DISTINCT : để loại bỏ sự trùng lặp ( các bộ trùng lặp chỉ giữ lại một bộ)

- < biểu thức cột>: là tên của một cột hoặc của biểu thức

- < tên bảng >: là tên của một bảng trong CSDL hay một khung nhìn mà ta có thể truy cập vào

- GROUP BY : dùng để gộp nhóm các bộ cùng giá trị tương ứng

ở các cột xuất hiện trong ds tên cột.

- HAVING: dùng để lọc các nhóm thoả điều kiện

- ORDER BY : quy định thứ tự trong các cột trả ra gồm : ASC

( tăng dần) và DESC ( giảm dần) Mặc định là ASC

Trang 8

Ví dụ 1:

Tìm tên các dự án và mã các phòngquản lý dự án tương ứng

SELECT ten_da, ma_p

FROM DU_AN;

Kết quả tra ra :

P1Giáo trình điện tử

P3Mạng B

P2Phần mềm A

Ma_p Ten_da

Trang 10

b. Trong bảng kết quả, nếu muốn ta

có thể đặt tên mới cho cột sau từ khoá As

Ví dụ3 : Cho biết tên và lương mới của mỗi nhânviên biết họ được tăng 10%

Trang 12

Ví dụ 4:Tìm các nhân viên thuộc phòng có mã phòng là P2 và có lương >=2tr.

SELECT ma_nv, ho_ten, ma_p, luong

FROM NHAN_VIEN

WHERE ma_p= 'P2' AND

luong>=2000000;

Trang 14

d Tìm kiếm có xử lý xâu kí tự

 SQL dùng toán tử LIKE để so sánh xâu.

 SQL sử dụng kí tự ' %' để thay thế chomột xâu con, dấu phân cách '_' để thay

Trang 15

Ví dụ 6: Cho biết mã và tên các dự án mà địa điểm có chứa từ UBND:

SELECT ma_da, ten_da

FROM DU_AN

WHERE dia_diem_da LIKE

'%UBND%';

Trang 16

e SQL cho phép sử dụng các giá trị NULL đểchỉ sự thiếu vắng thông tin về giá trị của một bộtại một thuộc tính Với từ khoá IS NULL, SQL cho phép kiểm tra xem một giá trị có là NULL hay không ?

Ví dụ 7: Cho biết tên và mã số dự án màcột địa điểm có giá trị là NULL

SELECT ma_da, ten_da

WHERE dia_diem_da IS NULL;

Trang 17

f Truy vấn có sắp xếp thứ tự

Kết quả của câu truy vấn SQL có thểđược sắp theo thứ tự tăng dần (ASC ) hoặc giảm dần (DESC) bởi khoá

ORDER BY. Mặc định là tăng dần

Trang 18

Việc sắp thứ tự có thể được thực hiện trên nhiều thuộc tính

Ví dụ 9 : Hiển thị các thông tin chấm

công của các dự án có mã thuộc tập D1, D2, D8 theo thứ tự tăng dần của

số giờ và giảm dần của mã dự án:

Trang 20

2 Các hàm thư viện

SQL có 5 hàm kết tập được cài sẵn :

- COUNT :đếm số giá trị

- SUM : tính tổng các giá trị trong một cột

- MAX : tính giá trị lớn nhất trong một cột

- MIN : tính giá trị nhỏ nhất trong một cột

- AVG : tính giá trị trung bình của một cột

Chú ý : Các hàm sum và avg chỉ áp dụng cho các cột có kiểu số

Trang 21

Ví dụ 1: Tìm lương cao nhất, lương thấp nhất, và trung bình cộng lương toàn cơ quan

SELECT MAX (luong) AS max, MIN

(luong) AS min, AVG (luong) AS tb

FROM NHAN_VIEN;

Kết quả câu truy vấn này trả ra như sau :

23500001200000

3000000

tb min

max

Trang 22

Ví dụ 2: Cho biết số nhân viên thực hiện dự

Trang 23

- Dùng từ khoá DISTINCT ngay trước tên cột được áp dụng hàm, khi cần loại bỏ các bộ trùng nhau.

Ví dụ 3: Đếm số tỉnh có sinh viên theo học

SELECT COUNT (DISTINCT Que)

FROM SINHVIEN;

Trang 25

4 Tìm kiếm có sử dụng mệnh đề HAVING

Mệnh đề HAVING thường sử dụng cùng mệnh

đề GROUP BY Sau HAVING là biểu thức điều kiện Biểu thức này không tác động vào toàn bảng mà chỉ tácđộng vào từng nhóm các bản ghi đã chỉ ra tại mệnh đề

Trang 26

5 Tìm kiếm với câu hỏi phức tạp

Tìm kiếm với nhiều bảng qua việc sử dụng ánh xạlồng nhau hoặc qua phép kết nối

Trang 27

Câu lệnh :

SELECT TDT, CN, KP FROM DT, SD

WHERE SD.DT# = DT.DT#;

Chú ý : Trong câu truy vấn có hơn mộtbảng, nếu tên cột là không duy nhất thì bắt buộcphải viết tên cột dạng tường minh

Trang 30

Tìm kiếm có sử dụng lường từ ANY và

Trang 32

[ câu hỏi con]

Có thể bổ sung vào một tập các bản ghi là kết quả xử lý của một câu hỏi nào đó

VD: Chèn vào bảng SVG các sinh viên giỏi trong bảng SV.

INSERT INTO SVG SELECT *

FROM SV WHERE HL >= 8.0;

Trang 33

[FROM { Tên_bảng / Tên_ view}]

[WHERE Biểu_ thức _điều _kiện]

Ví dụ : Xoá những sinh viên có điểm HL kém (HL<=3.5):

DELETE FROM SV WHERE HL<=3.5;

Trang 34

3 Sửa đổi dữ liệu

Sửa đổi các giá trị của các bản ghi theo một điều kiện nàođó:

Dạng tổng quát :

UPDATE [ tên_bảng]

SET [ tên_cột = biểu_thức, ]

FROM tên _ bảng WHERE Biểu _ thức _điều _kiện

Ví dụ : Sửa điểm học lực của bạn Phan Ngọc Hà thành 8.5

UPDATE SV SET HL = 8.5 WHERE HT=‘ Phan Ngọc Hà’;

Trang 35

4 Tạo chỉ mục.

Việc tạo chỉ mục là tạo ra một bảng lưu trữ vị trí cácbản ghi dựa trên giá trị tăng dần của một ( hay một số) cột nào đó Việc này có tác dụng làm tăng tốc độ tìm

kiếm thông tin trong CSDL

Dạng tổng quát :

CREATE INDEX tên_bảng_chỉ_mục

ON Tên_bảng ( tên _cột [ASC | DESC]);

Bỏ chỉ mục thì sử dụng mệnh đề :

DROP INDEX tên_chỉ_mục;

Trang 37

5 Tạo View của người sử dụng

Tạo ra một khung nhìn của người sử dụng :

CREATE VIEW DSSVG ( Hoten, NS, GT)

AS SELECT HT , NS, GT

FROM SV WHERE HL >= 8.0;

Trang 38

6 SQL nhúng

Có thể truy cập vào CSDL từ một ngôn ngữ lậptrình bậc cao nếu có SQL "nhúng" trong ngôn ngữ

này Một ngôn ngữ trong đó các câu hỏi được SQL

được nhúng vào gọi là ngôn ngữ chủ, còn các cấu trúccủa SQL được phép trong ngôn ngữ này làm thành

SQL nhúng

- Sơ đồ xử lý các chương trình có nhúng câu lệnh SQL:

Trang 39

Biên dịch ngôn ngữ chủ Thư viện SQL Chương trình ngôn ngữ chủ

+

Trang 40

Bài 6 RÀNG BUỘC TOÀN VẸN

để định nghĩa các điều kiện đảm bảo

cho CSDL ở trạng thái an toàn

ngăn ngừa việc đưa dữ liệu không hợp

lệ vào CSDL

các điều kiện bất biến không được vi

phạm trong một CSDL

Trang 41

RBTV còn được gọi là các quy tắc

quản lý được áp đặt lên các đối

tượng của thế giới thực

VD :

- Mỗi sinh viên có một mã sinh viên duy nhất để phân biệt với các sinh viên khác

- Điểm HL của mỗi sv không được nhỏ hơn0 và lớn hơn 10.

- Mỗi SV phải thuộc một lớp nào đó.

Trang 42

 Các hệ quản trị CSDL thường có các cơ chế tự động kiểm tra RBTV

- Kiểm tra định kỳ hay đột xuất

Trang 44

3 Điều kiện của RBTV

 Điều kiện của RBTV là sự mô tả và biểu diễn hình thức và nội dung của nó.

 Được biểu diễn bằng ngôn ngữ tự

nhiên, thuật giải, ngôn ngữ quan hệ hoặc bằng các phụ thuộc hàm ,v.v

 VD:

Trang 45

R1: Mỗi sinh viên có một mã sinh viên duy nhất không trùng với các sinh

Trang 46

4 Bối cảnh của RBTV

Bối cảnh của một RBTV là tập các quan hệ mà khi thao tác trên các

quan hệ đó có khả năng làm cho

ràng buộc toàn vẹn bị vi phạm.

 Có thể chia RBTV thành hai loại

chính theo bối cảnh RBTV :

Trang 47

RBTV có bối cảnh trên 1 quan hệ

RBTV có bối cảnh trên nhiều quan hệ

Trang 48

4.1 RBTV có bối cảnh 1 quan hệ

 RBTV miền giá trị.

 RBTV liên bộ

 RBTV liên thuộc tính

Trang 49

RBTV miền giá trị qui định tập giá trị mà một thuộc tính có thể nhận.

VD:

 DOM(PHAI) = {‘Nam’, ‘Nữ’}

Trang 51

Bảng tầm ảnh hưởng (TAH) gồm 4 cột:

 Cột 1 chứa tên các quan hệ liên quan tới RBTV

 3 cột tiếp theo là tên các thao tác : Thêm / Sửa / Xoá

 Nếu RBTV cần được kiểm tra nguy cơ dẫn tới vi phạm dấu gạch chéo (x) hoặc dấu cộng (+) ;

 Có thể chỉ rõ các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm bằng cách liệt kê chúng dưới dấu (x) hoặc dấu (+)

 Nếu không có nguy cơ bị vi phạm thì đánh dấu trừ (-)

 Nếu không bị vi phạm vì không được phép sửa đổi thì kí hiệu là trừ với dấu * : (- (*) )

Trang 52

• Bảng TAH của R2:

+(GT) -

+

NHANVIEN

SửaXóa

ThêmR2

Trang 53

•  p1, p2  PHONGBAN: p1  p2

 p1.MAP  p2.MAP

• Bối cảnh: quan hệ PHONGBAN

Trang 54

• Bảng tầm ảnh hưởng:

-(*) -

+

PHONGBAN

SửaXóa

ThêmR4

Trang 55

• d  DEAN, d[NGBD_DK] <= d[NGKT_DK]

Trang 56

• Bối cảnh: quan hệ DEAN

• Bảng tầm ảnh hưởng:

+(NGBD_DK, NGKT_DK)

+

-DEAN

SửaXóa

ThêmR6

Trang 57

4.2 RBTV có bối cảnh trên nhiều

quan hệ

 RBTV tham chiếu

 RBTV liên bộ, liên quan hệ

 RBTV liên thuộc tính, liên quan hệ

 RBTV do thuộc tính tổng hợp

 RBTV do chu trình trong lược đồ biểudiễn quan hệ

Trang 58

a RBTV tham chiếu

 RBTV tham chiếu là ràng buộc quy

định giá trị của thuộc tính trong một

bộ của quan hệ R phải thuộc tập giá trị của thuộc tính khóa trong quan hệ S khác.

 RBTV tham chiếu còn gọi là ràng

buộc phụ thuộc tồn tại hay ràng buộc khóa ngoại

Trang 59

Ví dụ 10 : Xét các lược đồ quan hệ

PHONGBAN (MAP, TENP, TRP, NGNC)

NHANVIEN (MANV, HT, NS, GT, LUONG)

Trang 60

Bối cảnh: NHANVIEN, PHONGBAN

Bảng tầm ảnh hưởng:

- (*) +

-NHANVIEN

+(TRP) -

+

PHONGBA

N

SửaXóa

ThêmR9

Trang 61

b RBTV liên bộ, liên quan hệ

 RBTV liên bộ, liên quan hệ là điều kiện giữa các bộ trên nhiều quan hệ khác nhau

Ví dụ 11 : Xét các lược đồ quan hệ

PHONGBAN (MAP, TENP, TRP, NGNC)

DIADIEMPHG (MAP, DIADIEM)

Trang 62

• Bối cảnh: PHONGBAN, DIADIEM_PHG

• Bảng tầm ảnh hưởng:

+ (MAP) +

-DIADIEM_PHG

-

-PHONGBAN

SửaXóa

ThêmR10

Trang 63

c RBTV liên thuộc tính, liên quan hệ

 RBTV liên thuộc tính, liên quan hệ là điều kiện giữa các thuộc tính trên nhiều quan hệ khác nhau.

Ví dụ 12 :Xét các lược đồ quan hệ

DATHANG(MADH, MAKH, NGAYDH)

GIAOHANG(MAGH, MADH, NGAYGH)

Trang 64

• Bối cảnh: DATHANG, GIAOHANG

• Bảng tầm ảnh hưởng:

+ (NGAYGH) -

+

GIAOHANG

+ (MGAYDH) -

-DATHANG

SửaXóa

ThêmR11

Trang 65

d RBTV do thuộc tính tổng hợp

 Thuộc tính tổng hợp là thuộc tính được tính toán từ giá trị của các thuộc tính khác hoặc trạng thái của CSDL.

 Khi có thuộc tính tổng hợp, cần phải có RBTV để đảm bảo mối quan hệ giữa nó

và nguồn mà nó được tính toán từ đó.

Ví dụ 13 : Xét các lược đồ quan hệ

• PXUAT(SOPHIEU, NGAY, TT)

• CTIET_PX(SOPHIEU, MAHANG, SL, DG)

Trang 66

• Xét RBTV R12:

• Nội dung:

• Tổng trị giá của 1 phiếu xuất phải bằng

tổng trị giá các chi tiết xuất.

pxPXUAT,

px.TT = (ct  CTIET_PX  ct.SOPHIEU = px.SOPHIEU) ct.SL

* ct.DG

• Bối cảnh: PXUAT,CTIET_PX

Trang 67

• Bảng tầm ảnh hưởng:

• (*): Ở thời điểm thêm một bộ vào PXUAT, giá trị bộ đó tại TT là trống

+ (SL,DG) +

+

CTIET_P

X

+ (TT) +

-(*)

PXUAT

SửaXóa

ThêmR12

Trang 68

e RBTV do có chu trình

NHANVIEN (MANV, HT,NS ,GT, PHONG, LUONG)

DEAN (MADA, TENDA, DD, PHONG)

PHANCONG (NV#, SODA, THOIGIAN)

• Xét RBTV R14:

• Nội dung:

Nhân viên chỉ được phân công vào các đề

án do phòng mình phụ trách

Trang 69

  pc  PHANCONG,  nvda  (NHANVIEN

⋈ PHG=PHONG DEAN): (nvda.MANV = pc.NV#

 nvda.MADA = pc.SODA)

Hay: PHANCONG[MA_NVIEN,SODA] 

(NHANVIEN  DEAN) [MANV,MADA]

 Bối cảnh: NHANVIEN, DEAN, PHANCONG

Trang 70

 Bảng tầm ảnh hưởng

-(*)+

DEAN

(*)+

NHANVIEN

-+ (NV#, SODA) -

+ PHANCONG

SửaXóa

ThêmR14

Trang 71

Bài 7 PHỤ THUỘC DỮ LIỆU TRONG

t1[X]= t2[X] thì t1[Y] = t2[Y]

Trang 72

Ví dụ : Trong quan hệ SV, mỗi thuộc tính

DIACHI, NS, KETQUA đều phụ thuộc hàm (pth ) vàothuộc tính SV# Mỗi giá trị SV# xác định duy nhất

một giá trị tương ứng đối với từng thuộc tính đó Khi

đó , có thể viết :

SV#  DIACHI SV#  NS

SV#  KETQUA

 Nếu Y X thì hiển nhiên X  Y

Trang 73

2 Hệ tiên đề cho phụ thuộc hàm

2.1 K/n bao đóng của một tập phụ thuộc hàm

• Tập tất cả các pth được suy diễn logic từ F được gọi

là bao đóng của F Kí hiệu là F +

• Nếu F + = F thì F là họ đầy đủ của các pth

Trang 75

 Hệ tiên đề Amstrong được chứng minh

là đúng đắn và đầy đủ thông qua 3 bổ

hệ r

Trang 76

Bổ đề 2: Từ hệ tiên đề Amstrong ta suy

ra một số luật sau đây:

Trang 77

Khái niệm bao đóng của tập các thuộc tính đối với tập các phụ thuộc hàm.

Gọi F là tập các pth trên tập thuộc

tính U, X U X + là bao đóng của X (đối với F ) được định nghĩa như sau :

X + = { A | X  A  F+ } Nói cụ thể : X + là tập tất cả các

thuộc tính A mà pth XA có thể được suy diễn logic từ F nhờ hệ tiên đề

Amstrong

Ngày đăng: 10/04/2015, 12:10

TỪ KHÓA LIÊN QUAN

w