1. Trang chủ
  2. » Thể loại khác

CƠ SỞ DỮ LIỆU. ThS Lê Văn Lợi

23 0 0

Đ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

Nội dung

Cơ sở liệu ThS Lê Văn Lợi Bà i Bài giới thiệu sơ lược mơ hình hóa liệu biến đổi mơ hình bảng mơ hình quan hệ 1./ Tổng quan mơ hình hóa liệu Mơ hình hóa bước quan trọng phát riển phần mềm xây dựng CSDL Một mơ hình liệu biểu diễn mức khái niệm cấu trúc liệu CSDL Cấu trúc liệu bao gồm đối tượng, mối liên kết đối tượng qui tắc chi phối đối tượng Mơ hình tập trung vào việc nhận thức rõ cần cần tổ chức Người ta thường khơng quan tâm nhiều đến phép tốn thực đối tượng, chủ yếu quan tâm chúng chúng liên kết với Có thể hình dung cách trực quan mơ hình liệu giống với kiến trúc tịa nhà Mơ hình liệu hồn tồn độc lập với phần cứng phần mềm Mơ hình liệu biểu diễn theo HQT CSDL cụ thể nào, mục đích biểu diễn cho người dùng xem phải thể gần với giới thực Mơ hình liệu đồng thời phải đóng vai trị cầu nối kiện qui trình giới thực với khái niệm CSDL § Phương pháp tiếp cận Trong thực tế nay, mơ hình hóa liệu có hai phương pháp tiếp cận cách tiếp cận theo mơ hình quan hệ thực thể (Entity Relationship – ER) cách tiếp cận theo mơ hình đối tượng liệu Bài quan tâm đến mô hình ER § Mơ hình hóa liệu đặt ngữ cảnh Thiết kế CSDL Trước hết ta phải thống khái niệm Thiết kế CSDL Thiết kế CSDL gì? “Thiết kế CSDL thiết kế cấu trúc logic cấu trúc vật lý nhiều CSDL nhằm thỏa mãn nhu cầu thông tin người dùng tổ chức với tập hợp ứng dụng xác lập rõ ràng” Qui trình thiết kế gồm bước sau: Khảo sát, phân tích, lập kế hoạch Thiết kế mức khái niệm Thiết kế logic Thiết kế vật lý Thiết kế chế cài đặt, chuyển giao, chạy thử vận hành Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi Bước thiết kế CSDL có mối quan hệ chặt chẽ với mơ hình hóa liệu Các phần khác nhiều liên quan đến việc thiết kế chức Nói cụ thể mơ hình CSDL quan hệ, mơ hình hóa liệu thiết kế bảng, cịn thiết kế chức thiết kế câu truy vấn, bao gồm truy vấn cập nhật truy vấn kết xuất thơng tin § Các hợp phần mơ hình hóa liệu Đầu vào mơ hình hóa liệu kết khảo sát, phân tích lập kế hoạch (bước nói trên) Người lập mơ hình đồng thời người thu thập thông tin, thu thập đặc tả yêu cầu người dùng cuối phải tiếp xúc, vấn người dùng nhu cầu ứng dụng sau họ Mơ hình hóa phải có kết đầu Đầu thứ sơ đồ quan hệ thực thể (Entity Relationship Diagram - ERD) sơ đồ đồ phải mô tả cấu trúc quan hệ liệu dạng hình vẽ Sơ đồ cơng cụ hữu hiệu giao lưu thông tin với người dùng cuối Đầu thứ hai tài liệu thiết kế Tài liệu thiết kế mô tả cách chi tiết đối tượng, mối quan hệ ràng buộc chúng Bên cạnh đó, tùy theo mức độ, người ta cần đến từ điển liệu, để xây dựng bảng cụ thể theo HQT CSDL cụ thể Tóm lại: Đầu vào: Đầu ra: khảo sát, phân tích, kế hoạch ERD, tài liệu thiết kế, từ điển liệu § Tại lại cần đến mơ hình hóa liệu Mơ hình hóa cơng đoạn tốn thời gian công sức trình phát triển ứng dụng Câu hỏi đặt liệu có cần đến cơng đoạn hay khơng, đặc biệt dự án cần thực nhanh sức ép tiến độ thời gian? Câu trả lời đơn giản: xây dựng CSDL thiếu mơ hình hóa liệu giống xây nhà khơng có thiết kế Mục tiêu mơ hình liệu tất đối tượng cần thiết có thiết kế Vì mơ hình liệu sử dụng thuật ngữ thông thường ký hiệu dễ hiểu nên dễ kiểm tra, sửa đổi người dùng kiểm tra tính đắn so với nghiệp vụ họ Mặt khác, mơ hình liệu đạt mức độ chi tiết cần thiết sở để đưa thiết kế HQT CSDL cách dễ dàng Các số liệu mơ hình sử dụng để thiết lập bảng, khóa chính, khóa ngoại, thủ tục lưu (stored procedures) bẫy (triggers) Một thiết kế tồi dẫn đến công việc sau bị rối làm cho việc thực bị chậm trễ Các thiết Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi kế tồi thường dẫn đến thiếu thông tin, mối quan hệ không dẫn đến liệu bất làm cho nghiệp vụ không đảm bảo Nói tóm lại, mơ hình liệu kế hoạch cụ thể xây dựng CSDL Để nâng cao tính hiệu quả, mơ hình phải đơn giản người dùng hiểu cấu trúc đồng thời phải đủ chi tiết để thiết lập dễ dàng CSDL quan hệ Mơ hình quan hệ thực thể (ER) mơ hình sử dụng cách rộng rãi thiết kế CSDL quan hệ 2./ Mơ hình quan hệ thực thể (Entity-Relationship Model) Năm 1976, Peter Cheng đề xuất mơ hình ER với mục tiêu thống mơ hình mạng với mơ hình quan hệ Một cách đơn giản, mơ hình ER phân chia giới thành thực thể quan hệ chúng Tiêu điểm mơ hình sơ đồ quan hệ thực thể (ERD) sơ đồ dùng để biểu diễn đối tượng Từ thời điểm báo đưa đến có nhiều cải tiến thay đổi mơ hình chấp nhận công cụ thiết kế CSDL Cơng cụ có ưu điểm sau: • Mơ hình ER ánh xạ mơ hình quan hệ Các đơn thể mơ • hình ER dễ dàng chuyển sang thành bảng Nó đơn giản dễ hiểu, trở thành công cụ hữu hiệu nhằm giao lưu ý tưởng nhà thiết kế người sử dụng 3./ Các đơn thể mơ hình ER !"!#$ Thực thể Thực thể đối tượng liệu mà ta cần lưu thơng tin Thực thể khái niệm nhận biết được, trừu tượng cụ thể, người, vật, địa danh, kiện, miễn có mối liên quan đến CSDL Ví dụ thực thể: sinh_vien, mon_hoc, khoa, bo_mon Một thực thể mơ hình ER giống bảng mơ hình quan hệ Thực thể chia thành thực thể độc lập (independent) thực thể phụ thuộc (dependent) - thuật ngữ tương đương thực thể mạnh thực thể yếu Thực thể độc lập nhận dạng cách độc lập - thực thể phụ thuộc phải nhờ vào thực thể khác để xác định Một hữu (occurrence) cá thể thực thể Một hữu thực thể giống ghi bảng mơ hình quan hệ Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi !%!#$ Thực thể đặc biệt • Thực thể liên hợp (cịn gọi thực thể giao) thực thể dùng để liên kết quan hệ nhiều-nhiều (xem phần sau) • Thực thể - thực thể mẹ nằm mối tương quan phân cấp ! !#$ Quan hệ Quan hệ biểu diễn mối tương quan nhiều thực thể Ví dụ: Nhân viên tham gia vào dự án Dự án có nhiều cơng đoạn Khoa quản lý nhiều dự án !&!#$ Thuộc tính Thuộc tính mơ tả đặc trưng thực thể Một hữu thuộc tính gọi giá trị Ví dụ, “Nguyễn Sáng Tạo” giá trị trường ho_va_ten Mỗi thuộc tính có giá trị thuộc miền giá trị định Ví dụ ho_va_ten có miền giá trị chuỗi ký tự Có hai loại thuộc tính: thuộc tính khóa thuộc tính mơ tả Thuộc tính khóa loại thuộc tính có giá trị cho hữu !'!#$ Phân loại quan hệ Các quan hệ phân loại theo bậc (degree), tính giao kết (connectivity), số lượng (cardinality), tính tồn (existence) Bậc quan hệ (degree): số lượng thực thể tham gia vào mối quan hệ Quan hệ bậc gọi quan hệ nhị nguyên (tay đôi), quan hệ bậc quan hệ tam nguyên, Quan hệ nhị nguyên quan hệ phổ biến giới thực Quan hệ nhị ngun đệ qui: ví dụ thực thể người có quan hệ anh em, quan hệ bố mẹ, Quan hệ tam nguyên (bậc 3) gồm thực thể Ví dụ, giáo viên – mơn học – giáo trình mối quan hệ tam nguyên Quan hệ n-nguyên gồm n thực thể Phần Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi lớn mơ hình liệu tách quan hệ n-nguyên thành quan hệ nhị nguyên Tính giao kết (connectivity) số lượng (cardinality) Tính giao kết thể ánh xạ hữu mối quan hệ Các giá trị đặt tên “một”, “nhiều” Cardinality số lượng cụ thể giá trị Người ta gọi chung loại quan hệ quan hệ một-một (1:1), quan hệ một-nhiều (1:N) quan hệ nhiều-nhiều (M:N) Quan hệ một-một (1:1): hữu thực thể A tương ứng với hữu thực thể B Ví dụ: Một nhân viên tương ứng với bàn làm việc Quan hệ một-nhiều (1:N): hữu thực thể A tương ứng với 0, nhiều hữu thực thể B hữu thực thể B tương ứng với hữu thực thể A Ví dụ: Một đơn vị có nhiều nhân viên; Một nhân viên thuộc đơn vị Quan hệ nhiều-nhiều (M:N): hữu thực thể A tương ứng với 0, nhiều hữu thực thể B ngược lại hữu thực thể B tương ứng với 0, nhiều hữu thực thể A Ví dụ: Một nhân viên đồng thời tham gia nhiều cơng việc Một cơng việc có nhiều nhân viên thực Tính tồn Trong quan hệ nhị nguyên, hữu thực thể A tồn có suy tồn hữu thực thể B hay khơng (A B có mối giao kết đó) gọi tính tồn Nếu B phải tồn gọi “bắt buộc” Nếu B khơng bắt buộc phải tồn gọi “tùy chọn” Ví dụ: Một nhân viên tham gia vào dự án xảy trường hợp nhân viên X không tham gia vào dự án !(!#$ Các ký hiệu Cho đến thời điểm nay, chưa tồn “chuẩn” cho ký hiệu Tuy nhiên, theo qui ước sau đây: Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi Thực thể vẽ hình chữ nhật có nhãn nhãn tên thực thể Tên thực thể cần thể danh từ số Quan hệ thể đường nét liền nối thực thể Tên quan hệ viết nét liền Quan hệ thể động từ Thuộc tính, thể hiện, cần liệt kê phía hình chữ nhật thực thực thể Thuộc tính danh từ số Các thuộc tính khóa gạch (hoặc ghi kèm chữ viết tắt PK, FK) Giao kết “nhiều” thể chân quạ ngón (hoặc dấu trịn đậm – ký hiệu IDEFIX) Nếu khơng phải chân quạ ngón (hoặc dấu trịn đạm) giao kết “một” Tính tồn thể vòng tròn vạch đứng Nếu thực thể bắt buộc ta vẽ vạch đứng Nếu thực thể tùy chọn ta vẽ vịng tròn Đọc vạch đứng đọc vòng tròn (khơng) Ví dụ: tên thực thể Tồn bắt buộc thuộc tính khóa Tồn tùy chọn dept project thực dept_id Thực thể project_id nhiều Quan hệ tên thuộc tính Hình 1: Các ký hiệu ERD dept dept_id (PK) project thực project_id (PK) Hình 2: Sơ đồ ERD lược giản (theo qui ước IDEFIX) Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi 4./ Nhận dạng đối tượng quan hệ chúng Trước xây dựng mơ hình, phải nhận thực thể, đâu thuộc tính đâu mối quan hệ chúng Thông tin lấy từ đâu? Thông tin lấy từ kết khảo sát phân tích yêu cầu toán, từ nghiệp vụ, từ tài liệu, từ lần vấn, Khi có thơng tin rồi, làm ta nhận thực thể, đâu thuộc tính, đâu mối quan hệ? Trong lý thuyết mơ hình hóa quan hệ thực thể, người ta biến đổi từ lơ tài liệu thơng tin thành mơ hình quan hệ thực thể Người thiết kế phải làm việc Quan hệ tương đối dễ nhận biết (quan hệ động từ) thực thể thuộc tính thường dễ bị lẫn lộn Ví dụ, ta cần mơ hình hóa tốn “các chun viên làm việc cho dự án” Rõ ràng, dự án thực thể Liệu chuyên viên thực thể độc lập thuộc tính dự án? Câu trả lời tùy vào trường hợp cụ thể Chẳng hạn, văn phịng dự án có số lượng chun viên (5-7 người) chun viên trở thành thuộc tính thực thể dự án Trong trường hợp đơn vị thực dự án có đông chuyên viên chuyên viên đồng thời tham gia nhiều dự án chun viên lúc trở thành thực thể Chỉ có số qui tắc: • • • Thực thể thường hàm chứa thơng tin mơ tả Thuộc tính thường đóng vai trị mơ tả thực thể thơng tin dùng để nhận biết thực thể Mối quan hệ áp dụng thực thể, không áp dụng cho thuộc tính &!"!#$ Nhận biết thực thể Sau số qui tắc giúp ta nhận biết thực thể: • • • • Thực thể đối tượng khái niệm; Nếu ta có đối tượng A ta lại có nhiều đối tượng khác mơt tả đối tượng A A chắn thực thể Nếu ta khơng tìm thấy đối tượng khác mơ tả A A khơng phải thực thể; Một thực thể thường đại diện cho lớp đối tượng đối tượng có số đặc điểm chung Ví dụ Hamlet Vua Lia kịch kịch có đặc điểm chung có tên, có tác giả, có nhân vật Từ ta có thực thể kịch, “Hamlet” “Vua Lia” hữu kịch Có số thực thể lõi số thực thể khác Ví dụ thực thể người lõi chung cho thực thể giáo viên thực thể sinh viên; Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi • • Thực thể không nên để phụ thuộc vào thời gian Ví dụ, ta khơng nên có thực thể q 1, quí 2, quí 3, quí nên có thực thể q; Người dùng cuối thường áp đặt thơng tin lên mơ hình họ cho quan trọng họ Chú ý loại thông tin không thiết phải trở thành thực thể, phần lớn trường hợp ta phải tách chúng ra; &!%!#$ Nhận biết thuộc tính Các thuộc tính loại liệu có tính (như số Chứng minh thư, số hiệu sinh viên) loại liệu mô tả đối tượng khác (ngày tháng năm sinh, q qn) Loại liệu có tính gọi thuộc tính khóa Các thuộc tính khác gọi thuộc tính mơ tả Các thuộc tính phải ngun tử - nghĩa thuộc tính khơng thể phân tích thành tổ hợp thuộc tính khác Quan điểm nguyên tử tùy theo ngữ cảnh Ví dụ, thuộc tính họ tên Liệu có cần tách tên khỏi họ đệm không? Trong ngữ cảnh tách ngữ cảnh khơng? § Thuộc tính suy diễn Thuộc tính suy diễn thuộc tính mà giá trị kết tính tốn thuộc tính khác Đây loại thuộc tính mà mặt lý thuyết mơ hình quan hệ, ta khơng lưu gây dư thừa thông tin Tuy nhiên, mô hình ER, có hai trường phái: trường phái ủng hộ việc có mặt thuộc tính suy diễn mơ hình ER trường phái khơng ủng họ việc Lý cần có mặt thuộc tính suy diễn? • Dưới góc độ nghiệp vụ, người ta cần thơng tin • Cần nêu rõ, mơ hình, có mặt thuộc tính mơ hình ER mơ hình dành cho người thiết kế lẫn người dùng Các thuộc tính gần với nghiệp vụ người dùng thuyết phục họ § Giá trị mã Có số loại thuộc tính, người thiết kế hay đưa mã vào Chẳng hạn, thay đưa vào giá trị đầy đủ, người ta hay viết tắt tên thành phố chữ Hà Nội có mã HAN, TP Hồ Chí Minh có mã HCM, Hay mã ngôn ngữ thường có hai chữ cái: EN = tiếng Anh, VI = tiếng Việt, FR = tiếng Pháp, Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi &! !#$ Nhận biết quan hệ Quan hệ liên kết thực thể Thông thường ta dùng động từ để biểu diễn quan hệ Nhân viên định thực dự án Quan hệ có đặc trưng số lượng (1:1, 1:N, M:N), tính tồn (bắt buộc, tùy chọn) Ví dụ số lượng: nhân viên tham gia nhiều vào dự án, dự án có người thục hiện, Ví dụ tính tồn tại: nhân viên tham gia dự án khơng, sinh viên bắt buộc phải có mặt lớp học &!&!#$ Đặt tên qui ước Qui tắc chung: • Tên • Tên phải có nghĩa • Phải gồm đủ số từ để hiểu đối tượng Qui ước: • Tất chữ tên viết thường khơng dấu • Khi tên gồm nhiều từ, từ nối với dấu gạch • Trừ trường hợp đặc biệt, tên thuộc tính lấy từ thực thể viết tắt thực thể làm tiếp đầu ngữ &!'!#$ Định nghĩa đối tượng Tất thực thể quan hệ cần định nghĩa hình thức bảng, Hình Ví dụ: Tê n Mô tả nh an _vien Là n gười l àm vi ệc cho quan quan t r ả lương du _an Là n ội dun g công việc qu an nhằm đạt đến m ột m ục t iêu xác định cụ t hể t r on g m ột khoản g t h ời gian cụ t h ể Bai- 6.doc * * * Trang Cơ sở liệu ThS Lê Văn Lợi chi_ din h Nh ân vi ên t r ong quan có t h ể ch ỉ định t h am gia vào dự án Cù ng m ột t hời điểm , m ỗi m ột nhân viên t ham gia vào n hiều n hất dự án Cù ng m ột t hời ểm , m ỗi dự án phải có n hất n gười t hực Hình 3: Mẫu bảng định nghĩa thực thể, quan hệ Bai- 6.doc * * * Trang 10 Cơ sở liệu ThS Lê Văn Lợi 5./ Phát triển sơ đồ Khi xác định thực thể quan hệ, bước vẽ sơ đồ quan hệ thực thể (ERD) Ví dụ: Mỗi nhân viên cấp máy trạm để làm việc Tuy nhiên, máy trạm cấp cho nhân viên Chú ý quan hệ 1:1 sử dụng thực tế cách làm thơng thường ghép hai thực thể thành thực thể nhất, biến số thành thuộc tính nhan_vien may_tram cấp Hình 4: Quan hệ - (SV ghi chép lớp cách hiểu hình vẽ) Mỗi đơn vị chịu trách nhiệm dự án đảm trách dự án có đơn vị chịu trách nhiệm Trong Hình thực thể don_vi gọi thực thể mẹ, thực thể du_an thực thể (đọc theo chiểu 1:N) don_vi du_an chịu trách nhiệm Hình 5: Quan hệ - nhiều (SV ghi chép lớp cách hiểu hình vẽ) Bai- 6.doc * * * Trang 11 Cơ sở liệu ThS Lê Văn Lợi Mỗi nhân viên tham gia 0, nhiều dự án, dự án phải có nhân viên tham gia Quan hệ nhiều - nhiều xuất thảo đầu tiên, sau ta phải biến đổi thành quan hệ - nhiều (xem đây) nhan_vien du_an tham gia Hình 6: Quan hệ nhiều - nhiều (SV ghi chép lớp cách hiểu hình vẽ) Một nhân viên phải lãnh đạo nhóm nhân viên khác lãnh đạo nhan_vien Hình 7: Quan hệ đệ qui 6./ Tinh lọc sơ đồ Sau có lược đồ bản, bước tinh lọc nó, biến đổi quan hệ M:N quan hệ 1:N giải quan hệ n-nguyên với n > (!"!#$ Tất thực thể phải tham gia vào quan hệ Trừ trường hợp CSDL có bảng, cịn lại thực thể phải tham gia vào quan hệ Nếu khơng thấy thực thể có mối quan hệ với thực thể khác ta phải xem xét lại tồn Bai- 6.doc * * * Trang 12 Cơ sở liệu ThS Lê Văn Lợi (!%!#$ Giải quan hệ M:N Quan hệ M:N đưa bảng CSDL quan hệ được, phải biến đổi loại quan hệ thành quan hệ 1:N nhan_vien du_an tham gia nhan_vien tham_gia du_an định thực Hình 8: Biến đổi quan hệ M:N quan hệ 1:N Ghi nhớ tính tồn biến đổi M:N 1:N Nếu phía M N bắt buộc: a b b a_b b Hình 9: Biến đổi M:N 1:N phía M N bắt buộc Nếu phía M N tùy chọn: a b a a_b b Hình 10: Biến đổi M:N 1:N phía M N tùy chọn Bai- 6.doc * * * Trang 13 Cơ sở liệu ThS Lê Văn Lợi Nếu phía M N bắt buộc phía cịn lại tùy chọn: a b a a_b b a b a a_b b Hình 11: Biến đổi M:N 1:N phía bắt buộc phía cịn lại tùy chọn (! !#$ Giải quan hệ phức tạp Tiếp tục ví dụ trên, giả thiết ta có tình sau Người ta nhận thấy dự án có số vần đề cần giải sở người thực thi dự án phải có kỹ tương ứng Do đó, cần có chế quản lý kỹ phải quản lý mối tương quan dự án cần liệt kê kỹ cần thiết, nhân viên phải có bằng, chứng chứng minh có kỹ trước định tham gia vào dự án Để giải vấn đề trên, người thiết kế CSDL thiết kế thêm thực thể, gọi thực thể ky_nang lập mối quan hệ với thực thể khác Chúng thể Hình 12 nhan_vien ky_nang du_an Hình 12: Quan hệ tam nguyên Bai- 6.doc * * * Trang 14 Cơ sở liệu ThS Lê Văn Lợi Vấn đề quan hệ tam nguyên không biến đổi thành bảng mơ hình quan hệ Vì vậy, q trình mơ hình hóa này, ta phải biến đổi mối quan hệ phức tạp quan hệ 1:N nhan_vien du_an ky_nang nv_da_kn Hình 13: Kết biến đổi quan hệ tam nguyên thành quan hệ nhị ngun 7./ Nhận biết gán khóa chính, khóa ngoại Khóa khóa ngoại mơ hình quan hệ thực thể giống với khóa khóa ngoại mơ hình quan hệ Khóa khóa ngoại lấy từ thuộc tính )!"!#$ Nhận biết khóa khóa Khơng có lý thuyết chung tìm khóa, khóa chính, khóa ngoại từ tập hợp thuộc tính Chúng ta có vài qui tắc từ kinh nghiệm thực tế: • Tìm khóa số thuộc tính (hiển nhiên vậy) • Lấy số làm khóa Bai- 6.doc * * * Trang 15 Cơ sở liệu ThS Lê Văn Lợi • Nếu khơng tìm thấy thuộc tính làm khóa, thử tìm tổ hợp thuộc tính làm khóa • Nếu khơng tìm thấy thuộc tính làm khóa khơng tìm thấy tổ hợp làm khóa, tạo thuộc tính lấy thuộc tính làm khóa • Ngun tắc thực tế: o thực thể: nên lấy thuộc tính làm khóa; o quan hệ: lấy số thuộc tính số mũi tên đến quan hệ làm khóa (như tổ hợp khóa ngoại làm khóa chính) )!%!#$ Nhận biết khóa ngoại • Tất quan hệ phải thể khóa ngoại • Khóa ngoại thuộc tính nằm thực thể có cấu trúc giống với khóa thực thể mẹ dept project dept_id (PK) thực project_id (PK) dept_id (FK) Hình 14: Qui ước thể khóa chính, khóa ngoại thực thể 8./ Thêm thuộc tính vào mơ hình Sau xác định thuộc tính khóa, ta thêm thuộc tính khác vào mơ hình, tùy theo nhu cầu vấn đề Quá trình thường gắn với người dùng hệ thống nghiệp vụ Nguyên tắc thêm thuộc tính phụ thuộc hàm vào khóa Nếu ta khơng thấy quan hệ thuộc tính phải thuộc vào thực thể khác, thực thể Nếu ta nhận thấy có thuộc tính đa trị nghĩ đến việc lập thực thể Ví dụ, thực thể người, ta xét thuộc tính xảy vấn đề là: người có nhiều Trong trường hợp nên suy xét kỹ góc độ ứng dụng Nếu người dùng cần biết rõ gia đình, rõ ràng việc thêm Bai- 6.doc * * * Trang 16 Cơ sở liệu ThS Lê Văn Lợi thực thể chuyện tự nhiên Và quan hệ hai thực thể quan hệ 1:N Cịn người dùng khơng ý đến vấn đề lập thuộc tính có tên *!"!#$ Thuộc tính quan hệ Trong số trường hợp quan hệ có thuộc tính Ví dụ Thành viên mượn sách Quan hệ muợn, trường hợp có thuộc tính Đó là: ngày mượn, thời gian phải trả Thực chất, quan hệ M:N hình vẽ sau: thanh_vien sach mượn thanh_vien tv_id (PK) muon_sach mượn muon_id (PK) tv_id (FK) sach_id (FK) ngay_muon ngay_tra sach cho mượn sach_id (PK) Hình 15: Quan hệ có thuộc tính cách biến đổi Câu hỏi: Tại khơng dùng tổ hợp (tv_id, sach_id) làm khóa cho thực thể muon_sach mà phải dùng muon_id? *!%!#$ Có nên để thuộc tính vào sơ đồ ERD? Vấn đề nhiều chuyên gia có quan điểm trái ngược Người nói có, người nói khơng Có điểm lưu ý số lượng thuộc tính lơn (từ 30 trở lên) việc đưa thuộc tính vào sơ đồ không thực tế làm cho sơ đồ rắm rối, không rõ ràng Tác giả soạn tài liệu ủng hộ việc khơng đưa tất thuộc tính vào sơ đồ ERD Tuy nhiên, người lập mơ hình (khơng bắt buộc) đưa thuộc tính khóa khóa ngoại vào sơ đồ Bai- 6.doc * * * Trang 17 Cơ sở liệu ThS Lê Văn Lợi 9./ Các thực thể có cấu trúc phân cấp tổng quát hóa Đến thời điểm này, coi ta biết lập thực thể thuộc tính Ví dụ, nhân viên ta có thuộc tính nhan_vien_id, ten, vi_tri_cong_tac, tập hợp kỹ Trong thực tế, xảy trường hợp tập hợp thực thể có nhiều thuộc tính chung Ta lấy ví dụ, quan lớn, đơn vị thực loại dự án, ta tạm gọi dự án dự án nội Rõ ràng, hai thực thể du_an_ngoai du_an_noi_bo có nhiều điểm chung mã dự án, tên dự án, thời gian bắt đầu, thời gian kết thúc, Bên cạnh điểm chung, ta dễ dàng nhận thấy có số điểm khác biệt Ví dụ, dự án ngồi cần xác định khách hàng, chi phí dự án bao nhiêu, Như vậy, người lập mơ hình vừa đồng thời phải tìm điểm chung vừa phải tìm điểm khác biệt Q trình có tên gọi q trình tổng qt hóa thực thể Các thực thể thuộc q trình có tên gọi thực thể có cấu trúc phân cấp tổng qt hóa Người ta gộp thuộc tính chung lập thực thể thực thể đwocj phân loại thực thể cấp (supertype) Các thực thể thể khác biệt phân loại thực thể cấp (subtype) Cấp cấp có hai loại phân cấp Loại phân cấp phủ loại phân cấp loại trừ Loại phân cấp phủ loại phân cấp ví dụ Ta lấy ví dụ nhân viên biên chế nhân viên hợp đồng Các thuộc tính nhân viên biên chế nhân viên hợp đồng chung có khác biệt biên chế hay hợp đồng Người ta gọi loại thực thể thực thể loại trừ nguoi giao_vien hanh_chinh sinh_vien Hình 16: Thực thể phân cấp phủ Bai- 6.doc * * * Trang 18 Cơ sở liệu ThS Lê Văn Lợi nhan_vien nhan_vien_hd nhan_vien_bc Hình 17: Thực thể phân cấp loại trừ 10./ Chuyển đổi sơ đồ ERD thành CSDL quan hệ Mục tiêu phần lập qui trình chuyển đổi sơ đồ ERD thành CSDL quan hệ Phần chuyển đổi quan hệ nhị nguyên Tác giả không đề cập đến quan hệ phức tạp Tác giả giả thiết quan hệ M:N biến đổi 1:N trước kkhi bước vào trình "+!"!#$ Chuyển đổi quan hệ 1:1 Nếu quan hệ 1:1 mà tính tồn thực thể bắt buộc, cách tốt ghép thực thể thành a b ab Như vậy, trường hợp cịn lại (khơng tính tổng qt): a b Cách làm: q q q Tên thực thể → tên bảng (có bảng: bảng a bảng b) Chuyển thuộc tính sơ đồ thành cột bảng Bảng a lấy khóa bảng b làm khóa ngoại Khóa ngoại bảng a cho phép nhận giá trị NULL Chú ý: Do MySQL khơng xử lý từ khóa FOREIGN KEY cách qui chuẩn nên không khai báo FOREIGN KEY ví dụ Bai- 6.doc * * * Trang 19 Cơ sở liệu ThS Lê Văn Lợi tập Tuy nhiên, khai báo trường khóa ngoại trường bình thường hiểu theo chế khóa ngoại tham chiếu đến khóa bảng khác "+!%!#$ Chuyển đổi quan hệ 1:N a Cách làm: q q q b Tên thực thể → tên bảng (có bảng: bảng a bảng b) Chuyển thuộc tính sơ đồ thành cột bảng Bảng b lấy khóa bảng a làm khóa ngoại Khóa ngoại bảng b cho phép nhận giá trị NULL tính tồn phía a tùy chọn Chú ý: Do MySQL khơng xử lý từ khóa FOREIGN KEY cách qui chuẩn nên không khai báo FOREIGN KEY ví dụ tập Tuy nhiên, khai báo trường khóa ngoại trường bình thường hiểu theo chế khóa ngoại tham chiếu đến khóa bảng khác "+! !#$ Chuyển đổi thực thể phân cấp Trường hợp thực thể phân cấp phủ nhau: a b Cách làm: q q q q q c Tên thực thể → tên bảng (có n bảng: bảng a, b, ) Chuyển thuộc tính chung thành thuộc tính bảng cấp (a) Các bảng cấp lấy khóa giống với khóa bảng cấp Các bảng cấp khai báo khóa ngoại trùng với khóa Biến thuộc tính khác biệt thành cột bảng cấp Bai- 6.doc * * * Trang 20 Cơ sở liệu ThS Lê Văn Lợi Trường hợp thực thể phân cấp loại trừ nhau: a b c Cách làm: q q q Tên thực thể cấp → tên bảng (trong ví dụ bảng a) Chuyển đổi thuộc tính thực thể cấp thành cột bảng (trong bao gồm khóa chính) Lập cột có giá trị mã nhằm phân biệt thực thể cấp Ví dụ: ⇒ nhân viên thuộc biên chế thức ⇒ nhân viên hợp đồng dài hạn ⇒ nhân viên hợp đồng ngắn hạn 11./ Ví dụ CSDL họa sỹ Một họa sỹ vẽ nhiều tranh Mỗi tranh họa sỹ vẽ Một tranh đem triển lãm gallery (cũng khơng) ERD: hoa_sy tranh gallery hoa_sy (họa sỹ): STT Tên thuộc tính hoa_sy_id Kiểu liệu INT hoa_sy_ten hoa_sy_phone CHAR(35) CHAR(15) NULL? NOT NULL AUTO_INCREMENT NOT NULL Mơ tả Trường khóa Tên họa sỹ Số điện thoại họa sỹ gallery (gallery): STT Tên thuộc tính gallery_id Kiểu liệu CHAR(4) gallery_owner gallery_address gallery_phone gallery_rate CHAR(35) VARCHAR(250) VARCHAR(15) DECIMAL(18,2) NULL? NOT NULL UNIQUE NOT NULL NOT NULL Mơ tả Trường khóa Chủ gallery Địa gallery Điện thoại gallery Đơn giá thuê Bai- 6.doc * * * Trang 21 Cơ sở liệu ThS Lê Văn Lợi tranh (tranh): STT Tên thuộc tính tranh_id Kiểu liệu CHAR(10) tranh_de_tua tranh_don_gia hoa_sy_id VARCHAR(250) DECIMAL(18,2) INT gallery_id CHAR(4) NULL? NOT NULL UNIQUE NOT NULL Mơ tả Trường khóa Đề tựa tranh Đơn giá bán tranh Khóa ngoại tham chiếu hoa_sy(hoa_sy_id) Khóa ngoại tham chiếu gallery(gallery_id) Chuyển đổi thành CSDL: CREATE TABLE hoa_sy ( hoa_sy_id INT NOT NULL AUTO_INCREMENT, hoa_sy_ten VARCHAR(35)NOT NULL, hoa_sy_phone VARCHAR(15), PRIMARY KEY(hoa_sy_id) ) ; CREATE TABLE gallery ( gallery_id CHAR(4) NOT NULL UNIQUE, gallery_owner VARCHAR(35), gallery_address VARCHAR(250) NOT NULL, gallery_phone VARCHAR(15) NOT NULL, gallery_rate DECIMAL(18,2), PRIMARY KEY(gallery_id) ) ; CREATE TABLE tranh ( tranh_id CHAR(10) NOT NULL UNIQUE, tranh_de_tua VARCHAR(250), tranh_don_gia DECIMAL(18,2), hoa_sy_id INT NOT NULL, gallery_id CHAR(4), PRIMARY KEY(tranh_id) ) ; Bai- 6.doc * * * Trang 22 Cơ sở liệu ThS Lê Văn Lợi 12./ Bài tập Bài tập 6.1 – Vẽ sơ đồ ERD cho: Một trường đại học có nhiều khoa Mỗi khoa có thầy (cơ) chủ nhiệm khoa Thầy (cô) chủ nhiệm đồng thời thuộc phận hành trường Thầy (cơ) chủ nhiệm khoa đồng thời giáo viên giáo viên dạy lớp học Giáo viên phận hành nhân viên trường (nhân viên chưa giáo viên phận hành chính) Bài tập 6.2 – Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi khoa có nhiều mơn môn thuộc khoa Bài tập 6.3 – Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi khoa có nhiều mơn học Mỗi mơn học có nhiều lớp Bài tập 6.4 – Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi mơn có nhiều giáo viên Một số họ trưởng môn Bài tập 6.5– Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi giáo viên dạy nhiều lớp Có số giáo viên làm cơng tác nghiên cứu, không dạy Bài tập 6.6– Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi sinh viên ghi danh học học kỳ nhiều lớp Mỗi lớp tối đa 35 sinh viên Bài tập 6.7– Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi mơn có nhiều chun ngành cho sinh viên Sinh viên chọn chuyên ngành phải thuộc vào môn Bài tập 6.8– Vẽ sơ đồ ERD chuyển thành bảng CSDL: Mỗi sinh viên có giáo viên hướng dẫn giáo viên hướng dẫn nhiều sinh viên Không phải giáo viên hướng dẫn sinh viên Bài tập 6.9– Vẽ sơ đồ ERD tổng hợp từ tập 6.2 đến 6.8 Bai- 6.doc * * * Trang 23

Ngày đăng: 24/09/2021, 23:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w