Bài 1 Kiến thức nền tảng về Cơ sở dữ liệu
lượt xem 56
download
Giải thích vì sao chúng ta cần có cơ sở dữ liệu Giải thích sự phát triển của các hệ quản trị cơ sở dữ liệu Liệt kê các mô hình cơ sở dữ liệu khác nhau Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu quan hệ
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài 1 Kiến thức nền tảng về Cơ sở dữ liệu
- Bài 1 Kiến thức nền tảng về Cơ sở dữ liệu Mục tiêu của bài học: Cuối bài học này, bạn có thể Giải thích vì sao chúng ta cần có cơ sở dữ liệu Giải thích sự phát triển của các hệ quản trị cơ sở dữ liệu Liệt kê các mô hình cơ sở dữ liệu khác nhau Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu Mô tả các khái niệm cơ bản liên quan đến cơ sở dữ liệu quan hệ • Toàn vẹn thực thể (entity integrity) • Khóa chính (primary key) • Khóa ngoại (foreign key) • Các mối quan hệ và bậc của các mối quan hệ (relation and its degree) Mô tả tóm tắt giới thiệu về SQL Giới thiệu Các tổ chức thường xuyên phải duy trì một khối lượng lớn dữ liệu, chúng là kết quả tạo ra từ các hoạt động thường ngày. Một cơ sở dữ liệu (CSDL) là dạng được sắp xếp của các dữ liệu như vậy. Một CSDL có thể chứa một hoặc nhiều mục thông tin có liên quan đến nhau gọi là các bản ghi (record). Bạn có thể hình dung CSDL là một tập hợp dữ liệu cho phép chúng ta đặt ra các câu hỏi với nó. Ví dụ như, “Số điện thoại và địa chỉ của 5 bưu điện gần trường nhất là gì?”, hay “Chúng ta có quyển sách nào về món ăn có lợi cho sức khỏe trong thư viện không? Nếu có thì chúng nằm ở những tủ sách nào?”, hay “Hãy cho tôi xem hồ sơ nhân viên và các số liệu kinh doanh của 5 nhân viên kinh doanh giỏi nhất trong quý này, nhưng không cần xem địa chỉ chi tiết của họ”. Bài này sẽ đưa ra các khái niệm liên quan đến các CSDL và các hệ quản trị CSDL, khám phá các mô hình CSDL khác nhau và giới thiệu ngôn ngữ SQL. 1.1.Vì sao Cơ sở dữ liệu là cần thiết? Các CSDL được dùng để lưu trữ dữ liệu một cách có tổ chức và hiệu quả. Một CSDL cho phép chúng ta quản lý dữ liệu một cách nhanh chóng và dễ dàng. Ví dụ, một công ty có thể lưu trữ thông tin chi tiết về các nhân viên công ty trong nhiều CSDL khác nhau. Vào bất cứ thời điểm nào, chúng ta có thể có thể truy xuất thông tin từ CSDL, thêm dữ liệu mới vào các CSDL và tìm kiếm dữ liệu theo 1 số tiêu chí nào đó trong các CSDL này. Kiến thức nền tảng về Cơ sở dữ liệu 1
- 1.1.1 Tính bền vững trong lưu trữ dữ liệu Chúng ta có thể lưu trữ dữ liệu đơn giản bằng các tập tin một cách thủ công. Ví dụ, một trường đại học phải lưu giữ thông tin về các giáo viên, các sinh viên, các môn học và các kì kiểm tra. Thông tin chi tiết về giáo viên có thể được lưu trong Hồ sơ Nhân viên (Staff Register), thông tin chi tiết về sinh viên được nhập vào Hồ sơ Sinh viên (Student Register) và tương tự như vậy cho các thông tin khác . Tuy nhiên, dữ liệu được lưu ở dạng này không phải là bền vững. Các bản ghi trong những tập tin thủ công như vậy chỉ có thể được duy trì trong vài tháng hoặc vài năm mà thôi. Các hồ sơ và tập tin dạng này rất cồng kềnh, tốn không gian lưu trữ và không thể lưu giữ cho nhiều năm. 1.1.2 Vấn đề lưu trữ tập tin Phương pháp thủ công lưu trữ và cập nhật thủ công sử dụng tập tin có một số nhược điểm. Xét công việc nhập điểm của sinh viên một cách thủ công. Mỗi giáo viên đánh giá các bài làm và ghi điểm theo mã sinh viên. Sau đó, giáo vụ sẽ thu lại các bảng chấm điểm của từng môn. Để soạn ra bảng điểm của một sinh viên, giáo vụ phải tìm trong tất cả bảng chấm điểm của các môn để tìm các điểm số mà sinh viên đó đã đạt được. Các điểm số sau đó được ghi vào các ô thích hợp trong bảng điểm của sinh viên này. Giáo vụ cũng phải ghi luôn những điểm số này vào hồ sơ sinh viên trong tập hồ sơ của trường. Quy trình này thật tẻ nhạt, tốn thời gian và có khả năng xảy ra sai sót. 1.1.3 Lợi ích của Cơ sở dữ liệu được quản lý bằng máy tính Thông tin hay dữ liệu có thể được lưu trữ dưới dạng các CSDL được máy tính quản lý. Một hệ thống CSDL là hữu ích vì nó cho phép ta kiểm soát dữ liệu môt cách tập trung. Sau đây là một số lợi ích của việc sử dụng một hệ thống CSDL tập trung: Giảm lượng dữ liệu dư thừa trong dữ liệu được lưu trữ Trong một cơ quan, một số phòng ban thường lưu giữ cùng một dữ liệu. Việc duy trì một CSDL tập trung sẽ giúp các phòng ban có thể truy cập cùng một dữ liệu. Do vậy, sự trùng lặp dữ liệu, hay ‘dư thừa dữ liệu’ sẽ được loại bỏ. Không còn sự thiếu nhất quán trong dữ liệu Do chỉ có một CSDL trung tâm, ta có thể giao cho một nhân viên nhiệm vụ cập nhật dữ liệu định kì. Giả sử, ông Larry Finner - một nhân viên cơ quan được thăng chức từ Quản lí lên Quản lí cao cấp, ta chỉ cần sửa lại một nơi trong CSDL. Kết quả là, sự không nhất quán về dữ liệu được giảm đi. Dữ liệu được lưu trữ có thể được chia xẻ Một CSDL trung tâm có thể đặt tại một máy chủ, chia xẻ cho một số người dùng chung. Theo cách này, bất cứ lúc nào tất cả mọi người đều có thể truy cập đến thông tin dùng chung và được cập nhật. Có thể thiết lập và tuân theo các chuẩn mực 2 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- Việc giám sát tập trung đảm bảo việc có thể thiết lập và tuân theo một chuẩn mực nhất định về cách biểu diễn thông tin. Ví dụ, tên của một nhân viên phải được biểu diễn dưới dạng ‘Mr. Larry Finner’, trong đó • Danh xưng (Mr.) • Tên (Larry) • Họ (Finner) Chắc chắn rằng tất cả tên lưu trong CSDL sẽ theo cùng một định dạng nếu như các chuẩn mực được thiết lập theo cách này. Có thể duy trì được tính toàn vẹn dữ liệu ‘Duy trì tính toàn vẹn dữ liệu’ là đảm bảo sự chính xác trong CSDL. Ví dụ, khi một nhân viên từ chức và rời khỏi cơ quan, xét trường hợp phòng Kế toán đã cập nhật CSDL của mình nhưng phòng Nhân sự lại chưa cập nhật các hồ sơ của họ. Trong trường hợp này, dữ liệu trong hồ sơ của cơ quan là không chính xác. Việc giám sát tập trung CSDL giúp ta tránh được những sai sót này. Chúng ta có thể chắc chắn là khi một bản ghi được xóa khỏi CSDL, tất cả các bản ghi liên quan trong các bảng khác cũng được xóa. Có thể thực hỉện việc bảo mật dữ liệu Trong một hệ thống CSDL tập trung, không phải ai cũng được quyền được sửa đổi CSDL. Quyền hạn này chỉ được giao cho một cá nhân có toàn quyền kiểm soát đối với CSDL. Người này được gọi là Quản trị Cơ sơ dữ liệu hay DBA (Database Administrator). DBA có khả năng thực hiện việc bảo mật bằng cách thiết đặt những giới hạn cho việc truy cập dữ liệu. Tùy thuộc vào quyền được cấp cho mình, người sử dụng mới có thể thêm, sửa hay truy vấn dữ liệu. 1.2 Sự phát triển của các hệ quản trị CSDL – toàn cảnh lịch sử Một Hệ quản trị CSDL (DBMS) có thể được định nghĩa như một tập hợp các bản ghi có liên quan và một bộ chương trình để truy cập và thao tác trên các bản ghi đó. Một Hệ quản trị CSDL cho phép ta nhập, lưu trữ và quản lý dữ liệu. Vấn đề của các gói phần mềm DBMS trước đây là dữ liệu được lưu trữ ở dạng các tập tin ‘phẳng’ (flat file). Như vậy, thông tin về các đối tượng khác nhau được lưu trữ riêng biệt trong các tập tin vật lý khác nhau. Do đó, liên kết giữa các đối tượng này, nếu có, phải được giữ trong một tập tin vật lý. Vì vậy, một gói phần mềm đơn sẽ bao gồm quá nhiều tập tin và phải lập trình rất tốt để tích hợp chúng vào một hệ thống duy nhất. Giải pháp cho các vấn đề này là xây dựng một hệ thống CSDL tập trung. Trong một CSDL tập trung, CSDL được lưu tại vị trí trung tâm. Tất cả mọi người đều có thể từ máy của họ truy cập dữ liệu lưu tại vị trí trung tâm. Một hệ thống CSDL trung tâm lớn có thể chứa tất cả dữ liệu liên quan đến các nhân viên. Phòng Kế toán và phòng Nhân sự sẽ dùng các chương trình thích hợp để truy cập thông tin cần thiết. Các chương trình này hoặc toàn bộ ứng dụng có thể nằm trên máy tính làm việc của các cá nhân. Kiến thức nền tảng về Cơ sở dữ liệu 3
- 1.2.1 Các mô hình Cơ sở dữ liệu Chúng ta có thể phân biệt các CSDL dựa trên chức năng và mô hình dữ liệu. Một mô hình dữ liệu mô tả cách thức lưu trữ dữ liệu trong một vật chứa (container) và cách thức truy xuất dữ liệu từ vật chứa đó. Việc phân tích và thiết kế các mô hình CSDL là cơ sở của sự phát triển các hệ cơ sở dự liệu. 1.2.2 Mô hình Cơ sở dữ liệu phân cấp hay mô hình Cơ sở dữ liệu đa cấp Mô hình dữ liệu phân cấp được phát triển để mô hình hóa các loại cơ quan phân cấp trong thế giới thực. Hình 1.1 minh họa một lược đồ đơn giản cho một giản đồ phân cấp. DEPARTMENTD_NAMED_NUMBERMGRNAMEMGRSTARTDAT E PROJECTPNAMEPNUMBER EMPLOYEENAMESSNBDATEADD PLOCATION RESS a. DEPARTMENT: Research Administration EMPLOYEE: Smith Max John Grace Elite James Frank b. DEPARTMENT: Research Administration PROJECT Product A Product B Computerization New benefits Hình 1.1: Giản đồ phân cấp Trong mô CSDL hình phân cấp, Department (phòng ban) được xem như là gốc, nốt cha cao nhất của cây phân cấp. Các nốt dữ liệu Project và Employee là các nốt con, nốt lá trong mô hình cây phân cấp. Một đường đi, xuất phát từ một nốt con bên trái qua nốt cha duyệt sang các nốt khác, lặp đi lặp lại tiến trình này cho đến khi hết tất cả các nốt thì sẽ xác định được cấu trúc phân cấp của cây. Một nốt cha có thể có nhiều nốt con. Một nốt con chỉ có một nốt cha. Từ hình vẽ, ta có thể thấy rõ là trong một phòng ban, có thể có nhiều nhân viên và một phòng ban có thể có nhiều dự án. 4 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- Ưu điểm của mô hình phân cấp Các ưu điểm của mô hình phân cấp là: 1. Dữ liệu được giữ trong một CSDL dùng chung, do đó việc chia xẻ dữ liệu trở nên dễ dàng hơn, và hệ quản trị CSDL sẽ cung cấp cũng như thắt chặt việc bảo mật 2. Hệ quản trị CSDL mang lại sự độc lập dữ liệu, điều làm giảm bớt nhân lực và chi phí trong việc bảo trì chương trình. 3. Mô hình này rất hiệu quả khi CSDL chứa một khối lượng lớn dữ liệu. Ví dụ, một hệ thống tài khoản khách hàng trong một ngân hàng là phù hợp với mô hình phân cấp bởi vì mỗi tài khoản là đầu mối của một số giao dịch. 1.2.3 Mô hình CSDL mạng Cùng với mô hình phân cấp, mô hình CSDL mạng (network model) là các mô hình dữ liệu chính để hiện thực rất nhiều hệ quản trị CSDL thương mại. Trong mô hình CSDL mạng, cấu trúc dữ liệu và ngôn ngữ truy vấn được định nghĩa và xây dựng bởi CODASYL (Conference on Data Systems Language – Hội thảo về Ngôn ngữ của các hệ thống dữ liệu). Giản đồ mạng lưới (sơ đồ tổ chức khái niệm của toàn bộ CSDL) bao gồm định nghĩa tên của CSDL, loại bản ghi của từng bản ghi, và các thành phần cấu tạo nên các bản ghi đó. Một giản đồ con (sub-schema) (phần của CSDL mà các chương trình ứng dụng nhìn thấy được, sẽ thực tế tạo ra các thông tin cần thiết từ dữ liệu được chứa trong CSDL) cho phép các chương trình ứng dụng truy cập vào các dữ liệu được yêu cầu từ CSDL. Một ngôn ngữ cho phép người quản trị CSDL định nghĩa dữ liệu trong CSDL và thao tác các dữ liệu đó. Salesrep Customer Product Invoice Payment Invline Hình 1.2: Mô hình mạng lưới Mô hình mạng lưới như trên minh họa một loạt các quan hệ một-nhiều. 1. Một đại diện bán hàng có thể ghi nhiều hóa đơn, nhưng mỗi hóa đơn chỉ do một đại diện bán hàng ghi. Kiến thức nền tảng về Cơ sở dữ liệu 5
- 2. Một khách hàng có thể mua nhiều lần vào các dịp khác nhau. Một khách hàng có thể có nhiều hóa đơn, nhưng mỗi hóa đơn chỉ thuộc về một khách hàng. 3. Một biên lai hóa đơn có thể có nhiều dòng hóa đơn (INVLINE), nhưng một dòng hóa đơn chỉ nằm trong một hóa đơn. 4. Một sản phẩm có thể xuất hiện trong nhiều dòng hóa đơn, nhưng mỗi dòng hóa đơn chỉ chứa một sản phẩm. Giờ chúng ta sẽ thảo luận các thành phần của ngôn ngữ được dùng với các mô hình mạng lưới. Các thành phần này là: 1. Ngôn ngữ Định nghĩa Dữ liệu (DDL) được dùng để tạo và gỡ bỏ các CSDL và các đối tượng CSDL. Nó cho phép người quản trị CSDL định nghĩa ra các thành phần của lược đồ. 2. Ngôn ngữ định nghĩa dữ liệu trong lược đồ con (Sub-schema DDL) cho phép người quản trị CSDL định nghĩa ra các thành phần của CSDL. 3. Ngôn ngữ Thao tác Dữ liệu (DML), cho phép người dùng thêm, lấy ra và sửa đổi thông tin trong CSDL. Tất cả những người sử dụng CSDL dùng những lệnh này trong hoạt động thường ngày của CSDL. 4. Ngôn ngữ Kiểm soát Dữ liệu (DCL) được dùng để quản lí quyền truy cập trên CSDL và các thành phần của CSDL. Cấu trúc cơ bản Mô hình phân cấp là một trường hợp đặc biệt của mô hình mạng lưới. Tuy nhiên, thay vì dùng cấu trúc cây chỉ có một nút cha, mô hình mạng lưới dùng lý thuyết tập hợp để đưa ra mô hình phân cấp dạng cây với ngoại lệ là các bảng con được phép có nhiều hơn một cha. Trong mô hình CSDL mạng, một mối quan hệ được gọi là một bộ (set). Mỗi bộ bao gồm ít nhất hai loại bản ghi: bản ghi chủ, tương đương với nút cha trong mô hình phân cấp, và bản ghi thành viên, tương đương với nút con trong mô hình phân cấp. Các ưu điểm của một cấu trúc như vậy được chỉ ra như sau: 1. Việc thiết lập các mối quan hệ trong mô hình CSDL mạng lưới dễ hơn là trong mô hình phân cấp. 2. Mô hình này tuân thủ chặt chẽ tính toàn vẹn dữ liệu của CSDL. 3. Mô hình này đủ để đạt được sự độc lập dữ liệu. Các nhược điểm được chỉ ra như sau: 1. Khó thiết kế các CSDL theo mô hình này. 2. Lập trình viên phải rất quen thuộc với các cấu trúc bên trong để truy xuất CSDL. 3. Mô hình này cho ta một môi trường truy cập dữ liệu theo cách duyệt. Do đó, để di chuyển từ A đến E trong chuỗi A-B-C-D-E, ta phải lần lượt đi qua B, C và D để đến được E. 6 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- 1.2.4 Mô hình quan hệ Một nhà khoa học tại trung tâm nghiên cứu của công ty IBM, Tiến sĩ E. F. Codd, không hài lòng với cách thức mà các hệ quản trị CSDL thời đó xử lý các khối lượng dữ liệu lớn. Ông thấy cần phải áp đặt các quy luật và nguyên tắc toán học để xử lý các vấn đề của các mô hình trước đó, ví dụ như: Sự toàn vẹn dữ liệu Sự dư thừa dữ liệu Vào tháng 6/1970, ông đăng bài báo với tựa đề ‘Một Mô hình Dữ liệu Quan hệ cho các Ngân hàng Dữ liệu lớn được chia xẻ’ (‘A Relational Model of Data for large Shared Databanks’). Tại đây, ông đã giới thiệu mô hình CSDL quan hệ. Mô hình này dựa trên hai ngành toán học – ‘Lý thuyết Tập hợp’ và ‘Lô gíc Vị từ Thứ tự’. Bài báo này liệt kê ra 12 nguyên tắc mà một hệ quản trị CSDL quan hệ phải thỏa mãn. Thuật ngữ ‘Relation’ được dẫn xuất từ lý thuyết tập hợp của toán học. Các đặc tính cơ bản của mô hình quan hệ được trình bày như sau. Trong mô hình quan hệ, dữ liệu được lưu trữ trong các bảng, dưới dạng các hàng và cột. Để hiểu được mô hình quan hệ, chúng ta hãy xét hai bảng sau. Mã Sinh viên Tên Sinh viên 1 Sam 2 John 3 Jenny 4 Lisa 5 Penny 6 Peter 7 Joe Bảng 1.1: Bảng Sinhviên Mã Sinh viên Điểm đạt được 1 34 2 87 3 45 4 90 5 36 6 65 7 89 Table 1.2: Bảng Điểm Bạn sẽ nhận thấy rằng có hai bảng khác nhau được trình bày ở đây. Trong bảng Điểm, chúng ta có Mã sinh viên và Điểm đạt được của các sinh viên. Trong bảng Sinhviên, chúng ta có Mã Sinh viên và Tên sinh viên. Để xem tên các sinh viên và điểm tương ứng của các bạn có điểm số lớn hơn 50, ta phải thực hiện hai bước: Đầu tiên, phải xác định Mã sinh viên của các sinh viên đạt Kiến thức nền tảng về Cơ sở dữ liệu 7
- điểm trên 50 trong bảng Điểm. Tiếp đó, so trùng mã sinh viên để tìm tên của các sinh viên trong bảng Sinhviên. Kết quả được liệt kê trong bảng 1.3. Mã Sinh viên Tên Sinh viên Điểm đạt được 2 John 87 4 Lisa 90 6 Peter 65 7 Joe 89 Bảng 1.3: Hiển thị Tên Sinh viên và Điểm Chúng ta có thể thu được thông tin này nhờ vào hai sự việc: Thứ nhất, có một cột chung giữa hai bảng, đó là Mã Sinh viên. Sau đó, dựa trên cột này, các bản ghi trong hai bảng khác nhau được khớp lại và ta thu được thông tin được yêu cầu. Trong mô hình quan hệ, dữ liệu được lưu trong các bảng. Mỗi bảng trong CSDL có một tên duy nhất xác định nội dung của nó. Mỗi bảng có thể được định nghĩa là giao của các hàng và các cột. Trong ví dụ trên đây, Mã sinh viên và Tên Sinh viên được lưu trong một bảng gọi là bảng Sinh viên. Ưu điểm của Mô hình Quan hệ Mô hình CSDL quan hệ giúp lập trình viên có thời gian tập trung vào khía cạnh lô-gíc của CSDL thay vì phải lưu tâm đến khía cạnh lưu trữ vật lý. Một trong các lý do khiến cho CSDL quan hệ trở nên phổ biến là sự uyển chuyển trong việc truy vấn. Phần lớn các CSDL quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL). Các hệ quản trị CSDL quan hệ sử dụng SQL để dịch các truy vấn của người dùng thành các đoạn mã cần thiết để lấy ra được các dữ liệu được yêu cầu. Mô hình quan hệ dễ dùng đến mức ngay cả những người chưa được đào tạo cũng thấy dễ dàng để tạo ra các câu truy vấn và các báo cáo tiện lợi, mà không cần phải suy nghĩ nhiều về nhu cầu phải thiết kế một CSDL đúng đắn. Nhược điểm của Mô hình Quan hệ Mặc dù mô hình này che dấu đi tất cả những sự phức tạp bên trong của hệ thống, nhưng thao tác với dữ liệu là chậm hơn các hệ thống CSDL khác. 1.3 Các khái niệm cơ bản về Cơ sở dữ liệu Trước khi chúng ta thảo luận chi tiết về các hệ CSDL, chúng ta cần biết một số khái niệm cơ bản về một CSDL. Hãy cùng khám phá từng khái niệm một. 1.3.1 Dữ liệu và thông tin Dữ liệu là thành phần quan trọng nhất trong bất cứ công việc nào chúng ta làm. Chúng ta hoặc là dùng những dữ liệu có sẵn, hoặc là tạo ra dữ liệu. Khi các dữ liệu này được thu thập và phân tích, nó cho ta thông tin. Ví dụ, một phóng viên của một tạp chí thể thao (người rất hâm mộ bóng đá) thu thập các điểm số (dữ liệu) của đội Đức trong 10 trận đấu Worldcup. Các điểm số này cấu 8 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- thành nên dữ liệu. Khi các dữ liệu này được so sánh với dữ liệu của 10 trận đấu Worldcup của đội Brazil, người phóng viên thu được thông tin là quốc gia nào có đội bóng chơi tốt hơn. 1.3.2 Cơ sở dữ liệu và Bảng Các bảng là các đối tượng của CSDL, nó chứa tất cả các dữ liệu có mặt trong một CSDL. Một CSDL được cấu thành từ nhiều bảng, mỗi bảng chứa một tập hợp các dữ liệu có liên quan với nhau. Các bảng trong một CSDL có thể liên quan với nhau. Một CSDL là một tập hợp các bảng. Xét một CSDL lưu trữ dữ liệu cho một ‘Hệ thống Đặt vé Máy bay’. Chi tiết về các hành khách đã đặt vé được lưu trong bảng ‘Đặt vé’ (Reservation), trong khi các chi tiết của những lần hủy vé được đặt trong bảng ‘Hủy vé’ (Cancellation). Hơn nữa, ngày và giờ của các chuyến bay có thể được lưu trong một bảng khác nữa. Danh sách thu tiền cũng có thể được lưu vào một bảng khác. Một cách lý tưởng, tất các các bảng liên quan đến hệ thống đặt vé máy bay này đều được lưu trong một CSDL, gọi là CSDL ‘Hàng không’ (Airline). 1.3.3 Mối quan hệ Hàng hoặc Cột Bảng là một tập hợp các bản ghi có liên quan, được sắp xếp theo các hàng và cột. Trong các bảng, dữ liệu được tổ chức dưới dạng hàng và cột tương tự như đối với bảng tính. Ví dụ, một bảng chứa dữ liệu về các nhân viên của một công ty thì mỗi dòng lưu thông tin của một nhân viên, và các cột biểu diễn các thông tin chi tiết về nhân viên đó như mã nhân viên, tên nhân viên, chức vụ, địa chỉ, số điện thoại nhà. 1.3.4 Hệ thống Cơ sở Dữ liệu và Hệ Quản trị Cơ sở Dữ liệu Một Hệ thống CSDL là một hệ thống sử dụng máy tính để quản lý các bản ghi mà mục đích tổng quát là nhằm ghi lại và bảo quản thông tin. Một Hệ quản trị CSDL (DBMS) là một tập hợp các bản ghi có liên quan với nhau và một bộ các chương trình để truy xuất và thao tác các bản ghi này. Một hệ quản trị CSDL cho phép người dùng nhập, lưu trữ và quản lí dữ liệu. 1.3.5 Sự Dư thừa Dữ liệu và Tính toàn vẹn Dữ liệu Ta có thể giảm bớt sự trùng lặp dữ liệu hay ‘dữ thừa dữ liệu’ bằng cách sử dụng một hệ quản trị CSDL. Ví dụ, một hệ quản trị CSDL có thể đảm bảo mỗi bản ghi trong bảng là duy nhất thông qua một trong các cột hay trường của bảng đó. Việc đảm bảo tính chính xác của dữ liệu trong CSDL được gọi là duy trì tính toàn vẹn dữ liệu. Nếu một hoặc nhiều bảng có quan hệ với nhau thông qua các dữ liệu mà chúng lưu giữ, thì mỗi khi có sự thay đổi dữ liệu trong một bảng, thì sự thay đổi đó cũng phải được phản ánh sang bảng kia. Nếu không làm như vậy, dữ liệu được lưu trữ sẽ không còn chính xác và CSDL sẽ mất đi tính toàn vẹn. Ví dụ, trong một hệ thống thư viện, khi một hội viên không còn quyền hội viên nữa, xét trường hợp chúng ta đã cập nhật bảng Hội viên (Member) nhưng chưa cập nhật bảng Chi tiết Sách (Book Details), trong đó ghi lại các quyển sách đã cho hội viên mượn và trả lại. Như vậy, tuy là hội viên đó không còn tham gia vào thư viện nữa, nhưng bảng Chi tiết Sách vẫn cho thấy những quyển sách mà anh ta mượn. Thậm chí có thể xảy ra việc vào cuối tháng, khi ta soạn báo cáo Thống kê tiền phạt (Fine or Penalty Amount Collection), tên của hội viên đó vẫn nằm trong các báo cáo. Mâu thuẫn dạng này có thể tránh được bằng cách phải đảm bảo tính toàn vẹn dữ liệu ngay từ đầu. Kiến thức nền tảng về Cơ sở dữ liệu 9
- 1.4 Các Khái niệm Cơ bản về CSDL quan hệ Một CSDL quan hệ là một CSDL được cấu trúc theo mô hình quan hệ. Sau đây chúng ta sẽ thảo luận các đặc tính của mô hình quan hệ. Trước tiên, trong mô hình quan hệ, dữ liệu được lưu trong các mối quan hệ (relation). Để hiểu được mối quan hệ, ta xét ví dụ sau đây. Dưới đây là hai danh sách khác nhau, một là danh sách các quốc gia và thủ đô của chúng, danh sách kia liệt kê các quốc gia và loại tiền tệ mà các quốc gia đó sử dụng. Quốc gia Thủ đô Greece Athens Italy Rome USA Washington China Beijing Japan Tokyo Australia Sydney France Paris Table 1.4: Các Thủ đô Quốc gia Tiền tệ Greece Drachma Italy Lira USA Dollar China Renminbi (Yuan) Japan Yen Australia Australian Dollar France Francs Table 1.5: Tiền tệ Bạn sẽ nhận thấy rằng có 2 danh sách khác nhau được đưa ra ở đây. Tuy nhiên, có một cột là chung cho cả hai bảng. Đây chính là cột chứa tên các quốc gia. Bây giờ nếu có ai muốn tìm loại tiền tệ được dùng ở thành phố Rome, đầu tiên họ phải tìm ra tên quốc gia, sau đó tìm tên quốc gia đó trong bảng còn lại để tìm ra loại tiền tệ tương ứng. Ta có thể thu được thông tin này bởi vì ta có thể thiết lập một mối quan hệ giữa hai danh sách thông qua một cột chung là cột ‘Quốc gia’. 1.4.1 Tính toàn vẹn của Thực thể và Khóa chính Trong một mô hình quan hệ, dữ liệu được lưu trong các quan hệ. Quan hệ là thuật ngữ chính quy đối với Bảng. Trong ví dụ trên đây, ta đã lưu trữ thông tin về các quốc gia trong một bảng. Trong một CSDL mỗi bảng có tên duy nhất xác định nội dung của nó. Mỗi bảng có thể xem như là sự giao nhau của các hàng và các cột. Một trong những thuộc tính quan trọng nhất của bảng là các hàng không được sắp thứ tự. Ta không thể xác định một hàng bằng thứ tự của nó ở trong bảng. 10 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- Mỗi bảng phải có một cột mà nhờ đó ta có thể phân biệt, xác định các hàng trong bảng. Việc không có hai hàng trong bảng chứa thông tin giống hệt nhau là rất quan trọng. Tránh được điều này là nhờ công dụng của các khóa chính. Một cột hoặc một sự kết hợp của một số cột mà qua đó xác định duy nhất một bản ghi trong một bảng thì được gọi là Khóa Chính (Primary Key). Việc các bảng phải có một khóa chính là rất cần thiết. Một ví dụ thường dùng để nhấn mạnh tầm quan trọng của khóa chính là ví dụ về học sinh trong một trường học. Nếu hai học sinh có tên giống hệt nhau, giáo viên sẽ rất bối rối khi phải tính toán bảng điểm cho các học viên. Vì thế, trong các trường hợp như thế này, mỗi học sinh sẽ được gán một mã số học sinh duy nhất sao cho giáo viên không còn bối rối khi có hai học sinh trùng tên nhau. Mã số Học sinh (Roll Number) trong trường hợp này là khóa chính và không được trùng lặp trong bất cứ hoàn cảnh nào. Primary Key Mã số Tên học sinh Học sinh 1 Sam 2 John 3 Jenny 4 Lisa 5 Penny 6 Peter 7 Joe Bảng 1.6: Khóa Chính CSDL lưu giữ các tài nguyên rất quan trọng, đó là dữ liệu được toàn công ty sử dụng. Các dữ liệu trong CSDL phải nhất quán trong mọi thời điểm. Có một số quy tắc toàn vẹn tổng quát và cụ thể để duy trì sự nhất quán của CSDL. Các quy tắc toàn vẹn tổng quát thường có mặt trong phần lớn các hệ quản trị CSDL, còn các quy tắc cụ thể chỉ áp dụng được cho một số CSDL. Khi dữ liệu của một CSDL bị thay đổi, sự toàn vẹn dữ liệu trong CSDL có thể bị mất đi. Các ràng buộc toàn vẹn dữ liệu sẽ giới hạn và kiểm tra tính hợp lệ của các giá trị dữ liệu được thêm vào hoặc sửa đổi trong CSDL. Toàn vẹn thực thể (Entity Integrity) là một dạng của ràng buộc toàn vẹn dữ liệu. Quy tắc Toàn vẹn Thực thể phát biểu rằng, không thành phần nào của khóa chính trong một bảng được phép nhận giá trị NULL. Một khi thuộc tính của một quan hệ được định nghĩa là khóa chính thì trách nhiệm của CSDL là từ chối giá trị NULL đối với thuộc tính đó. Mỗi hàng trong bảng phải là duy nhất. Do đó khóa chính không thể chứa các giá trị NULL, vì các hàng sẽ không còn là duy nhất nữa. Giá trị NULL là giá trị được điền vào cho thuộc tính khi ta không nhập dữ liệu cho thuộc tính đó. 1.4.2 Toàn vẹn Tham chiếu và Khóa ngoại Một Khóa ngoại là một cột hoặc sự kết hợp của một số cột mà giá trị của chúng là khóa chính hoặc khóa duy nhất trong một bảng khác. Hai bảng được liên kết với nhau dùng một khóa ngoại. Kiến thức nền tảng về Cơ sở dữ liệu 11
- Nói cách khác, kết nối hai bảng qua một trường chung được gọi là thiết lập quan hệ, và khóa ngoại là phương tiện để thiết lập các quan hệ. Một số điểm về khóa ngoại: Để một cột được là khóa ngoại của một bảng cho trước, nó phải là khóa chính trong một bảng khác. Ví dụ, trường Mã Sinh viên là khóa chính trong bảng Sinh viên. Do đó nó có thể được đặt làm khóa ngoại trong bảng Kết quả. Hai cột được được kết nối với nhau bằng các quan hệ khóa ngoại phải được định nghĩa giống hệt nhau. Để hiểu rõ khóa ngoại, chúng ta hãy xét hai bảng Sinh viên và Điểm đã dùng trong ví dụ trước đây. Trong ví dụ này, Mã Sinh viên trong bảng Điểm là một khóa ngoại vì nó được dẫn xuất từ bảng Sinh viên. P F Mã Tên sinh viên Sinh viênMã Điểm đạt 1 Sinh viên Sam được 2 John 3 Jenny 1 34 4 Lisa 2 87 5 Penny 3 45 6 Peter 4 90 7 Joe 5 36 6 65 7 89 Hình 1.3: Toàn vẹn Tham chiếu Trong hình 1.3, khóa ngoại được chỉ ra bằng ký hiệu F. Quy tắc Toàn vẹn Tham chiếu phát biểu rằng trong một CSDL không tồn tại bất kỳ một thuộc tính khóa ngoại nào có giá trị không khớp với các giá trị tương ứng trong quan hệ mà thuộc tính đó làm khóa chính. Hệ quản trị CSDL chịu trách nhiệm đảm bảo các giá trị trong thuộc tính khóa ngoại là hợp lệ và có giá trị tương ứng trong quan hệ mà thuộc tính đó làm khóa chính. Một bản ghi có thể được xóa khỏi bảng chính (Primary Table) chỉ nếu không còn các khóa ngoại tương ứng trong bảng kia. Không được phép thêm các giá trị mới vào khóa ngoại. 1.4.3 Quan hệ và bậc 12 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- Theo mô hình quan hệ, mỗi quan hệ hoặc bảng được tạo từ nhiều bộ (tuple). Chúng còn được gọi là các bản ghi hoặc các hàng - một thuật ngữ đã quen thuộc với chúng ta. Dưới đây là một vài bộ là thành phần của bảng Tiền tệ (Currency). CHN China Renminbi (Yuan) FRN France Francs Đặc tính của bộ được phản ánh thông qua các thuộc tính hay trường của bộ đó. Điều này đơn giản nghĩa là những gì mà bảng chứa đựng sẽ được định nghĩa bởi các thuộc tính của bảng đó. Số lượng các thuộc tính được gọi là bậc (degree) của bảng. 1.4.4 Điều kiện đối với trường và cách đặt điều kiện cho trường Các thuộc tính thường được gọi là trường. Khi thiết kế các bảng chúng ta phải quan tâm hơn đến các trường sẽ được thêm vào bảng. Chúng ta phải dự kiến và quyết định các vấn đề khác nhau liên quan đến các trường như kiểu dữ liệu mà trường đó sẽ chứa, kích thước hay dung lượng tối đa của dữ liệu, các giá trị mặc định nếu có, các giới hạn hay ràng buộc phải đặt cho các trường, v.v... Ví dụ, xét trường ĐơnGiá (UnitPrice) được định nghĩa trong bảng SảnPhẩm (Products). Trường này cần phải chứa dữ liệu dạng số mà phải là giá trị khác 0. Chúng ta phải hoạch định cấu trúc của tất cả các trường theo cách tương tự. Phần lớn các hệ CSDL cung cấp các phương pháp để kiểm soát các điều kiện trên các trường. Các phương pháp này còn được gọi là các ràng buộc (constraints). Bằng các điều kiện ràng buộc, ta có thể duy trì được tính toàn vẹn dữ liệu. 1.5 Giới thiệu SQL Phần lớn các hệ quản trị CSDL cung cấp tính năng tích hợp sẵn có, hỗ trợ việc truy vấn CSDL. Ngôn ngữ Truy vấn có cấu trúc là một trong những ngôn ngữ truy vấn được hỗ trợ bởi hầu hết các hệ quản trị CSDL thương mại. 1.5.1 Ngôn ngữ Truy vấn có cấu trúc Ngôn ngữ chuẩn của của một Hệ quản trị CSDL quan hệ là SQL. SQL (Structured Query Language – Ngôn ngữ truy vấn có cấu trúc) là một ngôn ngữ lập trình và tương tác chuẩn để truy xuất thông tin từ CSDL, cập nhật CSDL, v.v... Theo thời gian, SQL đã dần dần phát triển và ngày nay đã được chấp nhận như một chuẩn trên thế giới. Viện Tiêu chuẩn Quốc gia Mỹ (ANSI - American National Standards Institute) đã thiết lập các tiêu chuẩn và hình thành nền tảng cho các lệnh SQL. Mục đích chính của việc sử dụng SQL là để giao tiếp với CSDL. Tất cả dữ liệu chúng ta lưu trữ trong CSDL của chúng ta không có giá trị gì trừ khi chúng ta có thể truy vấn và xem chúng. Một câu truy vấn là một câu hỏi được viết bằng ngôn ngữ truy vấn có cấu trúc (SQL). Như tên của ngôn ngữ này đã chỉ rõ, cách tốt nhất để viết các câu truy vấn là sử dụng ngôn ngữ SQL. Tuy nhiên, nó cũng được dùng để cho các mục đích đa dạng khác như thay đổi dữ liệu hay xóa đi những dữ liệu không mong muốn. 1.5.2 Phân loại SQL Các câu lệnh SQL có thể được chia thành nhiều loại khác nhau, được liệt kê như sau. Kiến thức nền tảng về Cơ sở dữ liệu 13
- DQL viết tắt của Ngôn ngữ Truy vấn Dữ liệu (Data Query Language), được dùng để lấy dữ liệu từ CSDL và đặt thứ tự lên đó. DML viết tắt của Ngôn ngữ Thao tác Cơ sở Dữ liệu (Database Manipulation Language). Ngôn ngữ thao tác CSDL có các câu lệnh để thêm, xóa và sửa dữ liệu trong CSDL. Bộ tiền biên dịch DML thông dịch các câu lệnh này và tương tác với bộ xử lý truy vấn để tạo ra mã thích hợp. DCL hay Ngôn ngữ Điều khiển Dữ liệu (Data Control Language) được dùng để quản lí quyền đối với CSDL và các đối tượng CSDL. DDL hay Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language), các câu lệnh DDL được chuyển thành một tập hợp các tập tin chứa thông tin về dữ liệu. Đây là CSDL hệ thống chứa các thông tin về các tập tin được tạo, chúng chứa những trường nào, những người dùng nào có quyền truy cập tập tin đó và các thông tin nào người dùng đó được truy cập. Thông tin này được lưu trong từ điển dữ liệu, là nơi giữ thông tin về cấu trúc CSDL. CCL hay Ngôn ngữ Ra lệnh Thông thường (Common Command Language) được dùng để tìm kiếm một cách hiệu quả trong CSDL. Ta có thể dùng nó để xây dựng các thư viện trực tuyến, nơi mà một khối lượng dữ liệu lớn phải được sàng lọc trong một khoảng thời gian ngắn. Tổng kết Quy trình bảo trì dữ liệu một cách thủ công là tẻ nhạt, tốn thời gian và có khả năng gây ra sai sót. Các CSDL được máy tính hóa cho ta những dữ liệu bền vững, đảm bảo tính toàn vẹn dữ liệu, thiết lập các tiêu chuẩn, làm giảm sự thiếu nhất quán và dư thừa dữ liệu. Một Hệ Quản trị Cơ sở dữ liệu có thể được định nghĩa như một tập hợp các bản ghi có quan hệ với nhau và một bộ các chương trình để truy xuất và thao tác các bản ghi đó. Chúng ta có thể phân biệt các CSDL dựa trên cách thức hoạt động và mô hình dữ liệu. Một mô hình dữ liệu mô tả cách thức lưu trữ dữ liệu trong một vật chứa (container) và cách thức truy xuất dữ liệu từ vật chứa đó. Có ba mô hình dữ liệu: o Mô hình CSDL Phân cấp hay Đa cấp o Mô hình CSDL Mạng o Mô hình CSDL Quan hệ Trong mô hình quan hệ, dữ liệu được lưu trong các bảng. Bảng là các đối tượng của CSDL dùng để chứa tất cả dữ liệu có trong CSDL. Một CSDL được cấu thành từ nhiều bảng, mỗi bảng chứa một tập hợp các dữ liệu có liên quan với nhau. Một Hệ thống CSDL là một hệ thống sử dụng máy tính để quản lý các bản ghi mà mục đích tổng quát là nhằm ghi lại và bảo quản thông tin. 14 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
- Ta có thể giảm bớt sự trùng lặp dữ liệu hay ‘dữ thừa dữ liệu’ bằng cách sử dụng một hệ quản trị CSDL. Việc đảm bảo tính chính xác của dữ liệu trong CSDL được gọi là duy trì tính toàn vẹn dữ liệu. Một CSDL quan hệ là một CSDL được cấu trúc theo mô hình quan hệ. Một cột hoặc một sự kết hợp của một số cột mà qua đó xác định duy nhất một bản ghi trong một bảng thì được gọi là Khóa Chính (Primary Key). Quy tắc Toàn vẹn Thực thể phát biểu rằng, không thành phần nào của khóa chính trong một bảng được phép nhận giá trị NULL và không thể tồn tại hai thành phần có cùng giá trị. Quy tắc Toàn vẹn Tham chiếu phát biểu rằng trong một CSDL không tồn tại bất kỳ một thuộc tính khóa ngoại nào có giá trị không khớp với các giá trị tương ứng trong quan hệ mà thuộc tính đó làm khóa chính. Số lượng thuộc tính của một bảng được gọi là bậc của bảng đó. Ngôn ngữ truy vấn có cấu trúc (SQL-Structured Query Language) là một trong những ngôn ngữ truy vấn được hỗ trợ bởi hầu hết các hệ quản trị CSDL thương mại. Các lệnh SQL có thể được phân làm nhiều loại khác nhau: • DQL • DML • DCL • DDL • CCL Kiến thức nền tảng về Cơ sở dữ liệu 15
- Kiểm tra mức tiến bộ của bạn 1._____________________ đề cập đến việc bảo đảm sự chính xác của dữ liệu trong CSDL. 2. Một __________________ mô tả cách thức lưu trữ dữ liệu trong một vật chứa (container) và cách thức truy xuất dữ liệu từ vật chứa đó. 3. Một _________________ có thể được định nghĩa như một tập hợp các bản ghi có quan hệ với nhau và một bộ các chương trình dùng để truy cập và thao tác các bản ghi đó. 4. Một CSDL quan hệ là một CSDL được cấu trúc theo mô hình __________. 5. Một cột hoặc một sự kết hợp của một số cột mà qua đó xác định duy nhất một bản ghi trong một bảng thì được gọi là _________________. 6. Quy tắc ______________ phát biểu rằng không thành phần nào của khóa chính trong một bảng được phép nhận giá trị NULL. 7. SQL là một ngôn ngữ ____________ tiêu chuẩn. 8. Hai bảng được liên kết với nhau bằng cách dùng khóa _________. 9. Khi dữ liệu đuợc thu thập và phân tích, nó mang lại _________________ 10. ________ được sử dụng để quản lý quyền truy xuất vào cơ sở dữ liệu và những đối tượng trên cơ sở dữ liệu. 16 Khái niệm Hệ quản trị CSDLQH và SQL Server 2000
CÓ THỂ BẠN MUỐN DOWNLOAD
-
BÀI 1 TỔNG QUAN VỀ VI XỬ LÝ
20 p | 310 | 69
-
Bài giảng Kiến trúc máy tính: Chương 1 - Lịch sử phát triển của máy tính
20 p | 378 | 59
-
Môn học/Môđun: Tin học đại cương (Bài tập lớn số 02)
2 p | 194 | 19
-
Bài 1: Microsoft .NET
10 p | 116 | 16
-
Hướng dẫn xóa bỏ ảnh nền bằng PowerPoint 2010
5 p | 211 | 16
-
Tập các công cụ khôi phục và chuẩn đoán lỗi – Phần 1 + 2
18 p | 92 | 13
-
Bài giảng 1: Giới thiệu môn học Khoa học máy tính
9 p | 171 | 12
-
Hướng dẫn thay card WLAN cho Alienware (laptop khác cũng làm được)
13 p | 75 | 12
-
Giáo trình - Tìm hiểu Microsoft Office 2007 - Tập 1 - Lê Văn Hiếu - 2
14 p | 68 | 12
-
Bài giảng Quản trị mạng microsoft windows: Chương 1 - Bùi Minh Quân
5 p | 89 | 9
-
CÁCH ĐỊNH DẠNG FONT CHỮ
7 p | 142 | 8
-
Bài giảng Kiến trúc máy tính: Chương 0 - Nguyễn Thanh Sơn
12 p | 88 | 8
-
Tạo một kịch bản đơn giản với Automator – P.1
5 p | 100 | 6
-
Vì sao nhiều người muốn và không muốn iPhone 5 có màn hình lớn hơn?
8 p | 107 | 6
-
9 cách bảo mật thiết bị di động khi du lịch
4 p | 80 | 4
-
Bài giảng Tin học cơ bản 1: Chương 2.3 - ThS. Mai Ngọc Tuấn
17 p | 9 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn