Bài giảng Chương 2: Xây dựng và quản lý Cơ sở dữ liệu trong SQL Server

Khám phá chương 2 về xây dựng cơ sở dữ liệu, bao gồm các khái niệm, phương pháp và ứng dụng thực tiễn trong lĩnh vực công nghệ thông tin.

Chuyên ngành

Cơ sở dữ liệu

Người đăng

Ẩn danh

Thể loại

Giáo trình/Bài giảng
52
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan quy trình xây dựng CSDL hiệu quả cho người mới

Xây dựng cơ sở dữ liệu (CSDL) là một quá trình kỹ thuật phức tạp, đòi hỏi sự chính xác và tư duy hệ thống. Quy trình này không chỉ đơn thuần là tạo ra các bảng và lưu trữ thông tin. Nó bao gồm việc phân tích yêu cầu, thiết kế cơ sở dữ liệu ở mức khái niệm, logic và cuối cùng là vật lý. Một CSDL được xây dựng tốt sẽ đảm bảo tính toàn vẹn, bảo mật và hiệu suất truy vấn cao, trở thành nền tảng vững chắc cho mọi ứng dụng phần mềm. Quá trình này bắt đầu bằng việc xác định các thực thể chính, các thuộc tính mô tả chúng và các mối quan hệ giữa các thực thể đó. Việc lựa chọn hệ quản trị CSDL (DBMS) phù hợp như SQL Server cũng là một bước quan trọng, quyết định đến các công cụ và ngôn ngữ sẽ được sử dụng. Tài liệu tham khảo cho thấy, trong SQL Server, CSDL được chia thành CSDL hệ thống và CSDL người dùng, cung cấp một môi trường mạnh mẽ để tạo và quản lý dữ liệu. Việc hiểu rõ các giai đoạn này giúp tránh được các sai lầm phổ biến, tiết kiệm thời gian và chi phí trong quá trình phát triển và bảo trì hệ thống sau này. Quy trình xây dựng CSDL chuyên nghiệp là chìa khóa để đảm bảo dữ liệu được tổ chức một cách khoa học, dễ dàng truy xuất và mở rộng trong tương lai.

1.1. Tầm quan trọng của việc thiết kế cơ sở dữ liệu tối ưu

Việc thiết kế cơ sở dữ liệu là giai đoạn nền tảng và có ảnh hưởng sâu sắc nhất đến toàn bộ vòng đời của hệ thống thông tin. Một thiết kế tốt giúp giảm thiểu sự dư thừa dữ liệu, ngăn chặn các dị thường khi cập nhật, xóa, sửa thông tin và đảm bảo tính nhất quán. Ngược lại, một thiết kế yếu kém có thể dẫn đến hiệu năng truy vấn chậm, dữ liệu không chính xác và chi phí bảo trì tăng cao. Tầm quan trọng của nó thể hiện ở việc tối ưu hóa không gian lưu trữ và tăng tốc độ xử lý. Bằng cách áp dụng các kỹ thuật như chuẩn hóa cơ sở dữ liệu, các nhà phát triển có thể tạo ra một cấu trúc logic, chặt chẽ. Điều này không chỉ giúp ứng dụng hoạt động ổn định mà còn làm cho việc mở rộng hệ thống trong tương lai trở nên dễ dàng hơn, đáp ứng được các yêu cầu kinh doanh thay đổi.

1.2. Các giai đoạn cốt lõi trong quy trình xây dựng CSDL

Quy trình xây dựng CSDL chuyên nghiệp thường bao gồm ba giai đoạn chính. Giai đoạn đầu tiên là thiết kế mức khái niệm, sử dụng các công cụ như sơ đồ ER (Entity-Relationship) để mô hình hóa các yêu cầu của người dùng. Giai đoạn này tập trung vào việc xác định các thực thể, thuộc tínhmối quan hệ. Giai đoạn thứ hai là thiết kế mức logic, nơi mô hình thực thể kết hợp được chuyển đổi thành một mô hình quan hệ. Tại đây, các bảng, các cột, khóa chínhkhóa ngoại được xác định cụ thể. Giai đoạn cuối cùng là thiết kế mức vật lý, liên quan đến việc triển khai mô hình logic trên một hệ quản trị CSDL cụ thể, ví dụ như SQL Server. Giai đoạn này quyết định các chi tiết kỹ thuật như kiểu dữ liệu, chỉ mục (index) và các cấu hình lưu trữ vật lý để tối ưu hóa hiệu suất.

