1 1ChươngChương11 Đ Đ ạ ạ i i cươngcương v v ề ề c c á á c c h h ệ ệ cơcơ s s ở ở d d ữ ữ li li ệ ệ u u Nguy Nguy ễ ễ n n H H ồ ồ ng ng Phương Phương phuongnh@it phuongnh@it - - hut.edu.vn hut.edu.vn B B ộ ộ môn môn H H ệ ệ th th ố ố ng ng thông thông tin tin Khoa Khoa Công Công ngh ngh ệ ệ thông thông tin tin Đ Đ ạ ạ i i h h ọ ọ c c B B á á ch ch Khoa Khoa H H à à N N ộ ộ i i 2 N N ộ ộ i i dung dung chươngchương n n à à y y • 1.1 Cáchệ thống xử lý tệp truyềnthống và những hạn chế củanó. • 1.2 Cáchệ CSDL: khái niệm, khả năng, kiếntrúc, người dùng củamộthệ quảntrị CSDL. • 1.3 Sự phân loạicáchệ CSDL. ) 3 1.1 1.1 C C á á c c h h ệ ệ th th ố ố ng ng x x ử ử lý lý t t ệ ệ p p truy truy ề ề n n th th ố ố ng ng •Bướckhởi đầucủaquátrình tin họchóadoanhnghiệp. •Tập trung vào nhu cầuxử lý dữliệu củacácphòngriênglẻ trong tổ chức mà không xem xét tổng thể tổ chức này. •Viếtmộtchương trình mới đốivớimỗi ứng dụng đơnlẻ, không có kế hoạch, không có mô hình hướng đếnsự tăng trưởng. 4 •Mỗichương trình ứng dụng định nghĩavàquảnlýcáctệp dữ liệucủa riêng nó. •Trướckhixuấthiệncácphần mềmhệ quảntrị CSDL, trong quá khứ cáchệ thống trên cơsở tệp đã đượctạolập để xử lý mộtsố lượng lớndữ liệu. C C á á c c h h ệ ệ th th ố ố ng ng x x ử ử lý lý t t ệ ệ p p truy truy ề ề n n th th ố ố ng ng 5 H H ạ ạ n n ch ch ế ế c c ủ ủ a a c c á á c c h h ệ ệ th th ố ố ng ng x x ử ử lý lý t t ệ ệ p p truy truy ề ề n n th th ố ố ng ng •Dư thừa và không nhấtquándữ liệu •Khókhăn trong truy nhậpdữ liệu •Côlậpvàhạnchế chia sẻ dữliệu •Cácvấn đề về an toàn và toàn vẹn •Cácvấn đề vềđộtin cậy •Sự phụ thuộcdữ liệucủacácchương trình ứng dụng 6 N N ộ ộ i i dung dung chươngchương n n à à y y • 1.1 Cáchệ thống xử lý tệp truyềnthống và những hạn chế củanó. •1.2 Cáchệ CSDL: khái niệm, khả năng, kiếntrúc, người dùng củamộthệ quảntrị CSDL. •1.3 Sự phân loạicáchệ CSDL. ) 2 7 1.2 1.2 C C á á c c h h ệ ệ cơcơ s s ở ở d d ữ ữ li li ệ ệ u u • CSDL (database) là gì ? •Tạisaophảisử dụng CSDL ? •Tạisaophảitìmhiểuvề cáchệ CSDL (database systems) ? 8 • Thông tin cầnquantâm –Khóa học, lớphọc, sinh viên, giáo viên, môn học,… – Thông tin về sinh viên: thông tin cá nhân, thông tin họctập,… – Thông tin về môn học: khốilượng, giáo viên, lịch học,… •Cần lưutrữ những thông tin đadạng Ví dụvề quảnlýđào tạo Cơ sởdữliệu 9 V V í í d d ụ ụ : : khai khai th th á á c c thông thông tin tin • Sinh viên –Các môn họccủaKhoaCôngnghệ thông tin ? – Điểmthimôn“Hệ cơsởdữ liệu” ? • Giáo viên –Danhsáchsinhviênlớp Tin2-K49 ? –ThờikhóabiểucủalớpTin2-K49 ? •Giáovụ –DanhsáchsinhviênK47 tốt nghiệploạigiỏi ? . Phầnmềm ứng dụng 10 “ “ H H ì ì nh nh dung dung ” ” v v ề ề xây xây d d ự ự ng ng m m ộ ộ t t CSDL CSDL •Yêucầu –Lưutrữ thông tin cầnthiết mộtcáchchính xác –Truyxuất thông tin hiệuquả •Thựchiện –Xácđịnh yêu cầunghiệpvụ –Xácđịnh thông tin cầnlưutrữ –Xácđịnh cách thứclưutrữ •Cầncôngcụ trợ giúp xây dựng mộtCSDL Phầnmềmquảntrị CSDL 11 C C á á c c kh kh á á i i ni ni ệ ệ m m cơcơ b b ả ả n n CSDL Hệ QTCSDL ứng dụng hệ CSDL 12 CơCơ s s ở ở d d ữ ữ li li ệ ệ u u (database) (database) •Làmộttậphợpcácdữ liệu –Biểudiễnmộtvàikhíacạnh nào đócủathế giớithực –Cóliênhệ logic thống nhất – Đượcthiếtkế và bao gồmnhững dữ liệuphục vụ mộtmục đích nào đó. •Làmộtbộ sưutậpcácdữ liệu tác nghiệp đượclưutrữ lạivàđượccáchệứng dụng củamộtxínghiệpcụ thể nào đósử dụng. 3 13 H H ệ ệ qu qu ả ả n n tr tr ị ị cơcơ s s ở ở d d ữ ữ li li ệ ệ u u (Database Management System (Database Management System - - DBMS) DBMS) •Là mộthệ thống phầnmềmcho phép – Định nghĩa, tạolập: xác định kiểu, cấu trúc, ràng buộcdữ liệu, lưutrữ dữliệu trên các thiếtbị nhớ. –Thao tác: truy vấn, cậpnhật, kếtxuất,… các CSDL cho các ứng dụng khác nhau •Vídụ: MS SQL Server, DB2, MS Access, Oracle, FoxPro,… 14 H H ệ ệ cơcơ s s ở ở d d ữ ữ li li ệ ệ u u •Làmộthệ thống gồm4 thànhphần –Hệ quảntrị CSDL –Phầncứng –CSDL và phầnmềm ứng dụng –Những ngườisử dụng •Vídụ: Hệ quảnlýđào tạo, hệ quảnlý nhân sự, hệ quảnlýkinhdoanh,… 15 H H ệ ệ CSDL CSDL CSDL Hệ QuảnTrị CSDL CSDL Ứng dụng Hệ CSDL 16 C C á á c c t t í í nh nh năng năng c c ủ ủ a a h h ệ ệ qu qu ả ả n n tr tr ị ị CSDL CSDL •Quảnlýdữ liệutồntạilâudài – Định nghĩadữ liệu –Quảnlýlưutrữ •Truyxuấtdữ liệumộtcáchhiệuquả –Biểudiễn các thao tác dữliệu –Xử lý câu hỏi –Quảntrị giao dịch 17 •Hỗ trợ ít nhấtmộtmôhìnhdữ liệu • Đảmbảo tính độclậpdữ liệu •Hỗ trợ các ngôn ngữ cấpcaonhất định cho phép ngườisử dụng định nghĩacấutrúccủadữ liệu, truy nhập và thao tác dữliệu • Điềukhiểntruynhập •Phụchồidữ liệu C C á á c c t t í í nh nh năng năng c c ủ ủ a a h h ệ ệ qu qu ả ả n n tr tr ị ị CSDL CSDL 18 C C á á c c ngôn ngôn ng ng ữ ữ • Ngôn ngữđịnh nghĩadữ liệu(Data Definition Language - DDL) –Cấutrúcdữ liệu –Mốiliênhệ giữacácdữ liệuvàquytắc, ràng buộcápđặtlêndữ liệu • Ngôn ngữ thao tác dữ liệu(Data Manipulation Language - DML) –Tìmkiếm, thêm, xóa, sửadữ liệutrongCSDL • Ngôn ngữđiềukhiểndữ liệu(Data Control Language - DCL) –Thayđổicấutrúccủacácbảng dữliệu –Khaibáobảomật thông tin –Quyềnhạncủangười dùng trong khai thác CSDL 4 19 S S ự ự tr tr ừ ừ u u tư tư ợ ợ ng ng h h ó ó a a d d ữ ữ li li ệ ệ u u Sơđồkhái niệm (logic) Sơ đồ trong (vậtlý) Khung nhìn 1 Khung nhìn n . Mức quan niệm (logic) Mứclưu trữ (trong) Mức khung nhìn (ngoài) định nghĩacấutrúccác tệpvàchỉ dẫn đượcsử dụng trong cơ sởdữliệu (cách lưutrữ dữliệu như thế nào) định nghĩacấutrúclogic củadữ liệu, dữ liệunào đượclưutrữ và mối quan hệ giữacácdữ liệu mô tả cách mà ngườisử dụng có thể nhìn thấydữ liệu 20 Tương Tương ứ ứ ng ng 3 3 m m ứ ứ c c v v ớ ớ i i ngôn ngôn ng ng ữ ữ Pascal Pascal •Mứcvậtlý: mộtbản ghi khach_hang đượcmôtả như mộtkhốinhớ, chương trình dịch che dấucác chi tiếtmứcnàyđốivớingườilập trình. •Mứclogic: mỗibảnghiđượcmôtả bởimột định nghĩakiểu, ngườilậptrìnhsử dụng ngôn ngữ lập trình làm việctạimứctrừutượng này. •Mức khung nhìn: ngườisử dụng máy tính thấy mộttậpcácch ương trình ứng dụng, che dấu những chi tiếtvề các kiểudữ liệu Type khach_hang = record ten:string; ngay_sinh:string; dia_chi:string; end; 21 Ki Ki ế ế n n tr tr ú ú c c c c ủ ủ a a m m ộ ộ t t h h ệ ệ qu qu ả ả n n tr tr ị ị CSDL CSDL Dữliệu (data) Siêu dữliệu (metadata) Bộ xử lý câu hỏi Bộ quảntrị giao dịch Bộ quảnlý lưu trữ Các thay đổisơđồ Các truy vấnCácthayđổidữ liệu 22 Qu Qu ả ả n n lý lý lưu lưu tr tr ữ ữ •Yêucầu –lưutrữ và truy xuất dữ liệutrêncácthiết bị nhớ •Thựchiện –Tổ chứctối ưudữ liệu trên thiếtbị nhớ –Tương tác hiệuquả vớibộ quảnlýtệp Data & index (chỉ mục) Quảnlýbuffer Quảnlýtệp Quản lý giao dịch Bộ quảnlýlưu trữ Metadata & Data dictionary (từ điểndữ liệu) 23 X X ử ử lý lý câu câu h h ỏ ỏ i i •Yêucầu –Tìmkiếmdữ liệutrả lờichomộtyêucầu truy vấn. •Thựchiện –Biến đổitruyvấn ở mức cao thành các yêu cầucóthể hiểu đượcbởihệ CSDL. –Lựachọnmộtkế hoạch tốtnhất để trả lờitruyvấnnày. Bộ xử lý câu hỏi Data & index Metadata & Data dictionary Bộ quảnlý lưu trữ Bộ biên dịch Bộđánh giá Bộ tối ưu 24 Qu Qu ả ả n n tr tr ị ị giao giao d d ị ị ch ch •Yêucầu – Định nghĩagiaodịch: mộttập các thao tác đượcxử lý như một đơnvị không chia căt được. – Đảmbảotínhđúng đắnvàtínhnhất quán củadữ liệu. •Thựchiện –Quảnlýđiềukhiểntương tranh. –Phát hiệnlỗivàphụchồiCSDL 5 25 Ngư Ngư ờ ờ i i d d ù ù ng ng • Ngườithiếtkế và cài đặthệ QTCSDL: chịutráchnhiệmthiếtkế và cài đặtcác module củahệ QTCSDL và các giao diện dướihìnhthứccácgóiphầnmềm • Người phát triểncôngcụ: chịutrách nhiệmthiếtkế và cài đặtcácgóiphầnmềm hỗ trợ cho việcthiétkê, sử dụng cũng như tăng cường hiệunăng củacáchệ CSDL. 26 Ngư Ngư ờ ờ i i d d ù ù ng ng • Ngườiphân tíchhệ thống và phát triển ứng dụng: chịutráchnhiệmxác định yêu cầucủa ngườidùngcuối, xác định các giao dịch cầnthiết để đáp ứng các yêu cầu người dùng. Ngườilập trình ứng dụng cài đặtnhững yêu cầunàytrong chương trình, kiểmthử, gỡ rối, lậptàiliệucho chương trình • Ngườithiếtkế CSDL: chịu trách nhiệmxác định dữ liệulư utrữ trong CSDL và cấutrúcbiểudiễn và lưutrữ những dữ liệunày 27 • Ngườisử dụng cuối: là người khai thác cáchệ CSDL • Ngườiquảntrị CSDL: chịu trách nhiệmcho phép truy nhậpCSDL, điềuphốivàkiểmtrasử dụng CSDL, quản lý tài nguyên phầncứng và phân mềmkhicầnthiết • Ngườibảotrìhệ thống: là những ngườiquản trị hệ thống chịutráchnhiệmviệchoạt động và bảotrìmôi trường (phầncứng và phầnm ềm) cho hệ CSDL Ngư Ngư ờ ờ i i d d ù ù ng ng 28 N N ộ ộ i i dung dung chươngchương n n à à y y • 1.1 Cáchệ thống xử lý tệp truyềnthống và những hạn chế củanó. • 1.2 Cáchệ CSDL: khái niệm, khả năng, kiếntrúc, người dùng củamộthệ quảntrị CSDL. • 1.3 Sự phân loạicáchệ CSDL. ) 29 1.3 1.3 Phân Phân lo lo ạ ạ i i c c á á c c h h ệ ệ CSDL CSDL •Môhìnhdữ liệu –Mạng vs. phân cấp vs. quan hệ vs. hướng đối tượng vs. . •Số ngườisử dụng –Một ngườidùngvs. nhiều người dùng •TínhphântáncủaCSDL –Tậptrungvs. Phân tán •Tínhthống nhấtcủadữ liệu – Đồng nhất vs. Không đồng nhất • . 30 C C á á c h c h ệ ệ CSDL t CSDL t ậ ậ p trung p trung •Hệ CSDL cá nhân: một người sử dụng đơn lẻ vừa thiết kế, tạo lập CSDL, cập nhật, bảo trì dữ liệu, lập và hiển thị báo cáo. →đảm nhiệm vai trò: người quản trị CSDL, người viết chương trình ứng dụng, end-user. •Hệ CSDL trung tâm: dữliệu được lưu trữ trên một máy tính trung tâm. •Hệ CSDL khách-chủ: – Các máy tính trung tâm lớn → đắt so với các máy nhỏ và máy trạm. –Các ứng dụng máy khách truy nhập dữliệu được quản lý bởi máy chủ. 6 31 C C á á c h c h ệ ệ CSDL t CSDL t ậ ậ p trung (ti p trung (ti ế ế p) p) Hệ CSDL cá nhân Hệ CSDL khách- chủ Hệ CSDL trung tâm 32 C C á á c h c h ệ ệ CSDL phân t CSDL phân t á á n n • CSDL phân tán? Là một tập các CSDL có quan hệ logic với nhau nhưng được trải ra trên nhiều trạm làm việc của một mạng máy tính. • Có 2 tính chất: quan hệ logic và phân tán •Hệ QTCSDL phân tán: Là một hệ thống phần mềm cho phép tạo lập CSDLPT và điều khiển các truy nhập đối với CSDLPT này. •Chia ra 2 loại: CSDLPT thuần nhất và không thuần nhất 33 C C á á c h c h ệ ệ CSDLPT (ti CSDLPT (ti ế ế p) p) 34 K K ế ế t t lu lu ậ ậ n n •CSDL cho phép lưutrữ và khai thác dữ liệumộtcáchthống nhấtvàhiệuquả (đặc biệttrongtrường hợpkhốilượng dữliệu lớn). •Sự trừutượng vềdữ liệuvàtínhđộclập dữliệu cho phép phát triển ứng dụng “dễ dàng hơn”. •Hệ quảntrị CSDL cung cấpcáccôngcụ hữuhiệutrợ giúp việctạolậpCSDL và phát triển ứng dụng 35 S S ử ử d d ụ ụ ng ng ki ki ế ế n n th th ứ ứ c c môn môn h h ọ ọ c c n n à à y y trong trong tương tương lai lai ‘‘More than 80 % of real world computer applications are associated with databases’’ * * Korth & Silberschatz. Database System Concepts. nghiên cứuvà phát triển Nghiên cứu Phát triển ứng dụng 36 C C á á c c đi đi ể ể m m c c ầ ầ n n lưu lưu ý ý trong trong chươngchương n n à à y y •Cáchtiếpcậntệp vs. cách tiếpcận CSDL •CSDL vs. hệ QTCSDL vs. hệ CSDL •Kiếntrúc3 mứccủahệ CSDL •Cácchứcnăng chính củamộthệ QTCSDL •Ngườisử dụng trong mộthệ CSDL •Phânloạicáchệ CSDL 7 37 38 Danh ngôn Danh ngôn Điều chúng ta biết chỉ là một giọt nước, điều không biết mênh mông như đại dương Einstein . nhấtquándữ liệu •Khókhăn trong truy nhậpdữ liệu •Côlậpvàhạnchế chia sẻ dữ liệu •Cácvấn đề về an toàn và toàn vẹn •Cácvấn đề về ộtin cậy •Sự phụ thuộcdữ liệucủacácchương. ngữđịnh nghĩadữ liệu( Data Definition Language - DDL) –Cấutrúcdữ liệu –Mốiliênhệ giữacácdữ liệuvàquytắc, ràng buộcápđặtlêndữ liệu • Ngôn ngữ thao tác dữ liệu( Data