com201 slide 7

28
Bài 7: THIẾT KẾ CƠ SƠ DỮ LIỆU VẬT LÝ

Upload: tuanduongcntt

Post on 29-Jun-2015

144 views

Category:

News & Politics


0 download

DESCRIPTION

Cơ Sở Dữ Liệu - Giáo Trình FPT

TRANSCRIPT

Page 1: Com201   slide 7

Bài 7:THIẾT KẾ CƠ SƠ DỮ LIỆU VẬT LÝ

Page 2: Com201   slide 7

Tìm hiểu mô hình thực thể liên kết (Entity Relationship Modeling) và

các thành phần của mô hình

Tìm hiểu các mô hình mô tả tiến trình (sơ đồ tiến trình)

Hệ thống bài cũ

Slide 7- Thiết kế CSDL vật lý 2

Page 3: Com201   slide 7

Biết cách xây dựng các thành phần dữ liệu mức vật lý

Biết cách xây dựng các bảng từ các quan hệ

Biết tích hợp thêm các ràng buộc và toàn vẹn dữ liệu

Mục tiêu bài học hôm nay

Biết cách xây dựng các thành phần dữ liệu mức vật lý

Biết cách xây dựng các bảng từ các quan hệ

Biết tích hợp thêm các ràng buộc và toàn vẹn dữ liệu

Slide 7- Thiết kế CSDL vật lý 3

Page 4: Com201   slide 7

Thiết kế CSDL mức vật lý là xây dựng CSDL quan hệ

gồm các bảng từ các quan hệ đã được chuẩn hóa. Thêm

các ràng buộc và toàn vẹn dữ liệu

Thiết kế CSDL mức vật lý

Slide 7- Thiết kế CSDL vật lý 4

Page 5: Com201   slide 7

Là bước đầu tiên trong thiết kế CSDL vật lý

Mỗi bảng biểu diễn một quan hệ đã được chuẩn hóa.

Ví dụ:

Quan hệ KhachHang: MaKH, Hoten, Diachi, Dienthoai được biểu

diễn dưới dạng bảng như sau

Thiết kế các bảng

Là bước đầu tiên trong thiết kế CSDL vật lý

Mỗi bảng biểu diễn một quan hệ đã được chuẩn hóa.

Ví dụ:

Quan hệ KhachHang: MaKH, Hoten, Diachi, Dienthoai được biểu

diễn dưới dạng bảng như sau

Slide 7- Thiết kế CSDL vật lý 5

KhachHang

Page 6: Com201   slide 7

Các nguyên tắc xây dựng bảng:Mỗi quan hệ đã chuẩn hóa trở thành một bảng

Mỗi thuộc tính trong quan hệ trở thành một cột trong bảng

Mỗi thuộc tính có tên, kiểu dữ liệu và miền giá trị

Đặt ràng buộc cho thuộc tính (nếu có)

Khóa của quan hệ trở thành khóa chính (PK) của bảng và có giá

trị NOT NULL

Các liên kết giữa các quan hệ trở thành ràng buộc tham chiếu

(ràng buộc khóa)

Thiết kế các bảng

Các nguyên tắc xây dựng bảng:Mỗi quan hệ đã chuẩn hóa trở thành một bảng

Mỗi thuộc tính trong quan hệ trở thành một cột trong bảng

Mỗi thuộc tính có tên, kiểu dữ liệu và miền giá trị

Đặt ràng buộc cho thuộc tính (nếu có)

Khóa của quan hệ trở thành khóa chính (PK) của bảng và có giá

trị NOT NULL

Các liên kết giữa các quan hệ trở thành ràng buộc tham chiếu

(ràng buộc khóa)

Slide 7- Thiết kế CSDL vật lý 6

Page 7: Com201   slide 7

CSDL ứng dụng Acme Industries gồm 4 quan hệ như sau:

PRODUCT: Product Number (PK), Product Description, List Unit Price

CUSTOMER: Customer Number (PK), Customer Name, Customer

Address, Customer City, Customer State, Customer Zip Code,

Customer Phone

INVOICE: Invoice Number (PK), Customer Number, Terms, Ship Via,

