Thành phần này có nhiệm vụ đáp ứng các lệnh truy vấn dữ liệu từ người dùng và đảm bảo tính nhất quán của cơ sở dữ liệu.. Disk Manager: đây là phần thực hiện việc quản lý dữ liệu ở.[r]
(1)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide of 26 Bài 1: Giới thiệu hệ quản trị sở liệu mơ hình
dữ liệu
Định nghĩa hệ quản trị sở liệu (CSDL) Người dùng hệ quản trị sở liệu Mô tả cần thiết sở liệu
Các thành phần CSDL
Xác định cần thiết việc lên kế hoạch phát triển
CSDL
Xác định giai đoạn phát triển sở liệu
Xác định hậu việc phân tích thiết kế CSDL thực
hiện không tốt
(2)Giới thiệu hệ quản trị sở liệu
Cơ sở liệu tập hợp ghi (record) thông tin Một
trong nhiệm vụ quan trọng hệ thống máy tính lưu trữ xử lý liệu
Hệ quản trị sở liệu (Database Management System
DBMS) thiết kế để quản lý khối lượng liệu lớn Mục đích hệ quản trị CSDL là:
• Cung cấp mơi trường công cụ để lưu trữ truy xuất
dữ liệu từ sở liệu cách hiệu
• Lưu giữ thơng tin người dùng hệ quản trị sở
(3)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide of 26 Các loại người dùng hệ quản trị CSDL
Có loại người dùng cho hệ quản trị sở liệu:
Người lập trình ứng dụng (Application Programmer):
người phát triển ứng dụng để người dùng cuối sử dụng để tương tác với sở liệu
Người dùng cuối (End User): Người dùng cuối
tương tác với sở liệu thơng qua chương trình ứng dụng
Người quản trị sở liệu (Database administrator DBA):
(4)Lý dùng hệ quản trị CSDL để lưu trữ
Đầu tiên để lưu trữ liệu người ta dùng hệ thống tập tin
để lưu trữ Cách lưu trữ thể số nhược điểm sau:
• Dữ liệu lưu trữ bị dư thừa: Cùng liệu lưu
nhiều nơi khơng cần thiết
• Dữ liệu không quán: Do liệu lưu nhiều
(5)(6)Lý dùng hệ quản trị CSDL lưu trữ (tiếp theo) Dùng hệ quản trị CSDL để lưu trữ có ưu điểm sau: Giảm thiểu dư thừa liệu
Tránh không đồng liệu Dữ liệu chia sẻ
Dữ liệu bảo mật an tồn
(7)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide of 26
Các thành phần chức hệ quản trị CSDL
Hệ quản trị sở liệu có thành phần chức sau:
Database manager: thành phần hệ quản trị
cơ sở liệu Thành phần có nhiệm vụ đáp ứng lệnh truy vấn liệu từ người dùng đảm bảo tính quán sở liệu
File Manager: Thành phần chịu trách nhiệm phục vụ
tất yêu cầu liệu Nó liên hệ với disk manager để lấy khối liệu từ đĩa
Disk Manager: phần thực việc quản lý liệu
(8)(9)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide of 26 Ngôn ngữ truy vấn liệu
Để tương tác với liệu lưu trữ bên sở
liệu người dùng dùng ngôn ngữ truy vấn liệu (Query language) Ngôn ngữ truy vấn liệu có dạng sau:
• Ngơn ngữ định nghĩa liệu ( Data Definition Language
DDL)
• Ngôn ngữ xử lý liệu (Data Manipulation Language
DML)
• Ngơn ngữ điều khiển liệu (Data Control Language
(10)Lên kế hoạch phát triển sở liệu
Lên kế hoạch phát triển cho hệ quản trị sở liệu
trình chiến lược để tìm xem thơng tin mà tổ chức cần thiết cho thời gian tới
Lợi ích việc lên kế hoạch phát triển database:
• Cho thấy rõ tình trạng thơng tin
lưu tổ chức
• Tìm điều chỉnh lại yêu cầu tài nguyên cho tổ
chức
• Giúp cho phát triển hệ quản trị CSDL đáp ứng
được yêu cầu tổ chức
• Giúp cho việc lên kế hoạch hành động để đạt
(11)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide 11 of 26 Quy trình phát triển sở liệu
Quy trình phát triển sở liệu bao gồm giai đoạn:
Lên kế hoạch ban đầu: Trong giai đoạn này, công ty thu
thập thông tin ứng dụng dùng
Nghiên cứu tính khả thi: Trong giai đoạn nghiên
cứu tính khả thi kỹ thuật, kinh tế cách vận hành CSDL
Định nghĩa yêu cầu CSDL: Giai đoạn xác định
(12)Quy trình phát triển CSDL (tiếp theo)
Thiết kế mức luận lý: Trong giai đoạn thiết kế lược
đồ CSDL mức luận lý
Hiện thực: Trong giai đoạn ta chọ hệ quản trị CSDL
và chuyển thiết kế từ mức luận lý sang thực hệ quản trị CSDL vừa chọn
Đánh giá bảo trì sở liệu: sau thiết kế
(13)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide 13 of 26 Hậu việc phân tích, thiết kế thực
CSDL không tốt
Nếu ta phân tích, thiết kế thực CSDL khơng tốt,
sở liệu không hoạt động giống ta mong đợi Một số nguyên nhân thường dẫn đến CSDL hoạt động sai như:
• Người dùng trực tiếp CSDL khơng xác định
đầy đủ phân tích thiết kế
• Dữ liệu thu thập q
• Cơ sở liệu khơng dễ dàng thay đổi để đáp ứng với
(14)Mơ hình dữ liệu
Mơ hình dữ liệu mơ tả cách tổ chức liệu bên
CSDL
Mơ hình liệu cịn mơ tả mối quan hệ liệu ràng
buộc định nghĩa liệu
Mơ hình liệu dùng rộng rãi mơ hình thực
(15)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide 15 of 26 Mơ hình thực thể mối liên kết
Mơ hình thực thể mối liên kết dựa mô tả đối tượng
trong giới thực gọi thực thể mối liên kết chúng
Sơ đồ dùng để thực mơ hình thực thể mối liên kết gọi sơ
đồ thực thể mối liên kết ERD (Entity Relationship Diagram)
Các thành phần sơ đồ ERD: • Thực thể
(16)(17)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide 17 of 26 Thực thể (Entity)
Thực thể đối tượng, nơi chốn, người… mà cần
lưu giữ thông tin
Thực thể đặt tên vẽ hình chữ nhật
Thực thể có loại thực thể độc lập thực thể phụ
thuộc
Thực thể phụ thuộc gọi thực thể yếu thực
thể mà tồn phụ thuộc vào thực thể khác
Thực thể yếu mô tả hình chữ nhật có cạnh
(18)(19)(20)Mối quan hệ
Mối quan hệ thể cộng tác thực thể
Mối quan hệ thể hình thoi có
tên quan hệ
Mối quan hệ tồn thực thể
cùng thực thể Giữa hai thực thể có nhiều mối quan hệ
Mối quan hệ có dạng • Quan hệ –
(21)(22)(23)(24)(25)(26)(27)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide 27 of 26 Thuộc tính
Thuộc tính thể đặt điểm thực thể
Thuộc tính thể hình elipse, với tên thuộc
tính vẽ bên hình Thuộc tính khóa gạch dưới
(28)(29)©NIIT Giới thiệu hệ quản trị sở liệu Bài / Slide 29 of 26 Tóm tắt
Trong bạn học:
Định nghĩa hệ quản trị sở liệu (CSDL) Người dùng hệ quản trị sở liệu Mô tả cần thiết sở liệu
Các thành phần CSDL
Xác định cần thiết việc lên kế hoạch phát triển
CSDL
Xác định giai đoạn phát triển sở liệu
Xác định hậu việc phân tích thiết kế CSDL
thực không tốt
(30)Tóm tắt (tiếp theo)
(31)©NIIT Thiết kế sở liệu Bài / Slide of 26
Bài 2: Thiết kế sở liệu
Giới thiệu hệ quản trị sở liệu quan hệ
Một số hệ quản trị sở liệu quan hệ phổ biến Thiết kế sở liệu quan hệ từ sơ đồ ERD
(32)Giới thiệu hệ quản trị sở liệu quan hệ
Một phương pháp mơ hình hóa liệu được sử dụng thơng dụng mơ hình quan hệ
Trong mơ hình quan hệ liệu lưu trữ cấu trúc dạng bảng, bảng có nhiều dịng cột
(33)©NIIT Thiết kế sở liệu Bài / Slide of 26
(34)Cấu trúc mơ hình quan hệ
Một bảng gọi quan hệ (relation)
Một dòng gọi (tuple)
Một cột bảng gọi thuộc tính ( attribute) Số lượng cột bảng gọi bậc
(degree) của bảng
Một cột tập hợp số cột xác định
(35)©NIIT Thiết kế sở liệu Bài / Slide of 26
Cấu trúc mơ hình quan hệ (tiếp theo)
Miền trị (domain) cột tập hợp giá
trị mà cột chứa
Trong RDBMS, nếu cột không chứa
(36)(37)©NIIT Thiết kế sở liệu Bài / Slide of 26
Cấu trúc mơ hình quan hệ (tiếp theo)
Mối quan hệ hai bảng thể
dữ liệu giống lưu trữ hai bảng
Nếu liệu lưu trữ cột giống với
dữ liệu cột khóa bảng khác cột gọi khóa ngoại (foreign key)
Cặp khóa – khóa ngoại hình thành nên
quan hệ cha bảng
Hình vẽ sau mơ tả mối quan hệ khóa
(38)(39)(40)Một số hệ quản trị sở liệu quan hệ Oracle
Microsoft SQL Server DB2
(41)©NIIT Thiết kế sở liệu Bài / Slide 11 of 26
Chuyển đổi sơ đồ ER sang bảng
Một sở liệu thiết kế sơ đồ ER
sẽ chuyển sang dạng bảng để thực
Sơ đồ ER bao gồm phần tử: • Thực thể thường
(42)Chuyển đổi sơ đồ ER sang bảng (tiếp theo) Một thực thể chuyển sang thành bảng Các thuộc tính thực thể chuyển sang thành
(43)©NIIT Thiết kế sở liệu Bài / Slide 13 of 26 Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
Mối quan hệ sơ đồ ER chuyển sang
(44)Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
(45)©NIIT Thiết kế sở liệu Bài / Slide 15 of 26 Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
(46)Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
(47)©NIIT Thiết kế sở liệu Bài / Slide 17 of 26 Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
Khóa cho bảng sinh quan hệ
(48)Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
(49)©NIIT Thiết kế sở liệu Bài / Slide 19 of 26 Chuyển đổi sơ đồ ER sang bảng (tiếp theo)
(50)Các điều cần ý thiết kế sở liệu
Không đưa thêm thuộc tính khơng cần thiết Nếu có thực thể có thuộc tính ta
(51)(52)Các điều cần ý thiết kế sở liệu (tiếp theo)
(53)©NIIT Thiết kế sở liệu Bài / Slide 23 of 26
Tóm tắt
Trong bạn học:
Mơ hình dữ liệu quan hệ
Hệ quản trị sở liệu quan hệ
Một số hệ quản trị sở liệu quan hệ Khái niệm khóa chính, khóa ngoại
(54)Bài tập
Bài 1: Shopping Spree một cửa hàng bán hàng lưu niệm New York, cửa hàng có nhiều khách hàng đến để mua hàng Cửa hàng cần phải lưu thông tin khách hàng giao dịch mà khách hàng giao dịch với cửa hàng Hãy vẽ sơ đồ ER chuyển sang dạng bảng tương ứng
(55)©NIIT Truy vấn sở liệu Bài / Slide of 25
Bài 3: Truy vấn sở liệu
Mục tiêu:
Các đặt điểm mơ hình client – server Xác định liệu vào câu truy vấn
Lên kế hoạch tạo định dạng cho kết câu truy vấn Dùng câu lệnh Select với tóan tử quan hệ
Dùng câu lệnh Select với tóan tử luận lý
Dùng câu lệnh Select với toán tử so sánh phần tử miền trị Dùng câu lệnh Select với toán tử so sánh phần tử với danh sách Dùng hàm nhóm
(56)Đặt điểm mơ hình client – server
Trong mơ hình Client – Server (Mơ hình khách – chủ) chức
năng ứng dụng chia làm trình: trình client trình server
Quá trình client xử lý liệu nhập giao diện người dùng Quá trình server thực tất tác vụ liên quan
(57)©NIIT Truy vấn sở liệu Bài / Slide of 25
Ưu điểm mơ hình client – server
Chia liệu: Dữ liệu lưu trữ tập trung máy
chủ dùng chung cho toàn người dùng hệ thống
Giảm thiểu dư thừa liệu thời gian bảo trì: Vì
(58)Giới thiệu Microsoft SQL Server
MS SQL Server Microsoft thực dựa mơ hình
client – server
MS SQL Server cung cấp nhiều đặt điểm cần thiết để
quản lý liệu Các đặt điểm bậc là:
• Hỗ trợ chế truy xuất liệu từ web
• Dễ dàng mở rộng nâng cấp liệu cần lưu trữ lớn • Có độ tin cậy cao
(59)©NIIT Truy vấn sở liệu Bài / Slide of 25
Giới thiệu SQL Server (tiếp theo)
SQL Server cung cấp ngôn ngữ để truy xuất quản lý
liệu lưu trữ SQL Server Ngôn ngữ gọi Ngôn Ngữ truy vấn có cấu trúc (Structured Query Language - SQL)
MS SQL Server cung cấp thêm chức mở rộng
của ngôn ngữ SQL gọi ngôn ngữ T-SQL (Transact SQL)
Các kiểu liệu SQL Server: SQL Server lưu giữ
(60)Truy vấn liệu hiển thị số cột bảng
Ví dụ minh họa:
Các thông tin chi tiết tuyển dụng lưu trữ sở liệu RECRUITMENT SQL Server Các bảng chứa thông tin ứng viên, cấp, địa liên lạc, thơng tin vị trí công việc cần tuyển dụng, thông tin khác yêu cầu nhân viên tuyển dụng
Hãy tạo báo cáo bao gồm tên, thành phố, số điện thoại ứng viên bên ngịai cơng ty
(61)©NIIT Truy vấn sở liệu Bài / Slide of 25 Các bước để truy vấn liệu
Xác định cấu trúc kết câu lệnh truy vấn Viết câu truy vấn
Thực thi câu truy vấn
(62)Các bước để truy vấn liệu (tiếp theo)
(63)©NIIT Truy vấn sở liệu Bài / Slide of 25 Các bước để truy vấn liệu (tiếp theo)
Viết câu truy vấn: Câu lệnh SQL để truy vấn liệu có cú pháp sau:
SELECT [ALL | DISTINCT] select_column_list [INTO [new_table_name]]
[FROM {table_name | view_name}[(optimizer_hints)]
[[,{table_name2 | view_name2}[(optimizer_hints)] [WHERE clause]
(64)Các bước để truy vấn liệu (tiếp theo) Viết câu truy vấn:
SELECT vFirstName, vLastName, cCity, cPhone FROM ExternalCandidate
Chạy câu lệnh truy vấn: demo SQL Server
(65)©NIIT Truy vấn sở liệu Bài / Slide 11 of 25
Hiển thị tên cột thân thiện
Ví dụ minh họa: Viết câu query hiển thị tên
nhà tuyển dụng mức phí để thuê nhà tuyển dụng làm việc
(66)Hiển thị tên cột thân thiện
Trong yêu cầu trên, kết câu truy vấn liệu có
hiển thị tên cột bảng dạng thân thiện với người dùng
Có hai cách để hiển thị liệu dạng thân thiện: • Cách 1:
SELECT column_heading=column_name[,column name…] FROM table_name
• Method 2:
SELECT column_name column_heading [,column_name…]
(67)©NIIT Truy vấn sở liệu Bài / Slide 13 of 25
Hiển thị tên cột thân thiện
Viết câu truy vấn yêu cầu theo hai cách học:
• Cách 1:
SELECT 'Recruiter Name' = cName, 'Hire Charge' = siPercentageCharge FROM ContractRecruiter
• Method 2:
SELECT cName 'Recruiter Name', siPercentageCharge 'Hire Charge' FROM ContractRecruiter
(68)Hiển thị số dòng bảng
Viết câu truy vấn hiển thị danh sách trường Đại Học Cao Đẳng bang California
(69)©NIIT Truy vấn sở liệu Bài / Slide 15 of 25
Hiển thị số dòng bảng
Để giới hạn dòng trả SQL Server sử dụng câu lệnh Select … From … Where Câu lệnh có cấu trúc sau:
SELECT column_list FROM table_name
WHERE search_condition
Trong đó có dịng thỏa mãn điều kiện search_condition trả
Câu truy vấn viết:
(70)Các toán tử dùng mệnh đề Where
Trong SQL Server, điều kiện tìm kiếm mệnh đề WHERE dùng tốn tử sau:
• Tốn tử quan hệ: >, <, >=, <= … • Tốn tử luận lý: and, or, not
• Tốn tử so sánh miền trị: between … and
(71)©NIIT Truy vấn sở liệu Bài / Slide 17 of 25
Hiển thị dòng thỏa mãn nhiều điều kiện
Viết câu truy vấn hiển thị danh sách ứng viên có điểm thi nằm khỏang 80 -100
(72)©NIIT Truy vấn sở liệu Bài / Slide 18 of 25
Hiển thị dòng thỏa mãn nhiều điều kiện
Cú pháp câu lệnh truy vấn có dùng tóan luận lý:
SELECT column_list FROM table_name
WHERE conditional_expression{AND/OR} [NOT] conditional_expression
Câu truy vấn theo yêu cầu viết sau: SELECT vFirstName, vLastName, siTestScore FROM ExternalCandidate
(73)©NIIT Truy vấn sở liệu Bài / Slide 19 of 25
Toán tử quan hệ
Toán tử quan hệ dùng mệnh đề Where theo cú pháp sau:
SELECT column_list FROM table_name
WHERE expression1 comparison_operator expression2
Ví dụ hiển thị mã nhân viên có thu nhập hàng năm lớn 40.000
select cEmployeeCode
from AnnualSalary
(74)©NIIT Truy vấn sở liệu Bài / Slide 20 of 25 Toán tử so sánh miền trị
Tốn tử so sánh miền trị có hai tốn tử: BETWEEN NOT BETWEEN
Toán tử so sánh miền trị dùng mệnh đề Where theo cú pháp sau:
SELECT column_list FROM table_name
WHERE expression1 range_operator expression2 AND expression3
Ví dụ hiển thị mã nhân viên có thu nhập hàng năm khỏang 30.000 đến 40.000
select cEmployeeCode from AnnualSalary
(75)©NIIT Truy vấn sở liệu Bài / Slide 21 of 25 Toán tử so sánh phần tử với danh sách
Toán tử so sánh phần tử với danh sách có hai tốn tử: IN NOT IN
Toán tử so sánh phần tử với danh sách có cú pháp sau: SELECT column_list FROM table_name
WHERE expression list_operator (‘value_list‘)
Ví dụ: Hãy hiển thị thơng tin trường Đại học thuộc bang New York Texas:
select * from college
(76)©NIIT Truy vấn sở liệu Bài / Slide 22 of 25 Sử dụng hàm nhóm SQL
Yêu cầu: Viết câu truy vấn cho biết số lượng báo quảng cáo tuyển dụng cho công ty
SQL hỗ trợ hàm tương tác với tập hợp giá trị trả cột Các hàm gọi hàm nhóm
Có số hàm nhóm sau: AVG, SUM, COUNT, MAX, MIN
Câu truy vấn dùng hàm count:
(77)©NIIT Truy vấn sở liệu Bài / Slide 23 of 25 Chia kết trả thành nhóm
Yêu cầu: Viết câu truy vấn cho biết số lần quảng cáo tờ báo?
SQL hỗ trợ chia kết làm nhiều nhóm nhỏ mệnh đề group by
Mệnh đề group by sử dụng sau:
SELECT 'Newspaper Code' = cNewspaperCode, 'No Of Advts Placed' = COUNT(cNewspaperCode) FROM NewsAd
(78)Tóm tắt
Trong bạn học:
Các đặt điểm mơ hình client – server Xác định liệu vào câu truy vấn
Lên kế hoạch tạo định dạng cho kết câu truy vấn Dùng câu lệnh Select với tóan tử quan hệ
Dùng câu lệnh Select với tóan tử luận lý
Dùng câu lệnh Select với toán tử so sánh phần tử miền trị Dùng câu lệnh Select với toán tử so sánh phần tử với danh sách Dùng hàm nhóm
(79)©NIIT Truy vấn sở liệu Bài / Slide 25 of 25
Bài tập
1 Kết nối vào database GlobalToyz
2 Hiển thị thông tin chi tiết tất đồ chơi bảng toys Hiển thị thông tin chi tiết tất người mua hàng
4 Hiển thị tên, họ, e-mail ID tất người mua hàng Hiển thị tên giá tất đồ chơi
6 Hiển thị tên, địa chỉ, mã vùng tất người nhận đồ chơi
7 Hiển thị họ tên người mua hàng sống California Hiển thị chi tiết hóa đơn có giá trị lớn 75$
(80)Bài 4: Hàm kiểu kết nối câu truy vấn
Mục tiêu:
Cách dùng hàm xử lý chuỗi câu truy vấn Cách dùng hàm xử lý thời gian câu truy vấn Cách dùng hàm xử lý toán học câu truy vấn Sử dụng kiểu kết nối inner join
Sử dụng kiểu kết nối outter join Sử dụng kiểu kết nối self join Sử dụng câu truy vấn
(81)©NIIT Hàm truy vấn liệu Bài / Slide of 25
Hiển thị kết câu truy vấn chữ hoa
Trong SQL, ta muốn kết câu truy vấn chuyển sang toàn chữ hoa ta dùng hàm upper
Cách dùng hàm câu lệnh select có cú pháp sau: SELECT function_name (parameters)
Ví dụ demo:
Viết câu truy vấn hiển thị tên tờ báo, tên người liên lạc số điện thoại liên lạc để công ty liên hệ quảng cáo Tên tờ báo phải hiển thị chữ hoa
(82)Một số hàm xử lý chuỗi
ASCII STR REVERSE
NCHAR DIFFERENCE UNICODE
SOUNDEX QUOTENAME LOWER
CHAR STUFF RIGHT
PATINDEX LEFT UPPER
SPACE REPLICATE LTRIM
CHARINDEX SUBSTRING RTRIM
(83)©NIIT Hàm truy vấn liệu Bài / Slide of 25 Hàm xử lý ngày (Datetime function)
Hàm xử lý ngày tháng dùng để xử lý giá trị thời gian, thực số phép tóan cộng trừ thời gian có hàm để lấy phần thông tin thời gian như: ngày, tháng, năm
Cách dùng hàm datetime câu lệnh select có cú pháp sau: SELECT datetime_function (parameters)
Ví dụ demo:
Ngày hết hạn dự kiến tuyển dụng 10 ngày từ bắt đầu trình tuyển dụng Viết câu truy vấn liệu hiển thị mã trường, ngày bắt đầu tuyển dụng, ngày hết hạn cho tất trường mà công ty định tuyển sinh viên
SELECT cCollegeCode, dRecruitmentStartDate, 'Proposed Deadline' = DATEADD(dd, 10, dRecruitmentStartDate)
(84)Một số hàm xử lý datetime
Tên hàm Tham số
DATEADD (datepart, number, date)
DATEDIFF (datepart, date1, date2)
DATENAME (datepart, date)
DATEPART (datepart, date)
(85)©NIIT Hàm truy vấn liệu Bài / Slide of 25
Hàm toán học
Hàm tốn học dùng để thực phép tính giá trị trả câu truy vấn
Cách dùng hàm toán học câu lệnh select có cú pháp sau:
SELECT function_name (parameters) Ví dụ demo:
Viết câu truy vấn hiển thị tên, số điện thoại điểm vấn ứng viên có tên Helen Điểm phải làm trịn
SELECT vFirstName, cPhone,'Score'= ROUND(79.9,0) FROM ExternalCandidate
(86)Một số hàm toán học
Tên hàm Tham số
ABS (numeric_expression)
ACOS, ASIN, ATAN
(float_expression)
COS, SIN, COT, TAN
(float_expression)
ROUND (numeric_expression,
length)
(87)©NIIT Hàm truy vấn liệu Bài / Slide of 25
Kết nối (Join)
Toán tử JOIN dùng câu truy vấn lấy dữ liệu từ nhiều bảng thời điểm
Cú pháp cho toán tử JOIN sau:
SELECT column_name, column_name [,column_name]
FROM table_name [CROSS|INNER|[LEFT | RIGHT]OUTER] JOIN table_name
[ON table_name.ref_column_name join_operator table_name.ref_column_name]
(88)Join (Tiếp theo)
Có nhiều kiểu kết nối khác nhau:
(89)©NIIT Hàm truy vấn liệu Bài / Slide 10 of 25
Hiển thị liệu từ hai bảng dùng inner join
Inner join dùng để hiển thị liệu từ hai hay nhiều bảng cách so sách giá trị cột giống nhau, dịng có giá trị hai cột hiển thị
Ví dụ minh họa:
Viết câu truy vấn hiển thị tên ứng viên tên văn phòng tuyển dụng ứng viên này?
SELECT 'Candidate Name'=vFirstName,'Recruitment Agency' = cName FROM ExternalCandidate JOIN RecruitmentAgencies
ON
(90)Kết nối liệu dùng outter join
Outter join hiển thị tất dòng bảng, riêng bảng lại hiển thị dòng so trùng với bảng
Ví dụ minh họa:
Viết câu truy vấn hiển thị tên ứng viên bên ngòai tên văn phòng tuyển dụng cho ứng viên có
SELECT vFirstName, vLastName, cName FROM ExternalCandidate
LEFT OUTER JOIN RecruitmentAgencies ON
(91)©NIIT Hàm truy vấn liệu Bài / Slide 12 of 25
Kết nối liệu bảng (Self Join)
Self Join kiểu kết nối mà hàng bảng kết nối với hàng khác bảng
Ví dụ minh họa:
SELECT t1.title,t2.title , t1.price
(92)Câu truy vấn (Sub query)
Câu truy vấn dùng lệnh SQL SELECT, UPDATE, INSERT DELETE gọi câu truy vấn
Câu truy vấn dùng để truy xuất liệu từ nhiều bảng nên dùng để thay tốn tử Join
Câu truy vấn cịn sử dụng mệnh đề WHETE HAVING
(93)©NIIT Hàm truy vấn liệu Bài / Slide 14 of 25
Ví dụ minh họa câu truy vấn
Hãy viết câu truy vấn hiển thị tên nhà tuyển dụng sống thành phố với ứng viên từ bên ngồi có tên: Barbara Johnson
SELECT cName
FROM ContractRecruiter WHERE cCity =
(SELECT cCity FROM ExternalCandidate
(94)Câu truy vấn với mệnh đề IN
Nếu câu truy vấn trả giá trị người ta phải dùng mệnh đề IN thay cho toán tử so sánh (=)
Ví dụ minh họa: Viết câu truy vấn trả mã tác giã có sách bán được? SELECT Au_Id
FROM TitleAuthor
(95)©NIIT Hàm truy vấn liệu Bài / Slide 16 of 25
Câu truy vấn với mệnh đề EXISTS
Câu truy vấn dùng với mệnh đề EXISTS để kiểm tra tồn liệu hay không? Mệnh đề EXISTS trả giá trị TRUE FALSE
Ví dụ minh họa: Viết câu truy vấn trả tên nhà xuất có xuất sách thuộc thể loại business
SELECT Pub_Name FROM Publishers
(96)Câu truy vấn dùng với hàm nhóm
Câu truy vấn dùng với hàm nhóm
Ví dụ minh họa: Hiển thị tên sách có tiền đặt trước lớn số tiền đặt trước trung bình thể loại ‘Business’
SELECT Title FROM Titles
WHERE Advance > (SELECT AVG(Advance) FROM Titles
(97)©NIIT Hàm truy vấn liệu Bài / Slide 18 of 25
Lưu kết câu truy vấn vào bảng
Kết câu truy vấn lưu vào bảng mệnh đề SELECT … INTO
Ví dụ minh họa: Hãy viết câu truy vấn lưu thông tin ứng viên bên tháng năm 2006 vào bảng tạm có tên
TempExternalCandidate
SELECT * INTO tempExternalCandidate FROM ExternalCandidate
(98)Tóm tắt
Trong bạn học:
Cách dùng hàm xử lý chuỗi câu truy vấn Cách dùng hàm xử lý thời gian câu truy vấn Cách dùng hàm xử lý toán học câu truy vấn Sử dụng kiểu kết nối inner join
Sử dụng kiểu kết nối outter join Sử dụng kiểu kết nối self join Sử dụng câu truy vấn
Sử dụng câu truy vấn với mệnh đề IN Sử dụng câu truy vấn với mệnh đề EXITS Sử dụng câu truy vấn với hàm nhóm
(99)©NIIT Hàm truy vấn liệu Bài / Slide 20 of 25
Bài tập
Bài 1: Viết câu truy vấn hiển thị tên, mô tả đánh giá cho tất đồ chơi trẻ em, nhiên hiển thị 40 ký tự phần mô tả
Bài 2: Viết câu truy vấn hiển thị thông tin trình trạng giao hàng theo mẩu sau:
(100)Bài tập
Bài 4: Viết câu truy vấn hiển thị tên tất loại đồ chơi tên thể loại mà thuộc
(101)©NIIT Tạo bảng ràng buộc liệu Bài / Slide of 25 Bài 5: Tạo bảng ràng buộc toàn vẹn liệu
Mục tiêu
Tạo bảng
Thêm liệu vào bảng Xóa bảng
Các kiểu ràng buộc toàn vẹn liệu Các ràng buộc:
(102)Tạo bảng SQL
Trong SQL Server, bảng đối tượng sở liệu dùng để lưu trữ liệu
Dữ liệu bảng tổ chức thành dòng cột
Mỗi dòng bảng thể liệu cột thể thuộc tính liệu
Một bảng MS SQL có tối đa 1024 cột
(103)©NIIT Tạo bảng ràng buộc liệu Bài / Slide of 25
Tạo bảng SQL (Tiếp theo)
Để tạo bảng SQL Server ta dùng câu lệnh CREATE TABLE Lệnh có cú pháp sau:
CREATE TABLE Tên_bảng (
Tên_cột kiểu_dữ_liệu [NULL | NOT NULL] [IDENTITY (SEED, INCREMENT)],
Tên_cột kiểu_dữ_liệu … )[
(104)Tạo bảng SQL (Tiếp theo)
Ví dụ:
CREATE TABLE Sales (
ItemCode char(4) NOT NULL, ItemName char(10) NULL, QtySold int NOT NULL,
(105)©NIIT Tạo bảng ràng buộc liệu Bài / Slide of 25
Tạo bảng SQL (Tiếp theo)
(106)Tạo bảng SQL (Tiếp theo)
Câu lệnh:
CREATE TABLE NewsPaper (
(107)©NIIT Tạo bảng ràng buộc liệu Bài / Slide of 25
Kiểm tra thông tin bảng vừa tạo
Trong MS SQL Server, bạn kiểm tra thơng tin bảng vừa tạo câu lệnh:
sp_Help tên_bảng
(108)Thêm dữ liệu vào bảng
Sau tạo bảng, liệu thêm vào bảng câu lệnh INSERT
Cú pháp câu lệnh INSERT sau: INSERT [INTO] tên_bảng [column_list] VALUES (values_list)
Câu lệnh thêm liệu vào: INSERT Newspaper
VALUES('0001' ,'Texas Times', 'Texas', 'General', 'Jackson
(109)©NIIT Tạo bảng ràng buộc liệu Bài / Slide of 25
Xóa bảng khỏi sở liệu
Xóa bảng khỏi sở liệu dùng câu lệnh DROP TABLE Cú pháp câu lệnh sau:
DROP TABLE Table_name
Ví dụ: Xóa bảng Newspaper vừa tạo ra: DROP TABLE newspaper
(110)Ràng buộc toàn vẹn liệu
Ràng buộc tồn vẹn đảm bảo tính qn đắn liệu lưu trữ bên sở liệu Ràng buộc toàn vẹn phân thành loại:
• Ràng buộc thực thể • Ràng buộc miền trị
• Ràng buộc tham chiếu
(111)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 11 of 25
Ràng buộc toàn vẹn liệu (Tiếp theo)
Ràng buộc thực thể:
Là ràng buộc đảm bảo dòng xác định nhiều thuộc tính gọi khóa Ràng buộc thực thể thực ràng buộc PRIMARY KEY
Ràng buộc miền trị:
(112)Ràng buộc toàn vẹn liệu (Tiếp theo)
Ràng buộc tham chiếu:
Là ràng buộc đảm bảo giá trị khóa ngoại lưu trữ phải khóa bảng khác Ràng buộc thực ràng buộc PRIMARY KEY FOREIGN KEY
Ràng buộc người dùng định nghĩa:
(113)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 13 of 25
Tạo ràng buộc
Ràng buộc dùng để đảm bảo tính tồn vẹn liệu Ràng buộc định nghĩa luật mà liệu phải tuân theo
nhằm đảo bảo tính quán đắn liệu lưu trữ
Ràng buộc tạo bảng tạo thêm vào sau bảng tạo
Ràng buộc tầm vực • Tầm vực cột
(114)Tạo ràng buộc (Tiếp theo)
Cú pháp câu lệnh tạo ràng buộc sau: CREATE TABLE tên_bảng
tên_cột CONSTRAINT tên_ràng buộc loại_ràng_buộc [,CONSTRAINT tên_ràng_buộc loại_ràng_buộc]
Cú pháp câu lệnh thêm vào ràng buộc vào bảng có sau:
ALTER TABLE tên_bảng
(115)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 15 of 25
Tạo ràng buộc (Tiếp theo)
Ví dụ:
ALTER TABLE Sales WITH NOCHECK
ADD CONSTRAINT chkQtySold CHECK (QtySold >0)
Xóa ràng buộc dùng câu lệnh có cú pháp sau: ALTER TABLE tên_bảng
(116)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 16 of 25
Tạo ràng buộc Primary Key
Ràng buộc PRIMARY KEY định nghĩa hay nhiều cột mà giá trị xác định dòng bảng Cú pháp ràng buộc sau:
[CONSTRAINT tên_ràng_buộc PRIMARY KEY [CLUSTERED|NONCLUSTERED]
(tên_cột [, tên_cột [, tên_cột [, …]]])] Ví dụ:
CREATE TABLE Employee
(117)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 17 of 25
Tạo ràng buộc UNIQUE
Ràng buộc UNIQUE dùng để đảm bảo tính cột hay nhiều cột cho thuộc tính khơng phải khóa Có thể có nhiều ràng buộc UNIQUE định nghĩa
bảng
Ràng buộc UNIQUE có cú pháp sau:
[CONSTRAINT tên_ràng_buộc UNIQUE [CLUSTERED | NONCLUSTERED]
(tên_cột [, tên_cột[, tên_cột[, …]]]) Ví dụ:
ALTER TABLE Employee
(118)Tạo ràng buộc FOREIGN KEY
Ràng buộc FOREIGN KEY dùng để đảm bảo tính quán hai bảng liệu bảng phụ thuộc vào liệu bảng
Cú pháp:
[CONSTRAINT tên_ràng_buộc FOREIGN KEY (tên_cột [, tên_cột [, …]])
REFERENCES tên_bảng (column_name [, tên_cột [, …]])] Ví dụ:
ALTER TABLE Employee
ADD CONSTRAINT fkDepartmentCode FOREIGN KEY (cDepartmentCode) REFERENCES
(119)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 19 of 25
Tạo ràng buộc CHECK
Ràng buộc CHECK dùng để đảm bảo giá trị cột thuộc miền trị cho trước
Cú pháp:
[CONSTRAINT tên_ràng_buộc] CHECK (expression) Ví dụ:
CREATE TABLE ContractRecruiter (…
cCity char(15) CONSTRAINT chkCity CHECK (cCity IN ('Berkeley', 'Boston', 'Chicago', 'Dallas', 'München', 'New Jersey', 'NewYork', 'Paris', 'Washington'))
(120)Tạo ràng buộc DEFAULT
Ràng buộc DEFAULT dùng để gán giá trị mặt định cho cột giá trị cột khơng xác định
Trên cột, có tối đa ràng buộc DEFAULT Cú pháp:
[CONSTRAINT tên_ràng_buộc] DEFAULT (constant_expression | NULL)
Ví dụ:
ALTER TABLE Employee
(121)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 21 of 25
Ví dụ tạo ràng buộc
Hãy viết câu lệnh SQL tạo bảng Newspaper với số yêu cầu sau:
• Thuộc tính cNewspaperCode phải khóa
• Thuộc tính cPhone có giá trị: ([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
• Thuộc tính cCountryCode có giá trị mặc định ‘001’
Trong bảng NewAd sửa lại thuộc tính bảng sau:
• Thuộc tính cNewsAdNo khóa
(122)Ví dụ tạo ràng buộc: CREATE TABLE Newspaper (
cNewspaperCode typNewspaperCode CONSTRAINT pkNewspaperCode PRIMARY KEY,
cNewspaperName char(20) NOT NULL, vRegion varchar(20), vTypeOfNewspaper varchar(20), vContactPerson varchar(35), vHOAddress varchar(35), cCity char(20), cState char(20), cZip char(10),
cCountryCode char(3) CONSTRAINT defCountryCode DEFAULT('001'),
cFax char(15),
cPhone char(15) CONSTRAINT chkPhone CHECK(cPhone LIKE('([0-9][0- LIKE('([0-9][0-9])[0-LIKE('([0-9][0-LIKE('([0-9][0-9]-[0-LIKE('([0-9][0-LIKE('([0-9][0-LIKE('([0-9][0-9]'))
(123)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 23 of 25
Ví dụ tạo ràng buộc
ALTER TABLE NewsAd
ADD CONSTRAINT pkNewsAdNo PRIMARY KEY (cNewsAdNo)
ALTER TABLE NewsAd
ADD CONSTRAINT fkNewspaperCode FOREIGN KEY (cNewspaperCode)REFERENCES
(124)Tóm tắt
Trong bạn học Tạo bảng
Thêm liệu vào bảng Xóa bảng
Các kiểu ràng buộc toàn vẹn liệu Các ràng buộc:
(125)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 25 of 25
Tóm tắt (Tiếp theo)
Trong bạn học
Tạo ràng buộc PRIMARY KEY Tạo ràng buộc FOREIGN KEY Tạo ràng buộc UNIQUE
(126)Bài tập
(127)©NIIT Tạo bảng ràng buộc liệu Bài / Slide 27 of 25
Bài tập
Bài 2: Tạo lại bảng colleges theo yêu cầu sau: • cCollegeCode phải khóa
• Phone number phải có dạng ([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
• cCity phải có giá trị mặt định New Orleans'
Bài 3: Tạo bảng CampusRecruitment (cCampusRecruitmentCode char(4), cCollegeCode char(4), dRecruitmentStartDate
datetime, dRecruitmentEndDate datetime) thỏa mãn điều kiện:
• cCampusRecruitmentCode khóa
(128)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Nội dung
Khái niệm chương trình ngơn ngữ lập trình
Chức trình biên dịch, liên kết trình thơng dịch Cách chọn Ngơn ngữ lập trình
Giải thuật Lưu đồ
(129)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide of 23
Chương trình
Máy tính thiết kế để nhận liệu (Input), xử lý (Process) đưa kết (Output) Q trình cịn gọi I-P-O
Tập hợp lệnh để thực cơng việc gọi chương trình (program)
Nhiều chương trình kết hợp với thành ứng dụng (application)
Input Output
(130)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Ngôn ngữ lập trình
Ngơn ngữ lập trình phương tiện truyền thơng Lập trình viên máy tính
(131)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide of 23
Ngơn ngữ lập trình (tiếp theo)
Ngơn ngữ lập trình chia làm loại: Ngơn ngữ máy:
• Từ vựng tạo nên từ mã nhị phân 0-1 để tạo câu lệnh, dẫn nhằm yêu cầu
máy tính thực cơng việc
• Các lệnh máy tính thực trực tiếp (khơng qua mã trung gian)
• Ngồi ngơn ngữ máy, NNLT khác cần dịch mã trung gian trước thực thi
2 Ngơn ngữ Assembly:
• Cịn gọi ngơn ngữ máy tính hệ thứ ngơn ngữ sử dụng bảng mã chữ ký
hiệu để đưa dẩn
3 Ngơn ngữ cấp cao:
• Đây ngơn ngữ thân thiện với người sử dụng dùng từ ngữ thông dụng tiếng Anh
(132)Ngôn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Trình biên dịch
(133)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide of 23
Trình biên dịch (tiếp theo)
(134)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Trình biên dịch (tiếp theo)
Khi trình biên dịch dịch chương trình, kiểm tra Từ vựng Cú pháp câu lệnh
Nếu trình biên dịch tìm thấy lỗi chương trình nguồn hiển thị danh sách lỗi
(135)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide of 23
Bộ liên kết
Mỗi NNLT có thư viện chứa từ khóa với chức định nghĩa trước Người lập trình sử dụng từ khóa kết hợp với cú pháp để viết chương trình
Khi dịch, trình biên dịch sinh mã trung gian
Để sinh mã thực thi từ mã trung gian chức từ khóa (lưu thư viện) thư viện cần đưa vào mã trung gian
(136)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Bộ liên kết (tiếp theo)
(137)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 10 of 23
Trình thơng dịch
Một số ngơn ngữ lập trình cấp cao sử dụng chế dịch khác gọi thơng dịch Chương trình dịch theo chế gọi trình thơng dịch
Trình thơng dịch đọc lệnh viết ngơn ngữ lập trình cấp cao, chuyển sang mã máy, thực thi câu lệnh không lưu mã trung gian
Chương trình thực thi dùng trình thơng dịch tiết kiệm thời gian trình biên dịch
Trình thơng dịch giúp cho việc dị tìm lỗi dễ dàng xác dịng phát sinh lỗi
(138)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Ví dụ ngơn ngữ lập trình cấp cao
Một số ngơn ngữ lập trình cao cấp là: • BASIC
• Pascal • C
ã Java ã C#
(139)âNIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 12 of 23
Lựa chọn ngơn ngữ lập trình
Một số yếu tố lựa chọn ngơn ngữ lập trình:
• Tiêu chí 1: lựa chọn tùy thuộc vào loại ứng dụng cần phát triển Ví dụ:
- Tạo chương trình thực phép toán đơn giản (+ - * /) ta sử dụng Pascal
- Để phát triển ứng dụng dùng gia đình doanh nghiệp nhỏ dùng Visual BASIC
• Tiêu chí 2: Nếu có nhiều ngơn ngữ phù hợp để phát triển ứng dụng bạn nên chọn ngơn ngữ mà bạn thông thạo
(140)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Giải thuật Lưu đồ
Giải thuật trình tự thực cơng việc Lưu đồ biểu diễn đồ hoạ giải thuật
(141)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 14 of 23
Giải thuật Lưu đồ (tt)
Các ký hiệu sử dụng lưu đồ: • Nhập – Input
• Xử lý – Process
• Quyết định – Decision • Thủ tục – Procedure
(142)Ngôn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Giải thuật Lưu đồ (tt)
Các ký hiệu sử dụng lưu đồ (tt): • Bắt đầu Kết thúc – Start and Stop
• Kết nối trang – On page connector • Kết nối trang khác – Off page connector
(143)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 16 of 23
Giải thuật Lưu đồ (tiếp theo)
(144)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Giải thuật Lưu đồ (tiếp theo)
(145)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
(146)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Các qui tắc vẽ lưu đồ
American National Standards Institute (ANSI) đề nghị số qui luật cần phải tuân theo vẽ lưu đồ sau:
• Toàn lưu đồ nên biểu diễn ký hiệu chuẩn • Lưu đồ nên rõ ràng, xác dễ theo dõi
• Lưu đồ nên có điểm bắt đầu điểm kết thúc
(147)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 20 of 23
Các qui tắc vẽ lưu đồ (tiếp theo)
• Ký hiệu bắt đầu kết thúc nên có đường kết nối • Ký hiệu nhập liệu, xử lý, xuất liệu, hiển thị nên có hai đường
kết nối để nối ký hiệu đứng trước đứng sau chúng
• Ký hiệu định nên có đường kết nối với ký hiệu trước có hai đường kết nối đến hai ký hiệu đứng sau
(148)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Điểm mạnh lưu đồ
Lưu đồ phương pháp tốt để truyền đạt lập luận giải thuật Lưu đồ giúp phân tích vấn đề cách hiệu
Lưu đồ đóng vai trò người hướng dẫn giai đoạn phát triển chương trình
Dễ tìm sửa lỗi lưu đồ
(149)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 22 of 23
Điểm yếu lưu đồ
Lưu đồ dài trãi nhiều trang, làm giảm tính dễ đọc
Việc vẽ lưu đồ công cụ đồ hoạ việc làm tốn nhiều thời gian Thay đổi bước dẫn đến việc vẽ lại toàn lưu đồ Lưu đồ biểu diễn giải thuật phức tạp chứa nhiều đường kết
(150)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Tóm tắt
Tập hợp lệnh để thực công việc gọi chương trình
(program)
Một số chương trình kết hợp với thành ứng dụng (application)
Ngôn ngữ lập trình phương tiện giao tiếp người lập trình máy tính
Trình biên dịch chương trình dịch chương trình nguồn viết ngơn ngữ cấp
cao sang ngôn ngữ máy
Bộ liên kết thực việc kết nối chức từ khóa thư viện
được dùng vào mã trung gian
Trình thơng dịch chương trình dịch câu lệnh chương trình nguồn
sang mã máy, thực thi câu lệnh không lưu mã trung gian
(151)©NIIT
Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Thế giới lập trình Bài / Slide 24 of 23
Bài tập đề nghị:
1 Bài
Vẽ lưu đồ nhập vào họ tên tuổi sinh viên, số tuổi nhập vào âm hay khơng thơng báo “Tuổi khơng thể <= 0”,
Nếu tuổi dương hiển thị tên tuổi Sinh viên 2 Bài
(152)Ngơn ngữ lập trình- Các Khái niệm, Giải thuật & Lưu đồ
Địa nhận nội dung giảng tập:
http://www.niit-vn.com
Góp ý trao đổi:
(153)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide of 23
Nội dung
Khái niệm mã giả - pseudocode Biến vai trị biến
Mơ tả kiểu liệu khác
(154)Ngôn ngữ lập trình - Mã giả, Biến Tốn tử
Khái niệm Mã giả (pseudocode)
Mã giả cách sử dụng từ ngữ tiếng Anh đơn
giản để mơ tả thuật tốn
Mã giả dùng để thay lưu đồ
Các câu lệnh Mã giả sử dụng từ tiếng Anh đơn
giản thể trình tự cơng việc thực
Những từ khóa Mã giả:
begin…end accept
(155)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide of 23
Giới thiệu biến
Bộ nhớ máy tính dùng để lưu liệu người sử dụng cung cấp, lệnh chương trình xử lý liệu sinh kết tương ứng
Bộ nhớ bao gồm nhiều vị trí khác nhau, vị trí chứa liệu lưu trữ tương ứng
(156)Ngôn ngữ lập trình - Mã giả, Biến Tốn tử Giới thiệu biến ( )
Dữ liệu lưu nhớ mà không thay đổi lúc
chương trình thực gọi trị (literal)
Hằng trị phân thành hai loại chính:
• Ký số, ví dụ 20, 15 89.25
(157)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Thế giới lập trình Bài / Slide of 23
Giới thiệu biến (tiếp theo)
(158)Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Kiểu liệu
Số bytes nhớ dùng để lưu trữ biến tùy thuộc vào kiểu liệu chứa biến Kiểu liệu chứa biến được gọi kiểu liệu
Có hai kiểu liệu là:
• Kiểu số (Numeric): Biến thuộc kiểu Numeric chứa giá trị số
(159)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide of 23
Khai báo biến
Biến phải khai báo trước sử dụng
Khi khai báo biến, trình biên dịch thực
hành động sau:
• Cấp phát vị trí nhớ cho biến • Gán tên cho biến
(160)Ngơn ngữ lập trình - Mã giả, Biến Toán tử Khai báo biến ( tiếp theo)
Khi khai báo biến bạn phải đặt tên cho biến, sau
là một số gợi ý thông thường mà bạn nên tuân thủ
khi đặt tên biến:
• Ký tự tên biến nên mô tả kiểu liệu biến, kiểu numeric ký tự n, kiểu Character ký tự c Ví dụ nAge, cName
(161)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Thế giới lập trình Bài / Slide of 23
Khai báo biến ( )
• Tên biến khơng nên có ký tự đặc biệt ! @ # $ % ^ & * ( ) { } [ ] , : ; “ ‘ / \ Nếu tên biến có khoảng trắng, bạn dùng dấu gạch để nối hai từ lại với ví dụ nBasic_Salary
(162)Ngơn ngữ lập trình - Mã giả, Biến Toán tử Gán giá trị vào biến
Tất biến phải gán cho giá trị trước
khi sử dụng
Bạn phải đảm bảo biến phải gán giá trị
phù hợp với kiểu liệu khai báo
Có hai phương thức gán giá trị cho biến gán trực
(163)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide 11 of 23
Gán giá trị cho biến
Gán trực tiếp:
• Giá trị gán trực tiếp vào biến dấu =, lệnh gán trực tiếp có cú pháp sau: variable_name=value
• Ví dụ: nAge=18, cName=“Nguyen Van Nam”
Câu lệnh Accept:
• Giá trị biến gán câu lệnh accept, câu lệnh accept có cú pháp sau: accept variable_name
(164)Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Ví dụ: Vẽ lưu đồ viết mã giả
nhập vào hai số từ người dùng, sau hiển thị tổng hai số
Begin
Numeric nNumber1, nNumber2, nSum
Accept nNumber1 Accept nNumber2
nSum=nNumber1 + nNumber2 Display nSum
(165)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Thế giới lập trình Bài / Slide 13 of 23
Toán tử
Toán tử thể loại phép toán bạn muốn thực
trên phần tử biểu thức
Trong một biểu thức, phần tử mà toán tử tác động
lên được gọi toán hạng
Toán tử chia làm ba thể loại:
• Tốn tử tốn học • Tốn tử logic
(166)Ngơn ngữ lập trình - Mã giả, Biến Toán tử Toán tử toán học
Toán tử toán học dùng để thực phép tốn,
có tốn tử tốn học sau:
• Tốn tử cộng (+): + = • Tốn tử trừ (-): 10 – = • Tốn tử nhân (*): * = • Toán tử chia (/): 10 / =
(167)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Thế giới lập trình Bài / Slide 15 of 23
Toán tử quan hệ
Toán tử quan hệ dùng để so sánh hai toán hạng, kết
quả trả toán tử quan hệ Đúng hay Sai
(TRUE hay FALSE) Các toán tử quan hệ bao gồm:
(168)Ngơn ngữ lập trình - Mã giả, Biến Toán tử Toán tử luận lý
Toán tử luận lý dùng để nối kết hai toán tử
quan hệ biểu thức
Toán tử luận lý bao gồm:
(169)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide 17 of 23
Toán tử luận lý (tiếp theo)
Bảng chân trị cho toán tử AND OR
Biểu thức Biểu thức Giá trị biểu thức kết hợp
AND OR
True True True True
True False False True
False True False True
(170)Ngơn ngữ lập trình - Mã giả, Biến Toán tử Độ ưu tiên toán tử
Mỗi tốn tử có độ ưu tiên định Độ ưu tiên
này sẽ định thứ tự thực thi toán tử
trong một biểu thức biểu thức có nhiều
một tốn tử
Tốn tử có độ ưu tiên cao ưu tiên thực
(171)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Thế giới lập trình Bài / Slide 19 of 23
Độ ưu tiên toán tử ( )
Các tốn tử có độ ưu tiên thực
hiện từ trái sang phải
Độ ưu tiên tốn tử thay đổi ta
dùng dấu () Biểu thức dấu () ưu tiên
(172)Ngôn ngữ lập trình - Mã giả, Biến Tốn tử
Độ ưu tiên toán tử (tiếp theo)
Tốn tử Mơ tả Độ ưu tiên
() Dấu ngoặc
! Toán tử phủ định * Toán tử nhân
3 / Toán tử chia
% Toán tử chia lấy dư
(173)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide 21 of 23
Độ ưu tiên toán tử (tiếp theo)
Tốn tử Mơ tả Độ ưu tiên
< Toán tử bé
5 <= Toán tử bé
> Toán tử lớn
>= Toán tử lớn = Toán tử
6 != Tốn tử khơng
AND Tốn tử AND
(174)Ngơn ngữ lập trình - Mã giả, Biến Tốn tử Ví dụ:
Vẽ lưu đồ giải thuật viết mã giả để kiểm tra
sinh viên bất kỳ có đủ điều kiện tham gia khóa học
vi sinh hay không?
Dữ liệu nhập vào giải thuật tên sinh viên, điểm
môn sinh học, điểm môn vật lý điểm mơn hóa học
Điều kiện để tham gia khóa học vi sinh điểm
trung bình phải lớn 75 điểm mơn sinh học
(175)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
(176)Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Mã giả
Begin
Character cName
Numeric nBioMarks, nPhyMarks, nChemMarks, nAverage Display “Enter student Name”
Accept cName
Display “Enter marks of biology, physics and chemictry” Accept nBioMarks, nPhyMarks, nChemMarks
nAverage=(nBioMarks+nPhyMarks+nChemMarks)/3 if nAverage > 75 and nBioMarks>75 then
Display “Eligible for bio-informatics course” else
(177)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Toán tử
Thế giới lập trình Bài / Slide 25 of 23
Tóm tắt
Biến tên vị trí nhớ nhớ máy tính
Quá trình khai báo biến xác định kiểu liệu
tên của biến
Biến phải gán giá trị trước sử dụng
Toán tử xác định loại phép tính mà bạn muốn thực
(178)Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Tóm tắt ( )
Có ba loại tốn tử: tốn tử toán học, toán tử quan hệ toán tử luận lý
Toán tử toán học dùng để thực phép toán
Toán tử quan hệ dùng để so sách hai toán hạng, kết trả TRUE hay FALSE
(179)©NIIT
Ngơn ngữ lập trình - Mã giả, Biến Tốn tử
Thế giới lập trình Bài / Slide 27 of 23
Tóm tắt (tiếp theo)
Tốn tử có độ ưu tiên thực
từ trái sang phải
(180)Ngôn ngữ lập trình - Mã giả, Biến Tốn tử Bài tập đề nghị
Bài 1: Vẽ lưu đồ viết mã giả chương trình nhập vào
3 số cho biết số lớn số
Bài 2: Vẽ lưu đồ viết mã giả chương trình nhập vào
điểm trung bình học viên cho biết học
viên đó đạt loại gì?
Bài 3: Vẽ lưu đồ viết mã giả chương trình tính điểm
trung bình mơn học Dữ liệu nhập vào
(181)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide of 16
Nội dung
Giới thiệu cấu trúc định Cấu trúc if
(182)Cấu trúc Quyết định
Cấu trúc định cho phép chọn lựa thực lệnh dựa vào việc đánh giá điều kiện
Cấu trúc định dùng giải thuật là: • Cấu trúc if
(183)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide of 16
Cấu trúc if
Theo sau cấu trúc if biểu thức điều kiện, liệu so sánh
Dựa vào kết việc so sánh, định thực Có nhiều kiểu cấu trúc if, ba kiểu là:
(184)Cấu trúc Quyết định Cấu trúc if đơn giản
Nếu điều kiện định cấu trúc if đơn giản lệnh khối if thực
Cú pháp:
if (điều kiện) begin
(185)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide of 16
Ví dụ tốn nhập số lớn 10 in câu thơng báo thích hợp:
begin
numeric nNum1
display “Enter any number” accept nNum1
if (nNum1 > 10) begin
display nNum1
display “The number is greater than 10” end
(186)Cấu trúc Quyết định Cấu trúc if else
Nếu điều kiện định cấu trúc if…else lệnh khối if thực Nếu điều kiện sai lệnh khối else thực
Cú pháp:
if (điều kiện) begin
các lệnh thực điều kiện end
else begin
(187)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide of 16
Ví dụ: chương trình nhập hai số, tính tổng hai số cho biết tổng chẵn hay lẻ
begin
numeric nNum1, nNum2, nResult
display “Enter number1 and number2” accept nNum1
accept nNum2
nResult = nNum1 + nNum2 //adds the values and stores the result
//in nResult
if (nResult % = 0) begin
display nResult
display “The sum is even” end
else begin
display nResult
display “The sum is odd” end
(188)Cấu trúc Quyết định
Cấu trúc if lồng
Bạn dùng cấu trúc if bên cấu trúc if khác Cấu trúc gọi cấu trúc if lồng
Cú pháp:
if (điều kiện) begin
if (điều kiện) begin
các lệnh thực điều kiện end
else begin
(189)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide of 16
Ví dụ:
xét giải thuật nhập điểm hai mơn học sinh viên tính điểm phần trăm Giải thuật hiển thị điểm phần trăm với nhận xét “Pass”, “Fail” “Distinction”
Tiêu chuẩn để đưa nhận xét sau:
• Distinction điểm phần trăm lớn 75 • Pass điểm phần trăm lớn 50
(190)Cấu trúc Quyết định begin
numeric nSub1, nSub2, nPercent
display “Enter the marks scored in two subjects” accept nSub1, nSub2
nPercent = ((nSub1 + nSub2)/200)*100 if (nPercent > 50)
begin //if the condition is true, the following //statements are executed
if (nPercent > 75) begin
display nPercent display “Distinction” end
else //if the value of nPercent is less than 75,
//the following statements are executed begin
display nPercent display “Good” end
end
else //if the value of nPercent is less than 50, the //following statements are executed
begin
(191)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide 11 of 16
Cấu trúc switch…case
Cấu trúc switch…case cho phép bạn thực định cách chọn trường hợp nhiều trường hợp đưa
Cú pháp:
switch (biểu thức)
begin
case 1:
nhóm lệnh
break
case 2:
nhóm lệnh
break
case 3:
nhóm lệnh
break default:
nhóm lệnh default
(192)Cấu trúc Quyết định
Ví dụ:
(193)©NIIT
Cấu trúc Quyết định
(194)Cấu trúc Quyết định
begin
numeric nCall
display “If you want to get connected to Marketing department, press 1, Finance department press 2, Customer Care department press 3, HR department press If you are not sure press any number other than to 4, the call will be transferred to
Information department” accept nCall
switch (nCall) begin
Case 1: //case begins
Transfer call to the Marketing department break
Case 2: //case begins
Transfer call to the Finance department break
Case 3: //case begins
Transfer call to the Customer Care department break
Case 4: //case begins
Transfer call to the HR department break
default: //if none of the cases match, the following line is executed Transfer call to the Information department
(195)©NIIT
Cấu trúc Quyết định
Thế giới lập trình Bài / Slide 15 of 16
Tóm tắt
Trong học học:
Cấu trúc định cho phép chọn lựa thực lệnh dựa vào việc đánh giá điều kiện
Cấu trúc định dùng giải thuật là: • Cấu trúc if
• Cấu trúc switch…case
Có nhiều kiểu cấu trúc if, ba kiểu là: • Cấu trúc if đơn giản
• Cấu trúc if…else • Cấu trúc if lồng
(196)Cấu trúc Quyết định
Bài tập
Bài 1: Viết chương trình nhập tên giới tính người sau hiển thị câu chào hỏi phù hợp Nếu nam chào anh, nữ chào chị
Bài 2: Viết chương trình nhập điểm thi cho sinh viên in nhận xét Nếu điểm “Hỏng”, điểm lớn nhỏ “Đậu”, điểm lớn hay “Giỏi”
(197)©NIIT
Cấu Trúc Lặp
Thế giới lập trình Bài / Slide of 16
Nội dung
Giới thiệu cấu trúc lặp Vòng lặp while
Vòng lặp repeat … until Vòng lặp for
(198)Cấu Trúc Lặp Cấu trúc lặp
Cấu trúc lặp cấu trúc cho phép thực thi đoạn mã chương trình nhiều lần
Quá trình lặp đoạn mã điều khiển điều kiện gọi điều kiện lặp Trong điều kiện lặp cịn vịng lặp lặp lại Khi điều kiện lặp sai vịng lặp kết thúc lệnh phía sau vịng lặp thực thi
(199)©NIIT
Cấu Trúc Lặp
(200)Cấu Trúc Lặp Cấu trúc lặp
Có vịng lặp • Vịng lặp while
• Vịng lặp repeat – until • Vịng lặp for