Các ngôn ngữ dữ liệu đối với mô hình quan hệ Vũ Tuyết Trinh trinhvtsoict.hust.edu.vn Bộ môn Hệ thống thông tin Viện CNTTTT ĐHBKHN 2 CSDL CSDL Ứng dụngH ệ CSDL Hệ QTCSDL Định nghĩa DL Thao tác DL 2 3 Ví dụ Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Student Takes SID SNO 1108 21 1108 23 8507 23 8507 29 SID Course 3936 101 1108 113 8507 101 Enrol No Name Dept 21 Systems CSCE 23 Database CSCE 29 VB CSCE 18 Algebra Maths Subject No Name Dept 113 BCS CSCE 101 MCS CSCE Course 4 Ví dụ Tìm tên của các sinh viên nào sống ở Bundoora Tìm các bộ của bảng Student có Suburb = Bundoora Đưa ra các giá trị của thuộc tính Name của các bộ này Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn
Các ngôn ngữ liệu mô hình quan hệ Vũ Tuyết Trinh trinhvt@soict.hust.edu.vn Bộ môn Hệ thống thông tin Viện CNTT&TT - ĐHBKHN Hệ CSDLDL - Định nghĩa Ứng dụng - Thao tác DL Hệ QTCSDL CSDL CSDL Ví dụ Student Id Name Suburb 1108 Robert 3936 Enrol Takes SID SNO SID Course Kew 1108 21 3936 101 Glen Bundoora 1108 23 1108 113 8507 Norman Bundoora 8507 23 8507 101 8452 Mary Balwyn 8507 29 Subject Course No Name Dept No Name Dept 21 Systems CSCE 113 BCS CSCE 23 Database CSCE 101 MCS CSCE 29 VB CSCE 18 Algebra Maths Ví dụ Tìm tên sinh viên sống Bundoora Tìm bảng Student có Suburb = Bundoora Đưa giá trị thuộc tính Name Student Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Ví dụ (2) Tìm sinh viên đăng ký khoá học có mã số 113 Tìm giá trị SID bảng Enrol có Course tương ứng 113 Đưa bảng Student có SID giá trị tìm thấy Student Id Name 1108 Robert Suburb Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Enrol SID Course 3936 101 1108 113 8507 101 Course No Name Dept 113 BCS CSCE 101 MCS CSCE Đặt vấn đề Mục đích ngôn ngữ liệu Tại có nhiều ngôn ngôn ngữ liệu? Ngôn ngữ cấp thấp vs Ngôn ngữ cấp cao? Nội dung Thao tác với HQTCSDLQH SQL (Structured Query Language) Đại số quan hệ Một số ngôn ngữ liệu QBE (Query By Example) Ngôn ngữ tính toán vị từ Ngôn ngữ SQL SQL (Structured Query Language) 1975: SEQUEL 1976: SEQUEL2 1978/79: SQL System-R System-R 1986: chuẩn SQL-86 1989: chuẩn SQL-89 1992: chuẩn SQL-92 1996: chuẩn SQL-96 Các thành phần SQL Ngôn ngữ mô tả liệu (Data Definition Language) Ngôn ngữ thao tác liệu (Data Manipulation Language) Cấu trúc bảng CSDL Các mối liên hệ liệu Quy tắc, ràng buộc áp đặt lên liệu Thêm, xoá, sửa liệu CSDL Ngôn ngữ quản lý liệu (Data Control Language) Thay đổi cấu trúc bảng liệu Khai báo bảo mật thông tin Quyền hạn người dùng khai thác CSDL 10 Cú pháp câu lệnh truy vấn SQL SELECT [DISTINCT] , , … FROM ,, … [WHERE ] [GROUP BY , , …] [ORDER BY | [ASC|DESC]] [HAVING ] 11 Truy vấn đơn giản bảng Tìm thông tin từ cột bảng Ví SELECT FROM SELECT FROM ColumnName, ColumnName, TableName * TableName dụ Student SELECT FROM Name Student Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora Glen 8507 Norman Bundoora Norman 8452 Mary Balwyn Mary name (Student) Name Robert 12 Truy vấn với điều kiện lựa chọn Chọn Ví dụ ghi (dòng) SELECT FROM WHERE ColumnName,ColumnName, TableName condition_expression; SELECT FROM WHERE * Student suburb=‘‘Bundoora’’ ; Student Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn suburb"Bundoora ( Student) Id Name Suburb 3936 Glen Bundoora 8507 Norman Bundoora 13 Biểu diễn điều kiện lựa chọn Các phép toán quan hệ: =, !=, , = Các phép toán logic: NOT, AND, OR Phép toán phạm vi: BETWEEN, IN, LIKE Kiểu liệu số attr BETWEEN val1 AND val2 ( (attr>=val1) and (attr[...]... quả 39 36 Glen Bundoora Name Course 8507 Norman Bundoora Glen 101 8452 Mary Balwyn Norman 101 Enrol SID Course 39 36 101 1108 1 13 8507 101 46 23 Phép kết nối tự nhiên Đ/n: là phép kết nối với điều kiện bằng trên các thuộc tính trùng tên Ví dụ: Enrol Takes SID SNO SID Course 1108 21 39 36 101 1108 23 1108 1 13 8507 23 8507 101 8507 29 * SID SNO 1108 21 Course 1108 23 1 13 8507 23 101 8507 29 101 1 13 47... danh sách các sinh viên và khoá Student Id SID Enrol học Student Kết quả Enrol Id Name Suburb 1108 Robert Kew SID Course 39 36 Glen Bundoora 39 36 101 8507 Norman Bundoora 1108 1 13 8452 Mary Id=SID 8507 Balwyn 101 SID Id Name Suburb Course 1108 1108 Robert Kew 1 13 3 936 39 36 Glen Bundoora 101 8507 8507 Norman Bundoora 45 101 Ví dụ - chọn, chiếu và kết nối đưa ra tên của các sinh viên sống ở Bundoora... _id Name Suburb G.P Condition COUNT._id > 5 64 32 Các thao tác thay đổi dữ liệu Xoá Student D Name Suburb Name Suburb 1108 Thêm Student I ID ID 1179 David Evry Sửa đổi Student ID Name 1179 Suburb U.Paris 65 Tính đầy đủ của QBE Có thể biểu diễn cả 5 phép toán đại số cơ sở (,,,\,x) Bài tập: chứng minh tính đầy đủ của QBE 66 33 Định nghĩa dữ liệu trong QBE sử dụng cùng qui cách và giao... type2(size2)[NOT NULL], , [CONSTRAINT clause] ) Xoá bảng DROP TABLE tab 32 16 Quy ước đặt tên và kiểu dữ liệu Quy ước đặt tên 32 ký tự: chữ cái, số, dấu _ Kiểu dữ liệu (SQL-92) CHAR(n) VARCHAR(n) Int Smallint Numeric(p,d) Real, double float(n) Date time 33 Kiểu ràng buộc RBTV về giá trị miền CONSTRAINT CHECK RBTV về khoá chính... Đưa ra danh sách mã số các sinh viên và mã khoá học mà sinh viên đó đăng ký nếu có Student ID Name Suburb 1108 Robert Kew 39 36 Glen Bundoora 8507 Norman Bundoora 8452 Mary Enrol SID Course 39 36 101 1108 1 13 8507 101 Balwyn Kết quả ID Name Suburb Course 1108 Robert Kew 1 13 3 936 Glen Bundoora 101 8507 Norman Bundoora 101 8452 Mary Balwyn null 49 Phép chia Đ/n: cho R1 và R2 lần lượt là các quan... ‘‘Evry’’ WHERE Suburb = ‘‘Evr’’; 30 15 Định nghĩa dữ liệu với SQL Các thông tin được định nghĩa bao gồm Sơ đồ quan hệ Kiểu dữ liệu hay miền giá trị của mỗi thuộc tính Các ràng buộc toàn vẹn Các chỉ số đối với mỗi bảng Thông tin an toàn và uỷ quyền đối với mỗi bảng Cấu trúc lưu trữ vật lý của mỗi bảng trên đĩa Được biểu diễn bởi các lệnh định nghĩa dữ liệu 31 Cú pháp Tạo bảng CREATE TABLE... Swimming 39 36 Glen Bundoora 05 Swimming 8507 Norman Bundoora 05 Swimming 8452 Mary Balwyn 05 Swimming 1108 Robert Kew 09 Dancing 39 36 Glen Bundoora 09 Dancing 8507 Norman Bundoora 09 Dancing 8452 Mary Balwyn 09 Dancing 55 Bài tập Biểu diễn câu hỏi truy vấn bằng ngôn ngữ đại số quan hệ Tính kết quả của biểu thức 56 28 57 Ngôn ngữ QBE 29 QBE (Query-By-Example) Là một ngôn ngữ truy vấn dữ liệu Các... suburb"Bundoora ( Student) Student Id Name Suburb 1108 Robert Kew 39 36 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Kết quả Id Name Suburb 39 36 Glen Bundoora 8507 Norman Bundoora 43 Vi dụ - chọn và chiếu đưa ra tên của các sinh viên sống ở Bundoora name ( suburb"Bundoora Student) Student Kết quả Id Name Suburb 1108 Robert Kew 39 36 Glen Bundoora Glen 8507 Norman Bundoora Norman 8452 Mary Balwyn... phụ thuộc tồn tại CONSTRAINT FOREIGN KEY (fk1,fk2,…) REFERENCES tab(k1,k2) 34 17 Thêm/xoá/sửa cột của các bảng Thêm ALTER TABLE ADD COLUMN [NOT NULL] Xoá ALTER TABLE DROP COLUMN Sửa ALTER TABLE CHANGE COLUMN 35 Thêm/sửa các ràng buộc Thêm ALTER TABLE ADD CONSTRAINT ... DROP CONSTRAINT 36 18 Ví dụ CREATE TABLE Student( Id char(10)NOT NULL, Name varchar (30 )NOT NULL, Suburb varchar (30 ), CONSTRAINT key_Stud PRIMARY KEY Id ) CREATE TABLE Takes( SID char(10)NOT NULL, SNO varchar(5)NOT NULL, CONSTRAINT key_takes PRIMARY KEY (SID,SNO), CONSTRAINT key_2Stud FOREIGN KEY (SID) REFERENCES Student(Id) ) Id Name 1108 Robert Suburb Kew 39 36 Glen Bundoora 8507 Norman