8/25/2017

Nội dung

1. Nhắc lại một số khái niệm 2. Quá trình phát triển của Hệ quản trị Cơ sở dữ liệu (HQT CSDL)

(Database Management System - DBMS)

Chương 1. Tổng quan về Hệ quản trị Cơ sở dữ liệu

GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn

3. Định nghĩa HQT CSDL 4. Các mức biểu diễn một CSDL 5. Các thành phần chính của HQTCSDL 6. Một số HQT CSDL 7. Tổng quan về HQT CSDL SQL Server 8. Transact – SQL

Hệ quản trị Cơ sở dữ liệu 2

1.1. Dữ liệu

1. Nhắc lại một số khái niệm

• Dữ liệu là những giá trị ban đầu mà chưa có nghĩa nhiều

1.1. Dữ liệu

với người dùng mà máy tính có thể tiếp nhậ và xử lý

1.2. Thông tin

1.3. Cơ sở dữ liệu

1.4. Siêu dữ liệu (Meta data)

1

Hệ quản trị Cơ sở dữ liệu 3 Hệ quản trị Cơ sở dữ liệu 4

8/25/2017

1.2. Thông tin

1.3. Cơ sở dữ liệu

• Thông tin được xử lý từ dữ liệu ra và hoàn toàn có nghĩa

• Phần dữ liệu được lưu giữ trong máy tính theo một quy

định hay cấu trúc nào đó gọi là cơ sở dữ liệu

với người dùng

Hệ quản trị Cơ sở dữ liệu 5 Hệ quản trị Cơ sở dữ liệu 6

1.4. Siêu dữ liệu (Meta data)

2. Quá trình phát triển của HQT CSDL (Database Management System)

• Siêu dữ liệu tức là thông tin mô tả về dữ liệu

2.1. Hệ thống tập tin cổ điển (file systems)

2.2. Cơ sở dữ liệu (Database)

2

Hệ quản trị Cơ sở dữ liệu 7 Hệ quản trị Cơ sở dữ liệu 8

8/25/2017

2.1. Hệ thống tập tin cổ điển (file systems)

2.1. Hệ thống tập tin cổ điển (file systems) (tt)

• Ưu điểm:

• Gọn nhẹ, phù hợp thực tiễn. Ít tốn thời gian, chi phí thấp • Khả năng đáp ứng khai thác nhanh chóng và kịp thời

• Nhược điểm:

Sales Files

PropertyForRent(propertyNo, street, city, postcode, type, rooms, rent, ownerNo) PrivateOwner(ownerNo, fName, lName, address, telNo) Client(clientNo, fName, lName, address, telNo, preType, maxRent)

Contracts Files

• Thông tin lưu nhiều nơi, dư thừa, không nhất quán • Lãng phí thời gian cập nhật dữ liệu và lưu trữ • Phối hợp tổ chức và khai thác là khó khăn • Thiếu sự chia sẽ thông tin giữa các đơn vị và bộ phận. • Khó khi nâng cấp ứng dụng. • Không có người quản trị dữ liệu, mọi người có quyền sử dụng

thêm, xóa, sửa  không an tòan, không bảo mật thông tin

Lease(leaseNo, propertyNo, clientNo, rent, paymentMethod, deposit, paid, rentStart, rentFinish) PropertyForRent(propertyNo, street, city, postcode, rent) Client(clientNo, fName, lName, address, telNo)

Hệ quản trị Cơ sở dữ liệu 9 Hệ quản trị Cơ sở dữ liệu 10

1.2. Cơ sở dữ liệu (Database)

1.2. Cơ sở dữ liệu (Database) (tt)

• Ưu điểm nổi bật của CSDL là:

• Giảm sự trùng lặp thông tin xuống mức thấp nhất và do đó bảo

đảm được tính nhất quán và toàn vẹn dữ liệu.

• Đảm bảo dữ liệu có thể được truy xuất theo nhiều cách khác

nhau.

• Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều

ứng dụng khác nhau

