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

Bài giảng Hệ quản trị cơ sở dữ liệu: Lập trình trên SQL Server - TS. Lại Hiền Phương

123 75 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 123
Dung lượng 2,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Hệ quản trị cơ sở dữ liệu: Lập trình trên SQL Server cung cấp cho người học các kiến thức: Các kiểu dữ liệu trong SQL Server, cơ sở dữ liệu trong SQL Server, bảng trong SQL Server,... Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

Lập trình trên SQL Server

TS LẠI HIỀN PHƯƠNG

EMAIL: LHPHUONG@TLU.EDU.VN

Trang 2

Nội dung

Các kiểu dữ liệu trong SQL Server

Cơ sở dữ liệu trong SQL Server

Bảng trong SQL Server

Các hàm trong SQL Server

Câu lệnh điều khiển

Thủ tục và hàm người dùng

Trang 3

Các kiểu dữ liệu trong SQL Server

Trang 4

Giới thiệu chung

 Kiểu dữ liệu (Data type) quy định về cấu trúc, miền giá trị của dữ liệu có thể nhập vào và tập các phép toán/toán tử có thể tác

động lên miền giá trị đó

 Trong SQL, kiểu dữ liệu quyết định dạng dữ liệu của từng Cột

(thuộc tính dữ liệu) cũng như kích thước sử dụng trong vùng nhớ của thuộc tính đó.

Cần xác định kiểu dữ liệu thích hợp cho từng thuộc tính dữ liệu

để đảm bảo tối ưu bộ nhớ trong quá trình sử dụng

 Ví dụ:

 thuộc tính « Ngày Sinh » cần kiểu dữ liệu ngày tháng

 Thuộc tính « Họ Tên » cần kiểu dữ liệu dạng xâu ký tự

Trang 5

Danh sách các kiểu dữ liệu trong SQL Server

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

> Các kiểu dữ liệu dạng số nguyên

Int 4 bytes từ-2,147,483,648đến +2,147,483,647 SmallInt 2 bytes từ -32768 đến +32767

TinyInt 1 byte từ 0 đến 255

Bit 1 byte Nhận giá trị 0, 1 hoặc Null

> Các kiểu dữ liệu dạng số thập phân

Decimal,

Numeric

17bytes từ -10 ^38 đến +10 ^38

> Các kiểu dữ liệu dạng số thực

Float 8 bytes từ -1.79E+308 đến +1.79E+308

Real 4 bytes từ -3.40E+38 đến +3.40E+38

Trang 6

Danh sách các kiểu dữ liệu trong SQL Server (tiếp)

> Các kiểu dữ liệu dạng chuỗi có độ dài cố định

Char(N) N bytes Kiểu ký tự, cấp phát tĩnh N ô nhớ

Từ 1 đến 8000 ký tự, mỗi ký tự là một byte

> Các kiểu dữ liệu dạng chuỗi có độ dài biến đổi

VarChar(N) N bytes Kiểu ký tự, cấp phát động không vượt quá N ô nhớ

Từ 1 đến 8000 ký tự, mỗi ký tự là 1 byte Text Kiểu văn bản, chuỗi ký tự, cấp phát động theo đô dài

chuỗi ký tự nhập vào

> Các kiểu dữ liệu dạng chuỗi dùng font chữ Unicode

Nchar(N) 2*N bytes Kiểu ký tự, cấp phát tĩnh N ký tự

Từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes

Trang 7

Danh sách các kiểu dữ liệu trong SQL Server (tiếp)

> Các kiểu dữ liệu dạng tiền tệ

Money 8 bytes từ -922,337,203,685,477.5808 đến

+922,337,203,685,477.5807 SmallMoney 4 bytes từ -214,748.3648 đến + 214,748.3647

> Các kiểu dữ liệu dạng ngày và giờ

DateTime 8 bytes từ01/01/1753đến31/12/9999

SmallDateTime 4 bytes từ01/01/1900đến06/06/2079

> Các kiểu dữ liệu dạng chuỗi nhị phân (Binary String)

Binary N bytes từ 1 đến 8000 bytes

