1. Trang chủ
  2. » Tất cả

Giáo trình môn khoa học máy tính

227 578 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 227
Dung lượng 1,51 MB

Nội dung

Trang 2 Mục Tiêu Mơn Học • Môn học này trình bày các nguyên lý tính toán về mặt lý thuyết và thực tiễn: những cơ sở lý thuyết thông tin và tính tốn, lý thuyết ngơn ngữ, phân tích giải th

ĐẠI HỌC MỞ TP.HCM KHOA CÔNG NGHỆ THÔNG TIN CÁC VẤN ĐỀ CƠ SỞ CỦA KHOA HỌC MÁY TÍNH Lý thuyết: 60 tiết Thực hành: tiết • • Mục Tiêu Mơn Học Mơn học trình bày ngun lý tính tốn mặt lý thuyết thực tiễn: sở lý thuyết thơng tin tính tốn, lý thuyết ngơn ngữ, phân tích giải thuật, thực hệ thống tính tốn, sở liệu, truyền liệu, … Sau học xong môn này, sinh viên đạt kiến thức giải thuật, phần cứng, phần mềm, ngơn ngữ lập trình, kỹ thuật lập trình, mạng máy tính, sở liệu, Internet nâng cao kỹ lập trình thơng qua tập Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Tài Liệu • Tài liệu chính: - Carl Raynolds, Paul Tymann, Principles of Computer Science, Mc Graw-Hill, 2008 • Tài liệu tham khảo: - J Glenn Bookshear, Computer Science – An overview, 11th edition, Pearson-Addison Wesley, 2012 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Phương Pháp Đánh Giá • Thi lý thuyết kỳ: 30% • Thi lý thuyết cuối kỳ: 70% Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Chương 1: GIỚI THIỆU VỀ KHOA HỌC MÁY TÍNH Nội Dung Khoa học Máy tính gì? Giải thuật Phần cứng Ngôn ngữ máy (ngôn ngữ cấp thấp) Ngôn ngữ cấp cao Lập trình Phần mềm: phần mềm hệ thống, phần mềm ứng dụng Mạng máy tính Cơng nghệ sở liệu 10 Internet, World Wide Web Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • • • Khoa Học Máy Tính Là Gì? Khoa học máy tính gì? Khoa học máy tính (computer science) định nghĩa theo nhiều cách khác Sau vài định nghĩa: “Khoa học máy tính tập phương thức có liên quan đến tính toán, gồm lý thuyết thực tiễn: lý thuyết thơng tin tính tốn, lý thuyết ngơn ngữ, phân tích giải thuật, thực thi hệ thống tính tốn, đồ hoạ máy tính, sở liệu, truyền thơng, …” “Sự nghiên cứu máy tính xử lý giải thuật, bao gồm nguyên lý, thiết kế Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Khoa Học Máy Tính Là Gì? • • Phần cứng phần mềm, ứng dụng ảnh hưởng xã hội” Định nghĩa sau nhấn mạnh phát triển phân tích giải thuật trọng tâm khoa học máy tính Mặc dù định nghĩa có khác nhau, tất nhằm nhấn mạnh đến nghiên cứu giải thuật Khoa học máy tính kết hợp khái niệm lý thuyết thiết kế phân tích giải thuật với thực tiễn xem xét để thực giải thuật máy tính giải vấn đề thực tiễn Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Giải Thuật Giải thuật gì? Giải thuật (algorithm) định nghĩa chi tiết rõ ràng chuỗi hành động nối tiếp để giải vấn đề cụ thể thực thi tác vụ Cho ví dụ, cần xác định ước số chung lớn (greatest common divisor – GCD) số nguyên Theo định nghĩa, GCD số nguyên dương số nguyên lớn mà ước số số Ví dụ: GCD(42, 30) = Chúng ta sử dụng giải thuật sau để tìm GCD số nguyên a b: - Nếu b = GCD(a, b) = a Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Giải Thuật Gán r phần dư a b Lặp lại bước dùng b r • Giải thuật tảng để máy tính xử lý thơng tin Bởi chương trình máy tính thể giải thuật lệnh cho máy tính thực bước cụ thể định giải thuật • Giải thuật biểu diễn lưu đồ hay mã giả để dễ dàng đọc Trong ví dụ trên, giải thuật thể mã giả • Để thực bước giải thuật máy tính, cần hiểu thuật ngữ “phần cứng” - 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 Để xoá 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 KHMT Các Vấn Đề Cơ Sở 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 • Xoá hàng từ bảng cha cho phép khơng có hàng Xố hàng từ bảng cho phép Cập nhật khố bảng cha cho phép khơng có hàng Cập nhật khố 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 Toà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 Toà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 ... • Khoa Học Máy Tính Là Gì? Khoa học máy tính gì? Khoa học máy tính (computer science) định nghĩa theo nhiều cách khác Sau vài định nghĩa: ? ?Khoa học máy tính tập phương thức có liên quan đến tính. .. VỀ KHOA HỌC MÁY TÍNH Nội Dung Khoa học Máy tính gì? Giải thuật Phần cứng Ngôn ngữ máy (ngôn ngữ cấp thấp) Ngơn ngữ cấp cao Lập trình Phần mềm: phần mềm hệ thống, phần mềm ứng dụng Mạng máy tính. .. Mạng Máy Tính Cả vào thập niên 1980, hầu hết máy tính khơng kết nối mạng Trong khoảng từ năm 1970 đến 1980 nhà khoa học máy tính khám phá ưu điểm mạng máy tính đưa số kết nối vật lý khác máy tính,

Ngày đăng: 14/12/2021, 19:42

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w