II. Thách thức chính khi thiết kế và chuẩn hóa cơ sở dữ liệu

Quá trình thiết kế và chuẩn hóa cơ sở dữ liệu luôn đi kèm với nhiều thách thức đáng kể. Một trong những khó khăn lớn nhất là việc xác định chính xác và đầy đủ các yêu cầu từ phía người dùng. Nếu yêu cầu không rõ ràng, mô hình dữ liệu sẽ không phản ánh đúng thực tế, dẫn đến việc phải sửa đổi tốn kém sau này. Thách thức thứ hai là vấn đề dư thừa và không nhất quán dữ liệu. Dữ liệu lặp lại ở nhiều nơi không chỉ gây lãng phí không gian lưu trữ mà còn tạo ra nguy cơ sai lệch khi cập nhật. Để giải quyết vấn đề này, kỹ thuật chuẩn hóa được áp dụng. Tuy nhiên, việc áp dụng các dạng chuẩn ở mức quá cao đôi khi lại làm giảm hiệu năng truy vấn do phải kết (JOIN) quá nhiều bảng. Do đó, việc cân bằng giữa mức độ chuẩn hóa và hiệu suất là một bài toán khó, đòi hỏi kinh nghiệm và sự am hiểu sâu sắc về cả lý thuyết CSDL và yêu cầu nghiệp vụ cụ thể. Việc lựa chọn đúng khóa chính (primary key) và xác định các ràng buộc toàn vẹn cũng là một thách thức, ảnh hưởng trực tiếp đến tính đúng đắn của dữ liệu.

2.1. Vấn đề dư thừa và không nhất quán trong dữ liệu

Dư thừa dữ liệu xảy ra khi cùng một thông tin được lưu trữ ở nhiều vị trí khác nhau trong CSDL. Điều này dẫn đến các dị thường cập nhật: khi cần thay đổi một thông tin, người dùng phải cập nhật ở tất cả các nơi nó xuất hiện. Nếu bỏ sót một vị trí, dữ liệu sẽ trở nên không nhất quán. Ví dụ, địa chỉ của một khách hàng được lưu trong cả bảng DonHang và bảng KhachHang. Khi khách hàng chuyển nhà, nếu chỉ cập nhật bảng KhachHang, thông tin trong các đơn hàng cũ sẽ sai. Chuẩn hóa cơ sở dữ liệu là giải pháp chính để loại bỏ sự dư thừa này bằng cách tách các bảng lớn thành các bảng nhỏ hơn có quan hệ logic với nhau.

2.2. Cân bằng giữa mức độ chuẩn hóa và hiệu năng hệ thống

Mặc dù chuẩn hóa giúp loại bỏ dữ liệu dư thừa, việc đạt đến các dạng chuẩn cao như dạng chuẩn BCNF có thể yêu cầu chia nhỏ dữ liệu thành rất nhiều bảng. Khi cần truy vấn thông tin tổng hợp, hệ thống sẽ phải thực hiện nhiều phép kết bảng, làm giảm đáng kể hiệu năng. Đây là một sự đánh đổi kinh điển trong thiết kế CSDL. Trong thực tế, nhiều hệ thống chỉ cần chuẩn hóa đến dạng chuẩn 3NF. Đôi khi, các nhà thiết kế còn chủ động "phi chuẩn hóa" (denormalization) một cách có kiểm soát ở một số khu vực để tăng tốc độ cho các truy vấn thường xuyên. Quyết định này đòi hỏi sự phân tích kỹ lưỡng về tần suất và loại truy vấn trên hệ thống.

III. Phương pháp mô hình hóa dữ liệu Từ sơ đồ ER đến quan hệ