PropertyForRent(propertyNo, street, city, postcode, type, rooms, rent, ownerNo) PrivateOwner(ownerNo, fName, lName, address, telNo) Client(clientNo, fName, lName, address, telNo, preType, maxRent) Lease(leaseNo, propertyNo, clientNo, paymentMethod, deposit, paid, rentStart, rentFinish) Hệ quản trị Cơ sở dữ liệu 11

3

Hệ quản trị Cơ sở dữ liệu 12

8/25/2017

1.2. Cơ sở dữ liệu (Database) (tt)

1.2. Cơ sở dữ liệu (Database) (tt)

• Là HTTT có cấu trúc, được lưu trữ trên các thiết bị mang tin từ

tính, phục vụ việc khai thác thông tin của nhiều người sử dụng

một cách đồng thời với nhiều mục đích khác nhau.

• Các vấn đề cần giải quyết • Tính chủ quyền bị vi phạm • Tính nhất quán CSDL • Vấn đề bảo mật • Tính an tòan dữ liệu • Vấn đề tranh chấp dữ liệu • Chia sẽ thông tin cho nhiều người sử dụng một cách đồng thời • Đảm bảo dữ liệu truy xuất đồng thời theo nhiều cách khác

nhau

• Tính độc lập giữa dữ liệu và chương trình / hệ thống ứng dụng

Hệ quản trị Cơ sở dữ liệu 13 Hệ quản trị Cơ sở dữ liệu 14

3. Định nghĩa HQT CSDL

4. Các mức biểu diễn CSDL

• Là một hệ thống phần mềm cung cấp các công cụ để xây

View Level

dựng và quản lý CSDL

View 1

View 2

View n

• Định nghĩa cấu trúc dữ liệu (DDL)

• Cung cấp khả năng thao tác trên CSDL (MDL)

Logical Level

• Hỗ trợ lưu trữ dữ liệu

• Điều khiển truy xuất dữ liệu giữa nhiều người dùng

Physical Level

4

Hệ quản trị Cơ sở dữ liệu 15 Hệ quản trị Cơ sở dữ liệu 16

8/25/2017

4. Các mức biểu diễn CSDL

4. Các mức biểu diễn CSDL

• Mức vật lý

• Mức quan niệm:

• Tại mức này sẽ giải quyết cho câu hỏi CSDL cần phải lưu giữ bao nhiêu loại dữ liệu? đó là những dữ liệu gì? Mối quan hệ giữa các loại dữ liệu này như thế nào?

• Đây là mức lưu trữ CSDL. Tại mức này, vấn đề cần giải quyết là dữ liệu gì và được lưu trữ như thế nào? ở đâu (đĩa từ, băng từ, track, sector ... nào)? Cần các chỉ mục gì? Việc truy xuất là tuần tự (Sequential Access) hay ngẫu nhiên (RandomAccess) đối với từng loại dữ liệu.

• Những người hiểu và làm việc với CSDL tại mức này là người quản trị CSDL (Administrator), những người sử dụng (NSD) chuyên môn.

• Từ thế giới thực (Real Universe) các chuyên viên tin học qua quá trình khảo sát và phân tích, cùng với những người sẽ đảm nhận vai trò quản trị CSDL, sẽ xác định được những loại thông tin gì được cho là cần thiết phải đưa vào CSDL, đồng thời mô tả rõ mối liên hệ giữa các thông tin này.

Hệ quản trị Cơ sở dữ liệu 17 Hệ quản trị Cơ sở dữ liệu 18

4. Các mức biểu diễn CSDL

5. Các thành phần chính của DBMS

• Mức ngoài.

• Đó là mức của người sử dụng và các chương trình ứng

dụng.

Ngôn ngữ giao tiếp

Quản lý khôi phục

• Làm việc tại mức này có các nhà chuyên môn, các kỹ sư tin

Quản lý giao tác

học và những người sử dụng không chuyên.

Quản lý lưu trữ

Xử lý truy vấn

• Mỗi người sử dụng hay mỗi chương trình ứng dụng có thể được "nhìn" (View) CSDL theo một góc độ khác nhau. Có thể "nhìn" thấy toàn bộ hay chỉ một phần hoặc chỉ là các thông tin tổng hợp từ CSDL hiện có.

