Tải bản đầy đủ (.pdf) (40 trang)

Ứng dụng hệ quản trị Oracle xây dựng hệ thống bán hàng tại VINDA - 2 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (375.14 KB, 40 trang )

CHƯƠNG IV: ORACLE VÀ CẤU HÌNH MẠNG
I. SERVICE VÀ NHỮNG CHỨC NĂNG PHỤC VỤ CỦA ORACLE.
Oracle xây dựng rất nhiều loại service để hỗ trợ và phục vụ cho các thao tác
kết nối cũng như truy xuất cơ sở dữ liệu. Một Service thường có hai thao tác
chính mà bạn cần quan tâm là START và STOP. Khi một Service được
START nó sẽ ở trạng thái sẵn sàng phục vụ cho mọi yêu cầu gửi đến theo cách
thức mà ứng dụng quy định. Khi STOP một Service cũng đồng nghĩa với các
dịch vụ hay ứng dụng mà bạn yêu cầu phục vụ không còn có sẵn nữa.
Chương trình listener của Oracle là một Service dễ hình dung nhất.
II. TỔNG QUAN VỀ CÁC CẤU HÌNH VÀ KẾT NỐI CỦA ORACLE.
Do cơ sở dữ liệu và các ứng dụng của Oracle hoạt động theo mô hình mạng
client/server nên hầu hết các cấu hình cần thiết lập cần phải ăn khớp nhau giữa
client với server.
Muốn cơ sở dữ liệu trên máy Server chấp nhận kết nối máy client cần phải
được cấu hình thiết lập các thông số cho Net Service Name các thông số mà
Net Service Name nắm giữ phải phù hợp với những thông số thiết lặp trong tập
tin LISTENER.ORA do chương trình kiểm soát. Các thông số này chủ yếu bao
gồm địa chỉ mạng của máy Server và các giao thức dùng để kết nối. Trong quá
trình kết nối máy client sẽ gửi thêm thông tin về định danh của cơ sở dữ liệu
trên máy chủ để LISTENER biết cách gửi những yêu cầu của bạn đến đúng
Service của cơ sở dữ liệu mà bạn cần truy xuất.
Tập tin LISTENER.ORA dùng lưu những thông tin quy định cách ứng xử và
kiểm soát kết nối của Services listener, các thông tin này bao gồm địa chỉ mạng
nơi listener muốn tiếp nhận kết nối( thường là địa chỉ máy Server), giao thức
mà Listener dùng để liên lạc và hiểu được máy Client, cổng giao tiếp( dành cho
giao thức TCP/IP), định danh SID của cơ sở dữ liệu cần LISTENER phục vụ (
hay chuyển giao các yêu cầu truy xuất từ phía client đưa đến). Tập tin này
thường được ORACLE đặt tại thư mục ORACL_HOME\Net80\Admin \ trên
máy server.
Để kết nối với Server máy Client dùng Net Service Name là một chuỗi thông
tin được lấy từ tập tin TNSNAMES.ORA( trên máy client cục bộ tập tin này


thường được ORACLE lưu trong thư mục ORACLE_HOME\Net80\Admin)
hoặc trên một máy Server khác(Oracle Names Server) trong trường hợp bạn có
nhiều cơ sở dữ liệu và cần truy xuất trên mạng diện rộng với quy mô cơ sở dữ
liệu phân tán lớn. Khi cấu hình máy client ( hay Server đóng vai trò client)
chúng ta cần phải quan tâm đến những thông số máy kết nối này.
Tổng quát ta có hai cách thiết lập cấu hình cho Net Services Name ở máy
Client là:
 Cấu hình quản lý cục bộ.
Địa chỉ mạng và giao thức quy định kết nối được đặt trong tập tin
TNSNAMES. ORA hoặc chỉ dùng tập tin WINNT\ SYSTEM32\ DRIVER\
ETC\ HOST duy nhất của Window NT.
Công cụ của Oracle giúp bạn thực hiện công việc này là Oracle Net8 Easy
Config hay Net 8 Assistance.
 Cấu hình quản lý tập trung.
Tất cả tên Net Service Name và địa chỉ kết nối với Server được đặt trên một
máy chủ khác(ONS- Oracle Name Server). Máy client chỉ cần quan tâm đến
địa chỉ máy ONS các thông tin khác về Server chứa cơ sở dữ liệu sẽ được ONS
cho biết. Công cụ hỗ trợ cấu hình này của Oracle là Oracle Net8 Assistance.
III. NET8 VÀ “NỀN GIAO TIẾP MẠNG TRONG SUỐT”.
Khái niệm “trong suốt” thường để chỉ những phần mềm trung gian giúp ta
thực hiện một thao tác nào đó mà không cần biết đến cơ chế hoạt động hay sự
hiện diện của thành phần trung gian. Oracle cung cấp mô hình hoạt động và
giao tiếp mạng tương tự như vậy. Tất cả các lời gọi kết nối đều với mạng đều
do TNS( Transaparent Network Subtrate) hay “Nền giao tiếp mạng trong suốt”
quản lý và chuyển tải. Kỹ thuật và nền tảng của TNS được xây dựng bên trong
Net8 cung cấp một cách giao tiếp duy nhất cho tất cả các giao thức mạng hiện
nay đang được sử dụng rộng rãi như: TCP/IP, IPX, Pies…
Với TNS mọi ứng dụng ngang hàng đều có thể kết nối được với nhau một
cách tự nhiên. Trong kiến trúc mạng ngang hàng gồm hai hay nhiều máy tính (
mỗi máy tính được xem như là một node hay là một nút mạng) có thể giao tiếp