Mô hình hóa dữ liệu là bước đầu tiên và quan trọng nhất trong việc thiết kế cơ sở dữ liệu. Nó cung cấp một cái nhìn trừu tượng về cấu trúc dữ liệu của hệ thống trước khi đi vào cài đặt vật lý. Phương pháp phổ biến nhất là sử dụng mô hình thực thể kết hợp (Entity-Relationship Model), được biểu diễn trực quan qua sơ đồ ER (ERD). Sơ đồ này giúp xác định các đối tượng chính cần quản lý, gọi là các thực thể (ví dụ: SinhVien, MonHoc), các thông tin mô tả chúng, gọi là các thuộc tính (ví dụ: MaSV, HoTen), và cách chúng tương tác với nhau qua các mối quan hệ (ví dụ: SinhVien "đăng ký" MonHoc). Sau khi có được sơ đồ ER hoàn chỉnh, bước tiếp theo là chuyển đổi nó sang mô hình quan hệ. Quá trình này bao gồm một tập các quy tắc để ánh xạ các thực thể thành các bảng (relations), các thuộc tính thành các cột (columns), và các mối quan hệ thành các khóa ngoại (foreign key). Việc chuyển đổi này tạo ra một thiết kế logic, là bản thiết kế chi tiết để lập trình viên sử dụng ngôn ngữ định nghĩa dữ liệu (DDL) để tạo CSDL thực tế.

3.1. Phân tích và xây dựng mô hình thực thể kết hợp ERD

Xây dựng một mô hình thực thể kết hợp chính xác đòi hỏi phải phân tích kỹ lưỡng yêu cầu nghiệp vụ. Quá trình này bắt đầu bằng việc nhận diện các danh từ chính trong mô tả hệ thống để xác định các thực thể. Tiếp theo, các đặc điểm của mỗi thực thể được xác định để trở thành thuộc tính. Cuối cùng, các động từ mô tả sự tương tác giữa các thực thể sẽ giúp xác định các mối quan hệ và bản số của chúng (một-một, một-nhiều, nhiều-nhiều). Việc trực quan hóa các yếu tố này bằng sơ đồ ER giúp tất cả các bên liên quan (từ người dùng cuối đến nhà phát triển) có một cái nhìn chung và thống nhất về cấu trúc dữ liệu của hệ thống.

3.2. Quy tắc chuyển đổi sơ đồ ER sang mô hình quan hệ

Việc chuyển đổi từ sơ đồ ER sang mô hình quan hệ tuân theo các quy tắc rõ ràng. Mỗi thực thể mạnh sẽ trở thành một bảng, với thuộc tính định danh của thực thể trở thành khóa chính của bảng. Các thuộc tính còn lại trở thành các cột thông thường. Đối với mối quan hệ một-nhiều, khóa chính của bảng bên "một" sẽ được thêm vào bảng bên "nhiều" để làm khóa ngoại. Đối với mối quan hệ nhiều-nhiều, một bảng trung gian (bảng kết nối) mới sẽ được tạo ra. Bảng này sẽ chứa khóa ngoại tham chiếu đến khóa chính của hai bảng tham gia vào mối quan hệ. Việc tuân thủ các quy tắc này đảm bảo cấu trúc logic của CSDL phản ánh chính xác mô hình khái niệm đã thiết kế.

IV. Hướng dẫn xây dựng CSDL vật lý bằng ngôn ngữ DDL trong SQL