Order Date

INVOICE LINE ITEM: Invoice Number (PK), Product Number (PK),

Quantity, Sale Unit Price

Ví dụ

CSDL ứng dụng Acme Industries gồm 4 quan hệ như sau:

PRODUCT: Product Number (PK), Product Description, List Unit Price

CUSTOMER: Customer Number (PK), Customer Name, Customer

Address, Customer City, Customer State, Customer Zip Code,

Customer Phone

INVOICE: Invoice Number (PK), Customer Number, Terms, Ship Via,

Order Date

INVOICE LINE ITEM: Invoice Number (PK), Product Number (PK),

Quantity, Sale Unit Price

Slide 7- Thiết kế CSDL vật lý 7

Page 8: Com201   slide 7

4 bảng tương ứng với 4 quan hệ và ràng buộc giữa các bảng nhưsau:

Ví dụ

Slide 7- Thiết kế CSDL vật lý 8

Page 9: Com201   slide 7

Ví dụ: đối tượng Customer có thể gồm 2 lớp con:

Individual_Customer và Commercial_Customer.

Có 3 cách để thiết kế các bảng:

Thiết kế thành ba bảng Customer, Individual_Customer và

Commercial_Customer

Thiết kế thành hai bảng: Individual_Customer và Commercial_Customer.

Các thuộc tính chung trong bảng Customer được thêm vào hai bảng này

Thiết kế thành một bảng duy nhất Customer. Các thuộc tính của bảng

được gộp lại

Xét trường hợp đối tượng gồm các lớp con

Ví dụ: đối tượng Customer có thể gồm 2 lớp con:

Individual_Customer và Commercial_Customer.

Có 3 cách để thiết kế các bảng:

Thiết kế thành ba bảng Customer, Individual_Customer và

Commercial_Customer

Thiết kế thành hai bảng: Individual_Customer và Commercial_Customer.

Các thuộc tính chung trong bảng Customer được thêm vào hai bảng này

Thiết kế thành một bảng duy nhất Customer. Các thuộc tính của bảng

được gộp lại

Slide 7- Thiết kế CSDL vật lý 9

Page 10: Com201   slide 7

Thiết kế thành ba bảng

Slide 7- Thiết kế CSDL vật lý 10

Page 11: Com201   slide 7

Thiết kế thành hai bảng

Slide 7- Thiết kế CSDL vật lý 11

Page 12: Com201   slide 7

Thiết kế thành một bảng duy nhất

Slide 7- Thiết kế CSDL vật lý 12

Page 13: Com201   slide 7

Bài toán quản lý CSDL các đối tượng khách hàng mua

hàng. CSDL gồm các đối tượng KhachHang, DonHang,

SanPham như sau:

KHACHHANG: MaKH , HotenKH, DiaChi, DienThoai

DONHANG: SoDH, NgayDatHang, TongTien, NguoiLap

SANPHAM: MaSP, TenSP, QuyCach, DonViTinh

Mỗi Yêu cầu đặt hàng của KhachHang gồm các thông tin:

SoLuong, DonGia, ThanhTien

Bài tập ví dụ

Bài toán quản lý CSDL các đối tượng khách hàng mua

hàng. CSDL gồm các đối tượng KhachHang, DonHang,

SanPham như sau:

KHACHHANG: MaKH , HotenKH, DiaChi, DienThoai

DONHANG: SoDH, NgayDatHang, TongTien, NguoiLap

SANPHAM: MaSP, TenSP, QuyCach, DonViTinh

Mỗi Yêu cầu đặt hàng của KhachHang gồm các thông tin:

SoLuong, DonGia, ThanhTien

Slide 7- Thiết kế CSDL vật lý 13

Page 14: Com201   slide 7

Hãy thiết kế các bảng cho CSDL trên???

Bài tập ví dụ

Slide 7- Thiết kế CSDL vật lý 14

Page 15: Com201   slide 7

Kết quả:

Bài tập ví dụ

Slide 7- Thiết kế CSDL vật lý 15

Page 16: Com201   slide 7

Đặt tên bảng:

Tên bảng phải phản ánh thực thể

