Tải bản đầy đủ (.pdf) (38 trang)

Bài giảng Thiết kế cơ sở dữ liệu: Chương 2 - ThS. Trần Quang Hải Bằng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (371.76 KB, 38 trang )

THIẾT KẾ CƠ SỞ DỮ LIỆU
( MHT09.3)

Chương 2
Lập trình và Quản trị người dùng
trong SQL Server




Nội dung
 Giới thiệu SQL, các lệnh làm việc với CSDL
 Nội thủ tục (Stored Procedure)
 Trigger
 Quản trị người dùng



Chương 2 - Lập trình và Quản trị người dùng trong SQL

2


Giới thiệu về SQL
 Được xem là một yếu tố chính đóng góp vào sự thành
cơng của CSDL quan hệ khi áp dụng vào đời sống xã hội.
 Là ngôn ngữ mức cao, người dùng chỉ cần xác định kết
quả của truy vấn là gì, phần cịn lại là tính toán và tối ưu
hoá câu lệnh được Hệ quản trị CSDL đảm nhiệm.
 1970: SQL (Structured Query Language) bắt nguồn từ
ngơn



ngữ

SEQUEL

(Structured

English

QUEry

Language), ngơn ngữ được thiết kế tại tập đồn IBM
nhằm đưa ra một giao diện truy vấn dữ liệu với HQTCSDL
thử nghiệm SYSTEM R


Chương 2 - Lập trình và Quản trị người dùng trong SQL

3


Giới thiệu về SQL (tt)
 Chuẩn SQL đầu tiên có tên gọi SQL-86 (SQL1) là sự
kết hợp giữa hai tổ chức ANSI và ISO.
 1992: SQL1 được mở rộng với nhiều tính năng mới
và được gọi là SQL-2 (SQL-92).
 SQL3: còn gọi là SQL:1999
 SQL:2003
 SQL:2011 – Support temporary databases




Chương 2 - Lập trình và Quản trị người dùng trong SQL

4


Lược đồ (Schema)
 SQL1 khơng có lược đồ, tất cả các bảng được xem là của
một lược đồ duy nhất
 Khái niệm lược đồ được đưa vào chuẩn SQL2 để nhóm
các bảng, các cấu trúc thuộc về một ứng dụng nào đó.
 Một lược đồ (SQL Schema) được xác định bởi tên của nó,
và bao gồm một tên xác thực cho biết người dùng nào sở
hữu lược đồ cũng như như mơ tả của các thành phần
trong lược đồ đó.
 Các thành phần của lược đồ bao gồm: bảng(tables), ràng
buộc(constrains), khung nhìn(views), vùng (domain) và
các cấu trúc mơ tả lược đồ
 1 Schema <=> 1 Database


Chương 2 - Lập trình và Quản trị người dùng trong SQL

5


Schema (tt)
Tạo lược đồ
CREATE SCHEMA Tên_lược_đồ

[AUTHORIZATION Tên_tác_giả]
[DEFAULT CHARACTER SET Tập_ký_tự]
[Danh sách các phần tử]

Xóa lược đồ
DROP SCHEMA Tên_lược_đồ [CASCADE|RESTRICT];
– Cascade: Xóa lược đồ + các phần tử của nó
– Restrict: Chỉ xóa nếu có đối tượng nào trong đó



Chương 2 - Lập trình và Quản trị người dùng trong SQL

6


Định nghĩa Database
Tạo database
CREATE DATABASE Tên_CSDL;
– Ví dụ:
CREATE DATABASE Quanlyphongmay;

Xóa database
DROP DATABASE Tên_CSDL;
– Ví dụ:
DROP DATABASE Quanlyphongmay;


Chương 2 - Lập trình và Quản trị người dùng trong SQL


7


Khung nhìn - View
Là một bảng tạm thời gồm 1 số thuộc tính từ
nhiều bảng khác nhau
Ý nghĩa:
– Truy cập đến dữ liệu dễ dàng
– An toàn dữ liệu



Chương 2 - Lập trình và Quản trị người dùng trong SQL

8


Khung nhìn – View (tt)
Tạo VIEW
CREATE VIEW Tên_khung_nhìn
[ trường 1, trường 2, … ] AS select_statement
[ WITH CHECK OPTION ];

Xóa VIEW
DROP VIEW Tên_khung_nhìn;



Chương 2 - Lập trình và Quản trị người dùng trong SQL


9


Ví dụ
Tạo view:
CREATE VIEW SV_Tinh
AS SELECT Hoten, Tentinh
FROM SV, Tinh
WHERE SV.Matinh = Tinh.Matinh
WITH CHECK OPTION;

Xóa view:
DROP VIEW SV_Tinh;



Chương 2 - Lập trình và Quản trị người dùng trong SQL

10


Định nghĩa bảng
 Tạo bảng

CREATE TABLE Tên_bảng (
Tên_thuộc_tính kiểu_dl [ràng_buộc DEFAULT giá trị],
Tên_thuộc_tính kiểu_dl [ràng_buộc DEFAULT giá trị], ..

[PRIMARY KEY (DS_thuộc_tính),
UNIQUE (DS_thuộc_tính),

FOREIGN KEY (Thuộc_tính) REFERENCES
Tên_bảng(Thuộc_tính) ON DELETE SET NULL |
SET DEFAULT ON UPDATE CASCADE] );