Sau khi hoàn tất thiết kế logic, bước tiếp theo là hiện thực hóa CSDL bằng cách sử dụng ngôn ngữ định nghĩa dữ liệu (DDL). DDL là một tập hợp các lệnh SQL cho phép tạo và quản lý các đối tượng trong CSDL. Trong môi trường SQL Server, quá trình này bắt đầu với lệnh CREATE DATABASE. Lệnh này không chỉ tạo ra CSDL mà còn cho phép cấu hình chi tiết các tệp vật lý (.mdf, .ndf, .ldf), kích thước ban đầu, kích thước tối đa và tốc độ tăng trưởng. Theo tài liệu cung cấp, cú pháp CREATE DATABASE QuanLyHangHoa ON PRIMARY (...) cho thấy khả năng tùy chỉnh cao về vị trí và thuộc tính của các tệp dữ liệu. Tiếp theo, lệnh CREATE TABLE được sử dụng để tạo ra các bảng tương ứng với mô hình quan hệ. Lệnh này định nghĩa tên bảng, danh sách các cột, kiểu dữ liệu cho mỗi cột và các ràng buộc toàn vẹn cơ bản như NOT NULL. Ngoài ra, hệ quản trị CSDL SQL Server còn cung cấp các lệnh DDL khác như ALTER TABLE để sửa đổi cấu trúc bảng và DROP TABLE để xóa bảng. Việc nắm vững các lệnh DDL là kỹ năng cơ bản để xây dựng CSDL vật lý.

4.1. Sử dụng lệnh CREATE TABLE để định nghĩa cấu trúc bảng

Lệnh CREATE TABLE là công cụ cốt lõi của DDL để định nghĩa cấu trúc của một bảng. Cú pháp của nó yêu cầu chỉ định tên bảng và một danh sách các định nghĩa cột. Mỗi định nghĩa cột bao gồm tên cột, kiểu dữ liệu (ví dụ: int, nvarchar(50), datetime) và các ràng buộc tùy chọn. Ví dụ từ tài liệu Create table SINHVIEN (MaSV int not null IDENTITY (1,2), ...) minh họa cách tạo một cột MaSV kiểu số nguyên, không cho phép giá trị rỗng (not null) và có thuộc tính tự tăng (IDENTITY). Việc lựa chọn kiểu dữ liệu phù hợp cho mỗi thuộc tính là rất quan trọng để tối ưu hóa không gian lưu trữ và đảm bảo tính hợp lệ của dữ liệu.

4.2. Quản lý và tùy chỉnh cấu trúc bảng với ALTER TABLE

Trong quá trình phát triển và vận hành, cấu trúc của các bảng có thể cần phải thay đổi. Lệnh ALTER TABLE cung cấp khả năng linh hoạt để sửa đổi một bảng đã tồn tại mà không cần phải xóa và tạo lại. Các thao tác phổ biến bao gồm thêm một cột mới (ADD COLUMN), xóa một cột hiện có (DROP COLUMN), thay đổi kiểu dữ liệu của một cột (ALTER COLUMN), hoặc thêm và xóa các ràng buộc toàn vẹn. Ví dụ, lệnh ALTER TABLE <TenBang> ADD CONSTRAINT ... được sử dụng để thêm các ràng buộc như khóa ngoại sau khi tất cả các bảng liên quan đã được tạo. Khả năng quản lý linh hoạt này giúp CSDL có thể thích ứng với các yêu cầu thay đổi của ứng dụng.

V. Cách áp dụng ràng buộc toàn vẹn để đảm bảo dữ liệu chính xác

Để đảm bảo tính đúng đắn và nhất quán, dữ liệu trong CSDL phải tuân thủ một tập hợp các quy tắc được gọi là ràng buộc toàn vẹn. Các ràng buộc này là cơ chế phòng vệ của CSDL, ngăn chặn việc nhập vào các dữ liệu không hợp lệ. Hệ quản trị CSDL cung cấp nhiều loại ràng buộc khác nhau. Ràng buộc quan trọng nhất là khóa chính (primary key), đảm bảo mỗi hàng trong một bảng là duy nhất. Khóa ngoại (foreign key) thiết lập mối liên kết logic giữa hai bảng, đảm bảo rằng dữ liệu tham chiếu là hợp lệ. Ví dụ, không thể thêm một đơn hàng cho một khách hàng không tồn tại. Các ràng buộc khác bao gồm UNIQUE (đảm bảo giá trị trong một cột là duy nhất, nhưng không phải khóa chính), CHECK (kiểm tra xem giá trị có thỏa mãn một điều kiện logic nào đó không, ví dụ Nam > 0 and Nam <= 4) và DEFAULT (cung cấp một giá trị mặc định nếu không có giá trị nào được chỉ định). Việc áp dụng hiệu quả các ràng buộc toàn vẹn là yếu tố then chốt để xây dựng CSDL đáng tin cậy.

