6.1.DATA DICTIONARY VÀ VIEWS 6.1.1 Data Dictionary

Một phần của tài liệu ORACLE_kiến trúc và quản trị pptx (Trang 53 - 57)

6.1.1. Data Dictionary

Data dictionary hay từ điển dữ liệu hệ thống là phần rất quan trọng trong Oracle database. Đó là một tập hợp các table và các view sử dụng cho việc tham chiếu đến các thông tin liên quan tới database. Data dictionary được tạo bởi file script sql.bsq trong quá trình tạo database.

Data dictionary bao gồm các thông tin trung tâm của Oracle server.

Data dictionary được Oracle server tự động cập nhật mỗi khi thực hiện lệnh định nghĩa dữ liệu (Data Definition Language – DDL).

Data dictionary đặt trong tablespace SYSTEM do User SYS quản lý. Data dictionary bao gồm hai loại sau:

Base tabes

Data dictionary Views

Hình vẽ 20. Dictionarytrong database

Base tables

Thơng tin trong data dictionary được xác định từ các thơng tin có trong các base tables (bảng cơ sở). Nội dung của các bảng này do Oracle server cập nhật. User thuộc database hầu như không thể cập nhật các thông tin này do chúng là các thơng tin đã được chuẩn hố và được mã hố. Ví dụ: ta chỉ có thể truy xuất tới các thơng tin có trong bảng IND$ để biết được các thơng tin về các indexes đã được định nghĩa trong database, hoặc lấy các thông tin trong bảng OBJ$ để biết được các objects đã được định nghĩa trong database.

Ta không thể sử dụng các câu lệnh thao tác dữ liệu như INSERT, UPDATE, hay DELETE để thay đổi nội dung thông tin trong các bảng cơ sở một cách trực tiếp ngoại trừ bảng AUD$ (Xem thêm phần kiểm tra - Auditing).

Data Dictionary Views

Data dictionary views được tạo ra bởi các câu lệnh có trong file script catalog.sql. Các views này giải mã và tổng hợp các thông tin có trong các base tables. Để dễ dàng truy xuất các thông tin này, các data dictionary thường được tạo các synonyms tương ứng.

Phần lớn các thông tin hệ thống được User lấy về từ các data dictionary views hơn là lấy trực tiếp từ các base tables.

6.1.2. Data Dictionary views

Hình vẽ 21. Dictionary views

Data dictionary views được phân ra làm ba loại chứa các thông tin tương tự nhau nhưng ở các mức độ khác nhau. Các loại data dictionary views này được phân biệt bởi các tiếp đầu ngữ khác nhau.

Tiếp đầu ngữ USER

Các views có tiếp đầu ngữ USER chứa thông tin về các objects do User hiện thời sở hữu. Ví dụ: USER_TABLES sẽ chứa thơng tin về các bảng dữ liệu của User hiện thời.

Tiếp đầu ngữ ALL

Các views có tiếp đầu ngữ ALL chứa thơng tin về các objects có thể truy cập bởi User hiện thời, bao gồm cả các đối tượng do User đó sở hữu và cả các đối tượng khác mà User được gán quyền truy nhập. Ví dụ: ALL_TABLES sẽ chứa thông tin về các bảng dữ liệu mà User hiện thời có thể truy nhập.

Tiếp đầu ngữ DBA

Các views có tiếp đầu ngữ DBA chứa thơng tin về các objects có trong database. Các views này là cần thiết cho quản trị viên database. Một User bất kỳ cũng có thể xem được thơng tin trong các views DBA nếu user đó được cấp quyền SELECT ANY TABLE.

Phân loại một số loại views

Tên View Diễn giải

DICTIONARY DICT_COLUMNS

Thông tin chung

DBA_TABLES DBA_OBJECTS DBA_LOBS

DBA_TAB_COLUMNS DBA_CONSTRAINTS

Thông tin liên quan tới các đối tượng của User như: table, Column, Constraint,...

DBA_USERS DBA_SYS_PRIVS DBA_ROLES

Thông tin về mức quyền của User

Tên View Diễn giải

DBA_EXTENTS DBA_FREE_SPACE DBA_SEGMENTS

Tình hình cấp phát khơng gian cho các đối tượng trong database.

DBA_ROLLBACK_SEGS DBA_DATA_FILES DBA_TABLESPACES

Thông tin về cấu trúc database

DBA_AUDIT_TRAIL DBA_AUDIT_OBJECTS DBA_AUDIT_OBJ_OPTS

Các thông tin kiểm tra

Ví dụ: Để lấy các thơng tin chung trong từ điển dữ liệu, ta có thể truy vấn trong Các views DICTIONARY hoặc DICT_COLUMNS.

SVRMGR>SELECT * 2> FROM dictionary

3> WHERE table_name LIKE ’%TABLE%’;

TABLE_NAME COMMENTS

-------------------- --------------------------------------- ALL_ALL_TABLES Description of all object and relational

tables accessible to the user

ALL_NESTED_TABLES Description of nested tables in tables accessible to the user

ALL_OBJECT_TABLES Description of all object tables accessible to the user

ALL_PART_TABLES

ALL_TABLES Description of relational tables

accessible to the user

ALL_UPDATABLE_COLUMNS Descriptionofallupdatablecolumns

DBA_ALL_TABLES Description of all object and relational tables in the database

DBA_NESTED_TABLES Description of nested tables contained in all tables

DBA_OBJECT_TABLES Description of all object tables in the database

...

Xây dựng dictionary views

Sau khi tạo database, ta truy cập vào database theo user: SYS và chạy các scripts: catalog.sql và catprog.sql để tạo các dictionary views. Thông thường, các scripts này nằm trong thư mục: %ORACLE_HOME%\RDBMS80\ADMIN

Catalog.sql

CATALOG.SQL script dùng để tạo các view dựa trên các base tables (bảng cơ sở) của database. Các view này sẽ được tạo synonym (một tên khác với tên của objects được dùng để truy cập objects) tương ứng để dễ dàng truy vấn các dữ liệu từ đó hơn. Scripts này cịn gọi tới các scripts khác để tạo các views và các đối tượng khác phục vụ cho các tiện ích Server Manager, cho việc kiểm tra, cho các tiện ích Export và Import dữ liệu,... Scripts STANDARD.SQL được gọi đến trong đó để tạo các mơi trường PL/SQL tn theo chuẩn.

Ví dụ: Scripts tạo mẫu giao tiếp cho 01 hàm built-in có tên BITAND:

function BITAND (LEFT binary_integer, RIGHT binary_integer) return binary_integer;

Catproc.sql

CATPROC.SQL script dùng để tạo các hàm PL/SQL, các packages PL/SQL sử dụng trong RDBMS. Ngoài ra, CATPROC.SQL script còn tạo Các views mở rộng khác.

6.1.3. Sripts quản trị

Các scripts quản trị được đặt trong thư mục: %ORACLE_HOME%\RDBMS80\ADMIN Các scripts này được phân nhóm và đặt trong từng file riêng biệt.

Các quy định về tên có trong Script quản trị

Quy ước Diễn giải

Cat*.sql Các thông tin Catalog và từ điển dữ liệu

Dbms*.sql Phần khai báo (specification) của các packages trong database

Prvt*.plb Phần thân cua packages đã được mã hố và đóng gói Utl*.sql Các views và table tiện ích trong database

Một phần của tài liệu ORACLE_kiến trúc và quản trị pptx (Trang 53 - 57)