trực tiếp với nhau không cần thông qua một thiết bị trung gian nào khác. Với
hệ thống ngang hàng mỗi node đều có thể đóng vai trò là một client hoặc một
server.
IV. CÁC TẦNG GIAO TIẾP.
Khái niệm xử lý các tiến trình phân tán mà ta đã nêu trước đây dựa vào khả
năng của nhiều máy tính tách biệt nhau có thể giao tiếp và tương tác với nhau
thông qua những tầng giao tiếp được thiết kế khác nhau về mặt vật lý.
Các tầng giao tiếp này được thiết kế theo mô hình hệ thống mở (Open System
Interconnection gọi tắt là OSI). Trong mô hình OSI, giao tiếp giữa các máy tính
khác biệt nhau được thực hiện thông qua việc phân chia trách nhiệm trong việc
chuyển và xử lý một gói thông tin xuyên qua nhiều tầng tách rời.
Phía máy client thông tin từ tầng cao nhất sẽ được phân tích và chuyển dần
xuống các tầng dưới. Tầng vật lý cuối cùng sẽ chuyển thông tin qua mạng đến
máy server. Tại máy server gói thông tin sẽ được phân tích và chuyển xuống
thông qua các tầng giao tiếp theo hướng ngược lại.
Điều hấp dẫn của tiếp cận OSI chính là ở chỗ nó hứa hẹn giải pháp cho vấn đề
truyền thông giữa các máy tính không giống nhau. Hai hệ thống dù khác nhau
như thế nào đi nữa, điều có thể truyền thông với nhau một cách hiệu quả nếu
chúng đảm bảo những điều kiện sau đây:
 Chúng cài đặt một tập các chức năng truyền thông
 Các chức năng đó được tổ chức thành một tập các tầng. Các tầng đồng mức
phải cung cấp các chức năng như nhau
 Các tầng đồng mức phải sử dụng một giao thức chung.
Để đảm bảo những điều trên cần phải có các chuẩn. Các chuẩn phải xác định
các chức năng và dịch vụ được cung cấp bởi một tầng. Theo cách tiếp cận OSI,
trong mỗi tầng của một hệ thống có một hoặc nhiều thực thể(entity) hoạt động.
Một(N) entity (thực thể của tầng N) cài đặt các chức năng của tầng N và giao
thức truyền thông với các(N) entity trong các hệ thống khác. Một tiến trình
trong một hệ đa xử lý là một ví dụ của thực thể. Hay đơn giản hơn, một thực
thể có thể là một trình con(subroutine). Mỗi thực thể truyền thông với các thực

thể ở các tầng trên và dưới nó thông qua một giao diện. Giao diện này gồm một
hoặc nhiều điểm truy cập dịch vụ(Service Access Point-viết tắt là SAP). (N-1)
entity cung cấp dịch vụ cho một (N) entity thông qua việc gọi các hàm nguyên
thuỷ( primitive). Hàm nguyên thuỷ chỉ rỏ các chức năng thực hiện và được
dùng để chuyển dữ liệu và thông tin điều khiển. Lời gọi trình con chính là một
dạng cài đặt cụ thể của một hàm nguyên thuỷ.
Bốn hàm nguyên thuỷ được dùng để định nghĩa tương tác giữa các tầng kề
nhau, đó là:
 Request(yêu cầu): Là hàm nguyên thuỷ mà Service User( người sử dụng
dịch vụ) dùng để gọi một chức năng.
 Indication(chỉ báo): là hàm nguyên thuỷ mà Service Provider( người cung
cấp dịch vụ) dùng để:
Gọi một chức năng hoặc chỉ bảo một chức năng đã được gọi ở một điểm truy
cập dịch vụ(SAP)
 Respone( trả lời): Là hàm nguyên thủy mà Service User dùng để hoàn tất
một chức năng đã được gọi từ trước bởi một hàm nguyên thủy Indication ở
SAP đó.
 Confirm(xác nhận): Là hàm nguyên thủy mà Service Provider dùng để hoàn
tất một chức năng đã được gọi từ trước bởi một hàm nguyên thủy Request
tại SAP đó.
Mô hình tham chiếu OSI 7 tầng:
 Tầng vật lý.