5.1. Thiết lập khóa chính Primary Key và khóa ngoại Foreign Key

Việc thiết lập khóa chínhkhóa ngoại là nền tảng của mô hình quan hệ. Primary key được định nghĩa trên một hoặc nhiều cột để xác định duy nhất mỗi bản ghi. Một bảng chỉ có thể có một khóa chính. Foreign key là một cột hoặc một nhóm cột trong một bảng mà giá trị của nó phải khớp với giá trị của khóa chính trong một bảng khác. Điều này tạo ra một ràng buộc toàn vẹn tham chiếu. Khi định nghĩa khóa ngoại, có thể chỉ định các hành động ON DELETEON UPDATE (ví dụ: CASCADE, SET NULL, NO ACTION) để quản lý các thay đổi trên dữ liệu tham chiếu, đảm bảo tính nhất quán giữa các bảng liên quan.

5.2. Các loại ràng buộc bổ sung Unique Check và Default

Bên cạnh khóa chínhkhóa ngoại, CSDL còn hỗ trợ các ràng buộc khác để tăng cường tính toàn vẹn. Ràng buộc UNIQUE đảm bảo tất cả các giá trị trong một cột là khác nhau, hữu ích cho các trường như email hoặc số CMND. Ràng buộc CHECK cho phép định nghĩa một quy tắc logic mà dữ liệu phải tuân theo, ví dụ, cột DiemTB phải nằm trong khoảng từ 0 đến 10. Ràng buộc DEFAULT tự động gán một giá trị mặc định cho một cột nếu không có giá trị nào được cung cấp trong câu lệnh INSERT. Ví dụ trong tài liệu constraint DF_CB_LCB Default ‘LCB01’ For LoaiCB cho thấy cách gán giá trị mặc định cho cột LoaiCB. Sử dụng kết hợp các ràng buộc này giúp tạo ra một hệ thống dữ liệu vững chắc và đáng tin cậy.

15/07/2025

Trích đoạn nội dung tài liệu

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 Ràng buộc toàn vẹn đơn giản 6 Các thao tác trên dữ liệu www.com 1 9/10/2019 CSDL trong SQL Server www.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.com 2 9/10/2019 CSDL trong SQL Server Database Schema Attribute Datatype Primary key Foreign key Default User Constraint Table Trigger Rule View Function Role Stored procedure www.com SQL server 2008 www.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 Ràng buộc toàn vẹn đơn giản 6 Các thao tác trên dữ liệu www.com T-SQL language statements SELECT CREATE GRANT BEGIN TRAN INSERT ALTER REVOKE COMMIT TRAN UPDATE DROP DENY ROLLBACK TRAN DELETE • Data Manipulation Language • Data Definition Language • Data Control Language • Transaction Control Language www.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.com Tạo CSDL Tên DB, không trùng, tối đa 128 char CREATE DATABASE database_name Danh sách file DL nếu muốn [ ON [ [PRIMARY] < filespec > [ ,.n ] ]] chỉ định cụ thể [ LOG ON { < filespec > [ ,.n ] } ] Danh sách file log nếu muốn chỉ định cụ thể < filespec > định nghĩa như sau Tên file dùng trong môi trường SQL Server ( [ Name = logical_file_name , ] Filename = 'os_file_name' Tên thực sự của file [ , SIZE = size ] (bao gồm đường dẫn) [ , Maxsize = { max_size | UNLIMITED } ] [ , Filegrowth = growth_increment ] ) [ ,.com 5 9/10/2019 Tạo CSDL CREATE DATABASE database_name [ ON [ [PRIMARY] < filespec > [ ,.n ] ]] Kích thước ban đầu cho các file dữ liệu. [ LOG ON { < filespec > [ ,.n ] } ] 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 ] 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 www.com 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.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.com Filegroup www.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.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.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.com Thêm FileGroup www.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.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.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.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.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.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.com 12 9/10/2019 Xem thông tin CSDL Exec sp_helpdb 'qlsv_2011' www.com Quản lý CSDL Xoá một CSDL đã tồn tại Drop Database database_name www.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.com Detach SQL Server www.com 14 9/10/2019 Attach SQL Server www.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.