5

Hệ quản trị Cơ sở dữ liệu 19 Hệ quản trị Cơ sở dữ liệu 20

8/25/2017

5.1. Ngôn ngữ giao tiếp

5.2. Xử lý truy vấn

• Biểu diễn câu truy vấn ở dạng ngôn ngữ cấp cao (SQL)

• DBMS cung cấp giao diện lập trình dể sử dụng với một

và thực hiện câu truy vấn có hiệu quả

ngôn ngữ lập trình CSDL

• Query compiler – biên dịch

• SQL Server: Transaction-SQL (T-SQL)

• Query parser

• Xây dựng cấu trúc hình cây từ câu truy vấn

• Oracle: PL/SQL

• Query preprocessor

• Ngôn ngữ bao gồm

• Kiểm tra ngữ nghĩa của câu truy vấn • Chuyển đổi cấu trúc cây sang ngôn ngữ đại số quan hệ

• Định nghĩa dữ liệu

• Query optimizer

• Sắp xếp các phép toán nhằm mục đích tối ưu hóa câu truy vấn

• Thao tác dữ liệu

Hệ quản trị Cơ sở dữ liệu 21 Hệ quản trị Cơ sở dữ liệu 22

5.3. Quản lý giao tác

5.3. Quản lý giao tác (tt)

• Nhật ký

• Thành phần quản lý các giao tác có ảnh hưởng đến CSDL

• Để CSDL được bền vững (durable), mọi thay đổi lên CSDL phải

• Giao tác là một nhóm các hành động mà nếu thực hiện được

được ghi nhận lại

thì phải thực hiện hết tất cả các hành động trong giao tác đó,

• Log manager – ghi chép nhật ký

ngược lại xem như không thực hiện hành động nào

• Đảm bảo CSDL vẫn nguyên vẹn khi có sự cố xãy ra

1

• Recovery manager – khôi phục

2

3

transaction

4

• Dựa vào nhật ký để phục hồi lại CSDL về trạng thái nhất quán trước đó

5

7

• Trạng thái thỏa tất cả các RBTV của CSDL đó

8

6

Hệ quản trị Cơ sở dữ liệu 23 Hệ quản trị Cơ sở dữ liệu 24

8/25/2017

5.3. Quản lý giao tác (tt)

5.3. Quản lý giao tác (tt)

• Điều khiển đồng thời

• Giải quyết deadlock

• Bộ lập lịch (scheduler) - có nhiệm vụ lập 1 lịch thực hiện từ n giao

• Vì sử dụng cơ chế khóa nên các giao tác sẽ phải tranh giành tài

tác được kích hoạt đồng thời

• Cơ chế khóa (lock) - ngăn 2 giao tác cùng thao tác lên 1 đơn vị

nguyên

dữ liệu tại 1 điểm

• Tình huống “không một giao tác nào có thể thực hiện được công

việc của mình”

• Các giao tác chờ đợi lẫn nhau để được cấp phát tài nguyên

DB DBMS Server

• Thành phần quản lý giao tác sẽ phải can thiệp vào

• Rollback

• Abort

Equivalent to serial result Client Client Client Scheduler

Hệ quản trị Cơ sở dữ liệu 25 Hệ quản trị Cơ sở dữ liệu 26

5.4. Quản lý lưu trữ

6. Một số HQT CSDL

• Thành phần có nhiệm vụ điểu khiển việc đọc/ghi dữ liệu

qua lại giữa bộ nhớ và thiết bị lưu trữ

• Làm việc với khác khái niệm

• Tập tin dữ liệu

• Từ điển dữ liệu

• Lưu trữ các metadata về cấu trúc của CSDL, đặc biệt là lược đồ của

• DB2: IBM • InterBase: Borland • MySQL : MySQL LAB • Microsoft Office Access • Microsoft SQL Server • Oracle • ……..

CSDL

• Chỉ mục

7

Hệ quản trị Cơ sở dữ liệu 27 Hệ quản trị Cơ sở dữ liệu 28

8/25/2017