Chương 2 - Lập trình và Quản trị người dùng trong SQL

11


Định nghĩa bảng
 Kiểu dữ liệu: là một trong các kiểu của SQL hoặc miền do
người dùng định nghĩa
 Ràng buộc: NOT NULL
 DEFAULT giá trị: là giá trị mặc định được thiết lập cho
trường
 PRIMARY KEY (DS các trường): khóa chính
 UNIQUE (DS_thuộc_tính): thuộc tính có giá trị là duy nhất
 FOREIGN

KEY

(Thuộc_tính)

REFERENCES

Tên_bảng(Thuộc_tính)]: liên kết với bảng khác




Ví dụ




Định nghĩa bảng (tt)
 Xóa bảng:
– DROP TABLE Tên_bảng [CASCADE | RESTRICT];

 Sửa đổi cấu trúc bảng:
ALTER TABLE Tên_bảng (
[ALTER Tên_trường_cần_sửa Đặc trưng mới
[ADD Tên_trường_cần_thêm_mới
Đặc trưng]
[DROP Tên_trường cần xóa CASCADE|RESTRICT]
);



Chương 2 - Lập trình và Quản trị người dùng trong SQL

14


Ví dụ:
 Xóa 1 trường khỏi bảng

 Sửa giá trị mặc định cho 1 trường trong bảng

 Thay đổi 1 ràng buộc trong bảng




Chương 2 - Lập trình và Quản trị người dùng trong SQL

15


Các kiểu dữ liệu (tt)
Kiểu số:
– Số nguyên: BIGINT, INT , SMALLINT, TINYINT
– Số thực: FLOAT, REAL, DOUBLE
– Định dạng kiểu dữ liệu số có thể thực hiện bởi một
trong các cách:
• DECIMAL(i, j) hoặc
• DEC(i, j) hoặc
• NUMERIC(i, j)
trong đó, i (precision) là tổng các chữ số cịn j (scale) là
số chữ số thuộc phần thập phân. Trong trường hợp
khơng được khai báo tường minh thì j bằng khơng




Các kiểu dữ liệu (tt)
Kiểu ký tự:
– Độ dài cố định: CHAR(n), CHARACTER(n)
– Độ dài thay đổi: VARCHAR(n), CHAR VARYING(n),
CHARACTER VARYING(n)
– Trong đó: n là kích thước tối đa


Kiểu xâu bit:
– độ dài cố định – BIT(n)
– độ dài thay đổi – BIT VARYING(n).
– Trong đó: n là độ dài cực đại của xâu bít




Các kiểu dữ liệu (tt)
Kiểu ngày
– Có độ rộng là 10
– Các thành phần: YEAR, MONTH, DAY
– Kiểu định dạng điển hình là YYYY-MM-DD

Kiểu thời gian:
– Độ rộng ít nhất là 8
– Các thành phần là HOUR, MINUTE, SECOND.
– Kiểu định dạng điển hình là HH:MM:SS




Các kiểu dữ liệu
Kiểu TIME(i)
– i gọi là phần chính xác sau giây
– TIME được thêm vào (i + 1) ký tự vị trí, một dành cho
dấu ngăn cách và i vị trí dành cho phần thập phân của
giây.


Kiểu TIMESTAMP kết hợp cả hai kiểu DATE và
TIME cộng thêm sau vị trí để chỉ độ chính xác sau
giây.




Các kiểu dữ liệu
Kiểu dữ liệu khác liên quan đến DATE, TIME và
TIMESTAMP là INTERVAL. Kiểu giá trị này xác
định khoảng thời gian giữa hai mốc thời gian
tuyệt đối như DATE, TIME, TIMESTAMP




Định nghĩa miền giá trị
Tạo miền:
CREATE DOMAIN Tên_miền AS Mơ_Tả;
Ví dụ:
CREATE DOMAIN MyChar AS CHAR(9)
Sau câu lệnh này thì có thể dùng kiểu MyChar thay thế
cho CHAR(9).

 Xóa miền:
DROP DOMAIN Tên_miền;



Chương 2 - Lập trình và Quản trị người dùng trong SQL


21


Truy vấn
Cú pháp tổng quát:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
Có thể sử dụng toán tử UNION để kết hợp các
truy vấn lại thành 1 tập kết quả.



Các lệnh thao tác dữ liệu
 Chèn 1 bản ghi mới
 Cập nhật một số bản ghi đã có
 Xóa một số bản ghi đã có




Stored procedure (SP)
Là các chương trình được lưu trữ trong CSDL.
Được gọi thi hành khi có yêu cầu.
Thường được thiết kế để thi hành các luật ràng

buộc
Ích lợi của SP:





Tăng cường tính bảo mật
Giảm thời gian biên dịch
Giảm dung lượng truyền dữ liệu
Đơn giản trong bảo trì




Stored procedure (tt)
 Các loại SP:





System SP
Extended SP
Temporary SP
Custom SP

 SP người dùng gồm 3 loại:
– Trigger
– User sp

– Defined function




×