Tên bảng phải viết chữ hoa và các kí tự “_” để phân

tách các từ (trong Oracle)

Không có các từ “table” hay “file” trong tên bảng

Các quy tắc đặt tên trong Oracle

Đặt tên bảng:

Tên bảng phải phản ánh thực thể

Tên bảng phải viết chữ hoa và các kí tự “_” để phân

tách các từ (trong Oracle)

Không có các từ “table” hay “file” trong tên bảng

Slide 7- Thiết kế CSDL vật lý 16

Page 17: Com201   slide 7

Quy tắc đặt tên cột:

Tên cột phải dựa trên tên của thuộc tính

Là duy nhất trong bảng

Tên cột phải viết chữ hoa

Các quy tắc đặt tên trong Oracle

Quy tắc đặt tên cột:

Tên cột phải dựa trên tên của thuộc tính

Là duy nhất trong bảng

Tên cột phải viết chữ hoa

Slide 7- Thiết kế CSDL vật lý 17

Page 18: Com201   slide 7

Quy tắc đặt tên các ràng buộc: theo quy cáchTENBANG_KIEU_TENTHUOCTINH

Trong đó:TENBANG: Tên bảng mà ràng buộc được định nghĩa trên đó

KIEU: Kiểu của ràng buộc

PK: ràng buộc khóa chính

FK: ràng buộc khóa ngoại

UQ: ràng buộc duy nhất

CK: ràng buộc Check

TENTHUOCTINH: Tên của cột mà ràng buộc được định nghĩa

trên đó

Các quy tắc đặt tên trong Oracle

Quy tắc đặt tên các ràng buộc: theo quy cáchTENBANG_KIEU_TENTHUOCTINH

Trong đó:TENBANG: Tên bảng mà ràng buộc được định nghĩa trên đó

KIEU: Kiểu của ràng buộc

PK: ràng buộc khóa chính

FK: ràng buộc khóa ngoại

UQ: ràng buộc duy nhất

CK: ràng buộc Check

TENTHUOCTINH: Tên của cột mà ràng buộc được định nghĩa

trên đó

Slide 7- Thiết kế CSDL vật lý 18

Page 19: Com201   slide 7

Quy tắc đặt tên chỉ mục (Index): theo quy cách

TENBANG_KIEU_TENTHUOCTINH

Trong đó:

TENBANG: Tên bảng mà chỉ mục được định nghĩa trên đó

KIEU: Kiểu của chỉ mục

UX: chỉ mục duy nhất

IX: không phải chỉ mục duy nhất

TENTHUOCTINH: Tên của cột mà chỉ mục được định nghĩa trên

đó

Các quy tắc đặt tên trong Oracle

Quy tắc đặt tên chỉ mục (Index): theo quy cách

TENBANG_KIEU_TENTHUOCTINH

Trong đó:

TENBANG: Tên bảng mà chỉ mục được định nghĩa trên đó

KIEU: Kiểu của chỉ mục

UX: chỉ mục duy nhất

IX: không phải chỉ mục duy nhất

TENTHUOCTINH: Tên của cột mà chỉ mục được định nghĩa trên

đó

Slide 7- Thiết kế CSDL vật lý 19

Page 20: Com201   slide 7

Quy tắc đặt tên các View:

Nên kết thúc bằng _VW

Nên chứa tên của bảng

Nên diễn tả được mục đích của View hoặc kiểu dữ liệu

Các quy tắc đặt tên trong Oracle

Quy tắc đặt tên các View:

Nên kết thúc bằng _VW

Nên chứa tên của bảng

Nên diễn tả được mục đích của View hoặc kiểu dữ liệu

Slide 7- Thiết kế CSDL vật lý 20

Page 21: Com201   slide 7

Ràng buộc là các quy định áp dụng trên các cột của bảng, đảm bảo

dữ liệu được kiểm tra và vẹn toàn.

Các ràng buộc được tích hợp trong CSDL:

Ràng buộc NOT NULL

Ràng buộc Khóa chính (Primary Key)

Ràng buộc Khóa ngoại (Foreign Key)

Ràng buộc duy nhất (UNIQUE)

