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

tổng hợp bài giảng cơ sở dữ liệu quan hệ

216 2,5K 1

Đ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 216
Dung lượng 2,16 MB

Nội dung

Giới thiệu SQL Server 2 Thực hiện các transaction processing, lưu trữ, phân tích và xây dựng các ứng dụng  Là một hệ quản trị cơ sở dữ liệu quan hệ  Quản lý kho dữ liệu đối với các t

Trang 1

Giảng viên: Ths Phạm Thị Lan Anh

Bộ môn: HTTT

Chương 1:

TỔNG QUAN SQL SERVER

Trang 2

Nội dung bài học

 SQL Server là gì

 SQL Server Integration

 SQL Server Database

 SQL Server Security

Trang 4

Giới thiệu SQL Server (1)

Online Transaction processing (OLTP) database và Online

Analytical processing (OLAP) database

Trang 5

Giới thiệu SQL Server (2)

 Thực hiện các transaction processing, lưu trữ, phân tích và xây dựng các ứng dụng

 Là một hệ quản trị cơ sở dữ liệu quan hệ

 Quản lý kho dữ liệu đối với các transaction và analysis

 Trả lời các request của client application

 Dùng Transact-SQL, XML, Multidimendional expression

(MDX) hoặc SQL distribute management Object (SQL – DMO) để gởi các request giữa client với SQL Server

Trang 6

 Relational Database Management System

 Duy trì các quan hệ giữa các dữ liệu trong database.

 Bảo đảm dữ liệu được lưu trữ đúng và hợp lệ theo các qui tắc đã đưa ra.

 Phục hồi tất cả các dữ liệu khi cần

Giới thiệu SQL Server (3)

Trang 7

 OLTP database:

 Dữ liệu được lưu trong các table có quan hệ ->

giảm dư thừa dữ liệu và tăng tốc độ cập nhật

 Cho phép một số lượng lớn user thực hiện các

Trang 8

 Client Application: là những chương trình mà Users

dùng để truy xuất dữ liệu trong DBMS Chúng sử

Trang 9

Client-Server components (1)

Trang 10

 Client-Server Architecture

 Client đóng vai trò business logic và presenting

data cho user Có thể chạy trên một hoặc nhiều máy hoặc chạy trên cùng máy với server

 SQL Server quản lý database và cấp phát tài

nguyên

Client-Server components (2)

Trang 11

Client-Server Communication

Trang 12

SQL Server Services (1)

Trang 14

SQL Server Services (3)

 SQLServerAgent Services

 Cảnh báo về trạng thái của một process ví dụ

như một công việc này đó được hoàn thành hoặc xãy ra lỗi.

 Tạo ra một công việc mới và lập thời khoá để tự

động hoá các nhiệm vụ.

 Gởi email hoặc khởi động một ứng dụng khác khi

một thông báo xãy ra.

Trang 15

SQL Server Services (4)

Microsoft Distributed Transaction

Coordinator (MS DTC)

 Cho phép các clients gom nhiều nguồn dữ liệu

khác nhau trong một transaction.

Microsoft Search

 là một full-text engine hoạt động như một dịch vụ

trong Windows 2000.

Trang 16

SQL Server Integration

 SQL Server tích hợp với các OS

 SQL Server tích hợp với các M_Server khác

Trang 17

SQL Server tích hợp với các OS

Trang 18

SQL Server tích hợp với…

Trang 19

SQL Server Database

 Các loại Databases

 Các đối tượng Database

 Tham chiếu đến đối tượng SQL Server

 Các table hệ thống (System Tables)

 ! Metadata Retrieval

Trang 20

Các loại Database (1)

Trang 21

Các loại Databases (2)

master: điều khiển các user databases và các hoạt động của SQL

Server cũng như toàn bộ các thông tin như user accounts, biến môi

trường và các system error messages

model: cung cấp một template/prototype database cho việc tạo mới

Trang 22

Database Objects (1)

Trang 23

Database Objects (2)

Object Mô tả

Table Bảng quan hệ chứa dữ liệu

Data type Kiểu dữ liệu

Constraint Các qui tắc để kiểm tra ràng buộc dữ liệu