VarBinary N bytes từ 1 đến 8000 bytes

Image N bytes từ 1 đến 2,147,483,647 bytes

Trang 8

Cơ sở dữ liệu trong SQL

Server

Trang 9

Giới thiệu chung

SQL Server quản lý trực tiếp các CSDL, mỗi CSDL SQL Server sẽ

quản lý các cấu trúc vật lý của nó

Mỗi Server quản lý một danh sách các CSDL, tên các CSDL là duy

nhất, không trùng nhau.

 Đặc điểm của việc quản trị CSDL:

 Để khai thác CSDL, client phải kết nối đến Server quản trị CSDL đó

 Chỉ khai thác các CSDL có trong server

 Không có các phương thức mở CSDL trực tiếp từ tệp tin

 Client chỉ thực hiện khai thác theo quy định đã định sẵn trong CSDL

Trang 10

Cấu trúc CSDL trong SQL Server

 Về mặt lôgic, CSDL gồm các table, view và các đối tượng

Về mặt vật lý, CSDL được lưu trữ trên 2 hay nhiều tệp tin

Trang 11

Phần nhật ký:

 1 transaction log file (*.ldf): file ghi lại tất cả những thay đổi

diễn ra trong 1 CSDL, chứa đầy đủ những thông tin để quay lui, backup hay phục hồi dữ liệu khi cần

Trang 12

Các loại CSDL trong SQL Server

Có 3 kiểu CSDL trong SQL Server

 CSDL hệ thống (system databases): master, model, tempdb,msdl

 CSDL mẫu: pubs, northwind

 CSDL do người dùng định nghĩa (user databases)

Trang 13

Các CSDL hệ thống

Master: Chứa tất cả thông tin cấp hệ thống

(system-level information) bao gồm thông tin về các CSDL

trong hệ thống như vị tri các data files, các login

account, các thiết lập cấu hình hệ thống của SQL

Server

Tempdb: chứa tất cả các table hay stored procedure

được tạo ra tạm thời trong quá trình làm việc bởi user hay SQL Server engine Các table hay stored

procedure này sẽ biến mất khi ta khởi động lại SQL

Server hay khi ta disconnect

Trang 14

Các CSDL hệ thống (tiếp)

Model: CSDL này đóng vai trò như một bảng mẫu

(template) cho các CSDL khác Nghĩa là khi một CSDL của người dùng được tạo ra thì SQL Server sẽ copy

toàn bộ các đối tượng hệ thống (tables, stored

procedures,…) từ CSDL Model sang CSDL người dùngvừa mới tạo

Msdb: được sử dụng cho SQL Server Agent để lập lịch

