IV. Thiết kế hệ thống thông tin quản lý
4. Cơ sở dữ liệu
4.1 Các khái niệm cơ bản liên quan đến cơ sở dữ liệu
Để hiểu về cơ sở dữ liệu trớc hết ta cần tìm hiểu một số khái niệm có liên quan đến vấn đề này.
Trớc khi có máy tính điện tử thì ngời ta vẫn phải thu thập lu trữ, xử lý, phân tích và cập nhập thờng xuyên dữ liệu. Các dữ liệu này thờng đợc lu trữ trên các giấy, các phơng tiện nhớ khác nh băng t, bìa cứng, thậm chí là trên trí óc của những cá nhân làm công tác này. Công việc này thờng tốn kém cả về sức ngời sức của và thời gian xử lý, đồng thời kết quả xử lý thông tin thờng là không cao và thiếu chính xác dễ thất lạc, quy trình xử lý phức tạp, rờm rà, khả năng tìm kiếm thông tin hạn chế nếu lợng thông tin cần lu trữ là lớn và đơng nhiên kết quả cũng thờng không cao.
Khi có máy tính điện tử ngời ta đã dùng các hệ quản trị cơ sở dữ liệu để lu trữ, bảo quản, cập nhật, xử lý va tìm kiếm thông tin. Hệ quản trị cơ sở dữ liệu là một phần mềm mà ta có thể tạo ra, lu trữ, tổ chức và tìm kiếm từ một cơ sở dữ liệu hay tập hợp từ các cơ sở dữ liệu.
Cơ sở dữ liệu liên quan đến một số khái niệm nh sau:
Thực thể(Entity) là một đối tợng nào đó mà ngời ta muốn quản lý thông tin liên quan đến nó, thực thể có thể là ngời, sự vật hiện tợng hay một khái niệm nào đó, chẳng hạn thực thể cán bộ, thực thể sinh viên, thc thể phòng ban.
Mỗi thực thể có các thông tin liên quan mà ta cần lu trữ gọi là các thuộc tính (Attribute), các thuộc tính là các yếu tố dữ liệu tách biệt mà không thể chia nhỏ đ- ợc nữa, ví dụ nh thực thể khách hàng có các thuộc tính nh mã khách hàng, họ tên khách hàng , địa chỉ và số điện thoại, email, chỗ ở hiện tại.
Bảng (Table) là nơi lu trữ các thông tin về thực thể, ví dụ bảng “Danh Mục Khách Hàng” lu trữ các thông tin về tất cảc các khách hàng.
Mỗi bảng có các dòng (Row) hay còn gọi là một bản ghi (Record). Mỗi bản ghi lu trữ các thông tin đầy đủ về một cá thể (Instance) tức là một biểu hiện cụ thể, riêng biệt của thực thể. Mỗi bảng còn có các cột (Column), hay còn gọi là các
trờng (Field), các cột ghi lại một thuộc tính của tất cả các cá thể trong thực thể
Cơ sở dữ liệu (Database) là một nhóm gồm một hay nhiều bảng có liên quan với nhau.
Tập hợp các cơ sở dữ liệu có liên quan với nhau gọi là hệ cơ sở dữ liệu (DataBase System),. Ví dụ hệ cơ sơ dữ liệu của trờng đại học kinh tế quốc dân gồm các cơ sở dữ liệu lu trữ các thông tin về trờng nh cơ sở dữ liệu sinh viên, cơ sở dữ liệu giảng viên, cơ sở dữ liệu về lơng,....
4.3 Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (DataBase Management Systems) là một hệ thống các chơng trình máy tính giúp tạo lập, duy trì và sử dụng các hệ cơ sở dữ liệu. Các hệ quản trị cơ sở dữ liệu thờng đợc các công ty phần mềm sản xuất và bán trên thị trờng, các hệ quản trị cơ sở dữ liệu nổi tiếng và thông dụng hiện nay nh FoxPro For DOS, Microsoft Visual FoxPro, DB2, Oracle, My SQL, Microsoft Access,....
Hiện nay có rất nhiều ngôn ngữ đợc sử dụng làm công cụ thiết kế, xây dựng các chơng trình phần mềm phục vụ cho công tác quản lý, cũng nh trong một số lĩnh vực khác. Do vậy việc lựa chọn ngôn ngữ viết chơng trình nhằm giải quyết bài toán đặt ra là vô cùng quan trọng. Mỗi bài toán đặt ra đều có những cách giải quyết khác nhau tuỳ vào mục đích của bài toán và sự lựa chọn của ngời thực hiện bài toán đó. Mỗi ngôn ngữ đều có những điểm mạnh và nhợc điểm của nó, nên việc lựa chọn một ngôn ngữ phải dựa trên các yêu cầu của bài toán đạt ra. Các công cụ mà ngôn ngữ đó cung cấp cho ngời sử dụng trong quá trình giải quyết vấn đề, khả năng của hệ quản trị cơ sở dữ liệu phải đáp ứng đợc các yêu cầu đặt ra.
Dựa trên các yêu cầu của bài toán và quá trình phân tích thiết kế chơng trình thì phải tìm ra đợc một giải pháp phần mềm tối u. Tức là phải đảm bảo thông tin chính xác, dễ sử dụng vào công tác quản lý, giao diện đẹp, thân thiện với ngời sử
dụng,... Trên cơ sở phân tích bài toán, tìm hiểu các ngôn ngữ, em quyết định lựa chọn ngôn ngữ Microsoft Visual Foxpro 7.0 để xây dựng chơng trình.
Giới thiệu về Microsoft Visual FoxPro
Microsoft Visual Foxpro 7.0 là hệ thống cơ sở dữ liệu quan hệ nổi tiếng với khả năng đơn giản hoá thủ tục thiết kế trình quản lý dữ liệu. Microsoft Visual Foxpro 7.0 giúp dễ dàng tổ chức dữ liệu, định nghĩa các nguyên tắc áp dụng cho cơ sở dữ liệu và xây dựng chơng trình ứng dụng, nó cho phép nhanh chóng kiến tạo các biểu mẫu, vấn tin, báo biểu dựa vào bộ công cụ thiết kế giao diện đồ hoạ, Ngoài ra Microsoft Visual Foxpro 7.0 còn cho phép thiết kế nhanh các trình ứng dụng có đầy đủ các tính năng thông qua các trờng thiết kế thích hợp, cung cấp các công cụ lập trình hớng đối tợng cực kỳ mạnh mẽ, khả năng máy khách/ máy chủ (Client/ Sever), hỗ trợ OLE và ActiveX. Nói tóm lại Microsoft Visual Foxpro 7.0 là công cụ quản lý dữ liệu tơng tác cực kỳ mạnh mẽ và đang đợc sử dụng rộng rãi nh là một công cụ mạnh của các nhà lập trình ứng dụng chuyên nghiệp nhằm tạo ra các phần mềm quản lý doanh nghiệp, các chơng trình kế toán……….
4.4 Các phơng pháp thiết kế cơ sở dữ liệu
Có hai phơng pháp chủ yếu dùng để thiết kế cơ sở dữ liệuđó là thiết kế cơ sở dữ liệu đi từ các thông tin đầu ra và thiết kế cơ sở dữ liệu bằng phơng pháp mô hình hoá.
* Thiết kế cơ sở dữ liệu từ các thông tin đầu ra
Theo phơng pháp này ta tiến hành các bớc sau để thiết kế cơ sở dữ liệu: Bớc 1: Xác định các thông tin đầu ra
Liệt kê toàn bộ các thông tin đầu ra, nội dung tần suất và nơi nhận của chúng. Ví dụ nh với cơ sở dữ liệu cập nhật dự án ta sẽ có các thông tin đầu ra nh sau: mã dự án ,mã khách hàng , loại dự án,tên dự án,ngày bắt đầu dự kiến,ngày kết thúc dự án ,tên dự án , thời gian dự kiến, tổng kinh phí ,ngời quản trị 1, ngời quản trị 2,ng- ời quản trị 3, thh ký .…
B
ớc 2: Xác định các tên tệp cần thiết cung cấp đủ giữ liệu cho việc tạo ra từng đầu ra, trong bớc này ta cần làm các công việc nh sau:
Liệt kê các phần tử thông tin đầu ra
Liệt kê tất cả các thông tin đầu ra của mỗi phần tử thông tin cụ thể. Đánh dấu các thuộc tính lặp, các thuộc tính thứ sinh.
Gạch chân các thuộc tính khoá. Loại bỏ các thuộc tính thứ sinh.
Thực hiện chuẩn mực 1 (1.NF)
Chuẩn hoá một quy định rằng, trong mỗi danh sách không đợc chứa danh sách lặp. Nếu có các thuộc tính lặp thì phải tách các thuộc tính đó thành các danh sách con, có ý nghĩa dới góc độ quản lý.
Gắn thêm cho nó một tên, tìm cho nó một thuộc tính định danh riêng và thêm thuộc tính định danh của danh sách gốc.
Thực hiện chuẩn mực 2 (2.NF)
Chuẩn mực hoá hai quy định rằng, trong mỗi danh sách mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khóa chứ không chỉ phụ thuộc vào một phần của khoá. Nếu có sự phụ thuộc nh vậy thì phải tách những thuộc tính phụ thuộc hàm vào bộ phận của khoá thành một danh sách con mới.
Lấy bộ phận khoá đó làm khoá cho danh sách mới. Đặt cho danh sách mới này một tên riêng cho phù hợp với nội dung của các thuộc tính trong danh sách.
Thực hiện chuẩn mực 3 (3.NF)
Chuẩn hoá mức ba quy định rằng, trong một danh sách không đợc phép có sự phụ thuộc bắc cầu giữa các thuộc tính. Nếu thuộc tính này phụ thuộc hàm vào các thuộc tính kia thì phải tách chúng ra thành các thuộc tính khác nhau có quan hệ với nhau.
Xác định khoá và tên cho mỗi danh sách mới.
Sau khi đã tiến hành chuẩn hoá xong ta tiến hành mô tả các tệp dữ liệu. Mỗi danh sách xác định đợc sau bớc chuẩn hoá mức ba sẽ là một tệp cơ sơ dữ liệu. Biểu diễn các tệp theo ngôn ngữ của cơ sở dữ liệu tệp.
Bớc 3: Tích hợp các tệp để chỉ tạo ra một cơ sở dữ liệu
Từ mỗi đầu ra theo cách thực hiện của các bớc 2 sẽ tạo ra rất nhiều danh sách và mỗi danh sách liên quan đến một đối tợng quản lý, có sự tồn tại riêng tơng đối độc lập. Những danh sách nào cùng mô tả một thực thể thì tích hợp lại, nghĩa là tạo thành một danh sách chung, bằng cách tập hợp tất cả các thuộc tính chung và riêng của những danh sách đó.
B
ớc 4: Xác định khối lợng cho từng tệp và cho toàn bộ sơ đồ Xác định số lợng các bản ghi của từng tệp
Xác định độ dài của từng thuộc tính. Tính độ dài cho bảng ghi.
Đối với mỗi tệp CSDL (goi là R) ta sử dụng những số đo kinh điển cho việc tính toán khối lợng dữ liệu:
L(R) là độ dài của một bản ghi tính theo số lợng ký tự N(R) là số lợng trung bình của các bản ghi R
NP(R) là số lợng trang logic dùng bởi R TP là kích thơc trang logic.
Thì NP(R) = E1[N(R)/E(TP/L(R))]
Trong đó: - E1(x) là số nguyên đợc làm tròn lên x - E(x) là phần nguyên của x.
Khối lợng dữ liệu của một sơ đồ sẽ đợc tính theo công thc sau:
∑ N(Ri)*(L(Ri) + S + D)
Trong đó K là tổng số các tệp trên sơ đồ. Trong thực tế có thể chọn giá trị trung bình của D là 8 và giá trị trung bình của S là 12 để tính.
B
ớc 5: Xác định liên hệ logic giữa các tệp và thiết lập sơ đồ cấu trúc dữ liệu giữa các tệp
Xác định mối liên hệ giữa các tệp, biểu diễn chúng bằng các mũi tên hai chiều, nếu quan hệ một- nhiều thì vẽ hai mũi tên hớng về đó
* Thiêt kế cơ sở dữ liệu bằng phơng pháp mô hình hoá
Theo phơng pháp này ta không đi mô tả và liệt kê các thông tin đầu ra mà ta sẽ dùng các mô hình để biểu diễn các thông tin, biểu diễn sự liên kết giữa các thực thể thông tin với nhau.
Theo phơng pháp mô hình hoá các thực thể không tồn tại độc lập mà có quan hệ với nhau, các quan hệ này gồm có: liên kêt một- một, liên kết một- nhiều, liên kết nhiều- nhiều.
Cụ thể các mỗi liên kết nh sau: *1@1 Liên kết Một - Một
Một lần xuất hiện của thực thể A đợc liên kết với chỉ một lần xuất hiện của thực thể B và ngợc lại.
1@N Liên kết Một - Nhiều
Loại liên kết này phổ biến trong thực tế, một lần xuất hiện của thực thể A liên kết với một hay nhiều lần xuất hiện của thực thể B, nhng mỗi lần xuất hiện của B chỉ liên kết với một lần xuất hiện của A.
*N@M Liên kết Nhiều - Nhiều
Mỗi lần xuất của A tơng ứng với một hay nhiều lần xuất của B và ngợc lại, nhiều mỗi lần xuất của B tơng ứng với một hay nhiều lần xuất của B.
Để biểu diễn quan hệ nhiều- nhiều giữa các thực thể ngời ta dùng thực thể trung gian để biểu diễn hai quan hệ nhiều nhiều.
Các giai đoạn trong quá trình xây dựng mô hình dữ liệu : * Xác định các thuộc tính : Dựa trên 3 nguồn :
- Tri thức của bản thân về công việc đang nghiên cứu. - Những ngời sử dụng hệ thống hiện tại.
- Xem xét các tài liệu sử dụng thờng xuyên trong lĩnh vực nghiên cứu.
* Xác định kiểu thực thể : Để có đợc kiểu thực thể ngời phân tích phải chuẩn hoá nhằm mục đích :
- Tối thiểu việc lặp lại. - Tránh d thừa thông tin.
* Xác định các quan hệ : Thiết lập mối liên hệ tự nhiên giữa các thực thể và liên kết này phải ở dạng quan hệ một - nhiều.