Default Các giá trị mặc định nếu giá trị của một field

không được nhập vào Rule Các thông tin mà định nghĩa các giá trị hợp lệ

trong một field Index Là một cấu trúc lưu trữ nhằm truy xuất nhanh dữ

liệu

Trang 24

Database Objects (3)

Object Mô tả

View Là table ảo, đây là một cách để lấy dữ liệu từ các

table hoặc các view khác

procedure Là các thủ tục do programmer định nghĩa

Trigger Là một dạng đắc biệt của procedure nhưng được

thực hiện tự động khi user thay đổi dữ liệu trong table/view

Trang 25

Tham chiếu đến một đối tượng

 Tên đầy đủ:

server.database.owner.object

 Tên ngắn gọn

Được hiểu là server default, instance hiện

hành, database hiện hành và owner là user

name đang login

Trang 26

System Tables (1)

 System tables lưu trữ các thông tin về các

System và Database Objects

 Database Catalog lưu trữ Metadata về một

Database

 System Catalog lưu trữ Metadata về toàn bộ

hệ thống và tất cả các Databases

Trang 27

System tables (2)

Trang 28

Lấy dữ liệu MetaData(1)

Trang 29

Lấy dữ liệu MetaData(2)

 System Stored Procedure

Trang 30

SQL Server Security

Trang 31

Login Authentication

Trang 32

Database User Accounts and Roles

Trang 33

Việc kiểm tra quyền

Trang 34

Q&A

Trang 35

 Môn học: Hệ quản trị cơ sở dữ liệu

 Số tiết: 30 tiết LT (10 buổi)

 GV: Phạm Thị Lan Anh

Email: lananh020679@gmail.com

Lịch trực: chiều thứ 2, tại VPK

Trang 36

Bài 3: Thao tác trên table

Trang 37

Nội dung

 Tạo table bằng công cụ

 Tạo table bằng lệnh T-SQL

 Tạo mới dữ liệu bằng công cụ

 Tạo mới dữ liệu bằng lệnh T-SQL

 Sửa cấu trúc table

 Tóm tắt bài học

Trang 38

Tạo table bằng công cụ

 SqlServer Management Studio Express

Trang 40

 Định nghĩa các cột

< column_definition > ::= { column_name data_type }

Trang 41

 Arguments

 Table name: tên table

 Column name: tên field

computed_column_expression : biểu thức tính toán từ các

field trong cùng table cho field tính toán

 Default: giá trị mặc định cho cột

 Identity: Giá trị của cột sẽ được tự động tăng theo seed và inreament, chỉ dùng cho field kiểu số

http://msdn.microsoft.com/en-us/library/ms174979.aspx

Tạo bảng bằng lệnh T_SQL (3)

Trang 42

Tạo bảng bằng lệnh T_SQL (4)

Trang 43

< column_constraint > ::= [ CONSTRAINT constraint_name ] { [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED ]

[ WITH FILLFACTOR = fillfactor ]

[ON {filegroup | DEFAULT} ] ]

]

| [ [ FOREIGN KEY ]

REFERENCES ref_table [ ( ref_column ) ]

[ ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION } ]

[ NOT FOR REPLICATION ]

]

| CHECK [ NOT FOR REPLICATION ]

Tạo bảng bằng lệnh T_SQL (5)

Trang 44

< table_constraint > ::= [ CONSTRAINT constraint_name ]

{ [ { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ]

{ ( column [ ASC | DESC ] [ , n ] ) } [ WITH FILLFACTOR = fillfactor ] [ ON { filegroup | DEFAULT } ]

]

| FOREIGN KEY

[ ( column [ , n ] ) ] REFERENCES ref_table [ ( ref_column [ , n ] ) ]

[ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]

| CHECK [ NOT FOR REPLICATION ]

( search_conditions )

Tạo bảng bằng lệnh T_SQL (5)

Trang 45

Tạo mới dữ liệu bằng công cụ

 SqlServer Management Studio Express

Trang 46

Tạo mới dữ liệu bằng lệnh T-SQL

VALUES (value1, value2, value3, )

Hoặc

column3, )

