1 / 33

Chương 2 CÁC MÔ HÌNH DỮ LIỆU

Chương 2 CÁC MÔ HÌNH DỮ LIỆU.

ziva
Download Presentation

Chương 2 CÁC MÔ HÌNH DỮ LIỆU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 2CÁC MÔ HÌNH DỮ LIỆU Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một sự phân tích những thông tin nào của thế giới thực cơ sở dữ liệu phải lưu trữ và các mối quan hệ giữa các thành phần của những thông tin này. Thông thường cấu trúc cơ sở dữ liệu hay còn gọi là sơ đồ cơ sở dữ liệu được đặc tả bởi một ngôn ngữ đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết kế cơ sở dữ liệu. Mô hình dữ liệu là một hình thức toán học với một tập các ký hiệu được mô tả dữ liệu và một tập các phép toán được sử dụng để thao tác dữ liệu này.

  2. 2.1. Mô hình thực thể liên kết (Mô hình ER) Mô hình thực thể liên kết dựa trên cơ sở nhận thức của thế giới thực bao gồm tập các đối tượng cơ sở được gọi là các thực thể và một tập các liên kết giữa các đối tượng này. Mô hình dữ liệu ER là một trong các mô hình dữ liệu ngữ nghĩa. Khía cạnh ngữ nghĩa của mô hình ở chổ cố gắng biểu diễn các ngữ nghĩa của dữ liệu trong thế giới thực. 2.1.1. Các khái niệm cơ sở Có 3 ký hiệu cơ bản mà mô hình thực thể liên kết sử dụng: Các tập thực thể, các tập liên kết và các thuộc tính.

  3. a. Các tập thực thể Một thực thể là một đối tượng cụ thể hay trừu tượng trong thế giới thực mà nó tồn tại và có thể phân biệt được với các đối tượng khác. Chẳng hạn như một sinh viên trong một lớp học là một thực thể. Một nhóm các thực thể giống nhau tạo thành một tập thực thể. Ví dụ như tập thực thể sinh viên. b. Các thuộc tính và khoá Các tập thực thể có các đặc tính được gọi là các thuộc tính. Mỗi thuộc tính có một miền giá trị.

  4.  Việc lựa chọn các thuộc tính thích đáng đối với các tập thực thể là một bước quan trọng trong việc thiết kế sơ đồ cơ sở dữ liệu khái niệm.  Mỗi thuộc tính hay một tập các thuộc tính mà giá trị của nó xác định duy nhất mỗi thực thể trong tập thực thể được gọi là khoá đối với tập thực thể này.  Về nguyên tắc, mỗi tập thực thể có một khoá do chúng ta giả định rằng mỗi thực thể là phân biệt với các thực thể khác.

  5. c. Các liên kết  Một liên kết là một sự kết hợp giữa một số thực thể. Chẳng hạn, có thể xác định một liên kết mà nó kết hợp một sinh viên A với một lớp B. Liên kết này nói rằng sinh viên A là một thành viên của lớp B. Một tập liên kết là một tập các liên kết cùng kiểu.  Một cách hình thức, một liên kết giữa các tập thực thể là một danh sách có thứ tự các tập thực thể, một tập thực thể có thể xuất hiện nhiều hơn một lần trong danh sách.

  6. d. Các phân cấp “is-a” Chúng ta nói A là-một B, nếu tập thực thể B thực sự là tổng quát hoá của tập thực thể A, hay nói một cách khác A là một kiểu đặc biệt của B. Mục đích của các liên kết “là-một” giữa các tập thực thể A và B là như vậy A có thể kế thừa các thuộc tính của B, nhưng A cũng có thể bổ sung thêm một số thuộc tính riêng mà B không có. Ví dụ 2.1. Một trường Đại học có tập thực thể Sinh viên với các thuộc tính như Mã sinh viên, Tên sinh viên, quê quán. Nếu chúng ta xét tập thực thể sinh viên Khoa CNT trong tập thực thể Sinh viên trên thì những sinh viên này có thêm các thuộc tính Khả năng lập trình, Thiết kế Web…… Như vậy ta nói Sinh viên CNTT “là-một” Sinh viên.

  7. 2.1.2. Sơ đồ thực thể liên kết (sơ đồ ER) Việc tóm tắt những thông tin cần lưu trữ trong một cơ sở dữ liệu đối với một thiết kế sử dụng các sơ đồ ER là rất có ích. Trong sơ đồ ER, chúng ta sử dụng các ký hiệu sau để biểu diễn các thành phần của sơ đồ:  Các hình chữ nhật biểu diễn các tập thực thể.  Các hình Oval biểu diễn các thuộc tính, chúng được nối đến với các tập thực thể bởi các cạnh không định hướng. Có thể gạch chân đối với thuộc tính khoá của tập thực thể.  Các hình thoi biểu diễn các liên kết. Chúng được nối đến các tập thực thể bởi các cạnh có thể định hướng hoặc không định hướng.

  8. 2.1.3. Chức năng của các liên kết a. Liên kết một-một Có nghĩa là với mỗi thực thể trong tập thực thể này có nhiều nhất mỗi thực thể trong tập thực thể kia và ngược lại.

  9. b. Liên kết một-nhiều  Trong liên kết một-nhiều, một thực thể trong tập thực thể E1 được kết hợp với không hoặc nhiều thực thể trong tập thực thể E2, nhưng một thực thể trong tập thực thể E2 liên kết với duy nhất với một thực thể trong tập thực thể E1. Liên kết này được gọi là một-nhiều từ E1 đến E2.  Khái niệm liên kết một-nhiều có thể được tổng quát hoá thành các liên kết giữa nhiều hơn hai tập thực thể.

  10. c. Liên kết nhiều-nhiều Trong liên kết nhiều-nhiều, một thực thể trong tập thực thể E1 được kết hợp với không hoặc nhiều thực thể trong tập thực thể E2 và ngược lại một thực thể trong tập thực thể E2 liên kết với không hoặc thực thể trong tập thực thể E1. Trong khi các liên kết nhiều-nhiều xuất hiện khá thường xuyên trong thực tế, chúng ta phải xem xét các liên kết này được biểu thị như thế nào trong sơ đồ khái niệm của cơ sở dữ liệu thực sự. Nhiều mô hình dữ liệu không cho phép biểu thị trực tiếp các liên kết nhiều-nhiều, thay vào đó đòi hỏi chúng phải được biến đổi thành một số liên kết một-nhiều bởi một số kỹ thuật nào đó.

  11. Ví dụ. Một giáo viên có thể dạy cho nhiều trường và một trường có nhiều giáo viên tham gia giảng dạy. Đây là một mối quan hệ nhiều-nhiều. Bảng Danhsachgv(Magv,ten) Bảng Danhsachtruong(Matruong, Tentruong)

  12. d. Xác định kiểu liên kết trong các sơ đồ ER Nếu R là liên kết một-một giữa tập thực thể A và tập thực thể B, chúng ta vẽ các mũi tên từ R đến cả A và B. Nếu R là liên kết nhiều-nhiều giữa tập thực thể A và tập thực thể B, chúng ta vẽ các cạnh không định hướng từ R đến cả A và B. Nếu R là liên kết một-nhiều giữa tập thực thể A và tập thực thể B, chúng ta vẽ mũi tên từ R đến A và cạnh không định hướng từ R đến B.

  13. 2.2. Mô hình dữ liệu quan hệ 2.2.1. Các khái niệm cơ bản a. Quan hệ Định nghĩa 2.1. Cho D1, D2, ….,Dn là n miền giá trị, r là một quan hệ trên các miền D1, D2,….,Dn nếu r là một tập con nào đó các n-bộ được sắp có dạng (d1, d2,….dn) sao cho di Di với i = 1..n. Định nghĩa 2.2. Cho U ={A1, A2,….An} là một tập hữu hạn các thuộc tính. Với mỗi thuộc tính Ai có miền giá trị tương ứng là Dom(Ai). Khi đó, r là quan hệ xác định trên tập thuộc tính U nếu: r  Dom(A1)  Dom(A2)  ……. Dom(An)

  14. b. Khoá và siêu khoá Định nghĩa 2.3. Cho r xác định trên tập thuộc tính U với U ={A1, A2,….An}. Một tập con K  U được gọi là siêu khoá của quan hệ r nếu với bất kỳ hai bộ t1, t2 thuộc r, t1  t2, đều tồn tại một thuộc tính A thuộc K sao cho t1[A]  t2[A]. Theo định nghĩa, nếu K là siêu khoá của một quan hệ thì không tồn tại hai bộ thuộc quan hệ khác nhau mà có giá trị bằng nhau trên mọi thuộc tính của K. Do đó, giá trị của K xác định duy nhất một bộ của quan hệ.

  15. Định nghĩa 2.4.Cho r xác định trên tập thuộc tính U với U ={A1, A2,….An}. Một tập con K  U được gọi là khoá của quan hệ r nếu K là siêu khoá của r và bất kỳ tập con thật sự K’ của K không là siêu khoá. Trong một quan hệ có thể có nhiều khoá, người ta chọn một khoá làm khoá chính, các khoá khác được xem là khoá dự tuyển. Định nghĩa 2.5.Một tập con K  U được gọi là khoá ngoài của quan hệ r xác định trên tập thuộc tính U tham chiếu đến quan hệ r’ nếu K là khoá chính của quan hệ r’.

  16. 2.2.2. Biến đổi các sơ đồ ER sang mô hình quan hệ a. Biến đổi các tập thực thể  Một tập thực thể E được biến đổi thành một quan hệ mà sơ đồ quan hệ của nó bao gồm các thuộc tính của tập thực thể. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện hiện thời của E.  Nếu E là một tập thực thể mà các thực thể của nó xác định thông qua một liên kết với một tập thực thể F nào đó thì sơ đồ quan hệ tương ứng với E chỉ chứa các thuộc tính trong khoá của F.

  17. b. Biến đổi các liên kết  Một liên kết R giữa các tập thực thể E1, E2, ….Ek được biến đổi thành một quan hệ mà sơ đồ quan hệ của nó bao gồm các thuộc tính trong khoá của mỗi E1, E2, ….Ek. c. Các khoá của các sơ đồ quan hệ  Nếu một sơ đồ quan hệ được biến đổi từ một tập thực thể, khoá của tập thực thể chính là khoá của sơ đồ quan hệ.  Nếu một sơ đồ quan hệ được biến đổi từ một liên kết nhiều-nhiều thì khoá của sơ đồ quan hệ thường là tập tất cả các thuộc tính.

  18.  Nếu một sơ đồ quan hệ được biến đổi từ một liên kết một-một giữa hai tập thực thể E và F thì khoá của E và khoá của F cả hai đều là khoá của sơ đồ quan hệ biểu diễn liên kết này.  Nếu một sơ đồ quan hệ được biến đổi từ một liên kết một-nhiều từ Ek vào Ek-1, ….E1 thì tập các thuộc tính là hợp của các khoá của Ek-1, ….E1 thường là khoá của sơ đồ quan hệ này. d. Các sơ đồ quan hệ với khoá chung Khi hai sơ đồ quan hệ có khoá chung chúng ta có thể tổ hợp các thuộc tính của hai sơ đồ quan hệ và thay thế hai sơ đồ quan hệ này bởi một sơ đồ quan hệ mới với tập thuộc tính là hợp của hai tập thuộc tính của hai sơ đồ quan hệ ban đầu.

  19. 2.3. Mô hình dữ liệu mạng Mô hình dữ liệu mạng là một mô hình sơ đồ thực thể liên kết với tất cả các liên kết được hạn chế là liên kết một-nhiều. Hạn chế này cho phép chúng ta sử dụng đồ thị có hướng đơn giản để biểu diễn dữ liệu trong mô hình này. Trong mô hình mạng, các tập thực thể được chuyển thành các kiểu bản ghi logic. Các kiểu bản ghi logic bao gồm một tập các trường, mỗi trường chứa giá trị là một số nguyên hay một xâu ký tự…Tập tên các trường và các kiểu của chúng cấu thành qui cách bản ghi logic.

  20. 2.3.1. Định danh bản ghi Có thể có một sự tương tự gần gũi giữa các thuật ngữ của mô hình mạng và các thuật ngữ trong mô hình quan hệ như sau: Qui cách bản ghi logic Sơ đồ quan hệ Bản ghi logic Bộ Kiểu bản ghi Tên quan hệ

  21. 2.3.2. Các móc nối Trong mô hình mạng, các liên kết hai ngôi một-nhiều được gọi là các móc nối. Chúng ta vẽ một đồ thị có hướng được gọi là một mạng mà thực chất là một sơ đồ thực thể liên kết đơn giản hoá để biểu diễn các kiểu bản ghi và các móc nối của chúng. Các nút tương ứng với các kiểu bản ghi, nếu có một móc nối giữa hai kiểu bản ghi T1 đến T2 và móc nối này là một-nhiều từ T1 đến T2 thì chúng ta vẽ một cung từ nút T2 đến T1 và nói rằng móc nối này từ T2 đến T1. Các nút và các cung được gán nhãn bởi tên của các kiểu bản ghi và tên của móc nối.

  22. 2.4. Mô hình dữ liệu phân cấp Một mô hình phân cấp đơn giản là một mô hình mạng mà là một rừng (tập các cây) trong đó tất cả các móc nối trỏ theo hướng từ con đến cha. 2.4.1. Thuật toán biến đổi mô hình mạng đơn giản Chúng ta bắt đầu tại một nút có nhiều móc nối đi vào và không có móc nối đi ra và đặt nó là gốc của cây. Chúng ta gắn vào cây mọi nút có thể gắn. Khi chúng ta không thể thêm một nút nào khác vào cây đó, ta sẽ bắt đầu với một cây khác, một nút cha chưa được gắn sẽ được chọn làm nút gốc và gắn mọi nút vào cây mà chúng ta có thể. Thực tế, mỗi nút có thể xuất hiện trong rừng này một hay nhiều lần trên các cây khác nhau. Đến đây chúng ta đã có một mô hình phân cấp.

  23. 2.4.2. Sự lặp lại các kiểu bản ghi  Chúng ta có thể thấy việc biến đổi mô hình mạng đôi khi có những bản ghi có thể xuất hiện nhiều hơn một lần. Sự lặp lại này gây ra một số vấn đề như sau:  Chúng ta lãng phí không gian bộ nhớ vì chúng ta phải lưu trữ lặp lại dữ liệu trong các bản ghi này một số lần.  Tính không nhất quán tiềm tàng có thể xuất hiện nếu chúng ta thay đổi giá trị trong một bản sao nào đó của một bản ghi nhưng lại quên không thay đổi giá trị của bản sao khác.  Việc khắc phục phục và tránh những vấn đề nảy sinh ở trên mà nguyên nhân chính là sự lưu trữ lặp lại một số dữ liệu trong cơ sở dữ liệu là một mục tiêu quan trọng của vấn đề thiết kế cơ sở dữ liệu.

  24. 2.5. Mô hình dữ liệu hướng đối tượng Hiện nay, có một số lớn các đề nghị và một số cài đặt của các mô hình dữ liệu có khả năng nắm bắt bản chất của các ngôn ngữ truy vấn hướng đối tượng. Các mô hình này được lấy các tên gọi khác nhau như mô hình dữ liệu ngữ nghĩa, mô hình dữ liệu chức năng. Đặc điểm chung của các mô hình này là chúng hỗ trợ: Định danh đối tượng.  Các đối tượng phức tạp  Sự phân cấp kiểu.

  25. 2.5.1. Cấu trúc đối tượng Tập các cấu trúc đối tượng có thể định nghĩa trong mô hình của chúng ta là rất gần với tập các sơ đồ có thể của các cơ sở dữ liệu trong mô hình phân cấp. Chúng ta có thể định nghĩa một tập các kiểu đối tượng cho phép cùng với sự cài đặt vật lý dự định của chúng một cách đệ qui như sau:  Kiểu dữ liệu nguyên tố, có nghĩa là số nguyên, số thực hay chuỗi ký tự có độ dài cố định hay độ dài thay đổi, là một kiểu đối tượng.

  26.  Nếu T là một kiểu đối tượng thì SETOF(T) cũng là một kiểu đối tượng. Một đối tượng có kiểu là SETOF(T) là một tập hợp các đối tượng có kiểu T. Do vậy, SETOF(T) còn được gọi là kiểu tập.  Nếu T1, T2…., Tk là các kiểu đối tượng thì TUPLEOF(T1, T2, ..Tk) là một kiểu đối tượng. Một kiểu đối tượng này là một k-bộ, trong đó thành phần thứ i của k-bộ có kiểu Ti. Do vậy, TUPLEOF(T1, T2, ..Tk) còn được gọi là kiểu bộ.

  27. 2.5.2. Các lớp và các phương thức Một mô hình dữ liệu hướng đối tượng không bị hạn chế đối với ký hiệu của kiểu đối tượng. Ký hiệu cơ sở thực sự là lớp mà nó là một kiểu đối tượng và một tập các phương thức hay các thao tác được thực hiện trên các đối tượng với cấu trúc đối tượng của lớp này. 2.5.3. Sự phân cấp lớp Một thành phần chủ yếu khác trong mô hình dữ liệu hướng đối tượng là ký hiệu của các lớp con và sự phân cấp giữa các lớp, một sự hình thức hoá của các liê kết “là-một”.

  28.  Giả sử chúng ta có một lớp C và chúng ta muốn định nghĩa một lớp con D. Chúng ta bắt đầu với cùng cấu trúc đối tượng với lớp con D như đối với lớp C và với cùng tập các phương thức đối với lớp con D như đối với lớp C. Sau đó chúng ta có thể thay đổi lớp C như sau:  Nếu cấu trúc đối với lớp C là một kiểu bộ có dạng: TUPLEOF(T1, T2, ..Tk) thì chúng ta có thể thêm một số thuộc tính đối với cấu trúc bộ này đặc trưng riêng cho các đối tượng thuộc lớp con D.  Chúng ta có thể tạo các phương thức mới mà chỉ áp dụng đối với lớp con D.  Chúng ta có thể định nghĩa lại các phương thức của lớp C để nó có một ý nghĩa mới đối với lớp con D.

  29. 2.6. Thiết kế cơ sở dữ liệu  Một CSDL được thiết kế tốt cho phép người sử dụng truy cập nhanh chóng đến những thông tin cần tham khảo, giúp tiết kiệm được thời gian truy xuất thông tin. Một CSDL thiết kế tốt giúp người sử dụng rút ra được những kết quả nhanh chóng và chính xác hơn.  Khi bắt tay thiết kế CSDL, chúng ta phải xác định và phân tích các thông tin muốn lưu trữ thành các đối tượng riêng rẽ, sau đó báo cho Hệ QTCSDL biết các đối tượng đó liên quan với nhau như thế nào. Dựa vào các quan hệ đó mà Hệ QTCSDL có thể liên kết các đối tượng và rút ra các số liệu tổng hợp cần thiết.

  30. CÁC BƯỚC THIẾT KẾ CSDL Bước 1: Xác định mục tiêu khai thác CSDL. Bước 2: Xác định các bảng dữ liệu cần thiết. Mỗi đối tượng thông tin sẽ hình thành một bảng trong CSDL của chúng ta. Bước 3: Sau khi đã xác định xong các bảng cần thiết, tiếp đến ta phải chỉ rõ thông tin nào cần quản lý trong mỗi bảng, đó là xác định các trường. Mỗi loại thông tin trong bảng gọi là trường.

  31. Bước 4: Xác định các mối quan hệ giữa các bảng. Bước 5: Tinh chế, hiệu chỉnh lại thiết kế. Phân tích lại thiết kế ban đầu để tim lỗi, tạo bảng dữ liệu và nhập vào vài bản ghi, thử xem CSDL đó phản ánh thế nào với những yêu cầu truy xuất của chúng ta, có rút được kết quả đúng từ những bảng dữ liệu đó không. Thực hiện các chỉnh sửa thiết kế nếu thấy cần thiết.

More Related