6. Một số HQT CSDL (tt)

7. Tổng quan về HQT CSDL SQL Server

Oracle

SQL SERVER

 Định hướng phát triển tổ chức,

công ty.

• Giá bản quyền phần mềm • Độ phức tạp thấp(dễ dàng

quản trị)

7.1. Giới thiệu về Microsoft SQL Server 7.2. Các phiên bản của SQL Server 7.3. Các thành phần của SQL Server 7.4. Các CSDL hệ thống của SQL Server 7.5. Các đối tượng của CSDL

 Độ phức tạp cao(khó quản trị)  Giá đầu tư cao

• Giá đầu tư phần cứng, thiết bị

kèm theo thấp

 Sử dụng ngôn ngữ chuẩn SQL

Hệ quản trị Cơ sở dữ liệu 29 Hệ quản trị Cơ sở dữ liệu 30

7.1. Giới thiệu về Microsoft SQL Server

7.1. Giới thiệu về Microsoft SQL Server (tt)

• Hệ thống khách/chủ gồm 3 phần

• SQL Server là hệ quản trị CSDL Client/Server

• Định nghĩa, chỉnh sửa CSDL, lược đồ, quan hệ giữa các

• Hệ thống phía Server: xử lý yêu cầu và phục vụ • Hệ thống phía Client: nơi yêu cầu và nhận dữ liệu • Hệ thống giao tiếp giữa Client và Server(Network)

lược đồ

• Thêm, sửa, xóa thông tin lưu trong các lược đồ

• Hỗ trợ các tính năng bảo mật, sao lưu phục hồi, cấp quyền

truy nhập

32

8

Hệ quản trị Cơ sở dữ liệu 31 Hệ quản trị Cơ sở dữ liệu 32

8/25/2017

7.1. Giới thiệu về Microsoft SQL Server (tt)

7.1. Giới thiệu về Microsoft SQL Server (tt)

SQL Server

Client Application

Client

SQL Server

Server Net-Libraries

Results

Open Data Services

Database API (OLE DB, ODBC, DB-Library)

OLTP

Query

Client Net-Library

Relational Engine

Client

Server

OLAP

Storage Engine

Client Application

RDBMS(Relational Database Management System)

Processor

Memory

OLTP: Online Transaction Process OLAP: Online Analysis Process

Local Database

Hệ quản trị Cơ sở dữ liệu 33 Hệ quản trị Cơ sở dữ liệu 34

7.2. Các phiên bản của SQL Server

7.1. Giới thiệu về Microsoft SQL Server (tt)

• Enterprise Edition

• Developer Edition

SQL Server

Client Application

1

• Không hạn chế kích thước cơ sở dữ

Query

Result Set

Server Net-Libraries

liệu

• Hỗ trợ Xử lý giao dịch trực tuyến

5

• Có các chức năng để xây dựng và kiểm thử ứng dụng trên phiên bản SQL Server Expression

Open Data Services

Database API (OLE DB, ODBC, DB-Library)

3

(OLTP)

Query

Result Set

• Express Edition

• Khã dụng và khã cỡ cao

Client Net-Library

2

Relational Engine

• Phiên bản nhỏ gọn có thể download

• Standard Edition

Client

Server

từ Internet

4

• Chỉ có phần dịch vụ cơ sở dữ liệu,

Storage Engine

• Đủ cho các công ty vừa và nhỏ • Gồm các tính năng cơ bản như:

không hỗ trợ những công cụ quản lý

thương mại điện tử, nhà kho dữ liệu, giải pháp ứng dụng doanh nghiệp

Workgroup Edition

Processor

Memory

Local Local Database Database

Dòng sản phẩm cho nhóm làm việc Cho các ứng dụng và hệ thống của các tổ chức nhỏ Không hạn chế kích thước cơ sở dữ liệu và số lượng người dùng

9

Hệ quản trị Cơ sở dữ liệu 35 Hệ quản trị Cơ sở dữ liệu 36

8/25/2017

7.3. Các thành phần của SQL Server (tt)

7.3. Các thành phần của SQL Server

• Database Engine (lõi của SQL Server)

