1. Trang chủ
  2. » Công Nghệ Thông Tin

bài 2 các đối tượng trong csdl

46 588 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

Định dạng
Số trang 46
Dung lượng 289,14 KB

Nội dung

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCMTRUNG TÂM TIN HỌC Khái niệm về cơ sở dữ liệu • Database dùng để − Chứa các bảng, bảng ảo, thủ tục nội,… − Mỗi database có một danh sách các người

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

SQL Server

Trang 2

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Các đối tượng trong CSDL

2

Trang 3

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Cơ sở dữ liệu của SQL

Server

Trang 4

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm về cơ sở dữ liệu

Database dùng để

− Chứa các bảng, bảng ảo, thủ tục nội,…

− Mỗi database có một danh sách các người dùng

Người dùng phải có quyền truy cập database

Có thể phân nhóm người dùng để cấp quyền

Tử phiên bản SQL Server 2000 hỗ trợ Application Role

Các database hệ thống

− Master, Model, Tempdb, msdb

Các database ví dụ

− AdventureWorks

Trang 5

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Một database bao gồm tối thiểu hai file

− .mdf: lưu trữ các đối tượng trong database như table, view, …

• Có thể bổ sung thêm các tập tin lưu trữ khác

• Tổ chức tốt các tập tin lưu trữ giúp tăng tốc độ xử lý

− .ldf: lưu trữ quá trình cập nhật/thay đổi dữ liệu

− Maximum file size

Các tập tin vật lý lưu trữ cơ sở dữ liệu

Trang 6

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Ví dụ lệnh tạo một database đơn giản

Trang 7

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Bảng dữ liệu (Table)

Trang 8

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm về bảng

Bảng dùng để lưu trữ các thông tin của một đối

tượng trong thực tế

− Gồm có các dòng và các cột

− Bảng trong CSDL thường có khoá chính (primary key)

− Các bảng thường liên hệ với nhau bằng các mối quan hệ

− Bảng được tạo trong các Schema (mặc định là schema dbo)

Bảng có thể có các ràng buộc (constraint),

trigger [Sẽ tìm hiểu kỹ trong các chương sau]

Trang 9

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Trang 10

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Giới thiệu các kiểu dữ liệu cơ sở

Loại Các kiểu dữ liệu

Numeric Integer int, bigint, smallint, tinyint

Exact decimal, numeric Approximat

e float, realMonetary money, smallmoney Date and time datetime, smalldatetime

Characte

r Non-Unicode char, varchar, varchar(max), text

Unicode nchar, nvarchar, nvarchar(max), ntext Binary binary, varbinary, varbinary(max)

Global identifier uniqueidentifier

Trang 11

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

bit 0 hoặc 1 hoặc null n byte -Tùy theo số cột kiểu bit trong 1 bảng

mà SQL Server tối ưu hóa lưu trữ đối với kiểu này theo cách 1  8  1 byte; 9  16  2 byte)

- Giá trị chuỗi TRUE và FALSE có thể được chuyển đổi tới 1 và 0

Trang 12

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Cách sử dụng các kiểu dữ liệu cơ sở

Kiểu số thập phân : Decimal và numeric:

decimal[ (p[ , s] )] và numeric[ (p[ , s] )] : Dùng cho các số mà độ

chính xác được cố định và có thứ tự Miền giá trị - 10 38 + 1 

10 38 - 1

• p (precision) : Chỉ định tổng số ký số (digits) tối đa có thể được lưu trữ (tính cho cả hai phía dấu chấm động) Giá trị này tuân thủ

từ 138, mặc định là 18.

s (scale) : Số ký số tối đa bên phải dấu chấm động (phần thập

phân) Giai chia này phải có một giá trị từ 0  p Giai chia chỉ có

thể được chỉ định nếu precision được chỉ định Mặc định là 0

• Kích thước lưu trữ tùy thuộc vào số ký số được chỉ định tại phần Precision

Trang 13

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Kiểu tiền tệ : money và smallmoney

Kiểu dữ liệu Miền giá trị Số byte lưu trữ

money - 922,337,203,685,477.5808 

922,337,203,685,477.5807

8 smallmoney - 214,748.3648 214,748.3647 4

Trang 14

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Kiểu số thực : float(n) và real

Kiểu dữ liệu Miền giá trị Số byte lưu trữ

float - 1.79E+308  -2.23E-308, 0

và 2.23E-308  1.79E+308

Phụ thuộc vào n

Mặc định n=53 real - 214,748.3648 214,748.3647 4

Giá trị n Số ký số Kích

thước 1-24 7 4 bytes 25-53 15 8 bytes

Trang 15

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Kiểu ngày giờ

− Sử dụng datetime để trình bày dữ liệu ngày giờ từ

Trang 16

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

non-Unicode và độ dài biến đổi

Mặc định n=1

Trang 17

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Unicode và độ dài biến đổi

Mặc định n=1

Trang 18

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Kiểu chuỗi ký tự

− text và ntext và image (Đây là các kiểu dữ liệu được Microsoft

khuyến cáo không nên sử dụng bởi lẻ trong tương lai nó sẽ bị loại

bỏ Thay thế vào đó là varchar(max), nvarchar(max), varbinary(max))

