1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Các vấn đề cơ sở của khoa học máy tính: Chương 6 - Tô Oai Hùng

74 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 355,16 KB

Nội dung

Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 6: Cơ sở dữ liệu cung cấp các kiến thức: Giới thiệu về cơ sở dữ liệu. các loại cơ sở dữ liệu, các ưu điểm khi sử dụng cơ sở dữ liệu, mô hình hóa miền dữ liệu, xây dựng CSDL quan hệ từ mô hình dữ liệu, chuẩn hóa dữ liệu, ngôn ngữ SQL, ngôn ngữ định nghĩa dữ liệu (DDL), ngôn ngữ thao tác dữ liệu (DML). Mời các bạn cùng tham khảo nội dung chi tiết.

Chương 6: CƠ SỞ DỮ LIỆU Nội Dung Giới thiệu Các loại sở liệu Các ưu điểm sử dụng CSDL Mơ hình hóa miền liệu Xây dựng CSDL quan hệ từ mơ hình liệu Chuẩn hóa liệu Ngôn ngữ SQL Ngôn ngữ định nghĩa liệu (DDL) Ngôn ngữ thao tác liệu (DML) Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • • • Giới Thiệu Ngày nay, CSDL có mặt khắp nơi Hầu hết ứng dụng, gặp CSDL CSDL tạo hiệu quả, an toàn linh động việc lưu trữ liệu Ngay sau máy tính hệ thứ hai đời (sau thập niên 1950), có mặt ngơn ngữ lập trình cấp cao địi hỏi dung lượng lưu trữ lớn Dữ liệu chứa tập tin (tập mẫu tin) băng từ Cách lưu trữ sớm bộc lộ trở ngại định Đầu tiên tập tin lớn, cần thời gian tìm kiếm lâu Chúng ta xem lại giải thuật thảo luận trước đây, thời gian Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Giới Thiệu • giải thuật tìm kiếm O(n) Vì thế, tập tin lớn, cần nhiều thời gian để tìm phần tử Chẳng hạn, cần tìm khách hàng hàng triệu khách hàng điều Một vấn đề khác việc tổ chức liệu không hợp lý, chẳng hạn thông tin khách hàng lưu lại nhiều lần dẫn đến việc sử dụng nhớ lưu trữ không hiệu Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • Các Loại Cơ Sở Dữ Liệu Bắt đầu từ sau thập niên 1960, hệ CSDL (database system) phát triển Hai loại CSDL loại phân cấp (hierarchy) mạng (network) IBM đưa DL/1 mơ hình CSDL phân cấp hàng loạt phần cứng phần mềm khác với mơ hình CSDL mạng Các cấu trúc CSDL phân cấp mạng tổ chức thành nhiều tập tin quan hệ với để truy cập thông tin nhanh hơn, bảo mật tốt dễ dàng cập nhật Tuy nhiên, cấu trúc phức tạp không linh động Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Các Loại Cơ Sở Dữ Liệu Vào năm 1970, E F Codd IBM đưa mơ hình CSDL quan hệ (relational database) Mơ hình quan hệ dựa nhiều vào lý thuyết tốn Theo mơ hình này, liệu chứa bảng, gọi “quan hệ” Mỗi quan hệ/bảng lưu giữ thông tin kiểu thực thể (entity type) thực thể quan hệ thơng tin lưu bảng Codd đưa ngôn ngữ để truy vấn liệu dựa vào lý thuyết tập hợp Vào thập niên 1980, ngơn ngữ truy vấn có cấu trúc (Structured Query Language - SQL) giới biết đến Sau đó, IBM bắt đầu bán CSDL Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Các Loại Cơ Sở Dữ Liệu • quan hệ có tên DB2 Ngày nay, mơ hình liệu quan hệ sử dụng rộng rãi mơ hình mà thảo luận Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • Các Ưu Điểm Khi Sử Dụng CSDL Động việc sử dụng CSDL tốc độ truy xuất Một CSDL thiết kế cách, truy xuất phần thơng tin riêng biệt thực tức thời, số mẫu tin hay kích thước CSDL Tốc độ truy xuất biểu diễn O(k), k số có giá trị bé Việc sử dụng CSDL làm cho chương trình truy xuất liệu mà khơng cần biết Nếu chương trình đọc tập tin thơng thường, phải biết kiểu liệu, định dạng thứ tự trường (field) tập tin Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • • Các Ưu Điểm Khi Sử Dụng CSDL Tuy nhiên, chương trình đọc từ tập tin CSDL, thường cần xác định rõ thơng tin mà muốn CSDL cho phép tận dụng hiệu không gian lưu trữ, giảm dư thừa liệu đến mức tối tiểu Các hệ quản trị CSDL (Database management system - DBMS) tăng tính bảo mật CSDL thơng qua số cách Cho ví dụ, tiện ích lưu khơi phục ln có sẵn DBMS liệu lưu sử dụng Các hệ CSDL hỗ trợ cho khái niệm Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Các Ưu Điểm Khi Sử Dụng CSDL • • giao tác (transaction) Một giao tác nhóm thay đổi có quan hệ tác động đến CSDL Nghĩa là, tất thay đổi phải xảy không xảy Ví dụ, chuyển tiền từ tài khoản tiền gởi tiết kiệm (savings account) gởi tiền vào tài khoản tiền gởi toán (checking account) Chúng ta muốn hai thao tác rút gởi thực thành công, rút tiền thành công gởi tiền bị lỗi sao? Do vậy, phải khôi phục lại tiền rút từ tài khoản tiền gởi tiết kiệm 10 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Ngôn Ngữ Thao Tác Dữ Liệu Một cách khác cho kết viết sau: SELECT Sname, RA FROM Student JOIN Dorm ON Student.Dorm = Dorm.DormName; Sau tạo bảng CSDL, bước nhập liệu Lệnh SQL để thêm hàng vào bảng INSERT Cú pháp sau: INSERT INTO ( , , …, ) VALUES(, , …, ); Theo cú pháp trên, sau từ khoá INSERT INTO 60 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Ngơn Ngữ Thao Tác Dữ Liệu • • tên bảng Kế đến dấu ngoặc mở, danh sách hay nhiều tên cột dấu ngoặc đóng Tiếp theo từ khoá VALUES, dấu ngoặc mở, danh giá trị tương ứng với tên cột, dấu ngoặc đóng dấu chấm phẩy Ví dụ: INSERT INTO Student(Sname, Dorm, Room, Phone) VALUES ('Mary Poppins', 'Higgins', 142, '585 223 2112'); Trong ví dụ trên, có cột khơng định giá trị chúng null 61 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • Ngơn Ngữ Thao Tác Dữ Liệu Thứ tự tên cột lệnh INSERT không cần phải giống với thứ tự tên cột bảng, thứ tự giá trị mệnh đề VALUES phải tương ứng với thứ tự cột • Nếu muốn tất cột bảng cung cấp giá trị, danh sách tên cột lệnh INSERT không cần thiết Trong trường hợp này, thứ tự giá trị phải giống với thứ tự cột bảng Ví dụ: INSERT INTO Student VALUES ('Mark Hopkins', 'Williams', 399, '585 223 2533', 'Math', 62 'William Deal'); Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • Ngơn Ngữ Thao Tác Dữ Liệu Để thay đổi liệu CSDL, sử dụng lệnh UPDATE Cú pháp sau: UPDATE SET = , = , …, = WHERE ; Ví dụ: UPDATE Student SET Major = 'English', MajorAdvisorName = 'Ann Carroway' WHERE Sname = 'Mary Poppins'; 63 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • Ngơn Ngữ Thao Tác Dữ Liệu Mệnh đề WHERE lệnh UPDATE giống lệnh SELECT, mạnh linh động Chúng ta thực truy vấn bên mệnh đề WHERE Mệnh đề WHERE lệnh UPDATE định giá trị hàng CSDL thay đổi Trong ví dụ trên, có hàng thay đổi Tuy nhiên, lệnh UPDATE thay đổi nhiều hàng lúc Giả sử khoa Khoa học Máy tính (Computer Science) đổi tên thành khoa Công nghệ Thông tin (Information Technology) Lệnh UPDATE sau thay đổi tất hàng có giá trị cột 64 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Ngôn Ngữ Thao Tác Dữ Liệu • • Dept bảng Faculty Computer Science thành Information Technology UPDATE Faculty SET Dept = 'Information Technology' WHERE Dept = 'Computer Science'; Xoá hàng CSDL dễ thực lệnh DELETE Cú pháp sau: DELETE FROM WHERE ; Ví dụ: DELETE FROM Student WHERE Sname = 'Mary Poppins'; 65 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • Ngơn Ngữ Thao Tác Dữ Liệu Để xố tất hàng khỏi bảng, đơn giản bỏ mệnh đề WHERE khỏi lệnh DELETE Lưu ý để xoá bảng khỏi CSDL phải sử dụng lệnh DROP • Bây trở lại lệnh SELECT để thảo luận truy vấn (subquery) Khi truy vấn tham chiếu đến số thuộc tính truy vấn bên ngồi/cha gọi correlated subquery (truy vấn kết hợp/tương quan) • Lưu ý: Có hai kiểu truy vấn con: - Truy vấn lồng (nested subquery): truy vấn gọi truy vấn 66 khác Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Ngơn Ngữ Thao Tác Dữ Liệu • • • - Truy vấn kết hợp (correlated subquery): truy vấn lấy thông tin từ truy vấn cha Chúng ta hình dung thực thi truy vấn kết hợp Truy vấn cha duyệt qua tất hàng bảng truy vấn lấy thông tin từ hàng xét để thực cơng việc Cho ví dụ, giả sử muốn biết có ký túc xá (bảng Dorm) CSDL mà khơng có sinh viên kết hợp với chúng Một cách để trả lời câu hỏi phải duyệt qua tất hàng bảng Dorm, ứng với 67 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Ngôn Ngữ Thao Tác Dữ Liệu • • • hàng xét xem giá trị thuộc tính Student.Dorm tất sinh viên khác với giá trị thuộc tính Dorm.DormName ký túc xá cần tìm Bài tập lớp: viết truy vấn trên, sử dụng lượng từ NOT EXISTS? Lượng từ EXISTS NOT EXISTS thường dùng với truy vấn kết hợp để kiểm tra có kết hay khơng có kết thu từ truy vấn Tương tự ví dụ trên, tìm ký túc xá mà có sinh viên cách thay lượng từ NOT EXISTS thành EXISTS 68 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Tồn Vẹn Dữ Liệu Các hệ thống CSDL cung cấp cơng cụ để giúp trì tính tồn vẹn liệu (integrity of the data) Một tập qui tắc quan trọng đảm bảo quán liệu CSDL gọi ràng buộc toàn vẹn tham chiếu (referential integrity constraints) Các qui tắc xây dựng sẵn cho việc bắt buộc toàn vẹn tham chiếu là: Chèn hàng vào bảng cha cho phép Chèn hàng vào bảng cho phép giá trị khoá ngoại tồn bảng cha 69 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Tồn Vẹn Dữ Liệu • Xố hàng từ bảng cha cho phép khơng có hàng Xố hàng từ bảng ln cho phép Cập nhật khố bảng cha cho phép khơng có hàng Cập nhật khoá ngoại hàng cho phép giá trị tồn bảng cha Một công cụ khác hệ quản trị CSDL để hỗ trợ toàn vẹn liệu giao tác (transaction) Một giao tác chế nhóm thay đổi có quan hệ với CSDL với điều kiện 70 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Tồn Vẹn Dữ Liệu • • tất thay đổi xảy khơng xảy thay đổi Ví dụ, khách hàng muốn chuyển tiền gởi từ tài khoản tiết kiệm (savings account) sang tài khoản ATM (tài khoản vãng lai - checking account) Khi này, CSDL thực hai việc giảm số dư tài khoản tiết kiệm tăng số dư tài khoản ATM Nếu công việc thực thành công công việc thứ hai thất bại khách hàng bị tiền Do để đảm bảo thực đúng, cơng việc thứ hai lỗi số dư tài khoản tiết kiệm phải không thay đổi 71 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Tồn Vẹn Dữ Liệu • • Nghĩa là, thay đổi phải thành cơng khơng có thay đổi xảy Các hệ quản trị CSDL cho phép người lập trìnhchỉ định giao tác Mọi thay đổi CSDL xảy bên giao tác phải thành công giao tác quay lui trở lại (roll back) Khi giao tác bị quay lui, giá trị tất cột tất hàng khôi phục lại giá trị cũ trước giao tác bắt đầu Ví dụ: BEGIN TRANSACTION INSERT INTO DocGia 72 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Tồn Vẹn Dữ Liệu VALUES(@ma_docgia, @ho, @tenlot, @ten, @ngaysinh) DECLARE @day smallint, @month smallint, @year smallint SET @day = DAY(GETDATE()) – DAY(@ngaysinh) SET @month = MONTH(GETDATE()) – MONTH(@ngaysinh) SET @year = YEAR(GETDATE()) – YEAR(@ngaysinh) IF (@day >= AND @month >= AND @year >= 18) 73 BEGIN Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Tồn Vẹn Dữ Liệu INSERT INTO NguoiLon VALUES(@ma_docgia, @sonha, @duong,@quan,@dienthoai, @han_sd) COMMIT TRANSACTION @TranName END ELSE BEGIN PRINT 'Chua du 18 tuoi' ROLLBACK TRANSACTION @TranName END END 74 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng ... thể - mối quan hệ (entity-relationship: ER) 14 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Mơ Hình Hóa Miền Dữ Liệu 15 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • Mơ Hình Hóa Miền Dữ Liệu Các thuộc... ThS GVC Tơ Oai Hùng Các Loại Cơ Sở Dữ Liệu • quan hệ có tên DB2 Ngày nay, mơ hình liệu quan hệ sử dụng rộng rãi mơ hình mà thảo luận Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • • Các Ưu Điểm... nhiều cố vấn cho sinh viên (ví dụ, cố vấn học tập cố vấn đời sống) mối quan hệ chọn N:M (nhiều cố vấn cho sinh viên nhiều sinh viên cho cố vấn) 19 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • •

Ngày đăng: 09/05/2021, 18:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN