Phương pháp thực tiễn thiết kế cơ sở dữ liệu quan hệ

  • Số trang: 64 |
  • Loại file: PDF |
  • Lượt xem: 19 |
  • Lượt tải: 0
nganguyen

Đã đăng 34173 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đặng Hữu Dũng PHƯƠNG PHÁP THỰC TIỄN THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các hệ thống thông tin HÀ NỘI - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đặng Hữu Dũng PHƯƠNG PHÁP THỰC TIỄN THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các hệ thống thông tin Cán bộ hướng dẫn: TS. Nguyễn Tuệ HÀ NỘI - 2009 MỞ ĐẦU Ngày nay cơ sở dữ liệu đã đƣợc ứng dụng rộng rãi trong công việc quản lý, giúp cho các cơ quan, tổ chức nâng cao hiệu quả hoạt động của hệ thống. Để có một cơ sở dữ liệu tốt, cần có phƣơng pháp xây dựng tốt. Có hai phƣơng pháp chính để xây dựng một cơ sở dữ liệu quan hệ: phƣơng pháp lý thuyết và phƣơng pháp thực tiễn. Phƣơng pháp lý thuyết dựa trên lý thuyết phụ thuộc hàm và đại số quan hệ, xuất phát từ một quan hệ phổ quát và một tập phụ thuộc hàm cho trƣớc, dựa trên các phụ thuộc hàm để xác định khoá và dạng chuẩn của quan hệ, từ đó áp dụng các phƣơng pháp tách để tách quan hệ ban đầu thành một tập quan hệ ở dạng chuẩn BCNF. Phƣơng pháp thực tiễn xuất phát bằng việc nghiên cứu thực tiễn và xây dựng mô hình mức quan niệm (mô hình E – R). Từ mô hình E-R, áp dụng thuật toán chuyển đổi, mô hình đƣợc chuyển đổi thành lƣợc đồ CSDL quan hệ. Trong khoá luận này chúng tôi chọn nghiên cứu và phát triển cơ sở dữ liệu theo phƣơng pháp thực tiễn. Khoá luận bao gồm 2 chƣơng: Chƣơng 1: Tìm hiểu phƣơng pháp thực tiễn xây dựng cơ sở dữ liệu quan hệ. Trong chƣơng này chúng tôi trình bày tổng quan về cơ sở dữ liệu quan hệ, các bƣớc xây dựng cơ sở dữ liệu theo phƣơng pháp thực tiễn. Chƣơng 2: Áp dụng để xây dựng một cơ sở dữ liệu cụ thể. Trong chƣơng này chúng tôi trình bày các bƣớc xây dựng hệ thống giới thiệu việc làm. Mô hình E-R, cơ sở dữ liệu và các cài đặt hệ thống sẽ lần lƣợt đƣợc trình bày trong chƣơng này. 1. Chƣơng 1. PHƢƠNG PHÁP THỰC TIỄN THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ 1.1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU QUAN HỆ 1.1.1. Các khái niệm 1.1.1.1. Miền : Gioitinh{`nam`,`nu`}. - 32767} 1.1.1.2. Thuộc tính . là DOM(A). 1.1.1.3. Tích Decac của các miền Giả sử có các miền giá trị DOM(A1), DOM(A2),…, DOM(An). Tích Decac: DOM(A1) x DOM(A2) x … x DOM(An) = { }, trong đó i = 1, 2, …, vij DOM(Aj) 1.1.1.4. Quan hệ Cho n thuộc tính A1, A2, … An với DOM(A1), DOM(A2),…, DOM(An) tƣơng ứng. - R(A1, A2, … An) gọi là lƣợc đồ quan hệ trên A1, A2, … An. - Quan hệ R tƣơng ứng với lƣợc đồ trên là: R - DOM(A1) x DOM(A2) x … x DOM(An). Ngƣời ta thƣờng biểu diễn quan hệ dƣới dạng một bảng: A1 A2 … An vi1 vi2 vij vin 2 1.1.2. Các ràng buộc trên các quan hệ Các dữ liệu trong cơ sở dữ liệu quan hệ phải thoả mãn các ràng buộc: a) Ràng buộc giá trị: vij DOM(Aj). b) Ràng buộc khoá: giá trị khoá phải duy nhất. c) Ràng buộc toàn vẹn thực thể: nếu PK là là khoá chính của quan hệ thì PK luôn có giá trị xác định. d) Ràng buộc toàn vẹn tham chiếu: nếu FK là là khoá ngoài của R tham chiếu đến PK của S thì: - FK và PK phải có cùng kiểu; - Nếu FK có giá trị thì giá trị đó phải thuộc về tập giá trị của PK. Ngoài ra, các dữ liệu còn phải thoả mãn các ràng buộc về quản lý, về pháp lý cho phù hợp với thực tiễn. 1.1.3. Các phép toán trên quan hệ (Int . 1.2. Phƣơng pháp thực tiễn xây dựng cơ sở dữ liệu Thực Mô hình quan Mô hình lôgic Mô hình 3 Phƣơng pháp thực tiễn xây dựng cơ sở dữ liệu bao gồm các bƣớc: - Xây dựng mô hình quan niệm (mô hình E-R). - Xây dựng mô hình lôgic. - Xây dựng mô hình vật lý. 1.2.1. Các khái niệm về mô quan niệm E-R . . - (E-R . 1.2.1.1. Thực thể và kiểu thực thể Thực thể đƣợc định nghĩa là một đối tƣợng có thực hay trừu tƣợng mà ta muốn lƣu trữ thông tin về nó. Kiểu thực thể: Là tập các thực thể có cùng đặc trƣng nhƣ nhau. 1.2.1.2. Thuộc tính của thực thể Thuộc tính là các đặc trƣng của các kiểu thực thể. Trong mô hình E-R, các thuộc tính bao gồm - Thuộc tính đơn, đa trị. - Thuộc tính phức hợp, thuộc tính đa trị. - Thuộc tính suy diễn đƣợc. Biểu diễn kiểu thực thể Kiểu thực thể: đƣợc biểu diễn bằng hình chữ nhật Thuộc tính đơn trị: đƣợc biểu diễn bằng hình oval Thuộc tính phức hợp: đƣợc biểu diễn nhƣ hình bên 4 Thuộc tính đa trị: Ví dụ: Ho Maso Ten HoVaTen NgaySinh GioiTinh NN SINH VIÊN 1.2.1.3. Liên kết và kiểu liê kết Liên kết thực thể chỉ mối quan hệ ràng buộc giữa các thực thể. Kiểu liên kết: Tập các liên kết có cùng đặc trƣng. Các kiểu liên kết có cùng các thuộc tính. Các liên kết có ràng buộc: - Tỷ lệ lực lƣợng: có 3 loại : 1-1, 1-N, M-N - Mức tham gia: liên kết bắt buộc hoặc tuỳ chọn. Liên kết 1 - 1: là liên kết thoả mãn điều kiện nếu xuất hiện một thực thể A thì xuất hiện một thực thể B hoặc ngƣợc lại. Biểu diễn nhƣ sau: Liên kết 1 - nhiều: là liên kết thoả mãn điều kiện nếu xuất hiện một thực thể A thì xuất hiện nhiều thực thể B hoặc ngƣợc lại, nếu xuất hiện một thực thể B thì xuất hiện nhiều thực thể A. Biểu diễn nhƣ sau: 1 N Ví dụ: Xét quan hệ giữa nhân viên và phòng trong một công ty. Đây là quan hệ một nhiều (một nhân viên thuộc chỉ một phòng còn một phòng có thể có nhiều nhân viên). 5 Liên kết nhiều -nhiều: là liên kết thoả mãn điều kiện xuất hiện nhiều thực thể A thì xuất hiện nhiều thực thể B hoặc ngƣợc lại. Biểu diễn nhƣ sau: Ví dụ: Quan hệ giữa thực thể sách và thực thể độc giả là quan hệ nhiều - nhiều (giả thiết một độc giả có thể mƣợn nhiều loại sách cùng một lúc và một loại sách có nhiều bản sao có thể cho mƣợn).  Liên kết nhiều thực thể Là mối liên kết trong đó có nhiều hơn hai thực thể. Để biểu diễn liên kết nhiều thực thể và đơn giản hoá khi biểu diễn ta quy các liên kết nhiều thực thể này về các liên kết hai thực thể bằng cách đƣa thêm vào thực thể trung gian (kí hiệu là: TG). Khi thêm thực thể trung gian (TG), liên kết nhiều - nhiều - nhiều sẽ chuyển thành 3 liên kết 1 - nhiều (đây là liên kết hai thực thể). Biểu diễn nhƣ sau: Theo định nghĩa liên kết thực thể ta có thể coi liên kết thực thể là một dạng thực thể đặc biệt và cũng đƣợc lƣu trữ. Do đó CSDL phải lƣu trữ cả hai đối tƣợng: thực thể và liên kết thực thể, đồng thời CSDL phải có khả năng biểu diễn hai đối tƣợng này. 1.2.1.4. Lƣợc đồ E-R Là 1 tập các kiểu thực 1.2.1.5. Thuật toán chuyển đổi E-R thành lƣợc đồ cơ sở dữ liệu quan hệ : : – . 6 – . ) . . . . 1.2.2. 1.2.2.1. Chọn hệ quản trị cơ sở dữ liệu a) à ? Phần chƣơng trình để có thể xử lý, thay đổi cơ sở dữ liệu gọi là Hệ quản trị cơ sở dữ liệu (viết tắt HQTCSDL, tiếng Anh là Database management system). Theo định nghĩa này HQTCSDL có nhiệm vụ rất quan trọng nhƣ là một bộ diễn dịch (interpreter) với ngôn ngữ bậc cao nhằm giúp ngƣời sử dụng có thể 7 dùng đƣợc hệ thống mà ít nhiều không cần quan tâm đến thuật toán chi tiết hoặc biểu diễn dữ liệu trong máy. Theo một cách hiểu khác: HQTCSDL là một phần mềm cho phép tạo lập CSDL và điều khiển hoặc truy nhập CSDL đó, đặc biệt HQTCSDL đảm bảo tính độc lập dữ liệu (là sự bất biến của các chƣơng trình ứng dụng đối với các thay đổi về cấu trúc lƣu trữ và chiến lƣợc truy nhập). Ví dụ: Một số Hệ QTCSDL thông dụng hiện nay: MS Access, SQL Server (của hãng Microsoft), Oracle (của hãng Oracle), DB2, FoxPro,v.v... b) Để đảm bảo tính tiêu chuẩn hoá: các hệ CSDL khác nhau, dữ liệu của các chƣơng trình ứng khác nhau dựa trên một tiêu chuẩn chung. Cung cấp các công cụ định nghĩa và thao tác dữ liệu linh hoạt Tích hợp với nhiều trình ứng dụng khác nhau: các ngôn ngữ lập trình, các ứng dụng hỗ trợ phân tích thiết kế, v.v... c) -Server (Relational Database – . (IIS), E-Commerce Server, Proxy Server... d) Hệ quản trị cơ sở dữ liệu hỗ trợ các tính năng sau: Định nghĩa dữ liệu (Database definition) Xây dựng dữ liệu (Database construction) : Chức năng định nghĩa và xây dựng dữ liệu hỗ trợ ngƣời dùng xây dựng các bộ dữ liệu riêng. Thao tác dữ liệu (Database manipulation): các thao tác cập nhật, tìm kiếm, sửa, xoá, ... Quản trị dữ liệu (Database administrator): phân quyền sử dụng, bảo mật thông tin, ... 8 Bảo vệ dữ liệu (Database protection): thực hiện các thao tác sao chép, phục hồi, tránh mất mát dữ liệu. e) Ngôn ngữ của hệ quản trị cơ sở dữ liệu bao gồm: Ngôn ngữ con định nghĩa dữ liệu (Database Definition Language - DDL): cung cấp các câu lệnh cho phép mô tả, định nghĩa các đối tƣợng của CSDL. Ngôn ngữ con thao tác dữ liệu (Database Manipulation Language - DML): dùng để thao tác, xử lý trên các đối tƣợng của CSDL nhƣ thêm, xoá, sửa, tìm kiếm,v.v... Ngôn ngữ con kiểm soát dữ liệu (Database Control Language - DCL): điều khiển tính đồng thời (tƣơng tranh) đối với dữ liệu. 1.2.2.2. -Server Tạo bảng Mệnh đề tạo bảng tạo một bảng quan hệ mới thông quan tên bảng, xác định các thuộc tính và các ràng buộc logic của bảng. Mệnh đề tạo bảng có dạng tổng quát nhƣ sau: CREATE TABLE ( [NOT NULL],...) Trong đó: Tên bảng: là xâu kí tự bất kì không có ký hiệu trống và không trùng với các từ khoá. Tên cột: là xâu kí tự bất kì không chứa ký hiệu trống,trong một bảng tên cột là duy nhất. Thứ tự của cột trong bảng là không quan trọng. Kiểu dữ liệu: trong mệnh đề tạo bảng dùng một số kiểu dữ liệu sau: - integer: kiểu số nguyên, từ - 2.147.483.648 đến - 2.147.483.647 - smallinteger: số nguyên nhỏ từ -32.768 đến 32.767 - decimal (n,p): số thập phân với độ dài tối đa là n kể cả p chữ số phần thập phân(không tính dấu chấm thập phân). - char(n): xâu kí tự có độ dài cố định n. Một số HQTCSDL cho phép kích thƣớc tối đa của char là 2000 bytes. Nếu mỗi kí tự tƣơng ứng một byte (mã ASCII nhƣ đối với hệ QTCSDL Access) thì số kí tự tối đa là 2000. Trong trƣờng hợp sử dụng bộ mã UCS2 (nhƣ đối với hệ QTCSDL SQL Server) thì số kí tự biểu diễn tối đã là 1000 kí tự (sử dụng 2 byte để biểu diễn 1 kí tự). 9 - varchar(n): xâu kí tự có độ dài biến đổi, độ dài xâu có thể từ 0 đến n và đƣợc xác định tại thời điểm đƣa giữ liệu vào lƣu trữ. . Một số HQTCSDL cho phép kích thƣớc tối đa của char là 4000 bytes. - date: dữ liệu dạng ngày tháng, định dạng ngầm định: DD - MON - YY. Ngoài ra mỗi hệ QTCSDL cũng đƣa ra các kiểu dữ liệu riêng. NULL là giá trị ngầm định khi không biết chính xác giá trị. Do đó cột đóng vai trò khoá chính không đƣợc nhận giá trị NULL, các cột khác có thể tuỳ chọn. Nhận xét: Trong mệnh đề tạo bảng có thể sử dụng thêm các yếu tố ràng buộc để hạn chế các giá trị cho một hay nhiều cột trong bảng, nhƣ: ràng buộc khoá chính, khoá ngoài, ràng buộc toàn vẹn tham chiếu, ràng buộc miền giá trị tƣơng ứng nhƣ sau: NULL: cột có thể không chứa giá trị. NOT NULL: cột phải chứa một giá trị nào đó PRIMARY KEY: ràng buộc khoá chính REFERENCE: ràng buộc khoá ngoài ON DELETE CASCADE: ràng buộc toàn vẹn tham chiếu Xoá bảng Mệnh đề xoá bảng xoá một bảng quan hệ (cả cấu trúc và nội dung của bảng) khỏi CSDL. Bảng này chỉ có thể đƣợc tạo lại bằng cách sử dụng mệnh đề CREATE TABLE. Thêm dữ liệu Đây là mệnh đề thêm một bản ghi vào một bảng và thƣờng đƣợc sử dụng để tổ chức vào dữ liệu. Dạng tổng quát nhƣ sau: INSERT INTO (, …) VALUES (,…) Có 3 cách biểu diễn mệnh đề thêm dữ liệu: Cách 1: INSERT INTO S(S#, SNAME, STATUS, CITY) VALUES (1,'VINH',30,'HA NOI' ) Cách 2: Nếu vị trí của các cột trong bảng là cố định mệnh đề có thể viết: INSERT INTO S VALUES (1,'VINH',30,'HA NOI' ) 10 Cách 3: Nếu ngƣời vào dữ liệu quên vị trí của các cột, khi đó có thể biểu diễn nhƣ sau: INSERT INTO S(S#, STATUS, CITY, SNAME) VALUES (1, 30,'HA NOI', 'VINH') Khối SELECT Cấu trúc đơn giản nhất trong SQL là khối SELECT đƣơc miêu tả về cú pháp nhƣ một khối SELECT - FROM - WHERE Một cách tổng quát khối select bao gồm 3 mệnh đề chính: SELECT: Xác định nội dung của các cột cần đƣa ra kết quả FROM: Xác định các bảng cần lấy thông tin ra. WHERE: Xác định các bản ghi thoả mãn yêu cầu chọn lọc để đƣa ra kết quả. Ngoài ra, để mở rộng khả năng của ngôn ngữ, khối SELECT còn đƣợc bổ sung thêm các mệnh đề group by, having, order by, các hàm mẫu,... Trong các phần sau sẽ trình bày chi tiết từng mệnh đề. Dạng tổng quát của khối select đƣợc biểu diễn nhƣ sau: Trong đó mệnh đề WHERE biểu diễn dƣới một số dạng sau: WHERE [NOT] phép_so_sánh WHERE [NOT] [NOT] LIKE WHERE [NOT] [NOT] BETWEEN AND WHERE [NOT] [NOT] IN ({danh sách / mệnh đề con}) WHERE [NOT] phép_kết_nối WHERE [NOT] WHERE [NOT] {AND | OR} [NOT] Các hàm thư viện Cũng giống nhƣ các ngôn ngữ CSDL khác, trong SQL có các hàm mẫu gồm count, max, min, sum, avg. Riêng hàm count khi có đối số là '*' có nghĩa là đếm số bản ghi thoả mãn yêu cầu tìm kiếm mà không cần quan tâm tới bất kì một cột nào. 11 1.2.2.3. p . : . cái . . . . . . . . . . . 12 ì – Mô : (m . ợ . . – . i nhau. 1.2.3. 1.2.3.1. . . 13 1.2.3.2. : sao. . 1.2.3.3. . . các : ) . 14 . . c. , . : ) ) ) ) 1.2.3.4. : 1.2.3.5. file ,b . ). T , . , , , 15 . , . . , , (file lị . ). là . . . và các . . có . , . : - ; - ; - ; - ; - ; - ; - . . . ( . 1.2.3.6. cơ cơ sở . vật ). : lôgic 16 , . . : 2 :Chiên l 1.2.3.7. a. của làm : Giai . . . . 1.2.3.8. là . 17 . . 1.2.3.9. . . . 1.2.3.10. . . . . 1.2.3.11. . . 1.2.3.12. trong p. . . . 1.2.3.13. dung bên . -Shneiderman. : 18
- Xem thêm -