Ràng buộc Kiểm tra (CHECK)

Các kiểu dữ liệu, độ chính xác và miền giá trị

Các Trigger

Tích hợp các ràng buộc

Ràng buộc là các quy định áp dụng trên các cột của bảng, đảm bảo

dữ liệu được kiểm tra và vẹn toàn.

Các ràng buộc được tích hợp trong CSDL:

Ràng buộc NOT NULL

Ràng buộc Khóa chính (Primary Key)

Ràng buộc Khóa ngoại (Foreign Key)

Ràng buộc duy nhất (UNIQUE)

Ràng buộc Kiểm tra (CHECK)

Các kiểu dữ liệu, độ chính xác và miền giá trị

Các Trigger

Slide 7- Thiết kế CSDL vật lý 21

Page 22: Com201   slide 7

Ràng buộc NOT NULL quy định giá trị của cột dữ liệu không được

phép để rỗng.

Ví dụ: tạo bảng INVOICE có 3 cột có ràng buộc NOT NULL

CREATE TABLE INVOICE

(INVOICE_NUMBER NUMBER(7) NOT NULL,

CUSTOMER_NUMBER NUMBER(5) NOT NULL,

CUSTOMER_PO_NUMBER VARCHAR(10) NULL,

SHIP_VIA VARCHAR(30) NULL,

ORDER_DATE DATE NOT NULL);

Ràng buộc NOT NULL

Ràng buộc NOT NULL quy định giá trị của cột dữ liệu không được

phép để rỗng.

Ví dụ: tạo bảng INVOICE có 3 cột có ràng buộc NOT NULL

CREATE TABLE INVOICE

(INVOICE_NUMBER NUMBER(7) NOT NULL,

CUSTOMER_NUMBER NUMBER(5) NOT NULL,

CUSTOMER_PO_NUMBER VARCHAR(10) NULL,

SHIP_VIA VARCHAR(30) NULL,

ORDER_DATE DATE NOT NULL);

Slide 7- Thiết kế CSDL vật lý 22

Page 23: Com201   slide 7

Ràng buộc khóa chính trên một cột sẽ quy định cột đó là khóa chính

cho bảng

Ví dụ: tạo ràng buộc khóa chính cho cột INVOICE_NUMBER trong

bảng INVOICE:

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_PK_INVOICE_NUMBER

PRIMARY KEY (INVOICE_NUMBER);

Ràng buộc khóa chính

Ràng buộc khóa chính trên một cột sẽ quy định cột đó là khóa chính

cho bảng

Ví dụ: tạo ràng buộc khóa chính cho cột INVOICE_NUMBER trong

bảng INVOICE:

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_PK_INVOICE_NUMBER

PRIMARY KEY (INVOICE_NUMBER);

Slide 7- Thiết kế CSDL vật lý 23

Sử dụng từ khóaPRIMARY KEY

Tên cột được quy địnhlà khóa chính

Page 24: Com201   slide 7

Ràng buộc khóa ngoại trên một cột sẽ quy định cột chỉ được phép

chứa giá trị xuất hiện trong cột khóa chính của bảng khác.

Khi tạo ràng buộc khóa ngoại, cần chỉ ra cột tương ứng với cột khóa

ngoại của bảng được kết nối bằng cách sử dụng từ khóa

REFERENCES

Ví dụ: tạo ràng buộc khóa ngoài với bảng CUSTOMERALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_FK_CUSTOMER_NUMBER

FOREIGN KEY (CUSTOMER_NUMBER)

REFERENCES CUSTOMER (CUSTOMER_NUMBER);

Ràng buộc khóa ngoại

Ràng buộc khóa ngoại trên một cột sẽ quy định cột chỉ được phép

chứa giá trị xuất hiện trong cột khóa chính của bảng khác.

Khi tạo ràng buộc khóa ngoại, cần chỉ ra cột tương ứng với cột khóa

ngoại của bảng được kết nối bằng cách sử dụng từ khóa

REFERENCES

Ví dụ: tạo ràng buộc khóa ngoài với bảng CUSTOMERALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_FK_CUSTOMER_NUMBER