các công việc và các cảnh báo (schedule alerts and

Trang 15

Các CSDL hệ thống (tiếp)

 Tập tin của các CSDL hệ thống như sau

Trang 16

Cấu trúc vật lý của CSDL

SQL Server quản lý tập tin dữ liệu của CSDL ở dạng vật lý theo

trang (page) và phân đoạn (extent)

Trang 17

Cấu trúc vật lý của CSDL (tiếp)

 Trang (Page):

 Chỉ phần trang với các tập tin dữ

liệu; các bản ghi được ghi lại liên tục,

không phân trang đối với các tập tin

nhật ký (*.ldf)

 Mỗi page có kích thước 8KB

 Dữ liệu trong một trang sẽ bắt đầu

lưu trữ sau phần thông tin Header,

lưu trữ liên tiếp, mỗi hàng có kích

thước tối đa 8060 byte.

 Dữ liệu trong SQL Server được lưu

trữ trên đĩa và tạo chỉ mục Index

theo cấu trúc B-tree Plus

Trang 18

Cấu trúc vật lý của CSDL (tiếp)

Phân đoạn (Extent):

 Extent là đơn vị dùng chứa các table và index, mỗi extent có 8

page hay 64KB.

 SQL Server có hai kiểu extent:

 Uniform extent: chỉ dùng lưu trữ dữ liệu cho 1 đối tượng, 1 bảng

 Mixed extent: dùng để lưu trữ dữ liệu cho nhiều bảng trên cùng 1 extent

Trang 19

Quy trình thao tác dữ liệu

Trang 20

Cấu trúc lôgic của CSDL SQL Server

Hầu như mọi thứ trong SQL Server được tổ chức thành

những đối tượng (objects) ví dụ như tables, views, stored

procedures, indexes, constraints,…

Những system objects trong SQL Server thường có bắt đầu

bằng chữ sys hay sp

Trang 21

Cấu trúc lôgic của CSDL SQL Server (tiếp)

Một số system objects thường dùng:

System Stored Procedure Ứng dụng

Sp_help [‘object’] Cung cấp thông tin về một database

object (table, view…) hay một data type.

Sp_helpdb [‘database’] Cung cấp thông tin về một database cụ thể nào

đó.

Sp_monitor Cho biết độ bận rộn của SQL Server

Sp_spaceused [‘object’, ‘updateusage’ ] Cung cấp thông tin về các khoảng trống đã

được sử dụng cho một object nào đó Sp_who [‘login’] Cho biết thông tin về một SQL Server user

Trang 22

Cấu trúc lôgic của CSDL SQL Server (tiếp)

 Ví dụ:

 Sp_helpdb ‘Northwind’ sẽ cho thông tin về CSDL Northwind

Trang 23

Quản lý CSDL trong SQL

Server

Trang 24

Tạo CSDL

 Để tạo CSDL, phải phân tích các thông tin liên quan

mục đích sử dụng CSDL cho bài toán:

Trang 25

Tạo CSDL bằng SQL Server

Management Studio

Mở SQL Server Management Studio

 Kết nối bằng tài khoản người quản trị CSDL

Kích chuột phải vào « Databases » và chọn « New

Database »

Nhập tên CSDL

Kích đúp chuột vào CSDL vừa tạo để mở hộp thoại chi tiết

CSDL

Ở thẻ General, ta có các thông tin chung về CSDL

Kích chuột vào các thẻ và hộp thích hợp, thực hiện các thay

đổi và nhấn OK

Trang 26

Tạo CSDL bằng SQL Server

Management Studio (tiếp)

Trang 27

Tạo CSDL bằng SQL Server

Management Studio (tiếp)

Trang 28

Tạo CSDL bằng câu lệnh T-SQL

Trang 29

Tạo CSDL bằng câu lệnh T-SQL (tiếp)

Tên_CSDL: tên của CSDL

On Primary: mô tả primary file của CSDL

Name: tên primary file

File name: đường dẫn của primary file

Size: kích thước của primary file

MaxSize: kích thước lớn nhất của primary file

Filegrowth: chỉ định độ tăng nào được sử dụng đối với

việc tự động phát triển của primary file

Log On: mô tả file nhật ký của CSDL

Trang 30

Tạo CSDL bằng câu lệnh T-SQL (tiếp)

dụ: Tạo CSDL tên là QLSV dành ra 10MB lúc đầu

cho phần dữ liệu và 5MB cho phần nhật ký chuyển

tác Các tập tin có thể phát triển lên đến 50 MB vớiphần dữ liệu, 25 MB với phần nhật ký chuyển tác Cácfile được lưu trữ trong D:\HQTCSDL\ThucHanh

Trang 31

Tạo CSDL bằng câu lệnh T-SQL (tiếp)

Trang 32

Xóa CSDL

Trong Database, kích chuột phải vào CSDL muốn xóa rồi

Trang 33

Sửa tham số CSDL

Trong Database, kích chuột phải vào CSDL muốn sửa rồi

Trang 34

Sửa tham số CSDL (tiếp)

Trang 35

Đổi tên CSDL

Cú pháp 1

Cú pháp 2: Thực thi thủ tục lưu trú hệ thống sp_renamedb để

đổi tên CSDL

Chú ý: muốn đổi tên CSDL, phải tắt hết các ứng dụng, các cửa sổ

lệnh, view… hiện thời đang truy cập vào CSDL

Ví dụ: Đổi tên CSDL QLSV thành QLSV_new

sp_renamedb ‘oldName’, ’newName’

Trang 36

Đổi tên CSDL (tiếp)

Cú pháp 1:

Cú pháp 2:

Trang 37

Hiệu chỉnh thuộc tính của tập tin CSDL

Trang 38

Hiệu chỉnh thuộc tính của tập tin CSDL

 Ví dụ 1: Tăng kích thước của tập tin dữ liệu của CSDL QLSV lên 60MB

CSDL QLSV

Trang 39

Hiệu chỉnh thuộc tính của tập tin CSDL

 Ví dụ 1: Tăng kích thước của tập tin dữ liệu của CSDL QLSV lên 60MB

Cú pháp:

Thực hiện:

Trang 40

Hiệu chỉnh thuộc tính của tập tin CSDL

CSDL QLSV

Cú pháp:

Thực hiện:

Trang 41

Hiệu chỉnh thuộc tính của tập tin CSDL

Cú pháp giảm kích thước tập tin của CSDL

Ví dụ: Giảm kích thước tập tin dữ liệu của CSDL

QLSV xuông còn 20MB

Trang 42

Bổ sung thêm tập tin dữ liệu và tập tin nhật ký cho CSDL

Cú pháp

Trang 43

Bổ sung thêm tập tin dữ liệu và tập tin nhật ký cho CSDL

Ví dụ: Thêm tập tin secondary vào CSDL QLSV

Trang 44

Gỡ bỏ một tập tin khỏi CSDL

Cú pháp

Chú ý: tập tin phải trống trước khi được gỡ bỏ.

Sử dụng DBCC SHRINKFILE với tùy chọn EMPTYFILE

để làm trống tập tin

Trang 45

Gỡ bỏ một tập tin khỏi CSDL (tiếp)

Ví dụ: gỡ bỏ tập tin QLSV_data khỏi CSDL QLSV

Trang 46

Tạo bản chụp CSDL (Database

snapshots)

của CSDL SQL Server.

người dùng thực hiện một thao tác nhầm lẫn với CSDL gốc, CSDL gốc có thể phục hồi về trạng thái trước đó khi mà bản chụp đã được tạo.

Trang 47

Tạo bản chụp CSDL (Database

snapshots)

Cú pháp:

Trang 48

Bảng trong SQL Server

Trang 49

Giới thiệu chung

Bảng (Table) là nơi lưu trữ dữ liệu thật sự của CSDL Dữ

liệu được lưu trữ trên bảng theo dạng hàng, cột:

 Mỗi cột tương ứng với một thuộc tính (attribute) của bảng

 Mỗi hàng tương ứng với một bản ghi (record) của bảng

Mỗi CSDL trong SQL Server có thể lưu được 2 tỷ bảng

Mỗi bảng có thể có tối đa 1024 cột

Trang 50

Giới thiệu chung (tiếp)

Số lượng các hàng và tổng kích thước của bảng được

giới hạn bởi dung lượng cho phép của kho lưu trữ

Kích thước tối đa cho mỗi hàng là 8060 bytes

Mỗi bảng có thể chứa đến 249 chỉ mục loại

nonclustered và chỉ mục loại clustered

Trang 51

Các bất thường khi cập nhật dữ liệu

Ví dụ: với CSDL là gồm 1 bảng hóa đơn (INVOICE) cho

khách hàng như sau:

Trang 52

Ví dụ: Bảng hóa đơn (INVOICE) như sau:

Các bất thường khi cập nhật dữ liệu (tiếp)

Trang 53

Các bất thường khi cập nhật dữ liệu (tiếp)

Bất thường khi thêm dữ liệu:

 Không thể thêm một khách hàng vào CSDL nếu khách hàng

không mua một mặt hàng nào

Bất thường khi cập nhật dữ liệu:

 Muốn thay đổi địa chỉ của khách hàng, phải thay đổi trên tất cả các hóa đơn của khách hàng đó bởi vì địa chỉ của khách hàng lưu trữ dư thừa trong tất cả các hóa đơn của khách hàng

Bất thường khi xóa dữ liệu:

 Nếu xóa hóa đơn cuối cùng của khách hàng thì thông tin về

khách hàng đó bị mất

Trang 54

Chuẩn hóa CSDL

Trong thiết kế CSDL, việc tuân thủ ngặt nghèo những

chuẩn tắc chuẩn hóa CSDL giúp cho việc quản trị dữ liệu

có hiệu quả, khắc phục dư thừa dữ liệu, loại bỏ các bấtthường khi cập nhật CSDL

Cần có các bước chuẩn hóa dữ liệu từ một CSDL chưa

chuẩn hóa sang chuẩn hóa:

 Dạng chưa chuẩn hóa (unnormalized form – UNF): quan hệ chưa

chuẩn hóa là quan hệ chứa các bộ dữ liệu bị lặp lại giá trị.

Trang 55

Chuẩn hóa CSDL (tiếp)

Chuẩn hóa là quá trình phân rã lược đồ quan hệ nhằm

đảm bảo các lược đồ quan hệ thỏa mãn hai tính chất

Trang 56

Dạng chuẩn 1 (1NF)

Lược đồ quan hệ R của một CSDL được gọi là 1NF nếu

tất cả các thuộc tính của R thỏa mãn cả 3 điều kiện sau:

 Là nguyên tố (không là danh sách các giá trị phức hợp)

 Giá trị của các thuộc tính trên các bộ là đơn vị, không chứa

nhóm lặp

 Không có một thuộc tính nào mà giá trị có thể tính toán được

từ một số thuộc tính khác

Trang 57

Dạng chuẩn 1 (1NF) (tiếp)

Chuyển các thuộc tính không nguyên tố thành nguyên

tố

Trang 58

Dạng chuẩn 1 (1NF) (tiếp)

Loại bỏ các thuộc tính lặp hoặc đa trị:

 tách các thuộc tính lặp/đa trị sang bảng mới, khóa của bảng mới là khóa

của bảng ban đầu và khóa của các thuộc tính lặp/đa trị

Địa điểm: là thuộc tính đa trị

Trang 59

Dạng chuẩn 1 (1NF) (tiếp)

Loại bỏ các thuộc tính lặp hoặc đa trị:

Thuộc tính lặp là {Tênnhânviên, Sốgiờ}

Trang 60

Dạng chuẩn 1 (1NF) (tiếp)

Bảng INVOICE được viết thành quan hệ sau (thêm

InvoiceNumber làm thuộc tính khóa cho bảng Invoice)

R(InvoiceNumber, Customer Number, Name, Address, City, State, Zip Code, Phone, Terms, Ship Via, Order Date, {Product Number, Description, Quantity, Unit Price, Extended Amount}, Total Order Amount )

Quan hệ được tách thành

INVOICE(InvoiceNumber, Customer Number, Name, Address, City, State, Zip Code, Phone, Terms, Ship Via, Order Date, Total Order Amount)

Trang 61

Dạng chuẩn 2 (2NF)

Quan hệ R được gọi là đạt dạng chuẩn 2 nếu đã là 1NF

và tất cả các thuộc tính không khóa đều phụ thuộc hàmđầy đủ vào khóa:

 Thuộc tính không khóa là thuộc tính không tham gia vào bất kỳ khóa nào

Chuẩn hóa từ 1NF – 2NF:

 Tách các thuộc tính không khóa phụ thuộc vào một bộ phận

của khóa chính thành một bảng riêng với khóa chính là bộ

phận khóa mà chúng phụ thuộc vào

Trang 62

Dạng chuẩn 2 (2NF) (Tiếp)

Ví dụ:

Trang 63

Dạng chuẩn 2 (2NF) (Tiếp)

Ví dụ: quan hệ trên

được tách thành

Trang 65

Dạng chuẩn 2 (2NF) (tiếp)

Ta thấy quan hệ R2-INVOICE LINE ITEM có phụ thuộc hàm

vào môt phần khóa

{Product Number} -> {Description, Unit Price}

Quan hệ này được tách thành 2 quan hệ

PRODUCT (Product Number, Description, Unit Price )

R2-INVOICE LINE ITEM (InvoiceNumber, Product Number, Quantity, Extended Amount )

Trang 66

Dạng chuẩn 3 (3NF)

Quan hệ R được gọi là đạt dạng chuẩn 3 nếu thỏa mãn

các điều kiện sau:

 R phải đạt dạng chuẩn 2NF

 Mọi thuộc tính không khóa không phụ thuộc bắc cầu vào khóa

(tức là tất cả các thuộc tính phải được suy ra trực tiếp từ khóa)

Trang 67

Dạng chuẩn 3 (3NF) (tiếp)

Quy tắc chuẩn hóa về 3NF:

 Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi quan hệ và tách chúng thành một quan hệ riêng có khóa chính là thuộc tính bắc cầu

 Các thuộc tính còn lại lập thành 1 quan hệ có khóa chính là quan hệ ban đầu

HCM HN NT NT

HCM HN NT

01 01 03

𝐹𝐾𝐻 = {𝑀𝑆𝐾𝐻 → 𝑇Ê𝑁𝐾𝐻, 𝑇𝑃}

𝐹𝑉𝐶 = {𝑇𝑃 → 𝑃𝑉𝐶}

Trang 68

Dạng chuẩn 3 (3NF) (tiếp)

Trang 69

Dạng chuẩn 3 (3NF) (tiếp)

CSDL INVOICE ở dạng chuẩn 2NF

INVOICE(InvoiceNumber, Customer Number, Name, Address, City, State, Zip Code, Phone, Terms, Ship Via, Order Date, Total Order Amount)

PRODUCT (Product Number, Description, Unit Price )

INVOICE LINE ITEM (InvoiceNumber, Product Number, Quantity, Extended Amount )

Trang 70

Dạng chuẩn 3 (3NF) (tiếp)

Ta thấy quan hệ INVOICE có chứa thuộc tính bắc cầu

{Customer Number} -> {Name, Address, City, State, Zip Code, Phone}

Quan hệ này được tách thành 2 quan hệ

Customer(Customer Number, Name, Address, City, State, Zip Code, Phone)

INVOICE(InvoiceNumber, Customer Number, Terms, Ship Via, Order

Trang 71

Thiết kế bảng dữ liệu

Khi thiết kế bảng dữ liệu, cần xác định các thông tin sau:

 Các cột, kiểu dữ liệu tương ứng (và độ dài nếu cần thiết)

Cột nào cho phép giá trị NULL

Giá trị ngầm định (là giá trị mà khi chưa nhập vào nó nhận giá

trị này)

Các ràng buộc dữ liệu

Chỉ số Index, khóa chính, khóa ngoài

Trang 72

Ràng buộc dữ liệu

Bằng cách thiết lập các ràng buộc thông tin trên CSDL, dữ

liệu khi nhập vào CSDL sẽ được kiểm soát, độ tin cậy thôngtin sẽ được đảm bảo

Có 4 loại toàn vẹn dữ liệu:

Toàn vẹn thực thể (Entry integrity)

Toàn vẹn theo miền (Domain integrity)

Toàn vẹn dạng tham chiếu (Referential integrity)

Toàn vẹn do người dùng định nghĩa (User-defined integrity)

Trang 73

Ràng buộc dữ liệu (tiếp)

Toàn vẹn thực thể (Entity integrity): mỗi thực thể được xác

định theo một khóa, khi biết khóa ta hoàn toàn có thể xácđịnh được thực thể tương ứng Khóa như vậy coi là khóachính

Ví dụ: Bảng SinhVien(MaSV, HoTen, NgaySinh, DiaChi) có

MaSV là khóa chính.

Toàn vẹn theo miền (Domain integrity): là loại toàn vẹn có

hiệu ứng với các cột dữ liệu trong một phạm vi nào đó, ví

dụ kiểu dữ liệu, ràng buộc theo khóa check là các dạng củatoàn vẹn theo miền

 Ví dụ: Lương nhân viên phải lớn hơn lương tối thiểu

Ngày đăng: 15/05/2020, 22:10

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm