- Vai trò của mô hình dữ liệu bậc cao trong quá trình thiết kế CSDL - Định nghĩa các thuật ngữ sau trong mô hình thực thể liên kết: Thực thể,thuộc tính,giá trị thuộc tính,thể hiện liên k
Trang 1NỘI DUNG ÔN TẬP XÉT TUYỂN VIÊN CHỨC CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
1 PHÂN TÍCH, THIẾT KẾ HỆ THỐNG THÔNG TIN
1.1 Các khái niệm cơ sở
- Hệ thống và hệ thống thông tin (HTTT)
- Các bước xây dựng HTTT
- Phương pháp phân tích & thiết kế có cấu trúc, hướng đối tượng
1.2 Phân tích chức năng, nghiệp vụ – mô hình chức năng
- Thuộc tính, khoá, giá trị
- Mô hình dữ liệu logic và vật lý
2 CƠ SỞ DỮ LIỆU VÀ NGÔN NGỮ SQL
2.1 ĐẠI CƯƠNG VỀ CÁC HỆ CƠ SỞ DŨ LIỆU
- Sự cần thiết của việc tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu (CSDL).
- Định nghĩa các thuật ngữ: CSDL,hệ quản trị CSDL,hệ CSDL.
- Chứ năng và vai trò của hệ quản trị CSDL.
- Hiểu như thế nào về tính độc lập của dữ liệu?
- Liệt kê những “vị trí ”của con người có liên quan đến hệ CSDL.
- Sự phân loại các hệ CSDL.
2.2 CÁC MÔ HÌNH DỮ LIỆU
- Phân loại các mô hình dữ liệu dựa trên các khái niệm được sử dụng để mô tả cấu trúc CSDL.
- Vai trò của mô hình dữ liệu bậc cao trong quá trình thiết kế CSDL
- Định nghĩa các thuật ngữ sau trong mô hình thực thể liên kết: Thực thể,thuộc tính,giá trị thuộc tính,thể hiện liên kết,thuộc tính phức hợp,thuộc tính đa trị,thuộc tính suy diễn được,thuộc tính khóa,miền giá trị.
- Sự khác nhau giữa một thực thể,một kiểu thực thể và một tập thực thể.
- Sự khác nhau giữa một thực thể lien kết,một tập liên kết và một kiểu liên kết.
Trang 2- Vai trò tham gia là gì?Khi nào cần phải sử dụng các tên vai trò trong mô tả các kiểu liên kết.?
- Khi nào các thực thể lien kết yều được dùng trong việc mô hình hóa CSDL? Định nghĩa các thuật ngữ:kiểu thực thể chủ,kiểu thực thể yếu,khóa bộ phận,kiểu liên kết xác định.
2.3 MÔ HÌNH CSDL QUAN HỆ
- Định nghĩa các thuật ngữ sau:mienf ,thuộc tính,n-bộ,lược đồ quan hệ,trạng thái quan hệ,cấp của quan hệ,lược đồ CSDL,trạng thái CSDL.
- Sự khác nhau của siêu khóa và khóa?
- Liệt kê các phép toán đại số quan hệ và mục đích của tứng phép toán.
- Phân loại subnet
3.1.3 Kiến trúc mạng và những vấn đề khi thiết kế
- Sự phân lớp protocol
- Những vấn đề khi thiết kế các lớp
3.1.4 Một số mô hình tham chiếu
- Mô hình tham chiếu OSI (Open Systems Interconnection)
- Mô hình tham chiếu TCP/IP (Transmission Control Protocol / Internet Protocol)
- DNS (Domain Name System)
- SNMP (Simple Network Management Protocol)
- E-MAIL , World Wide Web (HTTP)
- LDAP, Active Directory (AD).
Trang 3- Hệ thống: Là tập hợp có t ổ ch ứ c c ủa nhiều phần tử có những mối quan hệ ràng
buộc lẫn nhau cùng hoạt động chung cho một số mục tiêu nào đó Trong hoạt động có traođổi vào ra với môi trường ngoài
- Hệ thống quản lý: Là một hệ thống có một mục đích mang lại lợi nhuận hoặc lợi
ích nào đó Đặc điểm của hệ thống là có sự tham gia của con người và có trao đổi thông tin
Hệ thống quản lý chia thành hai hệ thống con:
+ Hệ tác nghiệp (trực tiếp sản xuất): gồm con người, phương tiện, phương pháp trựctiếp thực hiện mục tiêu đã đề ra
+ Hệ quản lý (gián tiếp sản xuất): Gồm con người, phương tiện, phương pháp cho phépđiều khiển hoạt động của hệ thống
Hệ này lại chia thành hai hệ con:
Hệ quyết định : Đưa ra các quyết định
Hệ xử lý thông tin : Xử lý thông tin
- Hệ thống thông tin (information system) : Là một hệ thống sử dụng công nghệ thông
tin để thu thập, truyền, lưu trữ, xử lý và biểu diễn thông tin trong một hay nhiều quá trìnhkinh doanh
Hệ thông tin phát triển qua bốn loại hình :
+ Hệ xử lý dữ liệu :lưu trữ và cập nhật dữ liệu hàng ngày, ra các báo cáo theo định kỳ (Vídụ: Các hệ thống tính lương)
+ Hệ thông tin quản lý (Management Information System - MIS): Một hệ thông tingồm cơ sở dữ liệu hợp nhất và các dòng thông tin giúp con người trong sản xuất, quản lý và raquyết định
+ Hệ trợ giúp quyết định: Hỗ trợ cho việc ra quyết định (cho phép nhà phân tích raquyết định chọn các phương án mà không phải thu thập và phân tích dữ liệu)
+ Hệ chuyên gia: Hỗ trợ nhà quản lý giải quyết các vấn đề và làm quyết định một cáchthông minh
b Vai trò, nhiệm vụ của hệ thống thông tin
Chức năng chính của HTTT là xử lý thông tin của hệ thống nghiệp vụ Quá trình xử lýthông tin như một mô hình hộp đen bao gồm: Bộ xử lý, thông tin đầu vào, thông tin đầu ra vàthông tin phản hồi cần thiết của hệ thống Bộ xử lý biến đổi dữ liệu đầu vào và cho ra thông tinđầu ra Hình dưới chỉ ra mô hình xử lý thông tin đơn giản
Trang 4Input Output
(Thông tin vào) (Thông tin ra)
- Vai trò: Hệ thống tin đóng vai trò trung gian giữa hệ thống nghiệp vụ và môi trường bênngoài, giữa hệ thống con quyết định và hệ thống con tác nghiệp trong hệ thống quản lý
- Nhiệm vụ:
+ Về đối ngoại: Hệ thống thông tin thu nhận thông tin từ môi trường bên ngoài và đưathông tin ra môi trường bên ngoài Thí dụ như thông tin về giá cả, thị trường, sức lao động, nhucầu hàng hoá v.v
+ Về đối nội: Hệ thống thông tin là cầu nối liên lạc giữa các bộ phận của hệ nghiệp vụ
Nó cung cấp cho hệ tác nghiệp, hệ quyết định các thông tin gồm hai loại tự nhiên và cấu trúcnhằm phản ánh cơ cấu tổ chức nội bộ và tình trạng hoạt động nghiệp vụ của hệ thống
Luồng thông tin vào: Các thông tin cần thiết cho quá trình xử lý, có thể là các thông tin
phản ánh cấu trúc doanh nghiệp và các thông tin phản ánh hoạt động của doanh nghiệp Chúngđược phân thành ba loại sau:
+ Thông tin cần cho tra cứu: Thông tin dùng chung cho hệ thông và ít bị thay đổi Các thôngtin này thường được cập nhật một lần và chỉ dùng cho tra cứu khi xử lý thông tin sau này
+ Thông tin luân chuyển chi tiết: Loại thông tin chi tiết về hoạt động của đơn vị, khốilượng thông tin thường rất lớn, cần phải xử lý kịp thời
+ Thông tin luân chuyển tổng hợp: Loại thông tin được tổng hợp từ hoạt động của cáccấp thấp hơn, thông tin này thường cô đọng, xử lý định kỳ theo lô
Luồng thông tin ra:
+ Thông tin đầu ra được tổng hợp từ các thông tin đầu vào và phụ thuộc vào nhu cầuquản lý trong từng trường hợp cụ thể, từng đơn vị cụ thể Thông tin ra là kết quả của việc tra cứunhanh về một đối tượng cần quan tâm, đồng thời phải đảm bảo sự chính xác và kịp thời
+ Các thông tin đầu ra quan trọng nhất được tổng hợp trong quá trình xử lý là các báo cáotổng hợp, thống kê, thông báo Các mẫu biểu báo cáo thống kê phải phản ánh cụ thể trực tiếp,sát với từng đơn vị
+ Ngoài những yêu cầu được cập nhật thông tin kịp thời cho hệ thống, luồng thông tin raphải được thiết kế linh hoạt mềm dẻo Đây là chức năng thể hiện tính mở, và khả năng giao diệncủa hệ thống với môi trường bên ngoài Thông tin đầu ra gắn với chu kỳ thời gian tuỳ ý theo yêucầu của bài toán quản lý cụ thể, từ đó ta có thể lọc bớt được thông tin thừa trong quá trình xử lý
Trang 5Các xử lý là các quy trình, các phương pháp, chức năng xử lý thông tin và biến đổi thôngtin Các xử lý nhằm vào hai mục đích chính:
Sản sinh các thông tin có cấu trúc theo thể thức quy định như các chứng từ giaodịch, các sổ sách báo cáo thông kê
Cung cấp các thông tin trợ giúp quyết định, thông thường là các thông tin cần thiếtcho lựa chọn quyết định của lãnh đạo, hoặc các lựa chọn tự động trong các quyếtđịnh dựa trên giải thuật
1.1.2 Các bước xây dựng HTTT
Phát triển HTTT là tập hợp các hoạt động tạo sản phẩm là HTTT Có nhiều phương pháp
khác nhau để phát triển một HTTT Theo đó, số các bước đề xuất của các phương pháp cũngkhác nhau Về cơ bản, quá trình phát triển gồm các giai đoạn sau đây:
- Khảo sát hiện trạng và xác lập dự án: Thu thập thông tin, tài liệu, nghiên cứu tình trạngnhằm làm rõ tình trạng hoạt động của hệ thống cũ trong hệ thống thực, từ đó đưa ra giải phápxây dựng hệ thống thông tin mới ( hệ thông tin quản lý)
- Phân tích hệ thống : Phân tích sâu hơn các chức năng và dữ liệu của hệ thống cũ đểđưa ra mô tả của hệ thống mới ( giai đoạn thiết kế logic)
- Thiết kế hệ thống: Nhằm đưa ra các quyết định về cài đặt hệ thống, để sao cho hệ thốngthỏa mãn được các yêu cầu mà giai đoạn phân tích đã đưa ra, đồng thời lại thích ứng với cácđiều kiện ràng buộc trong thực tế
Giai đoạn thiết kế hệ thống được chia ra làm 2 giai đoạn con:
+ Thiết kế tổng thể ( xác định vai trò của máy tính)
+ Thiết kế chi tiết ( thiết kế giao diện, thiết kế các kiểm soát, thiết kế các cơ sở dữ liệu,các module, chương trình)
- Cài đặt và kiểm thử: Bao gồm các công việc chính là lập trình và kiểm định nhằm cáckết quả phân tích, thiết kế trên giấy thành một hệ thống có thể chạy được
- Khai thác và bảo trì: Là giai đoạn đưa hệ thống vào sử dụng, đồng thời thực hiện cácchỉnh sửa khi phát hiện thấy hệ thống còn có chỗ chưa phù hợp
Quá trình phân tích thiết kế hệ thống có thể xem xét qua sơ đồ phân tích thiết kế cấu trúcgồm bốn bước chính tương ứng với các khối chỉ ra trong sơ đồ:
Trang 6Các mô hình vật lý và logic
1.1.3 Phương pháp phân tích & thiết kế có cấu trúc, hướng đối tượng
1.1.3.1 Phương pháp phân tích thiết kế có cấu trúc (SADT-Structured Analysis and
Design Technique-Kỹ thuật phân tích và thiết kế có cấu trúc): Phương pháp này xuất phát từ
Mỹ, ý tưởng cơ bản của nó là Phân rã một hệ thống lớn thành các hệ thống con đơn giản SADTđược xây dựng dựa trên 7 nguyên lý sau:
- Sử dụng một mô hình
- Phân tích kiểu Top-down
- Dùng một mô hình chức năng và một mô hình quan niệm (còn được gọi là mô hình thiết
kế để mô tả hệ thống
- Thể hiện tính đối ngẫu của hệ thống
- Sử dụng các biểu diễn dưới dạng đồ hoạ
- Phối hợp các hoạt động của nhóm
- Ưu tiên tuyệt đối cho hồ sơ viết
Công cụ để phân tích:
- Sử dụng sơ đồ chức năng công việc BFD (Business Function Diagram) và lưu đồ luồng
dữ liệu DFD (Data Flow Diagram)
- Mô hình dữ liệu (Data Modes)
- Ngôn ngữ có cấu trúc SL (Structured Language)
- Từ điển dữ liệu (Data Dictionary)
- Bảng và cây quyết định (Warnier/orr)
- Đặc tả các tiến trình (Process Specification)
Phương pháp phân tích thiết kế SADT có ưu điểm là dựa vào nguyên lý phân tích có cấutrúc, thiết kế theo lối phân cấp, bảo đảm từ một dữ liệu vào sản xuất nhiều dữ liệu ra Nhượcđiểm của phương pháp này là không bao gồm toàn bộ các tiến trình phân tích do đó nếu khôngthận trọng có thể đưa đén tình trạng trùng lặp thông tin
Mức logic
Yêu cầu đối với
hệ thống mới
Trang 71.1.3.2 Phương pháp phân tích thiết kế Merise
MERISE viết tắt từ cụm từ Methode pour Rassembler les Ideés Sans Effort (phương pháptập hợp các ý tưởng không cần cố gắng) Phương pháp này ra đời vào những năm cuối của thậpniên 70 Xuất phát từ những suy nghĩ của một nhóm nghiên cứu đứng đầu bởi J.L.Lemoigne tạitrường đại học Aix-En-Provence - Pháp và những nghiên cứu hiện thực đồng thời ở Trung tâmnghiên cứu trang bị kỹ thuật (CETE), dưới sự lãnh đạo của H.Tardien.Trong sự phát triển nhanhchóng của công nghệ mới, MERISE còn được dùng để điều hành dự án không chỉ trong công sở
mà còn trong nhiều xí nghiệp đủ loại khác nhau
Ý tưởng cơ bản của phương pháp Merise: ý tưởng cơ bản của phương pháp phân tích
thiết kế Merise dựa trên 3 mặt cơ bản sau:
Mặt thứ nhất: quan tâm đến chu kỳ sống (life cycle) của hệ thống thông tin qua các giai
đoạn: Thai nghén (Gestation) - Quan niệm/ý niệm - Quản trị - Chết Chu kỳ sống này có thể kéodài từ 15đến 20 năm đối với các hệ thống thông tin lớn
Mặt thứ hai: đề cập đến chu kỳ đặc trưng của hệ thống thông tin, còn được gọi là chu kỳ
trừu tượng Mỗi tầng được mô tả dưới dạng mô hình tập trung bao gồm tập hợp các thông sốchính xác Theo đó khi những thông số của tầng dưới tăng trưởng, tầng đang mô tả không biếnđổi và nó chỉ thay đổi khi các thông số của mình thay đổi Mỗi mô hình được mô tả thông quamột hình thức dựa trên các quy tắc, nguyên lý ngữ vựng và cú pháp quy định Có những quy tắccho phép chuyển từ mô hình này sang mô hình khác một cách tự động nhiều hoặc ít
Mặt thứ ba: mặt này liên quan đến chu kỳ các quyết định cần phải đưa ra trong các chu
kỳ sống của sản phẩm
Đặc trưng của phương pháp Merise là tách rời dữ liệu và xử lý nhằm đảm bảo tính kháchquan trong quá trình phân tích và cung cấp đầy đủ các mô hình để diễn đạt các bước cập nhật
Hệ thống bao gồm dữ liệu và xử lý được biểu diễn ở ba mức:
- Mức quan niệm (Concept): xác định các thành phần của dữ liệu và xử lý
- Mức tổ chức (Oganization): chi tiết hóa những quan hệ giữa chúng
- Mức tác nghiệp (Physic): các thành phần được thể hiện trong thực tế như thế nào
Trang 8Trong giáo trình này, chúng tôi sẽ bám sát phương pháp này để trình bày các bước phântích thiết kế một hệ thống thông tin
Có thể hình dung các bước phát triển của một hệ thống thông tin thông qua mô hình
không gian ba chiều: chiều các thành phần của hệ thống thông tin, chiều các mức bất biến của
hệ thống thông tin và chiều các giai đoạn phân tích thiết kế một hệ thống thông tin.
1.1.3.3 Phương pháp phân tích MCX (Méthode de xavier castellani)
Phương pháp phân tích MCX có nguồn gốc từ Pháp, do giáo sư của Học viện Tin học chocác xí nghiệp IIE (Institut Informatique dEntrerise) sáng tạo Phương pháp phân tích MCX dựatrên các nguyên lý và đặc trưng cơ bản sau:
- Cho phép xây dựng được một mô hình tổng quát chính xác để biểu diễn hệ thống thôngtin hoặc các phân hệ của hệ thống thông tin
- Cho phép phân tích, nắm dữ liệu, quá trình xử lý và truyền thông của hệ thống thông tin
- Cho phép lượng hoá các xử lý
- MCX có ưu điểm là thích hợp với việc thực hành Nhược điểm là rườm rà
1.1.3.4 Phương pháp phân tích GLACSI (Groupe d Animation et de Liaison pour l Analyse et de conception de Système d Information)
Phương pháp này cũng có nguồn gôc từ Pháp, ra đời vào tháng 4 năm 1982 Tác giả của
nó là một nhóm giáo sư của Học viện Công nghệ Pháp (IUT) Nội dung cơ bản của phươngpháp là trình bày một tập hợp các công cụ và nguyên liệu để tiến hành các giai đoạn cơ bản sauđây của tiến trình phân tích:
- Nghiên cứu hệ thống
+ Nghiên cứu hiện trạng
+ Nghiên cứu khả thi
+ Tổ chức xử lý: xử lý theo lô, xử lý theo thời gian thực
+ Môi trường tiếp nhận: máy tính, mạng máy tính, ngôn ngữ, các phần mềm chuyên dụng+ Giao diện người-máy
Nhược điểm của phương pháp là chưa thử nghiệm nhiều trong thực tế Ưu điểm củaphương pháp là một công cụ tốt để giảng dạy
Trang 91.1.3.5 Phương pháp phân tích hướng đối tượng (Object Oriented Analysis)
Phương pháp phân tích hướng đối tượng hình thành giữa thập niên 80 dựa trên ý tưởnglập trình hướng đối tượng Phương pháp này đã phát triển, hoàn thiện và hiện nay rất phổ dụng
Nó dựa trên một số khái niệm cơ bản sau:
- Ðối tượng (Object): gồm dữ liệu và thủ tục tác động lên dữ liệu này
- Ðóng gói (Encapsulation): Không cho phép tác động trực tiếp lên dữ liệu của đối tượng
mà phải thông qua các phương pháp trung gian
- Lớp (Class): Tập hợp các đối tượng có chung một cấu trúc dữ liệu và cùng một phươngpháp
- Kế thừa (Heritage): tính chất kế thừa là đặc tính cho phép định nghĩa một lớp mới từ cáclớp đã có bằng cách thêm vào đó những dữ liệu mới, các phương pháp mới có thể kế thừa nhữngđặc tính của lớp cũ
1.2 Phân tích chức năng, nghiệp vụ – mô hình chức năng
1.2.1 Chu trình phát triển phần mềm - SDLC (Software Development Life Cycle)
Chu Trình Phát Triển Phần Mềm là một chuỗi các hoạt động của nhà phân tích (Analyst),nhà thiết kế (Designer), người phát triển (Developer) và người dùng (User) để phát triển và thựchiện một hệ thống thông tin Những hoạt động này được thực hiện trong nhiều giai đọan khácnhau
- Nhà phân tích (Analyst): là người nghiên cứu yêu cầu của khách hàng/người dùng để
định nghĩa một phạm vi bài toán, nhận dạng nhu cầu của một tổ chức, xác định xem nhân lực,phương pháp và công nghệ máy tính có thể làm sao để cải thiện một cách tốt nhất công tác của
tổ chức này
- Nhà thiết kế (Designer): thiết kế hệ thống theo hướng cấu trúc của database, screens,
forms và reports – quyết định các yêu cầu về phần cứng và phần mềm cho hệ thống cần đượcphát triển
- Chuyên gia lĩnh vực (Domain Experts): là những người hiểu thực chất vấn đề cùng tất
cả những sự phức tạp của hệ thống cần tin học hoá Họ không nhất thiết phải là nhà lập trình,nhưng họ có thể giúp nhà lập trình hiểu yêu cầu đặt ra đối với hệ thống cần phát triển Quá trìnhphát triển phần mềm sẽ có rất nhiều thuận lợi nếu đội ngũ làm phần mềm có được sự trợ giúpcủa họ
- Lập trình viên (Programmer): là những người dựa trên các phân tích và thiết kế để
viết chương trình (coding) cho hệ thống bằng ngôn ngữ lập trình đã được thống nhất
- Người dùng (User): là đối tượng phục vụ của hệ thống cần được phát triển.
1.2.2 Các giai đoạn của Chu Trình Phát Triển Phần Mềm:
Chu trình của một phần mềm có thể được chia thành các giai đoạn như sau:
- Nghiên cứu sơ bộ (Preliminary Investigation hay còn gọi là Feasibility Study)
- Phân tích yêu cầu (Analysis)
- Thiết kế hệ thống (Design of the System)
Trang 10- Xây dựng phần mềm (Software Construction)
- Thử nghiệm hệ thống (System Testing)
- Thực hiện, triển khai (System Implementation)
- Bảo trì, nâng cấp (System Maintenance)
Sơ đồ tổng quát các giai đoạn của Chu Trình Phát Triển Phần Mềm:
Hình: Sơ đồ tổng quát các giai đoạn của Chu Trình Phát Triển Phần Mềm
Sơ lược các chu trình SDLC:
Mô hình thác nước (Waterfall model)
Mô hình tăng trưởng
Mô hình bản mẫu (Prototype)
Mô hình phát triển ứng dụng nhanh (RAD)
Mô hình xoắn ốc (Spiral)
Mô hình dựa trên các thành phần (Component)
Mô hình RUP (Rational Unified Process)
Trang 11Mô hình thác nước (Waterfall model).
- Mô hình này mô tả sự phát triển hệ thống trên cơ sở phân chia các giai đoạn riêng rẽ vớinhau về thời gian
- Ưu điểm: Giai đoạn kế tiếp chỉ bắt đầu khi giai đoạn hiện hành hoàn tất Người dùngcuối và khách hàng biết rõ
- Nhược điểm: Không có sự quay lui để chỉnh sửa khi phát hiện sai sót trong khâu nào đó.Phải đặc tả một cách chính xác yêu cầu ngay từ đầu
- Xác định sản phẩm ổn định và đã biết rõ vấn đề kỹ thuật.
Mô hình tăng trưởng
- Ý tưởng chính của phương pháp này là phát triển từng bước và chuyển giao từng phần.Công việc nghiệm thu được tiến hành khi các phần đã được chuyển giao
- Ưu điểm:
+ Chức năng chính, chức năng có độ rủi ro cao sẽ được thực hiện trước
+ Sau mỗi vòng đều có thể chuyển giao cho khách hàng
+ Giảm rủi ro cho thất bại toàn dự án
Trang 12- Nhược điểm: chỉ phù hợp cho những hệ thống có sự phân chia rõ ràng và chuyển giaotheo từng phần
Mô hình bản mẫu (Prototype).
- Xây dựng một bản mẫu ban đầu để người sử dụng xem xét Bản mẫu ban đầu bị loại bỏ
và được phát triển
- Ưu điểm:
+ Khách hàng tương tác sớm với hệ thống
+ Khách hàng cùng làm việc với người phát triển hệ thống
+ Thiết kế và phát triển mềm dẻo
- Nhược điểm:
+ Chất lượng thấp và khó bảo trì
+ Bị khách hàng hối thúc
+ Người phát triển sẽ bị rơi vào giai đoạn code – and – fix
- Sử dụng khi: Yêu cầu chưa được biết rõ và không ổn định
Trang 13Mô hình phát triển ứng dụng nhanh (RAD).
Ráp nối tốc độ cao của mô hình thác nước, xây dựng dựa vào các thành phần và ứngdụng tạo mã tự động
- Ưu điểm: Thời gian phát triển ngắn, cần ít nhân công Giảm rủi ro nhờ có khách hàngtham gia
- Nhược điểm: Người phát triển phải có kỹ năng sử dụng công cụ tốt Người phát triển vàkhách hàng phải gắn bó và nỗ lực cao
- Sử dụng khi: Hệ thống có thể dễ dàng phân chia thành nhiều module Biết rõ yêu cầucủa hệ thống và có ít thời gian Có thể sử dụng lại những thành phần đã có Hệ thống nhỏ, không
có tính nghiêm ngặt
Trang 14Mô hình xoắn ốc (Spiral).
- Phương pháp này duy trì quá trình lặp một dãy các tiến trình mà qua mỗi lần thực hiệncác tiến trình đó các mẫu được hoàn thiện dần Mỗi chu kỳ có 4 tầng, mỗi tầng ¼ cung
- Ưu điểm: Tạo bản mẫu sớm Cho phép người dùng tham gia vào các giai đoạn Ưu tiênthực hiện trước những chức năng quan trọng
- Nhược điểm: Đánh giá rủi ro tốn nhiều chi phí Phức tạp, khó quản lý, khó thuyết phụckhách hàng
- Sử dụng khi: Những dự án có độ rủi ro cao, dự án cần nhiều thời gian.ĩ Kết hợp giữalặp của mô hình tạo bản mẫu và mô hình thác nước
Mô hình lắp ráp thành phần (Component).
- Thực chất phương pháp này là dựa trên việc tái sử dụng thành phần có sẵn Công việcchính là xác định các thành phần phù hợp, thu gom chúng và lắp ráp Có thể chia thành các giaiđoạn:
+ Nghiên cứu hình thành các giải pháp và xác định các thành phần của hệ thống
+ Đánh giá, lựa chọn các giải pháp và thành phần của hệ thống
+ Tích hợp các thành phần
Trang 15Mô hình đồng nhất RUP (Rational Unified Process).
- Là một quy trình vòng lặp phát triển phần mềm được hãng Rational phát triển, thườngđược dùng trong các dự án phần mềm lớn và phức tạp
- Phương pháp lặp của RUP là phương pháp phát triển lặp Một quy trình lặp thể hiệntrong một chu trình phát triển từ ý tưởng ban đầu cho tới khi một sản phẩm phần mềm hoànthiện, ổn định và có chất lượng được chuyển giao tới người dùng cuối
1.2.3 Mô hình phân cấp chức năng
Xác định chức năng nghiệp vụ là bước đầu tiên của việc phân tích hệ thống Để phântích yêu cầu thông tin của tổ chức ta phải biết được tổ chức đó thực hiện những nhiệm vụ,chức năng gì Từ đó, tìm ra các dữ liệu, các thông tin được sử dụng và tạo ra trong các chứcnăng Đồng thời, cũng phải tìm ra những hạn chế, mối ràng buộc đặt lên các chức năng đó
1.2.3.1 Định nghĩa mô hình phân rã chức năng
Mô hình phân rã chức năng (BFD – Business Function Diagram) là công cụ biểu diễnviệc phân rã có thứ bậc đơn giản các công việc cần thực hiện Mỗi công việc được chia ra làmcác công việc con, số mức chia ra phụ thuộc kích cỡ và độ phức tạp của hệ thống
Ví dụ về mô hình phân rã chức năng:
1.2.3.2 Các thành phần của mô hình phân rã chức năng
a Khái niệm về chức năng trong hệ thống thông tin
Chức năng là công việc mà tổ chức cần làm và được phân theo nhiều mức từ tổng hợpđến chi tiết
Cần chú ý cách đặt tên cho chức năng, tên chức năng phải là một mệnh đề động từ,gồm động từ và bổ ngữ Động từ thể hiện hoạt động, bổ ngữ thường liên quan đến các thựcthể dữ liệu trong miền nghiên cứu Tên các chức năng phải phản ánh được các chức năngcủa thế giới thực chứ không chỉ dùng cho hệ thông tin Tên của chức năng cần ngắn và giảithích đủ nghĩa của chức năng và phải sử dụng thuật ngữ nghiệp vụ
Mỗi chức năng có một tên duy nhất, các chức năng khác nhau phải có tên khác nhau.
Để xác định tên cho chức năng có thể bàn luận và nhất trí với người sử dụng.
Ví dụ: Chức năng lấy đơn hàng, Mua hàng, Bảo trì kho….được biểu diễn như sau:
+ Hình thức biểu diễn: hình chữ nhật
Tên chức năng Mua hàng
b Quan hệ phân cấp chức năng
Mỗi chức năng được phân rã thành các chức năng con Các chức năng con có quan hệphân cấp với chức năng cha
Trang 16Biểu diễn mối quan hệ phân cấp chức năng như sau:
Mô hình phân rã chức năng được biểu diễn thành hình cây phân cấp
1.2.3.3 Đặc điểm và mục đích của mô hình phân rã chức năng
a Đặc điểm
Mô hình phân rã chức năng có các đặc điểm sau:
- Cung cấp cách nhìn khái quát về chức năng
- Dễ thành lập
- Gần gũi với sơ đồ tổ chức
- Không đưa ra được mối liên quan về thông tin giữa các chức năng
1.2.3.4 Xây dựng mô hình phân rã chức năng
a Nguyên tắc phân rã các chức năng
Trong quá trình tiếp cận một tổ chức theo phương pháp từ trên xuống (top- down) tanhận được thông tin về các chức năng từ mức gộp (do lãnh đạo cung cấp) đến mức chi tiết(do các bộ phận chức năng cung cấp) Cách phân rã cho này là phù hợp với sự phân công cácchức năng của một tổ chức nào đó
Cách phân chia này thường theo nguyên tắc sau:
- Mỗi chức năng được phân rã phải là một bộ phận thực sự tham gia thực hiện chứcnăng đã phân rã ra nó
- Việc thực hiện tất cả các chức năng ở mức dưới trực tiếp phải đảm bảo thực hiện đượccác chức năng ở mức trên đã phân rã ra chúng
Quy tắc này được sử dụng để phân rã một sơ đồ chức năng nhận được còn đang ởmức gộp Quá trình phân rã dần thường được tiếp tục cho đến khi ta nhận được một mô hình
Trang 17với các chức năng ở mức cuối mà ta hoàn toàn nắm được nội dung thực hiện nó.
b Cách tiến hành
Bước 1: Xác định chức năng
- Trong hầu hết các hoàn cảnh, các chức năng cha và chức năng con trong hệ thống cóthể được xác định một cách trực giác trên cơ sở thông tin nhận được trong khảo sát Dựa vàophần mô tả của bài toán gạch chân các động từ mô tả hoạt động của hệ thống
- Mỗi chức năng có một tên duy nhất, các chức năng khác nhau phải có tên khác nhau
Bước 2: Phân rã các chức năng
Khi phân rã các chức năng cần phân rã có thứ bậc và thực hiện việc phân rã chức năngtheo các nguyên tắc phân rã Khi phân rã một chức năng thành các chức năng con có thể căn cứvào một số gợi ý sau:
- Xác định nhu cầu hoặc kế hoạch mua sắm
- Mua sắm và/hoặc cài đặt
- Bảo trì và hỗ trợ
- Thanh lý hoặc chuyển nhượng
Cách bố trí sắp xếp các chức năng phải thực hiện theo nguyên tắc sau:
- Không nên quá 6 mức đối với hệ thống lớn, không quá 3 mức đối với hệ thống nhỏ
- Sắp xếp các công việc trên một mức cùng một hàng đảm bảo cân đối
- Các chức năng con của cùng một mẹ nên có kích thước, độ phức tạp và tầm quantrọng xấp xỉ như nhau
- Các chức năng mức thấp nhất nên mô tả được trong không quá nửa trang giấy, nóchỉ có một nhiệm vụ hoặc một nhóm nhiệm vụ nhỏ do từng cá nhân thực hiện
Mô hình phân rã chức năng cho ta một cái nhìn chủ quan về hệ thống nên cần tạo ra môhình tốt và đạt được sự thống nhất với người sử dụng
Ví dụ:
Trang 181.2.4 Mô hình luồng dữ liệu (DFD)
1.2.4.1 Mục đích của mô hình luồng dữ liệu
Mô hình luồng dữ liệu nhằm mục đích:
- Bổ sung khiếm khuyết của mô hình phân rã chức năng bằng việc bổ sung các luồngthông tin nghiệp vụ cần để thực hiện chức năng
- Cho ta cái nhìn đầy đủ hơn về các mặt hoạt động của hệ thống
- Là một trong số các đầu vào cho quá trình thiết kế hệ thống
1.2.4.2 Định nghĩa mô hình luồng dữ liệu
Mô hình luồng dữ liệu (DFD - Data Flow Diagram) là một công cụ mô tả mối quan hệthông tin giữa các công việc
Ví dụ: Mô hình luồng dữ liệu của hoạt động bán hàng
Hình : Sơ đồ luồng dữ liệu hoạt động bán hàng
1.2.4.3 Các thành phần của mô hình luồng dữ liệu
a Chức năng (còn gọi là Tiến trình)
- Định nghĩa: Là một hoạt động có liên quan đến sự biến đổi hoặc tác động lên thông tinnhư tổ chức lại thông tin, bổ sung thông tin hoặc tạo ra thông tin mới Nếu trong một chứcnăng không có thông tin mới được sinh ra thì đó chưa phải là chức năng trong mô hình luồng
dữ liệu
- Cách đặt tên: Động từ + bổ ngữ
Ví dụ: Chấp nhận nguồn hàng, ghi kho vật liệu
- Biểu diễn: hình chữ nhật góc tròn hoặc hình tròn
Chú ý: Trong thực tế tên chức năng phải trùng với tên chức năng trong mô hình phân rãchức năng
b Luồng dữ liệu:
- Định nghĩa: Là luồng thông tin vào hoặc ra khỏi chức năng
- Cách đặt tên : Danh từ + tính từ
Trang 19- Biểu diễn : là mũi tên trên đó ghi thông tin di chuyển
Chú ý: Các luồng dữ liệu phải chỉ ra được thông tin logic chứ không phải tài liệu
vật lý Các luồng thông tin khác nhau phải có tên gọi khác nhau
Ví dụ: Luồng dữ liệu biểu hiện việc trả tiền mang tên là "thanh toán" chứ không mangtên là "tiền" hay "sec"
c Kho dữ liệu
- Kho dữ liệu là nơi biểu diễn thông tin cần lưu giữ, để một hoặc nhiều chức năng sửdụng chúng Trong biểu đồ luồng dữ liệu ta có thể đặt kho dữ liệu ở nhiều nơi nhưng phải chỉhiểu là một
- Cách đặt tên kho dữ liệu như sau : danh từ + tính từ Tên kho phải chỉ rõ nội dung
dữ liệu trong kho Kho dữ liệu được biểu diễn bằng cặp đường thẳng song song chứa tên khocần cất giữ
Ví dụ 1: biểu diễn kho hóa đơn như sau:
Hoáđơn
Quan hệ giữa kho dữ liệu, chức năng và luồng dữ liệu được biểu diễn như sau:
Ví dụ 2: Một người muốn tra cứu một danh sách giá cả: phải lấy thông tin từ kho dữliệu danh sách giá cả (hình a), còn muốn sửa đổi giá cả thì luồng dữ liệu đi từ tiến trình tớikho dữ liệu (hình b) Để biểu thị việc kiểm tra giá cả mặt hàng và sửa đổi các giá không phùhợp thì dùng mũi tên hai chiều để biểu thị luồng dữ liệu từ tiến trình tới kho (hình c)
d Tác nhân ngoài
- Định nghĩa: Là một người hoặc một nhóm người nằm ngoài hệ thống nhưng có traođổi trực tiếp với hệ thống Sự có mặt của các nhân tố này trên sơ đồ chỉ ra giới hạn của hệthống, định rõ mối quan hệ của hệ thống với thế giới bên ngoài Trong biểu đồ luồng dữ liệu ta
Trang 20có thể đặt một tác nhân ngoài ở nhiều nơi nhưng phải chỉ hiểu là một
- Tên : Danh từ
- Biểu diễn : hình chữ nhật
e Tác nhân trong
- Là một chức năng hoặc một hệ thống con của hệ thống đang xét nhưng được trình bày
ở một trang khác của mô hình
Mọi sơ đồ luồng dữ liệu đều có thể bao gồm một số trang, thông tin truyền giữa các quátrình trên các trang khác nhau được chỉ ra nhờ kí hiệu này
- Tên: động từ + bổ ngữ
- Biểu diễn:
1.2.4.4 Một số quy tắc vẽ biểu đồ luồng dữ liệu
Khi vẽ biểu đồ luồng dữ liệu ta phải thực hiện theo các quy tắc sau
- Các luồng dữ liệu vào của một tiến trình cần khác với các luồng dữ liệu ra của nó.Tức là các dữ liệu qua một tiến trình phải có thay đổi Ngược lại, tiến trình là không cần thiết
vì không tác động gì đến các luồng thông tin đi qua nó
- Các đối tượng trong một mô hình luồng dữ liệu phải có tên duy nhất: mỗi tiến trìnhphải có tên duy nhất Tuy nhiên, vì lí do trình bày cùng một tác nhân trong, tác nhân ngoài
và kho dữ liệu có thể được vẽ lặp lại
- Các luồng dữ liệu đi vào một tiến trình phải đủ để tạo thành các luồng dữ liệu đi ra
- Nói chung tên luồng thông tin vào hoặc ra kho trùng với tên kho vì vậy khôngcần viết tên luồng Nhưng khi ghi hoặc lấy tin chỉ tiến hành một phần kho thì lúc đó phải đặttên cho luồng
- Không có một tiến trình nào chỉ có cái ra mà không có cái vào Đối tượng chỉ có cái rathì có thể là tác nhân ngoài (nguồn)
- Không một tiến trình nào mà chỉ có cái vào mà không có cái ra Một đối tượng chỉ
có cái vào thì chỉ có thể là tác nhân ngoài (đích)
- Không thể xảy ra các trường hợp biểu diễn sau:
1.2.4.5 Các mức của mô hình luồng dữ liệu
Trang 21Bước 1: Xây dựng mô hình luồng dữ liệu mức khung cảnh (mức 0)
- Mô hình luồng dữ liệu mức khung cảnh gồm một chức năng duy nhất biểu thị toàn
bộ hệ thống đang nghiên cứu, chức năng này được nối với mọi tác nhân ngoài của hệ thống
- Các luồng dữ liệu giữa chức năng và tác nhân ngoài chỉ thông tin vào và ra của hệthống
Ví dụ: Mô hình dữ liệu mức khung cảnh của hệ cung ứng vật tư
Hình: Mô hình dữ liệu mức khung cảnh của hệ cung ứng vật tư
Bước 2: Xây dựng mô hình luồng dữ liệu mức đỉnh (mức 1)
- Với mức đỉnh các tác nhân ngoài của hệ thống ở mức khung cảnh được giữ nguyênvới các luồng thông tin vào ra
- Hệ thống được phân rã thành các chức năng mức đỉnh là các tiến trình chính bên trong
hệ thống theo mô hình phân rã chức năng mức 1
- Xuất hiện thêm các kho dữ liệu và luồng thông tin trao đổi giữa các chức năng mứcđỉnh
Ví dụ: Mô hình luồng dữ liệu mức đỉnh của hệ cung ứng vật tư
Hình: Sơ đồ luồng dữ liệu mức đỉnh của hệ cung ứng vật tư
Bước 3: Xây dựng mô hình luồng dữ liệu mức dưới đỉnh (mức 2 và dưới 2)
- Ở mức này thực hiện phân rã đối với mỗi chức năng của mức đỉnh
- Khi thực hiện mức phân rã này vẫn phải căn cứ vào mô hình phân rã chức năng để
Trang 22xác định các chức năng con sẽ xuất hiện trong mô hình luồng dữ liệu.
- Việc phân rã có thể tiếp tục cho đến khi đủ số mức cần thiết
- Khi phân rã các chức năng phải đảm bảo tất cả các luồng thông tin vào ra ở chứcnăng mức cao phải có mặt trong các chức năng mức thấp hơn và ngược lại
* Chú ý:
+ Các kho dữ liệu không xuất hiện ở DFD mức khung cảnh
+ Nên đánh số các chức năng theo sự phân cấp
+ Các kho dữ liệu, các tác nhân ngoài có thể xuất hiện nhiều lần
+ Số mức phụ thuộc vào độ phức tạp của hệ thống
Ví dụ 1: Mô hình luồng dữ liệu của hệ thống cung ứng vật tư mức dưới đỉnh của
Chức năng đặt hàng
Hình: Mô hình luồng dữ liệu mức dưới đỉnh của chức năng đặt hàng
1.2.4.6 Chuyển từ mô hình luồng dữ liệu vật lý sang mô hình luồng dữ liệu logic
Việc chuyển từ mô hình luồng dữ liệu vật lý sang mô hình luồng dữ liệu logic cótác dụng sau:
- Xác định nhu cầu thông tin ở mỗi chức năng
- Cho một thiết kế sơ bộ về thực hiện chức năng
- Là phương tiện giao tiếp giữa người phân tích thiết kế và người sử dụng
- Luôn có hai mức diễn tả vật lý và logic Mức vật lý trả lời câu hỏi như thế nào, mứclôgíc trả lời câu hỏi làm gì
Trong thực tế người ta thấy rằng việc tạo ra một mô hình luồng dữ liệu cho hệ thốngthực dưới dạng vật lý không có lợi vì những lý do sau:
+ Tốn nhiều thời gian và tiêu tốn nguồn tài nguyên phát triển dự án một cách không cầnthiết Có thể xem quá trình này là việc sao chép công việc của kỹ thuật viên điều tra, sao chéptất cả những gì đang thực hiện hiện tại
+ Khi tạo ra mô hình thì phải tạo ra những điều chỉnh tượng trưng cho nó, xử lý nó như
mô hình logic, kết quả là hệ thống mới chỉ đơn thuần là tin học hoá hệ thống cũ với rất
Trang 23nhiều lỗi mà cái ta cần cuối cùng là mô hình DFD logic.
Mô hình luồng dữ liệu logic loại bỏ những ràng buộc và các yếu tố vật lý, mô hìnhnày chỉ quan tâm chức năng nào là cần cho hệ thống và thông tin nào là cần để thực hiện chochức năng đó
Các yếu tố vật lý cần loại bỏ là:
+ Các phương tiện, phương thức: tự động, thủ công, bàn phím, màn hình,
+ Các giá mang thông tin: các tệp, chứng từ
+ Các chức năng xử lý gắn với các công cụ hay cách thức cài đặt cụ thể
+ Tiến hành các loại bỏ và chỉnh đốn lại cấu trúc Loại bỏ: loại bỏ các ngôn từ, hình
vẽ biểu diễn các phương tiện, giá mang tin, giữ lại các chức năng và nội dung thông tin
* Chú ý:
+ Nên xây dựng mô hình logic cần có bằng cách điều chỉnh mô hình logic thực tại.+ Không có sự phân chia rõ rệt giữa logic và vật lý Mô hình càng phân rã ở mức thấpthì càng thêm nhiều yếu tố vật lý
+ Càng giữ cho mô hình của mình được logic nhiều nhất khi đi sâu vào chi tiết càngtốt
1.3 ERD và cấu trúc dữ liệu logic
- Các HQTCSDL được phân loại theo mô hình dữ liệu như sau:
- Các HQTCSDL phân cấp ứng với mô hình phân cấp (ví dụ: IMS của IBM)
- Các HQTCSDL mạng ứng với mô hình mạng (ví dụ: IDMS của Cullinet Software)
- Các HQTCSDL quan hệ ứng với mô hình quan hệ (ví dụ: ORACLE của Oraccle, DB2của IBM, Access và SQL server của Microsoft)
- Các HQTCSDL hướng đối tượng ứng với mô hình hướng đối tượng (ví dụ: Jasmine )
1.3.1.2 Các bước tiến hành phân tích và thiết kế CSDL
Trang 24+ Thiết kế logic CSDL: độc lập với một hệ quản trị CSDL.
• Xác định các quan hệ: Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ
• Chuẩn hoá các quan hệ: chuẩn hoá các quan hệ về dạng chẩn ít nhất là chuẩn 3 (3NF)+ Thiết kế vật lý CSDL: dựa trên một hệ quản trị CSDL cụ thể
• Xây dựng các bảng trong CSDL quan hệ: quyết định cấu trúc thực tế của cácbảng lưu trữ trong mô hình quan hệ
• Hỗ trợ các cài đặt vật lý trong CSDL: cài đặt chi tiết trong HQTCSDL lựa chọn
1.3.2 Mô hình thực thể liên kết - ERD
Mô hình thực thể liên kết còn gọi là mô hình dữ liệu logic hoặc sơ đồ tiêu chuẩn, nó đượcxây dựng dùng bốn khái niệm logic chính sau: thực thể, kiểu thực thể, thuộc tính, liên kết
1.3.2.1 Mục đích của việc xây dựng mô hình thực thể liên kết
Xây dựng mô hình thực thể liên kết nhằm các mục đích sau:
- Mô tả thế giới thực gần với quan niệm, suy nghĩ của ta Đây là mô hình tốt với lượngthông tin ít nhất, mô tả thế giới dữ liệu đầy đủ nhất
- Việc xây dựng mô hình nhằm thành lập một biểu đồ cấu trúc dữ liệu bao gồm dữ liệucần xử lý và cấu trúc nội tại của nó
Ví dụ một mô hình thực thể liên kết
Mô hình liên kết thực thể của việc bán hàng
1.3.2.2 Các thành phần của mô hình thực thể liên kết
a Thực thể
Khái niệm: Thực thể là khái niệm để chỉ một lớp đối tượng, một nhiệm vụ, một sự kiện
cụ thể hay trừu tượng được quan tâm trong quản lý.Một thực thể tương đương với một dòngtrong bảng nào đó Ví dụ: sinh viên A, đơn hàng số 123,…
Trang 25b Kiểu thực thể
- Kiểu thực thể là việc nhóm tự nhiên một số thực thể lại, mô tả cho một loại thôngtin chứ không phải là bản thân thông tin Kiểu thực thể thường là tập hợp các thực thể có cùngbản chất Tên kiểu thực thể: là một danh từ
- Ví dụ: Lê An là một thực thể, được quan tâm tới vì anh ta đang học tại một trườngđại học A, tức anh ta là một sinh viên SINH VIÊN là một kiểu thực thể vì nó mô tả cho một sốthực thể và dựa trên đó thông tin được lưu giữ
- Kiểu thực thể được biểu diễn dạng hình chữ nhật
Chú ý: Một cách gọi khác của Kiểu thực thể - Thực thể đó là Thực thể - Thể hiện của
thực thể
Ví dụ: có thể nói kiểu thực thể SINH VIÊN có các thực thể Lê An, Hoàng Thị Hà,… Hay thực thể SINH VIÊN có các thể hiện Lê An, Hoàng Thị Hà,…
c Liên kết và các kiểu liên kết
- Liên kết (còn gọi là quan hệ) là sự kết hợp giữa hai hay nhiều thực thể phản ánh sựràng buộc trong quản lý
- Kiểu liên kết là tập hợp các liên kết có cùng bản chất Các kiểu liên kết cho biết số thểhiện lớn nhất của mỗi thực thể tham gia vào liên kết với một thể hiện của một thực thể khác Có
ba kiểu liên kết: một - một, một - nhiều, nhiều - nhiều
Liên kết một – một (1-1): Mỗi thể hiện của thực thể A quan hệ với một thể hiện của thực
thể B và ngược lại Kí hiệu:
Ví dụ: Một sinh viên có một luận văn Một luận văn thuộc về một sinh viên
Liên kết một – nhiều (1-N): Mỗi thể hiện của thực thể A quan hệ với nhiều thể hiện của
thực thể B Ngược lại mỗi thể hiện của thực thể B quan hệ với chỉ một thể hiện của thực thể A
Kí hiệu:
Ví dụ: Một khoa có nhiều sinh viên Một sinh viên thuộc về một khoa
Liên kết nhiều – nhiều (N-N): Mỗi thể hiện của thực thể A quan hệ với nhiều thể hiện
của thực thể B Ngược lại mỗi thể hiện của thực thể B quan hệ với nhiều thể hiện của thực
Tên kiểu thực thể SINH VIÊN
Trang 26thể A Kí kiệu:
Ví dụ: Một giáo viên dạy nhiều sinh viên Một sinh viên được dạy bởi nhiều giáo viên
Điều kiện để một cá thể của thực thể tham gia vào liên kết với một thực thể khác gọi
là loại thành viên Nó có thể là bắt buộc hay tuỳ chọn trong quan hệ Các loại thành viêncho biết số thể hiện nhỏ nhất của mỗi thực thể tham gia vào liên kết với một thể hiện của mộtthực thể khác Kí hiệu:
Ví dụ: Tuỳ chọn (ít nhất 0) – “một giáo viên có thể dạy không, một hoặc nhiều mônhọc.” Bắt buộc (ít nhất 1) – “một môn học cần phải được một hoặc nhiều giáo viên dạy.”
d Thuộc tính
Thuộc tính là giá trị thể hiện một đặc điểm nào đó của một thực thể hay một liên kết.Mỗi thuộc tính có một tập giá trị gọi là miền giá trị của thuộc tính đó Ký hiệu miền giá trịcủa thuộc tính A là D(A) Ví dụ: Thực thể SINH VIÊN có các thuộc tính như: Mã SV, tên SV,ngày sinh, giới tính, địa chỉ,…
Các kiểu thuộc tính:
- Thuộc tính định danh (còn gọi là định danh thực thể, đôi khi còn gọi là thuộc tính
khoá): Là một hoặc một số thuộc tính mà giá trị của nó cho phép phân biệt các thực thể khácnhau Một thực thể bao giờ cũng được xác định một thuộc tính định danh làm cơ sở để phânbiệt các thể hiện cụ thể của nó Ví dụ : Số hiệu khách hàng, Mã mặt hàng, Mã sinh viên,
- Thuộc tính mô tả: Là các thuộc tính mà giá trị của chúng chỉ có tính mô tả cho thực thể
hay liên kết mà thôi Hầu hết các thuộc tính trong một kiểu thực thể đều là mô tả Có một sốthuộc tính mô tả đặc biệt như sau:
+ Thuộc tính tên gọi: là thuộc tính mô tả để chỉ tên các đối tượng thuộc thực thể.Thuộc tính tên gọi để phân biệt các thực thể (tách các thực thể)
+ Thuộc tính kết nối (thuộc tính khoá ngoài): là thuộc tính chỉ ra mối quan hệ giữamột thực thể đã có và một thực thể trong bảng khác Thuộc tính kết nối giống thuộc tính mô
tả thông thường trong thực thể chứa nó nhưng nó lại là thuộc tính khoá của một thực thểtrong bảng khác
Trang 27Ví dụ:
1.3.2.3 Xây dựng mô hình thực thể liên kết của hệ thống
a Các bước tiến hành
Bước 1: Xác định và định danh thực thể Xác định các thực thể là các mục thông tin
cần thiết cho hệ thống và hệ thống cần lưu giữ Tìm các thực thể từ ba nguồn :
- Thông tin tài nguyên: con người, kho bãi, tài sản (VD: nhà cung cấp, mặt hàng,
kho )
- Thông tin giao dịch: là các luồng thông tin đến từ môi trường và kích hoạt một
chuỗi hoạt động của hệ thống (VD: đơn hàng (mua,bán), dự trù, phiếu yêu cầu, )
- Thông tin tổng hợp: thường ở dưới dạng thống kê liên quan đến các kế hoạch hoặc
kiểm soát (VD: dự toán chi tiêu, tính lương ) Việc xác định và định danh thực thể phải thoảmãn:
+ Tên gọi là danh từ
- Mỗi thuộc tính chỉ xuất hiện một lần trong thực thể tương ứng
- Nếu không chắc chắn là thuộc tính hay thực thể cần tiếp tục nghiên cứu và phân tíchnó
Chú ý: Khi một thuộc tính của thực thể A có nhiều giá trị ta sẽ mô hình hoá thuộc tính
đó là một thực thể B có quan hệ phụ thuộc với thực thể A Định danh của thực thể B sẽ baogồm các thuộc tính định danh của thực thể A và một số thuộc tính khác của thực thể B Liênkết giữa thực thể A và thực thể B được gọi là liên kết phụ thuộc
Ví dụ: Một nhân viên có thể có nhiều trình độ ngoại ngữ với các ngôn ngữ khácnhau Khi đó trình độ ngoại ngữ của nhân viên không được mô hình hoá là một thuộc tính
mà được mô hình hoá là một thực thể như sau:
Trang 28Như vậy định danh của thực thể TRÌNH ĐỘ NN gồm hai thuộc tính mã NV và ngoạingữ.
Bước 3: Xác định liên kết giữa các thực thể Xác định liên kết giữa các thực thể theo
trình tự sau:
- Thiết lập sự tồn tại của liên kết (Vẽ đường thẳng và đặt tên quan hệ tại hai đầu)
- Xác định loại liên kết (1-1, 1-N, N-N) và loại thành viên (tuỳ chọn hay bắt buộc)
- Tách liên kết N-N thành hai liên kết 1-N với một thực thể kết hợp Khi đó thực thểkết hợp sẽ có định danh được tạo thành từ hai thuộc tính định danh của các thực thể ban đầu
Ví dụ: Tách liên kết giữa 2 thực thể giáo viên và môn học như sau:
1.3.3 Mô hình quan hệ
1.3.3.1 Các khái niệm
a Khái niệm về mô hình quan hệ
Mô hình CSDL quan hệ hay ngắn gọn là mô hình quan hệ được E.F.Codd pháttriển vào đầu những năm 1970 Mô hình này được thiết lập trên cơ sở lý thuyết tập hợp nên
nó rất dễ hiểu và được sử dụng rất rộng rãi trong việc tổ chức dữ liệu cho các hệ thống
- Các thành phần trong mô hình quan hệ gồm: Các quan hệ - các bộ - các thuộc tính.Tương ứng với các thành phần trong mô hình thực thể liên kết là: Các thực thể - các thểhiện của thực thể – các thuộc tính
Mô hình thực thể liên kết => Mô hình quan hệ => Các bảng trong hệ quản trị cơ sở
dữ liệu So sánh tương ứng giữa mô hình thực thể liên kết, mô hình quan hệ và hệ quản trị
Trang 29CSDL chúng ta có bảng sau:
Mô hình thực thể liên kết Mô hình quan hệ Các bảng trong hệ QTCSDL
Thể hiện của thực thể Bộ Dòng hay bản ghi
Ví dụ:
- Mô hình thực thể liên kết:
- Biểu diễn quan hệ dưới dạng mô hình quan hệ :
Quan hệ SINHVIÊN (mã SV, họ tên, ngày sinh, quê quán, lớp) Các bộ:
(SV01, Vũ Thị Lan, 12/3/1985, Hà Nội, T5_K2)(SV41, Đặng Nhật Minh, 1/8/1981, Thái Bình, T4_K4)
- Biểu diễn quan hệ dưới dạng bảng:
Chú ý:
- Các bộ trong một quan hệ không được trùng nhau
- Thuộc tính được xác định bởi tên, thứ tự của các thuộc tính trong quan hệ là khôngquan trọng Trong một quan hệ, tên các thuộc tính phải khác nhau (các miền giá trị của cácthuộc tính không nhất thiết khác nhau)
b Khái niệm về khoá
Khoá chính: Khoá chính của một quan hệ (Primary Key-PK) là một hoặc một nhóm
thuộc tính xác định duy nhất một bộ trong quan hệ Khoá chính của quan hệ là định danh củathực thể tương ứng Trong quan hệ các thuộc tính thuộc khoá chính được gạch chân và đượcgọi là các thuộc tính khoá
Ví dụ: SINH VIÊN (mã SV, họ tên, ngày sinh, quê quán, lớp) – mã SV là khoá chính
Trang 30của quan hệ SINH VIÊN.
Khi chọn khoá chính cần phải xem xét các tiêu chuẩn sau: khoá chính phải xác địnhđược duy nhất một bộ trong quan hệ, phải có số thuộc tính ít nhất, phải không thay đổi theothời gian
Khoá ghép: Khoá ghép là khoá có từ hai thuộc tính trở lên.
Ví dụ: GIẢNG DẠY(mã GV, mã MH, ngày bắt đầu, ngày kết thúc) – khoá chínhcủa quan hệ GIẢNG DẠY là một khoá ghép gồm hai thuộc tính mã GV và mã MH
Khoá ngoài: Một khoá ngoài được sử dụng để thiết lập một mối quan hệ Đó là thuộc
tính mô tả của quan hệ này nhưng đồng thời lại là thuộc tính khoá trong quan hệ khác Trongquan hệ các thuộc tính khoá ngoài được in nghiêng hoặc gạch chân bằng nét đứt
Ví dụ: LỚP (tên lớp, khoa, phòng học)
SINH VIÊN (mã SV, họ tên, ngày sinh, quê quán, tên lớp) – tên lớp là khoá ngoàicủa quan hệ SINH VIÊN
Khoá giả: Là thuộc tính do con người đặt ra để làm khoá chính Thuộc tính này
không mô tả đặc điểm của các đối tượng quan tâm mà chỉ có tác dụng để xác định duy nhất đốitượng đó
Ví dụ: mã SV, số hoá đơn…Thông thường khi khoá chính có từ 3 thuộc tính trở lênngười ta thường đặt ra một khoá giả làm khoá chính để tiện lợi hơn trong việc truy vấn dữliệu
Các ràng buộc trong mô hình quan hệ là:
- Ràng buộc thực thể: là một ràng buộc trên khoá chính Nó yêu cầu khoá chính phảitối thiểu, xác định duy nhất và không null (Giá trị null tức là không có giá trị Nó khác với giátrị 0 hay dấu cách.)
- Ràng buộc tham chiếu (ràng buộc khoá ngoài): liên quan đến tính toàn vẹn của mốiquan hệ tức là liên quan đến tính toàn vẹn của khoá ngoài Một ràng buộc tham chiếu yêu cầumột giá trị khoá ngoài trong một quan hệ cần phải tồn tại là một giá trị khoá chính trong mộtquan hệ khác hoặc là giá trị null
Ví dụ: trong quan hệ sau:
Tên lớp là T4-K7 trong quan hệ SINH VIÊN không có trong quan hệ LỚP vì vậy nó
vi phạm ràng buộc tham chiếu
Trang 31- Các ràng buộc được định nghĩa bởi người dùng: đây là các ràng buộc liên quan đếnmiền giá trị của dữ liệu thực tế.
1.3.3.2 Các dạng chuẩn
a Phụ thuộc hàm
Khái niệm
Trong một quan hệ R, thuộc tính B phụ thuộc hàm vào thuộc tính A (hay thuộc tính
A xác định hàm thuộc tính B) ký hiệu A→B nếu với mỗi giá trị của thuộc tính A xác địnhmột giá trị duy nhất của thuộc tính B
Ví dụ: Mã SV->Ngày sinh
Phụ thuộc hàm giữa nhiều thuộc tính: thuộc tính B phụ thuộc hàm vào các thuộc tínhA1 và A2 ký hiệu{A1,A2} → B nếu với mỗi cặp giá trị của A1 và A2 xác định duy nhất mộtgiá trị của B
Ví dụ: {Số hoá đơn, Mã hàng}-> Số lượng
Chú ý: A1-> {A2,A3} ≡A1-> A2 và A1-> A3
{A1,A2}-> A3 ≠ A1-> A3 và A2-> A3
Các loại phụ thuộc hàm
Phụ thuộc hàm đầy đủ: Thuộc tính B gọi là phụ thuộc đầy đủ vào tập thuộc tính A (có
từ 2 thuộc tính trở lên) nếu nó chỉ phụ thuộc hàm vào A và không phụ thuộc hàm vào bất cứtập con nào của A Ngược lại B gọi là phụ thuộc hàm bộ phận vào tập thuộc tính A
Phụ thuộc hàm bắc cầu: Nếu có A1 -> A2 và A2 -> A3 thì A1 -> A3 Khi đó A3 được
gọi là phụ thuộc bắc cầu vào A1
Theo quan niệm phụ thuộc hàm thì định nghĩa khoá như sau: Trong quan hệ R, tập cácthuộc tính K là khoá của quan hệ nếu có K -> Bi với Bi là tất cả các thuộc tính còn lại
b Các dạng chuẩn
Dạng chuẩn 1 (1NF):
Một quan hệ là ở dạng chuẩn 1 nếu toàn bộ các miền thuộc tính đều là các miền đơn
Trang 32và không tồn tại nhóm thuộc tính lặp.
Một thuộc tính A là thuộc tính lặp nếu với một giá trị cụ thể của khoá chính có nhiều giá trị của thuộc tính A kết hợp với khoá chính này.
Ví dụ: Khoá chính là Mã SV Nhóm thuộc tính lặp là Môn học và Điểm
D -> E (Phụ thuộc hàm giữa các thuộc tính không khoá)
1.3.3.3 Chuẩn hóa quan hệ
a Các bước tiến hành:
Bước 1: Từ một biểu mẫu (tài liệu xuất: hoá đơn, chứng từ,…) lấy ra một danh sách các thuộc tính cho quan hệ chưa được chuẩn hoá (còn gọi là dạng chuẩn 0).
- Mỗi tiêu đề trong biểu mẫu là một thuộc tính
- Bỏ qua phần đầu đề và phần dưới cùng (một số ghi chú, chữ ký …) của biểu mẫu
- Không lấy các thuộc tính được suy diễn từ những thuộc tính khác (như thànhtiền = đơn giá x số lượng) và các thuộc tính trình bày như ‘số thứ tự’ nếu có
- Bổ sung thêm một số thuộc tính định danh tương ứng với một số thuộc tính tên gọichưa có định danh nếu cần thiết
Trang 33- Xác định nhóm thuộc tính lặp, các phụ thuộc hàm giữa các thuộc tính.
Bước 2: Chuẩn hoá về dạng chuẩn 1 (1NF): Tách nhóm thuộc tính lặp.
- Tách các thuộc tính không nằm trong nhóm lặp thành một quan hệ (R1) Xác địnhkhoá chính của quan hệ này
- Các thuộc tính của nhóm lặp và khoá chính của quan hệ trên (R1) tạo thành một quan
hệ (R2) Xác định khóa chính cho quan hệ R2 (khoá chính của R2 sẽ là một khoá ghép giữakhoá của R1 và một thuộc tính khác trong R2)
- Ví dụ: R{A, B, C, D, E} và khoá là {A} Tồn tại nhóm thuộc tính lặp {C,D} thì táchthành 2 quan hệ R1{A, B, E} và R2{A,C,D}
Bước 3: Chuẩn hoán về dạng chuẩn 2 (2NF): Loại bỏ phụ thuộc bộ phận vào khoá
(chỉ áp dụng với các quan hệ có khoá ghép)
- Tách các thuộc tính tham gia vào phụ thuộc hàm được xác định bởi một phần củakhoá vào một quan hệ mới (R3) Khoá chính của quan hệ là thuộc tính xác định hàm
- Phần còn lại với khoá chính của quan hệ trên (R3) là một quan hệ giữ nguyên khoáchính như quan hệ ban đầu
- Ví dụ: R{A, B, C, D} và khoá là {A,B} Tồn tại phụ thuộc hàm A và C thì táchthành 2 quan hệ R1{A,C} và R2{A, B, D}
Bước 4: Chuẩn hoá về dạng chuẩn 3 (3NF): Loại bỏ phụ thuộc hàm giữa các thuộc tính không khoá.
- Tách các thuộc tính tham gia vào phụ thuộc hàm giữa các thuộc tính không khoávào một quan hệ mới (R4) Khoá chính của quan hệ là thuộc tính xác định hàm
- Phần còn lại và khoá chính của quan hệ trên (R4) là một quan hệ giữ nguyên khoáchính của quan hệ ban đầu
- Ví dụ: R{A, B, C, D} mà khoá là {A,B} Tồn tại phụ thuộc hàm C và D thì táchthành 2 quan hệ R1{C, D} và R2{A, B, C}
1.3.4 Thiết kế CSDL logic
1.3.4.1 Các cách tiếp cận để mô hình hoá dữ liệu:
Có hai cách tiếp cận để mô hình hoá dữ liệu như sau:
a Cách 1: Vẽ mô hình thực thể liên kết – Cách tiếp cận từ trên xuống (Top down):
-Để xây dựng mô hình thực thể liên kết cần xác định một cách trực giác các đối tượngquan trọng mà một hệ thống cần phải lưu trữ như dữ liệu (đó là các thực thể) và xác định cácthuộc tính mô tả cho các thực thể đó cùng với quan hệ giữa các thực thể Nếu áp dụng đúngcác luật trong mô hình thực thể liên kết thì ta sẽ có các quan hệ đã được chuẩn hoá
b Cách 2: Chuẩn hoá – Các tiếp cận từ dưới lên (Bottom - up):
Để chuẩn hoá cần nhóm tất cả các thuộc tính liên quan của hệ thống vào trong một quan
hệ Áp dụng các luật chuẩn hoá để tách quan hệ đó thành các quan hệ có cấu trúc tốt hơn, giảmbớt dư thừa dữ liệu
Trang 34Mỗi cách tiếp cận đều có ưu điểm và nhược điểm riêng vì vậy trong thực tế người tathường phối hợp cả hai cách tiếp cận này để có được một mô hình dữ liệu chính xác nhất.
Kết quả cuối cùng của phần thiết kế logic CSDL là tập các bản ghi logic biểu diễn cácquan hệ trong CSDL
1.3.4.2 Chuyển đổi từ mô hình thực thể liên kết thành các bản ghi logic
a Các luật chuyển đổi
- Mỗi thực thể trong mô hình thực thể liên kết trở thành một quan hệ
- Mỗi thuộc tính trong mô hình thực thể liên kết trở thành một thuộc tính trong quan
hệ tương ứng
- Định danh thực thể trong mô hình thực thể liên kết trở thành khoá chính trong quan
hệ tương ứng Nếu khoá chính không đáp ứng được các tiêu chuẩn về tính tối thiểu, tính xácđịnh duy nhất và tính ổn định thì đưa vào một khoá giả làm khoá chính
- Thi hành các liên kết thông qua việc đặt khóa ngoài vào quan hệ
- Với liên kết 1-1: đặt khoá chính của một trong hai quan hệ vào quan hệ kia làmkhoá ngoài
Ví dụ: Với mô hình thực thể liên kết
Ta có các quan hệ:
CÔNG NHÂN (mã CN, họ tên, ngày sinh, số máy)MÁY (số máy, mác, công suất)
Hay: CÔNG NHÂN (mã CN, họ tên, ngày sinh)
MÁY (số máy, mác, công suất, mã CN)
- Với liên kết 1-N: đặt khoá chính của quan hệ đầu một vào quan hệ đầu nhiều làmkhoá ngoài
Ví dụ: Với mô hình thực thể liên kết
Ví dụ: Với mô hình thực thể liên kết
Trang 35NHÂN VIÊN (mã NV, họ tên, ngày sinh, giới tính, địa chỉ, mã NV quản lý)
Trong đó Mã NV quản lý là một mã NV nào đó
+ Liên kết phụ thuộc
Ví dụ: Một mặt hàng có nhiều giá khác nhau trong những giai đoạn khác nhau
Ta có các quan hệ:
MẶT HÀNG (Mã hàng, Tên hàng)GIÁ (Mã hàng, Ngày bắt đầu, đơn giá)
1.3.5 Thiết kế CSDL vật lý
Phần thiết kế vật lý CSDL sẽ phụ thuộc vào một HQTCSDL mà chúng ta sẽ sử dụng
Trang 36để cài đặt CSDL Chúng ta cần chuyển từ các bản ghi logic với các thuộc tính thành các quan
hệ được biểu diễn dưới dạng bảng với các trường hay các cột được cài đặt trong một HQTCSDL
cụ thể
1.3.5.1 Lập các bảng
- Với mỗi bảng cần chỉ rõ:
+ Khoá chính (có thể gồm một hay nhiều thuộc tính)
+ Mô tả của tất cả các cột (trường)
- Với mỗi cột (trường) cần phải có:
+ Một tên duy nhất (trong bảng lưu giữ nó)
+ Một mô tả ngắn gọn
+ Một kiểu dữ liệu (ví dụ: integer, char, date, logical,… phụ thuộc vào HQTCSDL cụthể cài đặt CSDL)
+ Một kích thước (mặc định hay chỉ rõ tuỳ từng kiểu dữ liệu)
+ Chú ý: tên của bảng, cột không nên quá dài, cần đủ nghĩa và thường không có dấu
- Các cột (trường) tuỳ chọn và các cột (trường) bắt buộc:
+ Nếu cột là bắt buộc thì người sử dụng cần phải cung cấp một giá trị cho cột này trongmỗi dòng (bản ghi) thêm vào bảng khi cập nhật CSDL Cột sẽ cần phải được chỉ rõ là NOTNULL
+ Nếu cột là tuỳ chọn thì nó có thể nhận giá trị null
Chú ý: có thể lưu trữ một giá trị 0 cho một cột tuỳ chọn khi nó không có giá trịnhững cách này không phải là cách hay
1.3.5.2 Xác định khóa
- Khoá chính và các khoá ngoài
+ Hầu hết các HQTCSDL hiện đại cho phép chỉ rõ khoá chính, khoá ngoài khi địnhnghĩa các bảng
+ Nếu các HQTCSDL không cho phép định nghĩa tự động thì cần phải chỉ rõ Khoáchính cần phải duy nhất và not null Khoá ngoài cần phải liên quan tới một thể hiện củakhoá chính đã có hoặc là nhận giá trị null
+ Giá trị mặc định có thể được sử dụng để giảm bớt việc gõ máy cho người sử dụng
Nó giúp cho việc nhập dữ liệu nhanh hơn và giảm bớt lỗi
Trang 37- Khoá giả
+ Để tăng tốc độ tìm kiếm, tiết kiệm không gian nhớ và giảm lỗi các khoá cần phảingắn Nếu một vài khoá quá dài cần phải thay chúng bằng một khoá giả
+ Có hai vấn đề khi đưa ra một khoá giả:
* Cần phải thiết lập một kỹ thuật để sinh tự động các giá trị duy nhất cho khoá (sinhkhoá tự động)
* Cần phải cung cấp một ràng buộc duy nhất cho các định danh tự nhiên để ngăn chặnviệc lưu trữ một vài bản ghi cho cùng một thực thể có cùng một dữ liệu nhưng chỉ khác nhau
về giá trị khoá
1.3.5.3 Thiết lập quan hệ
- Các quan hệ
+ Các quan hệ giữa các bảng sẽ được thiết lập bởi các khoá ngoài
+ Cần phải đảm bảo là cái ràng buộc khoá ngoài sẽ được cài đặt
1.3.5.4 Xem xét hiệu suất thực thi CSDL
Cần phải đánh giá việc thực thi CSDL, đó là tính hợp lý của thời gian đáp ứng cáccâu hỏi truy vấn Khi xem xét hiệu suất thực thi CSDL cần phải:
- Chạy thử CSDL với một tập đủ lớn các bản ghi trong môi trường thực tế
- Mô phỏng một số người dùng cùng thực hiện một truy vấn trong CSDL đa người sửdụng
- Chạy trộn lẫn một số chức năng với thời gian quy định
4.7 Điều chỉnh CSDL
Sau khi Xem xét hiệu suất thực thi CSDL ta cần thực hiện tiếp các công việc sau :
- Tạo các thủ tục sao lưu và phục hồi CSDL
- Tổ chức bảo trì và bảo mật cho CSDL
- Thiết lập các ràng buộc toàn vẹn cho CSDL
- Xác định không gian nhớ cho các bảng CSDL và các chỉ số
- Thiết lập vùng nhớ đệm cho CSDL
- Phân cụm CSDL, tổ chức lưu trữ vật lý tối ưu cho CSDL trên đĩa
- Đảm bảo điều khiển tương tranh trong CSDL đa người sử dụng
- Tạo ra các khung nhìn của CSDL cho từng đối tượng người dùng
- Xác định sự phân tán dữ liệu và xử lý giữa các máy trạm (client) và máy chủ (server)trong một hệ thống phân tán
Trang 38- Giảm bớt dư thừa dữ liệu trong lưu trữ: Trong các ứng dụng lập trình truyền thống,
phương pháp tổ chức lưu trữ dữ liệu vừa tốn kém, lãng phí bộ nhớ và các thiết bị lưu trữ, vừa dưthừa thông tin lưu trữ Nhiều chương trình ứng dụng khác nhau cùng xử lý trên các dữ liệu nhưnhau, dẫn đến sự dư thừa đáng kể về dữ liệu Ví dụ trong các bài toán nghiệp vụ quản lý "Cướcthuê bao điện thoại" và "Doanh thu & sản lượng ", tương ứng với mỗi một chương trình là mộthay nhiều tệp dữ liệu được lưu trữ riêng biệt, độc lập với nhau Trong cả 2 chương trình cùng xử
lý một số thuộc tính của một cuộc đàm thoại như “số máy gọi đi”, “số máy gọi đến”, “hướngcuộc gọi”, “thời gian bắt đầu” và “thời gian kết thúc” Nhiều thuộc tính được mô tả và lưu trữnhiều lần độc lập với nhau Nếu tổ chức lưu trữ theo lý thuyết CSDL thì có thể hợp nhất các tệplưu trữ của các bài toán trên, các chương trình ứng dụng có thể cùng chia sẻ tài nguyên trên cùngmột hệ CSDL
- Tổ chức lưu trữ dữ liệu theo lý thuyết CSDL sẽ tránh được sự không nhất quán trong
lưu trữ dữ liệu và bảo đảm được tính toàn vẹn của dữ liệu: Nếu một thuộc tính được mô tả trong
nhiều tệp dữ liệu khác nhau và lặp lại nhiều lần trong các bản ghi, khi thực hiện việc cập nhật,sửa đổi, bổ sung sẽ không sửa hết nội dung các mục đó Nếu dữ liệu càng nhiều thì sự sai sót khicập nhật, bổ sung càng lớn Khả năng xuất hiện mâu thuẫn, không nhất quán thông tin càngnhiều, dẫn đến không nhất quán dữ liệu trong lưu trữ Tất yếu kéo theo sự dị thường thông tin,thừa, thiếu và mâu thuẫn thông tin
- Sự không nhất quán dữ liệu trong lưu trữ: làm cho dữ liệu mất đi tính toàn vẹn cuả nó.
Tính toàn vẹn dữ liệu đảm bảo cho sự lưu trữ dữ liệu luôn luôn đúng Không thể có mã vùngngoài quy định của cơ quan quản lý, hoặc ngày sinh của một nhân viên không thể xẩy ra saungày tốt nghiệp ra trường của nhân viên đó…
- Tổ chức lưu trữ dữ liệu theo lý thuyết CSDL có thể triển khai đồng thời nhiều ứng dụng
trên cùng một CSDL: Điều này có nghĩa là các ứng dụng không chỉ chia sẻ chung tài nguyên dữ
liệu mà còn trên cùng một CSDL có thể triển khai đồng thời nhiều ứng dụng khác nhau tại cácthiết bị đầu cuối khác nhau
- Tổ chức dữ liệu theo lý thuyết cơ sở dữ liệu sẽ thống nhất các tiêu chuẩn, thủ tục và các
biện pháp bảo vệ, an toàn dữ liệu: Các hệ CSDL sẽ được quản lý tập trung bởi một người hay
một nhóm người quản trị CSDL, bằng các hệ quản trị CSDL Người quản trị CSDL có thể ápdụng thống nhất các tiêu chuẩn, quy định, thủ tục chung như quy định thống nhất về mẫu biểubáo cáo, thời gian bổ sung, cập nhật dữ liệu Điều này làm dễ dàng cho công việc bảo trì dữliệu Người quản trị CSDL có thể bảo đảm việc truy nhập tới CSDL, có thể kiểm tra, kiểm soátcác quyền truy nhập của người sử dụng Ngăn chặn các truy nhập trái phép, sai quy định từtrong ra hoặc từ ngoài vào
2.1.2 Định nghĩa các thuật ngữ:
2.1.2.1 CSDL (Data Base)
Trang 39a Định nghĩa:
- ĐN 1: là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ trên máy tính, có
nhiều người sử dụng và được tổ chức theo một mô hình Dữ liệu là những sự kiện có thể ghi
lại được và có ý nghĩa
- ĐN 2: Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được lưutrữ trên các thiết bị như băng từ, đĩa từ,… để có thể thoả mãn yêu cầu khai thác đồng thời củanhiều người sử dụng
Ví dụ: Để quản lý việc học tập trong một môi 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….Chúng ta tổ chức các dữ liệu đó thành các bảng và lưugiữ 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
b Ưu điểm của cơ sở dữ liệu
- Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm được tínhnhất quán và toàn vẹn dữ liệu
- Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau
- Khả năng chia sẻ thông tin cho nhiều người sử dụng
c Những vấn đề mà CSDL cần phải giải quyết
- Tính chủ quyền của dữ liệu: Tính chủ quyền của dữ liệu được thể hiện ở phương
diện an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chínhxác của dữ liệu Điều này có nghĩa là người khai thác CSDL phải có nhiệm vụ cặp nhật cácthông tin mới nhất của CSDL
- Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có nhiều người
được phép khai thác dữ liệu một cách đồng thời, nên cần thiết phải có một cơ chế bảo mật vàphân quyền hạn khai thác CSDL Các hệ điều hành nhiều người sử dụng hay hệ điều hànhmạng cục bộ đều có cung cấp cơ chế này
- Tranh chấp dữ liệu: Nhiều người được phép truy nhập cùng một lúc vào tài nguyên
dữ liệu của CSDL với những mục đích khác nhau, do đó cần thiết phải có một cơ chế ưu tiênkhi truy nhập dữ liệu Cơ chế ưu tiên có thể được thực hiện bằng việc cấp quyền ưu tiên chotừng người khai thác
- Đảm bảo an toàn dữ liệu khi có sự cố: Việc quản lý dữ liệu tập trung có thể làm tăng
khả năng mất mát hoặc sai lệch thông tin khi có sự cố như mất điện đột xuất, hay một phầnđĩa lưu trữ CSDL bị hư,… một số hệ điều hành mạng có cung cấp dịch vụ sao lưu ảnh đĩacứng, tự động kiểm tra và khắc phục lỗi khi có sự cố Tuy nhiên, bên cạnh dịch vụ của hệđiều hành, để đảm bảo CSDL luôn ổn định, một CSDL nhất thiết phải có một cơ chế khôiphục dữ liệu khi có các sự cố bất ngờ xảy ra
2.1.2.2 Hệ quản trị CSDL (Data Base Management System)
a Khái niệm:
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, duy trì và khai thác một cơ sở dữ liệu Nó là một hệ thống các 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
Trang 40Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng nhưnhững người khai thác CSDL Hiện nay trên thị trường phần mềm đã có những hệ quản trịCSDL hỗ trợ được nhiều tiện ích như: MS Access, Visual Foxpro, SQL Server Oracle, …
b Các yếu tố của một hệ quản trị CSDL:
Mỗi hệ quản trị CSDL đều được cài đặt dựa trên một mô hình dữ liệu cụ thể Dù là dựatrên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội đủ các yếu tố sau:
- Ngôn ngữ giao tiếp giữa người sử dụng và CSDL, bao gồm :
+ Ngôn ngữ mô tả dữ liệu: Để cho phép khai báo cấu trúc của CSDL, khai báo các mốiliên hệ của dữ liệu và các quy tắc quản lý áp đặt lên các dữ liệu đó
+ Ngôn ngữ thao tác dữ liệu: Cho phép người sử dụng có thể cập nhật dữ liệu(thêm/sửa/xoá)
+ Ngôn ngữ truy vấn dữ liệu: Cho phép người khai thác sử dụng để truy vấn các thông tincần thiết trong CSDL
+ Ngôn ngữ quản lý dữ liệu: Cho phép những người quản trị hệ thống thay đổi cấu trúccủa các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho người
- Hệ quản trị CSDL cũng phải có cơ chế sao lưu (backup) và phục hồi (restore) dữ liệukhi có sự cố xảy ra Điều này có thể thực hiện sau một thời gian nhất định hệ quản trị CSDL sẽ
tự động tạo ra một bản sao CSDL, cách này hơi tốn kém, nhất là đối với CSDL lớn
- Hệ quản trị CSDL phải cung cấp một giao diện thân thiện, dễ sử dụng
2.1.2.3 Hệ CSDL.
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
2.1.3 Chức năng và vai trò của hệ quản trị CSDL.
- Lưu trữ các định nghĩa, các mối liên kết dữ liệu (gọi là siêu dữ liệu) vào một từ điển
dữ liệu Các chương trình truy cập đến cơ sở dữ liệu làm việc thông qua hệ quản trị cơ sở
dữ liệu Hệ quản trị cơ sở dữ liệu sử dụng dữ liệu trong từ điển dữ liệu để tìm kiếm các cấutrúc thành phần dữ liệu và các mối liên kết được yêu cầu Mọi sự thay đổi trong các tệp cơ sở
dữ liệu sẽ được tự động ghi lại vào từ điển dữ liệu Như vậy, hệ quản trị cơ sở dữ liệu giảiphóng người sử dụng khỏi việc lập trình cho các mối liên kết phức tạp trong mỗi chươngtrình, việc sửa đổi các chương trình truy cập đến tệp cơ sở dữ liệu đã bị sửa đổi Nói cáchkhác, hệ quản trị cơ sở dữ liệu loại bỏ sự phụ thuộc giữa dữ liệu và cấu trúc ra khỏi hệ thống