Kiểu dữ liệu Miền giá trị Ghi chú

text 2 31 - 1 non-Unicode và độ dài biến

đổi ntext 2 30 - 1 Unicode và độ dài biến đổi image 0–2 GB (16-byte

pointer)

Dữ liệu binary biến đổi từ 0

 2 31 - 1

Trang 19

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Kiểu chuỗi nhị phân

Kiểu dữ liệu Miền giá trị Kích thước Ghi chú

binary [ ( n ) ] n là giá trị từ 1 8000 n bytes Độ dài cố định

varbinary [ ( n | max) ] n có thể là giá trị từ 1

8000; max biểu thị rằng kích thước lưu trữ tối đa 2 GB

Độ dài biến đổi

Trang 20

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Các kiểu dữ liệu khác

− Cursor :

• kiểu dữ liệu cho khai báo biến hoặc khai báo tham số loại OUTPUT cho stored procedure chứa tham chiếu tới một cursor

• Column của table không thể được chỉ định với kiểu cursor

Trang 21

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌCCách sử dụng các kiểu dữ liệu cơ sở

Trang 22

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Cách sử dụng các kiểu dữ liệu cơ sở

uniqueidentifier

− Một column hoặc biến cục bộ kiểu dữ liệu uniqueidentifier

có thể được khởi tạo giá trị theo các cách sau:

• Sử dụng hàm hệ thống NEWID

Chuyển đổi từ một hằng chuỗi dạng

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, trong đó mỗi x là một ký số hexadecimal trong

miền 0-9 hoặc a-f Ví dụ, 00C04FC964FF là một giá trị uniqueidentifier hợp lệ.

6F9619FF-8B86-D011-B42D-− Khi tiến hành đồng bộ dữ liệu, sử dụng các column kiểu uniqueidentifier để bảo đảm rằng các dòng được nhận dạng duy nhất qua nhiều bản sao chép của table

Trang 23

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Cách sử dụng các kiểu dữ liệu cơ sở

− Là kiểu dữ liệu lưu trữ dữ liệu XML Bạn có thể lưu trữ

dữ liệu xml trong một column, hoặc biến kiểu xml

sql_variant

− Là kiểu dữ liệu lưu trữ các giá trị của nhiều kiểu dữ liệu khác nhau được SQL Server hỗ trợ , ngoại trừ text, ntext, image, timestamp và sql_variant

table

− Là kiểu dữ liệu đặc biệt có thể được sử dụng để lưu trữ tập kết quả cho việc xử lý ở thời điểm sau đó Kiểu table chủ yếu được sử dụng cho việc khai báo kiểu kết quả trả

Trang 24

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Tạo cấu trúc bảng đơn giản

CREATE TABLE Tên_schema.Tên_bảng

(

Tên_cột1 Kiểu_dữ_liệu [NOT NULL] ,

Tên_cột2 Kiểu_dữ_liệu [NOT NULL] [, ]

)

Từ khóa NOT NULL chỉ định không cho phép

dữ liệu tại cột bị bỏ trống

Trang 25

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Tạo cấu trúc bảng có cột định danh

CREATE TABLE Tên_bảng

(

Tên_cột1 Kiểu_dữ_liệu_số

IDENTITY [(Số_bắt_đầu, Chỉ_số_tăng)] ,

Tên_cột2 Kiểu_dữ_liệu [NOT NULL] [, ]

)

Kiểu dữ liệu số: dạng số nguyên (int, smallint, tinyint, numeric và

decimal)

− Với numeric và decimal thì phải chỉ định không lấy số lẻ.

Số bắt đầu: SQL Server sử dụng để cấp phát cho mẩu tin đầu tiên

Mặc định là 1.

Chỉ số tăng: số cộng lên để cấp phát cho những mẩu tin kế tiếp

Mặc định là 1.

Trang 26

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Thay đổi cấu trúc bảng

Dùng SSMS

− Nhanh, đơn giản

− Dùng giao diện, không dùng lệnh

Dùng script

− Phức tạp, phải thuộc cú pháp lệnh

− Cần thiết khi

Sử dụng lại nhiều lần để cập nhật cho CSDL trên máy khác

Cập nhật CSDL qua nhiều giai đoạn

Trang 27

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Thêm một cột mới trong bảng

ALTER TABLE Tên_bảng

ADD Tên_cột Kiểu_dữ_liệu [, ]

Tên cột: tên của cột mới được thêm vào bảng.

Kiểu dữ liệu: kiểu dữ liệu tương ứng của cột

mới

ALTER TABLE DONDH

ADD Ngaydknh DATETIME

Trang 28

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Hủy bỏ cột hiện có bên trong bảng

ALTER TABLE Tên_bảng

DROP COLUMN Tên_cột [, ]

Tên cột: tên cột sẽ bị hủy bỏ ra khỏi bảng

ALTER TABLE DONDH

DROP COLUMN Ngaydknh

Trang 29

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Sửa đổi kiểu dữ liệu của cột

ALTER TABLE Tên_bảng