Theo định nghĩa của ISO, tầng vật lý cung cấp các phương tiện điện,
cơ,chức năng thủ tục để kích hoạt, duy trì và đình chỉ liên kết vật lý giữa các hệ
thống.
Ở đây thuộc tính điện liên quan đến sự biểu diễn các bit và tốc độ truyền các
bit, thuộc tính cơ liên quan đến các tính chất vật lý của giao diện với một
đường truyền( kích thước, cấu hình). Thuộc tính chức năng chỉ ra các chức
năng được thực hiện bởi các phần tử của giao diện vật lý, giữa một hệ thống và
đường truyền và thuộc tính thủ tục liên quan đến giao thức điều khiển việc

truyền các xâu bit qua đường truyền vật lý.
Khác với các tầng khác, tầng vật lý là tầng thấp nhất giao diện với đường
truyền không có PDU cho tầng vật lý, không có phần header chứa thông tin
điều khiển(PCI), dữ liệu được truyền đi theo dòng bit. bởi giao thức cho tầng
vật lý không xuất hiện với ý nghĩa giống như đối với các tầng khác.
 Tầng liên kết dữ liệu.
Tầng liên kết dữ liệu cung cấp các phương tiện để truyền thông qua liên kết
vật lý đảm bảo tin cậy thông qua liên kết vật lý đảm bảo tin cậy thông qua các
cơ chế đồng bộ hoá, kiểm soát lỗi và kiểm soát luồng dữ liệu.
 Tầng mạng.
Cấu trúc tầng mạng được nhiều chuyên gia đánh giá là phức tạp nhất trong
các tầng của mô hình OSI. Tầng mạng cung cấp các phương tiện để truyền các
đơn vị dữ liệu qua mạng, thậm chí qua một mạng của các mạng. Bởi vậy nó
cần phải đáp ứng nhiều kiểu mạng và nhiều kiểu dịch vụ cung cấp bởi các
mạng khác nhau. Các dịch vụ và giao thức cho tầng mạng là phải phản ánh
được tính phức tạp đó. Hai chức năng chính của tầng mạng là chọn đường và
chuyển tiếp.
 Tầng giao vận.
Trong mô hình OSI người ta phân biệt 4 tầng thấp và ba tầng cao. Các tầng
thấp quan tâm đến việc truyền dữ liệu giữa các hệ thống cuối qua phương tiện
truyền thông, còn các tầng cao tập trung đáp ứng các yêu cầu và các ứng dụng
của người sử dụng. Tầng giao vận là tầng cao nhất của nhóm các tầng thấp ,
mục đích của nó là cung cấp các dịch vụ truyền dữ liệu sao cho các chi tiết cụ
thể của phương tiện truyền thông được sử dụng ở bên dưới trở nên trong suốt
đối với các tầng cao. Nói cách khác, có thể hình dung tầng giao vận như là một
“bức màn” che phủ toàn bộ các hoạt động ở các tầng thấp bên dưới nó. Từ đó,
nhiệm vụ của tầng giao vận rất phức tạp. Nó phải được tính đến khả năng một
phạm vi rất rộng các đặc trưng của mạng . Chẳng hạn, một mạng có thể là có
liên kết hoặc không liên kết, có thể là tin cậy hoặc chưa đẳm bảo tin cậy,… Nó
phải biết được yêu cầu về chất lượng dịch vụ của người sử dụng đồng thời cũng

phải biết được khả năng cung cấp các dịch vụ của mạng bên dưới. Chất lượng
của các dịch vụ mạng tuỳ thuộc vào loại mạng khả dụng cho tầng giao vận và
cho người sử dụng cuối.
 Tầng phiên.
Tầng phiên là tầng thấp nhất trong nhóm các tầng cao và nằm ở ranh giới
giữa hai nhóm tầng nói trên. Mục tiêu của nó là cung cấp cho người sử dụng
cuối các chức năng cần thiết để quản trị các phiên ứng dụng của họ, cụ thể là:
 Điều phối việc trao đổi dữ liệu giữa các ứng dụng bằng cách thiết lập và
giải phóng một cách logic các phiên hay còn gọi là các hội thoại.
 Cung cấp các điểm đồng bộ hoá để kiểm soát việc trao đổi dữ liệu.
 Áp đặt các quy tắc cho các tương tác giữa các ứng dụng của người sử dụng.
 Cung cấp cơ chế “lấy lượt” trong quá trình trao đổi dữ liệu.
Việc trao đổi dữ liệu có thể thực hiện theo một trong 3 phương thức:
 Hai chiều đồng thời.
 Hai chiều luân phiên.
 Một chiều.
Với phương thức hai chiều đồng thời, cả hai bên đều có thể đồng thời gửi dữ
liệu đi. Một khi phương thức này đã được thỏa thuận thì không đòi hỏi phải có
nhiệm vụ quản trị tương tác đặc biệt nào đó. Có lẽ đây là phương thức hội thoại
phổ biến nhất. Trong trường hợp hai chiều luân phiên thì nảy sinh vấn đề: hai
người sử dụng phiên” lấy lượt” để truyền dữ liệu. Một ví dụ điển hình của
phương thức này là dùng cho các ứng dụng hỏi /đáp. Thực thể tầng phiên duy
trì tương tác luân phiên bằng cách báo cho người sử dụng khi đến lượt họ được
truyền dữ liệu.
Trường hợp một chiều nói chung ít xảy ra, ví dụ điển hình là dữ liệu được gửi
tới một người sử dụng tạm thời không làm việc, chỉ có một chương trình nhận
với nhiệm vụ duy nhất là tiếp nhận dữ liệu đến và lưu giữ lại. Chuẩn của ISO
không xét đến phương thức này.
Vấn đề đồng bộ hoá trong tầng phiên được thực hiện tương tự như cơ chế
điểm kiểm tra/ phục hồi trong một hệ quản trị tệp. Dịch vụ này cho phép người