Trang 47

Sửa cấu trúc table

Trang 48

Xoá table

DROP TABLE table_name

Không thể xoá một table mà được tham chiếu (referenced) bởi một ràng buộc

FOREIGN KEY constraint Ràng buộc

FOREIGN KEY hoặc table tham chiếu phải được xoá trước

Trang 49

Tóm tắt bài học

 Chúng ta có thể quản lý table bằng công cụ

Enterprise Manager hoặc bằng các lệnh SQL

Transact- Để tạo table bằng T-SQL, ta dùng lệnh create table

 Để sữa cấu trúc table bằng T-SQL, ta dùng lệnh alter table

 Để xoá table bằng T-SQL, ta dùng lệnh drop table

Trang 50

Bài tập

Table: KHACHHANG

Trang 51

 Tạo table MonHoc có 2 fields:

 MaMH kiểu chuỗi 10 ký tự, khoá chính

 TenMH kiểu chuỗi 50 ký tự, not null

 Table HocKy có 2 fields:

 MaHK, số tự động tăng từ 1, khoá chính

 TenHK kiểu chuỗi 20 ký tự

 Table MonHoc_HocKy

 MaMH kiểu chuỗi 10 ký tự tham chiếu từ table MonHoc

 MaHK, số tham chiếu từ table HocKy

 Khoá chính là 2 field MaMH và MaHK

Trang 52

 Thêm cột số tiết kiểu số vào table môn học

Trang 53

CÁC LỆNH SQL

Trang 54

Nội dung bài học

 Lệnh tạo các record: Insert

 Lệnh truy vấn dữ liệu: select

 Lệnh cập nhật dữ liệu: Update

 Lệnh xoá dữ liệu: Delete

 Bài tập

Trang 55

Lệnh tạo các record: Insert (1)

 Tạo một record với đầy đủ giá trị cho các

fields:

INSERT INTO table_name VALUES (value1,

value2, )

 Chỉ định các field cụ thể:

INSERT INTO table_name (column1,

column2, ) VALUES (value1, value2, )

Trang 56

Lệnh tạo các record: Insert (2)

 Chèn dữ liệu vào table từ lệnh select của từ một hoặc nhiều table hoặc view

INSERT INTO TableName [(column1,

column2 )] select

Ví dụ:

INSERT INTO MyCustomers SELECT

CustomerID, CompanyName FROM

Customers WHERE country= ‘USA'

Trang 57

Lệnh truy vấn dữ liệu: select

 Cú pháp

 Các mệnh đề

Trang 59

Cú pháp lệnh select (2)

< query specification > ::=

SELECT [ ALL | DISTINCT ]

[TOP integer | TOP integer PERCENT }

[ WITH TIES ] ] < select_list >

Trang 60

Các mệnh đề trong câu lệnh SELECT

Trang 61

Mệnh đề select (1)

SELECT [ ALL | DISTINCT ]

[ TOP n [ PERCENT ] [ WITH TIES ] ]

< select_list >

< select_list > ::=

{ * | fieldName | expression as column_alias [, n]

Trang 62

Mệnh đề select (2)

 Tham số trong mệnh đề select

ALL: chỉ định rằng tất cả các dòng trùng nhau có thể xuất

hiện trong tập record kết quả Default là ALL.

DISTINCT: Khi có nhiều hơn hai dòng trùng nhau, chi hiển

thị một dòng

TOP n [PERCENT]: n dòng đầu tiên được xuất ra n nằm

trong khoảng 0 -> 4294967295 Nếu có PERCENT, thì n

phải nằm trong khoảng từ 0 đến 100.

WITH TIES: Chỉ định rằng kết quả các record trả về có thể

nhiều hơn n dòng bằng cách thêm vào các dòng có cùng giá trị trong cột order by (bắt buộc phải có order by)

Trang 64

Mệnh đề FROM(2)

derived_table: là một subquery trả về các record trong

database

 INNER: lấy ra tất cả các cập dòng so trùng (join type default)

 FULL [OUTER]: lấy luôn tất cả các record của bảng hoặc trái hoặc phải mà không tìm thấy trong điều kiện join và giá trị

không tìm thấy sẽ được điều vào là null.

 LEFT [OUTER]: lấy luôn tất cả các record của bảng trái mà không tìm thấy trong điều kiện join và giá trị không tìm thấy sẽ được điều vào là null.

 RIGHT [OUTER]: lấy luôn tất cả các record của bảng phải

mà không tìm thấy trong điều kiện join và giá trị không tìm

Trang 65

< predicate > ::=

{ expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }

Trang 66

| FREETEXT ( { column | * } , 'freetext_string' )

| expression [ NOT ] IN ( subquery | expression [ , n ] )

| expression { = | < > | ! = | > | > = | ! > | < | < = | ! < }

{ ALL | SOME | ANY} ( subquery )

| EXISTS ( subquery )

}