FOREIGN KEY (CUSTOMER_NUMBER)

REFERENCES CUSTOMER (CUSTOMER_NUMBER);

Slide 7- Thiết kế CSDL vật lý 24

Sử dụng từ khóaPRE FERENCES

Cột đóng vai trò kết nối bảngINVOICE với bảng CUSTOMER

Page 25: Com201   slide 7

Ràng buộc duy nhất yêu cầu các giá trị trong cột phải khác nhau

Ví dụ:

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_UNQ_CUST_NUMB_PO

UNIQUE (CUSTOMER_NUMBER, CUSTOMER_PO_NUMBER);

Ràng buộc duy nhất

Ràng buộc duy nhất yêu cầu các giá trị trong cột phải khác nhau

Ví dụ:

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_UNQ_CUST_NUMB_PO

UNIQUE (CUSTOMER_NUMBER, CUSTOMER_PO_NUMBER);

Slide 7- Thiết kế CSDL vật lý 25

Sử dụng từ khóaUNIQUE

Tổ hợp giá trị của hai cộtCUSTOMER_NUMBER và

CUSTOMER_PO_NUMBER phải khác nhau

Page 26: Com201   slide 7

Ràng buộc kiểm tra trên một cột cho phép giá trị nhập vào của cột

phải thỏa mãn ràng buộc kiểm tra thì mới

Ví dụ: thêm ràng buộc kiểm tra điều kiện INVOICE_NUMBER phải

lớn hơn 0

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_CK_INVOICE_NUMBER

CHECK (INVOICE_NUMBER > 0);

Ràng buộc kiểm tra

Ràng buộc kiểm tra trên một cột cho phép giá trị nhập vào của cột

phải thỏa mãn ràng buộc kiểm tra thì mới

Ví dụ: thêm ràng buộc kiểm tra điều kiện INVOICE_NUMBER phải

lớn hơn 0

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_CK_INVOICE_NUMBER

CHECK (INVOICE_NUMBER > 0);

Slide 7- Thiết kế CSDL vật lý 26

Page 27: Com201   slide 7

Thiết kế CSDL mức vật lý là xây dựng các bảng dựa trên các quan

hệ đã xây dựng ở mức logic và hợp thêm các ràng buộc trên các

cột của bảng.

Nguyên tắc chung:

Mỗi quan hệ đã chuẩn hóa trở thành một bảng, các thuộc tính trở thành

các cột trong bảng.

Khóa của quan hệ trở thành khóa chính (PK) của bảng và có giá trị NOT

NULL

Các liên kết giữa các quan hệ trở thành ràng buộc tham chiếu (ràng

buộc khóa)

Tổng kết bài học

Thiết kế CSDL mức vật lý là xây dựng các bảng dựa trên các quan

hệ đã xây dựng ở mức logic và hợp thêm các ràng buộc trên các

cột của bảng.

Nguyên tắc chung:

Mỗi quan hệ đã chuẩn hóa trở thành một bảng, các thuộc tính trở thành

các cột trong bảng.

Khóa của quan hệ trở thành khóa chính (PK) của bảng và có giá trị NOT

NULL

Các liên kết giữa các quan hệ trở thành ràng buộc tham chiếu (ràng

buộc khóa)

Slide 7- Thiết kế CSDL vật lý 27

Page 28: Com201   slide 7

Các kiểu ràng buộc bao gồm:

Ràng buộc NOT NULL

Ràng buộc Khóa chính (Primary Key)

Ràng buộc Khóa ngoại (Foreign Key)

Ràng buộc duy nhất (UNIQUE)

Ràng buộc Kiểm tra (CHECK)

Các kiểu dữ liệu, độ chính xác và miền giá trị

Tổng kết bài học

Các kiểu ràng buộc bao gồm:

Ràng buộc NOT NULL

Ràng buộc Khóa chính (Primary Key)

Ràng buộc Khóa ngoại (Foreign Key)

Ràng buộc duy nhất (UNIQUE)

Ràng buộc Kiểm tra (CHECK)

Các kiểu dữ liệu, độ chính xác và miền giá trị

Slide 7- Thiết kế CSDL vật lý 28