• Ðây là một engine có khả năng chứa data ở các quy mô

khác nhau dưới dạng table và support tất cả các kiểu kết nối: ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC).

• Replication (Cơ chế tạo bản sao) • Integration Services (DTS)

• Di chuyển, sao chép và chuyển đổi dữ liệu

• Analysis Services

Hệ quản trị Cơ sở dữ liệu 37 Hệ quản trị Cơ sở dữ liệu 38

7.3. Các thành phần của SQL Server (tt)

7.4. Các CSDL hệ thống của SQL Server

• SQL Server hỗ trợ ba loại cơ sở dữ liệu:

• Notification Services

• Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển

và triển khai các ứng dụng tạo và gửi thông báo.

Cơ sở dữ liệu hệ thống

• Reporting Services

 Được tạo ra bởi SQL Server. Các cơ sở dữ liệu này được sử dụng để lưu thông tin về SQL Server..

• Xây dựng các ứng dụng báo cáo

 Hơn nữa, các cơ sở dữ liệu này còn được sử

• Full Text Search Service

dụng để quản lý các cơ sở dữ liệu người dùng .  Người sử dụng SQL Server có thể tạo các cơ sở dữ

• Truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các

liệu người dùng định nghĩa

Cơ sở dữ liệu người dùng định nghĩa

 Mục đích của các cơ sở dữ liệu này là để lưu dữ

CSDL SQL Server • Service Broker

liệu của người sử dụng

• Service Broker giao tiếp qua giao thức TCP/IP và cho phép các

 SQL Server cung cấp các cơ sở dữ liệu mẫu để

Cơ sở dữ liệu ví dụ

người sử dụng làm việc với SQL Server

component khác nhau có thể được đồng bộ cùng nhau theo hướng trao đổi các message.

 Trong SQL Server là AdventureWorks

10

Hệ quản trị Cơ sở dữ liệu 39 Hệ quản trị Cơ sở dữ liệu 40

8/25/2017

7.4. Các CSDL hệ thống của SQL Server

7.4. Các CSDL hệ thống của SQL Server (tt)

Các cơ sở dữ liệu hệ thống Cơ sở dữ liệu

Mô tả

master

Cơ sở dữ liệu này lưu trữ các tất cả các thông tin về hệ thống của SQL Server.

msdb

Cơ sở dữ liệu này được sử dụng bởi dịch vụ SQL Server Agent để nhắc nhở các thực hiện công việc

theo lịch biểu và các công việc khác.

model

Cơ sở dữ liệu này được sử dụng như là cơ sở dữ liệu mẫu cho tất cả các cơ sở dữ liệu được người dung tạo ra sau này trong SQL Server.

tempdb

Các kết quả tạm thời, đối tượng tạm thời được tạo ra trong quá trình xử lý tính toán được lưu trong cơ sở dữ liệu này

Hệ quản trị Cơ sở dữ liệu 41 Hệ quản trị Cơ sở dữ liệu 42

7.5. Các đối tượng CSDL

8. Transact – SQL

8.1. Giới thiệu 8.2. Khai báo và sử dụng biến 8.3. Các lệnh điều khiển

11

Hệ quản trị Cơ sở dữ liệu 43 Hệ quản trị Cơ sở dữ liệu 44

8/25/2017

8.1. Giới thiệu

8.2. Khai báo và sử dụng biến

• Transact-SQL (T-SQL) là ngôn ngữ phổ biến nhất được sử dụng trong

• Biến cục bộ

thế giới CSDL.

DECLARE @Tên_biến kiểu_dữ_liệu[,…]

• T-SQL là ngôn ngữ khá mạnh có đề cập đến kiểu dữ liệu, đối tượng

• Ví dụ:

tạm thời, các thủ tục hệ thống và các thủ tục mở rộng.

DECLARE @ten_ncc

varchar(50), @ngayxh DATETIME

• T-SQL còn có khả năng xử lý trên mẫu tin, xử lý có điều kiện, điều

• Gán giá trị cho biến:

khiển giao tác, xử lý lỗi và biệt lệ.

