1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Cơ sở dự liệu 1

156 2 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

Tiêu đề Cơ Sở Dữ Liệu
Tác giả Nguyễn Thị Thu Thủy, Nguyễn Kim Anh, Abraham Silberschatz, Henry F. Korth, S. Sudarshan
Trường học Khoa Httt Kinh Tế & Tmdt
Chuyên ngành Tin Học
Thể loại Bài Giảng
Năm xuất bản 2015
Thành phố Hà Nội
Định dạng
Số trang 156
Dung lượng 3,25 MB

Nội dung

KHOA HTTT KINH TẾ & TMĐT  Mục BÀI GIẢNG HỌC PHẦN  Yêu cầu đạt được: Nắm vững các kiến thức bản về CSDL Hiểu các phương pháp thiết kế một CSDL Nhận thức được vai trò và sự cần thiết của hệ thống quản lý dữ liệu với một tổ chức kinh tế xã hội Biết thiết kế và tạo lập những CSDL dựa một HQT CSDL thông dụng kết hợp với NNLT để lập trình quản lý CSDL Bộ môn: Tin học sds đích của học phần: Trang bị các kiến thức bản về CSDL quan hệ, ngôn ngữ thao tác CSDL Cung cấp các kỹ bản về tổ chức CSDL: thiết kế CSDL, ngôn ngữ truy vấn  Cấu trúc học phần: 24,6 – Số TC: 02 (30 tiết) Nghe giảng: 24 tiết Thảo luận (bài tập): tiết sds  Chương 1: Tổng quan về CSDL  Chương 2: CSDL quan hệ  Chương 3: Ngôn ngữ khai thác CSDL quan hệ Nguyễn Thị Thu Thủy, Giáo trình CSDL1, NXB Thống kê, 2015 Nguyễn Kim Anh, Nguyên lý của các hệ CSDL, NXB Đại học Quốc gia Hà Nội, 2009 Abraham Silberschatz, Henry F Korth, S.Sudarshan, Database System Concepts, McGraw-Hil, 2011, website: http://codex.cs.yale.edu/avi/db-book/db6/slide-dir/ Fundamental of Database system, website: http://iips.icci.edu.iq/images/exam/databases-ramaz.pdf sds     1.1 Các khái niệm bản về CSDL 1.2 Mô hình dữ liệu 1.3 Kiến trúc sở dữ liệu 1.4 Ngôn ngữ quản trị sở dữ liệu   CSDL (Database): là một tập hợp các dữ liệu có liên quan với chứa thông tin về một tổ chức nào đó (trường đại học, công ty,…) được lưu trữ các thiết bị nhớ để đáp ứng nhu cầu khai thác thông tin của nhiều người sử dụng với nhiều mục đích khác Ví dụ: ◦ ◦ ◦ ◦ ◦ Hệ quản lý trường học Hệ quản lý doanh nghiệp Hệ kho Hệ công cộng … sds  Tính chất: ◦ CSDL phản ánh thông tin về hoạt động của một tổ chức nhất định ◦ Là một tập hợp thông tin mang tính hệ thống ◦ Thông tin lưu trữ CSDL được chia sẻ cho nhiều người sử dụng và có nhiều ứng dụng khác  Việc xây dựng và khai thác CSDL liên quan tới một số vấn đề: đảm bảo tính nhất quán và toàn vẹn dữ liệu, tính bảo mật và quyền khai thác của NSD, tính an toàn cho DL xảy sự cố,…       Tính tự mô tả Tính độc lập giữa chương trình và dữ liệu Tính trừu tượng dữ liệu Tính nhất quán Các cách nhìn dữ liệu  ◦ Chứa các thông tin về cấu trúc tập tin, kiểu và dạng thức lưu trữ của thành phần dữ liệu và những ràng buộc dữ liệu sds Hệ CSDL không chứa bản thân CSDL mà còn chứa định nghĩa đầy đủ (mô tả) của CSDL Các định nghĩa được lưu trữ danh mục (bảng)  Dữ liệu danh mục gọi là siêu dữ liệu (meta-data)  Các CTƯD có thể truy xuất đến nhiều CSDL nhờ thông tin cấu trúc được lưu trữ bảng 10  Vì định nghĩa về cấu trúc CSDL được lưu trữ bảng nên có thay đổi nhỏ về cấu trúc ta ít phải sửa lại chương trình    Chương trình ◦ Đới tượng ◦ Thuộc tính của đối tượng ◦ Mối liên hệ Độc lập Dữ liệu 11 sds Hệ CSDL cho phép trình bày dữ liệu một mức trừu tượng cho phép, nhằm che bớt những chi tiết lưu trữ thật của dữ liệu Trừu tượng hóa dữ liệu – Mô hình dữ liệu Mô hình dữ liệu 12  Lưu trữ dữ liệu thống nhất  ◦ Tránh được tình trạng trùng lặp thông tin  Có chế điều khiển truy xuất dữ liệu hợp lý  ◦ Tránh được việc tranh chấp dữ liệu ◦ Bảo đảm dữ liệu tại thời điểm  Hệ CSDL cho phép nhiều người dùng thao tác lên một CSDL Mỗi người đòi hỏi một cách nhìn (view) khác về CSDL Một view là ◦ Một phần của CSDL hoặc ◦ Dữ liệu tổng hợp từ CSDL 13 sds 14   Hệ QT CSDL (Database Management System - DBMS): là một tập hợp các chương trình cho phép người dùng định nghĩa, tạo lập, bảo trì các CSDL và cung cấp các truy cập có điều khiển đến các CSDL này Ví dụ: ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ IMS (Information Management System ) IDS (Integrated Data Store) Sysbase Access, Foxpro SQL – Server Oracle … Hệ QT CSDL cung cấp các phương tiện sau: ◦ Ngôn ngữ định nghĩa dữ liệu (Data Denifition Language - DDL): cho phép người dùng định nghĩa CSDL (đặc tả các kiểu và các CTDL, đặc tả các ràng buộc các DL được lưu trữ CSDL)  VD: Create table Co(Sohieu C(2), Ten C(10), Von N(4,0)) ◦ Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML): cho phép người dùng thêm, xóa, cập nhật dữ liệu và truy xuất DL CSDL  VD: Update… Insert… Delete… Select…From…Where… ◦ Các kiểm soát, các điều khiển đối với việc truy cập vào CSDL  VD: Hệ thống an ninh ngăn cấm sự cố tình truy cập vào CSDL một cách trái phép Hệ thống ràng buộc toàn vẹn trì tính nhất quán của DL Hệ thống điều khiển khôi phục CSDL có sự cố 15 sds  16    Thuật ngữ hệ CSDL để một CSDL và một hệ QT CSDL để truy cập vào CSDL đó Hệ CSDL cung cấp cho người dùng một cách nhìn trừu tượng của DL, che giấu những chi tiết phức tạp về cách thức DL được lưu trữ và bảo trì Hệ CSDL là một hệ thống gồm thành phần sau: ◦ ◦ ◦ ◦ Người sử dụng/Lập trình viên Chương trình ứng dụng/Truy vấn HQT CSDL Xử lý truy vấn Cơ sở dữ liệu Người sử dụng Phần mềm hệ QT CSDL Phần cứng Truy xuất liệu Định nghĩa CSDL CSDL Hệ CSDL 17 sds 18 19 sds  Một lược đồ được viết ngôn ngữ định nghĩa dữ liệu của một hệ QT CSDL cụ thể Để mô tả các yêu cầu dữ liệu của một tổ chức cho mô tả đó dễ hiểu đối với nhiều NSD khác thì ngôn ngữ này lại mức quá thấp  cần có một mô hình dữ liệu  Khái niệm: Mô hình dữ liệu là một tập các khái niệm và các ký pháp dùng để mô tả dữ liệu, các mối quan hệ của dữ liệu, các ràng buộc dữ liệu của một tổ chức 20 10 UNKNOWN Không sử dụng mệnh đề WHERE ◦ Logic điều kiện SQL là logic trị (three-value logic) • True • False • Unknown SELECT MANV, MAPHG (1) (0) (1/2) FROM NHANVIEN, PHONGBAN WHERE TRUE ◦ Phép toán logic MANV 3334455 55 3334455 55 3334455 55 9879879 87 9879879 87 9879879 87 … • x and y (giá trị nhỏ nhất) • x or y (giá trị lớn nhất) • not x (1-x) ◦ Điều kiện mệnh đề where sẽ trả về false nếu kiểm tra thấy kết quả là unknown 283 sds MAPHG 5 … 284 142 Tên bí danh  SELECT TENPHG, DIADIEM  FROM PHONGBAN PHONGBAN, AS PB, DDIEM_PHG AS DDIEM_PHG DD Dùng để hiển thị kết quả câu truy vấn theo một thứ tự nào đó Cú pháp SELECT FROM WHERE PB.MAPHG=DD.MAPHG MAPHG=MAPHG WHERE ORDER BY SELECT TENNV, NV.NGSINH, NGSINH, TENTN, TENTN, NGSINH TN.NGSINH ◦ ASC: tăng (mặc định) ◦ DESC: giảm FROM NHANVIEN NHANVIEN, NV, THANNHAN THANNHAN TN WHERE MANV=MA_NVIEN 285 sds 286 143  Ví dụ  SELECT MA_NVIEN, SODA  FROM PHANCONG  ◦ ◦ ◦ ◦ ORDER BY MA_NVIEN DESC, SODA MA_NVIEN SODA 999887777 10 999887777 30 987987987 10 987987987 30 987654321 10 987654321 20 987654321 30    287 sds Giới thiệu Định nghĩa dữ liệu (DDL) Truy vấn dữ liệu (DML) Truy vấn bản Tập hợp, so sánh tập hợp và truy vấn lồng Hàm kết hợp và gom nhóm Một số dạng truy vấn khác Cập nhật dữ liệu (DML) Khung nhìn (View) Chỉ mục (Index) 288 144  Các phép toán tập hợp SQL  ◦ SQL có cài đặt các phép toán SELECT FROM WHERE  Hội (UNION)  Giao (INTERSECT)  Trừ (EXCEPT hoặc MINUS) UNION [ALL] SELECT FROM WHERE SELECT FROM WHERE ◦ Kết quả trả về là tập hợp INTERSECT [ALL]  Loại bỏ các bộ trùng  Để giữ lại các bợ trùng • • • Cú pháp SELECT FROM WHERE UNION ALL INTERSECT ALL EXCEPT ALL SELECT FROM WHERE EXCEPT [ALL] SELECT FROM WHERE 289 sds 290 145  SELECT MANV, TENNV  FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG   Câu truy vấn cha (Outer query) ◦ ◦ So sánh tập hợp thường với một số toán tử SELECT FROM • IN, NOT IN • ALL • ANY hoặc SOME WHERE ( SELECT FROM Câu truy vấn (Subquery) WHERE ) 291 sds Các câu lệnh SELECT có thể lồng nhiều mức Các câu truy vấn một mệnh đề WHERE được kết hợp phép nối logic Câu truy vấn thường trả về một tập các giá trị Mệnh đề WHERE của câu truy vấn cha ◦ Kiểm tra sự tờn tại • EXISTS • NOT EXISTS 292 146  Có loại truy vấn lờng ◦ Lờng phân cấp SELECT MANV, TENNV • Mệnh đề WHERE của truy vấn không tham chiếu đến thuộc tính của các quan hệ mệnh đề FROM truy vấn cha • Khi thực hiện, câu truy vấn sẽ được thực hiện trước, lần ◦ Lờng tương quan • Mệnh đề WHERE của truy vấn tham chiếu ít nhất một thuộc tính của các quan hệ mệnh đề FROM truy vấn cha • Khi thực hiện, câu truy vấn sẽ được thực hiện nhiều lần, lần tương ứng với một bộ của truy vấn cha FROM NHANVIEN, DIADIEM_PHG WHERE DIADIEM=‘TP HCM’ AND PHG=MAPHG SELECT MANV, TENNV FROM NHANVIEN WHERE PHG IN (1, 5) and PHG = ( SELECT MAPHG FROM DIADIEM_PHG WHERE DIADIEM=‘TP HCM’ ) 293 sds 294 147  SELECT MANV, TENNV ◦ IN ◦ Thuộc tính mệnh đề SELECT của truy vấn phải có kiểu dữ liệu với thuộc tính mệnh đề WHERE của truy vấn cha FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG  SELECT MANV, TENNV WHERE EXISTS ( SELECT * FROM PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG 295 sds EXISTS ◦ Không cần có thuộc tính, số hay biểu thức nào khác đứng trước ◦ Không nhất thiết liệt kê tên thuộc tính mệnh đề SELECT của truy vấn ◦ Những câu truy vấn có = ANY hay IN đều có thể chuyển thành câu truy vấn có EXISTS FROM NHANVIEN ) IN 296 148  COUNT  ◦ COUNT(*) đếm số dòng ◦ COUNT() đếm số giá trị khác NULL của thuộc tính ◦ COUNT(DISTINCT ) đếm số giá trị khác và khác NULL của thuộc tính  MIN MAX SUM AVG  Các hàm kết hợp được đặt mệnh đề SELECT    SELECT SUM(Luong), MAX(LUONG), MIN(LUONG), avg(LUONG) FROM NHANVIEN 297 sds Tìm tổng lương, lương cao nhất, lương thấp nhất và lương trung bình của các nhân viên 298 149   Cho biết số lượng nhân viên của phòng ‘Nghien cuu’ SELECT COUNT(MANV) FROM NHANVIEN nv, PHONGBAN pb WHERE nv.PHG = pb.MAPHG AND pb.TENPHONG = 'Nghien Cuu' 299 sds Cho biết số lượng nhân viên của phòng ban PHG SL_NV 1 MANV HONV TENLOT TENNV NGSINH DCHI GT LUONG MA_NQL PHG 333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 453453453 Tran Thanh Tam 07/31/1972 543 MTL Q1 Nu 25000 333445555 999887777 Bui Ngoc Hang 07/19/1968 33 NTH Q1 Nu 38000 987654321 987654321 Le Quynh Nhu 07620/1951 219 TD Q3 Nu 43000 888665555 987987987 Tran Hong Quang 04/08/1969 980 LHP Q5 Nam 25000 987654321 888665555 Pham Van Vinh 11/10/1945 450 TV HN Nam 55000 NULL 300 150  Cú pháp  SELECT SELECT PHP, COUNT(MANV) AS SL_NV FROM NHANVIEN FROM WHERE GROUP BY  Cho biết sớ lượng nhân viên của phòng ban GROUP BY PHP Sau gom nhóm ◦ Mỗi nhóm các bộ sẽ có giá trị tại các thuộc tính gom nhóm 301 sds 302 151  Cú pháp  SELECT FROM SELECT MA_NVIEN, COUNT(*) AS SL_DA, WHERE FROM PHANCONG GROUP BY GROUP BY MA_NVIEN HAVING HAVING COUNT(SODA)>=2 303 sds Cho biết những nhân viên tham gia từ đề án trở lên 304 152  Cho biết những phòng ban (TENPHG) có lương trung bình của các nhân viên lớn 20000  ◦ Các thuộc tính mệnh đề SELECT (trừ những thuộc tính các hàm kết hợp) phải xuất hiện mệnh đề GROUP BY SELECT TENPHG, AVG(LUONG) AS LUONGTB_PB FROM PHONGBAN pb, NHANVIEN nv  Mệnh đề HAVING ◦ Sử dụng các hàm kết hợp mệnh đề SELECT để kiểm tra một số điều kiện nào đó ◦ Chỉ kiểm tra điều kiện nhóm, không là điều kiện lọc bộ ◦ Sau gom nhóm điều kiện nhóm mới được thực hiện WHERE pb.MAPHG=nv.PHG GROUP BY PHG HAVING AVG(LUONG)>20000 305 sds Mệnh đề GROUP BY 306 153  Với phòng cho biêt tên phòng và số lượng nhân viên của phòng SELECT pb.TENPHONG, count(*) FROM NHANVIEN nv, PHONGBAN pb WHERE nv.PHG = pb.MAPHG GROUP BY pb.MAPHG, pb.TENPHONG  ◦ (1) Chọn những dòng thỏa điều kiện mệnh đề WHERE ◦ (2) Những dòng này sẽ được gom thành nhiều nhóm tương ứng với mệnh đề GROUP BY ◦ (3) Áp dụng các hàm kết hợp cho nhóm ◦ (4) Bỏ qua những nhóm không thỏa điều kiện mệnh đề HAVING ◦ (5) Rút trích các giá trị của các cột và hàm kết hợp mệnh đề SELECT 307 sds Thứ tự thực hiện câu truy vấn có mệnh đề GROUP BY và HAVING 308 154   Tìm những phòng ban có lương trung bình cao nhất Tìm những nhân viên có lương cao nhất SELECT * FROM NHANVIEN WHERE LUONG >= ALL ( SELECT LUONG FROM NHANVIEN)  Tìm những phòng ban có lương trung bình cao nhất ◦ B1: Tìm lương trung bình của phòng ban SELECT PHG, AVG(LUONG) FROM NHANVIEN GROUP BY PHG HAVING AVG(LUONG) >= ALL( SELECT AVG(LUONG) FROM NHANVIEN GROUP BY PHG ) 309 sds 310 155  Tìm nhân viên có lương cao nhất SELECT TOP * FROM NHANVIEN ORDER BY LUONG DESC 311 sds 156 ... viên Chương trình ứng dụng/Truy vấn HQT CSDL Xử lý truy vấn Cơ sở dữ liệu Người sử dụng Phần mềm hệ QT CSDL Phần cứng Truy xuất liệu Định nghĩa CSDL CSDL Hệ CSDL 17 sds 18 19 sds  Một...   1.1 Các khái niệm bản về CSDL 1.2 Mô hình dữ liệu 1.3 Kiến trúc sở dữ liệu 1.4 Ngôn ngữ quản trị sở dữ liệu   CSDL (Database): là một tập hợp các dữ liệu có liên... dữ liệu logic sở đối tượng ◦ ◦ ◦ ◦  Mô hình thực thể - liên kết Mô hình hướng đối tượng Mô hình dữ liệu ngữ nghĩa Mô hình dữ liệu chức Mô hình dữ liệu logic sở bản ghi ◦

Ngày đăng: 10/10/2022, 11:20

HÌNH ẢNH LIÊN QUAN

Mơ hình quan hệ - Cơ sở dự liệu 1
h ình quan hệ (Trang 29)
 . Thiết kế mơ hình ER 2.6.3 - Cơ sở dự liệu 1
hi ết kế mơ hình ER 2.6.3 (Trang 87)
Mơ hình thực thể - Cơ sở dự liệu 1
h ình thực thể (Trang 88)
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện> UNION [ALL] - Cơ sở dự liệu 1
lt ;ds cột> FROM <ds bảng> WHERE <điều kiện> UNION [ALL] (Trang 145)
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện> - Cơ sở dự liệu 1
lt ;ds cột> FROM <ds bảng> WHERE <điều kiện> (Trang 145)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w