- 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. - 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.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.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.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 Ràng buộc toàn vẹn đơn giản 6 Các thao tác trên dữ liệu www.com Kiểu dữ liệu System Kiểu dữ liệu cơ sở do hệ datatype quản trị cung cấp DataType User Kiểu dữ liệu do người dùng defined tự định nghĩa trên kiểu cơ datatype sở www.com 17 9/10/2019 Kiểu dữ liệu cơ sở Số nguyên Số Số thực System Datetime data type Char Smalldatetime Ngày Varchar Date Chuỗi Text tháng Time www.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.com 18 9/10/2019 Kiểu dữ liệu cơ sở Số Số bit cần dùng để  Số thực lưu trữ. 1≤ n≤53 • Floating point: – float(n) : -1.438 • Fixed point – Decimal(p,s) Số dư – Numeric(p,s) Số thập phân www.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 •Usernames •Wiki pages •Page titles www.com •Code source •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.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.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.com Ví dụ www.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.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 Ràng buộc toàn vẹn đơn giản 6 Các thao tác trên dữ liệu www.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.com Schema Database www.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.com 24 9/10/2019 Ví dụ www.com SQL server www.com 25 9/10/2019 Quản lý schema Xóa schema DROP SCHEMA <schema_name> Chuyển đối tượng giữa các schemas ALTER SCHEMA <new_schema> TRANSFER <old_schema>.<table_name> www.com Ví dụ ALTER SCHEMA snn TRANSFER dbo.com 26 9/10/2019 Tạo bảng Tạo bảng  Xác định cột (thuộc tính) của bảng  Xác định khóa chính  Xác định thuộc tính null/ not null  Xác định thuộc tính identity (nếu có) (phải là kiểu số nguyên) Lưu ý:  Luôn tạo khóa chính cho một bảng  Ràng buộc khóa ngoại nên được tạo sau khi đã tạo xong tất cả các bảng liên quan.com Tạo bảng Create table Table_name ( { Column_name Data_type [null | not null] [default default_value ] [identity [(seed, increment)] ] } [,…n] [, constraint constraint_name primary key ( Column_name [,…n] ) ] ) www.com 27 9/10/2019 Ví dụ Create table SINHVIEN ( MaSV int not null IDENTITY (1,2), Lop char(5) not null default ’09CK1’ , HoTen nvarchar(30) not null, NgaySinh datetime not null, DiaChi nvarchar(100), constraint pk_HS primary key (MaSV) ) www.com Ví dụ Tên bảng Attribute Primary key Default constraint www.com 28 9/10/2019 Ví dụ Set identity seed Increment www.com Quản lý bảng Thay đổi cấu trúc bảng Alter table…  Thêm/ xoá/ cập nhật kiểu dữ liệu… của một cột (column)  Thêm/ xoá/ kiểm tra/ không kiểm tra ràng buộc (constraint)  Enable/ disable trigger Xóa bảng Drop table … www.com 29 9/10/2019 Qui định Các tên bảng, tên ràng buộc không được trùng nhau trong cùng một database.  Tên các cột trong cùng một bảng không được trùng nhau.

Thông tin về các bảng, các ràng buộc được lưu trong bảng hệ thống sys.objects  Ví dụ: Đọc thông tin về các bảng trong database hiện hành: Select * from sys.objects where type = ‘U’ www.com Thủ tục của hệ thống  sp_databases Xem DS CSDL www.com 30 9/10/2019 Thủ tục của hệ thống sp_tables [‘table_name’] [, ‘owner’] [,’database_name’][, “ ’type’ ”] Xem DS bảng  Ví dụ: (View&Table) EXEC sp_tables null, null, ‘QLSV_2011’, “‘TABLE’” www.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