Tải bản đầy đủ (.pdf) (28 trang)

bài 7 thiết kế cơ sơ dữ liệu vật lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 28 trang )

Bài 7:
THIẾT KẾ CƠ SƠ DỮ LIỆU VẬT LÝ
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
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
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
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
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
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
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
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
Thiết kế thành ba bảng
Slide 7- Thiết kế CSDL vật lý
10
Thiết kế thành hai bảng
Slide 7- Thiết kế CSDL vật lý
11
Thiết kế thành một bảng duy nhất
Slide 7- Thiết kế CSDL vật lý
12
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
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
Kết quả:
Bài tập ví dụ
Slide 7- Thiết kế CSDL vật lý
15
Đặ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
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
Quy tắc đặt tên các ràng buộc: theo quy cách
TENBANG_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ách
TENBANG_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
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

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
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
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
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óa
PRIMARY KEY
Tên cột được quy định
là khóa chính
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 CUSTOMER
ALTER 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 CUSTOMER
ALTER 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óa
PRE FERENCES
Cột đóng vai trò kết nối bảng
INVOICE với bảng CUSTOMER
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óa
UNIQUE
Tổ hợp giá trị của hai cột
CUSTOMER_NUMBER và

CUSTOMER_PO_NUMBER phải khác nhau

×