Trang 69

Lệnh xoá dữ liệu: Delete

DELETE [FROM] { table_name [ n ])| view_name} [ WHERE { < search_condition >}]

Trang 71

tiền cho các order details có số lượng >=100:

UPDATE [Order Details] SET discount= quatity*price * 0.1 WHERE (quatity>= 100)

Trang 72

DELETE FROM authors WHERE au_lname = 'McBadden'

 Xóa các titleauthor c ó điều kiện

USE pubs

DELETE FROM titleauthor

WHERE title_id IN

Trang 73

Áp dụng

 Xoá các hoá đơn của các khách hàng có địa chỉ là TAN BINH

Trang 74

View Manager

Trang 75

Nội dung bài học

 Giới thiệu View

 Lợi ích của View

 Định nghĩa view

Trang 76

Giới thiệu view (1)

Trang 77

Giới thiệu view (2)

Trang 78

Giới thiệu view (3)

 View là một table ảo

 Dùng để lưu trữ một truy vấn được định trước được xem là một đối tượng trong database.

Các table tham gia truy vấn được gọi là base table:

 Dữ liệu trong view được lấy từ các bảng

 Là sự kết hợp từ một hoặc nhiều bảng

 Là sự quan hệ giữa một hoặc nhiều bảng

 Có thể chứa các tính toán

 Có thể kết hợp giữa các bảng và các view khác

Trang 79

Lợi ích của view

 Tập trung vào dữ liệu đang cần

 Che những phần dữ liệu chưa cần dùng trong database

 Đơn giản hoá việc quản lý quyền user

 Cải thiện việc thực thi

 Tổ chức lại dữ liệu để xuất ra cho các ứng dụng bên ngoài

Trang 80

Định nghĩa view

 Tạo view

 Thay đổi view, Xoá view

 Ví dụ về tạo view

Trang 82

Tạo View(2)

 select statement: là câu lệnh select query lấy dữ liệu từ 1

hoặc nhiều table hoặc view khác

 WITH CHECK OPTION: Bắt buộc các lệnh thay đổi dữ liệu dựa trên view phải thỏa điều kiện định nghĩa view

 WITH ENCRYPTION: Mã hoá lệnh tạo view.

 SCHEMABINDING: ràng buộc view vào schema Khi đó, ta không thể xoá các table hoặc các view là cơ sở của view khi view này còn tồn tại

 View_METADATA: chỉ định rằng SQL Server sẽ trả về cho DBLIB, ODBC và OLE DB APIs những “metadata information” của view bao gồm các thông tin như tên các base table, các column, …

Trang 83

Tạo View(3)

 Một số hạn chế trong select statement

COMPUTE BY

TOP n

 Không thể chứa các table tạm

 Có tối đa 1024 cột

Trang 84

Thay đổi/xóa view

Sửa cấu trúc view:

ALTER VIEW <view_name> [(column [,…n])]

