Đào tạo cơ bản về Oracle8i (A76965-01) - Phần 2 docx

17 293 0
Đào tạo cơ bản về Oracle8i (A76965-01) - Phần 2 docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 14 Bộ nhớ đệm Cache của CSDL Các vùng nhớ đệm CSDL của SGA lu trữ các khối dữ liệu đợc sử dụng gần nhất của dữ liệu, tập hợp các vùng nhớ đệm của CSDL trong một instance là vùng nhớ đệm truy cập nhanh của CSDL. Vùng nhớ đệm truy cập nhanh lu giữ các khối dữ liệu bị thay đổi cũng nh cha đợc thay đổi. Vì các khối dữ liệu mới nhất cũng nh hay đợc dùng nhất đợc lu giữ trong bộ nhớ nên giảm đợc thao tác truy cập đĩa cứng và nhờ đó cải thiện đợc hiệu năng của hệ thống. Bộ nhớ đệm Redo Log Bộ nhớ đệm của redo log đợc lu trữ khi có sự thay đổi CSDL. Các bản ghi trong redo log lu trữ trên bộ nhớ đệm và đợc ghi trực tiếp vào file redo log, nó đợc sử dụng khi cần phục hồi dữ liệu ban đầu. Kích thớc của nó là cố định. Vùng dùng chung (Shared Pool ) Vùng dùng chung là một phần của SGA bao gồm những cấu trúc bộ nhớ dùng chung kiểu nh là vùng dùng chung cho lệnh SQL. Vùng dùng chung cho lệnh SQL cần thiết khi xử lý mọi câu lệnh SQL riêng rẽ gửi tới CSDL. Nó còn bao gồm những thông tin nh là phân tích cây, kế hoạch thực hiện các câu lệnh tơng ứng. Một vùng dùng chung cho lệnh SQL đợc sử dụng bởi nhiều chơng trình ứng dụng đang yêu cầu xử lý cùng một câu lệnh, để dành lại nhiều bộ nhớ hơn cho mục đích khác. Vùng đệm lớn (Large Pool) Vùng đệm lớn là một vùng tuỳ chọn trong SGA cung cấp vùng nhớ lớn cho việc thực hiện công việc backup và khôi phục, các tiến trình vào/ra của máy chủ và vùng bộ nhớ cho các phiên của máy chủ đa luồng Các thẻ điều khiển lệnh (Statement Handle) hay con trỏ (Cursor) Con trỏ là một thẻ điều khiển cho vùng nhớ liên quan tới câu lệnh cụ thể (Oracle Call Interface - OCI tham chiếu tới nh một thẻ điều khiển câu lệnh). Mặc dù hầu hết ngời dùng đều tin vào khả năng điều khiển con trỏ một cách tự động của Oracle, giao diện lập trình vẫn hỗ trợ ngời thiết kế chơng trình tự điều khiển các con trỏ. Ví dụ: Trong bộ tiền biên dịch phát triển ứng dụng, con trỏ là một tài nguyên có tên gọi sẵn sàng để sử dụng trong chơng trình và có thể đợc sử dụng riêng cho việc phân tích câu lệnh SQL nhúng trong ứng dụng. Ngời lập trình có thể viết mã lệnh cho ứng dụng điều khiển từng bớc thực hiện câu lệnh SQL và nhờ đó cải thiện đợc hiệu năng chơng trình. Vùng dùng chung cho chơng trình (PGA) PGA là vùng nhớ đệm bao gồm dữ liệu và các thông tin điều khiển cho những tiến trình trên server. PGA đợc tạo bởi Oracle khi tiến trình server đợc bắt đầu. Thông tin trong PGA phụ thuộc vào cấu hình của Oracle Cấu trúc tiến trình (Process Architecture) Tiến trình là một "luồng điều khiển", nó là một cơ chế trong hệ điều hành cho phép thực hiện đợc hàng loạt các bớc. Một số HĐH sử dụng các thuật ngữ công việc (job) Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 15 hay nhiệm vụ (task). Tiến trình thông thờng tự quản lý một vùng nhớ riêng mà nó chạy trong đó. Oracle server có hai kiểu chính: Tiến trình user và tiến trình Server Tiến trình User (Client) Tiến trình user đợc tạo ra và duy trì nhằm thực hiện các mã lệnh của chơng trình ứng dụng (kiểu nh Pro*C/C++) hay công cụ của Oracle (nh là Oracle Enterprise Manager). Tiến trình user cũng quản lý giao tiếp với các tiến trình server Tiến trình user giao tiếp với tiến trình server qua giao diện chơng trình, đợc mô tả ở phần dới Cấu trúc tiến trình Oracle (Oracle Process Architecture) Các tiến trình Oracle đợc gọi bởi các tiến trình khác để thực hiện các chức năng thay cho các tiến trình đã gọi nó. Các kiểu khác của tiến trình Oracle cùng với các chức năng của nó đợc thảo luận trong phần sau. Chúng bao gồm tiến trình Server và tiến trình nền Các tiến trình ở Server (Server Processes) Oracle khởi tạo các tiến trình server để xử lý các yêu cầu từ các tiến trình user. Tiến trình server phụ trách việc giao tiếp với các tiến trình của User và Oracle để thực hiện các yêu cầu. Ví dụ: nếu nh user truy vấn một số dữ liệu mà nó không có sẵn trong những bộ nhớ đệm CSDL của SGA, tiến trình server liên quan sẽ đọc khối dữ liệu cần thiết từ các file dữ liệu vào SGA. Oracle có thể đợc cấu hình cho phù hợp với số tiến trình của user trên một tiến trình Server. Trong cấu hình server dành riêng, một tiến trình server điều khiển các yêu cầu cho một tiến trình của user. Trong khi cấu hình server đa luồng lại cho phép nhiều tiến trình của user chia sẻ một số lợng nhỏ các tiến trình của server, giảm thiểu số lợng các tiến trình của server và tăng tối đa khả năng phục vụ của tài nguyên hệ thống hiện có. ở một số hệ thống, tiến trình user và tiến trình của Server là riêng biệt trong khi ở một số hệ thống khác chúng hợp nhất vào một tiến trình đơn. Nếu nh hệ thống sử dụng cấu hình Server đa luồng hoặc nếu nh tiến trình user và tiến trình server chạy trên các máy khác nhau thì chúng cần phải tách biệt. Các hệ thống Client/Server tách riêng tiến trình server và tiến trình user, thực hiện chúng trên những máy khác nhau Các tiến trình nền (Background Process) Oracle tạo tập các tiến trình nền cho mỗi instance. Chúng hợp nhất các chức năng đáng ra sẽ đợc thực hiện bởi nhiều chơng trình ứng dụng của Oracle chạy cho mỗi tiến trình user. Các tiến trình nền không thực hiện đồng thời với những thao tác vào/ra và theo dõi các tiến trình khác của Oracle nhằm tăng cờng tính song song để tăng hiệu năng và độ tin cậy. Một SGA và tập hợp các tiến trình nền cấu thành nên một Instance của Oracle. Mỗi Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 16 instance có thể sử dụng vài tiến trình nền. Các tiến trình này là: DBWn, LGWR, CKPT, SMON, PMON, ARCn, RECO, Dnnn, LCK0, SNPn, và QMNn. Tiến trình ghi của CSDL (DBWn) Tiến trình ghi của CSDL ghi những khối dữ liệu có sự thay đổi từ bộ nhớ đệm của CSDL vào các file dữ liệu. Mặc dù một tiến trình ghi của CSDL (DBW0) đáp ứng đầy đủ các yêu cầu đối với hầu hết các hệ thống, chúng ta vẫn có thể thêm vào các tiến trình ghi mới (từ DBW1 tới DBW9) để nâng cao hiệu năng ghi dữ liệu cho hệ thống mà dữ liệu thay đổi nhiều. Sử dụng tham số DB_WRITER_PROCESSES để chỉ ra số lợng của các tiến trình ghi DBWn. Vì Oracle sử dụng phơng thức ghi trớc nhật ký, DBWn không cần thiết phải ghi các khối dữ liệu khi hoàn thành một giao dịch. Thay vào đó, DBWn đợc thiết kế để ghi cả gói gồm nhiều khối dữ liệu với hiệu quả cao. Trong hầu hết các trờng hợp, DBWn chỉ ghi khi dữ liệu cần phải đọc vào vùng SGA lớn hơn vùng nhớ đệm của CSDL còn rỗi. Những dữ liệu ít đợc dùng đến sẽ đợc ghi vào file dữ liệu trớc tiên. DBWn cũng ghi cho các chức năng khác kiểu nh chức năng kiểm soát giao dịch. Tiến trình ghi nhật ký (LGWR) Bộ ghi nhật ký ghi các bản ghi redo log vào đĩa. Các bản ghi này đợc sinh ra trong vùng đệm redo log của SGA và LGWR ghi chúng một cách tuần tự vào file redo log đang hoạt động. Nếu nh CSDL có nhiều redo log, LGWR ghi chúng vào nhóm các file redo log đang hoạt động. Tiến trình kiểm soát giao dịch (CKPT) Vào những thời điểm xác định, mọi thay đổi trong các vùng đệm CSDL của SGA đợc DBWn ghi vào các file dữ liệu, sự kiện này đợc gọi là kiểm soát giao dịch. ở những thời điểm đó, tiến trình kiểm soát giao dịch chịu trách nhiệm phát tín hiệu cho DBWn cập nhật các file dữ liệu và các file điều khiển của CSDL nhằm ghi nhận các điểm kiêm soát mới nhất. Tiến trình theo dõi hệ thống (SMON) Tiến trình theo dõi hệ thống thực hiện việc phục hồi ngay khi instance bị lỗi khởi động lại. Trong hệ thống chạy nhiều Instance thì tiến trình SMON của một Instance có thể phục hồi cho các Instance bị lỗi khác. SMON cũng dọn dẹp những segment tạm thời không còn sử dụng nữa và khôi phục lại các giao dịch lỗi đã bị bỏ qua do lỗi đọc file hay offline. Các giao dịch này cuối cùng cũng đợc SMON khôi phục lại khi tablespace hoặc file dữ liệu làm việc trở lại. SMON cũng tập hợp các extent rỗi lại với nhau nhằm tạo ra các khoảng trống liên tục để cấp phát về sau. Theo dõi các tiến trình (PMON) Tiến trình theo dõi tiến hành phục hồi các tiến trình khi tiến trình của user bị lỗi. PMON chịu trách nhiệm dọn dẹp bộ nhớ đệm và giải phóng tài nguyên mà tiến trình đó sử dụng. Nó cũng kiểm tra tiến trình phân phối (Xem mục dới) và những tiến trình của server và khởi động lại chúng nếu nh chúng bị lỗi. Tiến trình lu trữ (ARCn) Tiến trình lu trữ sao lại tất cả những file redo log đang hoạt động vào kho lu trữ khi Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 17 chúng đầy hoặc xuất hiện một khoá nhật ký. Mặc dù cấu hình có một tiến trình đơn ARCn phù hợp với hầu hết các hệ thống, bạn vẫn có thể chỉ ra đến 10 tiến trình ARCn bằng cách thay đổi tham số hệ thống LOG_ARCHIVE_MAX_PROCESSES. Nếu khối lợng công việc trở nên quá tải với số lợng tiến trình ARCn hiện thời, LGWR tự động khởi tạo thêm tiến trình ARCn cho đến khi đạt số lợng tối đa. ARCn chỉ hoạt động khi CSDL ở chế độ ARCHIVELOG và chế độ sao lu tự động. Tiến trình khôi phục (RECO) Tiến trình khôi phục đợc dùng để xử lý các giao dịch phân tán bị lỗi do hệ thống hoặc do đờng truyền trong hệ thống CSDL phân tán. Sau những khoảng thời gian xác định, RECO cục bộ sẽ thử kết nối vào CSDL ở xa và tự động commit hay rollback phần giao dịch cục bộ của các giao dịch phân tán đang bị treo. Dispatcher - Tiến trình phân phối (Dnnn) Tiến trình phân phối là một tiến trình nền tuỳ chọn, chỉ có trong cấu hình server đa luồng. ít nhất có một tiến trình phân phối đợc tạo cho mỗi phơng thức giao tiếp đang đợc sử dụng (D000, . . ., Dnnn). Mỗi tiến trình phân phối chịu trách nhiệm phân luồng các yêu cầu nhận đợc từ các tiến trình của ngời sử dụng và gửi đến một trong những tiến trình Server còn rỗi và trả lại kết quả về các tiến trình của ngời sử dụng. Tiến trình khoá (LCK0) Tiến trình khoá đợc sử dụng để khoá bản ghi lẫn nhau giữa các instance trong hệ thống xử lý song song của server Oracle. Instance A khoá bản ghi của Instance B và ngợc lại trong cấu hình Parallel Server. Hng đợi công việc( Job Queue (SNPn) ) Trong cấu hình CSDL phân tán, có tới 36 tiến trình hàng đợi (SNP0, , SNP9, SNPA, , SNPZ) có thể tự động làm tơi lại những ảnh chụp snapshot. Những tiến trình này xử lý định kì và làm tơi lại những snapshot đã đợc đặt tự động. Nếu có hơn 1 tiến trình hàng đợi đợc sử dụng thì các tiến trình chia sẻ những công việc làm tơi các ảnh chụp snapshot. Những tiến trình này cũng thực hiện những yêu cầu công việc đợc tạo bởi gói DBMS_JOB và lan truyền các thông báo hàng đợi đến các CSDL khác Queue monitor - Tiến trình theo dõi hng đợi (QMNn) Đây là loại tiến trình nền tuỳ chọn, theo dõi hàng đợi thông báo Oracle AQ. Có thể đặt cấu hình đến 10 tiến trình theo dõi hàng đợi. Phần mềm giao tiếp v Net8 Nếu nh tiến trình của User và Server chạy trên những máy khác nhau trong mạng hay nếu nh tiến trình User kết nối vào các tiến trình Server dùng chung qua tiến trình phân phối thì chúng giao tiếp với nhau bằng Net8. Tiến trình phân phối là một tiến trình nền tuỳ chọn, chỉ có trong cấu hình server đa luồng. Net8 là giao diện của Oracle với các giao thức truyền thông chuẩn cho phép truyền dữ liệu chính xác giữa các máy tính. Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 18 Giao diện chơng trình (The Program Interface) Giao diện chơng trình là cơ chế qua đó cho phép tiến trình user giao tiếp với tiến trình Server. Nó phục vụ nh một phơng thức giao tiếp chuẩn giữa bất kì công cụ nào của Oracle hay ứng dụng của ngời sử dụng (nh Oracle Forms) với phần mềm của Oracle. Chức năng của nó là: Làm nhiệm vụ của cơ cấu truyền tin bằng cách định dạng các yêu cầu dữ liệu, chuyển dữ liệu, bẫy lỗi và trả lại mã lỗi. Chuyển hoá và biến đổi dữ liệu, đặc biệt giữa những kiểu máy tính khác nhau hay với những kiểu dữ liệu ngoài chơng trình ngời sử dụng Ví dụ hoạt động của Oracle Ví dụ sau minh hoạ một cấu hình của Oracle khi user và các tiến trình server chạy trên những máy khác nhau (kết nối qua mạng) Một Instance đang chạy trên máy tính cài đặt phần mềm Oracle (thờng đợc gọi là máy chủ hay máy chủ CSDL) Một máy tính chạy ứng dụng (cài trên máy trạm) chạy ứng dụng trong tiến trình của ngời sử dụng. ứng dụng Client cố gắng thiết lập kết nối tới máy chủ qua Net8. Server đang chạy với cùng chuẩn Net8. Nó nhận đợc yêu cầu kêt nối từ ứng dụng và tạo một tiến trình server dành riêng thay cho tiến trình của User. ứng dụng thực hiện một câu lệnh SQL và kết thúc giao dịch. Ví dụ: User thay đổi tên trong một dòng dữ liệu. Tiến trình server nhận câu lệnh và kiểm tra vùng dùng chung để tìm xem đã có câu lệnh SQL đó cha. Nếu tìm thấy, tiến trình Server kiểm tra quyền truy nhập của ngời dùng đó với dữ liệu đợc yêu cầu và vùng dùng chung câu lệnh SQL đó sẽ đợc sử dụng để xử lý câu lệnh này. Nếu không tìm thấy thì một vùng dùng chung câu lệnh SQL mới sẽ đợc cấp phát cho câu lệnh để có thể phân tích và xử lý. Tiến trình server đọc các giá trị dữ liệu cần thiết từ file dữ liệu hoặc trong SGA. Nó tiến hành sửa đổi dữ liệu trong SGA. Tiến trình DBWn ghi những khối thay đổi này lên đĩa. Vì giao dịch đã đợc hoàn thành, tiến trình LGWR ngay lập tức ghi giao dịch trong file redo log đang hoạt động. Nếu nh giao dịch thành công, tiến trình Server gửi một thông báo qua mạng tới ứng dụng, nếu nh không thành công thì thông báo lỗi tơng ứng sẽ đợc gửi. Trong toàn bộ thủ tục, các tiến trình nền khác vẫn chạy và đợi các yêu cầu khác. Ngoài ra, máy chủ CSDL quản lý các giao dịch khác của ngời sử dụng hạn chế những tranh chấp giữa các giao dịch yêu cầu cùng một dữ liệu. Trên đây chỉ mô tả những thao tác hết sức cơ bản của Oracle. Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 19 Mô hình quan hệ hớng đối tợng cho hệ quản trị CSDL Hệ QTCSDL đã đợc phát triển từ cấu trúc cho đến mạng đều theo mô hình quan hệ. Mô hình CSDL đợc sử dụng rộng rãi nhất là mô hình quan hệ. Oracle mở rộng mô hình quan hệ lên thành mô hình quan hệ hớng đối tợng làm cho nó có thể lu trữ các dạng thức nghiệp vụ phức tạp trong CSDL quan hệ. Mô hình quan hệ Mô hình quan hệ có 3 hình thức chính: Cấu trúc Cấu trúc là các đối tợng đã đợc định nghĩa trớc (bảng, view, index hoặc những đối tợng khác) dùng lu trữ hoặc truy cập dữ liệu trong CSDL. Cấu trúc và dữ liệu chứa trong đó có thể xử lý bằng các thao tác Thao tác Các thao tác là các hành động đợc định nghĩa rõ ràng cho phép ngời sử dụng xử lý dữ liệu và cấu trúc trong CSDL. Các thao tác trên một CSDL cần gắn với một tập hợp các luật toàn vẹn dữ liệu đã đợc định nghĩa trớc. Luật toàn vẹn dữ liệu Luật toàn vẹn dữ liệu là những luật đảm bảo cho các thao tác đợc phép trên dữ liệu và cấu trúc của CSDL. Luật toàn vẹn dữ liệu bảo vệ dữ liệu và cấu trúc trong CSDL Hệ quản trị CSDL quan hệ có những u điểm nổi bật: Tính độc lập giữa lu trữ dữ liệu vật lý và cấu trúc lô gic của CSDL Dễ dàng truy cập dữ liệu Hoàn toàn mềm dẻo trong thiết kế CSDL Giảm khối lợng lu trữ và d thừa dữ liệu Mô hình quan hệ hớng đối tợng Mô hình quan hệ hớng đối tợng cho phép ngời sử dụng tự định nghĩa các đối tợng, chỉ ra cả cấu trúc dữ liệu cùng với thao tác xử lý dữ liệu và sử dụng các kiểu dữ liệu này ngay trong mô hình quan hệ. Đối tợng là sự trừu tợng hoá của các thực thể trong thế giới thực, ví dụ các đơn hàng mà các chơng trình ứng dụng thờng xử lý. Một kiểu đối tợng thờng có 3 thành phần: Tên để xác định duy nhất đối tợng đó Các thuộc tính đợc xây dựng bên trong các kiểu dữ liệu hoặc kiểu do ngời dùng định nghĩa. Các thuộc tính mô hình hoá cấu trúc của thực thể trong thực tế. Phơng thức xử lý là các hàm hoặc các thủ tục đợc viết dới dạng PL/SQL và lu trữ trong CSDL, hoặc viết dới dạng ngồn ngữ khác kiểu nh C và đợc lu trữ bên ngoài. Các phơng thức thực hiện các thao tác định trớc mà ứng dụng cần phải thực hiện để xử lý dữ liệu. Mọi kiểu đối tợng đều có một phơng thức constructor để tạo ra một đối tợng mới phù hợp với kiểu dữ liệu đã định. Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 20 Lợc đồ (Schemas) & các đối tợng lợc đồ Schema là một tập hợp các đối tợng của CSDL mà ngời dùng có thể sử dụng. Các đối tợng schema là những cấu trúc logic tham chiếu trực tiếp đến dữ liệu của CSDL. Chúng bao gồm các cấu trúc nh: bảng, view, sequence, stored procedure, synonym, index, cluster và database link. (Không có liên hệ gì giữa một tablespace và một schema; các đối tợngt rong cùng một schema có thể tồn tại trong các tablespace khác nhau và một tablespace có thể chứa nhiều đối tợng của nhiều schema khác nhau). Bảng Bảng là một đơn vị lu trữ dữ liệu cơ bản trong CSDL Oracle. Các bảng của CSDL lu giữ tất cả những dữ liệu mà ngời dùng có thể sử dụng. Bảng dữ liệu đợc lu trong các hàng và các cột. Mỗi bảng đợc định nghĩa với một tên và tập hợp các cột. Mỗi cột đều có tên, kiểu dữ liệu (kiểu nh: CHAR, DATE, NUMBER) và độ rộng (cũng có thể đợc xác định trớc nhờ kiểu dữ liệu nh trong kiểu DATE) và phần thập phân (đối với kiểu số). Ngay sau khi tạo ra một bảng, các hàng dữ liệu hợp lệ có thể chèn vào bảng. Các hàng dữ liệu sau đó có thể truy vấn, xoá hoặc cập nhật. Để đảm bảo các ràng buộc nghiệp vụ đối với dữ liệu trong bảng, các ràng buộc dữ liệu và trigger có thể đợc định nghĩa cho bảng đó. Views View là một dạng trình diễn dữ liệu do ngời sử dụng tự định nghĩa, dữ liệu có thể lấy từ một hoặc nhiều bảng khác nhau. View cũng có thể coi là "stored query". View không thực sự chứa dữ liệu, thay vào đó, chúng nhận dữ liệu từ các bảng nguồn. Các bảng nguồn có thể là bảng hoặc cũng lại là một view khác. Cũng giống nh các bảng, view cũng có thể truy vấn, chèn và xoá dữ liệu trong một số điều kiện nhất định. Tất cả các thao tác dữ liệu tác động lên view thực tế đều thực hiện trên các bảng nguồn. View thờng đợc sử dụng để làm các công việc sau: Mở rộng khả năng bảo mật cho các bảng bằng cách hạn chế truy cập đến một số hàng và cột của bảng. Ví dụ, có thể tạo view của một bảng trong đó không có các cột dữ liệu nhạy cảm (nh thông tin về lơng chẳng hạn) ẩn giấu những dữ liệu phức tạp. Ví dụ, một view có thể chứa dữ liệu bán hàng 12 tháng trong năm để phân tích và báo cáo. Cũng có thể tạo view liên kết từ một số cột có quan hệ trong nhiều bảng khác nhau. Tuy nhiên, view giấu đi quan hệ giữa dữ liệu gốc trong các bảng nguồn. Đơn giản cho ngời sử dụng. Ví dụ, view cho phép nhiều ngời cùng truy cập thông tin từ nhiều bảng nguồn mà không yêu cầu ngời dùng phải biết cách làm thế nào để thu thập từ các nguồn số liệu đó. Hiển thị dữ liệu khác với bảng dữ liệu nguồn. Ví dụ, nó cho phép đổi tên các cột mà không làm ảnh hởng đến bảng dữ liệu nguồn. Lu giữa các câu lệnh truy vấn phức tạp. Ví dụ, một query có thể thực hiện một số phép tính mở rộng từ các thông tin trong bảng. Bằng cách lu lại query này dới dạng view, các phép tính sẽ đợc thực hiện khi truy vấn dữ liệu trên các view này. Các view liên kết dữ liệu từ nhiều bảng khác nhau chỉ có thể cập nhật đợc trong một Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 21 số điều kiện nhất định. View thực View thực cho phép truy cập dữ liệu gián tiếp đến dữ liệu trong bảng bằng cách lu lại kết quả truy vấn trong một đối tợng schema khác. Không giống nh các view tầm thờng khác không chiếm không gian lu trữ dữ liệu, view thực có chứa các dòng kết quả của truy vấn từ một vài bảng hoặc view nguồn. Các view này có thể lu trong cùng CSDL hoặc trong một CSDL khác. View thực khi đợc lu cùng CSDL với các bảng nguồn có thể tăng tốc độ xử lý nhờ ghi lại kết quả truy vấn. Đối với các truy vấn thực hiện tổng hợp dữ liệu hoặc liên kết, cơ chế tối u hoá có thể ghi lại kết quả truy vấn để truy cập đến những kết quả đã đợc tính toán lu trong các view thực. Quá trình này rất hữu dụng trong môi trờng Datawarehouse. View thực còn đợc gọi là ảnh chụp (snapshot). Khái niệm này thờng đợc sử dụng trong việc nhân bản dữ liệu với CSDL ở xa. Trong các phát biểu SQL, từ khoá SNAPSHOT và MATERIALIZED VIEW là đồng nghĩa. Sequences Sequence tạo ra một dãy các số duy nhất cho các cột kiểu số của một bảng nào đó. Sequence làm đơn giản hoá cho việc lập trình bằng cách tự động sinh ra các số duy nhất cho các dòng dữ liệu của một hoặc nhiều bảng. ví dụ, giả sử 2 ngời sử dụng cùng chèn một dòng mới vào bảng EMP. Bằng cách sử dụng sequence để tạo ra số khoá duy nhất cho cột EMPNO của các dòng dữ liệu đó, không ngời nào phải đợi để nhận đợc số EMPNO tiếp theo. Sequence tự động sinh ra số phù hợp cho mỗi ngời. Các số sequence độc lập với các bảng, vì vây một sequence có thể sử dụng cho nhiều bảng khác nhau. Sau khi tạo, một sequence có thể đợc nhiều ngời dùng truy cập để tạo ra dãy các số thực tuần tự. Đơn vị chơng trình Đơn vị chơng trình đợc sử dụng trong tài liệu này là các stored procedure, hàm, package, trigger và các khối nặc danh. Synonyms Synonym là một bí danh cho bảng, view, sequence hoặc đơn vị chơng trình. Một synonym thực tế không phải là một đối tợng của schema nhng nó dùng để tham chiếu đến các đối tợng của schema. Synonym đợc sử dụng để: Che giấu tên thật và chủ sở hữu của đối tợng Cung cấp khả năng truy cập chung đến các đối tợng Cung cấp khả năng truy cập trong suốt đến các bảng, view hoặc đơn vị chơng trình của các CSDL ở xa mà không phải quan tâm đến vị trí vật lý của nó. Đơn giản hoá các câu lệnh SQL Một synonym có thể là chung hoặc riêng. Mỗi cá nhân ngời sử dụng có thể tạo các synonym riêng chỉ cho riêng ngời đó. Quản trị CSDL có thể tạo các synonym chung Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 22 để có thể truy cập rộng rãi đến các đối tợng trong toàn hệ thống. Indexes Index là các cấu trúc tuỳ chọn gắn với các bảng, đợc tạo ra để tăng tốc độ truy vấn dữ liệu. Cũng giống nh chỉ mục của tài liệu này giúp cho bạn nhanh chóng tìm đợc thông tin trong tài liệu, index của Oracle cũng giúp truy cập dữ liệu nhanh hơn. Khi xử lý một yêu cầu, Oracle có thể sử dụng một vài hoặc toàn bộ các index hiện có để tìm đợc dữ liệu một cách hiệu quả. Index rất hữu dụng khi các ứng dụng thờng xuyên truy vấn một bảng để tìm một số dòng dữ liệu (ví dụ, tất cả nhân viên có lơng trên 1000 USD) hoặc một dòng dữ liệu nào đó. Các index đợc tạo dựa trên một vài cột trong bảng. Ngay sau khi tạo, index tự động đợc Oracle quản lý và sử dụng. Mọi thay đổi tác động lên dữ liệu (thêm dòng mới, cập nhật dữ liệu, hoặc xoá dữ liệu) đều đợc tự động phản ánh vào tất cả các index tơng ứng và hoàn toàn trong suốt với ngời sử dụng. Các index độc lập cả về vật lý và logic đối với dữ liệu. Chúng có thể bị xoá và tạo lại bất cứ lúc nào mà không ảnh hởng đến dữ liệu và các index khác. Nếu một index bị xoá, tất cả các ứng dụng vẫn làm việc bình thờng, tuy nhiên việc truy cập đến các dữ liệu mà trớc đó có index sẽ chậm hơn. Bạn có thể phân mảnh các index. Clusters and Hash Clusters Cluster và hash cluster là những cấu trúc tuỳ chọn cho việc lu trữ dữ liệu. Chúng đợc tạo để tăng tốc độ truy vấn dữ liệu. Clustered Tables Cluster là một nhóm của vài bảng vật lý đợc lu trữ cùng nhau vì chúng có một số cột dữ liệu dùng chung và thờng xuyên đợc sử dụng cùng với nhau. Vì các hàng liên quan với nhau đợc lu trữ cùng nhau về mặt vật lý nên giảm đợc thời gian truy cập. Các cột liên quan đến nhau của các bảng trong một cluster đợc gọi là các khoá. Các khoá đợc chỉ số hoá nên các dòng dữ liệu đợc truy vấn với thao tác truy cập vào/ra là ít nhất. Vì dữ liệu của các khoá trong cluster chỉ mục chỉ đợc lu một bản duy nhất cho các bảng trong nhóm, nên cluster có thể lu chúng một cách hiệu quả hơn khi các bảng đợc lu riêng rẽ (không cluster). Cluster cũng làm tăng tốc độ truy vấn dữ liệu, phụ thuộc vào sự phân tán dữ liệu và thao tác SQL nào thờng đợc thực hiện. Cá biệt, các bảng cluster còn đợc lợi vì các dòng dữ liệu chung đợc truy vấn với cùng một thao tác vào/ra. Giống nh index, cluster không ảnh hởng đến thiết kế của ứng dụng. Nó hoàn toàn trong suốt với ngời sử dụng và ứng dụng. Dữ liệu trong đó đợc truy cập qua SQL với cùng phơng thức nh khi không có cluster. Hình 1-3 mô tả lu trữ dữ liệu khi có và không có cluster. Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 23 Figure 1-3 Clustered and Non-clustered Tables Hash Clusters Hash cluster cũng nhóm dữ liệu của bảng vào cùng một chỗ tơng tự nh cluster chỉ số. Tất cả các dòng dữ liệu với cùng một khoá đợc lu cùng với nhau trên đĩa. Hash cluster tốt hơn sử dụng bảng có đánh chỉ mục hoặc cluster chỉ mục khi một bảng thờng xuyên đợc truy vấn với một query ngang bằng (ví dụ: query tất cả nhân viên của phòng 10). Đối với những truy vấn nh vậy, giá trị khoá cluster đợc phân mảnh (băm). Kết quả là giá trị khoá phân mảnh chỉ thẳng đến vùng dữ liệu có chứa bản ghi. Dimensions Mảng định nghĩa quan hệ hình cây (quan hệ cha/con) giữa các cặp của các cột hoặc tập hợp cột. Mỗi giá trị ở mức con đợc gắn với một và chỉ một giá trị ở mức cha. Đối tợng mảng là một vật chứa của các quan hệ logic giữa các bảng và không có bất cứ dữ liệu nào gắn với nó. Lệnh CREATE DIMENSION chỉ ra: Các mệnh đề có nhiều LEVEL, mỗi mệnh đề xác định một cột hoặc một tập hợp [...]... http://www.ebook.edu.vn 28 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i Giới hạn tài nguyên hệ thống (ví dụ: thời gian xử lý của CPU) Từng thuộc tính sẽ đợc xem xét ở các mục tiếp theo Quyền Đó là các quyền để thực hiện một số dạng lệnh SQL Một số ví dụ về các quyền này: Kết nối với CSDL (tạo một phiên làm việc mới) Tạo một bảng mới trong schema Truy vấn dữ liệu từ các bảng của một ngời dùng... quán Phần này mô tả về cơ cấu mà Oracle sử dụng để thực hiện các yêu cầu quan trọng của một hệ quản trị thông tin: Dữ liệu phải đợc đọc và cập nhật trong môi trờng đảm bảo tính nhất quán Cho phép tối đa số truy cập đồng thời của ngời sử dụng Hiệu năng cao để đảm bảo năng suất lao động tối đa trong môi trờng có nhiều ngời sử dụng http://www.ebook.edu.vn 24 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về. .. đợc các dữ liệu đã bị thay đổi trong giao dịch đó Hãy nhớ rằng giao dịch là mấu chốt cho chiến lợc của Oracle để tạo ta tính nhất quán http://www.ebook.edu.vn 25 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i của dữ liệu Các câu lệnh SQL đợc xác nhận (hoặc không đợc xác nhận): Tạo ra điểm đánh dấu cho khung nhìn nhất quán của dữ liệu nhân danh ngời đọc Quyết định khi nào thì những ngời dùng... 2 kiểu khoá khác nhau: khoá độc quyền và khoá dùng chung Chỉ có duy nhất một khoá độc quyền đợc sử dụng cho một tài nguyên (bản ghi hoặc bảng), trong khi đó nhiều khoá dùng chung lại có thể cùng sử dụng cho một tài nguyên Cả hai loại luôn cho phép truy vấn trên tài nguyên đã bị khoá, nhng không cho phép thực hiện các thao tác khác http://www.ebook.edu.vn 26 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản. .. các cơ chế kiểm soát truy cập và sử dụng CSDL ở mức các đối tợng schema Ví dụ: Ngời dùng nào có thể truy cập đến các đối tợng của lợc đồ xác định nào đó, các kiểu thao tác đợc phép đối với mỗi ngời dùng trên từng đối tợng (ví dụ: ngời dùng SCOTT có thể thực hiện các lệnh SELECT, INSERT nhng không đợc phép DELETE trong bảng EMP) http://www.ebook.edu.vn 27 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về. ..Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i các cột trong mảng Một hoặc nhiều mệnh đề HIERARCHY chỉ ra quan hệ cha/con giữa các LEVEL kề nhau Mỗi mệnh đề tuỳ chọn ATTRIBUTE xác định một cột hoặc một tập hợp các cột gắn với mỗi LEVEL riêng Các cột trong một mảng có thể thuộc cùng một bảng (phi chuẩn) hoặc thuộc nhiều bảng (chuẩn hoá hoàn toàn hoặc từng phần) Để định nghĩa một... khác http://www.ebook.edu.vn 26 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i Khoá do ngời sử dụng Trong một vài trờng hợp, ngời dùng muốn tự mình khoá dữ liệu thay cho cơ chế tự động của Oracle Oracle cũng cho phép điều đó ở cả 2 mức: bản ghi (bằng lệnh truy vấn đầu tiên trên các bản ghi sẽ đợc cập nhật dữ liệu) và bảng Distributed Databases Processing and Distributed Startup and Shutdown... đơn giản nhất để xem xét cách giải quyết của Oracle là hãy tởng tợng mỗi ngời dùng xử lý một bản sao riêng của CSDL, đó chính là mô hình đồng nhất nhiều phiên bản Read Consistency, Rollback Segments, and Transactions Để quản lý mô hình nhất quán nhiều phiên bản, Oracle cần phải tạo ra một tập các dữ liệu khi một bảng đang đợc đọc và đợc cập nhật đồng thời Khi có yêu cầu cập nhật, giá trị dữ liệu trớc... và view đợc sử dụng theo kiểu chỉ đọc (read-only) để tham chiếu đến các thành phần CSDL Ví dụ, một từ điển dữ liệu lu thông tin về cấu trúc vật lý và logic của CSDL Bổ sung thêm cho những thông tin quý giá này, từ điển dữ liệu cũng lu trữ cả những thông tin nh: Những ngời dùng hợp lệ của CSDL Thông tin về ràng buộc toàn vẹn dữ liệu đợc định nghĩa cho các bảng trong CSDL Không gian đã sử dụng và không... phơng thức quản lý quyền một cách dễ dàng thông qua Role Role là tên của một nhóm các quyền liên quan sẽ đợc gán cho ngời sử dụng hoặc gán cho các Role khác http://www.ebook.edu.vn 29 Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i Các thuộc tính sau của Role cho phép quản lý quyền dễ dàng: Giảm nhẹ việc Quản trị hệ thống gán quyền cho nhóm ngời dùng sẽ nhanh hơn gán quyền là gán riêng cho từng . dụng có thể tạo các synonym riêng chỉ cho riêng ngời đó. Quản trị CSDL có thể tạo các synonym chung Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 22 để có. cluster. Hình 1-3 mô tả lu trữ dữ liệu khi có và không có cluster. Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 23 Figure 1-3 Clustered and Non-clustered. Oracle để tạo ta tính nhất quán Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i http://www.ebook.edu.vn 26 của dữ liệu. Các câu lệnh SQL đợc xác nhận (hoặc không đợc xác nhận): Tạo ra

Ngày đăng: 06/08/2014, 01:20