Bài giảng Mô hình hóa dữ liệu
Mở đầu Lược đồ thực thể kết hợp (ERD) Mô hình hóa dữ liệu với ERD Thiết kế cơ sở dữ liệu logic
Bạn đang xem trước 20 trang tài liệu Bài giảng Mô hình hóa dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Mô hình hóa dữ liệu Mô hình hóa dữ liệu Mở đầu Lược đồ thực thể kết hợp (ERD) Mô hình hóa dữ liệu với ERD Thiết kế cơ sở dữ liệu logic 1. Mở đầu Mô hình hóa dữ liệu là cách thức biểu diễn các dữ liệu được sử dụng và tạo ra bởi hệ thống. Dữ liệu ở đây nhấn mạnh đến những dữ liệu mà HT cần phải lưu trữ, tạo ra, xử lý và cung cấp. Phân biệt hai mô hình dữ liệu: - Mô hình dữ liệu logic. - Mô hình dữ liệu vật lý. Mô hình dữ liệu logic cho thấy sự tổ chức dữ liệu mà không đề cập đến cách thức chúng được lưu trữ, tạo ra và xử lý. Mô hình dữ liệu vật lý cho thấy cách thức dữ liệu được lưu trữ thực sự ra sao trong cơ sở dữ liệu hoặc các tập hồ sơ. Phần này đề cập đến việc thực hiện mô hình hóa dữ liệu logic, còn được gọi là mô hình hóa dữ liệu mức khái niệm. Mô hình dữ liệu logic được PTV thực hiện ở giai đoạn phân tích. Sau đó mô hình dữ liệu vật lý sẽ được xây dựng trong giai đoạn thiết kế. Các kết quả của việc mô hình hóa dữ liệu còn được dùng làm tài liệu cho HT. Để thực hiện mô hình hóa dữ liệu logic, PTV dùng các công cụ: Lược đồ thực thể - kết hợp (ERD).- Mô hình CSDL quan hệ. Các bước mô hình hóa dữ liệu logic: Tạo lược đồ thực thể kết hợp (ERD).- Chuyển lược đồ ER thành lược đồ quan hệ. - Chuẩn hóa lược đồ quan hệ.- Phá chuẩn một số lược đồ quan hệ (nếu cần). Tương tự mô hình hóa qui trình, cần phân biệt mô hình hóa dữ liệu HT hiện thời và HT mới. Tạo lược đồ ER HT hiện thời Chuyển ERD thành lược đồ quan hệ HT mới Tạo lược đồ ER HT mới Chuẩn hóa lược đồ quan hệ CSDL quan hệ HT mới Yêu cầu của HT mới Tạo lược đồ ER HT hiện thời Chuyển ERD thành lược đồ quan hệ HT hiện thời Tạo lược đồ ER HT mới Chuẩn hóa lược đồ quan hệ Chuyển ERD thành lược đồ quan hệ HT mới Chuẩn hóa lược đồ quan hệ Yêu cầu của HT mới Mô hình hóa dữ liệu Mở đầu Lược đồ thực thể kết hợp (ERD) Mô hình hóa dữ liệu với ERD Thiết kế cơ sở dữ liệu logic 2. Lược đồ thực thể kết hợp (ERD) Lược đồ thực thể kết hợp hay còn gọi là lược đồ ER (ERD – Entity Relationship Diagram) là một công cụ được PTV dùng để mô hình hóa dữ liệu ở mức logic. ERD đã được trình bày kỹ trong giáo trình Cơ sở dữ liệu 1, phần này chỉ nhắc lại những nét chính. Các khái niệm chính của lược đồ ER: - Thực thể, thuộc tính, miền trị thuộc tính. - Kết hợp, bản số. Ví dụ lược đồ ER. Thực thể có nhiều thuộc tính. Thuộc tính khóa (khóa đề nghị, khóa chính). Thuộc tính đơn trị, đa trị. Giữa các thực thể có thể có kết hợp. Bậc của kết hợp. - Kết hợp bậc 1 (unary) một thực thể.- Kết hợp nhị phân (binary) hai thực thể.- Kết hợp bậc ba (ternary) ba thực thể. Ví dụ các kết hợp có bậc khác nhau. Bản số của kết hợp. Tối đa (1 hoặc n), tối thiểu (0 hoặc 1). - Tối thiểu 1 mandatory. - Tối thiểu 0 optional. Ví dụ kết hợp nhị phân. Thực thể có thuộc tính, kết hợp cũng có thể có thuộc tính. Thuộc tính của kết hợp đôi khi còn được gọi là thuộc tính mô tả. Thực thể liên kết (Associative entity) là một loại thực thể mà nó liên kết các thể hiện của một hoặc nhiều thực thể khác, và có thuộc tính của kết hợp giữa những thể hiện này. Biểu diễn một kết hợp bậc ba thành một thực thể liên kết. Một kết hợp mà bản thân nó được liên hệ với thực thể khác thông qua một kết hợp khác phải được biểu diễn thành một thực thể liên kết. Việc phân nhóm hoặc phân loại các thực thể dẫn đến thực thể con (subtype) và thực thể cha (supertype). Mối kết hợp giữa thực thể con và thực thể cha có thể có các đặc tính sau đây: Tách biệt (disjoint). Trùng lắp (overlap). Phân chia hoàn toàn (Total specialization). Phân chia một phần (Partial specialization). Tách biệt Một thể hiện của thực thể cha có thể là một thể hiện của chỉ một thực thể con. Trùng lắp Một thể hiện của thực thể cha có thể là một thể hiện của nhiều thực thể con. Phân chia hoàn toàn Một thể hiện của thực thể cha phải là một thể hiện của một trong những thực thể con. Phân chia một phần Một thể hiện của thực thể cha có thể không là thể hiện của thực thể con nào cả. Ký hiệu kết hợp: - U: Mối qh giữa các thực thể cha và con. d: Mối qh mang tính cách biệt. o: Mối qh mang tính trùng lắp. || : Mối qh mang tính phân chia hoàn toàn. | : Mối qh mang tính phân chia một phần. Ta có đến 4 kết hợp giữa các tính chất của mối quan hệ giữa các thực thể cha và con. Ví dụ ta có thể có mối quan hệ mang tính cách biệt và phân chia hoàn toàn. Bên cạnh lược đồ ER PTV cần tìm hiểu thêm các qui tắc công việc để đặc tả được các ràng buộc dữ liệu giúp cho việc toàn vẹn dữ liệu sau này. Lược đồ ER cho thấy được một số ràng buộc dữ liệu nhưng cũng có những ràng buộc dữ liệu lược đồ ER không biểu diễn được. Lược đồ ER không cho ta thấy: - Ràng buộc miền trị của thuộc tính.- Ràng buộc dạng triggering operations (qui tắc khống chế các thao tác xử lý). Mô hình hóa dữ liệu Mở đầu Lược đồ thực thể kết hợp (ERD) Mô hình hóa dữ liệu với ERD Thiết kế cơ sở dữ liệu logic 3. Mô hình hóa dữ liệu với ERD PTV có thể dùng phối hợp hai cách tiếp cận để xây dựng mô hình dữ liệu với ERD: Top-down: Mô hình dữ liệu được xây dựng từ những hiểu biết và kinh nghiệm ban đầu về công việc của tổ chức. Bottom-up: Mô hình dữ liệu được xây dựng bằng việc xem xét các hồ sơ đặc tả và tài liệu về công việc của tổ chức (biểu mẫu, báo cáo). Xây dựng mô hình dữ liệu là quá trình mang tính lặp và làm mịn dần. Ban đầu các ERD tổng quát được xây dựng sau đó thêm dần dần các chi tiết. Trong quá trình mô hình hóa dữ liệu, PTV dùng các kỹ thuật thu thập yêu cầu (phỏng vấn, phân tích tài liệu, JAD, …) để làm sáng tỏ các yêu cầu về dữ liệu. Lược đồ ERD không mang tính duy nhất một mô hình dữ liệu có thể được biểu diễn bằng nhiều ERD khác nhau tùy vào PTV. Các câu hỏi sau có thể được dùng để thu thập yêu cầu về dữ liệu trong quá trình mô hình hóa dữ liệu: Những thông tin quan trọng nào mà HT cần lưu giữ hoặc xử lý? Thực thể chính. Những chủ thể hoặc đối tượng nào công việc quan tâm đến? Thực thể chính. Với chủ thể hoặc đối tượng đó cần quan tâm đến những thông tin gì? Thuộc tính. Làm thế nào hoặc dựa vào đâu để phân biệt chủ thể này với chủ thể khác? Khóa. Các câu hỏi sau có thể được dùng để thu thập yêu cầu về dữ liệu trong quá trình mô hình hóa dữ liệu (tiếp theo): Với đặc điểm này thì nó có thể mang những giá trị gì? Miền trị của thuộc tính. Với một đối tượng này nó có thể kết hợp với bao nhiêu đối tượng kia? Bản số. Những đối tượng này có thể phân loại không hoặc có bao nhiêu loại? Thực thể cha, con. Trong một ngày (tuần, tháng) phải giải quyết tối đa bao nhiêu đối tượng này? Độ lớn. Nhìn chung PTV sẽ cần hỏi nhiều để nắm được các yêu cầu dữ liệu. PTV cần phải có kỹ năng truyền thông tốt để làm việc với tổ chức trong quá trình xây dựng mô hình qui trình cũng như mô hình dữ liệu. Trong quá trình truyền thông PTV cần chú ý: Mục tiêu của truyền thông là trao đổi nghĩa chứ không phải là trao đổi từ. Tồn tại khoảng cách ngữ nghĩa trong truyền thông cần thu hẹp khoảng cách. Các bước để tạo lược đồ ER. Xác định các thực thể.- Bổ sung các thuộc tính cho thực thể.- Xác định các kết hợp giữa các thực thể. Nhận xét từ lược đồ DFD. Thực thể ngoài Thực thể.- Nơi lưu trữ dữ liệu Thực thể.- Dòng dữ liệu Thực thể, thuộc tính.- Mô tả logic qui trình Thuộc tính. Giữa lược đồ DFD và lược đồ ERD phải có sự khớp nhau về mặt logic dữ liệu. Ví dụ ở lược đồ DFD có nơi lưu trữ dữ liệu A nhưng ở lược đồ ERD không có thực thể dữ liệu nào là A cả thì xem như không khớp. Hoặc ở lược đồ ERD có thực thể dữ liệu B nhưng ở lược đồ DFD không có thực thể ngoài, dòng dữ liệu, nơi lưu trữ dữ liệu nào là B cả thì xem như không khớp. Khi có sự không khớp, PTV cần phải xem xét lại việc thu thập yêu cầu của mình để điều chỉnh. Mô hình hóa dữ liệu Mở đầu Lược đồ thực thể kết hợp (ERD) Mô hình hóa dữ liệu với ERD Thiết kế cơ sở dữ liệu logic 4. Thiết kế cơ sở dữ liệu logic Nhắc lại các bước mô hình hóa dữ liệu logic: Tạo lược đồ thực thể kết hợp (ERD).- Chuyển lược đồ ER thành lược đồ quan hệ. - Chuẩn hóa lược đồ quan hệ.- Phá chuẩn một số lược đồ quan hệ (nếu cần). Ba buớc cuối được gọi chung là thiết kế cơ sở dữ liệu logic hay vắn tắt là thiết kế cơ sở dữ liệu. Phần lớn người ta thiết kế CSDL dựa trên mô hình CSDL quan hệ. Mô hình CSDL quan hệ đã được trình bày chi tiết ở môn học Cơ sở dữ liệu 1. Phần này chỉ nhắc lại một số nét chính. Phân biệt: Thiết kế CSDL logic.- Thiết kế CSDL vật lý. Thiết kế CSDL logic được PTV thực hiện trong giai đoạn phân tích. Kết quả sẽ được dùng cho việc thiết kế CSDL vật lý ở giai đoạn thiết kế (xây dựng mô hình dữ liệu vật lý). CSDL quan hệ: Dữ liệu được biểu diễn thành tập các bảng (quan hệ) có liên quan với nhau. Quan hệ: Bảng dữ liệu hai chiều được đặt tên. Mỗi bảng gồm một số cột được đặt tên, và số dòng dữ liệu tùy ý. Quan hệ được cấu trúc tốt: Quan hệ chứa tối thiểu sự dư thừa dữ liệu và cho phép NSD thêm, sửa, xóa các dòng dữ liệu mà không gây ra lỗi sai hoặc sự không phù hợp. (Sự không phù hợp Không gây ra những vi phạm về ràng buộc toàn vẹn dữ liệu.) Quan hệ được cấu trúc tốt. Quan hệ có cấu trúc không tốt. Chuẩn hóa: Là quá trình chuyển đổi các cấu trúc dữ liệu phức tạp thành các cấu trúc dữ liệu đơn giản và ổn định. Phụ thuộc hàm: Là mối quan hệ giữa các thuộc tính. Với một quan hệ đã cho, thuộc tính B PTH vào thuộc tính A nếu với mỗi giá trị hợp lệ của A xác định duy nhất giá trị của B. Dạng chuẩn 1NF. Các dòng là duy nhất.- Không có thuộc tính đa trị.- Các quan hệ đều ở dạng chuẩn 1NF. Dạng chuẩn 2NF. Mọi thuộc tính không khóa đều phụ thuộc vào toàn bộ khóa (còn được gọi là phụ thuộc hàm đầy đủ). Dạng chuẩn 3NF. Các thuộc tính không khóa không phụ thuộc nhau (tức là không có phụ thuộc chuyển tiếp - no transitive dependencies). Chú ý khái niệm thuộc tính không khóa (a nonprimary key attribute). Kết quả của việc chuẩn hóa là các thuộc tính không khóa phụ thuộc vào toàn bộ khóa chính và chỉ khóa chính mà thôi. Quá trình chuẩn hóa được thực hiện bằng kỹ thuật phân rã các lược đồ quan hệ một cách thích hợp dựa trên các phụ thuộc hàm. Các thể hiện tức thời của một quan hệ không cho thấy được đầy đủ các phụ thuộc hàm trong quan hệ đó. Để có được phụ thuộc hàm PTV cần tìm hiểu các quy tắc và ràng buộc trong qui trình xử lý công việc (xử lý thông tin). Ví dụ về chuẩn hóa. Khi chuyển các lược đồ ERD thành các lược đồ quan hệ, các quan hệ sẽ ở dạng 1NF. Một quan hệ ở dạng 2NF nếu một trong những điều kiện sau thỏa mãn: - Khóa chính chỉ có một thuộc tính. Không có các thuộc tính không khóa tồn tại trong quan hệ. Mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào tập thuộc tính khóa chính. Ví dụ quan hệ 1NF nhưng không là 2NF. EMPLOYEE2 (Emp_ID, Name, Dept, Salary, Course, Date_Completed) Các phụ thuộc hàm Emp_ID Name, Dept, Salary PTH bộ phận Emp_ID, Course Date_Completed Một quan hệ ở dạng 3NF nếu nó ở dạng 2NF và không có phụ thuộc hàm giữa hai (hoặc nhiều) thuộc tính không khóa. Khóa ngoại: Thuộc tính xuất hiện như là thuộc tính không khóa trong một quan hệ nhưng lại là thuộc tính khóa chính trong một quan hệ khác. Tham chiếu toàn vẹn: Nhắm nói đến việc giá trị (hoặc sự tồn tại) một thuộc tính trong một quan hệ phụ thuộc vào giá trị (hoặc sự tồn tại) của cùng thuộc tính như vậy ở quan hệ khác. Ví dụ quan hệ 2NF (nhưng cũng là 3 NF). EMPLOYEE1(Emp_ID, Name, Dept, Salary) Phụ thuộc hàm: Emp_ID Name, Dept, Salary EMPCOURSE(Emp_ID, Course, Date_Completed) Phụ thuộc hàm: Emp_ID, Course Date_Completed Ví dụ quan hệ 2NF nhưng không là 3NF. SALES (Customer_ID, Customer_Name, SalesPerson, Region) Các phụ thuộc hàm: Customer_ID Customer_Name, SalesPerson, Region SalesPerson Region transitive Ví dụ chuyển đổi thành quan hệ 3NF. SALES1 (Customer_ID, Customer_Name, SalesPerson) Phụ thuộc hàm: Customer_ID Customer_Name, SalesPerson SPERSON (SalesPerson, Region) Phụ thuộc hàm: SalesPerson Region Ví dụ khóa ngoại và tham chiếu toàn vẹn. Khóa ngoại thiết lập kết hợp một-nhiều giữa SPERSON (một) và SALES1 (nhiều). Không có giá trị nào của SalesPerson trong SALES1 mà nó không tồn tại trong SPERSON (tham chiếu toàn vẹn). Trước khi chuẩn hóa các lược đồ quan hệ, PTV cần chuyển đổi các lược đồ dạng ERD thành các lược đồ quan hệ. Các thực thể trong ERD sẽ thành các lược đồ quan hệ. Khóa chính của thực thể trở thành khóa chính của quan hệ. Kết hợp nhị phân 1:N. Bổ sung khóa chính của thực thể ở đầu một của kết hợp làm thành khóa ngoại của thực thể ở đầu N của kết hợp. Ví dụ chuyển đổi thực thể thành LĐ quan hệ. Ví dụ chuyển đổi kết hợp nhị phân 1:N thành LĐ quan hệ. Kết hợp bậc một hoặc nhị phân 1:1. Có ba khả năng:- Bổ sung khóa chính của thực thể A làm thành khóa ngoại của thực thể B.- Bổ sung khóa chính của thực thể B làm thành khóa ngoại của thực thể A.- Hoặc thực hiện cả hai. Kết hợp nhị phân hoặc bậc cao hơn M:N. Tạo một quan hệ mới. Gộp tất cả các khóa chính của các quan hệ làm thành khóa chính của quan hệ mới. Ví dụ chuyển đổi kết hợp nhị phân M:N thành lược đồ quan hệ. Kết hợp bậc một 1:N. Đây là kết hợp giữa các thể hiện trong cùng một thực thể, ta dùng khóa ngoại đệ qui (khóa ngoại trong một quan hệ mà nó tham chiếu đến các giá trị của khóa chính trong cùng quan hệ đó). Kết hợp bậc một M:N. Tạo một quan hệ mới. Khóa chính của quan hệ mới là tổ hợp hai thuộc tính mà chúng lấy giá trị từ cùng một khóa chính. EMPLOYEE (Emp_ID, Name, Birthdate, Manager_ID) Ví dụ chuyển đổi kết hợp bậc một 1:N thành lược đồ quan hệ. ITEM (Item_Number, Name, Cost) ITEMCOMPONENT (Item_Number, Component_Number, Quatity) Ví dụ chuyển đổi kết hợp bậc một M:N thành lược đồ quan hệ. Sau khi chuyển các lược đồ ERD thành các lược đồ quan hệ, PTV sẽ thực hiện việc chuẩn hóa các lược đồ dựa vào các phụ thuộc hàm. Khi chuẩn hóa, một số lược đồ quan hệ có thể được phân rã thành các lược đồ nhỏ hơn. Điều này giúp loại bỏ việc dư thừa dữ liệu. Tuy nhiên sau khi chuẩn hóa, có thể PTV phải kết hợp lại một số lược đồ quan hệ vì các lý do sau đây: - Khác tên cùng nghĩa.- Cùng tên khác nghĩa. Khác tên cùng nghĩa tức là hiện tượng có hai tên khác nhau nhưng được dùng cho cùng một thuộc tính Khi kết hợp lại, yêu cầu NSD chọn dùng thống nhất một tên. STUDENT1 (Student_ID, Name)STUDENT2 (Student_Number, Name, Address) Hai tên Student_ID và Student-Number đều ám chỉ mã số sinh viên nhưng ở hai biểu mẫu tổ chức đã dùng hai tên khác nhau. Kết hợp lại chọn một tên là Student_ID. STUDENT (Student_ID, Name, Address) Cùng tên khác nghĩa tức là hiện tượng dùng cùng một tên biểu diễn cho hai thuộc tính khác nhau Khi kết hợp lại chỉ cần yêu cầu NSD cho thêm một tên mới. STUDENT1 (Student_Id, Name, Address)STUDENT2 (Student_Id, Phone, Address) Từ Address đầu tiên là địa chỉ gia đình. Còn từ Address thứ hai là địa chỉ cư trú tại nơi học. Kết hợp lại ta thêm một tên mới. STUDENT (Student_Id, Name, Phone, Family_Address, Campus_Address) Khi đã có các lược đồ quan hệ cấu trúc tốt, PTV cần làm rõ nhưng điều sau để chuẩn bị cho việc thiết kế CSDL vật lý ở giai đoạn thiết kế. Loại dữ liệu cho mỗi thuộc tính. Miền giá trị cho mỗi thuộc tính. Các ràng buộc toàn vẹn tham chiếu. Thuộc tính có thể mang trị null hay không. (Chú ý ở giai đoạn thiết kế, quan hệ được gọi là bảng, thuộc tính được gọi là vùng.) Sau khi chuẩn hóa, có khi PTV cần phải phá chuẩn (denormalization) một số lược đồ quan hệ. Phá chuẩn là quá trình phân chia ra hoặc kết hợp lại các lược đồ quan hệ đã được chuẩn hóa thành các bảng (vật lý) dựa trên việc dùng các dòng hoặc các vùng để việc dùng hiệu quả hơn. Ba trường hợp phá chuẩn thông dụng: - Hai thực thể với kết hợp 1-1.- Kết hợp M:N với các thuộc tính không khóa.- Dữ liệu tham chiếu. Ví dụ phá chuẩn. Ví dụ phá chuẩn. Ví dụ phá chuẩn. Tóm lại, PTV thực hiện mô hình hóa dữ liệu logic của hệ thống qua các bước sau: Tạo lược đồ thực thể kết hợp (ERD). Chuyển lược đồ ER thành lược đồ quan hệ. Chuẩn hóa lược đồ quan hệ. Phá chuẩn một số lược đồ quan hệ (nếu cần). Tóm lại, chúng ta đã nói về … Mở đầu Lược đồ thực thể kết hợp (ERD) Mô hình hóa dữ liệu với ERD Thiết kế cơ sở dữ liệu logic
Các file đính kèm theo tài liệu này:
- mo_hinh_hoa_du_lieu_5261.ppt