sử dụng xác định các điểm đồng bộ hoá trong dòng dữ liệu và có thể khôi phục
việc hội thoại bắt đầu từ một trong các điểm đó.
Một trong những chức năng quan trọng nhất của tầng Phiên là đặt tương ứng
các liên kết phiên với các liên kết giao vận. Ở một thời điểm cho trước , tồn tại
một ánh xạ giữa các liên kết phiên và các liên kết giao vận. Tuy nhiên vòng đời
của các liên kết phiên và giao vận có thể khác nhau.
 Tầng trình diễn.
Mục đích của tầng trình diễn là đảm bảo cho các hệ thống cuối có thể
truyền thông có kết quả ngay cả khi chúng sử dụng các biểu diễn dữ liệu khác
nhau. Để đạt được điều đó nó cung cấp một biểu diễn chung để dùng trong
truyền thông và cho phép chuyển đổi từ biểu diễn cục bộ sang biểu diễn chung
đó.
Tồn tại 3 dạng cú pháp thông tin được trao đổi giữa các thực thể ứng dụng ,đó
là : cú pháp dùng ứng dụng thực thể nguồn, cú pháp dùng bởi thực thể ứng
dụng đích và cú pháp được dùng giữa các thực thể tầng trình diễn . Loại cú
pháp sau gọi là cú pháp truyền. Có thể cả 3 hoặc một cặp nào đó trong các cú
pháp trên là giống nhau. Tầng trình diễn đảm nhiệm việc chuyển đổi biểu diển
của thông tin giữa cú pháp truyền và mỗi một cú pháp kia khi có yêu cầu.
Lưu ý rằng không tồn tại một cú pháp truyền xác định trước duy nhất cho mọi
hoạt động trao đổi dữ liệu. Cú pháp truyền được sử dụng trên một liên kết cụ
thể của tầng trình diễn phải được thương lượng giữa các thực thể trình diễn
tương ứng. Mỗi bên lựa chọn một cú pháp truyền sao cho có thể sẵn sàng được
chuyển đổi sang cú pháp người sử dụng và ngược lại. Ngoài ra, cú pháp truyền
được chọn phản ánh các yêu cầu dịch vụ khác, chẳng hạn như nhu cầu nén dữ
liệu. Việc thương lượng cú pháp truyền được tiến hành trong giai đoạn thiết lập
một liên kết và cú pháp truyền sử dụng có thể được thay đổi trong vòng đời của
liên kết đó. Tầng trình diễn chỉ liên quan đến cú pháp truyền vì thế trong giao
thức sẽ không quan tâm đến các cú pháp sử dụng bởi các thực thể ứng dụng.
Tuy nhiên, mỗi thực thể trình diễn phải chịu trách nhiệm chuyển đổi giữa cú
pháp của người sử dụng và cú pháp truyền.

Trước khi đi vào các chuẩn ISO về dịch vụ và giao thức của tầng trình diễn,
chúng ta xét kỹ khái niệm liên quan đến bối cảnh của tầng trình diễn được chỉ
ra trong hình
Hình A. Bối cảnh tầng trình diễn

Khi qua ranh giới giữa hai tầng trình diễn, tầng Phiên có một sự thay đổi
quan trọng trong cách nhìn dữ liệu. Đối với tầng phiên trở xuống, tham số User
data trong các service primitive được đặc tả dưới dạng nhị phân. Giá trị này có
thể được đưa trực tiếp trong các SDU( Service Data Unit) để chuyển đổi giữa
các tầng trong một hệ thống và trong các PDU (Protocol data Unit) để chuyển
giữa các tầng đồng mức ở hai hệ thống kết nối với nhau. Tuy nhiên tầng ứng
dụng lại liên quan chặt chẽ với cách nhìn dữ liệu của người sử dụng. Nói
chung, cách nhìn đó là một tập thông tin có cấu trúc nào đó, như là văn bản
trong một tài liệu, một tệp về nhân sự, một cơ sở dữ liệu tích hợp hoặc một hiển
thị của thông tin videotext. Người sử dụng chỉ liên quan đến ngữ nghĩa của dữ
liệu.

















Do đó tầng trình diễn ở giữa có nhiệm vụ phải cung cấp các phương thức biểu
diễn dữ liệu và chuyển đổi thành các giá trị nhị phân dùng cho các tầng dưới-
nghĩa là tất cả những gì liên quan đến cú pháp của dữ liệu.
Tuy nhiên trong thực tế không thể tách bạch hoàn toàn giữa cú pháp và ngữ
nghĩa của dữ liệu. Nếu tầng ứng dụng không biết gì về cú pháp còn tầng trình
diễn không biết gì về ngữ nghĩa thì không thể nào hoàn tất được việc kết hợp
Appli
catio
n

