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

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

28 889 1
Tài liệu đã được kiểm tra trùng lặp

Đ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 28
Dung lượng 1,04 MB

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

Nội dung

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

Trang 1

Bài 7:

THIẾT KẾ CƠ SƠ DỮ LIỆU VẬT LÝ

Trang 2

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ũ

Trang 3

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

Trang 4

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ý

Trang 5

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ểudiễ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ểudiễn dưới dạng bảng như sau

KhachHang

Trang 6

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)

Trang 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

Trang 8

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ụ

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

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:

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:

Trang 14

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

Bài tập ví dụ

Trang 15

Kết quả:

Bài tập ví dụ

Trang 16

Đặ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

Trang 17

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

Trang 18

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

TENBANG_KIEU_TENTHUOCTINHTrong đó:

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_TENTHUOCTINHTrong đó:

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 đó

Trang 19

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

TENBANG_KIEU_TENTHUOCTINHTrong đó:

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

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_TENTHUOCTINHTrong đó:

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

Trang 20

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

Trang 21

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)

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)

Trang 22

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 );

Trang 23

Ràng buộc khóa chính trên một cột sẽ quy định cột đó là khóa chínhcho 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 );

ALTER TABLE INVOICE

ADD CONSTRAINT INVOICE_PK_INVOICE_NUMBER

PRIMARY KEY ( INVOICE_NUMBER );

Sử dụng từ khóa Tên cột được quy định

Trang 24

Ràng buộc khóa ngoại trên một cột sẽ quy định cột chỉ được phépchứ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óangoạ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épchứ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óangoạ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 );

Sử dụng từ khóa PRE FERENCES INVOICE với bảng CUSTOMER Cột đóng vai trò kết nối bảng

Trang 25

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 );

Tổ hợp giá trị của hai cột

Trang 26

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ộtphả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ộtphả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);

Trang 27

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

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

Trang 28

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ị

Ngày đăng: 23/05/2014, 18:31

TỪ KHÓA LIÊN QUAN

w