ALTER COLUMN Tên_cột Kiểu_dữ_liệu_mới

ALTER TABLE VATTU

ALTER COLUMN Dvtinh VARCHAR(20)

Trang 30

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Đổi tên cột, tên bảng dữ liệu

EXEC sp_rename 'Tên_bảng[.Tên_cột]', 'Tên_mới'

[,'COLUMN']

EXEC: dùng để thực thi các thủ tục nội tại của SQL Server

Tên bảng: tên bảng sẽ đổi tên hoặc chứa tên cột muốn đổi tên

Tên cột: tên cột muốn đổi tên

Tên mới: tên mới của cột hoặc bảng sau khi đổi

COLUMN: sử dụng khi thay đổi tên cột

EXEC sp_rename 'NHACC.Tennhacc', 'Hotenncc', 'COLUMN‘

EXEC sp_rename 'NHACC', 'NHACCAP'

Trang 31

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Đối tượng Schema

Trang 32

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm

• Là khái niệm mới có trong SQL SERVER 2005

Có thể hiểu schema là một namespace đối với các đối

tượng database

• Một schema định nghĩa một ranh giới mà trong đó tất cả

các tên là duy nhất

• Bên trong một database, tên của schema là duy nhất 

luôn có tên với đường dẫn đầy đủ dạng

server.database.schema.object là duy nhất

Trang 33

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Giải quyết vấn đề tên đối tượng user làm việc

Nếu user có schema mặc định, SQL Server cố gắng

tìm đối tượng trong schema mặc định.

Nếu không tìm thấy đối tượng trong schema mặc định

của user hoặc user không có schema mặc định 

SQL Server cố gắng để tìm đối tượng trong schema

có tên dbo

Trang 34

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Trang 35

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Trang 36

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Kiểu dữ liệu do người dùng

định nghĩa (Alias Data Type)

Trang 37

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Trang 38

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Tạo kiểu dữ liệu người dùng định nghĩa

Trang 39

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Xóa kiểu dữ liệu người dùng định nghĩa

DROP TYPE Tên_kiểu_dl

DROP TYPE DiaChi

Trang 40

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Bảng ảo (Virtual table – View)

Trang 41

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Khái niệm về bảng ảo

Được xây dựng từ câu truy vấn SELECT để hiển thị dữ

liệu từ một hay nhiều bảng

− Tập hợp dữ liệu, thể hiện cùng một dữ liệu nhưng theo nhiều cách khác nhau

− Làm việc tương tự như một bảng nhưng không lưu trữ dữ liệu

− Cho phép thêm/xoá/sửa

− Bảo mật dữ liệu, bảo mật nội dung câu truy vấn dữ liệu

Một số hạn chế trong câu lệnh SELECT

− Order By

− Compute, Compute By

− …

Trang 42

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Tạo bảng ảo bằng SSMS

Đơn giản, công cụ tự động phát sinh câu lệnh

Có thể chuyển về dạng viết lệnh SQL

Trang 43

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Tạo mới bảng ảo bằng CREATE VIEW

• Tên các cột: sử dụng trong bảng ảo khi tham chiếu đến các cột

• WITH ENCRYPTION: mã hóa nội dung câu lệnh SELECT

• WITH CHECK OPTION: không cho cập nhật dữ liệu không thoả

điều kiện của mệnh đề WHERE trong câu lệnh SELECT

CREATE VIEW vw_DONDH_NHACC

AS

SELECT DONDH.*, NHACC.Diachi AS Diachi, NHACC.Tennhacc AS Hoten

CREATE VIEW Tên_bảng_ảo

Trang 44

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Xem và cập nhật dữ liệu bảng ảo

• Làm việc như một bảng thông thường

− Sử dụng câu SELECT để xem dữ liệu

Select * From vw_DonDH

• Sử dụng INSERT/UPDATE để cập nhật dữ liệu

− Chỉ có thể cập nhật vào một bảng

− Để INSERT dữ liệu vào bảng, bảng ảo phải thỏa mãn các yêu cầu

về khóa, ràng buộc khóa ngọai, các cột NOT NULL, các cột tính toán, order by, group by, distinct

• Sử dụng Delete để xoá dữ liệu

− Bảng ảo tạo từ hai hay nhiều bảng không thể xoá

• Có thể xây dựng các trigger trên bảng ảo (sẽ đề cập sau)

Trang 45

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Cập nhật dữ liệu qua bảng ảo sử

SQL Server cung cấp loại trigger INSTEAD OF

− Cơ chế tương tự như trigger thông thường

− Mở rộng khả năng cập nhật, tính toán dữ liệu, đặc biệt với bảng ảo

Trang 46

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC

Sửa đổi nội dung bảng ảo

ALTER VIEW Tên_bảng_ảo

[(Tên_các_cột)]

[WITH ENCRYPTION]

AS

Câu_lệnh_SELECT_mới

[WITH CHECK OPTION]

• Tương tự như xoá bảng rồi tạo lại

DROP VIEW Tên_bảng_ảo

Ngày đăng: 23/05/2014, 17:45

TỪ KHÓA LIÊN QUAN

w