Appli
catio
n

Prese
ntatio
n
Entity
Prese
ntatio
n
Entity
Applicatio
n protocol

(Abstract
Syntax)


Presentati
on Data
Presentation
Data
(Abs
Syntax)

(Abs
Syntax)

Presentatio
n protocol

(Negotiatio
n of
Tranfer
Sessi
on
Data

Sessi
on
Data

(B
yt
(B
yt
ngữ nghĩa với cú pháp dùng để tạo ra một biểu diễn cụ thể các giá trị dữ liệu
cho một dịch vụ phiên.

Cách tiếp cận của ISO về việc kết hợp giữa ngữ nghĩa và cú pháp dữ liệu là
như sau. Ở tầng ứng dụng thông tin được biểu diển dưới dạng một cú pháp trừu
tượng liên quan đến các kiểu dữ liệu và giá trị dữ liệu. Cú pháp trừu tượng này
đặc tả một cách hình thức dữ liệu, độc lập với mọi biểu diễn cụ thể.
Do vậy, một cú pháp trừu tượng có nhiều điểm giống với các khía cạnh định
nghĩa kiểu dữ liệu trong các ngôn ngữ lập trình qui ước như: Pascal, C.Ada,…
và các ngữ pháp như:BNF(Backus-Naur-Form). Các giao thức tầng ứng dụng
mô tả các PDU của chúng bằng một cú pháp trừu tượng. Tầng trình diễn tương
tác với tầng ứng dụng cũng dựa trên cú pháp trừu tượng này. Tầng trình diễn có
nhiệm vụ dịch thuật giữa cú pháp trừu tượng của tầng ứng dụng và một cú
pháp truyền mô tả các giá trị dữ liệu dưới dạng nhị phân- thích hợp cho việc
tương tác dịch vụ phiên. Việc dịch thuật này được thực hiện nhờ các quy tắc
mã hóa chỉ rõ biểu diễn của mỗi giá trị dữ liệu thuộc một kiểu dữ liệu nào đó.
Trước khi sử dụng một liên kết tầng trình diễn để trao đổi dữ liệu thì hai thực
thể trình diễn ở hai đầu phải thoả thuận về cú pháp truyền. Sau khi cú pháp
truyền đã được chọn thì tổ hợp cú pháp trừu tượng và cú pháp truyền được xem
là bối cảnh trình diễn được dùng để trao đổi dữ liệu.
Hai yêu cầu cơ bản để lựa chọn một cú pháp truyền là nó phải yểm trợ cú pháp
trừu tượng tương ứng. Ngoài ra ,cú pháp truyền có thể có các thuộc tính khác
không liên quan gì đến cú pháp trừu tượng mà nó yểm trợ.
 Tầng ứng dụng
Tầng ứng dụng là ranh giới giữa môi trường kết nối các hệ thống mở và các
tiến trình ứng dụng .Các tiến trình ứng dụng sử dụng môi trường OSI để trao
đổi dữ liệu trong quá trình thực hiện của chúng. Là tầng cao nhất trong mô hình
OSI 7 tầng, tầng ứng dụng có một số đặc điểm khác với tầng dưới nó. Trước
hết, nó không cung cấp các dịch vụ cho một tầng trên như trong trường hợp
của các tầng khác. Theo đó , tầng ứng dụng không có khái niệm điểm truy cập
dịch vụ tầng ứng dụng.
ISO định nghĩa một tiến trình ứng dụng là” một phần tử ở trong một hệ thống
mở thực hiện việc xử lý thông tin cho một ứng dụng cụ thể”.Các tiến trình ứng

dụng thuộc các hệ thống mở khác nhau muốn trao đổi thông tin phải thông qua
tầng ứng dụng. Tầng ứng dụng bao gồm các thực thể ứng dụng, các thực thể
này dùng các giao thức ứng dụng và các dịch vụ trình diễn để trao đổi thông
tin. Như vậy các thực thể ứng dụng cung cấp các tiến trình ứng dụng các
phương tiện cần thiết để truy cập môi trường OSI. Tuy nhiên, tầng ứng dụng
chủ yếu chỉ giải quyết vấn đề ngữ nghĩa chứ không giải quyết vấn đề cú pháp
như tầng trình diễn.
CHƯƠNG V. NGÔN NGỮ PL/SQL.
I. Tổng quan về Procedure Language/Structured Query Language(PL/SQL).
PL/SQL có nhiều ưu điểm so với ngôn ngữ lập trình khác về mặt quản lý
logic và hỗ trợ các quy luật hoạt động của các ứng dụng cơ sở dữ liệu. Đó là
một ngôn ngữ dể hiểu với các cấu trúc logic chung kết hợp với một ngôn ngữ
lập trình và nhiều mặt khác mà các ngôn ngữ khác không có như trình quản lý
lỗi rất mạnh và sự module hoá các khối mã lệnh. Mã PL/SQL được sử dụng để
giao tiếp với cơ sở dữ liệu cũng được lưu trữ trực tiếp trong cơ sở dữ liệu
Oracle, và là ngôn ngữ lập trình duy nhất giao tiếp với Oracle một cách tự
nhiên bên trong môi trường cơ sở dữ liệu.


II. CẤU TRÚC CHƯƠNG TRÌNH PL/SQL.
II.1. Sự module hoá:

















II.2 CÁC THÀNH PHẦN CỦA MỘT KHỐI PL/SQL.
Bất kỳ một khối PL/SQL nào cũng có ba thành phần:
 Phần Khai báo biến.
 Phần thực thi .
 Phần xử lý exception.
VD:
Declare
So NUMBER;/* Khai báo biến*/
Begin /*Phần thực thi*/
If (so> 3) Then
DBMS_OUTPUT.PUT_LINE(‘Hello, World’);
Else
RAISE bad_data;
End If;
Exceptions /*Xử lý exception*/
Declare

begin
exec get_it;
A:=fcnt(5)
End;
Các khối PL/SQL
When bad_data Then

DBMS_PUTLINE(‘Error condition’);
End;
II.3 CÁC KIỂU DỮ LIỆU
 NUMBER: chứa bất kỳ số nào.
 CHAR( size), VARCHAR2(size): dùng để lưu trữ các chuỗi ký tự số.
kiểu CHAR thêm các khoảng trắng vào lưu trữ đủ chiều dài.
 DATE: dùng để lưu trữ ngày.
 LONG: Lưu trữ các Text lớn, đến 2 gigabyte chiều dài.
 LONG RAW: dùng lưu trữ những khối dữ liệu lớn ở khuôn dạng nhị phân.
 RAW: Lưu trữ những khối dữ liệu nhỏ hơn khuôn dạng nhị phân.
 MLSLABEL: Sử dụng trong Oracle Trusted.
 ROWID: sử dụng để lưu trữ khuôn dạng đặc biệt của ROWID trong cơ sở
dữ liệu.
 BOOLEAN: Lưu trữ giá trị True/false.
 TABLE/RECORD: Các bảng có thể sử dụng để lưu các giá trị tương đương
với một dãy, các record lưu các biến có kiểu dữ liệu composite.
II.4. ĐIỀU KHIỂN LUỒNG XỬ LÝ PL/SQL.
1. Các vòng lặp:
 Loop-exit: Là vòng lặp đơn giản nhất trong PL/SQL. Từ khoá loop định
nghĩa bắt đầu của khối mã lệnh sẽ được lặp lại, end loop chỉ định kết thúc
vòng lặp.Từ khoá exit chỉ định thoát khỏi vòng lặp.
VD:
Declare
My_leg NUMBER:=0;
My_hypotenuse NUMBER:=0;
BEGIN
LOOP
My_leg:=my_leg+1;
Execute find_hypotenuse(my_leg,my_leg,my_hypotenuse);
If my_leg=25 Then

EXIT;
END IF;
END LOOP;
END;
 Vòng lặp While-Loop:tương đương loop-exit.
Vd:
Decclare
So1 NUMBER:=0;
So 2 NUMBER:=0;
Kq NUMBER:=0;
BEGIN
While ( So1<10) and (So 2<20) Loop
Kq:=So1+So2;
End Loop;
END;
 Vòng lặp For-loop
VD:
Declare
So1 NUMBER:=0;
BEGIN
For So1 IN 1 25 Loop
Execute Tinh(So1,So1);
End Loop;
END;
2. LẶP TRÌNH VỚI CON TRỎ( CURSOR).
Có hai loại : Cursor ngầm và Cursor tường minh.
 Cursor tường minh được đặt tên bỡi nhà phát triển ứng dụng. Nó chính là
một lệnh select được đặt tên. Bất kỳ lệnh nào cũng có thể sử dụng trong một
cursor tường minh bằng cách sử dụng cú pháp.
Cursor cursor_name is.

1) XỬ LÝ EXCEPTION.
Ba loại Exception trong PL/SQL là:
 Predefined Exceptions: Để tiện ích việc xử lý lỗi trong PL/SQL, Oracle đã
thiết kế một số Exception xây dựng sẵn tức là các predefined exception.
Những exception này được sử dụng để xử lý những tình huống chung có thể
xảy ra trong cơ sở dữ liệu.
 User- defined Exceptions:Ngoài các Predefined Exception có thể tạo ra các
User defined Exception để quản lý các tình huống xuất hiện trong mã lệnh.
Không như các predefined exception xảy ra ngầm khi điều kiện lỗi tương
ứng phát sinh, một user defined exception cần có mã lệnh tường minh trong
PL/SQL. để sinh ra. Cần có mã lệnh trong ba phần của một khối PL/SQL .
Các phần mã lệnh yêu cầu được mô tả như sau:
 Khai báo exception: Trong phần khai báo của khối PL/SQL, tên exception
cần phải khai báo. Tên này sẽ sử dụng để yêu cầu exception trong phần thực
thi nếu các điều kiện của exception xảy ra.
 Kiểm tra exception: Trong phần thực thi của một khối PL/SQL, cần có mã
lệnh kiểm tra tường minh các điều kiện lỗi user-defined để gọi exception
nếu điều kiện được thỏa.
 Xử lý Exception: Trong phần exception handler của khối PL/SQL, cần có
một mệnh đề đặc biệt when gọi tên exception và mã lệnh cần thực hiện nếu
exception xảy ra.
2) EXCEPTION_INIT PRAGMA.
Lệnh pragma cho phép nhà phát triển ứng dụng khai báo một lỗi được đánh số
kết hợp với một exception được đặt tên trong khối. Việc dùng này cho phép
dùng mã lệnh xử lý các lỗi chưa được xử lý rõ ràng.
4. CHỈ ĐỊNH CÁC EXCEPTION CHUNG(COMMON EXCEPTION).
Một số predefined exception:
 invalid_cursor: Xảy ra khi đóng một cursor không mở.
 cursor_already_open: Xảy ra khi mở một cursor chưa đóng.
 dup_val_on_index:Xâm phạm ràng buộc unique hay primary key.

 no_data_found: Không có hàng nào được chọn hay thay đổi bởi tác vụ
SQL.
 too_many_rows: Nhận được hơn một hàng bỡi một subquery một hàng hay
trong một lệnh SQL mà Oracle mong đợi một hàng.
 zero_divide: Chia cho không.
 rowtype_mismatch: Các kiểu dữ liệu của record mà dữ liệu từ cursor được
gán không tương thích.
 invalid_number: Một chuỗi các ký số được tham trỏ như một số.
5. MÃ HOÁ TRÌNH XỬ LÝ LỖI.
Mỗi user-defined exception trong phần khai báo và thực thi của một khối
PL/SQL nên có một exception handler kết hợp viết cho nó. Cách tốt nhất để xử
lý một exception là gọi tên nó rõ ràng khi sử dụng mệnh đề when trong khối
exception của chương trình PL/SQL. Exception handler có lẽ là một thành tựu
lớn nhất đạt được bằng cách sử dụng PL/SQL để viết các store procedure trong
Oracle. Tính linh hoạt và dễ dàng giúp đơn giãn hoá việc phát triển những
chương trình lớn
CHƯƠNG IV: PHƯƠNG PHÁP LUẬN PHÂN TÍCH THIẾT KẾ HỆ
THỐNG.
I. Phương pháp phân tích có cấu trúc.
Phương pháp phân tích có cấu trúc,trãi qua thời gian đã chứng tỏ được tính
kinh điển của nó. Nó là phương pháp dung dị, không cầu kỳ như một số
phương pháp khác, dễ áp dụng, nhưng lại rất hữu hiệu. Ngày nay nó chưa lạc
hậu, mà vẫn còn phát huy tác dụng tốt. Bằng chứng là một hệ thống lớn và hiện
đại như ORACLE vẫn tiếp sử dụng nó.
I.1 Phương pháp phân tích hệ thống về chức năng.
Đó là phương pháp SA(Structured Analysis) do De Macro và những những
người khác như (Yourdon, Constatine…) đưa ra năm 70 nhưng vẫn còn phát
huy tác dụng cho đến ngày nay. Nó vẫn là nền tảng của những phần mềm trợ
giúp phân tích , thiết kế nổi tiếng như Designer 2000 của ORACLE. Công cụ
chính là biểu đồ luồng dữ liệu.

I.1.1 Biểu đồ phân cấp chức năng.
Là một loại biểu đồ diễn tả sự phân rã dần dần các chức năng từ đại thể đến
chi tiết. Mỗi nút trong biểu đồ là một chức năng, và quan hệ duy nhất giữa các
chức năng, diển tả bỡi các cung nối liền các nút, là quan hệ bao hàm. Như vậy
biểu đồ phân cấp chức năng là một cấu trúc cây.
Đặc điểm của biểu đồ phân cấp chức năng là:
 Cho một cách nhìn khái quát ,dễ hiểu, từ đại thể đến chi tiết về các chức
năng, nhiệm vụ cần thực hiện.
 Dễ thành lập, bằng cách phân rã dần các chức năng từ trên xuống.
 Có tính chất tĩnh, bởi chúng chỉ cho thấy các chức năng mà không cho thấy
trình tự xử lý.
 Thiếu vắng sự trao đổi thông tin giữa các chức năng.
Vì những đặc điểm kể trên mà biểu đồ phân cấp chức năng thường được sử
dụng làm mô hình chức năng trong bước đầu phân tích, hoặc cho các hệ thống
đơn giãn. Nếu hệ thống là phức tạp thì mô hình chức năng dưới dạng biểu đồ
phân cấp chức năng là quá sơ lược và các thiếu sót nêu trên trong hai đặc điểm
cuối ở trên là không thể châm chước được. Lúc đó người dùng biểu đồ luồng
dữ liệu thay cho biểu đồ phân cấp chức năng.
I.1.2 Biểu đồ luồng dữ liệu.
Biểu đồ luồng dữ liệu(BLD) là một loại biểu đồ nhằm mục đích diển tả một
quá trình xử lý thông tin với các yêu cầu sau:
 Sự diễn tả là ở mức logic, nghĩa là nhằm trả lời câu hỏi “Làm gì”, mà bỏ
qua câu hỏi “Làm thế nào?”.
 Chỉ rõ các chức năng con phải thực hiện để hoàn tất quá trình xử lý cần mô
tả.
 Chỉ rõ các thông tin được chuyển giao giữa các chức năng đó, và qua đó
phần nào thấy được trình tự thực hiện của chúng.
(1) Chức năng: Là một quá trình biến đổi dữ liệu( thay đổi giá trị, cấu trúc, vị
trí của một dữ liệu, hoặc từ một số dữ liệu đã cho, tạo ra một dữ liệu mới).
Biểu diễn: Bởi hình tròn hoặc ovan bên trong có tên chức năng.





Tên chức năng phải là động từ, có thêm bổ ngữ nếu cần, cho phép hiểu vắn tắt
chức năng làm gì.
(2) Các luồng dữ liệu.
Tên
chức
năng.
Luồng dữ liệu là một tuyến truyền dẫn thông tin vào hay ra một chức năng nào
đó.
Biểu diễn: Một luồng dữ liệu được vẽ trong một BLD dưới dạng một mũi tên,
trên đó có viết tên của luồng dữ liệu.


Tên luồng dữ liệu là danh từ, kèm theo tính ngữ nếu cần, cho phép hiểu vắn tắt
nội dung dữ liệu được chuyển giao.
(3) Kho dữ liệu.
Một kho dữ liệu là một dữ liệu đơn hay có cấu trúc được lưu lại, để có thể truy
cập nhiều lần về sau.
Biểu diễn: Một kho dữ liệu được vẽ trong BLD dưới dạng hai đoạn thẳng nằm
ngang, kẹp giữa tên của kho dữ liệu.


(4) Các đối tác.
Một đối tác ( hay tác nhân ngoài, hay điểm nút) là một thực thể ngoài hệ
thống, có trao đổi thông tin với hệ thống.
Biểu diễn: Đối tác trong biểu đồ luồng dữ liệu vẽ bằng hình chữ nhật, bên
trong có tên đối tác.




Tên lu
ồng dữ liệu

Kho dữ liệu
Tên đối tác
(5) Tác nhân trong
Một tác nhân trong là một chức năng hay 1 hệ con của hệ thống, được mô tả ở
một trang khác của mô hình, nhưng có trao đổi thông tin với các phần tử thuộc
trang hiện tại của mô hình. Như vậy tác nhân trong xuất hiện trong biểu đồ chỉ
để làm nhiệm vụ tham chiếu.
Biểu diễn: Tác nhân trong biểu đồ luồng dữ liệu được vẽ dưới dạng một hình
chữ nhật thiếu cạnh trên, trong đó viết tên tác nhân trong ( chức năng hay hệ
thống con).


Tên tác nhân trong phải là động từ, kèm theo bổ ngữ nếu cần.
II. Phương pháp phân tích hệ thống về dữ liệu.
Mô hình thực /thể liên kết E/A(Entity/Association Model) là mô hình dữ liệu
do P.P Chen đưa ra năm 1976 và sau đó được dùng khá phổ biến trên thế giới.
Nó có ưu điểm là khá đơn giản và gần với tư duy trực quan.
 Mô hình thực thể liên kết kinh điển.
Xuất phát từ ba khái niệm cơ bản.: Thực thể, liên kết, và thuộc tính.
Các giá trị ứng số thường dùng:
: Một và chỉ một.
0 1: không hay một.
m n: Từ m tới n.
0 *: từ không tới nhiều.

1 *: Từ một tới nhiều.
Tên tác nhân trong
Đơn hàng
-SH-đơn hàng
-Ngày ĐH
 Biểu diển đồ hoạ:
Thực thể:

Liên kết:

 Mô hình thực thể liên kết mở rộng.
 Mô hình thực thể liên kết hạn chế.
Tuy bị hạn chế nhiều về hình thức diển tả, nhưng lại rất gần với mô hình
quan hệ và do đó dễ dàng chuyển sang cài đặt với hệ quản trị cơ sở dữ liệu
quan hệ. Đây là mô hình được dùng trong một số hệ trợ giúp thiết kế CASE,
chẳn hạn trong ORACLE.
a) Các hạn chế.
+ Đối với kiểu liên kết hai ngôi dạng:



Thì chỉ còn liên kết một -nhiều, tức là trường hợp n=1 và q>1 hoặc q=* và
được biểu diển dưới dạng mới sau:


III. Phương pháp thiết kế hệ thống.
Đồ án thực hiện theo phương pháp SD(Structured design) do E. Yourdon và
L.Constanie đề xuất.
A


B
m n p q
Giao nộp
A B

×