1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo môn học cơ sở dữ liệu nâng cao

120 65 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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC BÁO CÁO MÔN HỌC CƠ SỞ DỮ LIỆU NÂNG CAO Sinh viên thực hiện: PHÙNG TRỌNG HIẾU Lớp: Toán Tin 01-K60 MSSV: 20151366 HÀ NỘI - 2020 Mục lục Cơ sở liệu lớn 1.1 Cơ sở liệu 1.1.1 Ưu điểm 1.1.2 Những vấn đề cần giải 1.2 Hệ quản trị sở liệu 1.3 Dữ liệu lớn 1.3.1 Đặc trưng 5V liệu lớn 1.3.2 Cơ sở liệu NoSQL Cơ sở liệu phân tán 2.1 Các khái niệm 2.2 Đánh giá sở liệu phân tán 2.2.1 Ưu điểm 2.2.2 Nhược điểm 2.2.3 Các vấn đề sở liệu phân tán Kiến trúc hệ sở liệu phân tán 2.3.1 Các loại sở liệu phân tán 2.4 Tính suốt phân tán 2.5 12 luật Date cho HQTCSDL phân tán 2.3 Hệ quản trị sở liệu Oracle 10 3.1 Bài thực hành 10 3.2 Bài thực hành 10 3.2.1 Câu 10 3.2.2 Câu 11 3.2.3 Câu 11 3.2.4 Câu 12 3.2.5 Câu 13 i MỤC LỤC 3.2.6 3.3 3.4 3.5 3.6 Câu 14 Bài thực hành 14 3.3.1 Câu 14 3.3.2 Câu 15 3.3.3 Câu 16 3.3.4 Câu 17 3.3.5 Câu 19 3.3.6 Câu 20 Bài thực hành 21 3.4.1 Câu 21 3.4.2 Câu 22 3.4.3 Câu 23 3.4.4 Câu 24 3.4.5 Câu 25 3.4.6 Câu 26 3.4.7 Câu 27 3.4.8 Câu 28 3.4.9 Câu 29 Bài thực hành 30 3.5.1 Câu 30 3.5.2 Câu 33 3.5.3 Câu 34 3.5.4 Câu 35 3.5.5 Câu 36 3.5.6 Câu 37 3.5.7 Câu 38 3.5.8 Câu 39 3.5.9 Câu 40 3.5.10 Câu 10 41 Bài thực hành 42 3.6.1 Câu 42 3.6.2 Câu 43 3.6.3 Câu 46 3.6.4 Câu 47 3.6.5 Câu 48 3.6.6 Câu 49 SVTH: Phùng Trọng Hiếu ii Toán Tin 01-K60 MỤC LỤC 3.6.7 Câu 51 3.7 Bài thực hành 52 3.8 Bài thực hành 52 3.8.1 Câu 52 3.8.2 Câu 53 3.8.3 Câu 54 3.8.4 Câu 55 Bài thực hành 56 3.10 Bài thực hành 10 57 3.11 Bài thực hành 11 57 3.11.1 Câu 57 3.11.2 Câu 58 3.11.3 Câu 59 3.11.4 Câu 60 3.9 Bài tập kết thúc môn 62 4.1 Bài 62 4.1.1 Đề 62 4.1.2 Oracle 63 4.1.3 SQL Server 65 4.1.4 Bình luận 67 Bài 67 4.2.1 Đề 67 4.2.2 Oracle 68 4.2.3 SQL Server 71 4.2.4 Bình luận 74 Bài 75 4.3.1 Đề 75 4.3.2 Oracle 75 4.3.3 SQL Server 79 4.3.4 Bình luận 83 Bài 83 4.4.1 Đề 83 4.4.2 Oracle 84 4.4.3 SQL Server 84 4.4.4 Bình luận 85 Bài 86 4.2 4.3 4.4 4.5 SVTH: Phùng Trọng Hiếu iii Toán Tin 01-K60 MỤC LỤC 4.5.1 Đề 86 4.5.2 Oracle 86 4.5.3 SQL Server 88 4.5.4 Bình luận 90 Bài 90 4.6.1 Đề 90 4.6.2 Oracle 91 4.6.3 SQL Server 93 4.6.4 Bình luận 97 Bài 97 4.7.1 Đề 97 4.7.2 Oracle 99 4.7.3 SQL Server 102 4.7.4 Bình luận 105 Bài 105 4.8.1 Đề 105 4.8.2 Oracle 105 4.8.3 SQL Server 107 4.8.4 Bình luận 109 Bài 109 4.9.1 Đề 109 4.9.2 Oracle 109 4.9.3 SQL Server 111 4.9.4 Bình luận 112 4.10 Bài 10 112 4.10.1 Đề 112 4.10.2 Kết 113 4.6 4.7 4.8 4.9 Tài liệu tham khảo SVTH: Phùng Trọng Hiếu 115 iv Toán Tin 01-K60 Chương Cơ sở liệu lớn 1.1 Cơ sở liệu Cơ sở liệu (CSDL) tập hợp liệu có cấu trúc liên quan với lưu trữ máy tính, nhiều người sử dụng tổ chức theo mơ hình Trước CSDL đời, đơn vị kinh tế, hành nghiệp, thường sử dụng mơ hình hệ thống tệp tin cổ điển Các thông tin tổ chức cách riêng rẽ, phục vụ cho mục đích đơn vị hay đơn vị trực thuộc cụ thể Sự đời CSDL sản phẩm có liên quan có tác động to lớn đến việc phát triển vận hành máy tính điện tử Ta thấy xuất CSDL hầu hết lĩnh vực có liên quan và/hoặc có sử dụng đến máy tính kinh doanh, giáo dục, y tế, 1.1.1 Ưu điểm Việc sử dụng CSDL thay cho phương pháp lưu trữ quản lý thông tin truyền thống cho ta ưu điểm vượt trội sau: – Sự trùng lặp thông tin giảm xuống mức thấp nhất, nhờ đảm bảo tính quán toàn vẹn liệu – Đảm bảo độc lập liệu chương trình ứng dụng Cho phép thay đổi cấu trúc, liệu sở liệu mà khơng cần thay đổi chương trình ứng dụng – Giúp trừu tượng hóa liệu, làm ẩn chi tiết lưu trữ vật lý liệu, biểu diễn cho người sử dụng mức khái niệm sở liệu – Cung cấp nhiều khung nhìn khác cho đối tượng người dùng khác Đảm bảo liệu truy xuất theo nhiều cách khác CHƯƠNG CƠ SỞ DỮ LIỆU LỚN – Hỗ trợ đa người dùng, cho phép chia sẻ thông tin cho nhiều người sử dụng nhiều ứng dụng khác 1.1.2 Những vấn đề cần giải Bên cạnh ưu điểm khơng thể chối cãi CSDL, ta có loạt vấn đề nảy sinh cần phải giải như: – Tính chủ quyền liệu: Chủ quyền CSDL bị xâm phạm tính chất chia sẻ – Tính bảo mật quyền khai thác thông tin người sử dụng: Do có nhiều người phép khai thác CSDL nên cần thiết phải có chế bảo mật phân quyền hạn khai thác CSDL – Tranh chấp liệu: Nhiều người cho phép đồng thời truy cập vào CSDL với mục đích khác như: xem, thêm, xóa, sửa liệu Cần phải có chế ưu tiên truy cập liệu giải tình trạng xung đột trình khai thác cạnh tranh Cơ chế ưu tiên thực chế cấp quyền ưu tiên cho người khai thác – Đảm bảo liệu có cố: Việc quản lý liệu tập trung làm tăng nguy mát sai lệch thông tin có cố xảy điện đột xuất đĩa lưu trữ bị hỏng Cần phải có chế khơi phục liệu có cố xảy 1.2 Hệ quản trị sở liệu Hệ quản trị sở liệu (HQTCSDL) hệ thống thiết kế nhằm mục đích quản lý lượng liệu định cách tự động có trật tự Với phát triển vũ bão máy tính điện tử cơng nghệ, phần mềm nay, nhiều quy trình, cơng đoạn hay hệ thống quản trị mã hóa vận hành thiết bị, phần mềm nhằm giúp cho đối tượng sử dụng đạt hiệu suất làm việc cao Trên sở đó, hệ quản trị liệu đời đóng vai trị quan trọng xử lý kiểm sốt nguồn thơng tin, liệu đơn lẻ Ta liệt kê vài chức HQTCSDL sau: – Cung cấp môi trường tạo lập sở liệu: Hệ quản trị CSDL đóng vai trị cung cấp cho người dùng ngôn ngữ định nghĩa liệu để mô tả, khai báo kiểu liệu, cấu trúc liệu SVTH: Phùng Trọng Hiếu Toán Tin 01-K60 CHƯƠNG CƠ SỞ DỮ LIỆU LỚN – Cung cấp cách cập nhật khai thác liệu: HQTCSDL cung cấp cho người dùng ngôn ngữ thao tác với liệu để diễn tả yêu cầu, thao tác cập nhật khai thác sở liệu Các thao tác liệu bao gồm: cập nhật (nhập, sửa, xóa liệu), khai thác (tìm kiếm, kết xuất liệu) – Cung cấp cơng cụ kiểm sốt, điều khiển truy cập vào sở liệu: Nhằm đảm bảo thực số yêu cầu HQTCSDL, bao gồm: (1) Đảm bảo an ninh, phát ngăn chặn truy cập bất hợp pháp (2) Duy trì tính qn liệu (3) Tổ chức điều khiển truy cập (4) Khơi phục sở liệu có cố phần cứng hay phần mềm (5) Quản lí mô tả liệu 1.3 Dữ liệu lớn Dữ liệu lớn (Big Data) thuật ngữ dùng để tập hợp liệu lớn phức tạp công cụ, ứng dụng xử lý liệu truyền thống đảm đương Tuy nhiên, liệu lớn lại chứa nhiều thơng tin q trích xuất thành cơng, giúp ích nhiều vơ số lĩnh vực, công việc kinh doanh, nghiên cứu khoa học, dự đoán dịch bệnh phát sinh chí việc xác định điều kiện giao thơng theo thời gian thực Chính thế, liệu phải thu thập, tổ chức, lưu trữ, tìm kiếm, chia sẻ theo cách khác so với bình thường 1.3.1 Đặc trưng 5V liệu lớn Dữ liệu lớn có đặc trưng sau: Khối lượng liệu (Volume): Đây đặc điểm tiêu biểu liệu lớn, khối lượng liệu lớn Kích cỡ Big data ngày tăng lên, tính đến năm 2012 nằm khoảng vài chục terabyte nhiều petabyte (1 petabyte = 1024 terabyte) cho tập hợp liệu Dữ liệu truyền thống lưu trữ thiết bị đĩa mềm, đĩa cứng Nhưng với liệu lớn sử dụng công nghệ “đám mây” đáp ứng khả lưu trữ liệu lớn Tốc độ (Velocity): Tốc độ hiểu theo khía cạnh: (a) Khối lượng liệu gia tăng nhanh (mỗi giây có tới 72.9 triệu yêu cầu truy cập tìm kiếm web bán hàng Amazon); (b) Xử lý liệu nhanh mức thời gian thực (real-time), có nghĩa liệu xử lý tức thời sau chúng phát sinh (tính đến mili giây) Các ứng dụng phổ biến lĩnh vực Internet, Tài chính, Ngân hàng, Hàng không, Quân sự, Y tế – Sức khỏe phần lớn liệu lớn xử lý real-time Công nghệ xử SVTH: Phùng Trọng Hiếu Toán Tin 01-K60 CHƯƠNG CƠ SỞ DỮ LIỆU LỚN lý liệu lớn ngày cho phép xử lý tức trước chúng lưu trữ vào sở liệu Đa dạng (Variety): Đối với liệu truyền thống hay nói đến liệu có cấu trúc, ngày 80% liệu sinh phi cấu trúc (tài liệu, blog, hình ảnh, video, hát, liệu từ thiết bị cảm biến vật lý, thiết bị chăm sóc sức khỏe ) Big data cho phép liên kết phân tích nhiều dạng liệu khác Ví dụ, với bình luận nhóm người dùng Facebook với thơng tin video chia sẻ từ Youtube Twitter Độ tin cậy/chính xác (Veracity): Một tính chất phức tạp Dữ liệu lớn độ tin cậy/chính xác liệu Với xu hướng phương tiện truyền thông xã hội (Social Media) mạng xã hội (Social Network) ngày gia tăng mạnh mẽ tính tương tác chia sẻ người dùng Mobile làm cho tranh xác định độ tin cậy xác liệu ngày khó khăn Bài tốn phân tích loại bỏ liệu thiếu xác nhiễu tính chất quan trọng Big data Giá trị (Value): Giá trị đặc điểm quan trọng liệu lớn, bắt đầu triển khai xây dựng liệu lớn việc cần phải làm xác định giá trị thơng tin mang lại nào, có định có nên triển khai liệu lớn hay khơng Nếu có liệu lớn mà nhận 1% lợi ích từ nó, khơng nên đầu tư phát triển liệu lớn Kết dự báo xác thể rõ nét giá trị liệu lớn mang lại Ví dụ, từ khối liệu phát sinh trình khám, chữa bệnh giúp dự báo sức khỏe xác hơn, giảm chi phí điều trị chi phí liên quan đến y tế 1.3.2 Cơ sở liệu NoSQL CSDL NoSQL Cơ sở liệu xây dựng dành riêng cho mơ hình liệu có sơ đồ linh hoạt để xây dựng ứng dụng đại CSDL NoSQL công nhận rộng rãi khả dễ phát triển, chức hiệu quy mô lớn Các Cơ sở liệu sử dụng nhiều mơ hình liệu đa dạng, có văn bản, đồ thị, khóa – giá trị, nhớ tìm kiếm Ưu điểm – Linh hoạt: CSDL NoSQL thường cung cấp sơ đồ linh hoạt giúp công đoạn phát triển nhanh có khả lặp lại cao Mơ hình liệu linh hoạt biến CSDL SVTH: Phùng Trọng Hiếu Toán Tin 01-K60 CHƯƠNG CƠ SỞ DỮ LIỆU LỚN NoSQL thành lựa chọn lý tưởng cho liệu không tổ chức thành cấu trúc có cấu trúc chưa hồn chỉnh – Khả mở rộng: CSDL NoSQL thường thiết kế để mở rộng cách sử dụng cụm phần cứng phân phối thay mở rộng cách bổ sung máy chủ mạnh tốn – Hiệu cao: CSDL NoSQL tối ưu hóa theo mơ hình liệu (ví dụ văn bản, khóa–giá trị đồ thị) mẫu truy cập giúp tăng hiệu cao so với việc cố gắng đạt mức độ chức tương tự sở liệu quan hệ – Cực kỳ thiết thực: CSDL NoSQL cung cấp API kiểu liệu thiết thực xây dựng riêng cho mơ hình liệu tương ứng Nhược điểm – Hỗ trợ không đồng cho doanh nghiệp: Trong nhà cung cấp chủ chốt RDBMS SQL Server, Oracle, IBM, thường đưa hỗ trợ tốt cho khách hàng nhà cung cấp nguồn mở thành lập mong đợi cung cấp hỗ tốt – Chưa đủ “chín” cho doanh nghiệp: Dù chúng triển khai số cơng ty lớn CSDL NoSQL đối mặt với vấn đề tin cậy với nhiều doanh nghiệp Vấn đề lớn NoSQL thiếu độ chín muồi vấn đề tính khơng ổn định, tính chín muồi, hỗ trợ đầy đủ chức tính ổn định RDBMS thiết lập từ lâu – Những hạn chế tri thức nghiệp vụ: Các CSDL NoSQL khơng có nhiều đeo bám tới công cụ BI thường sử dụng, yêu cầu phân tích đại đơn giản liên quan nhiều tới tinh thơng lập trình – Thiếu tinh thơng: Tính mẻ NoSQL có nghĩa khơng có nhiều lập trình viên người quản trị biết cơng nghệ Như khó khăn cho cơng ty tìm người có hiểu biết phù hợp – Những vấn đề tính tương thích: Mỗi CSDL NoSQL có giao diện lập trình ứng dụng API riêng, giao diện truy vấn riêng Sự thiếu hụt tiêu chuẩn gây nhiều khó khăn chuyển từ nhà cung cấp sang nhà cung cấp khác có nhu cầu SVTH: Phùng Trọng Hiếu Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 65 WHEN c p a < THEN d e g r e e _ c l a s s i f i c a t i o n : = ’Kem ’ ; 66 WHEN c p a >= AND c p a < THEN d e g r e e _ c l a s s i f i c a t i o n : = ’ Yeu ’ ; 67 WHEN c p a >= AND c p a < THEN d e g r e e _ c l a s s i f i c a t i o n : = ’ Trung b i n h ’ ; 68 WHEN c p a >= AND c p a < THEN d e g r e e _ c l a s s i f i c a t i o n : = ’ Kha ’ ; 69 WHEN c p a >= AND c p a < THEN d e g r e e _ c l a s s i f i c a t i o n : = ’ G i o i ’ ; 70 WHEN c p a >= THEN d e g r e e _ c l a s s i f i c a t i o n : = ’ Xuat s a c ’ ; 71 END CASE ; 72 RETURN d e g r e e _ c l a s s i f i c a t i o n ; 73 END g e t _ d e g r e e _ c l a s s i f i c a t i o n ; 74 75 −− Tao ham t i n h t r i n h s i n h v i e n 76 CREATE OR REPLACE FUNCTION g e t _ l e v e l ( t o t a l _ c r e d i t s INT ) 77 RETURN VARCHAR2 I S 78 s t u d e n t _ l e v e l VARCHAR2( ) ; 79 BEGIN 80 CASE 81 82 WHEN t o t a l _ c r e d i t s < 32 THEN s t u d e n t _ l e v e l : = ’Nam t h u n h a t ’ ; WHEN t o t a l _ c r e d i t s < 64 AND t o t a l _ c r e d i t s >= 32 THEN s t u d e n t _ l e v e l : = ’ 83 WHEN t o t a l _ c r e d i t s < 96 AND t o t a l _ c r e d i t s >= 64 THEN s t u d e n t _ l e v e l : = ’ Nam t h u h a i ’ ; Nam t h u ba ’ ; 84 WHEN t o t a l _ c r e d i t s < 128 AND t o t a l _ c r e d i t s >= 96 THEN s t u d e n t _ l e v e l : = 85 WHEN t o t a l _ c r e d i t s >= 128 THEN s t u d e n t _ l e v e l : = ’Nam t h u nam ’ ; 86 END CASE ; 87 RETURN s t u d e n t _ l e v e l ; ’Nam t h u t u ’ ; 88 END g e t _ l e v e l ; 89 90 −− Tao t h u t u c cua b a i 91 CREATE OR REPLACE PROCEDURE q u e s t i o n _ ( s t u d e n t _ i d VARCHAR2, o u p u t OUT SYS_REFCURSOR ) I S 92 BEGIN 93 OPEN o u p u t FOR 94 SELECT t i d AS MSSV, s name AS "Ho t e n " , t s e m e s t e r , t year , 95 SUM( c c r e d i t s ) AS " So t i n c h i hoc ky " , 96 ROUND(SUM( c c r e d i t s ∗ g r a d e s c o r e ( t g r a d e ) ) /SUM( c c r e d i t s ) , ) 97 AS " Diem t r u n g b i n h hoc ky " , 98 g e t _ c u m u l a t i v e _ c r e d i t ( t i d , t year , t s e m e s t e r ) AS " So t i n c h i t i c h l u y ", 99 g e t _ c p a ( t i d , t year , t s e m e s t e r ) AS " Diem t r u n g b i n h t i c h l u y " , 100 g e t _ d e g r e e _ c l a s s i f i c a t i o n ( g e t _ c p a ( t i d , t year , t s e m e s t e r ) ) AS " Hoc 101 g e t _ l e v e l ( g e t _ c u m u l a t i v e _ c r e d i t ( t i d , t year , t s e m e s t e r ) ) AS " T r i n h luc " , " SVTH: Phùng Trọng Hiếu 101 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 102 FROM s t u d e n t s 103 INNER JOIN t a k e s t 104 ON s i d = t i d 105 INNER JOIN c o u r s e c 106 ON c c o u r s e _ i d = t c o u r s e _ i d 107 WHERE t i d = s t u d e n t _ i d 108 GROUP BY t i d , s name , t year , t s e m e s t e r 109 ORDER BY t y e a r ASC, t s e m e s t e r DESC ; 110 END q u e s t i o n _ ; 4.7.3 SQL Server Kết chạy Hình 4.18: Kết chạy (SQL Server) Mã nguồn CREATE FUNCTION dbo g e t _ l e v e l ( @ t o t a l _ c r e d i t s INT ) RETURNS VARCHAR( ) AS BEGIN DECLARE @ s t u d e n t _ l e v e l VARCHAR( ) ; SET @ s t u d e n t _ l e v e l = 10 11 12 ( SELECT CASE WHEN @ t o t a l _ c r e d i t s =128 THEN ’Nam t h u nam ’ 24 END 25 26 ); 27 RETURN @ s t u d e n t _ l e v e l ; 28 END; 29 GO 30 31 CREATE FUNCTION dbo g e t _ d e g r e e _ c l a s s i f i c a t i o n 32 ( 33 @cpa FLOAT) 34 RETURNS VARCHAR( ) 35 AS 36 BEGIN 37 DECLARE @ d e g r e e _ c l a s s i f i c a t i o n VARCHAR( ) ; 38 39 SET @ d e g r e e _ c l a s s i f i c a t i o n = 40 ( SELECT CASE 41 42 WHEN @cpa=1 AND @cpa=2 48 AND @cpa < 49 THEN ’ Trung b i n h ’ 50 WHEN @cpa > = AND @cpa < 51 52 THEN ’ Kha ’ 53 WHEN @cpa > = AND @cpa < 54 55 THEN ’ G i o i ’ 56 WHEN @cpa > = 57 THEN ’ Xuat s a c ’ END 58 59 ); 60 RETURN @ d e g r e e _ c l a s s i f i c a t i o n ; SVTH: Phùng Trọng Hiếu 103 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 61 END; 62 GO 63 64 CREATE PROCEDURE dbo q u e s t i o n _ 65 ( @ s t u d e n t _ i d VARCHAR( ) ) 66 67 AS 68 BEGIN 69 SELECT ∗ , 70 71 dbo g e t _ d e g r e e _ c l a s s i f i c a t i o n ( a " Diem t r u n g b i n h t i c h l u y " ) 72 AS " Hoc l u c " , 73 74 dbo g e t _ l e v e l ( a " So t i n c h i t i c h l u y " ) 75 AS " T r i n h " 76 FROM 77 78 ( SELECT t ID "MSSV" , 79 s name "Ho t e n " , 80 t semester , 81 t year , 82 SUM( c c r e d i t s ) 83 AS " So t i n c h i hoc ky " , ROUND( SUM( c c r e d i t s ∗ dbo g r a d e s c o r e 84 85 ( t g r a d e ) ) /SUM( c c r e d i t s ) , ) 86 AS " Diem t r u n g b i n h hoc ky " , 87 dbo g e t _ c u m u l a t i v e _ c r e d i t 88 ( t ID , t year , t s e m e s t e r ) 89 AS " So t i n c h i t i c h l u y " , 90 dbo g e t _ c p a 91 ( t ID , t year , t s e m e s t e r ) 92 AS 93 FROM( s t u d e n t s 94 INNER JOIN 95 takes t 96 ON s ID= t ID 97 " Diem t r u n g b i n h t i c h l u y " INNER JOIN 98 course c 99 ON c c o u r s e _ i d = t c o u r s e _ i d ) 100 WHERE t ID= @ s t u d e n t _ i d 101 GROUP BY t ID , 102 s name , 103 t year , 104 t semester SVTH: Phùng Trọng Hiếu 104 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 105 ) 106 AS a 107 ORDER BY y e a r ASC, s e m e s t e r DESC ; 108 109 END; 4.7.4 Bình luận Kết trả yêu cầu đề 4.8 4.8.1 Bài Đề Đánh mục bảng takes, student, advisor So sánh tốc độ truy vấn sau thực đánh mục 4.8.2 Oracle Kết chạy Hình 4.19: Kết chạy (Oracle, phần 1) SVTH: Phùng Trọng Hiếu 105 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MƠN Hình 4.20: Kết chạy (Oracle, phần 2) Mã nguồn CREATE TABLE t a k e s _ i d x ( ID VARCHAR2( ) , c o u r s e _ i d VARCHAR2( ) , s e c _ i d VARCHAR2( ) , s e m e s t e r VARCHAR2( ) , y e a r NUMERIC( , ) , g r a d e VARCHAR2( ) , PRIMARY KEY ( ID , c o u r s e _ i d , s e c _ i d , s e m e s t e r , y e a r ) , 10 FOREIGN KEY ( c o u r s e _ i d , s e c _ i d , s e m e s t e r , y e a r ) 11 REFERENCES s e c t i o n 12 ON DELETE CASCADE, 13 FOREIGN KEY ( ID ) REFERENCES s t u d e n t 14 15 ON DELETE CASCADE ); 16 17 CREATE TABLE s t u d e n t _ i d x 18 ( 19 ID VARCHAR2( ) , 20 name VARCHAR2( ) NOT NULL, 21 d e p t _ n a m e VARCHAR2( ) , 22 t o t _ c r e d NUMERIC( , ) CHECK ( t o t _ c r e d >= ) , SVTH: Phùng Trọng Hiếu 106 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 23 PRIMARY KEY ( ID ) , 24 FOREIGN KEY ( d e p t _ n a m e ) REFERENCES d e p a r t m e n t 25 ON DELETE SET NULL 26 ); 27 28 CREATE TABLE a d v i s o r _ i d x 29 ( 30 s _ i d VARCHAR2( ) , 31 i _ i d VARCHAR2( ) , 32 PRIMARY KEY ( s _ i d ) , 33 FOREIGN KEY ( i _ i d ) REFERENCES i n s t r u c t o r ( ID ) 34 ON DELETE SET NULL, 35 FOREIGN KEY ( s _ i d ) REFERENCES s t u d e n t ( ID ) 36 ON DELETE CASCADE 37 ); 38 39 INSERT INTO t a k e s _ i d x 40 SELECT ∗ FROM t a k e s ; 41 42 INSERT INTO s t u d e n t _ i d x 43 SELECT ∗ FROM s t u d e n t ; 44 45 INSERT INTO a d v i s o r _ i d x 46 SELECT ∗ FROM a d v i s o r ; 47 48 CREATE INDEX i n d e x _ t a k e s ON t a k e s _ i d x ( g r a d e ) ; 49 CREATE INDEX i n d e x _ s t u d e n t ON s t u d e n t _ i d x ( t o t _ c r e d ) ; 50 CREATE INDEX i n d e x _ a d v ON a d v i s o r _ i d x ( i _ i d ) ; 4.8.3 SQL Server Kết chạy Hình 4.21: Kết chạy (SQL Server, phần 1) Hình 4.22: Kết chạy (SQL Server, phần 2) SVTH: Phùng Trọng Hiếu 107 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN Mã nguồn CREATE TABLE s t u d e n t _ i d x ( ID VARCHAR( ) , name VARCHAR( ) NOT NULL, d e p t _ n a m e VARCHAR( ) , tot_cred PRIMARY KEY( ID ) , FOREIGN KEY( d e p t _ n a m e ) REFERENCES d e p a r t m e n t ON DELETE SET NULL) ; NUMERIC( , ) CHECK( t o t _ c r e d >=0 ) , 10 CREATE TABLE t a k e s _ i d x 11 ( VARCHAR( ) , 12 ID 13 c o u r s e _ i d VARCHAR( ) , 14 sec_id VARCHAR( ) , 15 semester VARCHAR( ) , 16 year NUMERIC( , ) , 17 grade VARCHAR( ) , 18 PRIMARY KEY( ID , c o u r s e _ i d , s e c _ i d , s e m e s t e r , y e a r ) , 19 FOREIGN KEY( c o u r s e _ i d , s e c _ i d , s e m e s t e r , y e a r ) REFERENCES s e c t i o n ON 20 FOREIGN KEY( ID ) REFERENCES s t u d e n t ON DELETE CASCADE) ; DELETE CASCADE, 21 22 CREATE TABLE a d v i s o r _ i d x 23 ( 24 s_ID VARCHAR( ) , 25 i _ I D VARCHAR( ) , 26 PRIMARY KEY( s_ID ) , 27 FOREIGN KEY( i _ I D ) REFERENCES i n s t r u c t o r ( ID ) ON DELETE SET NULL, 28 FOREIGN KEY( s_ID ) REFERENCES s t u d e n t ( ID ) ON DELETE CASCADE) ; 29 30 INSERT INTO t a k e s _ i d x 31 SELECT ∗ 32 FROM t a k e s ; 33 34 INSERT INTO s t u d e n t _ i d x 35 SELECT ∗ 36 FROM s t u d e n t ; 37 38 INSERT INTO a d v i s o r _ i d x 39 SELECT ∗ 40 FROM a d v i s o r ; 41 SVTH: Phùng Trọng Hiếu 108 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 42 43 CREATE INDEX i n d e x _ t a k e s 44 ON t a k e s _ i d x 45 ( grade ) ; 46 47 CREATE INDEX i n d e x _ s t u d e n t 48 ON s t u d e n t _ i d x 49 ( tot_cred ) ; 50 51 CREATE INDEX i n d e x _ a d v 52 ON a d v i s o r _ i d x 53 ( i_ID ) ; 4.8.4 Bình luận Tốc độ truy vấn có cải thiện sau đánh index cho bảng, nhiên thay đổi không đáng kể liệu chưa đủ lớn 4.9 4.9.1 Bài Đề Viết thủ tục cho phép sinh viên đăng ký khóa học với lựa chọn phịng thời gian Cài đặt TRANSACTION để đảm bảo toàn vẹn liệu đưa thơng báo lỗi có lỗi xảy 4.9.2 Oracle Kết chạy Hình 4.23: Kết chạy (Oracle) Mã nguồn CREATE OR REPLACE PROCEDURE q u e s t i o n _ ( SVTH: Phùng Trọng Hiếu 109 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN s t u d e n t _ i d VARCHAR2, p a r _ c o u r s e _ i d INT , p a r _ s e c _ i d INT , p a r _ s e m e s t e r VARCHAR2, p a r _ y e a r VARCHAR2, p a r _ d a y VARCHAR2, p a r _ s t a r t _ h r VARCHAR2, p a r _ s t a r t _ m i n VARCHAR2, par_room_number VARCHAR2 ) IS tmp VARCHAR2( ) ; BEGIN 10 SAVEPOINT b e g i n _ a d d ; 11 12 SELECT COUNT( ∗ ) INTO tmp FROM s e c t i o n 13 WHERE t i m e _ s l o t _ i d IN 14 ( 15 SELECT t i m e _ s l o t _ i d FROM t i m e _ s l o t 16 WHERE day = p a r _ d a y 17 AND s t a r t _ h r = p a r _ s t a r t _ h r 18 AND s t a r t _ m i n = p a r _ s t a r t _ m i n 19 20 ) AND c o u r s e _ i d = p a r _ c o u r s e _ i d 21 AND s e c _ i d = p a r _ s e c _ i d 22 AND s e m e s t e r = p a r _ s e m e s t e r 23 AND y e a r = p a r _ y e a r 24 AND room_number = par_room_number ; 25 26 I F tmp > 27 THEN 28 INSERT INTO t a k e s VALUES( s t u d e n t _ i d , p a r _ c o u r s e _ i d , p a r _ s e c _ i d , p a r _ s e m e s t e r , p a r _ y e a r , NULL) ; 29 30 COMMIT; ELSE 31 d b m s _ o u t p u t p u t _ l i n e ( ’ Dang ky t h a t b a i ! ’ ) ; 32 ROLLBACK TO b e g i n _ a d d ; 33 END I F ; 34 COMMIT; 35 END q u e s t i o n _ ; SVTH: Phùng Trọng Hiếu 110 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MƠN 4.9.3 SQL Server Kết chạy Hình 4.24: Kết chạy (SQL Server) Mã nguồn CREATE PROCEDURE q u e s t i o n _ @ID VARCHAR( ) , @course_id INT , @sec_id INT , @semester VARCHAR( ) , @year VARCHAR( ) , @room_number VARCHAR( ) , @ t i m e _ s l o t _ i d VARCHAR( ) AS 10 BEGIN 11 BEGIN TRANSACTION; 12 SAVE TRANSACTION t e s t _ t r a n s a c t i o n ; 13 DECLARE 14 @tmp VARCHAR( ) ; 15 SELECT @tmp=COUNT( ∗ ) 16 FROM s e c t i o n 17 WHERE room_number=@room_number 18 AND t i m e _ s l o t _ i d = @ t i m e _ s l o t _ i d 19 AND c o u r s e _ i d = @ c o u r s e _ i d 20 AND s e c _ i d = @sec_id 21 AND s e m e s t e r = @semester AND y e a r =@year ; 22 23 I F @tmp>0 24 BEGIN 25 INSERT INTO t a k e s 26 VALUES 27 28 ( @ID , @ cour se_i d , @sec_id , @semester , @year , NULL) ; SVTH: Phùng Trọng Hiếu 111 Tốn Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MƠN 29 END; 30 ELSE 31 RAISERROR ( ’ Dang ky t h a t b a i ! ’ , , ) ; 32 COMMIT; 33 END; 4.9.4 Bình luận Nhờ vào trigger tạo câu 5, ta không cần phải thực vài thao tác kiểm tra thủ tục trước tiến hành thêm liệu cho bảng takes 4.10 Bài 10 4.10.1 Đề LẬP TRÌNH ỨNG DỤNG SQL NÂNG CAO TRÊN MÔI TRƯỜNG WINDOWS Yêu cầu chung: Thiết kế cài đặt giao diện ứng dụng môi trường WinForms kết nối với sở liệu, ngôn ngữ lập trình C# cho phép sinh viên đăng ký học tập theo học chế tín Mơ tả chi tiết: Ứng dụng gồm Forms: – Form01: Chứa Data Grid lọc Data Grid hiển thị đầy đủ trường thông tin: Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học, Thời gian học, Phòng học, Giảng viên, Khoa viện Bộ lọc hỗ trợ lọc theo trường: Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học Thực chức xem, thêm, xóa, sửa sinh viên, thao tác Form 02 – Form02: Chứa thông tin Mã sinh viên, Họ tên sinh viên, Năm học, Kỳ học, Khóa học, Thời gian học, Phòng học, Giảng viên, Khoa viện sinh viên Cài đặt mối liên kết liệu giao diện: chẳng hạn chọn khoa viện lọc danh sách sinh viên thuộc khoa viện, chọn khóa học lọc danh sách giảng viên dạy khóa học Thực cập nhật liệu giao diện lưu vào sở liệu Lưu ý: Sinh viên tự lựa chọn thiết kế Controls Form phù hợp với liệu mô tả sở liệu cho trước SVTH: Phùng Trọng Hiếu 112 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MÔN 4.10.2 Kết Giao diện Form01 Hình 4.25: Kết chạy 10 (phần 1) SVTH: Phùng Trọng Hiếu 113 Toán Tin 01-K60 CHƯƠNG BÀI TẬP KẾT THÚC MƠN Giao diện Form02 Hình 4.26: Kết chạy 10 (phần 2) SVTH: Phùng Trọng Hiếu 114 Toán Tin 01-K60 Tài liệu tham khảo [1] “Interim report: Ansi/x3/sparc study group on data base management systems 75-0208,” FDT - Bulletin of ACM SIGMOD, vol 7, pp 1–140, 1975 115 ... 113 4.6 4.7 4.8 4.9 Tài liệu tham khảo SVTH: Phùng Trọng Hiếu 115 iv Toán Tin 01-K60 Chương Cơ sở liệu lớn 1.1 Cơ sở liệu Cơ sở liệu (CSDL) tập hợp liệu có cấu trúc liên quan với lưu... 2.2 2.2.1 Đánh giá sở liệu phân tán Ưu điểm – Phù hợp với cấu trúc tổ chức – Nâng cao khả chia sẻ tính tự trị địa phương – Nâng cao tính sẵn sàng – Nâng cao tính tin cậy – Nâng cao hiệu – Dễ mở... tính qn liệu (3) Tổ chức điều khiển truy cập (4) Khôi phục sở liệu có cố phần cứng hay phần mềm (5) Quản lí mơ tả liệu 1.3 Dữ liệu lớn Dữ liệu lớn (Big Data) thuật ngữ dùng để tập hợp liệu lớn

Ngày đăng: 04/08/2020, 00:25

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w