1 Cơ sở lý luận về CSDL
1.1 Khái niệm CSDL và Hệ quản trị CSDL
CSDL
CSDL là một hệ thống các thơng tin có cấu trúc được lưu trữ trên các thiết bị lưu trữ thơng tin thứ cấp (băng, đĩa từ, usb..), để có thể thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng, hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau.
Việc sử dụng CSDL sẽ đem đến cho chúng ta một số lợi ích như:
• Giảm sự trùng lặp thơng tin đến mức thấp nhất và do đó sẽ đảm bảo được tính tồn vẹn và nhất qn của dữ liệu.
• Đảm bảo cho việc truy suất dữ liệu theo những cách khác nhau
• Trợ giúp khả năng chia sẻ thông tin cho nhiều người dùng và nhiều chương trình ứng dụng khác nhau
Hệ quản trị CSDL
Hệ quản trị CSDL là những chương trình phần mềm máy tính điện tử cho phép người dùng:
• Tổ chức dữ liệu thành các bản ghi theo một cách thống nhất
• Truy suất dữ liệu theo một cách thống nhất
Các chương trình ứng dụng khơng nhận được dữ liệu cần thiết trực tiếp từ thiết bị nhớ điện tử. Trước hết, nó đặt yêu cầu truy cập dữ liệu từ Hệ quản trị CSDL, sau đó Hệ quản trị CSDL sẽ tiến hành tìm kiếm dữ liệu từ CSDL bằng cách sử dụng từ điển dữ liệu và gửi trả dữ liệu tìm được cho chương trình ứng dụng. Các chương trình ứng dụng sẽ sắp xếp các mục dữ liệu tìm được theo một khn mẫu báo cáo định trước. Như vậy, Hệ quản trị CSDL hoạt động như một trung gian giữa CSDL và chương trình ứng dụng
NS D NS D Chương trình ứng dụng Chương trình ứng dụng Hệ quản trị CSDL CSDL
Quan hệ giữa Chương trình ứng dụng, Hệ quản trị CSDL và CSDL
Hệ CSDL
Hệ CSDL là một phần mềm cho phép xây dựng một Hệ quản trị CSDL
1.2 Kiến trúc một Hệ CSDL
Một CSDL được phân thành các mức khác nhau. Ở đây có thể xem như chỉ có một CSDL đơn giản và có một hệ phần mềm QTCSDL.
• Phần CSDL vật lý (mức vật lý): Là các tệp dữ liệu theo một cấu
trúc nào đó được lưu trên các thiết bị nhớ thứ cấp (như đĩa từ, băng từ, ... )
• CSDL mức khái niệm: Là một sự biểu diễn trừu tượng của CSDL
vật lý (cịn có thể nói tương đương: CSDL mức vật lý là sự cài đặt cụ thể của CSDL mức khái niệm).
• Các khung nhìn (view): Là cách nhìn, là quan niệm của từng
người sử dụng đối với CSDL mức khái niệm. Sự khác nhau giữa khung nhìn và mức khái niệm thực chất là không lớn.
1.3 Lược đồ và mơ hình dữ liệu
Thể hiện của CSDL (INSTANCE)
Khi CSDL đã được thiết kế, người ta thường quan tâm tới “Bộ khung” hay cịn gọi là “Mẫu” của CSDL. Dữ liệu có trong CSDL gọi là thể hiện của CSDL, mặc dù khi dữ liệu thay đổi trong một chu kỳ thời gian nào đó thì “Bộ khung” của CSDL vẫn khơng thay đổi. CSDL luôn thay đổi mỗi khi thông tin được thêm vào hay bị xố đi. Tập hợp các thơng tin lưu trữ trong CSDL tại một thời điểm nào đó được gọi là một thể hiện của CSDL.
Lược đồ của CSDL (Scheme)
Thiết kế tổng quan của CSDL được gọi là lược đồ (hay sơ đồ) của CSDL. Lược đồ của CSDL ít khi bị thay đổi. Trong một ngơn ngữ lập trình, nó tương ứng với các tập định nghĩa của các kiểu dữ liệu (kiểu mẫu tin, kiểu bảng, …). Thường “ Bộ khung” của CSDL bao gồm một số danh mục hoặc chỉ tiêu hoặc một số kiểu của các thực thể trong CSDL. Giữa các thực thể có mối quan hệ nào đó với nhau. Ở đây sử dụng thuật ngữ “Lược đồ” để thay thế cho khái niệm “ Bộ khung”.
Lược đồ khái niệm và mơ hình dữ liệu
Lược đồ khái niệm là sự biểu diến thế giới thực bằng một loạt ngôn ngữ phù hợp. Hệ quản trị CSDL cung cấp ngôn ngữ định nghĩa dữ liệu (Data definition language) đề xác định lược đồ khái niệm. Đây là một ngôn ngữ bậc cao, có khả năng mơ tả lược đồ khái niệm bẳng cách biểu diễn của mơ hình dữ liệu. Ví dụ, mơ hình dữ liệu phù hợp là một đồ thị có hướng, trong đó các đỉnh biểu diễn mối quan hệ giữa các thực thể, các cạnh của đồ thị biểu diễn mối quan hệ giữa các thực thể. Trên thực tế có nhiều loại mơ hình dữ liệu, nhưng nhìn chung có ba loại mơ hình cơ bản:
(1) Mơ hình phân cấp (Hierachical Model)
Mơ hình phân cấp dữ liệu là một cây, trong đó các nút biểu diễn các tập thực thể, giữa các nút con và nút cha được liên hệ theo một mối quan hệ xác định. Điểm nổi bật trong các thủ tục truy xuất đến một đối tượng trong mơ hình phân cấp là đường dẫn đi từ gốc đến phần tử cần xét trong cây phân cấp.Mơ hình phân cấp khá phù hợp với những hình thức tổ chức phân cấp trong xã hội. Thường gặp trong các hệ thống máy tính là mơ hình quản lý thư mục
(2) Mơ hình lưới (Network Model)
Mơ hình dữ liệu kiểu lưới là mơ hình cho phép dùng một mơ hình đồ thị trực tiếp và đơn giản cho dữ liệu. Mơ hình lưới và mơ hình phân cấp nói chung là khá bất tiện cho lưu trữ và khai thác xử lý bởi vì toạ độ các điểm, một số cạnh phải lưu trữ nhiều lần v..v.. gây nên sự dư thừa dữ liệu. Ngoài ra, hệ thống còn phải cần lưu trữ một số lớn các con trỏ móc nối gây nên phức tạp trong q trình cập nhật, biến đổi dữ liệu, đặc biệt khi thêm bớt một cạnh hoặc một một đỉnh nào đó.
(3) Mơ hình quan hệ (Relational Model)
Mơ hình này dựa trên cơ sở khái niệm lý thuyết tập hợp của các quan hệ, tức là tập các K - bộ với K cố định. Thuận lợi của mơ hình quan hệ là được hình thức hố tốn học chặt chẽ do đó các xử lý, thao tác với dữ liệu là dễ dàng, có tính độc lập dữ liệu cao. Cấu trúc dữ liệu đơn giản mềm dẻo trong xử lý và dễ dàng cho người sử dụng. Đặc biệt các phép tính cập nhật dữ liệu cho mơ hình quan hệ nói chung là ít phức tạp hơn nhiều so với các mơ hình khác. Một cách đơn giản hơn có thể hiểu mối quan hệ là một bảng 2 chiều tệp độc lập, trong đó mỗi cột (trường) là một thuộc tính, mỗi hàng (bộ) là một đối tượng.
Trong 3 loại mơ hình nêu trên thì mơ hình quan hệ có nhiều ưu điểm và được nhiều người quan tâm hơn cả. Bởi lẽ, mơ hình dữ liệu quan hệ có tính độc lập rất cao, lại dễ dàng sử dụng. Điều quan trọng hơn cả, mơ hình quan hệ được hình thức hố tốn học tốt, do đó được nghiên cứu, phát triển và cho được nhiều kết quả lý thuyết cũng hư ứng dụng trong thực tiễn. Trên cơ sở mơ hình dữ liệu quan hệ, đến nay đã phát triển thêm một số loại mơ hình khác nhằm mơ tả và thể hiện thế giới thực một cách chính xác và phù hợp hơn như mơ hình quan hệ thực thể (Entily Relationship model), mơ hình dữ liệu hướng đối tượng (Object Oriented Model)
1.4 Các thuộc tính cần có và các u cầu đặt ra đối với một Hệ quản trị CSDL
1.4.1 Các thuộc tính cần có của một Hệ quản trị CSDL
Để thể hiện được vai trò quan trọng, Hệ quản trị CSDL của một tổ chức cần có các thuộc tính sau
Thuộc tính Giải thích
Chia sẻ được Sẵn sàng để nhiều người có thể tiếp cận cùng một lúc
Vận chuyển được
Dễ dàng chuyển đến cho người ra quyết định
Bảo mật Có khả năng ngăn ngừa sự phá hoại và khơng cho những người khơng có thẩm quyền dùng
Chính xác Có nội dung phản ánh đúng sự thực, và đáng tin cậy
Kịp thời Phản ánh thực tế hiện thời và được cập nhật thường xuyên
(1) Chia sẻ được
Mỗi cơ quan đều có rất nhiều người ra quyết định. Có nhiều trường hợp, nhiều người cùng yêu cầu tìm kiếm những dữ liệu như nhau vào cùng một lúc. Chẳng hạn, trong một ngân hàng lớn, một hiện tượng thường xảy ra là hai đại diện khách hàng cùng muốn biết các mức lãi suất quy định mới nhất cho những khoản tiền gửi. Chính vì vậy, các cơ quan thường sử dụng hàng loạt các phương pháp khác nhau để giải quyết nhu cầu về khả năng chia sẻ dữ liệu. Sự thành công của các phương pháp này phụ thuộc rất nhiều vào mức biến động của dữ liệu. Với những dữ liệu ít biến động, người ta thường in ra, đóng thành sách để phân phát đến người dùng. Tuy nhiên, trong sự phát triển như vũ bão của nền kinh tế thị trường như hiện nay, dữ liệu biến động theo từng ngày, từng giờ. Điều này đặt những yêu cầu mới cho việc quản trị CSDL, làm sao đảm bảo tính chia sẻ được của CSDL nhưng cũng khơng bỏ qua tính thời điểm của nó.
(2) Vận chuyển được
Dữ liệu không chỉ được lưu trữ trong kho mà nó thường xuyên được chuyển tới những người ra quyết định trong tổ chức. Vì vậy, cần có những phương tiện truyền đưa dữ liệu từ kho chứa tới người ra quyết định. Cơng nghệ truyền dữ liệu đã có một lịch sử lâu dài. Hàng nghìn năm trước đây, những người Ai Cập và Ba Tư đã nuôi chim bồ câu để đưa thư. Khi điện thoại xuất hiện, nó đã tạo ra một cuộc cách mạng trong kinh doanh và trong đời sống xã hội, bởi vì nó truyền dữ liệu dưới dạng tiếng nói một cách nhanh chóng. Bên cạnh đó, các máy fax đã làm tăng tốc độ lưu thông công văn, thư từ giữa các cơ quan, chúng khơng những truyền được văn bản mà cịn truyền được cả hình ảnh. Ngày nay, thương mại điện tử đã làm thay đổi bản chất của nhiều hoạt động kinh doanh với khả năng truyền đưa cả văn bản, tiếng nói, âm thanh lẫn hình ảnh tĩnh và động.
Với sự xuất hiện các công nghệ hiện đại trong việc vận chuyển dữ liệu đã làm thay đổi quan niệm về thuộc tính vận chuyển được của dữ liệu. Bây giờ, tính vận chuyển được khơng chỉ bó hẹp trong việc đưa thông tin đến tận bàn của người ra quyết định. Những đòi hỏi cao hơn là phải làm sao để các nhà ra quyết định có thể tiếp cận tới những thơng tin thích hợp vào bất cứ lúc nào hay bất kỳ nơi nào.
(3) Bảo mật
Trong xã hội ngày nay, dữ liệu là một nguồn tài nguyên vô cùng đáng giá. Dữ liệu hỗ trợ cho những giao dịch nghiệp vụ và ra quyết định hàng ngày. Chính vì vậy, các cơ quan ln bảo vệ dữ liệu của họ một cách thận trọng bằng nhiều phương pháp. Một phương pháp thông thường là sao chép dữ liệu và cất giữ một hay nhiều bản sao ở những nơi khác nhau. Kỹ thuật này được dùng rất phổ biến cho dữ liệu lưu trữ trong các hệ thống máy tính. Việc truy cập tới dữ liệu thường bị hạn chế qua việc dùng các lớp bảo vệ bằng hàng rào điện tử như mật khẩu. Một biện pháp nữa đang dần dần được áp dụng rộng rãi đó là “Ký hợp đồng cạnh tranh – Noncompetitive contract”. Ví dụ, một số cơng ty phần mềm máy tính ở Mỹ để cấm đốn một cách hợp pháp các cán bộ lập chương trình máy tính sau khi bị sa thải khơng được làm việc cho một đối thủ cạnh tranh nào đó trong vịng hai năm để hy vọng ngăn cản được sự tiết lộ những dữ liệu có giá trị dưới dạng kiến thức về phần mềm của người lập trình
(4) Chính xác
Dữ liệu đóng một vai trị vơ cùng quan trọng đối với hoạt động ra quyết định của mỗi tổ chức. Trong nền kinh tế thị trường cạnh tranh khốc liệt, mỗi quyết định của tổ chức đề là những bước đi quyết định đến sự tồn tại và phát triển của mình. Do đó, để có được những quyết định đúng đắn thì
dữ liệu được cung cấp phải chính xác. Đơi khi, sự chính xác của dữ liệu ảnh hưởng tới tồn vong của tổ chức.
Dữ liệu khơng chính xác sẽ trở thành mối đe dọa tới lợi nhuận của tổ chức, doanh nghiệp. Một nghiên cứu gần đây cho biết, những dữ liệu bị mất mát, dữ liệu sai sót và dữ liệu tồi đã làm cho các công ty của Mỹ hao tổn hàng tỷ đô la mỗi năm. Dữ liệu tồi dẫn tới tình trạng lập hóa đơn khơng đúng, chỉ tiêu quá định mức, phân phát hàng chậm, hàng hóa khơng đúng quy cách phẩm chất và bị trả lại nhiều. Vào năm 1990, một cơng ty chứng khốn chủ chốt ở New York đã bị mất hơn 200 tỷ đơ la chỉ vì một lỗi nạp dữ liệu. Vì độ chính xác của dữ liệu hệ trọng như vậy nên các cơ quan cần quan tâm đặc biệt tới việc thu nhập dữ liệu, một thời điểm để gây tổn thất nhất cho độ chính xác của dữ liệu.
(5) Kịp thời
Giá trị của dữ liệu thường được xác định bằng tuổi của chúng và giá trị mai một rất nhanh theo thời gian. Do đo, tính kịp thời của dữ liệu ln được các nhà quản lý đặt lên hàng đầu. Đối với các nhà quản lý tác nghiệp, họ thường muốn có được các dữ liệu theo thời gian thực, tức là thâu tóm được ngay từ khi chúng phát sinh. Họ muốn bắt mạch để nhận rõ từng nhịp đập của dây chuyền sản xuất sao cho có thể ứng xử rất nhanh khi máy móc bị hỏng hóc hay khắc phục ngay những khiếm khuyết về sản phẩm. Ngược lại, các nhà kế hoạch chiến lược có lẽ sẽ bằng lòng hơn với những dữ liệu thu được từ mấy tháng trước, bởi vì họ quan tâm nhiều hơn tới việc thăm dò và phát hiện các xu thế tương lai.
(6) Phù hợp
Mục đích của các Hệ quản trị CSDL là duy trì dữ liệu phù hợp với việc xử lý nghiệp vụ và ra quyết định. Tính phù hợp là mối quan tâm hàng đầu trong việc thiết kế CSDL. Người dùng phải xác định được những gì cần lưu trữ cho phù hợp với hiện tại và có thể hữu ích cho tương lai nữa. Tuy nhiên, xác định được dữ liệu phù hợp với tương lai là một việc khó và thường có khuynh hướng ơm đồm q nhiều. Điều này thể hiện rõ nhất ở các mẫu báo cáo đệ trình lên chính phủ
Phù hợp cũng là một mối quan tâm chính trong việc trích rút và xử lý dữ liệu từ các kho dữ liệu. Khi đã trích được dữ liệu phù hợp đến một mức nào đó thì có thể dùng các phương pháp của phần mềm máy tính, chẳng hạn dùng các ngôn ngôn ngữ đặt câu hỏi để tổng hợp sao cho dữ liệu trở nên phù hợp.
1.4.2 Yêu cầu đặt ra đối với một Hệ quản trị CSDL
Hệ quản trị CSDL có vai trị rất quan trọng trong các hệ thống lập trình, đóng vai trị 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ể dùng được hệ thống mà ít nhiều khơng cần đến thuật toán chi tiết hoặc biểu diễn dữ liệu trong máy. Cho đến nay có khá nhiều hệ quản trị CSDL mạnh được đưa ra thị trường như: Visual FoxPro, MicroSoft Access, SQL-Server, DB2, Sybase, Paradox, Informix, Oracle... với các chất lượng khác nhau. 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ể. Hầu hết các hệ quản trị CSDL hiện nay đều dựa trên mơ hình quan hệ. Dù dựa trên mơ hình dữ liệu nào, một hệ quản trị CSDL cũng phải đáp ứng được các yêu cầu sau:
(1)Có hệ thống ngôn ngữ giao tiếp giữa người sử dụng (NSD) và CSDL
• Ngơn ngữ mơ tả dữ liệu (Data Definition Language -
DDL) để cho phép khai báo cấu trúc của CSDL, khai báo các mối liên hệ của dữ liệu (Data RelationShip) và các quy tắc (Rules, Constraint) quản lý áp đặt lên các dữ liệu đó.
• Ngơn ngữ thao tác dữ liệu (Data Manipulation Language
- DML) cho phép người sử dụng có thể thêm (Insert), xóa (Delete), sửa (Update) dữ liệu trong CSDL.
• Ngơn ngữ truy vấn dữ liệu, hay ngơn ngữ hỏi đáp có cấu