Giáo trình Cơ sở dữ liệu với mục tiêu giúp các bạn có thể trình bày được công dụng của cơ sở dữ liệu; Trình bày được các khái niệm về cơ sở dữ liệu như: khóa, lược đồ quan hệ, ,...Mô tả được các ngôn ngữ thao tác dữ liệu, ngôn ngữ truy vấn dữ liệu SQL. Mời các bạn cùng tham khảo!
ỦY BAN NHÂN DÂN TỈNH ĐỒNG THÁP TRƯỜNG CAO ĐẲNG CỘNG ĐỒNG ĐỒNG THÁP GIÁO TRÌNH MƠ ĐUN: CƠ SỞ DỮ LIỆU NGÀNH, NGHỀ: CƠNG NGHỆ THƠNG TIN TRÌNH ĐỘ: CAO ĐẲNG (Ban hành kèm theo Quyết định số /QĐ-CĐCĐ ngày tháng năm 20… Hiệu trưởng trường Cao đẳng Cộng đồng Đồng Tháp) Đồng Tháp, năm 2017 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Cơ sở liệu (Database) tập hợp liệu đƣợc lƣu trữ hệ thống máy tính CSDL cho phép ngƣời sử dụng chúng nhập, truy cập thống kê liệu nhanh chóng, dễ dàng Các ứng dụng tin học vào quản lý ngày nhiều đa dạng, hầu hết lĩnh vực kinh tế, xã hội… ứng dụng thành tựu tin học vào phục vụ công tác chuyên môn Chính lẽ mà ngày nhiều ngƣời quan tâm đến thiết kế, xây dựng ứng dụng sở liệu (CSDL) Cơ sở liệu gồm 06 giới thiệu hƣớng dẫn ngƣời dùng sử dụng thiết kế sở liệu để phục vụ cho viết lập trình cách chuyên nghiệp số tập giúp ngƣời học thực hành, cụ thể: - Bài 1: Tổng quan sở liệu - Bài 2: Các mơ hình liệu - Bài 3: Ràng buộc toàn vẹn - Bài 4: Ngôn ngữ thao tác liệu - Bài 5: Ngôn ngữ truy vấn liệu SQL - Bài 6: Chuẩn hóa CSDL Khi biên soạn tác giả cố gắng bố cục giảng cho bám sát chƣơng trình chi tiết mô học Cơ sở liệu với hy vọng giảng giúp ngƣời học thuận lợi trình học tập tài lớp tự học nhà Trong trình biên soạn tác giả cố gắng hết sức, việc sai sót điều khơng thể tránh khỏi, mong đóng góp đồng nghiệp ngƣời học Lời cảm ơn quan liên quan, đơn vị cá nhân tham gia …………., ngày……tháng……năm……… Tham gia biên soạn Chủ biên Lê Kim Tuyến Bài giảng csdl 60 MỤC LỤC Lời giới thiệu Trang Mục lục Trang Bài 1: Tổng quan sở liệu Trang Bài 2: Các mơ hình liệu Trang Bài 3: Ràng buộc toàn vẹn Trang 14 Bài 4: Ngôn ngữ thao tác liệu Trang 22 Bài 5: Ngôn ngữ truy vấn liệu SQL Trang 31 Bài 6: Chuẩn hóa CSDL Trang 42 Bài thực hành số (bài 2) Trang 46 Bài thực hành số (bài 3) Trang 48 Bài thực hành số (bài 4) Trang 50 Bài thực hành số (bài 5) Trang 52 Bài thực hành số (bài 6) Trang 54 Bài giảng csdl 60 GIÁO TRÌNH MƠN HỌC/MƠ ĐUN Tên mơn học/mơ đun: CƠ SỞ DỮ LIỆU Mã môn học/mô đun: MH10 Vị trí, tính chất, ý nghĩa vai trị mơn học/mơ đun: -Vị trí: Mơn học đƣợc bố trí sau học sinh học xong môn học chung, trƣớc mơn học/mơ-đun đào tạo chun mơn nghề -Tính chất: Là môn học chuyên môn nghề bắt buộc, tảng để HSSV thiết kế sở liệu xây dựng ứng dụng học môn học mơ đun liên quan - Ý nghĩa vai trị môn học/mô đun: thiết kế csdl,… Mục tiêu mơn học/mơ đun: - Về kiến thức: + Trình bày đƣợc cơng dụng sở liệu +Trình bày đƣợc khái niệm sở liệu nhƣ: khóa, lƣợc đồ quan hệ, , +Mơ tả đƣợc ngôn ngữ thao tác liệu, ngôn ngữ truy vấn liệu SQL - Về kỹ năng: + Thực xây dựng đƣợc mơ hình quan hệ +Thực chuyển câu hỏi sau tối ƣu hoá sơ đồ sang ngôn ngữ SQL +Thiết kế đƣợc sở liệu chuẩn +Viết chƣơng trình thực chƣơng trình máy tính có ứng dụng sở liệu - Về lực tự chủ trách nhiệm: + Rèn luyện tính tức cực, chủ động sáng tạo học tập + Thao tác cẩn thận, tỉ mỉ, xác sử dụng máy tính Nội dung môn học/mô đun: Bài giảng csdl 60 CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Mã bài: MH10-01 Mục tiêu: - Trình bày đƣợc khái niệm sở liệu - Mô tả đƣợc kiến trúc hệ sở liệu - Trình bày đƣợc đặc tính CSDL Các mơ hình liệu - Trình bày phân loại Ngƣời sử dụng CSDL - Rèn luyện tính chủ động, tích cực, siêng học tập Nội dung chính: Giới thiệu CSDL 1.1 Dữ liệu(Data): Một mô tả hình thức thơng tin hoạt động Ví dụ 1: Tên, địa chỉ, số điện thoại khách hàng Báo cáo doanh thu Đăng ký học phần 1.2 Cơ sở liệu (Database): Một tập hợp có cấu trúc liệu có liên quan với đƣợc lƣu trữ máy tính Ví dụ 2: Danh sách sinh viên Niên giám điện thoại Danh mục đề án -Một CSDL biểu diễn phần giới thực (thế giới thu nhỏ) -CSDL đƣợc thiết kế, xây dựng, lƣu trữ với mục đích xác định, phục vụ cho số ứng dụng ngƣời dùng -Tập ngẫu nhiên liệu xem CSDL 1.3 Hệ quản trị CSDL (Database Management System) -Tập hợp chƣơng trình cho phép ngƣời sử dụng tạo trì CSDL -Một phần mềm hệ thống cho phép định nghĩa, xây dựngvà xử lý liệu +Định nghĩa – khai báo khung liệu với mô tả chi tiết liệu +Xây dựng – lƣu trữ liệu lên nhớ phụ +Xử lý – truy vấn, cập nhật phát sinh báo cáo Bài giảng csdl 60 Ví dụ 3: CSDL Một số đặc tính CSDL 2.1 Tính tự mơ tả -Hệ CSDL khơng chứa thân CSDL mà cịnchứa định nghĩa đầy đủ (mơ tả) CSDL -Các định nghĩa đƣợc lƣu trữ catalog Chứa thông tin cấu trúc tập tin, kiểu dạng thứclƣu trữ thành phần liệu ràng buộcdữ liệu -Dữ liệu catalog gọi meta-data (data of data) -Các CTƢD truy xuất đến nhiều CSDL nhờthông tin cấu trúc đƣợc lƣu trữ catalog 2.2 Tính độc lập chƣơng trình liệu Vì định nghĩa cấu trúc CSDL đƣợc lƣu trữ trongcatalog nên có thay đổi nhỏ cấu trúc ta phải sửa lại chƣơng trình 2.3 Tính trừu tƣợng liệu -Hệ CSDL cho phép trình bày liệu mứctrừu tƣợng cho phép, nhằm che bớt chi tiếtlƣu trữ thật liệu -Trừu tƣợng hóa liệu Mơ hình liệu +Đối tƣợng +Thuộc tính đối tƣợng +Mối liên hệ Bài giảng csdl 60 2.4 Tính quán -Lƣu trữ liệu thống Tránh đƣợc tình trạng trùng lắp thơng tin -Có chế điều khiển truy xuất liệu hợp lý +Tránh đƣợc việc tranh chấp liệu +Bảo đảm liệu thời điểm 2.5 Các cách nhìn liệu -Hệ CSDL cho phép nhiều ngƣời dùng thao tác lêncùng CSDL -Mỗi ngƣời địi hỏi cách nhìn (view) khác CSDL -Một view +Một phần CSDL +Dữ liệu tổng hợp từ CSDL 3.Ngƣời sử dụng CSDL 3.1 Quản trị viên (Database Administrator - DBA) Có trách nhiệm quản lý hệ CSDL - Cấp quyền truy cập CSDL - Điều phối giám sát việc sử dụng CSDL 3.2 Thiết kế viên (Database Designer) Chịu trách nhiệm - Lựa chọn cấu trúc phù hợp để lƣu trữ liệu - Quyết định liệu cần đƣợc lƣu trữ Liên hệ với ngƣời dùng để nắm bắt đƣợc yêu cầu đƣa thiết kế CSDL thỏa yêu cầu Có thể nhóm DBA quản lý CSDL sau việc thiết kế hoàn tất 4.3 Ngƣời dùng cuối (End User) Ngƣời sử dụng - Ít truy cập CSDL, nhƣng cần thơng tin khác lần truy cập dùng câu truy vấn phức tạp - Ngƣời quản lý Ngƣời sử dụng thƣờng xuyên - Thƣờng xuyên truy vấn cập nhật CSDL nhờ vào số chức đƣợc xây dựng sẳn - Nhân viên Ngƣời sử dụng đặc biệt - Thông thạo HQT CSDL, tự xây dựng truy vấn phức tạp cho công việc - Kỹ sƣ, nhà khoa học, ngƣời phân tích,… Bài giảng csdl 60 CHƢƠNG 2: CÁC MƠ HÌNH DỮ LIỆU Mã bài: MH10-02 Mục tiêu: - Trình bày đƣợc mơ hình liệu, sơ đồ quan hệ - Trình bày đƣợc tầm quan trọng mơ hình liệu quan hệ - Vận dụng để giải toán mơ hình liệu quan hệ - Rèn luyện tính tích cực, chủ động, siêng học tập Nội dung chính: Mơ hình thực thể - liên kết(kết hợp) Đƣợc dùng để thiết kế CSDL mức quan niệm Biểu diễn trừu tƣợng cấu trúc CSDL Lƣợc đồ thực thể - kết hợp (Entity-Relationship Diagram) - Tập thực thể (Entity Sets) - Thuộc tính (Attributes) - Mối quan hệ=mối kết hợp (Relationship) 1.1.Thực thể Một thực thể đối tƣợng giới thực Tập hợp thực thể giống tạo thành tập thực thể Chú ý Thực thể (Entity) Đối tƣợng (Object) Tập thực thể (Entity set) Lớp đối tƣợng (Class of objects) Ví dụ 1: “Quản lý đề án cơng ty” Một nhân viên thực thể Tập hợp nhân viên tập thực thể Một đề án thực thể Tập hợp đề án tập thực thể Một phòng ban thực thể Tập hợp phòng ban tập thực thể 1.2.Thuộc tính Là đặc tính riêng biệt tập thực thể Ví dụ tập thực thể NHANVIEN có thuộc tính - Họ tên - Ngày sinh - Địa - … Là giá trị nguyên tố - Kiểu chuỗi - Kiểu số nguyên - Kiểu số thực Bài giảng csdl 60 Ví dụ 2: -Thực thể: DEAN -Thuộc tính: TENDA,DIEM_DA 1.3 Mối Quan hệ Là liên kết hay nhiều tập thực thể Ví dụ 3:mơ hình ER -Thực thể:……? Thuộc tính:…….? -Mối kết hợp:………? Nhập liệu 1.4 Lƣợc đồ ER 1.4.1 Bảng số mối quan hệ Trong mơ hình ER khơng có khắc biệt, sử dụng số để thể số lƣợng tối thiểu số lƣợng tối đa tham gia vào loại mối kết hợp Mối kết hợp – 1: Thuộc tính khố bên làm khố ngoại bên ngƣợc lại Mối kết hợp – N: Thuộc tính khố bên làm khố ngoại bên nhiều Mối kết hợp N – N: Chuyển thành quan hệ có khố gồm thuộc tính khố quan hệ; thuộc tính mối kết hợp (nếu có) trở thành thuộc tính quan hệ (0,1) – không (1,1) – (0,n) – không nhiều (1,n) – nhiều Bài giảng csdl 60 SELECT * FROM NHANVIEN WHERE nhanvien.MANV NOT IN ( SELECT phancong.ma_nvien FROM phancong ) SELECT * FROM NHANVIEN WHERE nhanvien.MANV ALL ( SELECT phancong.MA_NVIEN FROM phancong) Nhận xét IN EXISTS IN - IN - Thuộc tính mệnh đề SELECT truy vấn phải có kiểu liệu với thuộc tính mệnh đề WHERE truy vấn cha EXISTS - Khơng cần có thuộc tính, số hay biểu thức khác đứng trƣớc - Không thiết liệt kê tên thuộc tính mệnh đề SELECT truy vấn - Những câu truy vấn có = ANY hay IN chuyển thành câu truy vấn có EXISTS 41 Bài giảng csdl 60 CHƢƠNG 6: CHUẨN HÓA CSDL Mã bài: MH10-01 Mục tiêu: - Trình bày đƣợc định nghĩa chuẩn hóa - Thực đƣợc dạng chuẩn hoá - Thực quan hệ chuẩn hố đảm bảo khơng làm thơng tin - Rèn luyện tính chủ động, tích cực, tự giác, nghiêm túc học tập Nội dung chính: 1.Định nghĩa chuẩn hóa Chuẩn hố q trình tách bảng (phân rã) thành bảng nhỏ dựa vào phụ thuộc hàm Các dạng chuẩn dẫn để thiết kế bảng CSDL Mục đích chuẩn hoá loại bỏ dƣ thừa liệu lỗi thao tác dƣ thừa lỗi thao tác liệu (Insert, Delete, Update) Các dạng chuẩn hoá (Normal Form) Chuẩn hoá lƣợc đồ quan hệ 2.1 Chuẩn hoá 1NF (1NF – first normal form) : Khơng có phần tử/nhóm phần tử lặp Bảng dạng chuẩn • Có khóa • Khơng có nhóm lặp lại Bảng 1NF thuộc tính R chứa giá trị ngun tố ( khơng có thuộc tính đa trị) Q trình chuẩn hóa gồm bƣớc: • Loại bỏ nhóm lặp lại • Xác định khóa bảng • Xác định tất phụ thuộc (dependencies) bảng Lƣợc đồ phụ thuộc (dependency diagram): để giúp mô tả tất phụ thuộc bảng 42 Bài giảng csdl 60 Ví dụ, xét quan hệ ĐƠNVỊ NHÂNVIÊN_DỰÁN nhƣ hình vẽ dƣới Các quan hệ không thỏa mãn điều kiện 1NF Quan hệ ĐƠNVỊ chứa thuộc tính đa trị Địađiểm, quan hệ NHÂNVIÊN_DỰÁN chứa nhóm thuộc tính lặp (Tênnhânviên, Sốgiờ) Để đạt đến dạng chuẩn quan hệ dùng phƣơng pháp sau: Loại bỏ thuộc tính vi phạm dạng chuẩn đặt chúng vào bảng riêng với khố quan hệ ban đầu Khố bảng tổ hợp khố quan hệ ban đầu thuộc tính đa trị khố phận nhóm lặp Các thuộc tính cịn lại lập thành quan hệ với khóa khóa ban đầu Áp dụng : Lƣợc đồ quan hệ ĐƠNVỊ đƣợc tách thành hai: ĐƠNVỊ (Mã sốĐV, TênĐV, Mã sốNQL) ĐƠNVỊ_ĐỊAĐIỂM ( MãsốĐV, Địađiểm) Lƣợc đồ quan hệ NHÂNVIÊN_DỰÁN đƣợc tách thành hai: DỰÁN (MãsốDA, TênDA) NHÂNVIÊN_DỰÁN(MãsốDA, Tênnhânviên, Sốgiờ) Nhận xét: -Dạng chuẩn có bất thƣờng cập nhật 2.2 Chuẩn hố 2NF: Khơng có phụ thuộc hàm khơng đầy đủ vào khóa Lƣợc đồ quan hệ R dạng 2NF tập phụ thuộc hàm F nếu: • R dạng chuẩn 43 Bài giảng csdl 60 • Mọi thuộc tính khơng khóa phụ thuộc đầy đủ vào khóa R Nếu quan hệ R có khóa đơn đƣơng nhiên quan hệ dạng chuẩn Loại bỏ phụ thuộc hàm riêng phần tạo thêm quan hệ tƣơng ứng với phụ thuộc hàm riêng phần Quan hệ 2NF có bất thƣờng cập nhật Ví dụ Nếu quan hệ không thoả mãn điều kiện 2NF ta chuẩn hố để có quan hệ 2NF nhƣ sau: Loại bỏ thuộc tính khơng khố phụ thuộc vào phận khố tách thành bảng riêng, khố bảng phận khoá mà chúng phụ thuộc vào Các thuộc tính cịn lại lập thành quan hệ, khóa khóa ban đầu xét lƣợc đồ quan hệ: NHÂNVIÊN_DỰÁN(MãsốNV, MãsốDA, Sốgiờ, HọtênNV, TênDA, ĐịađiểmDA) với phụ thuộc hàm: MãsốNV, MãsốDA → Sốgiờ MãsốNV →HọtênNV MãsốDA→TênDA, ĐịađiểmDA Ta thấy có thuộc tính khơng khố phụ thuộc vào phận khố chính, nhƣ khơng thoả mãn điều kiên 2NF Áp dụng phƣơng pháp chuẩn hoá trên, lƣợc đồ đƣợc tách thành lƣợc đồ nhƣ sau: N_D1(MãsốDA, TênDA, ĐịađiểmDA) N_D2(MãsốNV , HọtênNV) N_D3(MãsốNV, MãsốDA, Sốgiờ) Nhận xét -Một quan hệ dạng chuẩn 2NF thoả mãn đièu kiện sau: -Khố gồm thuộc tính -Bảng khơng có thuộc tính khơng khố -Tất thuộc tính khơng khố phụ thuộc hồn tồn vào tập thuộc tính khố 2.3 Chuẩn hố 3NF: Khơng có phụ thuộc hàm vào thuộc tính khơng khóa Định nghĩa 1: Lƣợc đồ quan hệ R 3NF tập phụ thuộc hàm F nếu: • R dạng 2NF • Mọi thuộc tính khơng khóa khơng phụ thuộc bắc cầu vào khóa R Định nghĩa 2: Lƣợc đồ quan hệ R 3NF tập phụ thuộc hàm F R dạng chuẩn phụ thuộc hàm X->A với A X X siêu khố R A thuộc tính khố Loại bỏ phụ thuộc bắc cầu quan hệ tạo quan hệ tƣơng ứng với phụ thuộc bắc cầu Quan hệ 3NF có bất thƣờng cập nhật Ví dụ Nếu lƣợc đồ quan hệ khơng thoả mãn điều kiện 3NF, ta chuẩn hố để có đƣợc lƣợc đồ 3NF nhƣ sau: Loại bỏ thuộc tính phụ thuộc bắc cầu khỏi quan hệ tách chúng thành quan hệ riêng có khố thuộc tính bắc cầu Các thuộc tính cịn lại lập thành quan hệ có khóa quan hệ ban đầu 44 Bài giảng csdl 60 Xét lƣợc đồ quan hệ NHÂNVIÊN_ĐƠNVỊ(HọtênNV, MãsốNV, Ngàysinh, Địachỉ, MãsốĐV, TênĐV, MãsốNQL) Với phụ thuộc hàm: MãsốNV→ HọtênNV, Ngày sinh, Địachỉ, MãsốĐV, TênĐV, MãsốNQL MãsốDV→ TênĐV, Mã sốNQL Các thuộc tính TênĐV, MãsốNQL phụ thuộc bắc cầu vào khố chính, lƣợc đồ quan hệ khơng thoả mãn điều kiện 3NF Áp dụng phƣơng pháp chuẩn hoá trên, lƣợc đồ đƣợc tách nhƣ sau: NV_DV1(HọtênNV, MãsốNV, Ngàysinh, Địachỉ, MãsốĐV) NV_DV2(MãsốĐV, TênĐV, MãsốNQL) 2.4 Chuẩn hoá BCNF.(Boyce Codd Normal Form) Định nghĩa: Một quan hệ dạng chuẩn BCNF quan hệ đó: + Là 3NF + Khơng có thuộc tính khố mà phụ thuộc hàm vào thuộc tính khơng khố Ví dụ - Ví dụ1: Cho quan hệ R = (ABCDGH, khoá AB tập phụ thuộc hàm F = {AB -> C, AB -> D, AB -> GH} quan hệ đạt chuẩn BCNF - Ví dụ2: Cho quan hệ R = (ABCDGH) , khố AB tập phụ thuộc hàm F = {AB -> C, AB -> D, AB -> GH, H -> B} quan hệ khơng đạt chuẩn BCNF có thuộc tính khố B phụ thuộc hàm vào thuộc tính khơng khố H Khi ta đƣa dạng chuẩn BCNF nhƣ sau: 45 Bài giảng csdl 60 BÀI THỰC HÀNH SỐ (4 giờ) (Chƣơng 2: Các mơ hình liệu) Bài 2.1: -Một doanh nghiệp hoạt động lĩnh vực kho hàng có chức phân phối hàng -Doanh nghiệp mua hàng từ nhà cung cấp khácnhau, hàng hóa có thơng tin nhƣ mã hàng, mơ tả -Doanh nghiệp có nhu cầu lƣu trữ mã NCC, tên, địa chỉ,số điện thoại, số fax -Doanh nghiệp phải cạnh tranh, nên mặt hàng đƣợc lấy từ nhiều NCC khác lần giao hàng, NCC giao với số lƣợng tối đa theo qui định mặt hàng - Hàng hóa đƣợc đóng bao bì, bao bì có mã bao bì kích thƣớc Đơi bao bì lại q nhỏ để chứa tất hàng hàng đƣợc chứa nhiều bao bì -Tuy nhiên, khơng thể có hai mặt hàng chứa bao bì -Mỗi NCC cung cấp nhiều mặt hàng HD: 46 Bài giảng csdl 60 Bài 2.2:Quản lý kho hàng Yêu cầu: điên thuộc tính vào, sau xác định khóa 47 Bài giảng csdl 60 BÀI THỰC HÀNH SỐ (3 giờ, kiểm tra) (Chƣơng 3:Ràng buộc toàn vẹn) Bài 3.1: Các mẫu sau: 1/ Ràng buộc miền giá trị SINHVIEN (MASV, HOTEN, PHAI, NGAYSINH, DCHI, MANGANH) Tân t ừ: Mỗi sinh viên có mã số (MASV), m ột h ọ tên (HOTEN), thuộc m ột phái (PHAI) PHAI = 0: Nam, PHAI = 1: Nữ, có ngày sinh (NGAYSINH), có địa (DCHI), học ngành (MANGANH) Qui định thuộc tính PHAI c ó gi trị: – Nam, - Nữ ràng buộc miền giá trị *Bi ểu diễn ngơn ngữ hình thức ∀ sv ∈ SINHVIEN, sv.PHAI SINHVIEN, sv.PHAI ∈ [0,1] *Bối cảnh: SINHVIEN *Bảng tầm ảnh hƣởng (TAH) 2/ Ràng buộc miền giá trị MONAN (MAMA, TENMA, LOAI, DAM, BEO, DUONG, NANGLUONG) Qui định thuộc tính LOAI c ó gi trị: Chính, ph ụ m ột r àng buộc miền giá trị *Bi ểu di ễn ngơn ng ữ hình th ức ∀ m ∈ MONAN, m.LOAI MONAN, m.LOAI ∈ [„Ch ính‟, „Ph ụ‟] *Bối c ảnh: MONAN *B ảng tầm ảnh hƣởng (TAH) 48 Bài giảng csdl 60 Bài 3.2: https://www.slideshare.net/Duylucius/rang-buoc-toan-ven 49 Bài giảng csdl 60 BÀI THỰC HÀNH SỐ (3 giờ, kiểm tra) (Chƣơng 4:Ngôn ngữ thao tác liệu) Bài 4.1: Sử dụng ngôn ngữ SQL (trên access):QLSV MONTHI(MAMON, TENMON) DIEMTHI(SOBD, MAMON, DEM) THISINH(SOBD, HOTEN, MAKHOI) KHOITHI(MAKHOI, TENKHOI, DIEMCHUAN) Sử dụng phép chọn,kết,chiếu : - Để chọn KHOITHI có mã khối 6a1 có điểm chuẩn lớn 15 nhƣ sau: σ< MAKHOI = „6a1‟>AND =3000>( KHOITHI) - Để chọn MONTHI có TENMON tốn anh văn nhƣ sau: σ< TENMON=‟TOÁN‟>OR ( MONTHI) - Cho biết SOBD, họ tên THISINH SOBD,HOTEN (THISINH) -Để đƣa SOBD MAMON DIEMTHI có điểm >=8 C2: σKQ1 =4>(DIEMTHI) πKQ2 < SOBĐ,MAMON >(KQ1) C1:π< SOBD,MAMON >(σ =8>(DIEMTHI)) -PHÉP KẾT: Với MONTHI cho biết điểm thi mơn MONTHI(MAMON, TENMON) DIEMTHI(SOBD, MAMON, DIEM) KQ1 MONTHI DIEMTHI KQ1(MAMON, SOBD, TENMON,DIEM) Bài 4.2: Sử dụng đại số quan hệ( phép chọn, chiếu, kết) NHANVIEN(MANV, HO, TEN, NGSINH, DCHI, LUONG, mapb, PHUCAP, gtinh) Tìm nhân viên làm việc phịng số có mức lƣơng từ 25.000 đến 40.000 MaPB = Luong 25.000 Luong 40.000(NHANVIEN) Cho biết họ, tên, giới tính mức lƣơng nhân viên Ho, Ten, Gtinh, Luong(NHANVIEN) Cho biết họ, tên, giới tính mức lƣơng nhân viên phòng số Ho, Ten, Gtinh, Luong(MaPB = 5(NHANVIEN)) Bài 4.3 : Sử dụng đại số quan hệ( phép chọn, chiếu, kết) NHANVIEN(MANV, HO, TEN, NGSINH, DCHI, LUONG, mapb, PHUCAP, gtinh) Cho biết lƣơng cao công ty - Quan hệ: NHANVIEN - Thuộc tính: LUONG B1: Chọn lƣơng lớn 50 Bài giảng csdl 60 R1 (LUONG (NHANVIEN)) R2 NHANVIEN LUONG < R1.LUONG(NHANVIEN R1) R3 NHAN_VIEN.LUONG (R2) B2: Lấy tập hợp lƣơng trừ lƣơng R3 KQ LUONG (NHANVIEN) R3 Câu4.4: 1/Cho biết tên nhân viên phịng với nhân viên vminh Nvien(msnv,tennv,cvu,luong,mspb) -Tìm phịng ban mà vminh làm việc πmspb( tennv=‟vminh‟NVIEN) -Tìm tất nhân viên làm việc phòng trên, ta cần tham chiếu đến quan hệ nvien lần (nvien x πmspb( tennv=‟vminh‟NVIEN) 2/Liệt kê họ tên lƣơng nhân viên làm việc pử phòng số Nhanvien(honv,tenlot,tennv,manv,luong,phg) 1/ Dạng lồng πhonv,tennv,tenlot,luong(( phg=4(NHANVIEN) 2/ChuỖi phép gán Nvp4 phg=4(NHANVIEN) KQ π onv,tenlot,tennv,luong(nvp4) 3/ đổi tên cách liệt kê tên thuộc tính dấu ngoặc KQ (ho,lot,ten,luongcb) π onv,tenlot,tennv,luong(nvp4) 51 Bài giảng csdl 60 BÀI THỰC HÀNH SỐ (4 giờ) (Chƣơng 5:Ngôn ngữ truy vấn liệu SQL) Bài 5.1: Sử dụng ngôn ngữ SQL (trên access):QLSV MONTHI(MAMON, TENMON) DIEMTHI(SOBD, MAMON, DEM) THISINH(SOBD, HOTEN, MAKHOI) KHOITHI(MAKHOI, TENKHOI, DIEMCHUAN) Yêu cầu: -INSERT INTO : thêm lệu - CREATE TABLE (tạo bảng) -DELETE FROM : xóa liệu - DROP TABLE (xóa bảng) -UPDATE: cập nhật liệu - ALTER TABLE (sửa bảng) select 1/ Tạo bảng 2/ Thêm, xóa cột bảng : thêm trƣờng vào bảng thi sinh, môn thi ; xóa trƣờng bảng mơn thi 3/ Xóa bảng ; tạo lại 4/ Thêm(insert) dịng liệu vào bảng 5/ sửa (update) dòng bảng thi sinh , detele (xóa )1 dịng bảng diem thi 6/ Truy vấn: select -Liệt kê tất thí sinh -Liệt kê tên mơn, điểm -Liệt kê tên khối, điểm chuẩn với đk điểm chuẩn =15 8/ Truy vấn lòng: - So sánh điểm chuẩn tất khối thi lớn điểm chuẩn mã khối 7a1 ( có điểm chuẩn 11)không ? (>) - Liệt kê tenkhoi, diemchuan lớn ds khoi thi khơng(=) - Tìm thí sinh khơng có thi(not in) - Hiển thị ds thi sinh gồm: sobd, hoten, tổng điểm thi sinh 52 Bài giảng csdl 60 Bài 5.2: Sử dụng ngôn ngữ SQL (trên access):Qlhoadon PHIEUXUAT(SOPX,NGAYXUAT) CTPHIEUXUAT(SOPX,MAVTU,DGXUAT,SLXUAT) VATTU(MAVT,TENVT) CTPHIEUNHAP(MAVT,SPPN,DGNHAP,SLNHAP) PHIEUNHAP(SOPN,NGAYNHAP) DONDH(SODH,NGAYDH,MAVT,MANCC) NHACC(MANCC,TENNCC,DIACH,SĐT) Yêu cầu: 1/ Tạo bảng 2/ Thêm, xóa cột bảng : thêm trƣờng vào bảng NHACC,VATTU ; xóa trƣờng bảng PHEUNHAP 3/ Xóa bảng ; tạo lại 4/ Thêm(insert) dịng liệu vào bảng 5/ sửa (update) dòng bảng NHACC , detele (xóa )1 dịng bảng DONDH 6/ Truy vấn: select -Liệt kê tên vt, slxuat, ngày xuất -Liêt kê tên vt, sl nhập, ngày nhập với sl nhập Tên NV, Địa NV 1NF - Loại bỏ nhóm lặp loại bỏ thuộc tính tính tốn Cần loại thuộc tính tính tốn sau: Tổng tiền hóa đơn thành tiền Vì liệu dƣ thừa Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng, Mã Nhân viên, Số CMT NV, Tên NV, Địa NV, Số ĐT NV) Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Tên thuốc, Cơng dụng, Ngày SX, Hạn SD, Số lƣợng) 2NF - Loại bỏ phụ thuộc hàm khơng hồn tồn vào khóa Quan hệ Hóa đơn có khóa đơn nên quan hệ 2NF Xét quan hệ Hóa đơn - Thuốc : Tên thuốc, Công dụng, Ngày SX, Hạn SD phụ thuộc vào Mã thuốc mà khơng phụ thuộc vào tồn khóa nên quan hệ đƣợc tách làm quan hệ sau: Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng) Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD) Nhƣ vậy, dạng 2NF ta có quan hệ: Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng, Mã Nhân viên, Số CMT NV, Tên NV, Địa NV, Số ĐT NV) Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng) Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD) 3NF - Loại bỏ phụ thuộc hàm bắc cầu vào khóa Ở quan hệ Hóa đơn, ta thấy Tên Khách hàng, Số ĐT Khách hàng phụ thuộc Mã khách hàng Số CMT NV, Tên NV, Địa NV phụ thuộc mã nhân viên Do tách quan hệ thành quan hệ sau: Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên) Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng) Nhân viên(Mã Nhân viên, Số CMT NV, Tên NV, Địa NV, Số ĐT NV) Nhƣ vậy, 3NF, có quan hệ sau: Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên) Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng) 54 Bài giảng csdl 60 Nhân viên(Mã Nhân viên, Số CMT NV, Tên NV, Địa NV, Số ĐT NV) Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng) Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD) BCNF - Các thuộc tính định phải khóa Ở quan hệ Nhân viên, ta thấy Số CMT NV-> Tên NV, Địa NV nhƣng Số CMT Nhân viên không định Số ĐT NV (Nhân viên có nhiều số ĐT nhƣ số cầm tay, số nhà, số quan, …) Nhƣ vậy, Số CMT NV thuộc tính định (determinant) nhƣng khơng phải khóa nên quan hệ Nhân viên chƣa đạt BCNF, cần phải tách thành quan hệ nhƣ sau: Điện thoại - Nhân viên(Mã Nhân viên, Số CMT NV, Số ĐT NV) Nhân viên(Số CMT NV, Tên NV, Địa NV) Vậy, CSDL BCNF gồm quan hệ sau: Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên) Khách hàng(Mã khách hàng, Tên Khách hàng, Số ĐT Khách hàng) Điện thoại - Nhân viên(Mã Nhân viên, Số CMT NV, Số ĐT NV) Nhân viên(Số CMT NV, Tên NV, Địa NV) Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lƣợng) Thuốc(Mã thuốc, Tên thuốc, Công dụng, Ngày SX, Hạn SD) 55 Bài giảng csdl 60 ... 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Mã bài: MH1 0-0 1 Mục tiêu: - Trình bày đƣợc khái niệm sở liệu - Mô tả đƣợc kiến trúc hệ sở liệu - Trình bày đƣợc đặc tính CSDL Các mơ hình liệu - Trình bày phân... học/mô đun: - Về kiến thức: + Trình bày đƣợc cơng dụng sở liệu +Trình bày đƣợc khái niệm sở liệu nhƣ: khóa, lƣợc đồ quan hệ, , +Mơ tả đƣợc ngôn ngữ thao tác liệu, ngôn ngữ truy vấn liệu SQL - Về kỹ... mơ hình liệu *Bao gồm - Các khái niệm biểu diễn liệu - Các phép toán xử lý liệu *Phân loại - Mơ hình mức cao - Mơ hình cài đặt - Mơ hình mức thấp *Mơ hình mức cao 10 Bài giảng csdl 60 - Cung cấp