Download presentation
Presentation is loading. Please wait.
1
TRƯỜNG ĐẠI HỌC LÂM NGHIỆP
HỆ QUẢN TRỊ CSDL NGUYỄN NHẬT MINH
2
NỘI DUNG CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU.
CHƯƠNG II: MÔ HÌNH QUAN HỆ. CHƯƠNG III: NGÔN NGỮ SQL. CHƯƠNG IV. MÔ HÌNH THỰC THỂ MỐI LIÊN HỆ
3
CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
4
Mục tiêu Trình bày những khái niệm cơ bản về cơ sở dữ liệu
Mô tả một bức tranh tổng quan về một cơ sở dữ liệu, tổ chức, thao tác và ứng dụng của cơ sở dữ liệu
5
1.1. HỆ CƠ SỞ DỮ LIỆU
6
Cơ sở dữ liệu: Một cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, mô hình hoá các đối tượng của một phần thế giới thực (một công ty, một trường học,v..v) .Dữ liệu là những sự kiện có thể ghi lại được và có ý nghĩa
7
Ví dụ: Quản lý việc học tập trong một trường đại học
Các dữ liệu là các thông tin về sinh viên, về các môn học, điểm thi….được tổ chức thành các bảng và lưu giữ chúng vào sổ sách hoặc sử dụng một phần mềm máy tính để lưu giữ chúng trên máy tính. Ta có một tập các dữ liệu có liên quan đến nhau và mang nhiều ý nghĩa, đó là một cơ sở dữ liệu.
8
1.1.2. Các tính chất của một cơ sở dữ liệu
Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực. Những thay đổi của thế giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu. Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang một ý nghĩa cố hữu nào đó. Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng. Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định phù hợp với mối quan tâm của người sử dụng. Một cơ sở dữ liệu có thể có qui mô tùy ý và có độ phức tạp thay đổi
9
Các loại thuộc tính 1.1.3. Hệ quản trị cơ sở dữ liệu
Thuộc tính tên gọi là thuộc tính cho tên gọi của cá thể, nhờ nó ta nhận biết được cá thể. Thuộc tính nhận dạng là một hay nhiều thuộc tính cho phép phân biệt được cá thể này với cá thể khác. Thuộc tính đa trị là thuộc tính mà một cá thể có thể nhận nhiều hơn một giá trị. Biểu thị trong mô hình thuộc tính đa trị là một hình ellipse kép.
10
Hệ quản trị cơ sở dữ liệu Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử dụng tạo ra, bảo trì và khai thác một cơ sở dữ liệu. Nó là một hệ thống phần mềm phổ dụng, làm dễ quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau. Định nghĩa một cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các cấu trúc và các ràng buộc cho các dữ liệu sẽ được lưu trữ trong cơ sở. Xây dựng một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các phương tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát. Thao tác một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ liệu để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu. Người ta gọi cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu bằng một thuật ngữ chung là hệ cơ sở dữ liệu (database system).
11
Hình 1.1 : Môi trường đơn giản của hệ CSDL
Người sử dụng/Người lập trình HỆ CSDL Các chương trình ứng dụng/truy vấn HỆ QTCSDL Phần mềm xử lý truy vấn/chương trình Định nghĩa dữ liệu được luu trữ (meta – data ) Dữ liệu được lưu trữ Phần mềm để truy cập dữ liệu được lưu giữ
12
1.1.4. Các đặc trưng của giải pháp cơ sở dữ liệu
Bản chất tự mô tả của hệ cơ sở dữ liệu: Hệ thống cơ sở dữ liệu không chỉ gồm có bản thân cơ sở dữ liệu mà còn có cả định nghĩa hoặc mô tả đầy đủ về cấu trúc cơ sở dữ liệu và các ràng buộc. Sự độc lập giữa chương trình và dữ liệu: Cấu trúc của các tệp dữ liệu được lưu trữ trong từ điển tách rời với các chương trình truy cập. Hỗ trợ các khung nhìn dữ liệu nhiều thành phần: Một cơ sở dữ liệu có nhiều người sử dụng, mỗi một người có thể đòi hỏi một cách nhìn thông tin hoặc một khung nhìn (view) khác nhau. Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cung cấp nhiều công cụ để định nghĩa các khung nhìn nhiều thành phần. Chia sẻ dữ liệu và nhiều người sử dụng: Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cho phép nhiều người sử dụng truy cập đồng thời đến cơ sở dữ liệu.
13
1.1.5. Các khả năng của một hệ quản trị cơ sở dữ liệu
Kiểm tra sự dư thừa: Dư thừa dữ liệu nghĩa là cùng một dữ liệu được lưu trữ nhiều lần trong cơ sở dữ liệu. Sự dư thừa dẫn đến nhiều vấn đề: cập nhật, xoá hay sửa đổi dữ liệu Hạn chế các truy cập không được phép: Khi có nhiều người sử dụng dùng chung một hệ cơ sở dữ liệu, sẽ có một số người sử dụng không được phép truy cập tất cả thông tin của hệ thống. Hệ quản trị cơ sở dữ liệu cung cấp một hệ thống con cấp phép và an ninh. Người quản trị hệ thống có thể sử dụng hệ thống con này để tạo ra các tài khoản cho người sử dụng và hạn chế truy cập trên các tài khoản đó. Cung cấp việc lưu trữ lâu dài cho các cấu trúc dữ liệu: Các đối tượng dữ liệu phải được lưu trữ lâu dài để phục vụ cho nhiều chương trình khác nhau. Cho phép tham chiếu và hành động bằng cách sử dựng các quy tắc: Các hệ quản trị có thể cung cấp các quy tắc suy diễn để suy diễn ra các thông tin mới từ các dữ liệu được lưu giữ.
14
Cung cấp nhiều giao diện người sử dụng: Các giao diện đó là các ngôn ngữ truy vấn cho người sử dụng bình thường, giao diện ngôn ngữ lập trình cho các người lập trình ứng dụng, giao diện bảng chọn hoặc mẫu biểu (gọi là giao diện người dùng đồ hoạ) cho những người sử dụng độc lập,v..v.. Biểu diễn các mối liên hệ phức tạp giữa các dữ liệu: Một cơ sở dữ liệu có thể gồm nhiều dữ liệu liên kết với nhau theo nhiều cách. Một hệ quản trị cơ sở dữ liệu phải có khă năng biểu diễn các mối liên hệ phức tạp giữa các dữ liệu cũng như việc rút ra hoặc cập nhật các dữ liệu có liên quan với nhau một cách dễ dàng và có hiệu quả. Áp đặt các ràng buộc toàn vẹn: Nhiều ứng dụng cơ sở dữ liệu có một số ràng buộc toàn vẹn phải thoả mãn đối với các dữ liệu. Hệ quản trị cơ sở dữ liệu cung cấp các khả năng định nghĩa và áp đặt các ràng buộc đó. Cung cấp việc sao lưu và phục hồi: Việc khi thác và sử dụng hệ thống cơ sở dữ liệu không thể tránh khỏi các hỏng hóc về phần cứng và phần mềm . Sau mỗi lần hỏng hóc, dữ liệu cần phải được phục hồi. Hệ thống con sao lưu và phục hồi của hệ quản trị cơ sở dữ liệu có nhiệm vụ đó.
15
1.2. NGƯỜI SỬ DỤNG HỆ CƠ SỞ DỮ LIỆU
16
Người quản trị hệ cơ sở dữ liệu ( Database Administrator – DBA): là người chịu trách nhiệm quản lý các tài nguyên là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các phần mềm liên quancác tài nguyên đó. Người này chịu trách nhiệm về việc cho phép truy cập cơ sở dữ liệu, tổ chức và hướng dẫn việc sử dụng cơ sở dữ liệu, cấp các phần mềm và phần cứng theo yêu cầu. Người thiết kế cơ sở dữ liệu (Database Designer): Người này chịu trách nhiệm xác định các dữ liệu sẽ được lưu giữ trong cơ sở, chọn các cấu trúc thích hợp để biểu diễn và lưu giữ các dữ liệu đó. Người thiết kế có trách nhiệm giao thiệp với những người sử dụng tương lai để hiểu được các đòi hỏi của họ và đưa ra một thiết kế thỏa mãn các yêu cầu đó. Những người sử dụng (End User): Những người sử dụng là những người mà công việc của họ đòi hỏi truy cập đến cơ sở dữ liệu để truy vấn, cập nhật và sinh ra các thông tin. Có thể chia những người sử dụng thành hai nhóm chính: những người sử dụng thụ động (tức là những người sử dụng không có nhiều kiến thức về hệ cơ sở dữ liệu) và những người sử dụng chủ động (là những người có hiểu biết tốt về hệ cơ sở dữ liệu ).
17
1.3. MÔ HÌNH CS DỮ LIỆU, LƯỢC ĐỒ VÀ THỂ HIỆN
Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm dùng để biểu diễn các cấu trúc của cơ sở dữ liệu. Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu. Nhiều mô hình còn có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác trên cơ sở dữ liệu.
18
1.3.1. Các loại mô hình cơ sở dữ liệu.
Mô hình dữ liệu mức quan niệm cung cấp các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng. Các mô hình này tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan tâm đến cái được biểu diễn trong cơ sở dữ liệu chứ không phải cách biểu diễn dữ liệu. Mô hình dữ liệu thể hiện, chúng cung cấp những khái niệm mà người sử dụng có thể hiểu được và không xa với cách tổ chức dữ liệu bên trong máy tính. Người ta còn gọi loại mô hình dữ liệu này là loại mô hình dữ liệu mức logic . Các mô hình dữ liệu thể hiện che dấu một số chi tiết về việc lưu trữ dữ liệu nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính. Mô hình dữ liệu vật lý cung cấp các khái niệm mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào. Các mô hình dữ liệu vật lý mô tả cách lưu trữ dữ liệu trong máy tính giới thiệu các thông tin như khuôn dạng bản ghi, sắp xếp bản ghi, đường truy cập,….
19
1.3.2. Lược đồ và Thể hiện của CSDL
Mô tả của một cơ sở dữ liệu được gọi là lược đồ cơ sở dữ liệu, nó được xác định rõ trong quá trình thiết kế cơ sở dữ liệu và không bị thay đổi thường xuyên. Có thể xem lược đồ cơ sở dữ liệu như là bộ khung của cơ sở dữ liệu. Các thông tin được lưu trữ trong cơ sở dữ liệu tại một thời điểm được gọi là một thể hiện (instance ) hay trạng thái của cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu có trách nhiệm đảm bảo rằng mỗi trạng thái cơ sở dữ liệu là một trạng thái vững chắc, nghĩa là một trạng thái thỏa mãn cấu trúc và các ràng buộc được đặc tả trong lược đồ. Vì vậy, việc đặc tả một lược đồ đúng đắn cho hệ quản trị cơ sở dữ liệu là một việc làm cực kỳ quan trọng và lược đồ phải được thiết kế một cách cẩn thận
20
1.4. KIẾN TRÚC HỆ CƠ SỞ DỮ LIỆU VÀ ĐỘC LẬP DỮ LIỆU
21
Kiến trúc ba lược đồ Mục đích của kiến trúc ba lược đồ là tách rời các ứng dụng của người dùng và cơ sở dữ liệu vật lý. Trong kiến trúc này, các lược đồ có thể được xác định ở ba mức: A. Mức trong (internal level) có một lược đồ trong (internal schema): mô tả cấu trúc lưu trữ vật lý của cơ sở dữ liệu. Nó sử dụng một mô hình dữ liệu vật lý và mô tả các chi tiết đầy đủ của việc lưu trữ dữ liệu và các đường dẫn truy cập đối với cơ sở dữ liệu. B. Mức quan niệm (conceptual level) có một lược đồ quan niệm: Nó mô tả cấu trúc của toàn bộ cơ sở dữ liệu cho một cộng đồng người sử dụng. Lược đồ quan niệm che dấu các chi tiết của cấu trúc lưu trữ vật lý và tập trung vào mô tả các thực thể, các kiểu dữ liệu, các mối liên kết, các thao tác của người sử dụng và các ràng buộc. C. Mức ngoài hoặc mức khung nhìn gồm một số các lược đồ ngoài hoặc các khung nhìn của người dùng. Mỗi lược đồ ngoài mô tả một phần của cơ sở dữ liệu mà một nhóm người sử dụng quan tâm và che dấu đối với nhóm này phần còn lại của cơ sở dữ liệu
22
Minh hoạ mô hình kiến trúc ba mức
Khung nhìn ngoài LƯỢC ĐỒ QUAN NIỆM LƯỢC ĐỒ TRONG CƠ SỞ DỮ LIỆU ĐƯỢC LƯU GIỮ
23
Sự độc lập dữ liệu Độc lập dữ liệu có thể định nghĩa như là khả năng thay đổi lược đồ tại một mức của một hệ cơ sở dữ liệu mà không làm thay đổi lược đồ ở mức cao hơn tiếp theo. Có hai loại độc lập dữ liệu: A.Độc lập dữ liệu lôgic : đó là khả năng làm thay đổi lược đồ quan niệm mà không làm thay đổi các lược đồ ngoài hoặc các chương trình ứng dụng B.Độc lập dữ liệu vật lý: đó là khả năng thay đổi lược đồ trong mà không làm thay đổi các lược đồ quan niệm hoặc các lược đồ ngoài
24
CHƯƠNG II: MÔ HÌNH QUAN HỆ
Mô hình quan hệ được Ted Codd đưa ra đầu tiên vào năm 1970 và gây được chú ý ngay tức khắc vì tính đơn giản và các cơ sở toán học của nó. Mô hình quan hệ sử dụng khái niệm quan hệ toán học như là khối xây dựng cơ sở và có cơ sở lý thuyết của nó trong lý thuyết tập hợp và logic vị từ bậc nhất. Trong chương này chúng ta sẽ nghiên cứu các khái niệm cơ bản về mô hình quan hệ
25
2.1 CÁC KHÁI NIỆM CỦA MÔ HÌNH QUAN HỆ
Mô hình quan hệ là một cách tổ chức dữ liệu ở dạng bảng hay các quan hệ gồm ba thành phần sau: A. Cấu trúc dữ liệu: được tổ chức dưới dạng bảng hay quan hệ B. Thao tác dữ liệu: Những phép toán mạnh (ngôn ngữ truy vần - SQL) để thực hiện các thao tác trên dữ liệu C. Tích hợp dữ liệu: các qui tắc nghiệp vụ nhằm duy trì tính toàn vẹn dữ liệu khi chúng được thao tác.
26
2.1.1 Quan hệ, thuộc tính, miền Quan hệ: là một bảng dữ liệu hai chiều. Mỗi quan hệ là tập hợp các cột mỗi cột được đặt duy nhất một cái tên và một số tuỳ ý các hàng không được đặt tên. Một quan hệ là sự mô tả một tập hợp các đối tượng trong thế giới thực ta gọi là thực thể. Thuộc tính:, các đối tượng được mô tả trong quan hệ có chung những đặc trưng nào đó. Các cột trong quan hệ nhằm mô tả các đặc trưng hay thuộc tính của các thực thể, mỗi cột biểu thị một đặc trưng. Nhóm lặp là một hay một số thuộc tính có giá trị khác nhau trên các hàng nhưng các giá trị ở các thuộc tính khác lại trùng nhau Bản ghi: Mỗi hàng trong quan hệ chứa dữ liệu biểu thị thông tin của một đối tượng cụ thể, mỗi hàng của một quan hệ được gọi là một bộ (tube) hay cũng gọi là bản ghi (record).
27
Ví dụ Quan hệ SINHVIÊN
28
Ví dụ quan hệ SINHVIEN trên ta có lược đồ quan hệ
Lược đồ quan hệ: Khi thay đổi dữ liệu trong bảng thì các tính chất của quan hệ không thay đổi, khi ta loại bỏ tất cả các hàng dữ liệu ra khỏi bảng, khi đó chúng ta có một bộ khung của quan hệ, bộ khung này được gọi là lược đồ quan hệ. Để mô tả một lược đồ quan hệ ta qui ước viết tên của quan hệ bằng chữ in hoa và sau đó là danh sách các thuộc tính trong dấu ngoặc đơn, các thuộc tính được viết bằng chữ thường và phân tách bởi dấu phẩy. Ví dụ quan hệ SINHVIEN trên ta có lược đồ quan hệ SINHVIEN(Họtên, Mãsố, Ngàysinh, Giớitính, Lớp, Môn, Điểm)
29
Miền giá trị: Mỗi thuộc tính trong lược đồ quan hệ có thể nhận những giá trị dữ liệu trên một tập nào đó, tập đó gọi là miền giá trị (nói vắn tắt là miền trị) của thuộc tính. Ví dụ: Trong quan hệ SINHVIEN thì thuộc tính Họtên là tập dẫy chữ cái có độ dài nhỏ hơn 25; Giớitính là tập hai giá trị “nam”, “nữ”; Điểm là tập hợp các số nguyên từ 0 đến 10.
30
2.1.2 Các đặc trưng của các quan hệ
A. Giá trị đưa vào mỗi cột là đơn nhất: Giá trị dữ liệu đưa vào một cột tương ứng với một hàng là đơn nhất thuộc miền trị của thuộc tính. B. Các giá trị đưa vào một cột phải thuộc cùng một miền dữ liệu Ví dụ các dữ liệu đưa vào cột điểm phải là các số nguyên từ 0 đến 10, không thể đưa vào các chữ như ”chín” hay ”bảy” C. Mỗi dòng là duy nhất trong bảng D. Thứ tự các cột là không quan trọng: Các cột có thể đổi chỗ cho nhau mà không làm thay đổi ý nghĩa của chúng, cột được xác định bằng tên chứ không phải bởi thứ tự của nó. E. Thứ tự các hàng không quan trọng: Các hàng đưa vào bảng có thể có thứ tự tuỳ ý
31
Ví dụ về bảng không phải là một quan hệ
32
2.2 KHÁI NIỆM VỀ CÁC DẠNG CHUẨN
33
Quan hệ có cấu trúc tốt Một quan hệ có cấu trúc tốt là quan hệ có chứa số dư thừa dữ liệu ít nhất và cho phép người dùng thêm, xoá, hay sửa đổi những hàng trong bảng mà không gây ra lỗi hoặc sự không nhất quán. Một quan hệ không có cấu trúc tốt:
34
2.2.2. Khái niệm về các dạng chuẩn
Một dạng chuẩn của một quan hệ là một trạng thái của nó có thể xác định được nhờ một số qui tắc nhất định. Các qui tắc này liên quan đến việc kiểm tra sự phụ thuộc giữa các thuộc tính trong một quan hệ. Sự tồn tại một số quan hệ phụ thuộc đặc biệt là nguyên nhân gây ra các dị thường. Chuẩn hoá là việc đưa các lược đồ quan hệ về các dạng chuẩn có cấu trúc tốt để tránh các dị thường. Người ta đã xác định được một số các dạng chuẩn mà chúng ta sẽ xem xét sau đây. Trước hết ta cần một số khái niệm liên quan.
35
a. Phụ thuộc hàm Cho quan hệ R và hai tập con khác nhau A và B của tập thuộc tính. Ta nói rằng tập thuộc tính B phụ thuộc hàm vào tập thuộc tính A hay A xác đinh B nếu với mỗi hàng của quan hệ R các giá trị của A xác định duy nhất các giá trị của B và được ký hiệu A B. Ta có thể định nghĩa sự phụ thuộc hàm một cách hình thức như sau: Nếu X là tập con của tập thuộc tính, ta ký hiệu ti[X] là các giá trị ở hàng ti trên tập thuộc tính X, khi đó A B nếu t1 và t2 là hai hàng bất kỳ của R mà có t1[A]=t2[A] kéo theo t1[B]=t2[B]
36
Hệ tiên đề Armstrong (Tham khảo)
Gọi R(U) là lược đồ quan hệ với U ={A1, A2, …,An} là tập thuộc tính. X, Y, Z,WU. Hệ tiên đề Armstrong phát biểu như sau: 1. Phản xạ: Nếu Y X thì X Y (A1) 2. Tăng trưởng: Nếu Z U và X Y thì X Z Y Z (A2) 3. Bắc cầu: Nếu X Y và Y Z thì X Z (A3) Từ hệ tiên đề Armstrong có thể suy ra một số luật sau: 4. Luật hợp: nếu X Y và X Z thì X YZ 5. Luật tựa bắc cầu: nếu X Y và WY Z thì XW Z 6. Luật tách: Nếu X Y và Z Y thì X Z
37
b. Khoá dự tuyển, khoá chính và khoá ngoại
Khoá dự tuyển – Candidate key Khoá dự tuyển của một quan hệ là một hay một tập con các thuộc tính mà giá trị của nó xác định duy nhất mỗi hàng của quan hệ. Các thuộc tính này được gọi là thuộc tính khoá Khoá dự tuyển có hai tính chất sau: Tính xác định duy nhất: Với mỗi hàng giá trị trên khoá dự tuyển là duy nhất (không có hai hàng có giá trị trên các thuộc tính khoá trùng nhau), trong khi đó các các thuộc tính không phải là khoá phụ thuộc hàm vào các thuộc tính khoá. Tính không dư thừa: Nếu bỏ đi bất kỳ thuộc tính khoá nào của khoá dự tuyển thì sẽ phá huỷ tính duy nhất của nó.
38
Khoá chính - primary key: Là khoá dự tuyển được chọn làm khoá của quan hệ.
Trong số khoá dự tuyển nêu trên của quan hệ SINHVIEN, rõ ràng nếu ta chọn (Mãsv) làm khoá thì tốt hơn. Để chọn một khoá chính ta nên theo nguyên tắc sau: Khoá nên có số ít nhất các thuộc tính. Nếu tốt nhất là chỉ gồm một thuộc tính Nếu khoá có nhiều thuộc tính, nên tạo ra thuộc tính thay chúng làm kháo cho quan hệ. Nếu khoá cấu tạo từ nhiều thuộc tính, nên tránh sử dụng các thuộc tính dễ thay đổi theo thời gian như tên địa danh chẳng hạn. Như vậy khoá chính dùng để tính nhận dạng duy nhất bản ghi trong quan hệ.
39
Khoá ngoại - foreign key:
Một khoá được dùng trong một quan hệ (bảng) để làm đại diện cho giá trị của khoá chính trong một bảng có liên hệ. Trong khi khoá chính thì chỉ chứa các giá trị duy nhất thì khoá ngoại có thể chứa các giá trị giống nhau. Ví dụ, mã sinh viên (MãSV) là khoá chính trong bảng SINHVIEN (mỗi sinh viên có một mã duy nhất), còn MãSV trong bảng SINHVIEN_MON được xem như là khoá ngoại, mỗi sinh viên có thể tham gia nhiều môn, vì vậy giá trị MASV trong bảng SINHVIEN_MON có thể trùng lặp.
40
Các dạng chuẩn cơ bản Người ta đã xác định có ba dạng chuẩn cơ bản gồm: Dạng chuẩn thứ nhất (1NF): Không có nhóm lặp trong bảng Dạng chuẩn thứ hai (2NF): + Là chuẩn 1 + Không có trường không khoá có thể phụ thuộc vào một phần của khoá chính. Dạng chuẩn thứ ba (3FN): + Là chuẩn 2. + Không có thuộc tính không khoá nào có thể phụ thuộc vào các thuộc tính không khoá khác. Nói cách khác, mỗi thuộc tính trong một bản ghi sẽ chứa thông tin về thực thể được xác định bởi khoá chính.
41
2.2.3. Chuẩn hoá các lược đồ quan hệ
Chuẩn hoá là quá trình chuyển một quan hệ có cấu trúc phức hợp thành các quan hệ có cấu trúc đơn giản hơn. Thc hiện quá trình chuẩn hoá, ta bắt đầu việc kiểm tra dạng chuẩn từ thấp đến cao và thực hiện việc tách quan hệ phức hợp thành các quan hệ đơn giản hơn
42
Nếu quan hệ không là chuẩn 1
Có nghĩa là QH có chứa các thuộc tính lặp. Khi đó ta tách thành hai quan hệ : Quan hệ thứ nhất : Gồm các thuộc tính lặp và phần khoá xác định chúng. Quan hệ thứ hai : gồm các thuộc tính còn lại và toàn bộ khoá nhưng không chứa thuộc tính lặp.
43
Ví dụ, cho lược đồ quan hệ: DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, ngàyđặt, mãhàng*, tênhàng*, đơnvịtính*, môtả*, sốlượng*) Trong quan hệ ta đánh dấu * các thuộc tính lặp. Để xác định khoá ta xác định các phụ thuộc hàm : (mãkhách) ( tênkh, địachỉkh) ( mãhàng) ( tênhàng, đơnvịtính, môtả) (sốđơn, mãhàng) ( sốlượng) (sốđơn) (mãkhách, ngàyđặt, mãhàng) Từ đó ta suy ra khoá gồm các thuộc tính bên trái của các phụ thuộc hàm : (sốđơn, mãkhách,mãhàng) Quan hệ DONHANG được tách thành hai quan hệ sau : Quan hệ 1: gồm các thuộc tính các thuộc tính lặp và phần khoá xác định chúng HÀNGĐẶT(sốđơn, mãhàng, tênhàng, đơnvịtính, môtả, sốlượng) Quan hệ 2: Gồm các thuộc tính còn lại và phần khoá xác định chúng: DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, ngàyđặt)
44
Nếu quan hệ không là chuẩn 2,
Có nghĩa là QH có chứa các thuộc tính không khoá phụ thuộc vào một phần của khoá. Khi đó ta tách thành hai quan hệ : Quan hệ thứ nhất: Gồm các thuộc tính không khoá phụ thuộc vào một phần khoá và phần khoá xác định chúng. Quan hệ thứ hai: Gồm các thuộc tính còn lại và toàn bộ khoá chính.
45
Ví dụ: Quan hệ DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, ngàyđặt) là quan hệ ở dạng chuẩn 1 nhưng chưa là chuẩn 2. Các phụ thuộc hàm: (sốđơn) (mãkhách, ngàyđặt) ; (mãkhách) (tênkh, địachỉkh). Kéo theo khoá quan hệ này là (sốđơn, mãkhách). Phụ thuộc hàm (mãkhách) (tênkh, địachỉkh) này cho thấy hai thuộc tính không khoá phụ thuộc vào một phần khoá. Vậy quan hệ DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, ngàyđặt) được tách thành hai quan hệ: (1) KHÁCH(mãkhách, tênkh, địachỉkh) (2) DONHANG(sốđơn, mãkhách, ngàyđặt)
46
Nếu quan hệ không là chuẩn 3,
Khi quan hệ ở dạng chuẩn 2 nhưng chưa ở dạng chuẩn 3, có nghĩa là trong quan hệ tồn tại các thuộc tính không khoá phụ thuộc vào các thuộc tính không khoá khác. Để đưa về dạng chuẩn 3 ta tách quan hệ như sau: Quan hệ thứ nhất: Gồm các thuộc tính không khoá và các thuộc tính không khoá khác (gọi là thuộc tính cầu) xác định chúng. Quan hệ thứ hai: Gồm các thuộc tính còn lại và thuộc tính gọi là thuộc tính cầu nói trên.
47
Ví dụ: cho lược đồ VẬNCHUYỂN(sốvậnđơn, khohàng, nơiđến, khoảngcách)
Các phụ thuộc hàm: (sốvậnđơn) ( khohàng, nơiđến, khoảngcách) ; ( khohàng, nơiđến) ( khoảngcách). Xác định được khoá là (vậnđơn). Rõ ràng trong quan hệ này (khoảngcách) là thuộc tính không khoá nhưng lại phụ thuộc vào các thuộc tính không khoá khác là (khohàng, nơiđến). Do đó, lược đồ được tách thành hai lược đồ: (1) HÀNHTRÌNH(khohàng, nơiđến, khoảngcách) (2) VẬNCHUYỂN(sốvậnđơn, khohàng, nơiđến)
48
2.3 CÁC RÀNG BUỘC QUAN HỆ, LƯỢC ĐỒ CSDL QUAN HỆ
Trong phần này chúng ta thảo luận về các hạn chế trên các dữ liệu trong một lược đồ cơ sở dữ liệu quan hệ. Các hạn chế đó được gọi là các ràng buộc. Có các loại ràng buộc : ràng buộc miền, ràng buộc khoá, ràng buộc toàn vẹn thực thể và ràng buộc toàn vẹn tham chiếu.
49
2.3.1 Các ràng buộc miền Các ràng buộc miền chỉ ra rằng giá trị của mỗi thuộc tính A phải là một giá trị nguyên tử thuộc miền giá trị thuộc kiểu dữ liệu nào đó. Các kiểu dữ liệu liên kết với các miền bao gồm: các kiểu dữ liệu số chuẩn cho các số nguyên ( short integer, integer, long integer), các số thực ( float, double precision float ). Ngoài ra còn các kiểu dữ liệu ký tự (dãy ký tự với độ dài cố định, dãy ký tự với độ dài thay đổi ), ngày, thời gian (Date, Time) tiền tệ. (currency) Các loại miền khác có thể là các miền con của một kiểu dữ liệu hoặc một kiểu dữ liệu đếm được trong đó mọi giá trị có thể được liệt kê rõ ràng
50
2.3.2 Ràng buộc khoá Thông thường, có tồn tại các tập con của các thuộc tính của một lược đồ quan hệ có tính chất là không có hai bộ nào ở trong mọi trạng thái quan hệ r của R có cùng một tổ hợp giá trị cho các thuộc tính của nó. Giả sử chúng ta ký hiệu một tập con như vậy là SK; khi đó với hai bộ khác nhau bất kỳ t1 và t2 trong một trạng thái quan hệ r của R chúng ta có ràng buộc là t1[SK] t2[SK] . Tập hợp thuộc tính SK như vậy được gọi là một siêu khoá (superkey) của lược đồ quan hệ R. Một siêu khoá SK xác định rõ một ràng buộc về tính duy nhất , phát biểu rằng không có hai bộ khác nhau trong một trạng thái r của R có cùng một giá trị cho SK. Mỗi quan hệ có it nhất là một siêu khoá mặc định, đó là tập hợp tất cả các thuộc tính của nó Một khoá K của một lược đồ quan hệ R là một siêu khoá của R với tính chất là nếu bỏ đi bất kỳ thuộc tính A nào ra khỏi K thì sẽ còn lại một tập K không phải là siêu khoá của R
51
2.3.4 Toàn vẹn thực thể, toàn vẹn tham chiếu và khoá ngoài
Ràng buộc toàn vẹn thực thể được phát biểu là: khoá chính phải luôn luôn có giá trị xác định, nghĩa là không được phép có giá trị null. Các ràng buộc khoá và ràng buộc toàn vẹn thực thể được chỉ ra trên các quan hệ riêng rẽ. Ràng buộc toàn vẹn tham chiếu được chỉ ra giữa hai quan hệ để duy trì sự tương ứng giữa các bộ của hai quan hệ.
52
Lược đồ và sơ đồ tham chiếu
53
CHƯƠNG III: NGÔN NGỮ SQL
SQL (Structured Query Language) – ngôn ngữ truy vấn có cấu trúc là ngôn ngữ con dữ liệu quan hệ rất mạnh, dễ sử dụng. Hiện nay SQL được được cài đặt trong hầu hết các phần mềm hệ quản trị CSDL như Oracle, Dbase, Access, Foxpro, SQL server
54
Các câu lệnh trong ngôn ngữ SQL được chia thành hai loại:
Các câu lệnh định nghĩa dữ liệu cho phép tạo các thành phần trong CSDL như bảng, cột (thuộc tính) và các chỉ dẫn. Các câu lệnh thao tác dữ liệu để lấy về các mẫu tin (bản ghi) từ cơ sở dữ liệu
55
3.1. Các câu lệnh định nghĩa dữ liệu:
56
Tạo bảng Câu lệnh tạo bảng có dạng tổng quát:
CREATE TABLE Tablename(FieldName DataType [Not null],...) Trong đó: FieldName là một từ đơn không có khoảng trống, bắt đầu là chữ cái tiếp theo là chữ cái (hoa hoặc thường) hoặc chữ số hoặc dấu nối. DataType là kiểu dữ liệu
57
Ví dụ: CREATE TABLE Sinhvien(Masv smalliterger, Ho char(18), Ten char(8), Ngsinh date, Gtinh char(3), Mtinh char(3), Mhuyen char(3), Mlop char(3), Cogiadinh logical)
58
Thêm một trường mới ALTER TABLE <Table_Name> ADD [COLUMN] <New_Field_Name_1> DATATYPE(<width>) … ADD [COLUMN] <New_Field_Name_n> DATATYPE(<width>) Thêm vào bảng <Table_Name> các trường mới có tên là < New_Field_Name_1> … < New_Field_Name_n> có kiểu dữ liệu là DATATYPE với độ rộng là <width> một cách tương ứng. Ví dụ: ALTER TABLE Sinhvien ADD Nganh char(3) ADD Ngaynhaphoc date
59
Xoá bảng DROP TABLE TableName
Xoá bảng được chỉ định bởi tên (TableName) ra khỏi CSDL Ví dụ: DROP TABLE SINHVIEN
60
3.2. Các câu lệnh truy tìm dữ liệu
61
Dạng tổng quát của câu lệnh truy tim dữ liệu có dạng:
SELECT *|[Field1|Expression1 [AS alias1], Field2| Expression2 [AS alias2], …FieldN| ExpressionN [AS aliasN]] [DISTINCT] [FROM Table1 | View1, Table2 | View2,…,TableN | ViewN] [WHERE <Condition_Expression>] [GROUPE BY Field1, Field2,…,FieldN] [HAVING <Condition_Expression>] [ORDER BY <Field_Name| Field_order | Expression> [ASC | DESC]]
62
Giải thích ý nghĩa các thành phần
SELECT Xác định, tìm kiếm nội dung thông tin từ các trường: Dấu “*” hiểu là từ tất cả các trường. FROM Xác định nguồn thông tin: Thông tin có thể từ các bảng hoặc các khung nhìn trong danh sách liệt kê WHERE Xác định điều kiện: Điều kiện là một biểu thức Boolean, chỉ các bản ghi (bộ|hàng) thoả mãn điều kiện mới được đưa ra Mẫu câu lệnh thường dùng nhất là: SELECT *|[Field1|Expression1 [AS alias1], Field2| Expression2 [AS alias2], …FieldN| ExpressionN [AS aliasN]] [DISTINCT] [FROM Table1 | View1, Table2 | View2,…,TableN | ViewN] [WHERE <Condition_Expression>]
63
GROUPE BY Phân nhóm hoặc gộp nhóm dữ liệu trong bảng:
Có nghĩa rằng các bản ghi (bộ|hàng) có cùng giá trị trường sẽ được gộp thành nhóm, trong quan hệ kết quả ta chỉ thấy các giá trị đại diện của nhóm. Chú ý rằng danh sách cột sau mệnh đề GROUPE BY phải bao hàm danh sách trường sau mệnh đề SELECT. HAVING <Condition_Expression> thường đi kèm với GROUPE BY trong đó biểu thức điều kiện <Condition_Expression>, trong quan hệ kết quả chỉ chứa các hàng thoả điều kiện <Condition_Expression>. Trong biểu thức điều kiện (xem…) nếu có chứa toán hạng là một biến trường thì biến trường đó phải có mặt trong danh sách trường sau mệnh đề GROUPE BY. ORDER BY <Field_List| Field_order | Expression> [ASC | DESC] Khi tìm kiếm thông tin, các thông tin lấy về sẽ được sắp xếp theo giá trị của các cột chỉ ra trong danh sách theo thứ tự tăng nếu dùng ASC, giảm nếu dùng DESC (mặc định là ASC), các giá trị bằng nhau được sắp liên tiếp liền kề nhau. Nếu có nhiều trường thứ tự sắp xếp ưu tiên theo danh sách trường từ trái sang phải. Nếu trong lệnh có dùng GROUPE BY việc sắp xếp sẽ chỉ có tác dụng cho từng nhóm được tạo ra bởi GROUPE BY.
64
Câu lệnh SQL với những tình huống phổ biến
65
Tìm kiếm không điều kiện
SELECT * FROM <Table_Name> Câu lệnh này có nghĩa rằng trả về tất cả các bản ghi với đầy đủ các trường của bảng chỉ ra bởi <Table_Name>. Ví dụ: SELECT * FROM Sinhvien SELECT <Field_List> FROM <Table_Name> Câu lệnh này có nghĩa rằng trả về tất cả các bản ghi với các trường chỉ ra trong danh sách <Field_List> của bảng chỉ ra bởi <Table_Name>. Ví dụ: SELECT ho, ten, lop, nganh FORM Sinhvien SELECT <Field_List> DISTINCT FROM <Table_Name> Câu lệnh này có nghĩa rằng trả về bản ghi với các trường chỉ ra trong danh sách <Field_List> của bảng chỉ ra bởi <Table_Name> và không có bản ghi (bộ) nào trùng nhau. Ví dụ: SELECT Tinh, Huyen DISTINCT FROM Sinhvien
66
Tìm kiếm theo điều kiện. dùng mệnh đề WHERE
Ví dụ: SELECT Ho, Ten, Lop FROM Sinhvien WHERE nganh=404 SELECT Ho, Ten, Lop FROM Sinhvien WHERE Mtinh BETWEEN “01” and “03” SELECT Ho, Ten, Lop FROM Sinhvien WHERE nganh IN (“101”,”102”,”103”) Các phép so sánh, các phép toán BETWEEN, LIKE, IN được tổ hợp bởi các phép toán logic sẽ cho ta những mệnh đề logic biểu diễn các điều kiện phức tạp hơn trong phép lọc với mệnh đề WHERE. SELECT Ho, Ten, Lop FROM Sinhvien WHERE Mtinh BETWEEN “01” and “03” and nganh IN (“101”,”103”) trong quan hệ kết quả gồm các cột ho, ten, lop các sinh viên có que quán thuộc các tỉnh có mã là 01, 02 hoặc 03 và có mã ngành học là 101 hoặc 103.
67
Các câu lệnh truy vấn lồng
Trong câu lệnh truy vấn (chính) thành phần sau HAVING hoặc WHERE ta lại có một câu lệnh SELECT gọi là câu lệnh SELECT phụ và ta nói có câu lệnh SELECT lồng.
68
Biểu thức so sánh sau HAVING hoặc WHERE của các câu lệnh lồng có thể như sau:
e[ANY | ALL | SOME] (SELECT…) trong đó e là biểu thức, là phép so sánh nào đó, ANY hoặc SOME được hiểu là bất kỳ, ALL là tất cả Kết quả truy vấn ta sẽ được các mẩu tin của câu lệnh SELECT chính thoả mãn phép so sánh với bất kỳ (ANY | SOME) hoặc tất cả (ALL) mẩu tin thu được từ câu lệnh SELECT phụ Ví dụ: SELECT sobaodanh,hoten,nganh FROM Tuyensinh WHERE diemtong>= ALL(SELECT diemtong FROM Tuyensinh) Câu lệnh trên sẽ cho kết quả là danh sách những thí sinh đạt điểm cao nhất
69
e [NOT] IN (SELECT…) ở đây e cũng là biểu thức. Kết quả của truy vấn là những bản ghi có giá trị bằng một giá trị trong kết quả của câu SELECT phụ. Ví dụ: SELECT DISTINCT MãsốNV FROM NHÂNVIÊN_DỰ ÁN WHERE (MãsốDA, Sốgiờ) IN (SELECT MãsốDA, Sốgiờ FROM NHÂNVIÊN_DỰ ÁN WHERE MãsốNV = ‘NV001’); Truy vấn này lấy ra mã nhân viêncủa tất cả các nhân viên có cặp (mãsốDA, Sốgiờ) bằng với nhân viên MãsốNV = ‘NV001’.
70
[NOT] EXISTS (SELECT…)
Kết quả của truy vấn là những bản ghi có mặt trong kết quả của câu SELECT phụ
71
Nối nhiều bảng với mệnh đề INNER JOIN
SELECT … FROM Tablename1 INNER JOIN Tablename2 ON Tablename1.fieldname1 Tablename2.fieldname2 … [WHERE …] Câu lệnh này tổ hợp bản ghi từ hai bảng Tablename1và Tablename2 nếu có giá trị so khớp bởi phép so sánh các giá trị trên trường fieldname1 của bảng Tablename1 với trường fieldname2 của bảng Tablename2.
72
Ví dụ có hai bảng sau
73
Câu lệnh sau: SELECT Makhach, Hoten, Congty, Sodonhang FROM Khachhang INNER JOINT Donhang ON Khachhang.Makhach=Donhang.Makhach sẽ cho kết quả là:
74
Các câu lệnh cập nhật dữ liệu
Nhập dữ liệu INSERT INTO TableName(Field1, Fiel2, ...Fieldn) VALUES (Val1, Val2, ...Valn) Khi các trường có vị trí cố định thì lệnh nhập có thể viết ngắn gọn: INSERT INTO TableName VALUES (Val1, Val2, ...Valn) Ví dụ: Xoá bản ghi DELETE FROM <Table_Name> [WHERE <Condition_Expression>] Xoá bản ghi thoả mãn điều kiện của mệnh đề WHERE của bảng <Table_Name> Sửa đổi dữ liệu UPDATE <Table_Name> SET <Field_Name1=Exp1, Field_Name1=Exp2, … Field_Name1=Exp3> WHERE <Condition_Expression>. Các trường (sau SET) của những bản ghi thoả mãn <Condition_Expression> của bảng <Table_Name> được thay thế bằng các giá trị của biểu thức tương ứng.
75
CHƯƠNG IV. MÔ HÌNH THỰC THỂ MỐI LIÊN HỆ
76
Mục tiêu Phân tích dữ liệu, xác định các đơn vị thông tin cơ bản cần thiết của tổ chức, mô tả cấu trúc và mối liên hệ giữa chúng Tạo Mô hình dữ liệu quan niệm kiểu “mô hình thực thể mối liên hệ” - ER Chuyển mô hình ER sang mô hình dữ liệu logic
77
4.1. Các khái niệm
78
Thực thể: Một thực thể là khái niệm chỉ một tập hợp các đối tượng cụ thể hay các khái niệm có cùng đặc trưng (hay thuộc tính) chung Các thực thể tồn tại trong thế giới thực. Qui ước: Mỗi thực thể được gán một cái tên duy nhất. Tên thực thể là một cụm danh từ và viết bằng chữ hoa. Biểu diễn thực thể là một hình chữ nhật có tên bên trong. Một đối tượng cụ thể của thực thể được gọi là cá thể.
79
Ví dụ: Thực thể SINH VIÊN
80
4.1.2. Thuộc tính Các đặc trưng của thực thể còn gọi là các thuộc tính
Mỗi thuộc tính được biểu thị bằng một cái tên duy nhất. Mỗi thực thể có một tập các thuộc tính gắn với nó. Dưới dạng mô hình, thuộc tính được biểu diễn như hình ellips, bên trong là tên của thuộc tính và được nối với thực thể bằng đoạn thẳng
81
Ví dụ SINH VIEN Mã sinh viên Họ tên Địa chỉ Số điện thoại Lớp
82
Các loại thuộc tính Thuộc tính tên gọi là thuộc tính cho tên gọi của cá thể, nhờ nó ta nhận biết được cá thể. Thuộc tính nhận dạng là một hay nhiều thuộc tính cho phép phân biệt được cá thể này với cá thể khác. Thuộc tính đa trị là thuộc tính mà một cá thể có thể nhận nhiều hơn một giá trị. Biểu thị trong mô hình thuộc tính đa trị là một hình ellipse kép.
83
Biểu thị trong mô hình thuộc tính đa trị
NHÂN VIÊN Mã nhân viên Họ tên Địa chỉ Số điện thoại Kỹ năng
84
Các mối liên hệ Mối liên hệ giữa các thực thể biểu thị quan hệ giữa các cá thể của các thực thể Mối liên hệ chia thành hai loại theo hai kiểu quan hệ: Quan hệ tương tác: Mối quan hệ này thường được biểu diện bằng một động từ như: HỌC, MUA, THAM GIA… Quan hệ phụ thuộc: các từ biểu thị sự sở hữu thường được dùng cho mối quan hệ này như: CÓ, THUỘC, LÀ… Trong mô hình, các mối liên hệ được biểu thị bằng hình thoi với tên của mối liên hệ bên trong, tên của mối liên hệ được viết bằng chữ hoa.
85
Ví dụ CÔNG TY HÀNG HOÁ CUNG CẤP
86
Mối liên hệ cũng có thuộc tính
KHÁCH HÀNG mã khách tên khách địa chỉ khách mã hàng tên hàng đơn vị tính số đơn hàng ngày đặt số lượng đặt NHẬN mô tả hàng Ví dụ
87
Bản số của thực thể Mỗi cá thể của thực thể A có thể quan hệ với một và chỉ một với cá thể của thực thể B và ngược lại, thì quan hệ đó được gọi là quan hệ một - một (1-1) Mỗi cá thể của thực thể A có thể quan hệ với nhiều cá thể của thực thể B, ngược lại mỗi cá thể của thực thể B chỉ có thể quan hệ với chỉ một cá thể của thực thể A, thì quan hệ đó gọi là quan hệ một-nhiều (1-N) Mỗi cá thể của thực thể A có thể quan hệ với nhiều cá thể của thực thể B và ngược lại mỗi cá thể của thực thể B có thể quan hệ với nhiều cá thể của thực thể A, thì quan hệ đó gọi là quan hệ nhiều-nhiều (N-N)
88
Bản số của thực thể B trong quan hệ với thực thể A là số cá thể của thực thể B có thể liên kết với một cá thể của thực thể A trong mối quan hệ. Bản số nhỏ nhất (lớn nhất) của thực thể B trong quan hệ với thực thể A là số nhỏ nhất (lớn nhất) cá thể của thực thể B có thể liên kết với một cá thể của thực thể A. Biểu diễn: Trong mô hình biểu diễn bản số của thực thể ta dùng các ký hiệu O, I và để biểu thị các bản số là không, một và nhiều. Với mỗi thực thể ta ký hiệu bản số của nó bằng hai ký hiệu, ký hiệu thứ nhất gần sát với thực thể trên đường nối với mối liên hệ biểu thị bản số lớn nhất, tiếp theo là ký hiệu bản số nhỏ nhất
89
Dưới đây là các hình mô tả các biểu thị bản số của thực thể:
90
Ví dụ PHIM BẢN SAO SAO SINH VIÊN MÔN HỌC HỌC
91
Sự phụ thuộc tồn tại Sự phụ thuộc tồn tại là thuật ngữ chỉ ra rằng cá thể của thực thể này không thể tồn tại nếu không có cá thể của thực thể khác qua mối quan hệ. Một thực thể với cá thể phụ thuộc tồn tại còn được gọi là một thực thể yếu Trong mô hình biểu thị quan hệ giũa thực thể PHIM và BẢN SAO, thì bản sao là một thực thể yếu
92
Bậc của mối liên hệ Mối liên hệ bậc một. Mối liên hệ bậc hai
Mối quan hệ bậc ba NGƯỜI KẾT HÔN CÔNG TY MẶT HÀNG CUNG CẤP THẦY MÔN HỌC DẠY LỚP
93
Mô hình hoá các thuộc tính đa trị
Thuộc tính đa trị được tách ra khỏi thực thể thành một thực thể riêng và tạo liên kết với thực thể mà nó được tách ra Ví dụ tách thuộctính “kỹ năng” ra khỏi thực thể NHÁN VIÊN NHÂN VIÊN Mã NV Họ tên địa chỉ KỸ NĂNG tên kỹ năng CÓ
94
Nhóm lặp Nhóm lặp chỉ một tập thuộc tính đa trị có quan hệ logic với nhau. Ví dụ xét mô hình sau: SẢN PHẨM mã sản phẩm giá ngày có hiệu lực
95
Nhóm lặp này được thay thế bằng một thực thể yếu có liên kết với thực thể mà nó được tách ra
Ví dụ SẢN PHẨM mã sản phẩm giá ngày có hiệu lực LỊCH SỬ GIÁ CÓ
96
4.2. Các bước xây dựng một mô hình dữ liệu quan niệm
97
1. Liệt kê chính xác hoá và lựa chọn các thông tin cơ sở
Từ các tài liệu, hồ sơ khảo sát được chọn, ta cần xây dựng một từ điển các thuộc tính. Để làm như vậy, với mỗi hồ sơ, chứng từ: Ghi tên của hồ sơ và liệt kê đầy đủ các mục liệu của nó bên dưới, mỗi mục liệu được xem như là một thuộc tính, Tìm từ hoặc cụm từ mang đủ ý nghĩa và được hiểu theo nghĩa duy nhất để biểu thị mỗi mục liệu và được xem như là tên của thuộc tính. Hai thuộc tính có tên khác nhau để chỉ hai mục liệu khác nhau
98
2. Xác định các thực thể, các thuộc tính và định danh nó
Xác đinh thuộc tính “tên gọi”: mỗi thuộc tính tên gọi tương ứng với một thực thể. Mỗi thực thể phải được đặt tên cho sát với tên hồ sơ gốc, nó phải phản ảnh đúng đối tượng nghiệp vụ liên quan. Tìm các thuộc tính còn lại thực sự là của thực thể đang xét, gán cho thực thể này, đánh dấu các thuộc tính vừa chọn. Xác định thuộc tính định danh: thuộc tính định danh được chọn trong các thuộc tính của thực thể (có thể là một hoặc một số thuộc tính), nếu không có các thuộc tính có thể chọn làm định danh, ta thêm một thuộc tính làm thuộc tính định danh. Quá trình này được lặp lại cho đến khi ta xác định được hết các thực thể.
99
3. Xác định các mối quan hệ và các thuộc tính của nó
Duyệt các thuộc tính còn lại tìm thuộc tính trong đó chứa các động từ chỉ sự tương tác (nếu có một số động từ chỉ cùng một tương tác thì chọn lấy một) và nó sẽ là một mối liên hệ. Mỗi động từ tìm được đặt và trả lời câu hỏi: AI? CÁI GÌ? KHI NÀO? Ở ĐÂU? BẰNG CÁCH NÀO? NHƯ THẾ NÀO? BAO NHIÊU? để tìm ra các thực thể tham gia vào mối liên hệ và các thuộc tính của mối liên hệ trong số các thuộc tính còn lại. Duyệt lại để tìm các liên hệ tương tác khác, cho đến khi không tiếp tục được nữa. Xác định mối quan hệ phụ thuộc hoặc sở hữu giữa các thực thể. Các quan hệ này thường được biểu thị bằng các nội động từ như: THUỘC, THEO, CỦA, LÀ, Ở…tạo mối liên hệ giữa các thực thể bởi quan hệ này, xác định trong số thuộc tính còn lại những thuộc tính nào thuộc mối liên hệ này để gán với nó và đánh dấu các thuộc tính đã chọn.
100
4.Vẽ biểu đồ mô hình ER Vẽ tất cả các thực thể và mối liên hệ, bố trí sao cho sơ đồ cân đối, dễ đọc, ít đường cắt nhau. Vẽ các thuộc tính gắn với các thực thể và mối liên hệ, gạch chân các thuộc tính định danh.
101
5. Xác định bản số, chuẩn hoá và thu gọn mô hình
Ta cần xác định các bản số của mối thực thể và đặt chúng lên các đường nối biểu thị mối quan hệ như đã qui ước. Chuẩn hoá mô hình: nếu có các thuộc tính đa trị, nhóm lặp ta có thể chuyển mô hình về dạng chỉ còn các thực thể với các thuộc tính đơn. Rút gọn mô hình: Một mô hình càng ít thực thể càng tốt, do đó, ta có thể rút gọn mô hình nếu có thể.
102
Về mặt kỹ thuật ta có thể rút gọn mô hình trong trường hợp sau:
Có thực thể treo và chỉ có một thuộc tính Tham gia mối quan hệ bậc hai và không có thuộc tính Mối liên hệ mà thực thể tham gia là một-nhiều và nó ở phía một.
103
Ví dụ rút gọn mô hình Rút gọn thành tên SV SINH VIÊN LỚP KHOA mã SV
mã lớp tên lớp năm nhập học địa chỉ SV THUỘC tên khoa Rút gọn thành SINH VIÊN LỚP mã SV mã lớp tên lớp năm nhập học địa chỉ SV THUỘC tên khoa tên SV
104
4.3.Thiết kế mô hình dữ liệu logic
105
Các bước thiết kế mô hình dữ liệu logic
106
a. Qui tắc chuyển các mô hình ER sang các lược đồ quan hệ.
Chuyển mỗi thực thể thành một lược đồ quan hệ Tên thực thể thành tên quan hệ (bảng) Thuộc tính của thực thể thành thuộc tính của quan hệ (bảng) Thuộc tính định danh của thực thể thành khoá của quan hệ (bảng) Mối mối liên hệ: Nếu mối liên hệ là bậc hai và có dạng một-nhiều, không có thuộc tính riêng thì thêm khoá của quan hệ (bảng) tương ứng với bên một vào quan hệ (bảng) tương ứng với bên nhiều. Các trường hợp mối liên hệ có thuộc tính riêng: ta thêm vào một quan hệ (bảng) mới gồm tất cả cá thuộc tính riêng của mối liên hệ và thuộc tính khoá của các quan hệ (bảng) tương ứng với các thực thể tham gia vào mối liên hệ này
107
b. Xác định khoá và chuẩn hoá các quan hệ (bảng) nhận được
Công việc này chỉ cần thực hiện với các quan hệ (bảng) được thêm vào từ mối liên hệ (bước nêu trên). Chuẩn hoá quan hệ được thêm vào nếu nó chưa ở dạng chuẩn
108
c. Tích hợp các quan hệ (bảng) nhận được
Việc tích hợp là việc loại đi những quan hệ trùng, giải quyết các thuộc tính đòng danh, đồng nghiã, hợp nhất các quan hệ cùng khoá. Kiểm tra chuẩn và chuẩn hoá nếu cần
109
d. Vẽ sơ đồ mô hình dữ liệu quan hệ và xác định các lực lượng tham gia vào quan hệ (bảng)
Mỗi quan hệ (bảng) được biểu thị dưới dạng sơ đồ là hình chữ nhật, có tên quan hệ (bảng) phía trên và dưới là tên các thuộc tính, trước một thuộc tính khoá ta đánh dấu bằng dấu #, các thuộc tính khoá ngoại đánh dấu bằng gạch chân. Các sơ đồ quan hệ (bảng) được nối với nhau nếu một quan hệ có khoá ngoại là thuộc tính khoá của quan hệ (bảng) kia. Xác định bản số mỗi của quan hệ (bảng) của cặp quan hệ nối với nhau được xác định chủ yếu dựa vào ngữ nghĩa giữa các quan hệ.
110
Ví dụ về tạo mô hình ER và chuyển thành mô hình quan hệ
111
Bài toán Một cửa hàng nào đó sử dụng hai loại chứng từ trong quản lý hoạt động kinh doanh như sau:
112
ĐƠN ĐẶT HÀNG số: xxxxxxx Người đặt hàng: Địa chỉ: Ngày đặt hàng:
113
PHIẾU GIAO HÀNG Số: xxxxxxx Tên khách hàng: Địa chỉ: Nơi giao hàng: Ngày giao:
114
A. Xây dựng mô hình E-R
115
B1. Từ chứng từ đã cho ta lập bảng liệt kê, chính xác hoá thông tin sau:
116
B2. Xác định các thực thể Duyệt từ trên xuống ta thấy có thuộc tính tên gọi “tên khách” và tương ứng là thực thể KHÁCH, các thuộc tính được chọn gồm: “tên khách”, “địa chỉ” và bổ sung thêm thuộc tính “mã khách” làm thuộc tính định danh. Tiếp tục duyệt ta lại gặp thuộc tính tên gọi khác là “tên hàng hoá” và tương ứng là thực thể HÀNG, các thuộc tính được chọn là: “tên hàng”, “đơn vị tính”, “mô tả” ta cần bổ sung thê thuộc tính định danh “mã hàng”.
117
B3. Xác định mối liên hệ Từ thuộc tính có chứa động từ tương tác “Đặt” ta lập bảng câu hỏi: Xác định được mối liên hệ ĐẶT liên kết hai thực thể KHÁCH và HÀNG, mối liên kết có các thuộc tính “số phiếu đặt”, “ngày đặt”, “số lượng”
118
Từ thuộc tính chứa động từ tương tác “giao” ta lập bảng
Xác định được mối liên hệ GIAO liên kết hai thực thể KHÁCH và HÀNG, mối liên kết có các thuộc tính “số phiếu giao”, “ngày giao”, “đơn giá”, “số lượng giao”
119
B4. Vẽ mô hình ER KHÁCH ĐẶT GIAO HÀNG mã khách tên khách địa chỉ khách
mã hàng tên hàng đơn vị tính số phiếu nơi giao ngày giao đơn giá số lượng giao GIAO số đơn hàng ngày đặt số lượng đặt ĐẶT mô tả hàng
120
B. Chuyển mô hình ER sang mô hình quan hệ
121
Hai thực thể KHÁCH và HÀNG được chuyển thành hai quan hệ (bảng):
KHÁCH(mãkhách, tênkhách, địachỉ) HÀNG(mãhàng, tênhàng, đơnvịtính, môtảhàng) Hai mối liên hệ ĐẶT và GIAO được chuyển thành hai quan hệ (bảng): ĐƠN HÀNG(mãkhách, mãhàng*, sốđơnđặt, ngàyđặt, sốlượngđặt*) PHIẾU GIAO(mãkhách, mãhàng*, sốphiếu, nơigiao, ngàygiao, sốlượnggiao*, đơngiágiao*)
122
C. Chuẩn hoá các lược đồ quan hệ
123
Hai quan hệ (bảng) KHÁCH và HÀNG đã là dạng chuẩn
Hai quan hệ ĐƠN HÀNG và PHIÊU GIAO chưa ở dạng chuẩn do có các thuộc tính lặp. Dùng qui tắc chuẩn hoá ta tách các quan hệ này thành các quan hệ sau: ĐƠN HÀNG được tách thành hai quan hệ: ĐƠN ĐẶT(sốđơnđặt, mãkhách, ngàyđặt) và HÀNG ĐẶT(mãhàng, sốđơnđặt, sốlượngđặt) PHIẾU GIAO được tách thành hai quan hệ: - PHIẾU GIAO(sốphiếu, mãkhách, nơigiao, ngàygiao) - HÀNG GIAO(mãhàng, sốphiếu, sốlượnggiao, đơngiágiao) Như vậy ta có các quan hệ: (1) KHÁCH(mãkhách, tênkhách, địachỉ), (2) HÀNG(mãhàng, tênhàng, đơnvịtính, môtảhàng) (3) ĐƠN ĐẶT(sốđơnđặt, mãkhách, ngàyđặt) và (4) HÀNG ĐẶT(mãhàng, sốđơnđặt, sốlượngđặt) (5) PHIẾU GIAO(sốphiếu, mãkhách, nơigiao, ngàygiao) (6) HÀNG GIAO(mãhàng, sốphiếu, sốlượnggiao, đơngiágiao)
124
D. Mô hình dữ liệu quan hệ
125
Lập bảng xác định liên kết:
126
Vẽ sơ đồ mô hình KHÁCH #Mã khách tênkhách địachỉkhách ĐƠN HÀNG
#Sốđơnđặt mã khách ngàyđặt HÀNG ĐẶT #Số đơn đặt mãhàng sốlượngđặt HÀNG GIAO #sốphiếu sốlượnggiao đơngiágiao HÀNG #mãhàng tênhàng môtả đơnvịtính PHIẾU GIAO ngàygiao nơigiao mãkhách
127
THE END THANK YOU!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.