Dùng SET hoặc SELECT cùng với phép gán (= )

Hệ quản trị Cơ sở dữ liệu 45 Hệ quản trị Cơ sở dữ liệu 46

8.2. Khai báo và sử dụng biến (tt)

8.2. Khai báo và sử dụng biến (tt)

• Biến hệ thống

• Các biến hệ thống trong SQL Server luôn bắt đầu bằng 2 chữ @@. • Giá trị mà chúng ta đang lưu trữ do hệ thống SQL cung cấp. • Người lập trình không can thiệp trực tiếp để gán giá trị vào các biến

hệ thống.

• Ví dụ:

DECLARE @TongSLDat int

SELECT * FROM NHACC

SELECT

@TongSLDat = SUM(SLDAT)

SELECT @@ROWCOUNT

FROM

CTDH

12

Hệ quản trị Cơ sở dữ liệu 47 Hệ quản trị Cơ sở dữ liệu 48

8/25/2017

8.2. Khai báo và sử dụng biến (tt)

8.3. Các lệnh điều khiển

Tên biến

kiểu trả về Dùng để trả về

• Cấu trúc rẽ nhánh IF…ELSE

connections

số nguyên Tổng số các kết nối vào SQL Server từ khi nó được khởi

động

Error

số nguyên

IF

Biểu_thức_luận_lý

số mã lỗi của câu lệnh thực hiện gần nhất. Khi một lệnh thực hiện thành công thì biến này có giá trị là 0

Language

chuỗi

Câu_lệnh1|khối_lệnh1

Tên ngôn ngữ mà hệ thống SQL đag sử dụng. Mặc định là US_English

RowCount

số nguyên Tổng số mẩu tin được tác động vào câu lệnh truy vấn gần

ELSE

nhất

ServerName

chuỗi

Tên của máy tính cục bộ được cài đặt trong SQL Server

Câu_lệnh2|khối_lệnh2

ServiceName

chuỗi

Tên dịch vụ kèm theo bên dưới SQL Server

Fetch_Status

số nguyên

Trạng thái của việc đọc dữ liệu trong bảng theo cơ chế dòng mẩu tin (cursor). Khi dữ liệu đọc mẩu tin thành công thì biến này có giá trị là 0

Version

chuỗi

Phiên bản, ngày của phẩm SQL Server và loại CPU

Hệ quản trị Cơ sở dữ liệu 49 Hệ quản trị Cơ sở dữ liệu 50

8.3. Các lệnh điều khiển (tt)

8.3. Các lệnh điều khiển (tt)

IF (SELECT COUNT(*) FROM CTXUAT WHERE SLXUAT>4)>0

CASE

• Cấu trúc CASE

BEGIN

Print “Danh sách các hàng hoá bán ra với số lượng lớn hơn 4”

WHEN THEN WHEN THEN … [ELSE ]

SELECT

CTXUAT.MaMH, TenMH, SLXuat

END

FROM

CTXUAT, MATHANG

WHERE

CTXUAT.MaMH = MATHANG.MaMH

AND

SLXuat>4

SELECT HONV, TENNV FROM NHANVIEN WHERE YEAR(GETDATE()) – YEAR(NGSINH) >= ( CASE PHAI

END

WHEN 'Nam' THEN 60 WHEN 'Nu' THEN 55

ELSE

END )

Print “chưa bán hàng nào với số lượng lớn hơn 4”

13

Hệ quản trị Cơ sở dữ liệu 51 Hệ quản trị Cơ sở dữ liệu 52

8/25/2017

8.3. Các lệnh điều khiển (tt)

• Cấu trúc lặp WHILE

DECLARE @Songuyen

INT

WHILE

Biểu_thức_luận_lý

SET

@Songuyen = 100

BEGIN

WHILE

(@Songuyen < 110)

Các_lệnh_lặp

BEGIN

END

Print “Số nguyên: ” + convert(char(3), @songuyen)

SET @Songuyen = @Songuyen +1

END

14

Hệ quản trị Cơ sở dữ liệu 53 Hệ quản trị Cơ sở dữ liệu 54