9/10/2019
Chương 2
Xây dựng CSDL
Nội dung
1
CSDL trong SQL Server
2
Tạo và quản lý CSDL
3
Các kiểu dữ liệu
4
Tạo và quản lý bảng
5
6
Ràng buộc toàn vẹn đơn giản
Các thao tác trên dữ liệu
www.themegallery.com
1
9/10/2019
CSDL trong SQL Server
www.themegallery.com
CSDL trong SQL Server
Trong SQL server CSDL được chia thành 2 loại
CSDL của hệ thống
CSDL do người dùng tạo
www.themegallery.com
2
9/10/2019
CSDL trong SQL Server
Database
Schema
Attribute
Datatype
Primary key
Foreign key
Table
View
Role
Default
Constraint
User
Trigger
Rule
Function
Stored
procedure
www.themegallery.com
SQL server
2008
www.themegallery.com
3
9/10/2019
Nội dung
1
CSDL trong SQL Server
2
Tạo và quản lý CSDL
3
Các kiểu dữ liệu
4
Tạo và quản lý bảng
5
6
Ràng buộc toàn vẹn đơn giản
Các thao tác trên dữ liệu
www.themegallery.com
T-SQL language statements
SELECT
INSERT
UPDATE
DELETE
•
•
•
•
CREATE
ALTER
DROP
GRANT
REVOKE
DENY
BEGIN TRAN
COMMIT TRAN
ROLLBACK TRAN
Data Manipulation Language
Data Definition Language
Data Control Language
Transaction Control Language
www.themegallery.com
4
9/10/2019
Tạo CSDL
Tên logic của CSDL là gì?
Tên file vật lý của dữ liệu là gì?
Tên file log vật lý của dữ liệu là gì?
Kích thước file dữ liệu ban đầu?
Database
Bước tăng kích thước?
Kích thước tối đa của file dữ liệu?
www.themegallery.com
Tạo CSDL
Tên DB, không trùng,
tối đa 128 char
CREATE DATABASE database_name
[ ON [ [PRIMARY] < filespec > [ ,...n ] ]]
[ LOG ON { < filespec > [ ,...n ] } ]
< filespec > định nghĩa như sau
Danh sách file
DL nếu muốn
chỉ định cụ thể
Danh sách file log nếu
muốn chỉ định cụ thể
Tên file dùng trong môi
trường SQL Server
( [ Name = logical_file_name , ]
Tên thực sự của file
Filename = 'os_file_name'
(bao gồm đường dẫn)
[ , SIZE = size ]
[ , Maxsize = { max_size | UNLIMITED } ]
[ , Filegrowth = growth_increment ] ) [ ,...n ]
www.themegallery.com
5
9/10/2019
Tạo CSDL
CREATE DATABASE database_name
[ ON [ [PRIMARY] < filespec > [ ,...n ] ]]
[ LOG ON { < filespec > [ ,...n ] } ]
Kích thước ban đầu
cho các file dữ liệu.
Mặc định 3 MB, tối
thiểu 1 MB
< filespec > định nghĩa như sau
thước tối đa cho các
( [ Name = logical_file_name , ] Kích
file dữ liệu. Mặc định là vô
tận cho đến khi hết đĩa
Filename = 'os_file_name'
cứng.Tối thiểu 3MB
[ , SIZE = size ]
[ , Maxsize = { max_size | UNLIMITED } ]
[ , Filegrowth = growth_increment ] ) [ ,...n ]
www.themegallery.com
Bước tăng kích thước file. Tối thiểu 1 MB,
mặc định 10%. Giá trị phần trăm tính trên
kích thước hiện hành. Đvị mặc định là MB
Ví dụ
CREATE DATABASE QuanLyHangHoa
ON
PRIMARY
( NAME = Primary_File,
FILENAME = 'c:\program files\microsoft sql
server\mssql\data\archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Secondary_File_1,
FILENAME = 'c:\program files\microsoft sql
server\mssql\data\archdat2.ndf',
SIZE = 100MB,
Có giá trị : KB, TB, MB.
MAXSIZE = 200,
Mặc định là MB.
FILEGROWTH = 20)
www.themegallery.com
6
9/10/2019
Đường dẫn mặc định
Mặc định, các tập tin dữ liệu và log được
lưu trong thư mục
C:\Program Files\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
(SQL 2008)
C:\Program Files\Microsoft SQL
Server\MSSQL9.MSSQLSERVER\MSSQL\DATA
(SQL 2005)
www.themegallery.com
Filegroup
www.themegallery.com
7
9/10/2019
Filegroup
• Mục tiêu
– Gom nhóm (logic) các đối tượng, các file dữ liệu
để tăng hiệu năng và dễ dàng quản trị (backup,
restore)
• Có 2 kiểu filegroup
– Primary
• Chứa file mdf và tất cả các file ko xác định filegroup.
• Chứa tất cả các bảng hệ thống
– User-defined
• Là bất kì một filegroup nào được tạo bằng từ khóa
filegroup trong lệnh create DB
www.themegallery.com
Lưu ý
• 1 filegroup chỉ thuộc về duy nhất 1 CSDL
• 1 file chỉ thuộc về duy nhất 1 filegroup
• Log files khơng thuộc filegroup
www.themegallery.com
8
9/10/2019
Thêm Filegroup
ALTER DATABASE <DB_Name>
ADD Filegroup <TenFileGroup>
Ví dụ: Thêm một filegroup tên ‘SecondGroup’
vào CSDL DBTest
ALTER DATABASE DBTest
ADD Filegroup SecondGroup
www.themegallery.com
Thêm FileGroup
www.themegallery.com
9
9/10/2019
Thao tác trên Filegroup
Cập nhật trạng thái Filegroup
ALTER DATABASE <DB_Name> MODIFY
FILEGROUP <FilegroupName> READONLY
Thiết lập Filegroup mặc định
ALTER DATABASE <DB_Name> MODIFY
FILEGROUP <FilegroupName> DEFAULT
www.themegallery.com
Thêm file .ndf
ALTER DATABASE <TenCSDL>
ADD FILE
(Name = <TenLogic>,
FileName = ‘<TenVatLy>’)
TO FILEGROUP <TenFileGroup>
Ví dụ: Trong CSDL QLSV thêm file QLSV_data1.ndf
vào C:\CSDL
ALTER DATABASE QLSV
ADD FILE (Name = QLSV_data1,
FileName = ‘C:\CSDL\QLSV_data1.ndf)
www.themegallery.com
10
9/10/2019
Thay đổi kích thước file dữ liệu
ALTER DATABASE <TenCSDL>
MODIFY FILE <filespec>
<filespec>
( NAME = logical_file_name
[ , NEWNAME = new_logical_name ]
[ , FILENAME = 'os_file_name' ]
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )
www.themegallery.com
Ví dụ
Thay đổi kích thước file QLSV_data lên thành
100MB
ALTER DATABASE QLSV
MODIFY FILE (Name = ‘qlsv_data’,
size = 100MB,
filegrowth = 2MB)
www.themegallery.com
11
9/10/2019
Xem kích thước CSDL
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name, Physical_Name,
(size*8)/1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = ’TênCSDL‘
sp_helpdb ‘TênCSDL’
www.themegallery.com
Ví dụ: CSDL QLSV_2011
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name, Physical_Name,
(size*8)/1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = ’QLSV_2011'
www.themegallery.com
12
9/10/2019
Xem thơng tin CSDL
Exec sp_helpdb 'qlsv_2011'
www.themegallery.com
Quản lý CSDL
Xố một CSDL đã tồn tại
Drop Database database_name
www.themegallery.com
13
9/10/2019
Quản lý CSDL
Gắn CSDL vào SQL Server:
EXEC sp_attach_db
[@dbname = ]<db_name>,
[@filename=]<file_name_1> [,…n]
Gỡ một CSDL trong SQL Server
EXEC sp_detach_db
[@dbname=]<db_name>
www.themegallery.com
Detach SQL Server
www.themegallery.com
14
9/10/2019
Attach SQL Server
www.themegallery.com
Bài tập 1
Hãy tạo CSDL QLSV với yêu cầu sau:
- File dữ liệu
- Tên tập tin chính là: QLSV_Data.mdf.
- Dung lượng khởi tạo là 1MB.
- Độ gia tăng là 10%.
- File nhật kí
-
Tập tin log là QLSV_Log.ldf.
Dung lượng ban đầu là 2MB.
Kích thước khơng giới hạn.
Độ gia tăng dung lượng là 10MB
www.themegallery.com
15
9/10/2019
Bài tập 2
Tên CSDL: QLTV
Địa chỉ vật lý: C:\CSDL
Size: 20MB.
Maxsize: 5 lần Size.
Mỗi lần tăng ¼ maxsize.
www.themegallery.com
Bài tập 3
Thực hành trên máy bài tập 1 và thêm các nội
dung sau. Chụp hình minh họa kết quả, báo cáo
bằng file word:
- Thêm 1 filegroup tên là Group2 cho csdl QLSV
- Thêm 1 file dữ liệu tên là QLSV2.ndf vào
filegroup Group2 cho csdl QLSV
- Cập nhật file dữ liệu QLSV2.ndf thành
QLSV_Data2.ndf và đổi kích thước file khác với
kích thước ban đầu
- Dùng câu truy vấn xem kích thước csdl QLSV
www.themegallery.com
16
9/10/2019
Nội dung
1
CSDL trong SQL Server
2
Tạo và quản lý CSDL
3
Các kiểu dữ liệu
4
Tạo và quản lý bảng
5
6
Ràng buộc toàn vẹn đơn giản
Các thao tác trên dữ liệu
www.themegallery.com
Kiểu dữ liệu
System
datatype
Kiểu dữ liệu cơ sở do hệ
quản trị cung cấp
User
defined
datatype
Kiểu dữ liệu do người dùng
tự định nghĩa trên kiểu cơ
sở
DataType
www.themegallery.com
17
9/10/2019
Kiểu dữ liệu cơ sở
Số
Datetime
Smalldatetime
Date
Time
Số nguyên
Số thực
System
data type
Ngày
tháng
Chuỗi
Char
Varchar
Text
www.themegallery.com
Kiểu dữ liệu cơ sở
Số
Số nguyên:
•
•
•
•
•
Bit : 0 1
Tinyint : 0 255
Smallint : -32,768 32,767
Int : 2-31 231 - 1
Bigint : –263 263–1
www.themegallery.com
18
9/10/2019
Kiểu dữ liệu cơ sở
Số
Số bit cần dùng để
lưu trữ. 1≤ n≤53
Số thực
• Floating point:
– float(n) : -1.79308 -2.23-308 , 0 , 2.23-308 1.79308
– real = float(24) : -3,438 -1.1838 , 0 , 1,1838 3.438
• Fixed point
Số dư
– Decimal(p,s)
– Numeric(p,s)
Số thập phân
www.themegallery.com
Kiểu dữ liệu cơ sở
Chuỗi
char(n): 8000bytes
nchar(n) : 4000bytes
varchar(n): 8000bytes
nvarchar(n) : 4000bytes
text; ntext : 2GB
Text
Varchar
•Dùng khi cần lưu đoạn text lớn trong CSDL
•Dùng khi lưu các chuỗi có chiều dài ngắn
•Khơng thực hiện tìm kiếm giá trị trong chuỗi
•Tìm kiếm giá trị trong chuỗi
•Ít truy vấn và ko thực hiện kết trên cột này
•Thường dùng để truy vấn và kết
•Blog comments
•Wiki pages
www.themegallery.com
•Code source
•Usernames
•Page titles
•Filenames
19
9/10/2019
Kiểu dữ liệu cơ sở
Ngày giờ
Datetime: 01/01/1753 12/31/9999
Smalldatetime: 01/01/1900 06/06/2079
Date: 01/01/0001 to 12/31/9999
Time: 00:00:00.000000023:59:59.9999999
nanoseconds
www.themegallery.com
Kiểu tự định nghĩa
của kiểu dữ liệu
Dùng thủ tục sp_addtype Tên
mới (do người dùng đặt)
sp_addtype
Kiểu dữ cơ sở (không gán
[ @typename = ] type,
được giá trị mặc định)
[ @phystype = ] system_data_type,
Cho phép null hay
[ , [ @nulltype = ] 'null_type' ]
không: ‘NULL’ (mặc
định) hay ‘NOT NULL’
www.themegallery.com
20
9/10/2019
Ví dụ
EXEC sp_addtype CMND, 'varchar(11)', 'NOT NULL'
EXEC sp_addtype NgaySinh, datetime, 'NULL'
EXEC sp_addtype SoDT, 'varchar(24)', 'NOT NULL'
EXEC sp_addtype SoFax, 'varchar(24)', 'NULL'
www.themegallery.com
Ví dụ
www.themegallery.com
21
9/10/2019
Xóa kiểu tự định nghĩa
Cú pháp
EXEC sp_droptype <type_name>
Ví dụ
EXEC sp_droptype CMND
www.themegallery.com
Nội dung
1
CSDL trong SQL Server
2
Tạo và quản lý CSDL
3
Các kiểu dữ liệu
4
Tạo và quản lý bảng
5
6
Ràng buộc toàn vẹn đơn giản
Các thao tác trên dữ liệu
www.themegallery.com
22
9/10/2019
Tạo bảng
Schema?
Tên bảng?
Thuộc tính?
Kiểu dữ liệu?
Table
Khóa chính – ngoại?
Default?
www.themegallery.com
Schema
Database
www.themegallery.com
23
9/10/2019
www.themegallery.com
Tạo schema
Tên schema
CREATE SCHEMA <schema_name>
[AUTHORIZATION <owner_name>]
Tên user tạo schema.
Mặc định là dbo
Tạo schema tên snn thuộc sở hữu của người
dung dbo
CREATE SCHEMA snn
AUTHORIZATION dbo
www.themegallery.com
24
9/10/2019
Ví dụ
www.themegallery.com
SQL server
www.themegallery.com
25