[WITH <view_attribute>[,…n] AS

Trang 85

Lưu ý

 Tên view lưu trữ trong sysobjects table, tên cột của view được lưu trữ trong syscolumns, text dùng để tạo

ra view lưu trong syscomments table

 Để tạo view, ta phải có quyền create view và quyền select table trong các table cơ sở

Trang 86

Bài tập minh họa (1)

 Loai(MaLoai, TenLoai)

 Tạo View cho biết: “mã sản phẩm, tên sản phẩm, tổng số lượng xuất của từng sản phẩm trong năm 2005” Lấy dữ liệu từ View này sắp xếp tăng dần theo tên sản phẩm.

Trang 87

Bài tập minh họa (2)

có địa chỉ không ở Tân Bình

nhiêu khách hàng.

Trang 88

Bài tập minh họa (3)

 Tạo view V5 đếm xem có bao nhiêu mặt

hàng trong một hoá đơn (MAHD, NGAY, MAKH, SLMH)

 Tạo view V6 lấy ra hoá đơn có số lượng

mặt hàng lớn nhất (MAHD, NGAY, MAKH, SLMH)

 Tạo view V7: Lấy ra danh sách các khách

hàng có hoá đơn trong năm 1996

Trang 89

Ngôn ngữ lập trình

Transaction – SQL

Trang 90

Nội dung bài học

 Enterprise Application Architechter

 Biến và các kiểu dữ liệu

Trang 91

Enterprise Application Architecture

 Xác định các lớp logical (Logical Layers)

 Thiết kế các lớp vật lý (Physical Layers)

 Truy xuất dữ liệu

Trang 92

Xác định các mức Logic (1)

Trang 93

Xác định các mức Logic (2)

 Data presentation Layer

 Được xem là user service and cho phép user xem

và thao tác lên data: web browser and các Microsoft Windows® applications

 Sử dụng các service mà application logic layer

cung cấp

Trang 94

Xác định các mức Logic (3)

Application Logic Layer

 Chứa application logic, định nghĩa các rules và processes giúp cho user không cần truy xuất trực tiếp vào database

 Clients kết nối vào business service để kết nối

vào data server Business service là các built components hoặc integrated applications và services, ví dụ như Web services

custom- Application logic layer chứa các components để tạo thành transaction services, messaging

services, hoặc object và connection management services.

Trang 95

Xác định các mức Logic (3)

Data Services Layer

 Data services bao gồm data access logic và data storage

quản lý data traffic và integrity trên the database server.

Trang 96

Thiết kế các lớp vật lý

Trang 97

Truy xuất dữ liệu

Trang 98

Biến và các kiểu dữ liệu

 Khai báo biến

 Kiểu dữ liệu

Trang 99

Khai báo biến

Dùng từ khoá declare để khai báo biến

DECLARE {@local_variable data_type} [, n]

Gán giá trị cho biến

SET @local_variable_name = expression

Trang 100

Ví dụ

DECLARE @vLastName char(20),

@vFirstName varchar(11)

SET @vLastName = 'Dodsworth‘

SELECT @vFirstName = FirstName

FROM Northwind Employees

WHERE LastName = @vLastName

PRINT @vFirstName + ' ' + @vLastName

Trang 101

 Bit: 1 hoặc 0 value.

decimal and numeric

 Decimal từ -10^38+1->10^38 –1

Numeric: giống decimal.

money and smallmoney

Trang 102

 Char : Fixed-length non-Unicode character, <= 8,000 ký tự

 Varchar: Variable-length non-Unicode , <= 8,000 ký tự

 Text: Variable-length non-Unicode <=2^31 - 1 (2,147,483,647) ký tự

Unicode Character Strings

 nchar Fixed-length Unicode , <=4,000 characters

 nvarcharVariable-length Unicode, <=4,000 characters

 Ntext Variable-length Unicode <= 2^30 - 1 (1,073,741,823)

characters.

Other Data Type

 Cursor : là một tham chiếu đến một cursor.

M text, ntext, ho image

Trang 103

Toán tử

 Các loại toán tử

 Thứ tự ưu tiên các toán tử

Trang 105

Thứ tự ưu tiên các toán tử

Trang 106

 Phân loại hàm

 Các hàm thường dùng

Trang 108

Configuration Trả về các thông tin về configuration

Cursor Trả về các thông tin về Cursor

DateTime Hàm tác động lên giá trị dateTime nhập vào và

trả về một giá trị là string, numeric, hoặc datetime Mathematical Hàm số học

Metadata Thông tin về database

Ngày đăng: 23/10/2014, 17:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w