Database Design
Nguyễn Việt Thành Bộ môn Hệ thống thông tin – Khoa Công nghệ thông tin Đại học Khoa học tự nhiên TpHCM 2/11/2004
Mục lục Tổng quan Conceptual Design Logical Design Physical Design Một số ví dụ
Database Design
2
April 18, 2009
Tổng quan về Database Design Mini World
Requirements collection & analysis
Processing Requirements
Database requirements Conceptual design DBMS Independent
Transaction Design (Application Design) DBMS independent
Conceptual schema (in a high level data model)
(Logical)Data model design
DBMS specific
Conceptual schema (in the data model of a specific DBMS Transaction Implementation (Application Implementation)
Physical design Internal schema (for the same DBMS) Data Definition Language Statements
Database Design
3
April 18, 2009
Vai trò quan trọng của Database Design Những đặc điểm của dữ liệu thu thập được trong quá mình mô hình hóa đóng vai trò quan trọng trong việc thiết kế dữ liệu, chương trình, và các thành phần của hệ thống. Nhiều ý kiến cho rằng dữ liệu chứ không phải qui hình xử lý là vấn đề phức tạp nhất của một hệ thống thông tin hiện đại. Tại sao? Dữ liệu có tính bền vững cao hơn nhiều các qui trình xử lý sử dụng các dữ liệu này. Tại sao?
Database Design
4
April 18, 2009
Mục tiêu của Conceptual Design Hiểu rõ về cấu trúc CSDL, ngữ nghĩa, các ràng buộc, các mối quan hệ giữa các thực thể … Đưa ra mô hình dữ liệu không phụ thuộc vào một HQT CSDL cụ thể nào. Có những mô tả mang tính bền vững về các đối tượng dữ liệu (thực thể, mối quan hệ, ràng buộc) Đưa ra mô hình dữ liệu dựa trên góc nhìn của người dùng ứng dụng và người sử dụng CSDL, giúp họ hiểu thêm về ứng dụng. Là một phương tiện hỗ trợ sự trao đổi với người dùng
Database Design
5
April 18, 2009
Cách tiếp cận ở Conceptual Design TOP-DOWN
Identify Entities
Identify Relationships
Identify Attributes
BOTTOM-UP
Identify Relationships
Identify Dependencies
DATA Collect Data
Database Design
6
April 18, 2009
Mô hình biểu diễn Conceptual Design
Relational
Object-Oriented
UML Class Diagram Class Object Attribute Domain Structured Domain Operation Association Link Multiplicities
Database Design
7
EER Diagram Entity Type Entity Attribute Domain Composite Attribute ~ [Derived Attribute] Relationship Type Relationship Instance Cardinality & Participation
April 18, 2009
Thực thể trong EER Diagram Entity Thực thể là người, nơi chốn, đối tượng, sự kiện, hay một khái niệm trong môi trường của hệ thống thông tin được triển khai. Nhận xét từ loại của thực thể ! Entity Type Thực thể mạnh: tồn tại độc lập với các thực thể khác Thực thể yếu: tồn tại phụ thuộc vào một hay nhiều thực thể khác.
Database Design
8
April 18, 2009
Thuộc tính trong EER Diagram Attribute Thuộc tính là đặc điểm hay tính chất của một thực thể Composite Attribute: thuộc tính có thể tách ra gồm nhiều phần nhỏ. Ví dụ ? Simple (Atomic) Attribute: thuộc tính có thể tách ra gồm nhiều phần nhỏ. Single-valued Attribute: Thuộc tính có duy nhất một giá trị ứng với một thực thể. Multivalued Attribute: Thuộc tính có nhiều hơn một giá trị ứng với một thực thể. Ví dụ ? Derive Attribute: thuộc tính có thể tính toán từ những thuộc tính khác. Ví dụ ?
Database Design
9
April 18, 2009
Các mối quan hệ cơ bản trong EER Diagram
•One-to-One •One-to-many •Many to many
Database Design
10
is married to HUSBAND
WIFE is married to
has TRACK
Trainer
April 18, 2009
belongs to
PARTICIPANTS
holds is helds in
Track
Đối tượng trong UML Class Diagram Object Đối tượng: là một thực thể có một vai trò xác định trong ứng dụng cũng như là tình trạng, phương thức và định danh. State Tình trạng: Loại và giá trị của thuộc tính. Behaviour Phương thức: Các hành động đối tượng có thể thực hiện Identity Định danh: Phân biệt giữa các đối tượng.
Database Design
11
April 18, 2009
Các mối kết hợp của UML Class Diagram Association Mối kết hợp: quan hệ giữa các lớp đối tượng Multiplicity: số lượng tối đa và tối thiểu các lớp đối tượng tham gia vào mối kết hợp. Liên tưởng đến ER.
Database Design
12
April 18, 2009
Các mối kết hợp của UML Class Diagram (cont) Aggregation Mối kết hợp bộ phận Composition Mối kết hợp thành phần (cấu tạo) Phân biệt Aggregation và Composition
Database Design
13
April 18, 2009
EER Diagram
Database Design
14
April 18, 2009
EER Diagram to UML Class Diagram
Database Design
15
April 18, 2009
EER Diagram to UML Class Diagram (cont)
Database Design
16
April 18, 2009
Bài tập Conceptual Design Tạo một mô hình quan niệm ERR dựa trên các báo biểu sau. (Liệt kê DATA ITEMS, xác định ENTITIES và ATTRIBUTES, và mối quan hệ giữa các thực thể (entities ) List 1 Track No: 1 Participant code
Track name: Managing information using Database Participant name
Age
Position
Country
Address
List 1 is the list of participants’ information by track List 2 Country code
Country name
Participant code
Participant name
List 2 is the list of participants’ information by countries Database Design
17
April 18, 2009
Track name
Giải đáp Conceptual Design
Entity
Attribute
Participant Participant name One Participant code or many Age Address Position
Just one
Track Track number Track name
Zero one or many Just one
Relationship
Country Country code Country name
Database Design
18
April 18, 2009
Mục tiêu của Logical Design Quan tâm đến việc xây dựng một cấu trúc logic cho CSDL Độc lập với những cái mà người dùng ứng dụng sẽ thấy. Độc lập với cấu trúc vật lý cũng như cách lưu trữ của HQT CSDL sẽ chọn.
Database Design
19
April 18, 2009
Cách tiếp cận ở Logical Design
Conceptual E.A.R Model
1. REFINE THE CONCEPTUAL MODEL
Refined Conceptual Model
2.APPLY THE RULES OF NORMALIZATION Logical Data Model
Database Design
20
April 18, 2009
Mô hình cho Logical Design Relational Data Model Mô hình dữ liệu quan hệ: bao gồm Data Structure, Data Manipulation và Data Integrity Data Structure: Relation: Quan hệ là một bảng 2 chiều bao gồm các dòng (row) x cột (column) dữ liệu Attribute: cột dữ liệu Key: - Primary key: Khóa chính - Foreign key: Khóa ngoại
Data Manipulation: các thao tác trên dữ liệu (dựa trên chuẩn SQL) Data Integrity: các phương tiện để đặc tả các ràng buộc về nghiệp vụ.
Database Design
21
April 18, 2009
Chuyển đổi từ ER Conceptual Design Thực thể mạnh: thành một quan hệ Thuộc tính (của thực thể) Đơn trị: thành một thuộc tính của quan hệ Tập hợp: tách thành thuộc tính con đơn giản Đa trị: tách thành một quan hệ mới có khóa ngoại đến quan hệ biểu diễn thực thể. CUSTOMER(Customer_ID,Customer_Name, Street, City, State, Zip)
EMPLOYEE(Employee_ID, Employee_Name, Employee_Address) EMPLOYEE_SKILL(Employee_ID, Skill) Database Design
22
April 18, 2009
Chuyển đổi từ ER Conceptual Design (cont) Thực thể yếu: thành một quan hệ có khóa ngoại đến quan hệ biểu diễn thực thể mạnh nó phụ thuộc
EMPLOYEE(Employee_ID, Employee_Name) DEPENDENT(First_Name, Middle_Initial, Last_Name, Employee_ID, Date_of_Birth, Gender) Database Design
23
April 18, 2009
Chuyển đổi từ ER Conceptual Design (cont) Quan hệ One – Many:
CUSTOMER(Customer_ID, Customer_Name, Customer_Address) ORDER(Order_ID, Order_Date, Customer_ID)
Database Design
24
April 18, 2009
Chuyển đổi từ ER Conceptual Design (cont) Quan hệ Many – Many:
RAW_MATERIAL(Material_ID, Standard_Cost, Unit_of_Measure) SUPPLIES(Material_ID, Vendor_ID, Unit_Price) VENDOR(Vendor_ID, Vendor_Name, Vendor_Address)
Database Design
25
April 18, 2009
Chuyển đổi từ ER Conceptual Design (cont) Quan hệ One – One
NURSE(Nurse_ID, Name, Date-of-birth) CARE-CENTER(Center_Name, Location, Nurse_ID) Database Design
26
April 18, 2009
Chuyển đổi từ UML Conceptual Design Tương tự như ER Conceptual Design với một số vấn đề cần lưu ý: Một lớp chuyển thành một quan hệ Thuộc tính của lớp chuyển thành thuộc tính (cột) của quan hệ Biểu diễn các phương thức thành các thủ tục và hàm CSDL
Database Design
27
April 18, 2009
Chuẩn hóa CSDL ở Logical Design Tăng tính toàn vẹn của dữ liệu bằng cách loại trừ các dữ liệu trùng lắp Giải quyết các hiện tượng “nhập nhằng” nghĩa của thuộc tính Synonym: Hai thuộc tính có tên khác nhau nhưng vùng ý nghĩa. Ví dụ? Hynonym: Hai thuộc tính có tên giống nhau nhưng khác ý nghĩa. Ví dụ? Tại sao có hiện tượng này? Đưa về những dạng chuẩn đã được công nhận rộng rãi như 3NF, 4-NF, BCK-NF. Có nhất thiết luôn đưa về dạng chuẩn cao nhất không? Lưu ý vấn đề mâu thuẫn giữa kích thước lưu trữ và tốc độ truy xuất trong một số trường hợp.
Database Design
28
April 18, 2009
Mục tiêu của Physical Design Chọn lựa HQT CSDL sẽ cài đặt. Theo những yếu tố nào? Giá thành, Tính năng và công cụ, Mô hình cơ sở. Tính dễ chuyển đổi, Phần cứng yêu cầu. Biến đổi các quan hệ (của mô hình Logical Design) thành các bảng với các trường dữ liệu có kiểu và kích thước xác định Cài đặt các ràng buộc toàn vẹn thành dựa trên tính năng và các công cụ của HQT CSDL đã chọn
Database Design
29
April 18, 2009
Cách tiếp cận ở Physical Design
Logical Data Model
Logical Process Model Track
01
TR
Physical Implementation Process
Database Design
30
Database creation CREATE DATABASE CREATE TABLE LOAD
April 18, 2009
Country
Tham khảo Book, “Modern Database Management”, 5th Edition, McFadden, F.R., Hoffer, J.A., Prescott, 1999 Course Slides, “Database Architecture Models and Design”, Prof Ian HORROCKS, The University of Manchester Track 3: “Managing Information Using Databases”, WENT2001 Asian Women's Electronic Network Training Workshop Article “Database Modelling in UML”, Geoffrey Sparks, 2001
Database Design
31
April 18, 2009
Thảo luận
Q&A Database Design
32
April 18, 2009